/* ============ TOKENS (navy · blue · platinum) ============ */
:root{
  --navy:#0a4a90;
  --navy-2:#0c539f;
  --navy-3:#093f7c;
  --blue:#0e5fb2;
  --blue-2:#2f86cf;
  --blue-3:#6fb1e6;
  --blue-ink:#0c4f95;
  --teal:#1c5c55;
  --teal-2:#236f66;
  --sage:#5f9d94;
  --sage-dk:#4e887f;
  --warm:#efe6d0;
  --warm-2:#e3d7ba;
  --warm-ink:#a8702c;
  --aqua:#d9f1f3;
  --aqua-2:#bfe7eb;
  --aqua-ink:#1a8b80;
  --cream:#f7eed8;
  --gold:#9a7b3e;
  --sky:#e9f1f9;
  --paper:#f5f8fc;
  --paper-2:#e9eef5;
  --ink:#27323d;
  --ink-soft:#46535f;
  --platinum:#d4dbe4;
  --platinum-lt:#eef2f7;
  --line:rgba(14,63,120,.14);
  --line-lt:rgba(255,255,255,.18);
  --shadow:0 26px 64px -30px rgba(10,45,90,.5);
  --shadow-sm:0 14px 34px -20px rgba(10,45,90,.4);
  --metal:linear-gradient(180deg,#fbfcfe 0%,#dde2ea 44%,#aeb6c2 56%,#eef1f6 100%);
  --f-disp:"Shippori Mincho", serif;
  --f-en:"Cormorant Garamond", serif;
  --f-body:"Zen Kaku Gothic New", sans-serif;
  --gutter:clamp(1.25rem, 5vw, 7rem);
  --maxw:1200px;
  --pad:max(var(--gutter), calc((100% - var(--maxw)) / 2));
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--f-body);background:var(--paper);color:var(--ink);line-height:1.85;font-weight:400;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
ul{list-style:none}
::selection{background:var(--blue);color:#fff}
body::before{content:"";position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.metal{background:var(--metal);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.en{font-family:var(--f-en);font-weight:500;letter-spacing:.18em;text-transform:uppercase}

/* ============ HEADER ============ */
.hdr{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;gap:1.2rem;background:var(--navy);padding:clamp(.5rem,1.1vw,.95rem) var(--pad);transition:background .45s,padding .45s,box-shadow .45s}
.hdr.scrolled{background:var(--navy);box-shadow:var(--shadow-sm)}
/* home: transparent over the hero at the top, blue once scrolled */
body.home .hdr{background:transparent}
body.home .hdr.scrolled{background:var(--navy)}
.brand{display:flex;align-items:center;z-index:2}
.brand img{height:clamp(54px,5.4vw,74px);width:auto;transition:height .45s}
.hdr.scrolled .brand img{height:clamp(46px,4.4vw,58px)}
.brand .logo-dark{display:none}
.nav{display:flex;align-items:center;gap:clamp(.8rem,1.5vw,1.7rem)}
.nav a{font-size:.92rem;font-weight:500;letter-spacing:.03em;color:#fff;position:relative;padding:.3rem 0;white-space:nowrap;transition:color .3s}
.nav a::after{content:"";position:absolute;left:50%;right:50%;bottom:-3px;height:2px;background:var(--blue-3);transition:left .32s,right .32s}
.nav a:hover::after,.nav a.active::after{left:0;right:0}
.nav a.active{color:#fff}
.nav-cta{display:inline-flex;align-items:center;gap:.45rem;border:1px solid rgba(255,255,255,.55);color:#fff;padding:.55rem 1.05rem;border-radius:999px;font-size:.9rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;transition:background .35s,color .35s}
.nav-cta::after{display:none}
.nav-cta svg{width:15px;height:15px;fill:currentColor}
.nav-cta:hover{background:#fff;color:var(--navy)}
.burger{display:none;width:46px;height:46px;border:none;background:transparent;position:relative;z-index:1200;cursor:pointer}
.burger span{position:absolute;left:11px;right:11px;height:1.6px;background:#fff;transition:.35s;border-radius:2px}
.burger span:nth-child(1){top:17px}.burger span:nth-child(2){top:23px}.burger span:nth-child(3){top:29px}
body.menu-open .burger span{background:#fff}
body.menu-open .burger span:nth-child(1){top:23px;transform:rotate(45deg)}
body.menu-open .burger span:nth-child(2){opacity:0}
body.menu-open .burger span:nth-child(3){top:23px;transform:rotate(-45deg)}
.drawer{position:fixed;inset:0;z-index:1100;background:var(--navy);display:flex;flex-direction:column;justify-content:center;padding:6rem var(--gutter) 3rem;gap:.9rem;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .4s,transform .4s,visibility .4s}
body.menu-open .drawer{opacity:1;visibility:visible;transform:none}
.drawer a{font-family:var(--f-disp);color:var(--paper);font-size:clamp(1.3rem,5.5vw,1.9rem);font-weight:500;display:flex;align-items:baseline;gap:1rem;border-bottom:1px solid var(--line-lt);padding-bottom:.8rem}
.drawer a span{font-family:var(--f-en);font-size:.75rem;color:var(--blue-3);letter-spacing:.2em}
.drawer .d-foot{margin-top:1.4rem;color:var(--platinum);font-size:.85rem;line-height:2}
.drawer .d-foot strong{font-family:var(--f-en);font-size:1.5rem;letter-spacing:.06em;color:#fff;display:block}

/* ============ HERO ============ */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:66% center;transform:scale(1.08);animation:slowzoom 16s ease-out forwards}
@keyframes slowzoom{to{transform:scale(1)}}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,28,51,.72) 0%,rgba(11,28,51,.22) 30%,rgba(11,28,51,.4) 58%,rgba(9,22,42,.94) 100%),radial-gradient(120% 80% at 82% 8%,rgba(47,134,207,.3),transparent 60%)}
.hero-inner{position:relative;z-index:2;width:100%;padding:0 var(--pad) clamp(3.5rem,9vh,7rem)}
.hero .eyebrow{display:flex;align-items:center;gap:.9rem;color:var(--platinum-lt);font-family:var(--f-en);letter-spacing:.32em;font-size:clamp(.7rem,1.4vw,.85rem);margin-bottom:1.3rem;opacity:0;animation:rise .9s .15s ease forwards}
.hero .eyebrow::before{content:"";width:clamp(34px,5vw,64px);height:1px;background:var(--platinum)}
.hero h1{font-family:var(--f-disp);font-weight:700;color:#fff;font-size:clamp(2.3rem,7vw,5.1rem);line-height:1.2;letter-spacing:.02em;text-shadow:0 2px 30px rgba(0,0,0,.35);opacity:0;animation:rise 1s .3s ease forwards}
.hero h1 em{font-style:normal;background:linear-gradient(120deg,#7cc0f3,#2f86cf);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero .sub{margin-top:1.4rem;color:rgba(255,255,255,.94);font-size:clamp(1.05rem,2vw,1.38rem);font-weight:400;letter-spacing:.02em;line-height:1.8;max-width:46ch;text-shadow:0 1px 14px rgba(0,0,0,.35);opacity:0;animation:rise 1s .45s ease forwards}
.hero-actions{margin-top:clamp(2rem,4vh,2.7rem);display:flex;flex-wrap:wrap;gap:1rem;align-items:center;opacity:0;animation:rise 1s .6s ease forwards}
.btn{display:inline-flex;align-items:center;gap:.6rem;border-radius:999px;font-weight:500;letter-spacing:.03em;font-size:.95rem;padding:1rem 2rem;transition:transform .3s,box-shadow .3s,background .3s,color .3s;cursor:pointer;border:1px solid transparent}
.btn svg{width:18px;height:18px;fill:currentColor}
.btn-primary{background:var(--sage);color:#fff;box-shadow:0 16px 36px -16px rgba(95,157,148,.85)}
.btn-primary:hover{background:var(--sage-dk);transform:translateY(-3px)}
.btn-ghost{border-color:rgba(255,255,255,.55);color:#fff}
.btn-ghost:hover{background:#fff;color:var(--navy);transform:translateY(-3px)}
.btn-dark{background:var(--navy);color:#fff}
.btn-dark:hover{background:var(--blue);transform:translateY(-3px)}
.btn-line{border-color:var(--line);color:var(--blue)}
.btn-line:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-3px)}
.hero-meta{margin-top:clamp(2rem,4vh,2.5rem);display:flex;flex-wrap:wrap;gap:.6rem 2.2rem;color:rgba(255,255,255,.84);font-size:.92rem;letter-spacing:.02em;border-top:1px solid var(--line-lt);padding-top:1.3rem;opacity:0;animation:rise 1s .75s ease forwards}
.hero-meta span{display:inline-flex;align-items:center;gap:.55rem}
.hero-meta svg{width:16px;height:16px;fill:var(--blue-3)}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.scrollcue{position:absolute;right:var(--gutter);bottom:clamp(2rem,5vh,3rem);z-index:2;writing-mode:vertical-rl;color:rgba(255,255,255,.7);font-family:var(--f-en);letter-spacing:.3em;font-size:.76rem;display:flex;align-items:center;gap:1rem}
.scrollcue::after{content:"";width:1px;height:60px;background:linear-gradient(var(--platinum),transparent);animation:cue 2.2s ease-in-out infinite}
@keyframes cue{0%,100%{transform:scaleY(.4);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}}

/* ============ SECTION SHELL ============ */
.section{padding:clamp(3rem,6vw,5.5rem) var(--pad);position:relative}
.kicker{font-family:var(--f-en);letter-spacing:.3em;font-size:.84rem;color:var(--blue);display:flex;align-items:center;gap:.8rem;margin-bottom:1.05rem;font-weight:600}
.kicker::before{content:"";width:30px;height:1px;background:var(--blue)}
.title{font-family:var(--f-disp);font-weight:700;color:var(--ink);font-size:clamp(1.8rem,4.4vw,3.05rem);line-height:1.32;letter-spacing:.02em}
.lead{font-size:clamp(1.02rem,1.6vw,1.16rem);color:var(--ink-soft);font-weight:400;line-height:1.85;max-width:62ch}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.1s}.reveal.d2{transition-delay:.2s}.reveal.d3{transition-delay:.3s}.reveal.d4{transition-delay:.4s}

/* ============ REASONS ============ */
.reasons{background:linear-gradient(180deg,#fff,var(--sky))}
.reasons-head{text-align:center;max-width:720px;margin:0 auto clamp(2.6rem,5vw,4rem)}
.reasons-head .kicker{justify-content:center}
.reasons-head p{color:var(--ink-soft);font-weight:400;font-size:1.04rem;margin-top:1rem}
.reason-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.4vw,2rem)}
.rcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:clamp(1.8rem,2.8vw,2.6rem);box-shadow:var(--shadow-sm);transition:transform .45s,box-shadow .45s;position:relative;overflow:hidden}
.rcard::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--blue-3))}
.rcard:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.rcard .ic{width:58px;height:58px;border-radius:14px;background:var(--sky);display:grid;place-items:center;margin-bottom:1.3rem}
.rcard .ic svg{width:28px;height:28px;fill:var(--blue)}
.rcard h3{font-family:var(--f-disp);font-size:clamp(1.25rem,2.2vw,1.55rem);font-weight:700;margin-bottom:.6rem;line-height:1.4}
.rcard p{font-size:1rem;color:var(--ink-soft);font-weight:400;line-height:1.85}
.creds{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem;margin-top:clamp(2.2rem,4vw,3rem)}
.creds span{font-size:.84rem;color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:999px;padding:.55rem 1.15rem;letter-spacing:.02em}
.creds span b{color:var(--blue);font-weight:700}

/* ============ ABOUT ============ */
.about{background:#fff;color:var(--ink);overflow:hidden}
.about .kicker{color:var(--blue)}.about .kicker::before{background:var(--blue)}
.about-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2.5rem,5vw,5rem);align-items:center}
.about-media{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:auto auto;gap:1rem;position:relative}
.about-media img{width:100%;border-radius:10px;box-shadow:var(--shadow)}
.about-media .m1{grid-row:span 2;height:100%;object-fit:cover}
.about-media .badge{position:absolute;left:-.6rem;bottom:1.2rem;z-index:3;background:var(--blue);color:#fff;border-radius:10px;padding:.9rem 1.2rem;box-shadow:var(--shadow);text-align:center}
.about-media .badge b{display:block;font-family:var(--f-en);font-size:1.9rem;line-height:1;color:#fff;font-weight:600}
.about-media .badge small{font-size:.74rem;letter-spacing:.14em;color:rgba(255,255,255,.85)}
.about-body .title{color:var(--blue-ink);margin:1rem 0 .4rem}
.about-name{font-family:var(--f-en);letter-spacing:.16em;color:var(--blue);font-size:.9rem;margin-bottom:1.5rem}
.about-body p{color:var(--ink-soft);font-weight:400;margin-bottom:1.2rem;font-size:1.04rem;line-height:1.95}
.about-body .lede{font-family:var(--f-disp);color:var(--blue-ink);font-size:clamp(1.2rem,2.2vw,1.5rem);font-weight:600;line-height:1.7;margin-bottom:1.4rem}
.cred-list{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.4rem}
.cred-list li{font-size:.85rem;color:var(--blue);border:1px solid var(--line);border-radius:999px;padding:.4rem .9rem}

/* ============ TREATMENTS ============ */
.treat{background:var(--paper)}
.treat-head{max-width:760px;margin-bottom:clamp(2.5rem,5vw,4rem)}
.treat-head p{color:var(--ink-soft);font-weight:400;font-size:1.04rem;margin-top:1.1rem}
.treat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.1rem,2vw,1.6rem)}
.mcard{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .4s,box-shadow .4s;box-shadow:var(--shadow-sm)}
.mcard:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.mcard-media{position:relative;aspect-ratio:16/10;background:linear-gradient(150deg,var(--navy),var(--blue));overflow:hidden}
.mcard-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.16,1,.3,1)}
.mcard:hover .mcard-media img{transform:scale(1.07)}
.mcard-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,45,90,.05) 30%,rgba(10,45,90,.4))}
.mcard .no{position:absolute;top:.9rem;left:.9rem;z-index:2;font-family:var(--f-en);font-size:1rem;font-weight:600;letter-spacing:.02em;color:#fff;background:rgba(15,43,77,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:2.5rem;height:2.5rem;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.45)}
.mcard-body{padding:clamp(1.4rem,2.4vw,1.9rem);display:flex;flex-direction:column;flex:1}
.mcard h3{font-family:var(--f-disp);font-size:clamp(1.22rem,2.2vw,1.5rem);font-weight:700;margin-bottom:.2rem;line-height:1.4}
.mcard .romaji{font-family:var(--f-en);letter-spacing:.14em;font-size:.82rem;color:var(--blue);margin-bottom:.7rem;text-transform:uppercase;font-weight:600}
.mcard p{font-size:.97rem;color:var(--ink-soft);font-weight:400;line-height:1.85}
.mcard.cta{background:linear-gradient(135deg,var(--teal-2),var(--teal));border:none;color:#fff;justify-content:center;padding:clamp(1.8rem,3vw,2.5rem)}
.mcard.cta h3{color:#fff}
.mcard.cta p{color:#d6e8e5;margin-top:.6rem;font-size:1rem}

/* ============ FLOW ============ */
.flow{background:var(--teal);color:#eef5f3}
.flow .kicker{color:#a7d9d1}.flow .kicker::before{background:#a7d9d1}
.flow .title{color:#fff}
.flow-head{margin-bottom:clamp(2.4rem,5vw,3.6rem)}
.flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,2vw,1.5rem);counter-reset:step}
.fstep{position:relative;padding-top:3.4rem}
.fstep::before{counter-increment:step;content:"0" counter(step);position:absolute;top:0;left:0;font-family:var(--f-en);font-size:2.6rem;font-weight:600;color:transparent;background:var(--metal);-webkit-background-clip:text;background-clip:text;line-height:1}
.fstep .bar{height:1px;background:var(--line-lt);margin:.4rem 0 1.2rem;position:relative}
.fstep .bar::after{content:"";position:absolute;left:0;top:0;height:1px;width:34px;background:var(--blue-2)}
.fstep h4{font-family:var(--f-disp);font-size:1.18rem;font-weight:600;color:#fff;margin-bottom:.6rem}
.fstep p{font-size:.95rem;color:#cfe3e0;font-weight:400;line-height:1.85}

/* ============ PRICING ============ */
.pricing{background:linear-gradient(180deg,var(--sky),#fff)}
.pricing-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.4rem;margin-bottom:clamp(2.4rem,5vw,3.6rem)}
.price-first{background:var(--navy);color:#fff;border-radius:16px;padding:clamp(1.8rem,3.2vw,2.8rem);display:grid;grid-template-columns:1.4fr 1fr;gap:1.5rem;align-items:center;box-shadow:var(--shadow);margin-bottom:clamp(1.2rem,2vw,1.6rem);position:relative;overflow:hidden}
.price-first::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 120% at 90% 0%,rgba(47,134,207,.32),transparent 60%)}
.price-first .pf-l,.price-first .pf-r{position:relative;z-index:1}
.price-first .flag{display:inline-block;font-family:var(--f-en);letter-spacing:.16em;font-size:.76rem;background:var(--blue);color:#fff;padding:.4rem .85rem;border-radius:5px;margin-bottom:1rem}
.price-first h3{font-family:var(--f-disp);font-size:clamp(1.5rem,3vw,2.1rem);font-weight:700;line-height:1.4}
.price-first h3 small{font-size:.92rem;color:var(--platinum-lt);font-weight:400}
.price-first p{color:var(--platinum-lt);font-weight:400;font-size:1rem;margin-top:.7rem}
.price-first .pf-r{text-align:right}
.price-first .pf-r .camp{font-family:var(--f-en);letter-spacing:.06em;color:var(--blue-3);font-size:1.4rem;font-weight:600}
.price-first .pf-r .was{display:block;color:var(--platinum);font-size:.9rem;margin-top:.3rem}
.price-first .pf-r .was s{opacity:.8}
.price-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1rem,2vw,1.4rem)}
.prow{background:#fff;border:1px solid var(--line);border-radius:14px;padding:clamp(1.5rem,2.4vw,2rem);display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:transform .4s,box-shadow .4s}
.prow:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.prow .top{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.5rem}
.prow h4{font-family:var(--f-disp);font-size:1.2rem;font-weight:700}
.prow .min{font-size:.84rem;color:var(--blue);background:var(--sky);padding:.25rem .7rem;border-radius:999px;white-space:nowrap}
.prow .yen{font-family:var(--f-en);font-size:1.8rem;font-weight:600;color:var(--navy);margin:.2rem 0 .7rem}
.prow .yen span{font-size:.9rem;color:var(--ink-soft)}
.prow p{font-size:.95rem;color:var(--ink-soft);font-weight:400;line-height:1.8}
.price-note{margin-top:1.4rem;font-size:.9rem;color:var(--ink-soft);font-weight:400}

/* ============ PRODUCTS ============ */
.products{background:var(--paper)}
.prod-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:clamp(2.5rem,5vw,4rem)}
.prod-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,3vw,2.5rem)}
.pcard{border:1px solid var(--line);border-radius:16px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;box-shadow:var(--shadow-sm);transition:transform .45s,box-shadow .45s}
.pcard:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.pmedia{position:relative;display:flex;align-items:center;justify-content:center;padding:1.8rem;min-height:250px}
.pmedia img{max-height:230px;width:auto;object-fit:contain;filter:drop-shadow(0 24px 30px rgba(15,43,77,.22))}
.pinfo{padding:clamp(1.6rem,2.4vw,2.2rem);display:flex;flex-direction:column}
.pinfo .romaji{font-family:var(--f-en);letter-spacing:.16em;font-size:.84rem;text-transform:uppercase;font-weight:600}
.pinfo h3{font-family:var(--f-disp);font-size:clamp(1.4rem,2.4vw,1.85rem);font-weight:700;margin:.4rem 0 .8rem;line-height:1.3}
.pinfo .desc{font-size:1rem;color:var(--ink-soft);font-weight:400;line-height:1.85;margin-bottom:1.5rem}
.pactions{margin-top:auto;display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}
.amazon{display:inline-flex;align-items:center;gap:.55rem;background:var(--navy);color:#fff;padding:.75rem 1.3rem;border-radius:999px;font-size:.85rem;font-weight:500;transition:.35s}
.amazon:hover{background:var(--blue);transform:translateY(-2px)}
.amazon b{font-family:var(--f-en);font-weight:600}
.detail-link{display:inline-flex;align-items:center;background:var(--sage);color:#fff;padding:.7rem 1.2rem;border-radius:999px;font-size:.85rem;font-weight:600;letter-spacing:.03em;transition:.3s}
.detail-link:hover{background:var(--sage-dk);transform:translateY(-2px)}
/* warm (369 Speaker) */
.pcard.warm{background:linear-gradient(135deg,#f7f0dd,#ece0c4);border-color:var(--warm-2)}
.pcard.warm .pmedia{background:radial-gradient(120% 120% at 50% 22%,#fbf6ea,#e6dabd);padding:1.1rem}
.pcard.warm .pmedia img{max-height:none;width:100%;height:100%;object-fit:cover;border-radius:12px;filter:none;box-shadow:0 18px 34px -20px rgba(110,74,30,.55)}
.pcard.warm .romaji{color:var(--warm-ink)}
.pcard.warm h3{color:#6e4a1e}
.pcard.warm .desc{color:#6b5a3b}
/* aqua (Luminous Healing Stone) */
.pcard.aqua{background:linear-gradient(135deg,#e8f7f8,#cdeef0);border-color:var(--aqua-2)}
.pcard.aqua .pmedia{background:radial-gradient(120% 120% at 50% 22%,#ffffff,#d4f0f2);padding:1.1rem}
.pcard.aqua .pmedia img{max-height:none;width:100%;height:100%;object-fit:cover;border-radius:12px;filter:none;box-shadow:0 18px 34px -20px rgba(26,139,128,.55)}
.pcard.aqua .romaji{color:var(--aqua-ink)}
.pcard.aqua h3{color:#0e6a62}
.pcard.aqua .desc{color:#2d5f5a}

/* ============ GALLERY ============ */
.gallery{background:var(--paper-2);padding-top:0}
.gal-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(120px,1fr);gap:clamp(.5rem,1vw,.9rem)}
.gal-grid a{overflow:hidden;border-radius:8px;position:relative}
.gal-grid img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.gal-grid a:hover img{transform:scale(1.07)}
.gal-grid a::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(15,43,77,.4));opacity:0;transition:.4s}
.gal-grid a:hover::after{opacity:1}
.g1{grid-column:span 3;grid-row:span 2}.g2{grid-column:span 3}.g3{grid-column:span 2}.g4{grid-column:span 2}.g5{grid-column:span 2}

/* ============ REVIEWS ============ */
.reviews{background:var(--paper);color:var(--ink);position:relative;overflow:hidden}
.reviews::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 60% at 85% 0%,rgba(47,134,207,.06),transparent 60%)}
.rev-inner{position:relative;display:grid;grid-template-columns:.9fr 1.3fr;gap:clamp(2.5rem,5vw,5rem);align-items:center}
.reviews .kicker{color:var(--blue)}.reviews .kicker::before{background:var(--blue)}
.reviews .title{color:var(--blue-ink)}
.reviews .note{color:var(--ink-soft);font-weight:400;margin-top:1rem;font-size:1rem;line-height:1.85}
.quote{position:relative;padding:1.8rem 0;border-top:2px dashed var(--blue-3);border-bottom:2px dashed var(--blue-3)}
.quote .mark{font-family:var(--f-en);font-size:6rem;line-height:0;color:var(--blue);opacity:.22;position:absolute;top:3rem;left:-.5rem}
.quote p{font-family:var(--f-disp);font-size:clamp(1.2rem,2.3vw,1.6rem);font-weight:600;line-height:1.85;color:var(--blue-ink);position:relative}
.quote .who{margin-top:1.2rem;color:var(--ink-soft);font-size:.9rem;letter-spacing:.06em}
.rev-cta{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.2rem}
.rev-btn{display:inline-flex;align-items:center;gap:.7rem;background:var(--sage);padding:.85rem 1.5rem;border-radius:999px;font-size:.88rem;font-weight:600;transition:.35s;color:#fff}
.rev-btn:hover{background:var(--sage-dk);transform:translateY(-2px)}
.rev-btn svg{width:18px;height:18px}

/* ============ CONTACT ============ */
.contact{background:var(--paper)}
.contact-top{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,4rem);align-items:center;margin-bottom:clamp(2.8rem,5vw,4.5rem)}
.contact-intro .title{margin:1rem 0 1.4rem}
.contact-intro p{color:var(--ink-soft);font-weight:400;font-size:1.02rem;line-height:1.85;max-width:48ch;margin-bottom:1.6rem}
.contact-card{background:var(--navy);color:#fff;border-radius:16px;padding:clamp(1.8rem,3vw,2.6rem);box-shadow:var(--shadow)}
.cc-row{display:flex;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line-lt)}
.cc-row:last-child{border-bottom:0;padding-bottom:0}.cc-row:first-child{padding-top:0}
.cc-ic{width:42px;height:42px;flex:0 0 42px;border-radius:50%;border:1px solid var(--blue-3);display:grid;place-items:center}
.cc-ic svg{width:18px;height:18px;fill:var(--blue-3)}
.cc-row .lbl{font-family:var(--f-en);letter-spacing:.16em;font-size:.75rem;color:var(--blue-3);text-transform:uppercase}
.cc-row .val{font-size:1.05rem;color:#fff;font-weight:500}
.cc-row .val.big{font-size:clamp(1.4rem,2.8vw,1.9rem);font-family:var(--f-en);letter-spacing:.04em;font-weight:600}
.cc-row .note{font-size:.86rem;color:var(--platinum);font-weight:400}
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,3vw,2.5rem)}
.loc{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
.loc .map{position:relative;aspect-ratio:16/10;background:var(--paper-2)}
.loc .map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.2) contrast(1.05)}
.loc-body{padding:clamp(1.4rem,2.4vw,2rem);display:flex;flex-direction:column;flex:1}
.loc-body h3{font-family:var(--f-disp);font-size:1.45rem;font-weight:700;display:flex;align-items:center;gap:.7rem}
.loc-body h3 .badge{font-family:var(--f-en);font-size:.72rem;letter-spacing:.16em;color:#fff;background:var(--blue);padding:.3rem .6rem;border-radius:4px}
.loc-list{margin:1.2rem 0 1.5rem;display:flex;flex-direction:column;gap:.8rem}
.loc-list li{display:flex;gap:.7rem;font-size:.96rem;color:var(--ink-soft);font-weight:400;line-height:1.7}
.loc-list svg{width:16px;height:16px;flex:0 0 16px;margin-top:.35rem;fill:var(--blue)}
.loc-list .closed{font-size:.82rem;color:#9a4b4b}
.loc .btn{margin-top:auto;justify-content:center}

/* ============ FOOTER ============ */
.footer{background:#08315d;color:var(--platinum);padding:clamp(3.5rem,7vw,5rem) var(--pad) 2.5rem}
.foot-top{display:grid;gap:2.5rem;padding-bottom:3rem;border-bottom:1px solid var(--line-lt)}
.foot-brand img{height:62px;margin-bottom:1.3rem}
.foot-brand p{font-weight:400;font-size:.96rem;max-width:34ch;line-height:1.9}
.foot-col h4{font-family:var(--f-en);letter-spacing:.2em;font-size:.8rem;color:#fff;margin-bottom:1.2rem}
.foot-col a{display:block;font-size:.95rem;color:var(--platinum);padding:.4rem 0;font-weight:400;transition:.3s}
.foot-col a:hover{color:#fff;padding-left:.4rem}
.social{display:flex;gap:.8rem;margin-top:.4rem}
.social a{width:42px;height:42px;border:1px solid var(--line-lt);border-radius:50%;display:grid;place-items:center;transition:.35s}
.social a:hover{background:var(--blue);border-color:var(--blue)}
.social svg{width:18px;height:18px;fill:var(--platinum);transition:.35s}
.social a:hover svg{fill:#fff}
.foot-bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.8rem;font-size:.84rem;color:#6c7d92;letter-spacing:.03em}

/* ============ RESPONSIVE ============ */
@media(max-width:1080px){
  .nav{display:none}.burger{display:block}
  .prod-grid{grid-template-columns:1fr}
  .reason-grid{grid-template-columns:1fr;max-width:560px;margin:0 auto}
}
@media(max-width:900px){
  .about-grid{grid-template-columns:1fr;gap:3rem}
  .about-media{max-width:560px}
  .treat-grid{grid-template-columns:repeat(2,1fr)}
  .flow-grid{grid-template-columns:repeat(2,1fr);gap:2rem 1.5rem}
  .rev-inner{grid-template-columns:1fr;gap:2.5rem}
  .contact-top{grid-template-columns:1fr}
  .loc-grid{grid-template-columns:1fr}
  .price-grid{grid-template-columns:1fr}
  .gal-grid{grid-template-columns:repeat(4,1fr)}
  .g1{grid-column:span 2;grid-row:span 2}.g2{grid-column:span 2}.g3{grid-column:span 2}.g4{grid-column:span 2}.g5{grid-column:span 4}
}
@media(max-width:620px){
  .pcard{grid-template-columns:1fr}.pmedia{min-height:210px}
  .treat-grid{grid-template-columns:1fr;max-width:440px;margin:0 auto}
  .price-first{grid-template-columns:1fr;text-align:left;gap:1rem}
  .price-first .pf-r{text-align:left}
  .flow-grid{grid-template-columns:1fr}
  .scrollcue{display:none}
  .hero-actions .btn{flex:1 1 auto;justify-content:center}
  .gal-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:140px}
  .g1,.g2,.g3,.g4,.g5{grid-column:span 1;grid-row:span 1}.g1{grid-column:span 2}
  .creds{flex-direction:column;align-items:stretch}.creds span{text-align:center}
}
@media(max-width:400px){.hero h1{font-size:2rem}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* ============ PAGE HERO (sub-pages) ============ */
.page-hero{padding:calc(clamp(60px,6vw,80px) + 2.1rem) var(--pad) clamp(1.5rem,3vw,2.3rem);background:linear-gradient(180deg,#eef2f7,#e3e9f1);display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem}
.page-hero h1{font-family:var(--f-disp);font-size:clamp(1.8rem,4.4vw,3rem);font-weight:700;color:var(--blue-ink);letter-spacing:.02em;line-height:1.3}
.page-hero .crumb{font-size:.9rem;color:var(--ink-soft)}
.page-hero .crumb a{color:var(--blue)}
.page-hero .crumb a:hover{text-decoration:underline}
.page-section{padding:clamp(2.2rem,4.5vw,4rem) var(--pad)}

/* ============ REVIEWS PAGE ============ */
.rev-intro{text-align:center;max-width:760px;margin:0 auto clamp(2rem,4vw,3.2rem);color:var(--ink-soft);font-size:1.02rem;line-height:1.9}
.rev-intro .small{display:block;margin-top:.5rem;font-size:.86rem;color:#8590a0}
.rlist{max-width:880px;margin:0 auto;border-top:2px dashed var(--blue-3)}
.rq{padding:clamp(2rem,4vw,3rem) .5rem;text-align:center;border-bottom:2px dashed var(--blue-3)}
.rq p{font-family:var(--f-disp);font-size:clamp(1.1rem,2.1vw,1.45rem);font-weight:600;line-height:1.9;color:var(--blue-ink)}
.rq .who{display:block;margin-top:1.2rem;font-size:.9rem;color:var(--ink-soft);font-family:var(--f-body);font-weight:400}
.review-cta{background:var(--cream);border-radius:18px;margin:clamp(2.5rem,5vw,4rem) auto 0;max-width:980px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(1.5rem,3vw,3rem);padding:clamp(2rem,4vw,3.4rem);box-shadow:var(--shadow-sm)}
.review-cta .rc-media{border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:#efe2c5}
.review-cta .rc-media img{width:100%;height:100%;object-fit:cover}
.review-cta h3{font-family:var(--f-disp);color:var(--gold);font-size:clamp(1.15rem,2vw,1.5rem);font-weight:700;line-height:1.7;margin-bottom:1.4rem}
.review-cta .post-btn{display:inline-flex;align-items:center;gap:.6rem;background:var(--sage);color:#fff;padding:.95rem 1.8rem;border-radius:999px;font-weight:600;font-size:.95rem;letter-spacing:.03em;transition:.35s;align-self:flex-start;width:max-content}
.review-cta .post-btn:hover{background:var(--sage-dk);transform:translateY(-3px)}
@media(max-width:760px){.review-cta{grid-template-columns:1fr}.review-cta .rc-media{order:2}}

/* ============ BOOK / RESERVATION OVERVIEW (home) ============ */
.book{background:linear-gradient(135deg,var(--navy-2),var(--navy));color:#fff;text-align:center}
.book-inner{max-width:760px;margin-inline:auto}
.book .kicker{color:var(--blue-3);justify-content:center}
.book .kicker::before{display:none}
.book .title{color:#fff}
.book-lead{color:#d8e4f3;font-weight:400;font-size:1.05rem;line-height:1.95;margin:1.1rem auto 2.2rem;max-width:600px}
.book-facts{display:flex;flex-wrap:wrap;justify-content:center;gap:1.4rem 2.8rem;margin-bottom:2.4rem;padding:0}
.book-facts li{list-style:none;display:flex;flex-direction:column;align-items:center;gap:.2rem}
.book-facts li span{font-family:var(--f-en);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--blue-3)}
.book-facts li b{font-family:var(--f-disp);font-size:1.15rem;font-weight:600;color:#fff}
.book-facts li small{font-size:.84rem;color:#a9c4e2}
.book-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem}
.book .btn-ghost{border-color:rgba(255,255,255,.55);color:#fff}
.book-link{display:inline-block;margin-top:1.4rem;color:var(--blue-3);font-size:.94rem;letter-spacing:.02em;transition:color .3s}
.book-link:hover{color:#fff;text-decoration:underline}

/* drawer footer tappable links */
.drawer .d-foot a{color:inherit;text-decoration:none}
.drawer .d-foot a[href^="mailto"]{display:block;margin-top:.2rem;color:var(--blue-3)}

/* review platform links (reviews page) */
.rev-platforms{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem 1rem;max-width:880px;margin:0 auto clamp(1.6rem,3vw,2.4rem)}
.rev-platforms a{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.3rem;border:1px solid var(--line);border-radius:999px;font-family:var(--f-en);font-size:.86rem;letter-spacing:.04em;color:var(--blue-ink);font-weight:600;background:#fff;transition:border-color .3s,color .3s,transform .3s}
.rev-platforms a:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px)}

/* ===== product detail blocks (products page) ===== */
.prod-stack{display:flex;flex-direction:column;gap:clamp(2rem,4vw,3.5rem)}
.pdetail{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(1.4rem,3vw,2.8rem);align-items:center;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm)}
.pdetail.rev .pd-gallery{order:2}
.pd-gallery{padding:clamp(1.2rem,2.4vw,2rem);display:flex;flex-direction:column;gap:.7rem}
.pd-main{border-radius:14px;overflow:hidden;aspect-ratio:1/1;background:radial-gradient(120% 120% at 50% 25%,#ffffff,rgba(255,255,255,.35));display:flex;align-items:center;justify-content:center;padding:1.1rem}
.pd-main img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 22px 30px rgba(0,0,0,.2))}
.pd-thumbs{display:flex;gap:.6rem}
.pd-thumb{flex:1;border:2px solid transparent;border-radius:10px;overflow:hidden;cursor:pointer;background:#fff;padding:.35rem;aspect-ratio:1/1;transition:border-color .3s,transform .3s}
.pd-thumb img{width:100%;height:100%;object-fit:contain}
.pd-thumb:hover{transform:translateY(-2px)}
.pd-info{padding:clamp(1.6rem,2.8vw,2.6rem);display:flex;flex-direction:column}
.pd-info .romaji{font-family:var(--f-en);letter-spacing:.14em;font-size:.82rem;text-transform:uppercase;font-weight:600}
.pd-info h3{font-family:var(--f-disp);font-size:clamp(1.55rem,3vw,2.15rem);font-weight:700;margin:.4rem 0 .55rem;line-height:1.3}
.pd-tag{font-weight:600;margin-bottom:1rem;line-height:1.7}
.pd-tag .en{font-family:var(--f-en);font-size:.85rem;letter-spacing:.04em;opacity:.85}
.pd-desc{font-size:.98rem;color:var(--ink-soft);line-height:1.9;margin-bottom:1.2rem}
.pd-feats{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin:0 0 1.5rem;padding:0}
.pd-feats li{position:relative;padding-left:1.5rem;font-size:.93rem;line-height:1.6}
.pd-feats li::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.55}
.pactions .detail-link.alt{background:transparent;border:1px solid currentColor;gap:.45rem}
.amazon.disabled{background:#c6cfd9;color:#fff;cursor:default;pointer-events:none}
.pdetail.warm{background:linear-gradient(135deg,#f7f0dd,#ece0c4);border-color:var(--warm-2)}
.pdetail.warm .romaji{color:var(--warm-ink)}.pdetail.warm h3,.pdetail.warm .pd-tag{color:#6e4a1e}.pdetail.warm .pd-desc,.pdetail.warm .pd-feats li{color:#6b5a3b}.pdetail.warm .pd-thumb:hover{border-color:var(--warm-ink)}.pdetail.warm .detail-link.alt{color:#6e4a1e}
.pdetail.aqua{background:linear-gradient(135deg,#e8f7f8,#cdeef0);border-color:var(--aqua-2)}
.pdetail.aqua .romaji{color:var(--aqua-ink)}.pdetail.aqua h3,.pdetail.aqua .pd-tag{color:#0e6a62}.pdetail.aqua .pd-desc,.pdetail.aqua .pd-feats li{color:#2d5f5a}.pdetail.aqua .pd-thumb:hover{border-color:var(--aqua-ink)}.pdetail.aqua .detail-link.alt{color:#0e6a62}
@media(max-width:820px){.pdetail{grid-template-columns:1fr}.pdetail.rev .pd-gallery{order:0}}

/* ===== Sagamihara info, pricing, booking (P1–P4) ===== */
.price-first .pf-r .camp small{font-size:.9rem;margin-left:.2rem;color:var(--platinum-lt)}
.prow.wide{grid-column:1/-1}
.hho-list{display:flex;flex-wrap:wrap;gap:.8rem 2.4rem;padding:0;margin:.4rem 0 0}
.hho-list li{list-style:none;display:flex;align-items:baseline;gap:.7rem}
.hho-list b{font-family:var(--f-en);font-size:1.6rem;font-weight:600;color:var(--navy)}
.hho-list b small{font-size:.85rem;color:var(--ink-soft);margin-left:.1rem}
.price-note{line-height:1.9}
.loc-grid.single{grid-template-columns:1fr;max-width:920px;margin-inline:auto}
.loc-big{font-family:var(--f-disp);font-size:clamp(1.15rem,2.4vw,1.45rem);font-weight:700;color:var(--navy);line-height:1.6;margin-top:1rem}
.loc-tel{display:inline-block;font-family:var(--f-en);font-size:clamp(1.5rem,3.4vw,2.1rem);font-weight:600;letter-spacing:.04em;color:var(--blue);margin-top:.3rem}
.loc .book-actions{justify-content:flex-start;margin-top:auto}
.loc .book-actions .btn{margin-top:0}
.btn-line{background:#06c755;color:#fff}
.btn-line:hover{background:#05a647;transform:translateY(-3px)}
.mbar{display:none}
@media(max-width:900px){
  .mbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:1050;background:var(--navy);box-shadow:0 -6px 20px -8px rgba(0,0,0,.35);padding-bottom:env(safe-area-inset-bottom)}
  .mbar a{flex:1;display:flex;align-items:center;justify-content:center;min-height:56px;font-size:1rem;font-weight:700;color:#fff;letter-spacing:.04em}
  .mbar .mb-book{background:var(--sage)}
  .mbar .mb-line{background:#06c755}
  .mbar .mb-tel{background:var(--blue)}
  body.has-mbar{padding-bottom:calc(56px + env(safe-area-inset-bottom))}
  .hho-list b{font-size:1.4rem}
}
[hidden]{display:none!important}
.price-first .pf-r .camp{font-size:clamp(2rem,4.4vw,2.6rem);color:#fff}

/* ===== Homepage (P5) ===== */
.entries{background:#fff}
.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.4vw,1.8rem)}
.entry{position:relative;display:block;border-radius:18px;overflow:hidden;min-height:clamp(300px,34vw,420px);color:#fff;box-shadow:var(--shadow);text-decoration:none}
.entry img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.16,1,.3,1)}
.entry::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,45,90,.15) 20%,rgba(10,45,90,.88))}
.entry:hover img{transform:scale(1.05)}
.entry-body{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:clamp(1.4rem,3vw,2.4rem)}
.entry-body .en{font-size:.78rem;color:var(--blue-3)}
.entry-body h2{font-family:var(--f-disp);font-size:clamp(1.6rem,3.4vw,2.4rem);font-weight:700;line-height:1.35;margin:.4rem 0 .6rem}
.entry-body p{font-size:.95rem;color:var(--platinum-lt);max-width:36ch}
.entry-go{display:inline-block;margin-top:1rem;font-weight:700;border-bottom:1px solid rgba(255,255,255,.7)}
.mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.7rem,1.6vw,1.1rem);margin-top:clamp(1rem,2.4vw,1.8rem)}
.mini{display:flex;flex-direction:column;gap:.2rem;padding:1.2rem 1.3rem;border:1px solid var(--line);border-radius:12px;background:var(--paper);text-decoration:none;transition:transform .3s,box-shadow .3s}
.mini:hover{transform:translateY(-3px);box-shadow:var(--shadow-sm)}
.mini .en{font-size:.74rem;color:var(--blue)}
.mini b{font-family:var(--f-disp);font-size:1.05rem;color:var(--navy)}
.concept-head{max-width:820px;margin:0 auto clamp(2rem,4vw,3rem);text-align:center}
.concept-head .kicker{justify-content:center}
.concept-head .lead{margin:1rem auto 0}
.concept-list{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.8rem,1.8vw,1.2rem);padding:0}
.concept-list li{list-style:none;background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.5rem;display:flex;flex-direction:column;gap:.5rem;box-shadow:var(--shadow-sm)}
.concept-list b{font-family:var(--f-disp);font-size:1.15rem;color:var(--navy)}
.concept-list span{font-size:.95rem;color:var(--ink-soft);line-height:1.8}
.forwho{background:var(--sky)}
.forwho-inner{display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(1.5rem,4vw,3rem);align-items:center;max-width:1100px;margin:0 auto}
.check-list{padding:0;display:flex;flex-direction:column;gap:.75rem;margin:1rem 0}
.check-list li{list-style:none;position:relative;padding-left:1.8rem;font-size:1rem;line-height:1.7;color:var(--ink)}
.check-list li::before{content:"";position:absolute;left:0;top:.45em;width:1.05rem;height:1.05rem;border-radius:50%;background:var(--sage) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/70% no-repeat}
.salon{background:#fff}
.salon-card{max-width:760px;margin:0 auto;text-align:center;border:1px solid var(--line);border-radius:18px;padding:clamp(1.8rem,4vw,3rem);box-shadow:var(--shadow-sm);background:var(--paper)}
.salon-card .kicker{justify-content:center}
.salon-addr{font-family:var(--f-disp);font-weight:700;font-size:clamp(1.25rem,3vw,1.6rem);color:var(--navy);line-height:1.6;margin-top:1rem}
.salon-tel{display:inline-block;font-family:var(--f-en);font-size:clamp(1.7rem,4.4vw,2.4rem);font-weight:600;letter-spacing:.04em;color:var(--blue);margin:.4rem 0 1rem}
.salon-facts{padding:0;margin:0 0 1.6rem;display:flex;flex-direction:column;gap:.35rem;color:var(--ink-soft)}
.salon-facts li{list-style:none}
.text-link{color:var(--blue);font-weight:500;border-bottom:1px solid currentColor}
.reviews .disclaimer{margin-top:1rem;font-size:.82rem;opacity:.85}
.listening{background:linear-gradient(180deg,var(--sky),#fff)}
.listen-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;max-width:1150px;margin:0 auto}
.listen-media img{width:100%;border-radius:18px;box-shadow:var(--shadow);aspect-ratio:4/3;object-fit:cover}
.listening .lead{margin-top:1rem}
.book-actions.left{justify-content:flex-start;margin-top:1.4rem}
.btn-outline{border:1px solid var(--blue);color:var(--blue);background:#fff}
.btn-outline:hover{background:var(--blue);color:#fff;transform:translateY(-3px)}
.services2{background:#fff}
.svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2.4vw,1.8rem);max-width:1150px;margin:0 auto}
.svc{border:1px solid var(--line);border-radius:18px;padding:clamp(1.6rem,3vw,2.4rem);background:var(--paper);box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
.svc h3{font-family:var(--f-disp);font-size:clamp(1.4rem,2.6vw,1.8rem);font-weight:700;color:var(--navy);margin-bottom:.8rem}
.svc p{color:var(--ink-soft);line-height:1.9}
.svc-list{padding:0;margin:0 0 1.4rem;display:flex;flex-direction:column;gap:.4rem}
.svc-list li{list-style:none;padding-left:1.1rem;position:relative;color:var(--ink-soft)}
.svc-list li::before{content:"";position:absolute;left:0;top:.75em;width:6px;height:6px;border-radius:50%;background:var(--blue)}
.svc-link{margin-top:auto;padding-top:1rem;color:var(--blue);font-weight:700}
.svc .btn{margin-top:auto;align-self:flex-start}
.faq{background:var(--paper)}
.faq-inner{max-width:880px;margin:0 auto}
.faq-list{margin-top:1.6rem;display:flex;flex-direction:column;gap:.7rem}
.faq-list details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:1rem 1.3rem}
.faq-list summary{cursor:pointer;font-weight:700;color:var(--navy);font-size:1.02rem;list-style:none;position:relative;padding-right:1.8rem}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";position:absolute;right:0;top:-.1em;font-size:1.4rem;color:var(--blue)}
.faq-list details[open] summary::after{content:"−"}
.faq-list details p{margin-top:.7rem;color:var(--ink-soft);line-height:1.85}
@media(max-width:900px){
  .entry-grid,.svc-grid,.listen-grid,.forwho-inner{grid-template-columns:1fr}
  .mini-grid{grid-template-columns:1fr 1fr}
  .concept-list{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .concept-list{grid-template-columns:1fr}
  .entry{min-height:300px}
}
.home .hero h1{font-size:clamp(1.75rem,6.6vw,4.4rem)}

/* ===== Booking page ===== */
.booking{background:var(--paper)}
.booking-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(1.5rem,4vw,3rem);max-width:1150px;margin:0 auto;align-items:start}
.booking-lead{color:var(--ink-soft);line-height:1.9;margin:1rem 0 1.8rem}
.bform{background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(1.3rem,3vw,2.2rem);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:1.3rem}
.frow{display:flex;flex-direction:column;gap:.45rem}
.frow.two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.frow.two>div{display:flex;flex-direction:column;gap:.45rem}
.bform label,.bform .flabel{font-weight:700;color:var(--navy);font-size:1rem}
.bform em{font-style:normal;font-size:.78rem;background:var(--sage);color:#fff;padding:.12rem .45rem;border-radius:4px;margin-left:.3rem;vertical-align:.1em}
.bform .opt{font-size:.78rem;color:var(--ink-soft);font-weight:400;margin-left:.3rem}
.bform input[type=text],.bform input[type=tel],.bform input[type=date],.bform select,.bform textarea,.bdone textarea{width:100%;font:inherit;font-size:16px;padding:.8rem .9rem;border:1px solid rgba(14,63,120,.28);border-radius:10px;background:#fff;color:var(--ink)}
.bform input:focus,.bform select:focus,.bform textarea:focus{outline:2px solid var(--blue-2);outline-offset:1px}
.choices{display:flex;flex-wrap:wrap;gap:.7rem}
.choices label{display:flex;align-items:center;gap:.5rem;border:1px solid rgba(14,63,120,.28);border-radius:10px;padding:.7rem 1.1rem;font-weight:500;color:var(--ink);cursor:pointer}
.choices input,.agree input{width:1.15rem;height:1.15rem;accent-color:var(--sage)}
.fnote{font-size:.85rem;color:var(--ink-soft);margin-top:-.6rem}
.policy{padding:0;margin:.2rem 0 .4rem;display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;color:var(--ink-soft)}
.policy li{list-style:none;padding-left:1rem;position:relative;line-height:1.75}
.policy li::before{content:"・";position:absolute;left:0}
.agree{display:flex;align-items:center;gap:.6rem;cursor:pointer}
.ferror{background:#fdecec;color:#a12626;border-radius:10px;padding:.8rem 1rem;font-weight:500}
.bsubmit{justify-content:center;font-size:1.05rem;padding:1.1rem 2rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.bdone{background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(1.3rem,3vw,2.2rem);box-shadow:var(--shadow-sm)}
.bdone h3{font-family:var(--f-disp);font-size:1.4rem;color:var(--navy);margin-bottom:.8rem}
.bdone p{color:var(--ink-soft);line-height:1.85;margin-bottom:.8rem}
.bdone a{color:var(--blue)}
.bdone textarea{font-size:.9rem;margin:.4rem 0 1rem}
.booking-side{display:flex;flex-direction:column;gap:1rem;position:sticky;top:96px}
.side-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.4rem;box-shadow:var(--shadow-sm)}
.side-card h3{font-family:var(--f-disp);font-size:1.1rem;color:var(--navy);margin-bottom:.5rem}
.side-card p{font-size:.92rem;color:var(--ink-soft);line-height:1.8;margin-bottom:.8rem}
.side-tel{display:block;font-family:var(--f-en);font-size:1.9rem;font-weight:600;color:var(--blue);letter-spacing:.04em}
@media(max-width:900px){.booking-grid{grid-template-columns:1fr}.booking-side{position:static}}
@media(max-width:520px){.frow.two{grid-template-columns:1fr}}
.review-cta .post-btn+.post-btn{margin-left:.6rem}
@media(max-width:620px){.review-cta .post-btn+.post-btn{margin-left:0;margin-top:.6rem}}

/* ===== Staff profile + patent badge ===== */
.about-2{background:#fff}
@media(min-width:901px){.about-2 .about-media{order:2}}
.about-2 .about-media img:not(.m1){aspect-ratio:4/3;object-fit:cover}
.patent-badge{display:inline-flex;align-items:center;gap:.55rem;border:1.5px solid #b8952e;color:#8a6d1c;background:linear-gradient(180deg,#fffaf0,#f6ecd2);border-radius:999px;padding:.35rem .9rem .35rem .45rem;font-family:var(--f-en);font-weight:700;letter-spacing:.14em;font-size:.84rem;margin:.2rem 0 .8rem}
.patent-badge svg{width:26px;height:26px;flex:0 0 26px}
.patent-badge small{font-family:var(--f-body);letter-spacing:.02em;font-weight:500;font-size:.84rem;color:#6d5718}

/* ===== 369 SPEAKER listening: homepage teaser + listening.html ===== */
.lfree{display:inline-block;font-family:var(--f-en);font-weight:700;letter-spacing:.14em;font-size:.84rem;background:#fff;color:var(--navy);padding:.4rem .9rem;border-radius:999px;margin-bottom:1rem}
.lteaser{background:linear-gradient(135deg,#071f3d,var(--navy) 55%,var(--blue-2));color:#fff;overflow:hidden}
.lteaser-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:auto 1fr;gap:clamp(1.8rem,5vw,4rem);align-items:center}
.lteaser .title{color:#fff}
.lteaser p{color:var(--platinum-lt);line-height:1.9;margin:1rem 0 .4rem;max-width:46ch}
.lt-rings{position:relative;width:clamp(170px,22vw,240px);aspect-ratio:1;display:grid;place-items:center}
.lt-rings span{position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(111,177,230,.55);animation:ltpulse 3.6s ease-out infinite}
.lt-rings span:nth-child(2){animation-delay:1.2s}
.lt-rings span:nth-child(3){animation-delay:2.4s}
.lt-rings b{position:relative;font-family:var(--f-en);font-size:clamp(2.4rem,4.4vw,3.2rem);font-weight:600;letter-spacing:.06em;background:var(--metal);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
@keyframes ltpulse{0%{transform:scale(.45);opacity:0}25%{opacity:1}100%{transform:scale(1.05);opacity:0}}
.lhero{background:linear-gradient(180deg,var(--sky),#fff)}
.lhero .lfree{background:var(--navy);color:#fff}
.lhero-grid{max-width:1150px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.8rem,4vw,3.5rem);align-items:center}
.lhero .lead{margin:1rem 0 .4rem}
.lhero-media{display:grid;grid-template-columns:1.4fr 1fr;gap:1rem;align-items:end}
.lhero-media img{width:100%;border-radius:16px;box-shadow:var(--shadow);object-fit:cover;aspect-ratio:3/4}
.lhero-media img+img{aspect-ratio:1}
.lwhat{background:#fff}
.lwhat-head{max-width:820px;margin:0 auto clamp(2rem,4vw,3rem);text-align:center}
.lwhat-head .kicker{justify-content:center}
.lwhat-head .lead{margin:1rem auto 0}
.lwhat-grid{max-width:1150px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.9rem,2vw,1.4rem)}
.lcard{border:1px solid var(--line);border-radius:16px;padding:clamp(1.4rem,2.6vw,2rem);background:var(--paper);box-shadow:var(--shadow-sm)}
.lcard .lnum{font-family:var(--f-en);font-size:1.6rem;color:var(--blue-2);font-weight:600}
.lcard h3{font-family:var(--f-disp);font-size:1.25rem;color:var(--navy);margin:.4rem 0 .6rem}
.lcard p{color:var(--ink-soft);line-height:1.9;font-size:.96rem}
.lsession{background:var(--paper)}
.lsession-grid{max-width:1150px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.8rem,4vw,3.5rem);align-items:start}
.lsteps{counter-reset:s;padding:0;margin:1.4rem 0 0;display:flex;flex-direction:column;gap:1rem}
.lsteps li{list-style:none;counter-increment:s;position:relative;padding-left:3.2rem;display:flex;flex-direction:column;gap:.2rem}
.lsteps li::before{content:counter(s);position:absolute;left:0;top:0;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-family:var(--f-en);font-weight:600}
.lsteps b{font-family:var(--f-disp);font-size:1.1rem;color:var(--navy)}
.lsteps span{color:var(--ink-soft);line-height:1.8}
.linfo{background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(1.4rem,3vw,2.2rem);box-shadow:var(--shadow-sm)}
.linfo h3{font-family:var(--f-disp);font-size:1.3rem;color:var(--navy);margin-bottom:1rem}
.linfo dl{display:grid;grid-template-columns:auto 1fr;gap:.7rem 1.2rem;margin:0 0 1.4rem}
.linfo dt{font-weight:700;color:var(--navy);white-space:nowrap}
.linfo dd{margin:0;color:var(--ink-soft);line-height:1.8}
.linstall{background:#fff}
.linstall-inner{max-width:820px;margin:0 auto;text-align:center}
.linstall-inner .kicker{justify-content:center}
.linstall .lead{margin:1rem auto 1.6rem}
@media(max-width:900px){
  .lteaser-inner{grid-template-columns:1fr;text-align:left}
  .lt-rings{width:150px}
  .lhero-grid,.lsession-grid,.lwhat-grid{grid-template-columns:1fr}
}

/* ===== listening imagery ===== */
.lt-media img{width:clamp(260px,34vw,460px);aspect-ratio:16/10;object-fit:cover;border-radius:18px;box-shadow:0 30px 60px -30px rgba(0,0,0,.7)}
.lhero-media img{aspect-ratio:4/5}
.lhero-media img+img{aspect-ratio:4/5;object-position:30% center}
.lwhat-visual{max-width:1150px;margin:0 auto clamp(1.5rem,3vw,2.4rem)}
.lwhat-visual img{width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:18px;box-shadow:var(--shadow)}
.lsession-photo{max-width:1150px;margin:clamp(1.8rem,4vw,3rem) auto 0}
.lsession-photo img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:18px;box-shadow:var(--shadow)}
@media(max-width:900px){.lt-media img{width:100%}.lhero-media img,.lhero-media img+img{aspect-ratio:3/4}}
.lvfx{max-width:1150px;margin:clamp(1.8rem,4vw,3rem) auto 0;display:grid;grid-template-columns:2fr 1fr;grid-template-rows:auto auto;gap:1rem}
.lvfx img{width:100%;height:100%;object-fit:cover;border-radius:18px;box-shadow:var(--shadow)}
.lvfx-a{aspect-ratio:16/9}
.lvfx-b{aspect-ratio:16/9;grid-column:1;grid-row:2}
.lvfx-c{grid-column:2;grid-row:1/3}
@media(max-width:700px){.lvfx{grid-template-columns:1fr}.lvfx-b,.lvfx-c{grid-column:auto;grid-row:auto}.lvfx-c{aspect-ratio:4/5}}

/* ===== PHOTON CHARGE ===== */
.pcard.sky{grid-column:1/-1;grid-template-columns:1fr 1.4fr;background:linear-gradient(135deg,#eef6ff,#d6e9fb);border-color:#bcd8f3}
.pcard.sky .pmedia{background:radial-gradient(120% 120% at 50% 22%,#ffffff,#dbeafa);padding:1.1rem}
.pcard.sky .pmedia img{max-height:none;width:100%;height:100%;object-fit:cover;border-radius:12px;filter:none;aspect-ratio:4/3}
.pcard.sky .romaji{color:#2f6fae}
.pcard.sky h3{color:#1d4f86}
.pcard.sky .desc{color:#36597d}
.pdetail.sky{background:linear-gradient(135deg,#f3f9ff,#dcebfb);border-color:#bcd8f3}
.pdetail.sky .romaji{color:#2f6fae}
.pdetail.sky h3{color:#1d4f86}
.pc-life{margin-top:clamp(1.2rem,2.4vw,1.8rem);border:1px solid #bcd8f3;border-radius:18px;padding:clamp(1.2rem,2.6vw,2rem);background:#fff}
.pc-life h4{font-family:var(--f-disp);font-size:1.25rem;color:#1d4f86;margin-bottom:1rem}
.pc-life h4 .en{font-size:.75rem;color:#2f6fae;margin-left:.5rem}
.pc-life-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem}
.pc-life figure{margin:0}
.pc-life img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:12px;box-shadow:var(--shadow-sm)}
.pc-life figcaption{font-size:.88rem;color:var(--ink-soft);margin-top:.45rem;text-align:center}
@media(max-width:820px){.pcard.sky{grid-template-columns:1fr}.pc-life-grid{grid-template-columns:1fr 1fr}}

/* ===== Product pages (product-*.html) + product hub ===== */
.pp-wrap{max-width:1150px;margin:0 auto}
.btn-ghost-dark{border:1px solid var(--navy);color:var(--navy);background:transparent}
.btn-ghost-dark:hover{background:var(--navy);color:#fff;transform:translateY(-3px)}
.pp-hero{background:linear-gradient(180deg,#fff,var(--sky))}
.pp-hero-grid{max-width:1150px;margin:0 auto;display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:start}
.pp-hero .pd-main img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:18px;box-shadow:var(--shadow);background:#fff}
.pp-hero .pd-thumbs{display:flex;gap:.6rem;margin-top:.8rem;flex-wrap:wrap}
.pp-hero .pd-thumb{width:78px;height:78px;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;cursor:pointer}
.pp-hero .pd-thumb img{width:100%;height:100%;object-fit:cover}
.pp-cat{display:inline-block;font-size:.84rem;color:var(--blue);background:var(--sky);border:1px solid var(--line);padding:.3rem .8rem;border-radius:999px;margin-bottom:.8rem}
.pp-info .romaji{display:block;font-family:var(--f-en);letter-spacing:.2em;font-size:.85rem;color:var(--ink-soft);text-transform:uppercase}
.pp-catch{font-family:var(--f-disp);font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1.35;color:var(--navy);margin:.4rem 0 1rem}
.pp-lead{color:var(--ink-soft);line-height:1.95;font-size:1.02rem;margin-bottom:1.2rem}
.pp-price{font-family:var(--f-en);font-size:clamp(1.6rem,3vw,2.1rem);font-weight:600;color:var(--navy);display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-bottom:1.2rem}
.pp-price small{font-family:var(--f-body);font-size:.85rem;color:var(--ink-soft);font-weight:400}
.pp-stock{font-family:var(--f-body);font-size:.8rem;font-weight:700;padding:.25rem .7rem;border-radius:999px}
.pp-stock.in{background:#e3f4ec;color:#1f7a4f}
.pp-stock.out{background:#fdecec;color:#a12626}
.pp-storenote{font-size:.85rem;color:var(--ink-soft);margin-top:.8rem}
.pp-story{background:#fff}
.pp-story-grid{max-width:1150px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:center}
.pp-story p{color:var(--ink-soft);line-height:2;margin-top:1rem}
.pp-story-media img{width:100%;border-radius:18px;box-shadow:var(--shadow);aspect-ratio:4/3;object-fit:cover}
.pp-features{background:var(--paper)}
.pp-feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1.6rem}
.pp-feat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.4rem;box-shadow:var(--shadow-sm);border-top:3px solid var(--blue-2)}
.pp-feat h4{font-family:var(--f-disp);font-size:1.08rem;color:var(--navy);margin-bottom:.5rem}
.pp-feat p{color:var(--ink-soft);font-size:.94rem;line-height:1.85}
.pp-scenes{background:#fff}
.pp-scene-grid{display:grid;gap:1rem;margin-top:1.6rem}
.pp-scene-grid.n1{grid-template-columns:1fr}.pp-scene-grid.n2{grid-template-columns:1fr 1fr}.pp-scene-grid.n3{grid-template-columns:repeat(3,1fr)}.pp-scene-grid.n4{grid-template-columns:repeat(2,1fr)}
.pp-scene-grid figure{margin:0}
.pp-scene-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px;box-shadow:var(--shadow-sm)}
.pp-scene-grid.n1 img{aspect-ratio:21/9}
.pp-scene-grid figcaption{font-size:.9rem;color:var(--ink-soft);margin-top:.5rem}
.pp-spec{background:var(--paper)}
.pp-spec-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(1.6rem,4vw,3rem);align-items:start}
.pp-dl{display:grid;grid-template-columns:auto 1fr;gap:.8rem 1.4rem;margin:1.4rem 0 0;background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.4rem}
.pp-dl dt{font-weight:700;color:var(--navy);white-space:nowrap}
.pp-dl dd{margin:0;color:var(--ink-soft)}
.pp-notes{padding:0;margin:1.2rem 0 0;display:flex;flex-direction:column;gap:.5rem}
.pp-notes li{list-style:none;font-size:.9rem;color:var(--ink-soft);line-height:1.8;padding-left:1.1rem;position:relative}
.pp-notes li::before{content:"※";position:absolute;left:0}
.pp-buybox{background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(1.4rem,3vw,2rem);box-shadow:var(--shadow);position:sticky;top:96px}
.pp-buybox .romaji{font-family:var(--f-en);letter-spacing:.2em;font-size:.8rem;color:var(--ink-soft)}
.pp-buybox h3{font-family:var(--f-disp);font-size:1.3rem;color:var(--navy);margin:.3rem 0 .8rem}
.pp-related{background:#fff}
.pc2-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1.1rem;margin:1.6rem 0}
.pcard2{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);text-decoration:none;transition:transform .3s,box-shadow .3s}
.pcard2:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.pc2-media{position:relative;aspect-ratio:1;background:var(--paper-2)}
.pc2-media img{width:100%;height:100%;object-fit:cover}
.pc2-sold{position:absolute;top:.7rem;left:.7rem;background:#a12626;color:#fff;font-size:.78rem;font-weight:700;padding:.25rem .6rem;border-radius:4px}
.pc2-body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.35rem;flex:1}
.pc2-body .en{font-size:.72rem;color:var(--blue)}
.pc2-body h3{font-family:var(--f-disp);font-size:1.08rem;color:var(--navy);line-height:1.5}
.pc2-body p{font-size:.88rem;color:var(--ink-soft)}
.pc2-price{font-family:var(--f-en);font-size:1.25rem;font-weight:600;color:var(--navy);margin-top:auto}
.pc2-price small{font-family:var(--f-body);font-size:.78rem;color:var(--ink-soft);font-weight:400}
.pc2-go{font-size:.85rem;font-weight:700;color:var(--blue)}
.hub{background:var(--paper)}
.hub-intro{max-width:820px;margin:0 auto clamp(2rem,4vw,3rem);text-align:center}
.hub-intro .kicker{justify-content:center}
.hub-intro .lead{margin:1rem auto 0}
.hub-features{display:flex;flex-direction:column;gap:clamp(1.4rem,3vw,2.2rem);margin-bottom:clamp(2.4rem,5vw,4rem)}
.hub-feature{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.4rem,4vw,3rem);align-items:center;background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(1.2rem,2.6vw,2rem);box-shadow:var(--shadow)}
.hub-feature.rev .hf-media{order:2}
.hf-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px}
.hf-body .en{font-size:.78rem;color:var(--blue)}
.hf-body h3{font-family:var(--f-disp);font-size:clamp(1.6rem,3vw,2.2rem);color:var(--navy);margin:.3rem 0}
.hf-catch{font-family:var(--f-disp);font-size:1.15rem;color:var(--blue-ink);margin-bottom:.8rem}
.hf-body p{color:var(--ink-soft);line-height:1.9}
.hf-body .pp-price{margin:1rem 0}
.hub-cat{margin-top:clamp(2rem,4vw,3rem)}
.hub-cat-head{display:flex;align-items:baseline;gap:1rem;border-bottom:1px solid var(--line);padding-bottom:.6rem}
.hub-cat-head h3{font-family:var(--f-disp);font-size:1.4rem;color:var(--navy)}
.hub-cat-head .en{font-size:.76rem;color:var(--blue)}
.hub-store{text-align:center;margin-top:clamp(2.4rem,5vw,3.6rem);padding:clamp(1.6rem,3vw,2.4rem);background:#fff;border:1px solid var(--line);border-radius:18px}
.hub-store p{color:var(--ink-soft);margin-bottom:1rem}
@media(max-width:900px){
  .pp-hero-grid,.pp-story-grid,.pp-spec-grid,.hub-feature{grid-template-columns:1fr}
  .hub-feature.rev .hf-media{order:0}
  .pp-buybox{position:static}
  .pp-scene-grid.n3{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){.pp-scene-grid.n2,.pp-scene-grid.n3,.pp-scene-grid.n4{grid-template-columns:1fr}}

/* ===== Homepage featured products ===== */
.featured-products{background:linear-gradient(180deg,var(--paper),#fff)}
.fp{max-width:1150px;margin:0 auto clamp(1.4rem,3vw,2rem);display:grid;grid-template-columns:1.25fr 1fr;border-radius:24px;overflow:hidden;box-shadow:var(--shadow)}
.fp-media img{width:100%;height:100%;min-height:340px;object-fit:cover;display:block}
.fp-body{padding:clamp(1.6rem,3.4vw,2.8rem);display:flex;flex-direction:column;justify-content:center}
.fp-body .en{font-size:.78rem;letter-spacing:.24em}
.fp-body h3{font-family:var(--f-disp);font-size:clamp(1.8rem,3.4vw,2.6rem);margin:.3rem 0}
.fp-catch{font-family:var(--f-disp);font-size:1.2rem;margin-bottom:.8rem}
.fp-body p{line-height:1.9}
.fp-points{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:1rem 0}
.fp-points li{list-style:none;font-size:.82rem;padding:.3rem .8rem;border-radius:999px}
.fp-price{font-family:var(--f-en);font-size:1.9rem;font-weight:600;margin-bottom:1.1rem}
.fp-price small{font-family:var(--f-body);font-size:.85rem;font-weight:400;opacity:.8}
.fp-speaker{background:linear-gradient(135deg,#1b120b,#3a2614);color:#f3e7d3}
.fp-speaker .en{color:#d6b47a}.fp-speaker h3{color:#fff}.fp-speaker .fp-catch{color:#e9c98e}.fp-speaker p{color:#e6d8c2}
.fp-speaker .fp-points li{background:rgba(233,201,142,.14);color:#f1d9a8;border:1px solid rgba(233,201,142,.35)}
.fp-charge{background:linear-gradient(135deg,#eef6ff,#d6e9fb);grid-template-columns:1fr 1.25fr}
.fp-charge .fp-media{order:2}
.fp-charge .en{color:#2f6fae}.fp-charge h3{color:#1d4f86}.fp-charge .fp-catch{color:#2f6fae}.fp-charge p{color:#36597d}.fp-charge .fp-price{color:#1d4f86}
.fp-charge .fp-points li{background:#fff;color:#2f6fae;border:1px solid #bcd8f3}
.fp-more{max-width:1150px;margin:clamp(1.6rem,3vw,2.4rem) auto 0}
.fp-more-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
.fp-more-head h3{font-family:var(--f-disp);font-size:1.3rem;color:var(--navy)}
@media(max-width:900px){.fp,.fp-charge{grid-template-columns:1fr}.fp-charge .fp-media{order:0}.fp-media img{min-height:240px}}
.fp-more .pc2-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}

/* ===== Homepage product slider ===== */
.pslider{max-width:1150px;margin:clamp(1.8rem,3.4vw,2.6rem) auto 0}
.ps-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem}
.ps-head .en{font-size:.76rem;color:var(--blue)}
.ps-head h3{font-family:var(--f-disp);font-size:clamp(1.3rem,2.4vw,1.7rem);color:var(--navy)}
.ps-nav{display:flex;gap:.5rem}
.ps-nav button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--navy);font-size:1.6rem;line-height:1;cursor:pointer;box-shadow:var(--shadow-sm);transition:background .2s,color .2s}
.ps-nav button:hover{background:var(--navy);color:#fff}
.ps-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3 * 1.1rem) / 4);column-gap:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:.4rem .2rem 1rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ps-track::-webkit-scrollbar{display:none}
.ps-slide{scroll-snap-align:start;display:flex}
.ps-slide .pcard2{width:100%}
.ps-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.4rem}
.ps-dots{display:flex;gap:.45rem}
.ps-dots button{width:9px;height:9px;border-radius:50%;border:0;background:var(--platinum);padding:0;cursor:pointer;transition:width .3s,background .3s}
.ps-dots button.on{width:26px;border-radius:999px;background:var(--navy)}
@media(max-width:1000px){.ps-track{grid-auto-columns:calc((100% - 2 * 1.1rem) / 3)}}
@media(max-width:720px){.ps-track{grid-auto-columns:calc((100% - 1.1rem) / 2)}}
@media(max-width:480px){.ps-track{grid-auto-columns:78%}}

/* ===== Shop: header cart, buy box, cards, filters, cart & checkout ===== */
.hdr-cart{position:relative;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;color:#fff;margin-left:auto;margin-right:.4rem}
.hdr-cart svg{width:22px;height:22px;fill:currentColor}
.hdr-cart:hover{background:rgba(255,255,255,.12)}
.hc-n{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e8a33b;color:#fff;font-size:.76rem;font-weight:700;display:flex;align-items:center;justify-content:center}
@media(min-width:1081px){.hdr-cart{order:3;margin-left:.6rem;margin-right:0}}
.cart-toast{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:var(--navy);color:#fff;padding:.9rem 1.2rem;border-radius:12px;box-shadow:var(--shadow);font-size:.92rem;z-index:1200;opacity:0;pointer-events:none;transition:.3s;max-width:min(92vw,520px)}
.cart-toast.show{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.cart-toast a{color:#ffd58a;font-weight:700;margin-left:.4rem;white-space:nowrap}
@media(min-width:901px){.cart-toast{bottom:28px}}
.buybox{display:flex;flex-direction:column;gap:.8rem;margin-bottom:.4rem}
.bb-field{display:flex;flex-direction:column;gap:.35rem;font-weight:700;color:var(--navy);font-size:.92rem}
.bb-field select{font:inherit;font-size:16px;padding:.75rem .9rem;border:1px solid rgba(14,63,120,.28);border-radius:10px;background:#fff;max-width:320px}
.bb-row{display:flex;gap:.7rem;flex-wrap:wrap;align-items:stretch}
.bb-qty{display:flex;align-items:center;border:1px solid rgba(14,63,120,.28);border-radius:999px;background:#fff;overflow:hidden}
.bb-qty button{width:42px;height:48px;border:0;background:transparent;font-size:1.2rem;color:var(--navy);cursor:pointer}
.bb-qty input{width:46px;text-align:center;border:0;font:inherit;font-size:16px;-moz-appearance:textfield}
.bb-qty input::-webkit-inner-spin-button,.bb-qty input::-webkit-outer-spin-button{-webkit-appearance:none}
.bb-add{flex:1;justify-content:center;min-width:200px}
.bb-inq{font-size:.88rem;color:var(--blue);font-weight:500}
.buybox .btn{align-self:flex-start}
.pcard2{display:flex;flex-direction:column}
.pc2-link{display:flex;flex-direction:column;flex:1;text-decoration:none}
.pc2-act{padding:0 1.2rem 1.2rem}
.pc2-cart{display:flex;align-items:center;justify-content:center;width:100%;padding:.75rem 1rem;border-radius:999px;border:0;background:var(--navy);color:#fff;font:inherit;font-size:.9rem;font-weight:700;cursor:pointer;text-decoration:none;transition:background .2s}
.pc2-cart:hover{background:var(--blue)}
.pc2-cart.ghost{background:transparent;border:1px solid var(--line);color:var(--navy)}
.pc2-cart.ghost:hover{background:var(--sky)}
.pc2-media img{background:#fff}
.shop-filter{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.2rem 1.4rem;box-shadow:var(--shadow-sm);margin-top:clamp(1.6rem,3vw,2.4rem);display:flex;flex-direction:column;gap:1rem}
.sf-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.sf-chips button{border:1px solid var(--line);background:var(--paper);color:var(--navy);border-radius:999px;padding:.5rem 1rem;font:inherit;font-size:.88rem;cursor:pointer}
.sf-chips button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.sf-controls{display:flex;flex-wrap:wrap;gap:.8rem 1.4rem;align-items:center}
.sf-controls label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--ink-soft)}
.sf-controls select{font:inherit;font-size:16px;padding:.5rem .7rem;border:1px solid rgba(14,63,120,.28);border-radius:8px;background:#fff}
.sf-check input{width:1.1rem;height:1.1rem;accent-color:var(--navy)}
.sf-count{font-size:.85rem;color:var(--ink-soft)}
.sf-count span{font-weight:700;color:var(--navy)}
.sf-none{text-align:center;color:var(--ink-soft);padding:2rem 0}
.pcard2[hidden]{display:none!important}
.shop{background:var(--paper)}
.shop-grid{max-width:1150px;margin:0 auto;display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:start}
.shop-steps{max-width:1150px;margin:0 auto 1.6rem;display:flex;gap:.5rem;flex-wrap:wrap}
.shop-steps span{font-size:.85rem;padding:.45rem .9rem;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink-soft)}
.shop-steps .on{background:var(--navy);color:#fff;border-color:var(--navy)}
.shop-steps .done{color:var(--blue)}
.cart-list{padding:0;margin:1.4rem 0;display:flex;flex-direction:column;gap:.8rem}
.ci{list-style:none;display:grid;grid-template-columns:84px 1fr auto auto auto;gap:1rem;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:.9rem 1rem;box-shadow:var(--shadow-sm)}
.ci-img img{width:84px;height:84px;object-fit:cover;border-radius:10px}
.ci-body{display:flex;flex-direction:column;gap:.2rem}
.ci-name{font-family:var(--f-disp);font-weight:700;color:var(--navy)}
.ci-var{font-size:.82rem;color:var(--ink-soft)}
.ci-price{font-size:.88rem;color:var(--ink-soft)}
.ci-price small{font-size:.8rem}
.ci-qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;overflow:hidden}
.ci-qty button{width:34px;height:36px;border:0;background:var(--paper);cursor:pointer;color:var(--navy);font-size:1rem}
.ci-qty span{min-width:30px;text-align:center;font-weight:700}
.ci-line{font-family:var(--f-en);font-weight:600;font-size:1.15rem;color:var(--navy);min-width:90px;text-align:right}
.ci-del{border:0;background:none;color:#a12626;font-size:.82rem;cursor:pointer;text-decoration:underline}
.cart-empty{background:#fff;border:1px dashed var(--line);border-radius:14px;padding:2rem;text-align:center;margin:1.4rem 0;display:flex;flex-direction:column;align-items:center;gap:1rem}
.cart-empty[hidden]{display:none}
.shop-summary{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.4rem;box-shadow:var(--shadow);position:sticky;top:96px}
.shop-summary h3{font-family:var(--f-disp);font-size:1.2rem;color:var(--navy);margin-bottom:.8rem}
.shop-summary dl{display:grid;grid-template-columns:1fr auto;gap:.5rem;margin:0 0 .8rem}
.shop-summary dt{color:var(--ink-soft)}
.shop-summary dd{margin:0;text-align:right;font-weight:700;color:var(--navy)}
.shop-summary .sum{font-family:var(--f-en);font-size:1.6rem}
.shop-note{font-size:.84rem;color:var(--ink-soft);line-height:1.8;margin-bottom:1rem}
.shop-go{width:100%;justify-content:center}
.co-items{padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.5rem;font-size:.9rem}
.co-items li{list-style:none;display:flex;justify-content:space-between;gap:.8rem;border-bottom:1px solid var(--line);padding-bottom:.5rem}
.co-h{font-family:var(--f-disp);color:var(--navy);font-size:1.15rem;margin-top:.4rem}
.bform input[type=email]{width:100%;font:inherit;font-size:16px;padding:.8rem .9rem;border:1px solid rgba(14,63,120,.28);border-radius:10px;background:#fff}
.legal{max-width:900px;margin:0 auto}
@media(max-width:900px){.shop-grid{grid-template-columns:1fr}.shop-summary{position:static}}
@media(max-width:620px){.ci{grid-template-columns:70px 1fr auto;grid-template-areas:"img body del" "img qty line"}.ci-img{grid-area:img}.ci-img img{width:70px;height:70px}.ci-body{grid-area:body}.ci-qty{grid-area:qty;justify-self:start}.ci-line{grid-area:line}.ci-del{grid-area:del}}
.guide-steps{counter-reset:g;padding:0;margin:1.4rem 0 2rem;display:flex;flex-direction:column;gap:.9rem}
.guide-steps li{list-style:none;counter-increment:g;position:relative;padding:1rem 1.2rem 1rem 3.6rem;background:#fff;border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;gap:.2rem}
.guide-steps li::before{content:counter(g);position:absolute;left:1rem;top:1rem;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-family:var(--f-en);font-weight:600}
.guide-steps b{color:var(--navy)}
.guide-steps span{color:var(--ink-soft);font-size:.94rem}
.guide-h{font-family:var(--f-disp);font-size:1.2rem;color:var(--navy);margin:1.8rem 0 .6rem;padding-bottom:.4rem;border-bottom:1px solid var(--line)}
.guide p{color:var(--ink-soft);line-height:1.95;margin-bottom:.6rem}
.guide a,.legal a,.shop-note a,.policy a,.pp-storenote a{color:var(--blue);text-decoration:underline}
.legal-links{margin-top:1.6rem}
.legal-date{text-align:right;font-size:.88rem}

/* ===== Header fix: nav + cart grouped on the right ===== */
.hdr{justify-content:flex-start}
.hdr .brand{margin-right:auto}
.hdr .nav{margin-left:auto}
.nav-cta{padding:.55rem 1.25rem .55rem 1rem;line-height:1;white-space:nowrap;font-family:var(--f-body);font-variant-numeric:tabular-nums}
.hdr-cart{order:0;margin:0 0 0 .2rem;width:40px;height:40px;border:1px solid rgba(255,255,255,.55)}
.hdr-cart:hover{background:#fff;color:var(--navy)}
@media(min-width:1081px){.hdr-cart{order:0;margin-left:clamp(.6rem,1.2vw,1.1rem)}}
@media(max-width:1080px){.hdr-cart{margin-left:auto;margin-right:.3rem;border-color:rgba(255,255,255,.35)}}
@media(min-width:1081px){.hdr-cart{margin-left:0}}
.bb-note{font-size:.84rem;color:var(--ink-soft);line-height:1.8;margin:0}
/* footer: 4 columns (brand / menu / shop / contact) */
.foot-top{grid-template-columns:1.3fr 1fr 1fr 1.25fr;gap:2rem}
@media(max-width:1080px){.foot-top{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.foot-top{grid-template-columns:1fr 1fr;gap:1.6rem 1.2rem}.foot-brand{grid-column:1/-1}.foot-col:last-child{grid-column:1/-1}}

/* ===== Form controls: same height everywhere (Safari ignores padding on native selects) ===== */
.bform select,.bb-field select,.sf-controls select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%230a4a90' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat right .8rem center/22px;padding-right:2.6rem;cursor:pointer;line-height:1.3}
.bform input[type=text],.bform input[type=tel],.bform input[type=email],.bform input[type=date],.bform select,.bb-field select{min-height:54px;padding-top:.85rem;padding-bottom:.85rem;border-radius:12px}
.bform input[type=date]{-webkit-appearance:none;appearance:none;display:flex;align-items:center}
.sf-controls select{min-height:44px;padding:.55rem 2.4rem .55rem .8rem;border-radius:10px}
.bform select:focus,.bb-field select:focus,.sf-controls select:focus{outline:2px solid var(--blue-2);outline-offset:1px}

/* ===== Booking page photos ===== */
.bk-banner{position:relative;margin:1.2rem 0 0;border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm)}
.bk-banner img{display:block;width:100%;aspect-ratio:21/9;object-fit:cover}
.bk-banner figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;flex-wrap:wrap;gap:.45rem;padding:1rem;background:linear-gradient(transparent,rgba(8,30,60,.55))}
.bk-banner figcaption span{background:rgba(255,255,255,.92);color:var(--navy);font-size:.82rem;font-weight:700;padding:.35rem .75rem;border-radius:999px}
.bk-flow{background:#fff}
.bk-flow-head{text-align:center;max-width:1150px;margin:0 auto clamp(1.6rem,4vw,2.6rem)}
.bk-flow-head .kicker{justify-content:center}
.bk-steps{list-style:none;margin:0 auto;padding:0;max-width:1150px;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.5vw,1.8rem)}
.bk-steps li{background:var(--paper);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
.bk-steps img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.bk-step-body{padding:1.2rem 1.3rem 1.5rem}
.bk-no{font-family:var(--f-en);letter-spacing:.2em;font-size:.8rem;font-weight:700;color:var(--blue)}
.bk-step-body h3{font-family:var(--f-disp);color:var(--navy);font-size:1.2rem;margin:.35rem 0 .55rem}
.bk-step-body p{color:var(--ink-soft);line-height:1.85;font-size:.94rem}
@media(max-width:900px){.bk-steps{grid-template-columns:1fr;max-width:560px}.bk-banner img{aspect-ratio:16/9}}
@media(max-width:520px){.bk-banner figcaption{padding:.7rem;gap:.35rem}.bk-banner figcaption span{font-size:.8rem;padding:.28rem .6rem}}
.bform input[type=text],.bform input[type=tel],.bform input[type=email],.bform input[type=date],.bform select{height:56px;min-height:56px;padding-top:0;padding-bottom:0;line-height:54px;box-sizing:border-box}
.bform input[type=date]::-webkit-date-and-time-value{text-align:left;line-height:54px}

/* ===== Contact page layout ===== */
.ct-intro{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(1.8rem,4vw,4rem);align-items:center;max-width:1150px;margin:0 auto clamp(3rem,6vw,5rem)}
.ct-intro-text .title{margin:1rem 0 1.2rem}
.ct-intro-text p{color:var(--ink-soft);line-height:1.9;margin-bottom:1.6rem;max-width:46ch}
.ct-facts{display:grid;grid-template-columns:repeat(3,auto);gap:.8rem;margin:0}
.ct-facts div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:.8rem 1rem}
.ct-facts dt{font-size:.8rem;color:var(--blue);font-weight:700;letter-spacing:.08em;margin-bottom:.25rem}
.ct-facts dd{margin:0;color:var(--navy);font-weight:700;font-size:.95rem;line-height:1.5}
.ct-facts small{display:block;font-weight:400;font-size:.84rem;color:var(--ink-soft)}
.ct-intro-photo{margin:0;border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}
.ct-intro-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.ct-head{text-align:center;max-width:1150px;margin:0 auto clamp(1.4rem,3vw,2.2rem)}
.ct-head .kicker{justify-content:center}
.ct-ways{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.5vw,1.6rem);max-width:1150px;margin:0 auto}
.ct-way{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;color:inherit;text-decoration:none;box-shadow:var(--shadow-sm);transition:transform .3s,box-shadow .3s}
.ct-way:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.ct-way img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.ct-way-body{display:flex;flex-direction:column;gap:.45rem;padding:1.2rem 1.3rem 1.4rem;flex:1}
.ct-tag{align-self:flex-start;font-size:.8rem;font-weight:700;color:var(--blue);background:rgba(14,63,120,.07);padding:.25rem .65rem;border-radius:999px}
.ct-way h3{font-family:var(--f-disp);color:var(--navy);font-size:1.25rem;margin:.15rem 0 0}
.ct-way p{color:var(--ink-soft);font-size:.92rem;line-height:1.8;margin:0}
.ct-way p.ct-num{font-family:var(--f-en);font-size:1.45rem;font-weight:600;color:var(--blue);letter-spacing:.03em}
.ct-way p.ct-num.sm{font-family:inherit;font-size:1rem;word-break:break-all}
.ct-go{margin-top:auto;padding-top:.6rem;font-weight:700;color:var(--sage);font-size:.92rem}
.ct-line-band{display:flex;align-items:center;justify-content:space-between;gap:1rem 2rem;flex-wrap:wrap;max-width:1150px;margin:clamp(1rem,2.5vw,1.6rem) auto clamp(3rem,6vw,5rem);background:#eefaf2;border:1px solid #bfe8cd;border-radius:18px;padding:1.3rem clamp(1.2rem,3vw,2rem)}
.ct-line-band h3{font-family:var(--f-disp);color:var(--navy);font-size:1.15rem;margin:0 0 .25rem}
.ct-line-band p{color:var(--ink-soft);font-size:.92rem;margin:0}
.ct-access{display:grid;grid-template-columns:1.25fr 1fr;max-width:1150px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow-sm)}
.ct-map{min-height:460px}
.ct-map iframe{display:block;width:100%;height:100%;min-height:460px;border:0}
.ct-access-body{padding:clamp(1.3rem,3vw,2rem);display:flex;flex-direction:column;gap:.9rem}
.ct-access-photo{display:block;width:100%;aspect-ratio:16/8;object-fit:cover;border-radius:14px}
.ct-access-body h3{font-family:var(--f-disp);color:var(--navy);font-size:1.25rem;margin:.2rem 0 0}
.ct-addr{color:var(--navy);font-weight:700;line-height:1.7;margin:0}
.ct-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.ct-list li{display:flex;gap:.6rem;align-items:flex-start;color:var(--ink-soft);font-size:.92rem;line-height:1.7}
.ct-list svg{flex:0 0 18px;width:18px;height:18px;fill:var(--blue);margin-top:.2rem}
.ct-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:auto;padding-top:.4rem}
.ct-actions .btn{flex:1 1 180px;justify-content:center;padding:.9rem 1.2rem}
@media(max-width:960px){.ct-ways{grid-template-columns:1fr 1fr}.ct-ways .ct-way:last-child{grid-column:1/-1}.ct-access{grid-template-columns:1fr}.ct-map,.ct-map iframe{min-height:320px}}
@media(max-width:820px){.ct-intro{grid-template-columns:1fr}.ct-intro-photo{order:-1}}
@media(max-width:620px){.ct-ways{grid-template-columns:1fr}.ct-facts{grid-template-columns:1fr 1fr}.ct-facts div:last-child{grid-column:1/-1}.ct-line-band .btn{width:100%;justify-content:center}}
/* product hero: photo fills its box (no white frame around gray packshots) */
.pp-hero .pd-gallery{padding:0}
.pp-hero .pd-main{padding:0;background:none;aspect-ratio:auto;border-radius:18px}
.pp-hero .pd-main img{filter:none;background:#e8eaed}
.pp-hero .pd-thumb{background:#e8eaed}

/* ===== Homepage testimonials: minimalist dot slider ===== */
.tslider{position:relative;padding:.4rem 0 0}
.ts-track{position:relative;min-height:13rem}
.ts-slide{margin:0;animation:tsFade .7s ease}
.ts-slide blockquote{margin:0;font-family:var(--f-disp);font-size:clamp(1.05rem,1.9vw,1.35rem);font-weight:600;line-height:1.95;color:var(--blue-ink)}
.ts-slide blockquote::before{content:"“";display:block;font-family:var(--f-en);font-size:3.2rem;line-height:.6;color:var(--blue);opacity:.25;margin-bottom:.6rem}
.ts-slide figcaption{margin-top:1.1rem;color:var(--ink-soft);font-size:.88rem;letter-spacing:.08em}
.ts-slide figcaption::before{content:"— "}
.ts-dots{display:flex;gap:.6rem;margin-top:1.6rem}
.ts-dots button{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:rgba(14,63,120,.22);cursor:pointer;transition:width .35s,background .35s}
.ts-dots button.on{width:26px;background:var(--blue)}
.ts-dots button:focus-visible{outline:2px solid var(--blue-2);outline-offset:3px}
.tslider .disclaimer{margin-top:1.1rem;font-size:.84rem;color:var(--ink-soft)}
@keyframes tsFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.ts-slide{animation:none}}

/* header: online booking button beside the cart */
.hdr-book{display:inline-flex;align-items:center;white-space:nowrap;margin-left:clamp(.6rem,1.2vw,1.1rem);padding:.55rem 1.1rem;border-radius:999px;background:var(--sage);color:#fff;font-size:.86rem;font-weight:700;letter-spacing:.04em;transition:background .3s,transform .3s}
.hdr-book:hover{background:var(--sage-dk);transform:translateY(-1px)}
@media(max-width:1080px){.hdr-book{margin-left:auto;padding:.45rem .85rem;font-size:.84rem}.hdr-book+.hdr-cart{margin-left:.4rem}}
@media(max-width:420px){.hdr-book{display:none}}

/* ===== Booking availability calendar ===== */
.bc-pick{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.bc-choice{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;text-align:left;font:inherit;padding:.75rem 1rem;border:1.5px solid rgba(14,63,120,.22);border-radius:12px;background:#fff;cursor:pointer;transition:border-color .25s,box-shadow .25s}
.bc-choice span{font-size:.85rem;font-weight:700;color:var(--navy)}
.bc-choice b{font-size:.95rem;color:var(--ink);font-weight:600}
.bc-choice.on{border-color:var(--blue);box-shadow:0 0 0 3px rgba(47,134,207,.15)}
.bcal{margin-top:.8rem;border:1px solid var(--line);border-radius:14px;padding:1rem;background:#fbfcfe}
.bcal:focus{outline:2px solid var(--blue-2);outline-offset:2px}
.bc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}
.bc-month{font-family:var(--f-disp);font-size:1.1rem;color:var(--navy)}
.bc-nav{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--blue);font-size:1.4rem;line-height:1;cursor:pointer}
.bc-nav:disabled{opacity:.3;cursor:default}
.bc-week,.bc-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.3rem}
.bc-week span{text-align:center;font-size:.8rem;font-weight:700;color:var(--ink-soft);padding:.2rem 0}
.bc-week span:first-child{color:#c0392b}.bc-week span:last-child{color:var(--blue)}
.bc-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05rem;aspect-ratio:1/1;min-height:42px;border-radius:10px;border:1px solid transparent;font:inherit;background:none;padding:0}
.bc-day .n{font-size:.92rem;font-weight:600}
.bc-day .m{font-size:.75rem;line-height:1}
.bc-day.ok{background:#fff;border-color:rgba(95,157,148,.55);color:var(--navy);cursor:pointer}
.bc-day.ok .m{color:var(--sage-dk)}
.bc-day.ok:hover{background:#eef7f5}
.bc-day.ng{color:#b7bec8;background:#f1f3f6;cursor:not-allowed}
.bc-day.ng .m{color:#b7bec8}
.bc-day.other{box-shadow:inset 0 0 0 2px rgba(47,134,207,.35)}
.bc-day.sel{background:var(--blue);border-color:var(--blue);color:#fff}
.bc-day.sel .m{color:#fff}
.bc-legend{display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin-top:.8rem;font-size:.82rem;color:var(--ink-soft)}
.bc-legend span{display:inline-flex;align-items:center;gap:.35rem}
.bc-legend span::before{content:"";width:14px;height:14px;border-radius:4px}
.lg-ok::before{background:#fff;border:1px solid rgba(95,157,148,.8)}
.lg-ng::before{background:#f1f3f6;border:1px solid #dfe3e8}
.lg-sel::before{background:var(--blue)}
.bc-times{margin-top:1rem;border-top:1px dashed var(--line);padding-top:.9rem}
.bc-tlabel{font-weight:700;color:var(--navy);font-size:.92rem;margin-bottom:.6rem}
.bc-slots{display:grid;grid-template-columns:repeat(5,1fr);gap:.45rem}
.bc-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:46px;border-radius:10px;border:1px solid rgba(95,157,148,.55);background:#fff;color:var(--navy);font:inherit;font-weight:600;font-size:.9rem;cursor:pointer}
.bc-slot:hover{background:#eef7f5}
.bc-slot small{font-size:.72rem;font-weight:400}
.bc-slot.ng{background:#f1f3f6;border-color:#e2e6eb;color:#b7bec8;cursor:not-allowed;text-decoration:line-through}
.bc-slot.ng small{text-decoration:none}
.bc-slot.sel{background:var(--blue);border-color:var(--blue);color:#fff}
@media(max-width:560px){.bc-pick{grid-template-columns:1fr}.bc-slots{grid-template-columns:repeat(3,1fr)}.bcal{padding:.7rem}}
.bc-day{aspect-ratio:auto;height:54px}
@media(max-width:560px){.bc-day{height:46px}}


/* product page: Makuake project link */
.pp-makuake{display:flex;align-items:center;gap:.7rem;margin-top:.9rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--navy);font-weight:700;font-size:.92rem;transition:border-color .3s,transform .3s}
.pp-makuake:hover{border-color:var(--blue);transform:translateY(-2px)}
.pp-makuake .mk-label{font-family:var(--f-en);font-size:.78rem;letter-spacing:.08em;background:var(--navy);color:#fff;padding:.25rem .55rem;border-radius:6px}
.pp-makuake .mk-ext{margin-left:auto;color:var(--blue)}

/* product features: flat minimalist cards with icons */
.pp-feat{box-shadow:none;border:1px solid var(--line);border-top:1px solid var(--line);background:#fff;text-align:left}
.pp-feat .pf-ic{display:inline-flex;width:64px;height:64px;border-radius:16px;overflow:hidden;background:#e8eaed;margin-bottom:.9rem}
.pp-feat .pf-ic img{width:100%;height:100%;display:block}

/* ===== News & Updates page ===== */
.nw{background:var(--paper)}
.nw-wrap{max-width:1150px;margin:0 auto}
.nw-intro{text-align:center;max-width:760px;margin:0 auto 2rem}
.nw-intro .kicker{justify-content:center}
.nw-intro p{color:var(--ink-soft);line-height:1.9;margin-top:.8rem}
.nw-list{list-style:none;margin:0 auto clamp(3rem,6vw,4.5rem);padding:0;max-width:880px;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.nw-list li+li{border-top:1px solid var(--line)}
.nw-list a{display:grid;grid-template-columns:110px 100px 1fr;align-items:center;gap:.8rem;padding:1rem 1.3rem;color:var(--ink);transition:background .25s}
.nw-list a:hover{background:#f4f8fc}
.nw-date{font-family:var(--f-en);font-weight:600;color:var(--ink-soft);font-size:.9rem;letter-spacing:.04em}
.nw-tag{justify-self:start;font-family:var(--f-en);font-size:.78rem;font-weight:700;letter-spacing:.08em;color:var(--blue);background:rgba(14,63,120,.07);padding:.25rem .65rem;border-radius:999px}
.nw-title{font-weight:600;color:var(--navy)}
.nw-article{padding:clamp(2.4rem,5vw,3.6rem) 0;border-top:1px solid var(--line);scroll-margin-top:90px}
.nw-meta{display:flex;align-items:center;gap:.7rem;margin-bottom:.6rem}
.nw-article h3{font-family:var(--f-disp);color:var(--navy);font-size:clamp(1.25rem,2.4vw,1.6rem);line-height:1.5;margin:0 0 .9rem}
.nw-head{max-width:860px;margin-bottom:1.4rem}
.nw-head p:not(.nw-meta){color:var(--ink-soft);line-height:1.9}
.nw-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.4rem,4vw,3rem);align-items:center}
.nw-split.rev .nw-media{order:2}
.nw-media{border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm)}
.nw-media img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.nw-body p,.nw-text p{color:var(--ink-soft);line-height:1.95;margin-bottom:.9rem}
.nw-note{font-size:.85rem}
.nw-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1.4rem;margin-top:1.2rem}
.nw-ext{color:var(--blue);font-weight:700;font-size:.92rem;border-bottom:1px solid rgba(47,134,207,.4)}
.nw-text{max-width:860px;margin-bottom:1.6rem}
.nw-facts{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.3rem;padding:0}
.nw-facts li{font-size:.85rem;background:#fff;border:1px solid var(--line);border-radius:8px;padding:.35rem .8rem;color:var(--navy)}
.nw-video{position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#000;box-shadow:var(--shadow-sm)}
.nw-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.nw-grid{display:grid;gap:.9rem;margin-top:1.8rem}
.nw-grid.n4{grid-template-columns:repeat(4,1fr)}
.nw-grid.n5{grid-template-columns:repeat(5,1fr)}
.nw-grid figure{margin:0}
.nw-grid img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px}
.nw-grid figcaption{font-size:.84rem;color:var(--ink-soft);line-height:1.6;margin-top:.45rem}
.nw-vgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}
.nw-vcard{display:flex;flex-direction:column;gap:.55rem;color:var(--ink)}
.nw-vthumb{position:relative;display:block;border-radius:12px;overflow:hidden}
.nw-vthumb img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .5s}
.nw-vcard:hover .nw-vthumb img{transform:scale(1.05)}
.nw-play{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 6px 18px rgba(0,0,0,.25)}
.nw-play::after{content:"";position:absolute;left:18px;top:14px;border-style:solid;border-width:9px 0 9px 14px;border-color:transparent transparent transparent var(--navy)}
.nw-vcap{font-size:.84rem;font-weight:600;line-height:1.6;color:var(--navy)}
.nw-center{text-align:center;margin-top:2rem}
@media(max-width:960px){.nw-vgrid,.nw-grid.n5{grid-template-columns:repeat(3,1fr)}.nw-grid.n4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.nw-split{grid-template-columns:1fr}.nw-split.rev .nw-media{order:0}.nw-list a{grid-template-columns:auto 1fr;row-gap:.3rem}.nw-list .nw-title{grid-column:1/-1}}
@media(max-width:520px){.nw-vgrid,.nw-grid.n5{grid-template-columns:repeat(2,1fr)}}

/* mobile menu: bilingual business info */
.drawer .d-info{margin:0 0 .9rem;display:flex;flex-direction:column;gap:.55rem}
.drawer .d-info dt{color:#fff;font-size:.86rem;line-height:1.6}
.drawer .d-info dd{margin:0;font-family:var(--f-en);font-size:.8rem;letter-spacing:.03em;line-height:1.5;color:var(--blue-3)}
.drawer a span{letter-spacing:.08em}
.drawer{justify-content:flex-start;overflow-y:auto;padding-top:5.6rem;gap:.7rem}
.drawer a{font-size:clamp(1.12rem,4.8vw,1.6rem);flex-wrap:wrap;column-gap:.8rem;row-gap:.15rem;padding-bottom:.65rem}
/* pricing: three course cards in one row */
.price-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.price-grid{grid-template-columns:1fr}}
/* pricing: 税別 shown beside the 税込 total */
.pf-r{text-align:right}

/* ===== News cards (news page + homepage) ===== */
.nw-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin:0 auto clamp(3rem,6vw,4.5rem)}
.nw-cards.n3{grid-template-columns:repeat(3,1fr);margin-bottom:0}
.nw-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;color:var(--ink);transition:transform .3s,box-shadow .3s}
.nw-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm)}
.nc-img{display:block;overflow:hidden}
.nc-img img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .6s}
.nw-card:hover .nc-img img{transform:scale(1.04)}
.nc-body{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.1rem 1.2rem;flex:1}
.nc-body .nw-meta{margin:0}
.nc-title{font-family:var(--f-disp);font-weight:700;color:var(--navy);line-height:1.55;font-size:1rem}
.nc-ex{font-size:.84rem;color:var(--ink-soft);line-height:1.75;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nc-more{margin-top:auto;padding-top:.3rem;font-size:.84rem;font-weight:700;color:var(--sage)}
.nw-feature{display:grid;grid-template-columns:1.2fr 1fr;margin:0 auto 1.1rem;border-radius:20px}
.nw-feature .nc-img{position:relative;display:flex;align-items:center}
.nw-feature .nc-img img{position:relative;aspect-ratio:16/9}
.nw-feature .nc-img img.nc-bg{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;filter:blur(24px);transform:scale(1.15)}
.nw-feature:hover .nc-img img.nc-bg{transform:scale(1.15)}
.nw-feature .nc-body{padding:clamp(1.4rem,3vw,2.4rem);justify-content:center;gap:.8rem}
.nw-feature .nc-title{font-size:clamp(1.2rem,2.2vw,1.55rem)}
.nw-feature .nc-ex{-webkit-line-clamp:5;font-size:.95rem}
.nw-frames{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.6rem}
.nw-frame{display:block;color:var(--ink-soft);font-size:.85rem;line-height:1.6}
.nw-frame img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px;margin-bottom:.45rem;transition:opacity .3s}
.nw-frame:hover img{opacity:.85}
.home-news{background:#fff}
.hn-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;max-width:1150px;margin:0 auto 1.6rem}
.home-news .nw-cards{max-width:1150px}
@media(max-width:1000px){.nw-cards{grid-template-columns:repeat(2,1fr)}.nw-cards.n3{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.nw-feature{grid-template-columns:1fr}.nw-feature .nc-img img{aspect-ratio:16/9}.nw-cards.n3{grid-template-columns:1fr}}
@media(max-width:560px){.nw-cards{grid-template-columns:1fr}.nw-frames{grid-template-columns:1fr}}
.nw-feature .nc-more{margin-top:.4rem}

/* product pages: extra catalog sections (modes, how it works, awards) */
.pp-sec .pp-wrap{max-width:1150px;margin:0 auto}
.pp-sec-lead{color:var(--ink-soft);line-height:1.9;max-width:760px;margin:.6rem 0 1.4rem}
.pp-fn-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin-top:1.4rem}
.pp-fn{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.3rem 1.3rem 1.4rem}
.pp-fn-no{display:inline-block;font-family:var(--f-en);font-weight:700;font-size:.85rem;letter-spacing:.12em;color:var(--blue);background:rgba(14,63,120,.07);padding:.2rem .6rem;border-radius:999px;margin-bottom:.7rem}
.pp-fn h4{font-family:var(--f-disp);font-size:1.05rem;color:var(--navy);margin-bottom:.45rem}
.pp-fn p{color:var(--ink-soft);font-size:.92rem;line-height:1.85}
.pp-sec-img{margin:1.4rem 0 0}
.pp-sec-img img{display:block;width:100%;border-radius:14px;border:1px solid var(--line)}
.pp-sec-img figcaption{font-size:.85rem;color:var(--ink-soft);margin-top:.45rem}
.pp-tl{list-style:none;margin:1.4rem 0 0;padding:0;border-left:2px solid var(--blue-3)}
.pp-tl li{display:grid;grid-template-columns:76px 1fr;gap:1rem;padding:.65rem 0 .65rem 1.2rem;position:relative}
.pp-tl li::before{content:"";position:absolute;left:-7px;top:1.05rem;width:12px;height:12px;border-radius:50%;background:#fff;border:2px solid var(--blue)}
.tl-y{font-family:var(--f-en);font-weight:700;color:var(--blue)}
.tl-t{color:var(--ink);line-height:1.75;font-size:.95rem}
.pp-sec-note{font-size:.85rem;color:var(--ink-soft);margin-top:1rem}
@media(max-width:560px){.pp-tl li{grid-template-columns:1fr;gap:.1rem}}

/* ===== News listing feed, article pages, video player ===== */
.nw-filter{display:flex;flex-wrap:wrap;gap:.5rem;margin:2.2rem 0 1.2rem}
.nw-filter button{font:inherit;font-size:.86rem;font-weight:700;padding:.5rem 1.1rem;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--navy);cursor:pointer}
.nw-filter button.on{background:var(--navy);border-color:var(--navy);color:#fff}
.nw-feed{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.nw-feed [hidden]{display:none!important}
.nw-vcard{display:flex;flex-direction:column;gap:.55rem;color:var(--ink)}
.nw-vcard.feed{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;gap:0;transition:transform .3s,box-shadow .3s}
.nw-vcard.feed:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm)}
.nw-vcard.feed .nw-vthumb{border-radius:0}
.nw-vcard.feed .nw-vthumb img{aspect-ratio:16/9}
.nw-vbody{display:flex;flex-direction:column;gap:.45rem}
.nw-vcard.feed .nw-vbody{padding:1rem 1.1rem 1.2rem}
.nw-vcard .nw-meta{margin:0}
.nw-vcard.wide{margin:1.4rem 0;max-width:640px}
.nw-vgrid.n4{grid-template-columns:repeat(4,1fr);max-width:1150px;margin:0 auto}
.nw-play.big{width:72px;height:72px;margin:-36px 0 0 -36px}
.nw-play.big::after{left:28px;top:22px;border-width:14px 0 14px 22px}
.nw-player{position:relative;display:block;border-radius:18px;overflow:hidden;margin:0 0 1.8rem;box-shadow:var(--shadow-sm)}
.nw-player img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.nw-player-cap{position:absolute;left:1rem;bottom:1rem;background:rgba(8,30,60,.75);color:#fff;font-size:.82rem;font-weight:700;padding:.35rem .8rem;border-radius:999px}
.na{background:var(--paper)}
.na-wrap{max-width:820px;margin:0 auto}
.na-head{margin-bottom:1.4rem}
.na-title{font-family:var(--f-disp);color:var(--navy);font-size:clamp(1.4rem,3vw,2rem);line-height:1.5;margin:.5rem 0 0}
.na-hero{margin:0 0 1.8rem;border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm)}
.na-hero img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.na-body p{color:var(--ink);line-height:2;margin-bottom:1.1rem;font-size:1rem}
.na-body .nw-note{font-size:.82rem;color:var(--ink-soft)}
.na-body .nw-vgrid{grid-template-columns:repeat(2,1fr);margin:1.4rem 0}
.na-back{margin-top:2rem}
.na-related{max-width:1150px;margin:clamp(3rem,6vw,4.5rem) auto 0;border-top:1px solid var(--line);padding-top:clamp(2rem,4vw,3rem)}
.na-rel-title{font-family:var(--f-disp);color:var(--navy);font-size:1.3rem;margin:.4rem 0 1.2rem}
.home-videos{background:var(--paper)}
/* modal player */
.yt-modal{position:fixed;inset:0;z-index:2000;background:rgba(5,15,30,.82);display:flex;align-items:center;justify-content:center;padding:1rem}
.yt-modal[hidden]{display:none}
.yt-box{position:relative;width:min(960px,100%)}
.yt-frame{position:relative;aspect-ratio:16/9;background:#000;border-radius:12px;overflow:hidden}
.yt-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.yt-title{color:#fff;font-size:.9rem;margin-top:.7rem;line-height:1.6}
.yt-close{position:absolute;right:0;top:-2.8rem;width:40px;height:40px;border-radius:50%;border:0;background:#fff;color:var(--navy);font-size:1.5rem;line-height:1;cursor:pointer}
body.yt-open{overflow:hidden}
@media(max-width:1000px){.nw-feed{grid-template-columns:repeat(2,1fr)}.nw-vgrid.n4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.nw-feed{grid-template-columns:1fr}.na-body .nw-vgrid{grid-template-columns:1fr}}
/* book article */
.na-book{display:grid;grid-template-columns:240px 1fr;gap:clamp(1.2rem,4vw,2.4rem);align-items:center;background:#fff;border:1px solid var(--line);border-radius:18px;padding:clamp(1.2rem,3vw,2rem);margin-bottom:1.8rem}
.na-book img{display:block;width:100%;border-radius:4px;box-shadow:0 18px 36px -16px rgba(10,30,60,.45)}
.na-book-catch{font-size:.85rem;font-weight:700;color:var(--blue);margin-bottom:.4rem}
.na-book-title{font-family:var(--f-disp);color:var(--navy);font-size:clamp(1.15rem,2.4vw,1.45rem);line-height:1.55;margin-bottom:.6rem}
.na-book-title span{font-size:.85em}
.na-book-by{color:var(--ink-soft);font-size:.9rem;margin-bottom:1.1rem}
.na-h3{font-family:var(--f-disp);color:var(--navy);font-size:1.2rem;margin:2rem 0 .9rem}
.na-list{list-style:none;margin:0 0 1.2rem;padding:0;display:grid;gap:.7rem}
.na-list li{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.9rem 1.1rem;line-height:1.85;color:var(--ink-soft)}
.na-list b{display:block;color:var(--navy)}
@media(max-width:560px){.na-book{grid-template-columns:1fr;text-align:center}.na-book img{max-width:220px;margin:0 auto}}


/* ===== Readability (seniors): slightly larger base, no text below ~12px, stronger contrast on dark areas ===== */
html{font-size:106.25%}                 /* 16px → 17px; everything in rem scales gently */
body{line-height:1.9}
p,li,dd{letter-spacing:.01em}
.foot-bot{color:#a9b8ca}                /* was #6c7d92 on navy (~3:1) → ~6:1 */
.foot-col a,.footer{color:#dbe3ec}
.drawer a span,.cc-row .lbl,.book-facts li span,.book .kicker,.book-link,.drawer .d-foot a[href^="mailto"],.drawer .d-info dd{color:#a9d2f3}  /* light blue on navy → ≥5:1 */
.entry-body .en{color:#d6e8f8}
.book-facts li small{color:#c9dbef}
.rev-intro .small{color:var(--ink-soft)}
.price-first .pf-r .camp{color:#a9d2f3}
.nw-date,.nc-ex,.nw-vcap,.ts-slide figcaption,.pp-sec-note,.nw-note{color:var(--ink-soft)}
.crumb,.crumb a{font-size:.88rem}

/* ===== No cropping: product photos are shown whole ===== */
.pp-hero .pd-main{aspect-ratio:1/1;background:#e8eaed;border-radius:18px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.pp-hero .pd-main img{width:100%;height:100%;aspect-ratio:auto;object-fit:contain;background:transparent;box-shadow:none;border-radius:0}
.pp-hero .pd-thumb{background:#e8eaed}
.pp-hero .pd-thumb img{object-fit:contain}
.pp-story-media img{aspect-ratio:auto;height:auto;object-fit:initial}
.pp-scene-grid img{aspect-ratio:auto;height:auto;object-fit:initial}
.pp-scene-grid.n1{max-width:900px;margin-left:auto;margin-right:auto}
.pp-scene-grid.n1 img{aspect-ratio:auto}
.pcard2.is-life .pc2-media{aspect-ratio:4/3}
/* gallery thumbnails: always square, a quarter of the gallery width, never stretched */
.pp-hero .pd-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}
.pp-hero .pd-thumb{flex:none;width:auto;height:auto;aspect-ratio:1/1;padding:0}
.nw-grid.n3{grid-template-columns:repeat(3,1fr)}
@media(max-width:560px){.nw-grid.n3{grid-template-columns:1fr}}

/* ===== Add-to-cart glow feedback ===== */
@keyframes btnGlow{0%{box-shadow:0 0 0 0 rgba(255,213,138,0)}35%{box-shadow:0 0 0 4px rgba(255,213,138,.55),0 0 26px 6px rgba(95,157,148,.55)}100%{box-shadow:0 0 0 12px rgba(255,213,138,0),0 0 0 0 rgba(95,157,148,0)}}
@keyframes cartGlow{0%{box-shadow:0 0 0 0 rgba(255,213,138,0);background:transparent}30%{box-shadow:0 0 0 5px rgba(255,213,138,.5),0 0 24px 8px rgba(255,213,138,.65);background:rgba(255,255,255,.18)}100%{box-shadow:0 0 0 14px rgba(255,213,138,0);background:transparent}}
@keyframes badgePop{0%{transform:scale(1)}40%{transform:scale(1.45);box-shadow:0 0 12px 3px rgba(255,213,138,.9)}100%{transform:scale(1)}}
[data-add-cart].is-added{animation:btnGlow .9s ease-out}
.hdr-cart.hc-glow{animation:cartGlow 1.1s ease-out}
.hc-n.hc-pop{animation:badgePop .6s ease-out}
@media(prefers-reduced-motion:reduce){[data-add-cart].is-added,.hdr-cart.hc-glow,.hc-n.hc-pop{animation:none}}
/* cancellation fee tiers */
.cxl-list{list-style:none;margin:.45rem 0 .2rem;padding:0;display:flex;flex-wrap:wrap;gap:.4rem .6rem}
.cxl-list li{background:#fff;border:1px solid var(--line);border-radius:8px;padding:.25rem .7rem;font-weight:700;color:var(--navy);font-size:.92rem}
.cxl-list li::before{content:none}
.ct-access-photo{aspect-ratio:auto;height:auto}

/* page header: one title per page (kicker + h1), same size everywhere */
.page-hero .ph-title .kicker{margin-bottom:.45rem}
.page-hero h1{font-size:clamp(1.6rem,3.2vw,2.3rem);font-feature-settings:"palt";letter-spacing:.06em}
.page-hero + .section{padding-top:clamp(2.2rem,4.5vw,3.6rem)}
.guide-h.first{margin-top:0}

/* flat solid info icons */
.ic{width:1.15em;height:1.15em;flex:none;fill:currentColor}
.foot-col .fi{display:flex;align-items:flex-start;gap:.7rem;font-size:.95rem;color:#dbe3ec;padding:.4rem 0;font-weight:400;line-height:1.7}
.foot-col p.fi{opacity:.85}
.foot-col .fi .ic{margin-top:.28em;color:#8fb4e3}
.foot-col a.fi:hover{padding-left:0;color:#fff}
.side-tel{display:inline-flex;align-items:center;gap:.5rem}
.side-tel .ic{width:.8em;height:.8em;color:var(--blue)}
.si-list{list-style:none;padding:0;margin:0 0 1rem}
.si{display:flex;align-items:flex-start;gap:.6rem;line-height:1.75}
.si-list .si+.si{margin-top:.3rem}
.si .ic{margin-top:.3em;color:var(--blue)}
.ct-facts dt{display:flex;align-items:center;gap:.45rem}
.ct-facts dt .ic{width:1.25em;height:1.25em;color:var(--blue)}
.si-list{font-size:.92rem;color:var(--ink-soft)}

/* LINE buttons: official LINE icon */
.line-ic{width:2.025em;height:2.025em;margin-block:-.4em;flex:none;fill:currentColor;margin-right:.5em}
.mb-line .line-ic{width:1.95em;height:1.95em;margin-right:.4em}
.btn .line-ic{margin-right:0;width:27px;height:27px}

/* hero info bar: readable over the photo */
.hero-meta{color:#fff;font-size:1.02rem;font-weight:500;letter-spacing:.03em;text-shadow:0 1px 3px rgba(0,0,0,.7),0 0 14px rgba(0,0,0,.45)}
.hero-meta svg{width:18px;height:18px;fill:#9cc7f5;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}
@media(max-width:620px){.hero-meta{flex-direction:column;gap:.55rem;font-size:.95rem}}
.about-quote{font-family:var(--f-disp);color:var(--navy)!important;font-weight:600!important;font-size:1.1rem!important;margin-bottom:.4rem!important}
@media(min-width:901px){.about-2{overflow:clip}.about-2 .about-media{position:sticky;top:110px;align-self:start}}
