:root{
  --linen:#f5f0e8;--indigo:#1e3a5f;--teal:#2a9d8f;--gold:#c9993a;
  --muted:#6b8aaa;--border:rgba(30,58,95,0.12);--shadow:0 4px 32px rgba(30,58,95,0.09);
  --ff-serif:'Noto Serif JP',serif;--ff-display:'Cormorant Garamond',serif;
  --ff-body:'Noto Sans JP','Noto Sans TC',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--linen);color:var(--indigo);font-family:var(--ff-body);font-weight:300;line-height:1.7;}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;
  padding:.85rem 3rem;background:rgba(245,240,232,0.94);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);gap:2rem;}
.nav-logo{display:flex;align-items:center;gap:.75rem;text-decoration:none;flex-shrink:0;}
.nav-logo img{height:36px;width:auto;}
.nav-logo-text{font-family:var(--ff-serif);font-size:.95rem;font-weight:400;color:var(--indigo);letter-spacing:.2em;}
.nav-logo-text em{display:block;font-style:normal;font-family:var(--ff-display);font-size:.68rem;
  color:var(--muted);letter-spacing:.28em;font-weight:300;}
.nav-links{display:flex;gap:2rem;flex:1;justify-content:center;}
.nav-links a{font-family:var(--ff-body);font-size:.78rem;color:var(--muted);text-decoration:none;
  letter-spacing:.12em;transition:color .2s;white-space:nowrap;}
.nav-links a:hover,.nav-links a.active{color:var(--indigo);}
.nav-right{display:flex;align-items:center;gap:.85rem;flex-shrink:0;}
.lang-switcher{display:flex;gap:.35rem;}
.lang-btn{background:none;border:1px solid var(--border);color:var(--muted);padding:.25rem .6rem;
  font-size:.7rem;cursor:pointer;letter-spacing:.08em;transition:all .2s;font-family:inherit;}
.lang-btn.active,.lang-btn:hover{background:var(--indigo);color:var(--linen);border-color:var(--indigo);}
.nav-book{background:var(--gold);color:var(--indigo);padding:.45rem 1.1rem;font-size:.76rem;
  text-decoration:none;letter-spacing:.1em;transition:background .2s, color .2s;white-space:nowrap;}
.nav-book:hover{background:var(--indigo);color:var(--linen);}

/* EYEBROW & SECTION TITLE */
.eyebrow{font-family:var(--ff-display);font-size:.76rem;letter-spacing:.45em;
  color:var(--teal);text-transform:uppercase;margin-bottom:.65rem;}
.eyebrow-gold{color:var(--gold);}
.sec-title{font-family:var(--ff-serif);font-size:clamp(1.4rem,2.6vw,2rem);
  font-weight:300;letter-spacing:.15em;color:var(--indigo);margin-bottom:2.5rem;line-height:1.45;}
.sec-title-light{color:var(--linen);}

/* WAVES */
.wave-dn{line-height:0;}.wave-dn svg{display:block;}
.wave-up{line-height:0;}.wave-up svg{display:block;}

/* FOOTER */
footer{background:#0d1f38;padding:2rem 3rem;text-align:center;
  font-size:.7rem;color:rgba(245,240,232,.28);letter-spacing:.14em;line-height:2.2;}
.footer-links{display:flex;justify-content:center;gap:2rem;margin-bottom:1rem;flex-wrap:wrap;}
.footer-links a{color:rgba(245,240,232,.4);text-decoration:none;font-size:.7rem;
  letter-spacing:.12em;transition:color .2s;}
.footer-links a:hover{color:var(--teal);}

/* PAGE HEADER (costumes & gallery) */
.page-hero{padding:9rem 3rem 4rem;text-align:center;background:var(--indigo);position:relative;overflow:hidden;}
.page-hero::before{content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 30% 60%,rgba(42,157,143,.12),transparent 55%),
             radial-gradient(ellipse at 70% 30%,rgba(201,153,58,.08),transparent 45%);}
.page-hero .eyebrow{color:var(--gold);}
.page-hero h1{font-family:var(--ff-serif);font-size:clamp(2rem,4vw,3.2rem);font-weight:300;
  letter-spacing:.3em;color:var(--linen);position:relative;}

/* CONTACT MAP */
.map-wrap{margin-top:2.5rem;border:1px solid rgba(245,240,232,.12);overflow:hidden;}
.map-wrap iframe{display:block;width:100%;height:300px;border:none;filter:brightness(.9);}


/* RESPONSIVE */
@media(max-width:960px){
  nav{padding:.8rem 1.5rem;gap:1rem;}
  .nav-links{display:none;}
  .nav-logo-text em{display:none;}
}
@media(max-width:480px){
  .lang-btn{padding:.22rem .45rem;font-size:.65rem;}
  footer{padding:1.5rem;}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}
