@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600;700&family=Noto+Serif+JP:wght@400;500;600;700&family=Cormorant+Garamond:wght@400;500;600;700&display=swap');
:root{--navy-900:#0a1628;--navy-800:#0f2035;--navy-700:#152a42;--navy-600:#1c3654;--navy-500:#264a6e;--gold-500:#b8922e;--gold-400:#c9a43e;--gold-300:#d4b55c;--gold-200:#e2cc8a;--gold-100:#f0e4be;--white:#fff;--gray-50:#f8f9fa;--gray-100:#f1f3f5;--gray-200:#e9ecef;--gray-300:#dee2e6;--gray-400:#ced4da;--gray-500:#868e96;--gray-600:#6c757d;--gray-700:#495057;--gray-800:#343a40;--gray-900:#212529;--font-serif:'Noto Serif JP','Cormorant Garamond',serif;--font-sans:'Noto Sans JP',sans-serif;--font-en:'Cormorant Garamond',serif;--shadow-sm:0 1px 3px rgba(10,22,40,.08);--shadow-md:0 4px 16px rgba(10,22,40,.10);--shadow-lg:0 8px 32px rgba(10,22,40,.12);--transition:.3s cubic-bezier(.4,0,.2,1)}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--font-sans);color:var(--gray-800);line-height:1.8;background:var(--white);overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit;transition:var(--transition)}
ul,ol{list-style:none}
.container{max-width:1100px;margin:0 auto;padding:0 24px}
.section{padding:100px 0}
.section--gray{background:var(--gray-50)}

/* Header */
.header{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(10,22,40,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.06);transition:var(--transition)}
.header__inner{display:flex;align-items:center;justify-content:space-between;height:72px;max-width:1100px;margin:0 auto;padding:0 24px}
.header__logo{display:flex;align-items:center;gap:12px}
.header__logo-img{width:38px;height:38px;object-fit:contain;filter:brightness(0) invert(1)}
.header__logo-mark{width:36px;height:36px;background:linear-gradient(135deg,var(--gold-500),var(--gold-300));border-radius:6px;display:flex;align-items:center;justify-content:center;font-family:var(--font-en);font-weight:700;font-size:18px;color:var(--navy-900)}
.header__logo-text{display:flex;flex-direction:column;line-height:1.2}
.header__logo-jp{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--white);letter-spacing:.08em}
.header__logo-en{font-family:var(--font-en);font-size:10px;font-weight:500;color:var(--gold-300);letter-spacing:.12em;text-transform:uppercase}
.nav{display:flex;align-items:center}
.nav__link{font-size:13px;font-weight:500;color:rgba(255,255,255,.7);padding:8px 20px;position:relative;letter-spacing:.06em}
.nav__link::after{content:'';position:absolute;bottom:0;left:20px;right:20px;height:2px;background:var(--gold-400);transform:scaleX(0);transform-origin:center;transition:var(--transition)}
.nav__link:hover{color:var(--white)}
.nav__link:hover::after{transform:scaleX(1)}
.nav__link--active{color:var(--white)}
.nav__link--active::after{transform:scaleX(1)}
.nav__contact{margin-left:12px;font-size:13px;font-weight:500;color:var(--navy-900);background:linear-gradient(135deg,var(--gold-400),var(--gold-300));padding:8px 24px;border-radius:4px;letter-spacing:.06em}
.nav__contact:hover{background:linear-gradient(135deg,var(--gold-300),var(--gold-200));transform:translateY(-1px);box-shadow:0 4px 12px rgba(200,164,62,.3)}

/* Hamburger */
.hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px;z-index:1001}
.hamburger__line{width:24px;height:2px;background:var(--white);transition:var(--transition);border-radius:1px}
.hamburger.active .hamburger__line:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.hamburger.active .hamburger__line:nth-child(2){opacity:0}
.hamburger.active .hamburger__line:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.mobile-nav{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(10,22,40,.98);z-index:999;flex-direction:column;align-items:center;justify-content:center;gap:8px}
.mobile-nav.active{display:flex}
.mobile-nav__link{font-size:16px;font-weight:500;color:rgba(255,255,255,.8);padding:16px 40px;letter-spacing:.1em;transition:var(--transition)}
.mobile-nav__link:hover{color:var(--gold-300)}

/* Hero */
.hero{position:relative;min-height:520px;display:flex;align-items:center;background:linear-gradient(160deg,var(--navy-900) 0%,var(--navy-700) 50%,var(--navy-600) 100%);overflow:hidden;padding-top:72px}
.hero--short{min-height:320px}
.hero::before{content:'';position:absolute;top:-50%;right:-20%;width:700px;height:700px;background:radial-gradient(circle,rgba(196,149,58,.06) 0%,transparent 70%);pointer-events:none}
.hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-500),transparent);opacity:.3}
.hero__pattern{position:absolute;top:0;right:0;bottom:0;width:45%;opacity:.03;background-image:linear-gradient(30deg,var(--white) 12%,transparent 12.5%,transparent 87%,var(--white) 87.5%),linear-gradient(150deg,var(--white) 12%,transparent 12.5%,transparent 87%,var(--white) 87.5%),linear-gradient(30deg,var(--white) 12%,transparent 12.5%,transparent 87%,var(--white) 87.5%),linear-gradient(150deg,var(--white) 12%,transparent 12.5%,transparent 87%,var(--white) 87.5%);background-size:80px 140px;background-position:0 0,0 0,40px 70px,40px 70px;pointer-events:none}
.hero__content{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding:60px 24px}
.hero__label{font-family:var(--font-en);font-size:13px;font-weight:500;color:var(--gold-400);letter-spacing:.2em;text-transform:uppercase;margin-bottom:20px;opacity:0;animation:fadeUp .8s .2s forwards}
.hero__title{font-family:var(--font-serif);font-size:clamp(26px,4vw,40px);font-weight:600;color:var(--white);line-height:1.5;margin-bottom:20px;opacity:0;animation:fadeUp .8s .4s forwards}
.hero__subtitle{font-size:15px;font-weight:300;color:rgba(255,255,255,.6);line-height:1.8;max-width:560px;opacity:0;animation:fadeUp .8s .6s forwards}
.hero__page-title{font-family:var(--font-serif);font-size:clamp(28px,4vw,38px);font-weight:600;color:var(--white);margin-bottom:8px;opacity:0;animation:fadeUp .8s .3s forwards}
.hero__page-en{font-family:var(--font-en);font-size:14px;font-weight:500;color:var(--gold-400);letter-spacing:.15em;text-transform:uppercase;opacity:0;animation:fadeUp .8s .5s forwards}
.hero__breadcrumb{margin-top:24px;font-size:12px;color:rgba(255,255,255,.4);opacity:0;animation:fadeUp .8s .6s forwards}
.hero__breadcrumb a{color:rgba(255,255,255,.5)}
.hero__breadcrumb a:hover{color:var(--gold-300)}
.hero__breadcrumb span{margin:0 8px}

/* Notice */
.notice{background:var(--gray-50);border-bottom:1px solid var(--gray-200);padding:14px 0}
.notice__inner{display:flex;align-items:center;gap:12px;font-size:13px;flex-wrap:wrap}
.notice__badge{font-size:11px;font-weight:600;color:var(--white);background:#c0392b;padding:3px 10px;border-radius:3px;white-space:nowrap}
.notice__date{color:var(--gray-500);white-space:nowrap}
.notice__text a{color:var(--gray-700);border-bottom:1px solid var(--gray-300)}
.notice__text a:hover{color:var(--navy-700);border-color:var(--navy-700)}

/* Section Header */
.section-header{text-align:center;margin-bottom:64px}
.section-header__en{font-family:var(--font-en);font-size:13px;font-weight:500;color:var(--gold-500);letter-spacing:.2em;text-transform:uppercase;margin-bottom:10px}
.section-header__title{font-family:var(--font-serif);font-size:clamp(22px,3vw,28px);font-weight:600;color:var(--navy-800);margin-bottom:16px}
.section-header__line{width:40px;height:2px;background:linear-gradient(90deg,var(--gold-500),var(--gold-300));margin:0 auto}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.card{background:var(--white);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-sm);transition:var(--transition);border:1px solid var(--gray-200)}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--gold-200)}
.card__icon{height:180px;background:linear-gradient(135deg,var(--navy-800),var(--navy-600));display:flex;align-items:center;justify-content:center;position:relative}
.card__icon::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold-500),var(--gold-300))}
.card__icon svg{width:48px;height:48px;stroke:var(--gold-300);stroke-width:1.5;fill:none}
.card__body{padding:28px 24px}
.card__en{font-family:var(--font-en);font-size:11px;font-weight:500;color:var(--gold-500);letter-spacing:.15em;text-transform:uppercase;margin-bottom:4px}
.card__title{font-family:var(--font-serif);font-size:17px;font-weight:600;color:var(--navy-800);margin-bottom:12px}
.card__text{font-size:13px;color:var(--gray-600);line-height:1.9;margin-bottom:20px}
.card__link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--navy-700)}
.card__link::after{content:'\2192';transition:var(--transition)}
.card__link:hover{color:var(--gold-500)}
.card__link:hover::after{transform:translateX(4px)}

/* Partner CTA */
.partner-cta{background:linear-gradient(160deg,var(--navy-900),var(--navy-700));padding:80px 0;position:relative;overflow:hidden}
.partner-cta::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-500),transparent);opacity:.3}
.partner-cta__inner{max-width:720px;margin:0 auto;text-align:center;padding:0 24px}
.partner-cta__en{font-family:var(--font-en);font-size:13px;font-weight:500;color:var(--gold-400);letter-spacing:.2em;text-transform:uppercase;margin-bottom:12px}
.partner-cta__title{font-family:var(--font-serif);font-size:clamp(20px,3vw,26px);font-weight:600;color:var(--white);line-height:1.6;margin-bottom:20px}
.partner-cta__text{font-size:14px;color:rgba(255,255,255,.6);line-height:1.9;margin-bottom:36px}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-sans);font-size:14px;font-weight:500;padding:14px 36px;border-radius:4px;cursor:pointer;border:none;transition:var(--transition);letter-spacing:.06em}
.btn--gold{color:var(--navy-900);background:linear-gradient(135deg,var(--gold-400),var(--gold-300))}
.btn--gold:hover{background:linear-gradient(135deg,var(--gold-300),var(--gold-200));transform:translateY(-2px);box-shadow:0 6px 20px rgba(200,164,62,.3)}
.btn--outline{color:var(--navy-700);background:transparent;border:1px solid var(--gray-300)}
.btn--outline:hover{border-color:var(--gold-500);color:var(--gold-500)}

/* Business Page */
.business-intro{max-width:720px;margin:0 auto 64px;text-align:center}
.business-intro__title{font-family:var(--font-serif);font-size:clamp(18px,2.5vw,22px);font-weight:600;color:var(--navy-800);line-height:1.7;margin-bottom:20px}
.business-intro__text{font-size:14px;color:var(--gray-600);line-height:2}
.service-block{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding:48px 0;border-bottom:1px solid var(--gray-200)}
.service-block:last-child{border-bottom:none}
.service-block--reverse{direction:rtl}
.service-block--reverse>*{direction:ltr}
.service-block__visual{aspect-ratio:4/3;background:linear-gradient(135deg,var(--navy-800),var(--navy-600));border-radius:8px;display:flex;align-items:center;justify-content:center;position:relative}
.service-block__visual::after{content:'';position:absolute;bottom:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold-500),var(--gold-300));border-radius:0 0 8px 8px}
.service-block__visual svg{width:64px;height:64px;stroke:var(--gold-300);stroke-width:1.2;fill:none}
.service-block__num{font-family:var(--font-en);font-size:48px;font-weight:700;color:var(--gold-100);line-height:1;margin-bottom:8px}
.service-block__en{font-family:var(--font-en);font-size:12px;font-weight:500;color:var(--gold-500);letter-spacing:.15em;text-transform:uppercase;margin-bottom:6px}
.service-block__title{font-family:var(--font-serif);font-size:20px;font-weight:600;color:var(--navy-800);margin-bottom:16px}
.service-block__text{font-size:14px;color:var(--gray-600);line-height:1.9;margin-bottom:20px}
.service-block__list{display:flex;flex-direction:column;gap:8px}
.service-block__list-item{font-size:13px;color:var(--gray-700);padding-left:20px;position:relative}
.service-block__list-item::before{content:'';position:absolute;left:0;top:10px;width:8px;height:1px;background:var(--gold-500)}
.platforms{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:40px}
.platform{background:var(--white);border:1px solid var(--gray-200);border-radius:8px;padding:24px 16px;text-align:center;transition:var(--transition)}
.platform:hover{border-color:var(--gold-300);box-shadow:var(--shadow-sm)}
.platform__name{font-size:14px;font-weight:600;color:var(--navy-800);margin-bottom:4px}
.platform__status{font-size:11px;color:var(--gray-500)}
.platform__status--active{color:#27ae60}

/* Company Table */
.company-table{width:100%;border-collapse:collapse;margin-bottom:48px}
.company-table tr{border-bottom:1px solid var(--gray-200)}
.company-table th{font-size:14px;font-weight:600;color:var(--navy-800);text-align:left;padding:18px 24px;width:180px;vertical-align:top;background:var(--gray-50);white-space:nowrap}
.company-table td{font-size:14px;color:var(--gray-700);padding:18px 24px;line-height:1.7}

/* Access */
.access{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.access__map{border-radius:8px;overflow:hidden;box-shadow:var(--shadow-md);aspect-ratio:4/3;background:var(--gray-100)}
.access__map iframe{width:100%;height:100%;border:0}
.access__info{display:flex;flex-direction:column;gap:24px}
.access__item{padding-left:20px;border-left:2px solid var(--gold-400)}
.access__item-label{font-size:12px;font-weight:600;color:var(--gold-500);letter-spacing:.1em;margin-bottom:4px}
.access__item-text{font-size:14px;color:var(--gray-700);line-height:1.7}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.contact-info{display:flex;flex-direction:column;gap:32px}
.contact-info__block{padding:24px;background:var(--gray-50);border-radius:8px;border:1px solid var(--gray-200)}
.contact-info__label{font-size:12px;font-weight:600;color:var(--gold-500);letter-spacing:.1em;margin-bottom:8px}
.contact-info__value{font-size:18px;font-weight:600;color:var(--navy-800);letter-spacing:.04em}
.contact-info__note{font-size:12px;color:var(--gray-500);margin-top:6px}
.form{display:flex;flex-direction:column;gap:24px}
.form__group{display:flex;flex-direction:column;gap:6px}
.form__label{font-size:13px;font-weight:600;color:var(--navy-800);letter-spacing:.04em}
.form__label--required::after{content:'必須';font-size:10px;font-weight:600;color:var(--white);background:#c0392b;padding:2px 6px;border-radius:3px;margin-left:8px;vertical-align:middle}
.form__input,.form__select,.form__textarea{font-family:var(--font-sans);font-size:14px;color:var(--gray-800);padding:12px 16px;border:1px solid var(--gray-300);border-radius:4px;background:var(--white);transition:var(--transition);outline:none;width:100%}
.form__input:focus,.form__select:focus,.form__textarea:focus{border-color:var(--navy-600);box-shadow:0 0 0 3px rgba(21,42,66,.08)}
.form__textarea{min-height:160px;resize:vertical}
.form__submit{align-self:flex-start}
.form__privacy{font-size:12px;color:var(--gray-500);line-height:1.7}
.form__privacy a{color:var(--navy-700);border-bottom:1px solid var(--gray-300)}

/* Footer */
.footer{background:var(--navy-900);color:rgba(255,255,255,.5);padding:60px 0 0}
.footer__inner{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.06)}
.footer__brand{display:flex;flex-direction:column;gap:16px}
.footer__logo{display:flex;align-items:center;gap:12px}
.footer__logo-img{width:32px;height:32px;object-fit:contain;filter:brightness(0) invert(1)}
.footer__logo-mark{width:32px;height:32px;background:linear-gradient(135deg,var(--gold-500),var(--gold-300));border-radius:5px;display:flex;align-items:center;justify-content:center;font-family:var(--font-en);font-weight:700;font-size:15px;color:var(--navy-900)}
.footer__logo-name{font-size:14px;font-weight:600;color:var(--white)}
.footer__address{font-size:12px;line-height:1.8;color:rgba(255,255,255,.4)}
.footer__heading{font-size:12px;font-weight:600;color:var(--gold-400);letter-spacing:.15em;text-transform:uppercase;margin-bottom:20px}
.footer__links{display:flex;flex-direction:column;gap:12px}
.footer__link{font-size:13px;color:rgba(255,255,255,.5)}
.footer__link:hover{color:var(--white)}
.footer__bottom{text-align:center;padding:20px 0;font-size:11px;color:rgba(255,255,255,.3);font-family:var(--font-en);letter-spacing:.05em}

/* Animations */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* Responsive */
@media(max-width:900px){.cards{grid-template-columns:1fr;gap:24px}.service-block{grid-template-columns:1fr;gap:24px}.service-block--reverse{direction:ltr}.platforms{grid-template-columns:repeat(2,1fr)}.access{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr;gap:40px}.footer__inner{grid-template-columns:1fr;gap:32px}}
@media(max-width:768px){.nav{display:none}.hamburger{display:flex}.hero{min-height:420px}.hero--short{min-height:260px}.section{padding:64px 0}.company-table th{display:block;width:100%;padding:14px 16px 4px}.company-table td{display:block;padding:4px 16px 14px}}
.hero__title .accent{color:var(--gold-300)}
