/* =========================================================
   P1 Verdant Clinical — ボタニカル・クリニカル
   淡いグレーグリーンの地 × 白パネル × 深い森の緑（唯一の強色）
   角丸は役割で使い分け：写真枠 32 / パネル 24 / 料金行 12 / ボタン pill
   ========================================================= */
:root{
  color-scheme:light;
  --bg:#EEF1EC;        /* Mist  */
  --bg-2:#E3E9E0;      /* Sage mist (alt) */
  --panel:#FFFFFF;
  --ink:#1D2A24;       /* Ink green-black */
  --ink-2:#3E4B44;
  --sub:#66736B;
  --line:#D6DDD3;
  --line-2:#E6EBE3;
  --forest:#0E4D36;    /* Deep forest — the one strong color */
  --forest-dk:#0A3A29;
  --forest-ink:#082C20;
  --sage:#9DB3A3;
  --sage-2:#C9D6CB;
  --sand:#C4AE82;      /* Warm sand accent (sparingly) */
  --sand-tint:#F4EDDE;
  --sand-deep:#7E6330;
  --on-forest:#F2F5EF;
  --on-forest-sub:#B9CCBF;
  --f-ja:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",sans-serif;
  --f-en:"Jost","Futura","Avenir Next",sans-serif;
  --f-min:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
  --r-photo:32px; --r-panel:24px; --r-row:12px;
  --wrap:1320px;
  --grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.1  0 0 0 0 0.15  0 0 0 0 0.12  0 0 0 .55 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");

  /* nav kit tokens */
  --gn-bg:var(--bg); --gn-panel:var(--panel); --gn-ink:var(--ink); --gn-sub:var(--sub); --gn-line:var(--line);
  --gn-accent:var(--forest); --gn-cta:var(--forest); --gn-on-cta:#fff; --gn-font:var(--f-ja); --gn-font-en:var(--f-en);
  --gn-radius:999px; --gn-cradius:var(--r-panel); --gn-alt:var(--bg-2);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink-2);font-family:var(--f-ja);font-size:15px;line-height:1.95;letter-spacing:.04em;-webkit-font-smoothing:antialiased;font-feature-settings:"palt" 0;overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4{text-wrap:balance;color:var(--ink);font-weight:500;margin:0}
p{margin:0}
:focus-visible{outline:2px solid var(--forest);outline-offset:3px;border-radius:6px}
.num,.pr,.price,time{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"lnum" 1}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(20px,4vw,48px)}
.sec{padding-block:clamp(80px,10vw,140px);scroll-margin-top:var(--gn-h)}
[id]{scroll-margin-top:calc(var(--gn-h) + 12px)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Section heading ---------- */
.sh{display:grid;gap:14px;margin-bottom:clamp(36px,5vw,64px)}
.sh-en{font-family:var(--f-en);font-weight:300;font-size:clamp(46px,6.4vw,84px);line-height:.95;letter-spacing:-.01em;color:var(--forest);display:flex;align-items:flex-start;gap:14px}
.sh-en .ix{font-size:12px;font-weight:400;letter-spacing:.2em;color:var(--sand-deep);line-height:1;margin-top:.7em}
.sh h2{font-size:15px;letter-spacing:.2em;display:flex;align-items:center;gap:12px}
.sh h2::before{content:"";width:28px;height:1px;background:var(--forest)}
.sh-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 64px;align-items:end;margin-bottom:clamp(36px,5vw,64px)}
.sh-split .sh{margin:0}
.lead{font-size:15px;line-height:2.1;color:var(--ink-2);max-width:36em}

/* ---------- Buttons ---------- */
.pill{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border-radius:999px;text-decoration:none;font-size:14px;letter-spacing:.12em;font-weight:500;border:1px solid var(--forest);transition:background .25s,color .25s,transform .25s;white-space:nowrap}
.pill svg{width:16px;height:16px;flex:0 0 auto}
.pill.solid{background:var(--forest);color:#fff}
.pill.solid:hover{background:var(--forest-dk)}
.pill.ghost{background:rgba(255,255,255,.55);color:var(--forest)}
.pill.ghost:hover{background:var(--forest);color:#fff}
.pill .arr{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.18);display:grid;place-items:center;margin-right:-10px}
.pill.ghost .arr{background:var(--forest);color:#fff}
.pill .arr svg{width:11px;height:11px}
.tlink{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--forest);font-size:13.5px;letter-spacing:.12em;font-weight:500}
.tlink i{width:36px;height:36px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;transition:background .25s,color .25s}
.tlink i svg{width:12px;height:12px}
.tlink:hover i{background:var(--forest);color:#fff}

/* ---------- Photo placeholder ---------- */
.ph{position:relative;overflow:hidden;border-radius:var(--r-photo);isolation:isolate;
  background:
    radial-gradient(120% 80% at 18% 12%,rgba(255,255,255,.75),transparent 55%),
    radial-gradient(90% 70% at 90% 100%,rgba(14,77,54,.22),transparent 60%),
    linear-gradient(155deg,#E2E9DF 0%,#C6D4C6 48%,#A3B9A8 100%)}
.ph::after{content:"";position:absolute;inset:0;background:var(--grain);opacity:.32;mix-blend-mode:multiply;pointer-events:none;z-index:2}
.ph.sand{background:
    radial-gradient(110% 80% at 80% 10%,rgba(255,255,255,.8),transparent 55%),
    radial-gradient(80% 60% at 10% 100%,rgba(126,99,48,.18),transparent 60%),
    linear-gradient(160deg,#F2ECDF 0%,#E2D5BB 55%,#CDBB97 100%)}
.ph.mist{background:
    radial-gradient(100% 90% at 30% 20%,rgba(255,255,255,.85),transparent 60%),
    linear-gradient(200deg,#EEF2EC 0%,#D5DFD5 60%,#B9CABD 100%)}
.ph.deep{background:
    radial-gradient(90% 70% at 75% 15%,rgba(201,214,203,.45),transparent 60%),
    linear-gradient(160deg,#4F7A66 0%,#265C47 55%,#123F2E 100%)}
.ph .shade{position:absolute;z-index:1;color:var(--forest);opacity:.16;filter:blur(3px);pointer-events:none}
.ph.deep .shade{color:#DDE7DF;opacity:.12}
.ph .lbl{position:absolute;z-index:3;left:22px;bottom:20px;display:inline-flex;align-items:center;gap:10px;font-family:var(--f-en);font-size:10.5px;letter-spacing:.22em;color:rgba(29,42,36,.62);text-transform:uppercase}
.ph .lbl::before{content:"";width:18px;height:1px;background:currentColor}
.ph .lbl b{font-family:var(--f-ja);font-weight:500;letter-spacing:.14em;text-transform:none}
.ph.deep .lbl{color:rgba(242,245,239,.75)}
.ph .lbl.tr{left:auto;right:22px;bottom:auto;top:20px}

.hero-ph{background:
    radial-gradient(70% 60% at 78% 18%,rgba(255,255,255,.7),transparent 60%),
    radial-gradient(60% 60% at 8% 92%,rgba(14,77,54,.38),transparent 65%),
    linear-gradient(140deg,#B9CDBE 0%,#8FAE9B 45%,#5E8A73 100%)}
.hero-ph .shade{opacity:.22}
/* ---------- Ticker ---------- */
.ticker{background:var(--forest-ink);color:var(--on-forest);font-size:12px;letter-spacing:.1em;overflow:hidden;position:relative;z-index:51}
.ticker-in{display:flex;width:max-content;animation:tick 48s linear infinite}
.ticker:hover .ticker-in{animation-play-state:paused}
.ticker ul{display:flex;list-style:none;margin:0;padding:0}
.ticker li{display:flex;align-items:center;gap:12px;padding:9px 34px 9px 0;white-space:nowrap}
.ticker li::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--sand);margin-left:22px}
.ticker .tag{font-family:var(--f-en);font-size:10px;letter-spacing:.2em;padding:1px 9px;border:1px solid rgba(196,174,130,.6);border-radius:999px;color:var(--sand)}
.ticker a{text-decoration:none}
.ticker a:hover{text-decoration:underline;text-underline-offset:3px}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- Logo ---------- */
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.logo .mk{width:40px;height:40px;border-radius:50%;background:var(--forest);color:#fff;display:grid;place-items:center;flex:0 0 auto}
.logo .mk svg{width:22px;height:22px}
.logo .lt{display:grid;line-height:1.25;min-width:0}
.logo b{font-weight:500;font-size:16px;letter-spacing:.14em;white-space:nowrap}
.logo small{font-family:var(--f-en);font-size:10.5px;letter-spacing:.24em;color:var(--sub);text-transform:uppercase;white-space:nowrap}

/* ---------- Hero ---------- */
.hero{position:relative;padding:20px 0 0;overflow-x:clip}
#doctor,.news{overflow-x:clip}
.blob{position:absolute;z-index:0;pointer-events:none;color:var(--sage-2)}
.hero .blob.b1{width:520px;right:-160px;top:-60px;opacity:.55}
.hero .blob.b2{width:340px;left:-140px;bottom:-120px;opacity:.5;color:#DCE4D8}
.mosaic{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.42fr) minmax(0,.62fr) minmax(0,.62fr);grid-template-rows:330px 290px;gap:16px}
.m-main{grid-row:1/3;position:relative;border-radius:var(--r-photo)}
.m-top{grid-column:2/4}
.m-a{}
.m-mon{border-radius:var(--r-photo);background:var(--forest);color:var(--on-forest);padding:26px 24px 24px;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;position:relative;overflow:hidden;isolation:isolate;transition:background .3s}
.m-mon:hover{background:var(--forest-dk)}
.m-mon::before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;border:1px solid rgba(196,174,130,.35);right:-120px;top:-110px;z-index:-1}
.m-mon::after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;border:1px solid rgba(196,174,130,.25);right:-70px;top:-60px;z-index:-1}
.m-mon .tg{display:inline-flex;align-self:flex-start;font-family:var(--f-en);font-size:10px;letter-spacing:.24em;padding:3px 11px;border-radius:999px;background:var(--sand);color:var(--forest-ink);font-weight:500}
.m-mon h3{color:#fff;font-size:15px;letter-spacing:.1em;line-height:1.6;margin-top:14px}
.m-mon .was{font-size:11.5px;color:var(--on-forest-sub);letter-spacing:.06em}
.m-mon .was s{font-family:var(--f-en);text-decoration-thickness:1px}
.m-mon .price{font-family:var(--f-en);font-weight:300;font-size:42px;line-height:1;letter-spacing:.01em;color:#fff;margin-top:6px}
.m-mon .price i{font-style:normal;font-family:var(--f-ja);font-size:12px;margin-left:4px;color:var(--on-forest-sub);letter-spacing:.08em}
.vert{position:absolute;z-index:5;right:30px;top:32px;writing-mode:vertical-rl;font-family:var(--f-min);font-size:16px;letter-spacing:.42em;color:var(--forest);line-height:1.9}
.vert span{display:block;font-family:var(--f-en);writing-mode:vertical-rl;font-size:10px;letter-spacing:.3em;color:rgba(14,77,54,.6);margin-top:18px;text-transform:uppercase}
.glass{position:absolute;z-index:4;left:32px;bottom:32px;width:min(560px,calc(100% - 124px));padding:36px 40px 30px;border-radius:var(--r-panel);
  background:linear-gradient(135deg,rgba(255,255,255,.66),rgba(255,255,255,.4));backdrop-filter:blur(18px) saturate(1.3);-webkit-backdrop-filter:blur(18px) saturate(1.3);
  border:1px solid rgba(255,255,255,.8);box-shadow:0 30px 60px -36px rgba(14,60,40,.45),inset 0 1px 0 rgba(255,255,255,.9)}
.glass .eyebrow{display:flex;align-items:center;gap:12px;font-family:var(--f-en);font-size:11.5px;letter-spacing:.26em;color:var(--forest);text-transform:uppercase}
.glass .eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sand)}
.glass h1{font-size:clamp(28px,2.5vw,36px);line-height:1.55;letter-spacing:.07em;margin:16px 0 14px;font-weight:500;color:var(--ink)}
.glass h1 em{font-style:normal;color:var(--forest)}
.nw{display:inline-block}
.glass h1 .nw:first-child{display:block}
.glass p{font-size:13.5px;line-height:2;color:var(--ink-2);max-width:31em}
.glass .ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.glass .meta{display:flex;flex-wrap:wrap;gap:6px 22px;margin-top:20px;padding-top:16px;border-top:1px solid rgba(14,77,54,.14);font-size:12px;color:var(--sub);letter-spacing:.06em}
.glass .meta b{font-family:var(--f-en);font-weight:400;color:var(--ink);font-size:13px;letter-spacing:.06em;margin-left:6px}
.hero-foot{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:20px;font-size:12px;color:var(--sub);letter-spacing:.08em}
.hero-foot .scroll{display:flex;align-items:center;gap:12px;font-family:var(--f-en);letter-spacing:.24em;font-size:10.5px;text-transform:uppercase}
.hero-foot .scroll::after{content:"";width:64px;height:1px;background:linear-gradient(90deg,var(--forest) 0 40%,var(--line) 40%)}
.hero-foot .tags{display:flex;flex-wrap:wrap;gap:8px}
.hero-foot .tags a{padding:5px 14px;border:1px solid var(--line);border-radius:999px;text-decoration:none;background:rgba(255,255,255,.5);transition:border-color .2s,color .2s}
.hero-foot .tags a:hover{border-color:var(--forest);color:var(--forest)}

/* ---------- News / Campaign ---------- */
.news{padding-block:clamp(64px,8vw,104px) clamp(72px,9vw,120px)}
.news-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:start}
.camp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cp{position:relative;display:flex;flex-direction:column;gap:10px;padding:26px 26px 24px;border-radius:var(--r-panel);background:var(--panel);text-decoration:none;min-height:220px;transition:transform .3s,box-shadow .3s}
.cp:hover{transform:translateY(-3px);box-shadow:0 24px 40px -30px rgba(14,60,40,.4)}
.cp .tg{align-self:flex-start;font-family:var(--f-en);font-size:10px;letter-spacing:.22em;padding:3px 10px;border-radius:999px;background:var(--sand-tint);color:var(--sand-deep);font-weight:500}
.cp h3{font-size:16.5px;line-height:1.65;letter-spacing:.08em}
.cp p{font-size:12.5px;color:var(--sub);line-height:1.85}
.cp .go{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-family:var(--f-en);font-size:11px;letter-spacing:.2em;color:var(--forest)}
.cp .go i{width:30px;height:30px;border-radius:50%;background:var(--bg);display:grid;place-items:center}
.cp .go svg{width:11px;height:11px}
.nlist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.nlist a{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:20px 4px;border-bottom:1px solid var(--line);text-decoration:none;transition:padding .25s,color .2s}
.nlist a:hover{padding-left:12px;color:var(--forest)}
.nlist time{font-family:var(--f-en);font-size:13.5px;letter-spacing:.08em;color:var(--sub)}
.nlist .c{font-size:11px;letter-spacing:.1em;padding:2px 10px;border-radius:999px;border:1px solid var(--line);color:var(--sub);white-space:nowrap}
.nlist .t{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nlist svg{width:12px;height:12px;color:var(--forest)}
.nhead{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px}
.nhead .t1{font-family:var(--f-en);font-weight:300;font-size:34px;color:var(--forest);line-height:1}
.nhead .t1 small{font-family:var(--f-ja);font-size:13px;color:var(--ink);letter-spacing:.18em;margin-left:14px;font-weight:500}

.gn-card.c-cta{background:var(--forest);color:var(--on-forest);text-decoration:none;position:relative;overflow:hidden;isolation:isolate}
.gn-card.c-cta::before{content:"";position:absolute;width:280px;height:280px;border-radius:50%;border:1px solid rgba(196,174,130,.35);right:-130px;bottom:-140px;z-index:-1}
.gn-card.c-cta .k{background:var(--sand);color:var(--forest-ink)}
.gn-card.c-cta h3{color:#fff;line-height:1.6}
.gn-card.c-cta p{color:var(--on-forest-sub)}
.c-go{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:500;letter-spacing:.1em;padding-top:14px;border-top:1px solid rgba(255,255,255,.18)}
.c-go i{width:34px;height:34px;border-radius:50%;background:#fff;color:var(--forest);display:grid;place-items:center}
.c-go svg{width:12px;height:12px}
/* ---------- Treatment list ---------- */
.tr-wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,2fr);gap:clamp(32px,5vw,80px);align-items:start}
.tr-side{position:sticky;top:calc(var(--gn-h) + 32px);display:grid;gap:28px}
.tr-side .ph{aspect-ratio:4/5}
#treatList{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;counter-reset:t;border-top:1px solid var(--line)}
#treatList li{counter-increment:t;border-bottom:1px solid var(--line)}
#treatList a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:22px 6px;text-decoration:none;transition:background .25s,padding .25s;border-radius:14px}
#treatList a::before{content:counter(t,decimal-leading-zero);font-family:var(--f-en);font-size:12px;letter-spacing:.1em;color:var(--sand-deep);width:22px}
#treatList a:hover{background:var(--panel);padding-inline:16px}
#treatList .t{display:grid;line-height:1.5;min-width:0}
#treatList .t b{font-weight:500;font-size:16px;color:var(--ink);letter-spacing:.08em}
#treatList .t small{font-family:var(--f-en);font-size:11px;letter-spacing:.14em;color:var(--sub);text-transform:uppercase}
#treatList .p{font-size:11px;color:var(--sub);white-space:nowrap;text-align:right;line-height:1.4}
#treatList .p b{display:block;font-family:var(--f-en);font-weight:400;font-size:17px;color:var(--forest);letter-spacing:.02em;font-variant-numeric:tabular-nums}
#treatList .p b i{font-style:normal;font-family:var(--f-ja);font-size:11px;margin-left:2px;color:var(--sub)}

/* ---------- About / features ---------- */
.about{background:var(--panel);border-radius:48px;margin-inline:clamp(8px,1.5vw,24px);position:relative;overflow:hidden}
.about .blob{width:480px;right:-180px;bottom:-200px;color:var(--bg);opacity:1}
.ab-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:end;margin-bottom:clamp(48px,6vw,80px)}
.ab-catch{font-size:clamp(24px,2.6vw,34px);line-height:1.75;letter-spacing:.1em;color:var(--ink);margin-bottom:22px}
.ab-catch em{font-style:normal;color:var(--forest);background:linear-gradient(transparent 70%,var(--sand-tint) 70%)}
.feats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line);position:relative;z-index:1}
.feats li{padding:34px 28px 10px 0;display:grid;gap:14px;align-content:start}
.feats li + li{padding-left:28px;border-left:1px solid var(--line)}
.feats .n{font-family:var(--f-en);font-weight:300;font-size:56px;line-height:1;color:var(--forest);letter-spacing:-.01em;display:flex;align-items:baseline;gap:10px}
.feats .n small{font-size:10.5px;letter-spacing:.22em;color:var(--sand-deep);font-weight:400}
.feats h3{font-size:17px;line-height:1.7;letter-spacing:.08em}
.feats p{font-size:13.5px;line-height:2;color:var(--sub)}
.ico{width:44px;height:44px;border-radius:50%;background:var(--bg);display:grid;place-items:center;color:var(--forest)}
.ico svg{width:22px;height:22px}

/* ---------- Doctor ---------- */
.doc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(36px,6vw,104px);align-items:center}
.doc-photo{position:relative}
.doc-photo .ph{aspect-ratio:4/5;border-radius:var(--r-photo) var(--r-photo) 200px var(--r-photo)}
.doc-photo .blob{width:78%;left:-14%;top:-8%;z-index:-1;color:var(--sage-2);opacity:.65}
.doc-photo .name{position:absolute;right:-24px;bottom:40px;z-index:4;background:var(--panel);border-radius:20px;padding:18px 26px;box-shadow:0 20px 40px -28px rgba(14,60,40,.45)}
.doc-photo .name small{display:block;font-size:11.5px;color:var(--sub);letter-spacing:.14em}
.doc-photo .name b{font-weight:500;font-size:20px;letter-spacing:.2em;color:var(--ink)}
.doc-photo .name span{display:block;font-family:var(--f-en);font-size:10.5px;letter-spacing:.24em;color:var(--forest);text-transform:uppercase;margin-top:2px}
.doc-msg .q{font-family:var(--f-min);font-size:clamp(22px,2.4vw,30px);line-height:1.85;letter-spacing:.12em;color:var(--ink);margin-bottom:26px}
.doc-msg p + p{margin-top:1.2em}
.doc-msg .body{font-size:14.5px;line-height:2.1}
.career{margin-top:40px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.career > div{background:var(--panel);border-radius:20px;padding:22px 24px}
.career h4{font-family:var(--f-en);font-weight:400;font-size:11.5px;letter-spacing:.22em;color:var(--forest);text-transform:uppercase;margin-bottom:10px;display:flex;gap:10px;align-items:baseline}
.career h4 small{font-family:var(--f-ja);font-size:12px;color:var(--sub);letter-spacing:.12em;text-transform:none}
.career ul{list-style:none;margin:0;padding:0}
.career li{display:grid;grid-template-columns:4.2em minmax(0,1fr);gap:10px;font-size:13px;padding:7px 0;border-bottom:1px dashed var(--line);color:var(--ink-2)}
.career li:last-child{border-bottom:0}
.career li span{font-family:var(--f-en);color:var(--sub);font-size:12.5px}

/* ---------- Price ---------- */
.price-sec{background:var(--bg-2)}
.p-legend{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;font-size:12.5px;color:var(--ink-2)}
.p-legend span{display:inline-flex;align-items:center;gap:8px}
.p-legend .tax{font-weight:500;color:var(--forest);padding:5px 14px;border-radius:999px;background:var(--panel)}
.mon-chip{font-family:var(--f-en);font-size:9.5px;letter-spacing:.2em;font-weight:500;padding:2px 9px;border-radius:999px;background:var(--sand);color:var(--forest-ink);line-height:1.6;white-space:nowrap}
.p-layout{display:grid;grid-template-columns:252px minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:start}
.cat-nav{position:sticky;top:calc(var(--gn-h) + 24px);z-index:5}
.cat-nav ul{list-style:none;margin:0;padding:10px;display:grid;gap:2px;background:var(--panel);border-radius:var(--r-panel);counter-reset:cn}
.cat-nav li{counter-increment:cn}
.cat-nav a{display:flex;align-items:center;gap:12px;padding:9px 14px;border-radius:12px;text-decoration:none;font-size:13px;color:var(--ink-2);letter-spacing:.03em;white-space:nowrap;transition:background .2s,color .2s}
.cat-nav a::before{content:counter(cn,decimal-leading-zero);font-family:var(--f-en);font-size:10.5px;color:var(--sub);letter-spacing:.08em}
.cat-nav a:hover{background:var(--bg);color:var(--forest)}
.cat-nav a.on{background:var(--forest);color:#fff}
.cat-nav a.on::before{color:var(--on-forest-sub)}
.cat-nav .nv-note{font-size:11.5px;color:var(--sub);line-height:1.8;padding:16px 8px 0}
#menuList{display:grid;gap:clamp(56px,6vw,80px)}
.cat{scroll-margin-top:calc(var(--gn-h) + 24px)}
.cat-title{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"en en" "h3 p";gap:4px 28px;align-items:baseline;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--forest)}
.cat-title .en{grid-area:en;font-family:var(--f-en);font-size:12px;letter-spacing:.26em;color:var(--sand-deep);text-transform:uppercase}
.cat-title h3{grid-area:h3;font-size:clamp(22px,2.2vw,28px);letter-spacing:.1em;color:var(--ink)}
.cat-title p{grid-area:p;font-size:13px;color:var(--sub);line-height:1.8}
.items{columns:2;column-gap:14px}
.item{background:var(--panel);border-radius:20px;padding:24px 26px 20px;display:flex;flex-direction:column;min-width:0;break-inside:avoid;margin-bottom:14px}
.item h4{font-size:16px;letter-spacing:.06em;line-height:1.6;color:var(--ink);display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding-bottom:12px;border-bottom:1px solid var(--line-2)}
.item h4 small{font-size:11px;font-weight:500;letter-spacing:.06em;padding:2px 10px;border-radius:999px;background:var(--bg);color:var(--forest);line-height:1.7}
.rows{list-style:none;margin:0;padding:4px 0 0}
.rows li{display:flex;align-items:baseline;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-2)}
.rows li:last-child{border-bottom:0}
.rows .lb{font-size:14px;color:var(--ink-2);letter-spacing:.04em;min-width:0}
.rows .dots{flex:1 1 16px;min-width:16px;border-bottom:1px dotted #B9C4B6;transform:translateY(-5px)}
.rows .pr{font-family:var(--f-en);font-size:21px;font-weight:400;color:var(--ink);letter-spacing:.01em;white-space:nowrap;line-height:1}
.rows .pr i{font-style:normal;font-family:var(--f-ja);font-size:11.5px;color:var(--sub);margin-left:3px;letter-spacing:.04em}
.rows li.mon{background:var(--sand-tint);border-radius:var(--r-row);padding:12px 14px;margin:6px -14px 2px;border-bottom:0}
.rows li.mon .lb{display:inline-flex;align-items:center;gap:8px;color:var(--sand-deep);font-weight:500}
.rows li.mon .lb::before{content:"MONITOR";font-family:var(--f-en);font-size:9.5px;letter-spacing:.2em;font-weight:500;padding:2px 9px;border-radius:999px;background:var(--sand);color:var(--forest-ink);line-height:1.6}
.rows li.mon .dots{border-color:rgba(126,99,48,.35)}
.rows li.mon .pr{color:var(--sand-deep);font-weight:500}
.parts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 14px;margin:14px 0 0;padding:14px 16px;background:var(--bg);border-radius:var(--r-row);font-size:12.5px;line-height:1.7}
.parts dt{font-weight:500;color:var(--forest);white-space:nowrap}
.parts dd{margin:0;color:var(--ink-2)}
.note{font-size:12px;color:var(--sub);line-height:1.8;margin-top:12px}
.p-foot{margin-top:56px;font-size:12.5px;color:var(--sub);line-height:1.9}

/* ---------- Flow ---------- */
.flow-sec{background:var(--panel)}
.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;position:relative}
.flow li{position:relative;background:var(--bg);border-radius:var(--r-panel);padding:30px 26px 28px;display:grid;gap:12px;align-content:start}
.flow li:not(:last-child)::after{content:"";position:absolute;right:-13px;top:50px;width:10px;height:10px;border-top:1.5px solid var(--forest);border-right:1.5px solid var(--forest);transform:rotate(45deg);z-index:2}
.flow .st{display:flex;align-items:center;justify-content:space-between}
.flow .st b{font-family:var(--f-en);font-weight:300;font-size:44px;line-height:1;color:var(--forest)}
.flow .st small{font-family:var(--f-en);font-size:10.5px;letter-spacing:.24em;color:var(--sand-deep)}
.flow .ico{background:var(--panel)}
.flow h3{font-size:17px;letter-spacing:.1em;margin-top:6px}
.flow p{font-size:13px;line-height:1.95;color:var(--sub)}

/* ---------- FAQ ---------- */
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,2fr);gap:clamp(32px,5vw,80px);align-items:start}
.faq{display:grid;gap:10px}
.faq details{background:var(--panel);border-radius:20px;transition:box-shadow .3s}
.faq details[open]{box-shadow:0 20px 40px -32px rgba(14,60,40,.45)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px 26px;font-size:15.5px;font-weight:500;color:var(--ink);letter-spacing:.06em;border-radius:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .q,.faq .a .q{font-family:var(--f-en);font-size:18px;font-weight:400;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--forest);color:#fff;letter-spacing:0}
.faq summary .pm{width:16px;height:16px;position:relative}
.faq summary .pm::before,.faq summary .pm::after{content:"";position:absolute;left:0;right:0;top:7.5px;height:1.5px;background:var(--forest);transition:transform .3s}
.faq summary .pm::after{transform:rotate(90deg)}
.faq details[open] .pm::after{transform:rotate(0)}
.faq .a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;padding:0 26px 24px;margin-top:-4px}
.faq .a .q{background:var(--sand-tint);color:var(--sand-deep)}
.faq .a p{font-size:14px;line-height:2;color:var(--ink-2);padding-top:5px;border-top:1px solid var(--line-2);padding-top:16px}
.faq .a .q{margin-top:10px}

/* ---------- Clinic gallery ---------- */
.gal{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);grid-template-rows:240px 240px;gap:16px}
.gal .ph:nth-child(1){grid-row:1/3}
.gal .ph:nth-child(4){grid-column:2/4}
.gal-cap{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-top:22px;font-size:13px;color:var(--sub)}

/* ---------- Access ---------- */
.access-sec{background:var(--panel)}
.acc{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:stretch}
.map{position:relative;border-radius:var(--r-photo);overflow:hidden;min-height:440px;background:#E7ECE4}
.map svg.mp{position:absolute;inset:0;width:100%;height:100%}
.map .pin{position:absolute;left:54%;top:44%;transform:translate(-50%,-100%);display:grid;justify-items:center;gap:6px;z-index:2}
.map .pin b{background:var(--forest);color:#fff;font-weight:500;font-size:12px;letter-spacing:.1em;padding:8px 14px;border-radius:999px;white-space:nowrap;box-shadow:0 10px 20px -10px rgba(14,60,40,.6)}
.map .pin i{width:14px;height:14px;border-radius:50%;background:var(--forest);border:3px solid #fff;box-shadow:0 0 0 8px rgba(14,77,54,.15)}
.map .lbl{position:absolute;left:22px;bottom:20px;font-family:var(--f-en);font-size:10.5px;letter-spacing:.22em;color:rgba(29,42,36,.6);text-transform:uppercase;z-index:2}
.info dl{margin:0;display:grid;grid-template-columns:6.5em minmax(0,1fr);border-top:1px solid var(--line)}
.info dt,.info dd{padding:16px 0;border-bottom:1px solid var(--line);font-size:14px;margin:0}
.info dt{color:var(--sub);font-size:12.5px;letter-spacing:.14em;padding-top:18px}
.info dd b{font-family:var(--f-en);font-weight:400;font-size:22px;letter-spacing:.08em;color:var(--ink)}
.tbl{overflow-x:auto;margin-top:28px;border-radius:20px;background:var(--bg)}
.hours{width:100%;border-collapse:collapse;min-width:460px;font-size:13px;text-align:center}
.hours th,.hours td{padding:14px 6px}
.hours thead th{font-weight:500;color:var(--ink);border-bottom:1px solid var(--line);font-size:12.5px}
.hours tbody th{font-family:var(--f-en);font-weight:400;font-size:14.5px;text-align:left;padding-left:20px;white-space:nowrap;color:var(--ink)}
.hours thead th:first-child{text-align:left;padding-left:20px}
.hours .o{color:var(--forest);font-size:14px}
.hours .x{color:var(--sub)}
.hours .closed{color:var(--sand-deep)}
.h-note{font-size:12.5px;color:var(--sub);margin-top:14px;line-height:1.9}
.legal{margin-top:clamp(56px,6vw,80px);border-radius:var(--r-panel);background:var(--bg);padding:clamp(26px,3vw,40px) clamp(22px,3vw,44px);display:grid;grid-template-columns:minmax(0,.32fr) minmax(0,1fr);gap:20px 40px}
.legal h3{font-size:15px;letter-spacing:.14em;display:grid;gap:6px;align-content:start}
.legal h3 small{font-family:var(--f-en);font-weight:400;font-size:11px;letter-spacing:.22em;color:var(--forest);text-transform:uppercase}
.legal ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.legal li{font-size:13px;line-height:1.95;color:var(--ink-2);padding-left:1.3em;position:relative}
.legal li::before{content:"";position:absolute;left:0;top:.8em;width:6px;height:6px;border-radius:50%;background:var(--sage)}

/* ---------- Reservation band ---------- */
.reserve{background:var(--forest);color:var(--on-forest);position:relative;overflow:hidden;isolation:isolate;padding-block:clamp(72px,9vw,120px)}
.reserve::before{content:"";position:absolute;inset:0;background:var(--grain);opacity:.18;mix-blend-mode:soft-light;z-index:-1}
.reserve .blob{color:#155E43;width:640px;right:-200px;top:-240px;opacity:.9;z-index:-1}
.reserve .blob.b2{width:420px;left:-180px;bottom:-260px;right:auto;top:auto;color:#0B4430}
.rv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}
.rv .en{font-family:var(--f-en);font-weight:300;font-size:clamp(46px,6.4vw,84px);line-height:.95;color:#fff;letter-spacing:-.01em}
.rv h2{color:#fff;font-size:clamp(20px,2vw,26px);letter-spacing:.14em;margin:22px 0 14px;line-height:1.7}
.rv p{font-size:14px;color:var(--on-forest-sub);line-height:2}
.rv-box{display:grid;gap:12px}
.rv-box .pill{min-height:64px;font-size:15px;justify-content:space-between;padding:0 30px}
.rv-box .pill.w{background:#fff;color:var(--forest);border-color:#fff}
.rv-box .pill.w:hover{background:var(--sand-tint)}
.rv-box .pill.o{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.rv-box .pill.o:hover{background:rgba(255,255,255,.08);border-color:#fff}
.rv-box .pill .l{display:flex;align-items:center;gap:12px}
.rv-tel{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 30px;border-radius:var(--r-panel);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12)}
.rv-tel small{font-size:12px;color:var(--on-forest-sub);letter-spacing:.08em;display:block}
.rv-tel b{font-family:var(--f-en);font-weight:300;font-size:32px;letter-spacing:.08em;color:#fff;line-height:1.2;user-select:all}

/* ---------- Footer ---------- */
footer{background:var(--forest-ink);color:var(--on-forest-sub);padding:clamp(56px,7vw,88px) 0 32px;font-size:13px}
.ft{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr);gap:40px}
footer .logo{color:#fff}
footer .logo .mk{background:#fff;color:var(--forest)}
footer .logo small{color:var(--on-forest-sub)}
.ft-addr{margin-top:22px;line-height:2;font-size:12.5px}
.ft h4{font-family:var(--f-en);font-weight:400;font-size:11px;letter-spacing:.24em;color:var(--sand);text-transform:uppercase;margin-bottom:14px}
.ft ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px}
.ft a{text-decoration:none;color:var(--on-forest)}
.ft a:hover{color:var(--sand)}
.ft-h{line-height:2;font-size:12.5px}
.ft-h b{font-family:var(--f-en);font-weight:400;color:#fff;font-size:15px;letter-spacing:.06em}
.copy{margin-top:56px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--f-en);font-size:11px;letter-spacing:.16em}

/* ---------- Responsive ---------- */
@media (max-width:1180px){
  .mosaic{grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr) minmax(0,.7fr);grid-template-rows:280px 240px}
  .feats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .feats li:nth-child(3){padding-left:0;border-left:0}
  .feats li:nth-child(n+3){border-top:1px solid var(--line);margin-top:24px}
  .flow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .flow li:nth-child(2)::after{display:none}
}
@media (max-width:960px){
  .mosaic{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto}
  .m-main{grid-row:auto;grid-column:1/-1;height:560px}
  .m-top{grid-column:1/-1;height:220px}
  .m-a{height:220px}
  .m-mon{min-height:220px}
  .news-grid,.tr-wrap,.ab-top,.doc,.faq-grid,.acc,.rv,.sh-split,.ft{grid-template-columns:minmax(0,1fr)}
  .tr-side{position:static;grid-template-columns:minmax(0,1fr)}
  .tr-side .ph{display:none}
  .p-layout{grid-template-columns:minmax(0,1fr)}
  .cat-nav{top:var(--gn-h);margin-inline:calc(-1 * clamp(20px,4vw,48px));padding:10px clamp(20px,4vw,48px);background:color-mix(in srgb,var(--bg-2) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
  .cat-nav ul{display:flex;overflow-x:auto;scrollbar-width:none;padding:6px;border-radius:999px;gap:4px;scroll-behavior:smooth}
  .cat-nav ul::-webkit-scrollbar{display:none}
  .cat-nav a{white-space:nowrap;border-radius:999px;padding:7px 14px;font-size:12.5px}
  .cat-nav a::before{display:none}
  .cat-nav .nv-note{display:none}
  .doc-photo{max-width:520px}
  .doc-photo .name{right:16px}
  .legal{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  body{font-size:14.5px}
  .sec{padding-block:72px}
  .hero{padding-top:12px}
  .hero .blob.b1{width:320px;right:-140px;top:-40px}
  .mosaic{gap:10px}
  .m-main{height:auto;min-height:0;display:flex;flex-direction:column;overflow:visible;background:none;border-radius:0}
  .m-main::after{display:none}
  .m-main > .ph-in{position:relative;height:300px;border-radius:var(--r-photo);overflow:hidden}
  .m-main .vert{right:22px;top:24px;font-size:15px}
  .glass{position:relative;left:auto;bottom:auto;width:auto;margin:-72px 12px 0;padding:28px 22px 24px}
  .glass h1{font-size:28px;letter-spacing:.06em;margin:14px 0}
  .glass p{font-size:13.5px}
  .glass .ctas .pill{flex:1 1 100%;min-height:50px}
  .m-top{height:180px}
  .m-a{height:170px}
  .m-mon{min-height:170px;padding:20px 18px}
  .m-mon .price{font-size:32px}
  .m-mon h3{font-size:13px;margin-top:10px}
  .hero-foot{flex-direction:column;align-items:flex-start}
  .hero-foot .scroll{display:none}
  .camp{grid-template-columns:minmax(0,1fr)}
  .cp{min-height:0}
  .nlist a{grid-template-columns:auto minmax(0,1fr) auto;gap:6px 14px;padding:16px 2px}
  .nlist .c{display:none}
  #treatList{grid-template-columns:minmax(0,1fr)}
  #treatList a{padding:18px 4px;gap:14px}
  .about{border-radius:32px;margin-inline:8px}
  .feats{grid-template-columns:minmax(0,1fr)}
  .feats li,.feats li + li{padding:28px 0 4px;border-left:0}
  .feats li + li{border-top:1px solid var(--line);margin-top:20px}
  .feats .n{font-size:46px}
  .career{grid-template-columns:minmax(0,1fr)}
  .doc-photo .name{right:12px;bottom:20px;padding:14px 20px}
  .items{columns:1}
  .item{margin-bottom:10px}
  .item{padding:20px 18px 16px;border-radius:18px}
  .rows .lb{font-size:13.5px}
  .rows .pr{font-size:19px}
  .rows li.mon{margin-inline:-10px;padding-inline:10px}
  .cat-title{grid-template-columns:minmax(0,1fr);grid-template-areas:"en" "h3" "p";gap:4px}
  .flow{grid-template-columns:minmax(0,1fr);gap:12px}
  .flow li::after{display:none}
  .flow li{grid-template-columns:auto minmax(0,1fr);gap:4px 18px;padding:22px 20px}
  .flow .st{grid-row:1/4;flex-direction:column;align-items:flex-start;gap:8px}
  .flow .st b{font-size:36px}
  .flow .ico{display:none}
  .flow h3{margin:0}
  .faq summary{padding:18px 18px;gap:14px;font-size:14.5px}
  .faq summary .q,.faq .a .q{width:32px;height:32px;font-size:15px}
  .faq .a{padding:0 18px 20px;gap:14px}
  .gal{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:220px 150px 150px;gap:10px}
  .gal .ph:nth-child(1){grid-row:auto;grid-column:1/-1}
  .gal .ph:nth-child(4){grid-column:1/-1}
  .gal-cap{flex-direction:column;align-items:flex-start}
  .map{min-height:280px}
  .info dl{grid-template-columns:5.5em minmax(0,1fr)}
  .rv-box .pill{min-height:58px;padding:0 22px}
  .rv-tel{padding:18px 22px}
  .rv-tel b{font-size:26px}
  .ft ul{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .logo b{font-size:14px;letter-spacing:.08em}
  .logo .mk{width:36px;height:36px}
}
.ph .lbl{white-space:nowrap}
@media (max-width:760px){
  .mosaic{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .m-top{grid-column:auto;height:170px}
  .m-mon{grid-column:1/-1;min-height:0;flex-direction:row;align-items:flex-end;gap:12px}
  .m-mon h3{margin-top:10px}
  .m-mon .was{font-size:10.5px}
  .m-a .lbl,.m-top .lbl,.gal .ph:nth-child(2) .lbl,.gal .ph:nth-child(3) .lbl{font-size:0;left:16px;bottom:14px;gap:8px}
  .m-a .lbl b,.m-top .lbl b,.gal .ph:nth-child(2) .lbl b,.gal .ph:nth-child(3) .lbl b{font-size:10.5px}
  .about .blob{display:none}
  .hours{min-width:0;font-size:12px}
  .hours th,.hours td{padding:12px 2px}
  .hours tbody th,.hours thead th:first-child{padding-left:14px;font-size:13px}
  .glass h1{font-size:26px}
}
@media (min-width:761px){.m-main > .ph-in{position:absolute;inset:0;border-radius:inherit}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .ticker-in{animation:none}
  *,*::before,*::after{transition-duration:0s !important;animation-duration:0s !important}
}

/* ===== Global navigation kit (gn-) : 各パターンの --gn-* で色と形を切り替え ===== */
:root{--gn-h:76px}
body{padding-bottom:0}
.gn{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--gn-bg) 94%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.gn.is-scrolled{border-bottom-color:var(--gn-line);box-shadow:0 6px 24px -18px rgba(0,0,0,.35)}
.gn-in{max-width:1280px;margin-inline:auto;padding-inline:clamp(16px,3vw,40px);height:var(--gn-h);display:flex;align-items:center;gap:24px}
.gn-in .logo{flex:0 0 auto}
.gn-menu{display:flex;align-items:center;gap:2px;margin-left:auto;list-style:none;padding:0;margin-block:0;font-family:var(--gn-font);font-size:13px}
.gn-menu > li > a,.gn-menu > li > button{display:flex;align-items:center;gap:6px;height:var(--gn-h);padding:0 12px;white-space:nowrap;color:var(--gn-ink);text-decoration:none;background:none;border:0;font:inherit;letter-spacing:.08em;cursor:pointer;position:relative}
.gn-menu > li > a::after,.gn-menu > li > button::after{content:"";position:absolute;left:12px;right:12px;bottom:20px;height:1px;background:var(--gn-accent);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.gn-menu > li > a:hover::after,.gn-menu > li > button:hover::after,.gn-menu > li > button[aria-expanded="true"]::after{transform:scaleX(1)}
.gn-caret{width:7px;height:7px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .3s}
button[aria-expanded="true"] .gn-caret{transform:rotate(-135deg) translateY(-1px)}
.gn-actions{display:flex;align-items:center;gap:10px;font-family:var(--gn-font)}
.gn-tel{display:flex;flex-direction:column;line-height:1.25;text-align:right;margin-right:6px;color:var(--gn-ink)}
.gn-tel b{font-family:var(--gn-font-en);font-weight:400;font-size:18px;letter-spacing:.08em;user-select:all}
.gn-tel small{font-size:10px;color:var(--gn-sub);letter-spacing:.06em}
.gn-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 20px;border-radius:var(--gn-radius);background:var(--gn-cta);color:var(--gn-on-cta);border:1px solid var(--gn-cta);text-decoration:none;font-size:12.5px;letter-spacing:.12em;white-space:nowrap;transition:background .25s,color .25s}
.gn-btn:hover{background:transparent;color:var(--gn-cta)}
.gn-btn.sub{background:transparent;color:var(--gn-cta)}
.gn-btn.sub:hover{background:var(--gn-cta);color:var(--gn-on-cta)}
.gn-btn svg{width:15px;height:15px;flex:0 0 auto}
.gn-burger{display:none;width:46px;height:46px;border:1px solid var(--gn-line);border-radius:var(--gn-radius);background:var(--gn-panel);cursor:pointer;position:relative;flex:0 0 auto}
.gn-burger span{position:absolute;left:13px;right:13px;height:1.5px;background:var(--gn-ink);transition:transform .35s,opacity .2s}
.gn-burger span:nth-child(1){top:16px}.gn-burger span:nth-child(2){top:22px}.gn-burger span:nth-child(3){top:28px}
.gn-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.gn-burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.gn-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* Mega menu */
.gn-mega{position:absolute;left:0;right:0;top:100%;background:var(--gn-panel);border-block:1px solid var(--gn-line);box-shadow:0 30px 50px -30px rgba(0,0,0,.3);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .25s,transform .25s,visibility .25s}
.gn-mega.is-open{opacity:1;visibility:visible;transform:none}
.gn-mega-in{max-width:1280px;margin-inline:auto;padding:36px clamp(16px,3vw,40px) 40px;display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr) minmax(0,.9fr);gap:40px;font-family:var(--gn-font)}
.gn-mega h3,.gn-drawer h3{font-family:var(--gn-font-en);font-weight:400;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--gn-accent);margin:0 0 14px;display:flex;align-items:baseline;gap:10px}
.gn-mega h3 small,.gn-drawer h3 small{font-family:var(--gn-font);letter-spacing:.1em;color:var(--gn-sub);text-transform:none}
.gn-cats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.gn-cats a{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px solid var(--gn-line);text-decoration:none;color:var(--gn-ink);font-size:13.5px;transition:color .2s,padding .25s}
.gn-cats a small{font-size:11px;color:var(--gn-sub);font-family:var(--gn-font-en);letter-spacing:.04em;white-space:nowrap}
.gn-cats a:hover{color:var(--gn-accent);padding-left:6px}
.gn-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.gn-tags a{display:inline-block;padding:7px 14px;border:1px solid var(--gn-line);border-radius:var(--gn-radius);text-decoration:none;color:var(--gn-ink);font-size:12.5px;transition:border-color .2s,color .2s;background:var(--gn-bg)}
.gn-tags a:hover{border-color:var(--gn-accent);color:var(--gn-accent)}
.gn-first{background:var(--gn-bg);border-radius:var(--gn-cradius);padding:24px;display:grid;gap:12px;align-content:start}
.gn-first p{margin:0;font-size:12.5px;color:var(--gn-sub);line-height:1.9}
.gn-first strong{font-weight:500;font-size:15px;color:var(--gn-ink);letter-spacing:.08em}
.gn-hours{font-size:11.5px;color:var(--gn-sub);line-height:1.8}

/* Drawer */
.gn-overlay{position:fixed;inset:0;z-index:90;background:rgba(20,20,20,.35);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.gn-drawer{position:fixed;top:0;right:0;bottom:0;z-index:100;width:min(440px,100%);background:var(--gn-panel);color:var(--gn-ink);transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.7,.2,1);display:flex;flex-direction:column;font-family:var(--gn-font);visibility:hidden}
body.gn-open .gn-overlay{opacity:1;visibility:visible}
body.gn-open .gn-drawer{transform:none;visibility:visible}
body.gn-open{overflow:hidden}
.gn-dhead{display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + 14px) 20px 14px;border-bottom:1px solid var(--gn-line)}
.gn-dhead span{font-family:var(--gn-font-en);letter-spacing:.24em;font-size:12px;color:var(--gn-sub)}
.gn-close{width:46px;height:46px;border:1px solid var(--gn-line);border-radius:var(--gn-radius);background:transparent;position:relative;cursor:pointer}
.gn-close::before,.gn-close::after{content:"";position:absolute;left:14px;right:14px;top:22px;height:1.5px;background:var(--gn-ink);transform:rotate(45deg)}
.gn-close::after{transform:rotate(-45deg)}
.gn-dbody{flex:1;overflow-y:auto;padding:8px 20px 24px;overscroll-behavior:contain}
.gn-acc{border-bottom:1px solid var(--gn-line)}
.gn-acc summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:18px 0;cursor:pointer;font-size:15px;letter-spacing:.08em}
.gn-acc summary::-webkit-details-marker{display:none}
.gn-acc summary small{font-family:var(--gn-font-en);font-size:11px;color:var(--gn-sub);letter-spacing:.16em;margin-left:10px}
.gn-plus{width:14px;height:14px;position:relative;flex:0 0 auto}
.gn-plus::before,.gn-plus::after{content:"";position:absolute;left:0;right:0;top:6.5px;height:1px;background:var(--gn-accent);transition:transform .3s}
.gn-plus::after{transform:rotate(90deg)}
.gn-acc[open] .gn-plus::after{transform:rotate(0)}
.gn-acc .gn-cats{grid-template-columns:1fr;padding-bottom:12px}
.gn-acc .gn-cats a{padding:11px 4px;font-size:14px}
.gn-acc .gn-tags{padding-bottom:20px}
.gn-dlinks{list-style:none;margin:0;padding:0}
.gn-dlinks a{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid var(--gn-line);text-decoration:none;font-size:15px;letter-spacing:.08em}
.gn-dlinks a::after{content:"→";color:var(--gn-accent);font-size:13px}
.gn-dlinks small{font-family:var(--gn-font-en);font-size:11px;color:var(--gn-sub);letter-spacing:.16em;margin-left:10px}
.gn-dcta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px}
.gn-dcta .gn-btn{min-height:52px}
.gn-dtel{grid-column:1/-1;text-align:center;padding:16px;border:1px solid var(--gn-line);border-radius:var(--gn-cradius)}
.gn-dtel b{display:block;font-family:var(--gn-font-en);font-weight:400;font-size:24px;letter-spacing:.1em;user-select:all}
.gn-dtel small{font-size:11px;color:var(--gn-sub)}

/* Mobile fixed CTA bar & page top */
.gn-bar{display:none}
.gn-top{position:fixed;right:20px;bottom:24px;z-index:40;width:48px;height:48px;border-radius:var(--gn-radius);border:1px solid var(--gn-line);background:var(--gn-panel);color:var(--gn-ink);display:grid;place-items:center;text-decoration:none;font-family:var(--gn-font-en);font-size:10px;letter-spacing:.1em;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.gn-top.is-show{opacity:1;visibility:visible}

/* Concerns section */
.gn-concerns{padding-block:clamp(64px,8vw,110px);font-family:var(--gn-font)}
.gn-concerns .gn-wrap{max-width:1120px;margin-inline:auto;padding-inline:clamp(16px,4vw,40px)}
.gn-chead{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin-bottom:12px}
.gn-chead .en{font-family:var(--gn-font-en);font-size:clamp(30px,4vw,44px);line-height:1.1;color:var(--gn-accent);font-weight:400}
.gn-chead h2{font-size:14px;letter-spacing:.18em;font-weight:500;margin:0;color:var(--gn-ink)}
.gn-clead{color:var(--gn-sub);margin:0 0 32px;font-size:13.5px}
.gn-cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}
.gn-card{background:var(--gn-panel);border:1px solid var(--gn-line);border-radius:var(--gn-cradius);padding:26px 24px;display:flex;flex-direction:column;gap:12px;scroll-margin-top:calc(var(--gn-h) + 20px)}
.gn-card .k{font-family:var(--gn-font-en);font-size:11px;letter-spacing:.22em;color:var(--gn-accent);text-transform:uppercase}
.gn-card h3{margin:0;font-size:17px;font-weight:500;letter-spacing:.08em;color:var(--gn-ink)}
.gn-card p{margin:0;font-size:13px;color:var(--gn-sub);line-height:1.85}
.gn-card ul{list-style:none;margin:auto 0 0;padding:0;border-top:1px solid var(--gn-line)}
.gn-card li a{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px dotted var(--gn-line);text-decoration:none;font-size:13px;color:var(--gn-ink)}
.gn-card li a:hover{color:var(--gn-accent)}
.gn-card li a span:last-child{font-family:var(--gn-font-en);font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.gn-card li a span:last-child i{font-style:normal;font-size:10.5px;color:var(--gn-sub);margin-left:2px}

@media (max-width:1480px){.gn-tel{display:none}}
.gn-tel b,.gn-tel small{white-space:nowrap}
.gn-in .logo{min-width:0}
@media (max-width:1180px){
  .gn-mega{display:none}
  .gn-menu,.gn-actions .sub{display:none}
  .gn-burger{display:block}
  .gn-actions{margin-left:auto}
  :root{--gn-h:64px}
}
@media (max-width:860px){
  .gn-bar{display:grid;grid-template-columns:1fr 1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:45;background:var(--gn-panel);border-top:1px solid var(--gn-line);padding-bottom:env(safe-area-inset-bottom,0px);font-family:var(--gn-font)}
  .gn-bar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:60px;text-decoration:none;color:var(--gn-ink);font-size:11.5px;letter-spacing:.06em}
  .gn-bar a + a{border-left:1px solid var(--gn-line)}
  .gn-bar a.main{background:var(--gn-cta);color:var(--gn-on-cta)}
  .gn-bar svg{width:20px;height:20px}
  body{padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))}
  .gn-top{bottom:calc(76px + env(safe-area-inset-bottom,0px));right:14px;width:42px;height:42px}
}
@media (max-width:860px){.gn-actions > .gn-btn{display:none}}
@media (max-width:520px){.gn-in .logo b{font-size:15px;letter-spacing:.06em}.gn-in .logo small{font-size:9px}}
@media (prefers-reduced-motion:reduce){.gn,.gn-mega,.gn-drawer,.gn-overlay,.gn-top,.gn-burger span{transition:none}}

/* ---------- Concerns (kit) overrides ---------- */
.gn-concerns{padding-block:clamp(80px,10vw,140px)}
.gn-concerns .gn-wrap{max-width:var(--wrap);padding-inline:clamp(20px,4vw,48px)}
.gn-chead{display:grid;gap:14px;margin-bottom:18px}
.gn-chead .en{font-family:var(--f-en);font-weight:300;font-size:clamp(46px,6.4vw,84px);line-height:.95;letter-spacing:-.01em;color:var(--forest)}
.gn-chead h2{font-size:15px;letter-spacing:.2em;display:flex;align-items:center;gap:12px}
.gn-chead h2::before{content:"";width:28px;height:1px;background:var(--forest)}
.gn-clead{font-size:14px;color:var(--ink-2);margin-bottom:44px}
.gn-cgrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:14px}
.gn-card{border:0;border-radius:var(--r-panel);padding:26px 22px 20px;transition:transform .3s,box-shadow .3s}
.gn-card:hover{transform:translateY(-3px);box-shadow:0 24px 40px -30px rgba(14,60,40,.4)}
.gn-card .k{align-self:flex-start;font-size:10px;padding:3px 11px;border-radius:999px;background:var(--bg);font-weight:500}
.gn-card h3{font-size:18px}
.gn-card p{font-size:12.5px}
.gn-card ul{border-top:1px solid var(--line-2);margin-top:6px}
.gn-card li a{border-bottom:1px solid var(--line-2);padding:10px 0;font-size:12.5px;letter-spacing:.02em}
.gn-card li a span:first-child{min-width:0}
.gn-card li:last-child a{border-bottom:0}
.gn-card li a span:last-child{font-size:14.5px;color:var(--forest)}


/* ---------- Nav kit refinements ---------- */
.gn-in{max-width:var(--wrap);padding-inline:clamp(20px,4vw,48px)}
.gn-menu{font-size:13.5px}
.gn-menu > li > a::after,.gn-menu > li > button::after{height:2px;border-radius:2px;bottom:22px}
.gn-btn{font-weight:500;min-height:44px;padding:0 22px}
.gn-btn.sub{background:rgba(255,255,255,.6)}
.gn-mega{border-radius:0 0 32px 32px;border-top-color:var(--line-2)}
.gn-mega-in{max-width:var(--wrap);padding-inline:clamp(20px,4vw,48px)}
.gn-cats a small{text-transform:uppercase;letter-spacing:.12em;font-size:10px}
.gn-first{background:var(--bg)}
.gn-first .gn-btn{justify-self:start}
.gn-tags a{background:var(--panel)}
.gn-acc .gn-tags a{background:var(--bg)}
.gn-bar a.main{font-weight:500}
.gn-drawer{border-radius:28px 0 0 28px}
.gn-dtel{background:var(--bg);border:0}
.gn-mega-in{grid-template-columns:minmax(0,2.1fr) minmax(0,1fr) minmax(0,.9fr)}
.gn-mega .gn-cats a span{white-space:nowrap}
.gn-acc summary small{margin-right:auto}
