:root{--bg: #fafaf8;--ink: #1a1a1a;--ink-sub: #595955;--line: #e4e4de;--accent: #1a1a1a;--accent-soft: #efefec;--white: #ffffff;--font-body: "Noto Sans JP", sans-serif;--font-head: "Noto Sans JP", sans-serif;--font-en: "Noto Sans JP", sans-serif;--max-w: 1200px;--section-pad: clamp(72px, 12vw, 150px);--ease: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:90px}body{font-family:var(--font-body);background:var(--bg);color:var(--ink);line-height:1.9;font-size:16px;letter-spacing:.02em;-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}button{font:inherit;background:none;border:none;cursor:pointer;color:inherit}.container{max-width:var(--max-w);margin-inline:auto;padding-inline:clamp(20px,4vw,40px)}.section{padding-block:var(--section-pad)}.section-label{font-family:var(--font-en);font-size:13px;font-weight:600;letter-spacing:.24em;color:var(--accent);text-transform:uppercase;display:block;margin-bottom:18px}.section-title{font-family:var(--font-head);font-size:clamp(28px,4.5vw,44px);font-weight:700;line-height:1.4;letter-spacing:.04em}.section-intro{margin-top:22px;max-width:640px;color:var(--ink-sub)}[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease);transition-delay:var(--reveal-delay, 0s)}[data-reveal].is-inview{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}[data-reveal]{transition:opacity .3s linear;transform:none}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.2s!important}}.site-header{position:fixed;inset-inline:0;top:0;z-index:100;transition:transform .5s var(--ease),background-color .4s ease,box-shadow .4s ease;background:transparent}.site-header.is-scrolled{background:#fafaf8d9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 var(--line)}.site-header.is-hidden{transform:translateY(-100%)}.header-inner{max-width:var(--max-w);margin-inline:auto;padding:18px clamp(20px,4vw,40px);display:flex;align-items:center;gap:32px}.header-logo img{height:22px;width:auto;display:block;transition:filter .3s ease}.site-header.header-dark:not(.is-scrolled) .header-logo img{filter:invert(1)}.footer-logo img{height:28px;width:auto;display:block;filter:invert(1)}.header-nav{margin-left:auto}.header-nav ul{display:flex;gap:28px}.header-nav a{font-family:var(--font-en);font-size:13px;font-weight:600;letter-spacing:.14em;position:relative;padding-block:6px}.header-nav a:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}.header-nav a:hover:after{transform:scaleX(1);transform-origin:left}.header-cta{font-family:var(--font-en);font-size:13px;font-weight:600;letter-spacing:.14em;background:var(--ink);color:var(--white);padding:10px 24px;border-radius:999px;transition:background-color .3s ease,transform .3s var(--ease)}.header-cta:hover{background:#3a3a3a;transform:translateY(-2px)}.site-header.header-dark:not(.is-scrolled){color:var(--bg)}.site-header.header-dark:not(.is-scrolled) .header-cta{background:var(--bg);color:var(--ink)}.site-header.header-dark:not(.is-scrolled) .header-cta:hover{background:var(--white)}.site-header.header-dark.menu-is-open .menu-toggle span{background:var(--ink)}.menu-toggle{display:none;width:44px;height:44px;position:relative;z-index:110}.menu-toggle span{position:absolute;left:10px;width:24px;height:2px;background:currentColor;transition:.35s var(--ease)}.menu-toggle span:nth-child(1){top:17px}.menu-toggle span:nth-child(2){top:25px}.menu-toggle[aria-expanded=true] span:nth-child(1){top:21px;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){top:21px;transform:rotate(-45deg)}.mobile-menu{display:none}@media(max-width:900px){.header-nav,.header-cta{display:none}.menu-toggle{display:block;margin-left:auto}.mobile-menu{display:block;position:fixed;inset:0;background:var(--bg);padding:110px clamp(20px,6vw,40px) 40px;opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s ease;z-index:105}.mobile-menu.is-open{opacity:1;visibility:visible}.mobile-menu a{font-family:var(--font-en);font-size:24px;font-weight:600;letter-spacing:.1em;display:block;padding:14px 0;border-bottom:1px solid var(--line)}.mobile-menu .mobile-cta{color:var(--accent)}}.site-footer{background:var(--ink);color:#d9d9d4;padding:clamp(56px,8vw,90px) 0 32px}.footer-inner{max-width:var(--max-w);margin-inline:auto;padding-inline:clamp(20px,4vw,40px);display:flex;flex-wrap:wrap;gap:48px;justify-content:space-between}.footer-brand .footer-logo{color:var(--white);font-size:26px}.footer-company{margin-top:14px;font-weight:500;color:var(--white)}.footer-address{margin-top:8px;font-size:14px;line-height:2}.footer-nav ul{display:grid;grid-template-columns:repeat(2,auto);gap:10px 40px}.footer-nav a{font-size:13px;letter-spacing:.1em;transition:color .3s ease}.footer-nav a:hover{color:var(--white)}.footer-copy{text-align:center;font-family:var(--font-en);font-size:12px;letter-spacing:.16em;margin-top:clamp(40px,6vw,64px);color:#8a8a85}.btn{display:inline-flex;align-items:center;gap:12px;font-weight:500;padding:16px 36px;border-radius:999px;transition:background-color .3s ease,color .3s ease,transform .3s var(--ease),box-shadow .3s ease}.btn-primary{background:var(--accent);color:var(--white)}.btn-primary:hover{transform:translateY(-3px);box-shadow:0 12px 28px #1a1a1a38}.btn-ghost{border:1px solid var(--ink);color:var(--ink)}.btn-ghost:hover{background:var(--ink);color:var(--white)}.btn .arrow{transition:transform .3s var(--ease)}.btn:hover .arrow{transform:translate(4px)}
