:root{
  --c-primary:#3a4f5c;
  --c-accent:#5a7a8a;
  --c-accent2:#7a9aaa;
  --c-bg:#ffffff;
  --c-bg-warm:#f5f7f9;
  --c-text:#2a2a3e;
  --c-text-sub:#6b7280;
  --c-line:#e2e6ea;
  --c-white:#fff;
  --gradient:linear-gradient(135deg,#3a4f5c,#7a9aaa);
  --f-serif:'Noto Serif JP',serif;
  --f-sans:'Noto Sans JP',sans-serif;
  --f-en:'Cormorant Garamond',serif;
  --f-brush:'Zen Antique',serif;
  --max-w:1100px;
  --section-py:100px;
  --section-px:64px;
}
body{font-family:var(--f-sans);color:var(--c-text);background:var(--c-bg);font-weight:300;font-size:15px;}

/* ── Header ── */
.header{position:fixed;top:0;left:0;width:100%;z-index:100;padding:0 48px;height:72px;display:flex;align-items:center;justify-content:space-between;transition:background .3s,box-shadow .3s;}
.header.scrolled{background:rgba(255,255,255,.97);box-shadow:0 1px 0 var(--c-line);}
.header-logo{display:flex;align-items:center;}
.header-logo img{height:40px;width:auto;}
.header-nav{display:flex;gap:28px;align-items:center;}
.header-nav>a,.header-nav .nav-dropdown>a{font-family:var(--f-serif);font-size:13px;font-weight:300;letter-spacing:2px;color:var(--c-text-sub);transition:color .2s;position:relative;}
.header-nav>a:hover,.header-nav .nav-dropdown>a:hover{color:var(--c-primary);}
.header-nav>a::after,.header-nav .nav-dropdown>a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--c-accent);transition:width .3s;}
.header-nav>a:hover::after,.header-nav .nav-dropdown>a:hover::after{width:100%;}
/* Dropdown */
.nav-dropdown{position:relative;}
.nav-dropdown-menu{position:absolute;top:100%;left:-12px;padding-top:16px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:200;}
.nav-dropdown:hover .nav-dropdown-menu{opacity:1;pointer-events:auto;}
.nav-dropdown-menu-inner{background:var(--c-white);border:1px solid var(--c-line);box-shadow:0 8px 24px rgba(0,0,0,.08);min-width:200px;padding:8px 0;}
.nav-dropdown-menu a{display:block;padding:10px 20px;font-family:var(--f-serif);font-size:12px;letter-spacing:1.5px;color:var(--c-text-sub);transition:all .2s;white-space:nowrap;}
.nav-dropdown-menu a:hover{color:var(--c-primary);background:var(--c-bg-warm);}
.nav-dropdown-menu a.coming-soon{color:#bbb;pointer-events:none;position:relative;}
.nav-dropdown-menu a.coming-soon::after{content:'Coming Soon';font-family:var(--f-en);font-size:9px;color:#ccc;margin-left:8px;letter-spacing:1px;}
.header-cta{font-size:11px;letter-spacing:1.5px;padding:10px 28px;border:1px solid var(--c-primary);color:var(--c-primary);transition:all .2s;cursor:pointer;background:none;}
.header-cta:hover{background:var(--c-primary);color:var(--c-white);}

/* Hamburger */
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;z-index:200;background:none;border:none;padding:8px;}
.hamburger span{display:block;width:24px;height:1px;background:var(--c-primary);transition:all .3s;}
.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(4px,4px);}
.hamburger.active span:nth-child(2){opacity:0;}
.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px);}

/* Mobile Nav Overlay */
.mobile-nav{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(255,255,255,.98);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;opacity:0;pointer-events:none;transition:opacity .3s;z-index:150;}
.mobile-nav.active{opacity:1;pointer-events:auto;}
.mobile-nav a{font-family:var(--f-serif);font-size:20px;color:var(--c-primary);letter-spacing:3px;}

/* ── Footer ── */
.footer{background:var(--c-primary);color:rgba(255,255,255,.7);padding:72px 48px 40px;}
.footer-inner{max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:48px;}
.footer-brand{font-family:var(--f-serif);font-size:18px;color:var(--c-white);letter-spacing:2px;margin-bottom:16px;}
.footer-brand span{color:var(--c-accent);}
.footer-desc{font-size:12px;line-height:1.8;margin-bottom:20px;}
.footer-heading{font-size:11px;letter-spacing:2px;color:var(--c-accent);margin-bottom:16px;font-family:var(--f-en);font-style:italic;}
.footer-links a{display:block;font-size:13px;margin-bottom:10px;transition:color .2s;}
.footer-links a:hover{color:var(--c-white);}
.footer-contact-item{font-size:13px;margin-bottom:8px;}
.footer-bottom{max-width:var(--max-w);margin:40px auto 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center;}
.footer-copy{font-size:11px;font-family:var(--f-en);letter-spacing:1px;}

/* ── Section ── */
.section{padding:var(--section-py) var(--section-px);}
.section-inner{max-width:var(--max-w);margin:0 auto;}
.section-en{font-family:var(--f-en);font-style:italic;font-size:13px;color:var(--c-accent);letter-spacing:3px;margin-bottom:12px;}
.section-title{font-family:var(--f-serif);font-size:28px;font-weight:300;letter-spacing:2px;margin-bottom:16px;}
.section-line{width:40px;height:1px;background:var(--c-accent);margin-bottom:40px;}
.section-desc{color:var(--c-text-sub);font-size:14px;max-width:600px;line-height:2;}

/* ── Utility ── */
.fade-in{opacity:0;transform:translateY(24px);transition:opacity .6s,transform .6s;}
.fade-in.visible{opacity:1;transform:translateY(0);}

/* ── Responsive ── */
@media(max-width:1024px){
  :root{--section-px:32px;--section-py:72px;}
}
@media(max-width:768px){
  :root{--section-px:20px;--section-py:56px;}
  .header{padding:0 20px;height:60px;}
  .header-nav{display:none;}
  .header-cta{display:none;}
  .hamburger{display:flex;}
  .footer-inner{grid-template-columns:1fr;gap:32px;}
  .footer{padding:48px 20px 32px;}
  .section-title{font-size:22px;}
}
