/* ヘッダーの器だけ、本文の器より広い（DESIGN.md §6 の唯一の例外） */
.hd .wrap{max-width:1320px}
/* ===== ヘッダー v2 ===== */
.hd{position:sticky;top:0;z-index:40;background:rgba(246,242,230,.92);
  backdrop-filter:saturate(1.3) blur(10px);border-bottom:1px solid transparent;
  transition:border-color .5s var(--ease),background .5s var(--ease)}
.hd.is-stuck{border-bottom-color:var(--rule);background:rgba(246,242,230,.97)}
.hd__in{display:flex;align-items:center;gap:24px;height:88px;transition:height .5s var(--ease)}
.hd.is-stuck .hd__in{height:68px}
.hd__mark{flex:none;display:flex;align-items:center;gap:12px;text-decoration:none;
  color:var(--ink);white-space:nowrap}
.hd__sym{color:var(--accent);flex:none;transition:transform .6s var(--ease)}
.hd__mark:hover .hd__sym{transform:rotate(-90deg)}
.hd__mark-t{font-family:var(--jp-min);font-weight:600;font-size:18px;letter-spacing:.03em;
  line-height:1.3}
.hd__mark small{display:block;font-family:"Manrope",sans-serif;font-size:9.5px;font-weight:600;
  color:var(--accent);letter-spacing:.18em;margin-top:4px}
.hd__nav{display:flex;gap:0;margin-left:auto;font-size:13.5px;flex:none}
.hd__nav a{position:relative;text-decoration:none;color:var(--ink);padding:8px 11px;
  transition:color .4s var(--ease);white-space:nowrap}
.hd__nav a::after{content:"";position:absolute;left:11px;right:11px;bottom:2px;height:1px;
  background:var(--accent);transform:scaleX(0);transform-origin:left;
  transition:transform .5s var(--ease)}
.hd__nav a:hover{color:var(--accent)}
.hd__nav a:hover::after{transform:scaleX(1)}
.hd__nav a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
.hd__tel{flex:none;white-space:nowrap;display:flex;align-items:center;gap:9px;text-decoration:none;padding:8px 13px;
  border:1px solid var(--rule);border-radius:2px;
  transition:border-color .4s var(--ease),background .4s var(--ease)}
.hd__tel .ic{color:var(--accent);flex:none}
.hd__tel b{display:block;font-family:"Manrope",sans-serif;font-weight:600;font-size:16px;
  font-variant-numeric:tabular-nums;line-height:1}
.hd__tel i{display:block;font-style:normal;font-size:9.5px;color:var(--ink-2);
  letter-spacing:.05em;margin-top:3px}
.hd__tel:hover{border-color:var(--accent);background:#fff}
.hd .cta{flex:none;white-space:nowrap;padding:13px 18px;font-size:14px;gap:9px}
.cta__lbl{display:inline}
.hd .cta .ic,.hero .cta .ic,.close .cta .ic{flex:none;transition:transform .5s var(--ease)}
.hd .cta:hover .ic,.hero .cta:hover .ic,.close .cta:hover .ic{transform:translateX(3px)}
.hd__burger{display:none;margin-left:0;background:none;border:1px solid var(--rule);
  border-radius:2px;width:44px;height:44px;align-items:center;justify-content:center;cursor:pointer}
.hd__burger span{display:block;width:18px;height:1px;background:var(--ink);position:relative;
  transition:background .3s var(--ease)}
.hd__burger span::before,.hd__burger span::after{content:"";position:absolute;left:0;width:18px;
  height:1px;background:var(--ink);transition:transform .5s var(--ease)}
.hd__burger span::before{top:-6px}
.hd__burger span::after{top:6px}
.hd__burger[aria-expanded="true"] span{background:transparent}
.hd__burger[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.hd__burger[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}
.mnav{position:fixed;inset:0;z-index:39;background:rgba(246,242,230,.98);
  backdrop-filter:blur(14px);padding:104px 0 32px;overflow-y:auto;
  opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility .5s}
.mnav.is-open{opacity:1;visibility:visible}
.mnav a{display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:17px 4px;border-bottom:1px solid var(--rule);text-decoration:none;
  font-family:var(--jp-min);font-size:19px;
  opacity:0;transform:translateY(12px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.mnav.is-open a{opacity:1;transform:none}
.mnav .ic{color:var(--accent);flex:none}
/* ナビは1024px以上で常に出す。狭くなるにつれて詰める */
@media(max-width:1270px){
  .hd .wrap{max-width:100%}
  .hd__in{gap:16px}
  .hd__nav{font-size:13px}
  .hd__nav a{padding:8px 8px}
  .hd__nav a::after{left:8px;right:8px}
  .hd__tel{padding:8px 10px;gap:7px}
  .hd__tel span span,.hd__tel i{display:none}
  .hd__tel b{font-size:15px}
  .hd .cta{padding:12px 15px;font-size:13.5px}
  .hd__mark-t{font-size:16px}
  .hd__sym{width:30px;height:30px}}
/* 1080px以下は電話ブロックを畳む（ナビは残す） */
@media(max-width:1080px){
  .hd__tel{display:none}
  .hd__nav a{padding:8px 7px;font-size:12.5px}
  .hd__nav a::after{left:7px;right:7px}
  .hd__mark small{font-size:8px;letter-spacing:.14em;margin-top:3px}
  .hd__in{height:74px}
  .hd.is-stuck .hd__in{height:62px}}
@media(max-width:1023px){.hd__nav,.hd__tel{display:none}.hd__burger{display:flex}
  .hd .cta{margin-left:auto}}
@media(min-width:1024px){.mnav{display:none}.hd__burger{display:none}}

/* 準備中のナビ項目 */
.hd__soon{color:#9AA398;padding:8px 11px;cursor:default;white-space:nowrap;position:relative}
.mnav .hd__soon{display:flex;justify-content:space-between;align-items:center;gap:16px;
  padding:17px 4px;border-bottom:1px solid var(--rule);font-family:var(--jp-min);font-size:19px;
  opacity:0;transform:translateY(12px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.mnav.is-open .hd__soon{opacity:.55;transform:none}
.mnav .hd__soon .ic{color:#9AA398}
[aria-current="page"]{color:var(--accent)!important}
.hd__nav a[aria-current="page"]::after{transform:scaleX(1)}

/* ===== ヒーロー ===== */
.hero{padding:80px 0 0}
.hero__grid{display:grid;grid-template-columns:1.16fr .84fr;gap:56px;align-items:center}
.hero h1{font-size:40px;letter-spacing:.015em;line-height:1.45}
.hero__eye{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;
  color:var(--accent);letter-spacing:.06em;border:1px solid #C6D2C0;background:#FCFAEF;
  padding:7px 14px;border-radius:2px;margin-bottom:26px}
.hero__eye .ic{flex:none}
.hero__sub{margin-top:26px;font-size:18px;line-height:1.95;color:#2F3A32;max-width:25em;font-weight:500}
.hero__sub b{font-weight:700;color:var(--ink);background:linear-gradient(transparent 68%,#D6E0C6 68%)}
.hero__cta{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero__note{margin-top:16px;font-size:13px;color:var(--ink-2);display:flex;
  align-items:center;gap:6px;flex-wrap:wrap}
.hero__note .ic{color:var(--accent)}

/* 事実バッジ */
.facts{margin-top:64px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  display:grid;grid-template-columns:repeat(4,1fr)}
.fact{display:flex;gap:13px;align-items:flex-start;padding:22px 20px 22px 0;
  border-right:1px solid var(--rule)}
.fact:last-child{border-right:0}
.fact:not(:first-child){padding-left:20px}
.fact .ic{color:var(--accent);flex:none;margin-top:3px}
.fact dt{font-size:11.5px;color:var(--ink-2);letter-spacing:.05em;line-height:1.6}
.fact dd{margin:4px 0 0;font-size:15.5px;font-weight:600;line-height:1.5}
.fact dd .num{font-size:22px}
.fact dd small{display:block;font-weight:400;font-size:11.5px;color:var(--ink-2);margin-top:3px}

/* 画像スロット（Codex 生成待ち） */
.slot{margin:0;background:var(--sunk);border:1px dashed #C3BFA6;
  display:grid;place-items:center;text-align:center;padding:24px}
.slot figcaption{max-width:24em}
.slot .id{display:inline-block;font-family:"Manrope",sans-serif;font-size:11px;font-weight:700;
  letter-spacing:.1em;color:#fff;background:var(--accent);padding:4px 10px;margin-bottom:12px}
.slot p{font-size:13px;line-height:1.75;color:#565F55}
.slot small{display:block;margin-top:10px;font-size:11px;color:#7C8C80;letter-spacing:.03em}
.slot img{width:100%;height:100%;object-fit:cover}
.slot--hero{aspect-ratio:4/3}
.slot--card{aspect-ratio:3/2;padding:14px}
.slot--card p{font-size:11.5px;line-height:1.7}
.slot--card .id{margin-bottom:8px;font-size:10px;padding:3px 8px}
.slot--card small{margin-top:7px;font-size:10px}

/* ===== 止まっていませんか ===== */
.stuck{padding:104px 0;background:var(--panel);border-block:1px solid var(--rule)}
.stuck__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:32px 28px;margin-top:48px}
.sc{border:1px solid var(--rule);background:var(--ground)}
.sc__t{padding:22px}
.sc__t p{font-size:16px;line-height:1.8;font-weight:500}
.sc__t span{display:block;margin-top:12px;font-size:13px;color:var(--ink-2);line-height:1.8}

/* ===== なぜ窓口が要るのか ===== */
.why{padding:112px 0}
.why h2{font-size:34px;max-width:19em}
.why__body{margin-top:40px;max-width:36em;font-size:17px;line-height:1.95}
.why__body p+p{margin-top:26px}
.why__body b{font-weight:700;background:linear-gradient(transparent 68%,#D6E0C6 68%)}

/* 工程レンジ図
   直したこと（2026-08-28）
     ・帯が薄いクリーム(#DFDAC4)で地色に沈み、どの段階を指しているか読めなかった
       → 士業は「深緑の輪郭＋薄い塗り」、この窓口だけ「深緑のベタ」。役割の差が形で出る
     ・段階の柱（縦罫）が薄すぎて、帯がどの列にあるか分からなかった → 濃さを上げる
     ・見出し「相続コンサルタント」が折れていた → 名前の列を 158px → 190px */
.range{margin-top:64px;border-top:2px solid var(--rule-ink)}
.range__head,.range__row{display:grid;grid-template-columns:190px repeat(4,minmax(0,1fr));
  align-items:center;border-bottom:1px solid var(--rule)}
.range__head{font-size:11.5px;color:var(--ink-2);letter-spacing:.03em;
  background:var(--panel)}
.range__head span{padding:13px 8px;text-align:center;border-left:1px solid var(--rule)}
.range__head span:first-child{text-align:left;border-left:0;padding-left:0}
.range__row{min-height:66px}
.range__who{font-size:14px;padding:12px 18px 12px 0;min-width:0}
.range__who b{display:block;font-weight:600;font-size:14.5px;white-space:nowrap}
.range__who small{color:var(--ink-2);font-size:11.5px;white-space:nowrap}
.range__track{grid-column:2 / -1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  position:relative;align-items:center;height:100%}
.range__track i{position:absolute;top:0;bottom:0;width:1px;background:var(--rule);
  font-style:normal}
.range__bar{grid-row:1;min-height:38px;display:flex;align-items:center;justify-content:center;
  font-size:12px;border-radius:2px;position:relative;z-index:1;margin:0 7px;
  background:#FFFDF4;border:1px solid var(--accent);color:var(--accent);
  padding:7px 10px;text-align:center;line-height:1.45;font-weight:600}
.range__row--us{background:#FCFAEF;border-bottom:2px solid var(--accent)}
.range__row--us .range__who b{color:var(--accent)}
.range__row--us .range__bar{background:var(--accent);border-color:var(--accent);
  color:#fff;font-weight:700}
.range__note{margin-top:18px;font-size:12.5px;color:var(--ink-2)}


/* タグライン */
.tag{padding:120px 0;background:var(--sunk);text-align:center}
.tag p{font-family:var(--jp-min);font-size:38px;line-height:1.6;font-weight:600;
  max-width:20em;margin-inline:auto}
.tag .w{color:#9EA894;transition:color .7s var(--ease)}
.tag .w.on{color:var(--ink)}

@media(max-width:1000px){
 .hero__grid{grid-template-columns:1fr;gap:40px}
 .facts{grid-template-columns:1fr 1fr}
 .fact{border-bottom:1px solid var(--rule)}
 .fact:nth-child(2n){border-right:0}
 .fact:nth-child(n+3){border-bottom:0}
 .stuck__cards{grid-template-columns:1fr 1fr;gap:24px}}
@media(max-width:860px){
 .hero{padding:48px 0 0}
 .hero h1{font-size:27px}
 .hero__sub{font-size:16px}
 .facts{margin-top:44px}
 .fact{padding:18px 12px 18px 0}
 .fact:not(:first-child){padding-left:12px}
 .fact dd{font-size:14px}
 .fact dd .num{font-size:19px}
 .stuck{padding:64px 0}
 .stuck h2{font-size:20px!important}
 .stuck__cards{grid-template-columns:1fr}
 .why{padding:72px 0}
 .why h2{font-size:22px}
 .why__body{font-size:16px}
 .range__head{display:none}
 .range__row{grid-template-columns:1fr;min-height:0;padding:14px 0}
 .range__who{padding:0 0 10px}
 .range__track{grid-column:1;grid-template-columns:1fr;height:auto}
 .range__track i{display:none}
 .range__bar{margin:0;height:auto;padding:9px 12px;justify-content:flex-start;text-align:left}
 .tag{padding:72px 0}
 .tag p{font-size:22px}}

/* ヘッダーの狭い幅 */
@media(max-width:600px){
 .hd__in{gap:12px;height:76px}
 .hd.is-stuck .hd__in{height:64px}
 .hd__mark{gap:9px}
 .hd__mark-t{font-size:15px;letter-spacing:.02em}
 .hd__mark small{font-size:7.5px;letter-spacing:.12em;margin-top:3px}
 .hd__sym{width:28px;height:28px}
 .hd .cta{padding:11px 14px;font-size:13px;gap:7px}
 .hd__burger{width:40px;height:40px}
 .mnav{padding:92px 0 32px}}
@media(max-width:430px){
 .hd__mark-t{font-size:13.5px}
 .hd__sym{width:26px;height:26px}
 .cta__long{display:none}
 .hd .cta{padding:11px 12px}}

@media(max-width:400px){.stuck h2{font-size:18px!important}.why h2{font-size:20px}}

/* ===== 事実バッジ v2 ===== */
.facts{margin-top:64px;border:1px solid var(--rule);background:var(--panel);
  display:grid;grid-template-columns:repeat(4,1fr)}
.fact{display:flex;gap:16px;align-items:center;padding:26px 24px;
  border-right:1px solid var(--rule)}
.fact:last-child{border-right:0}
.fact:not(:first-child){padding-left:24px}
.fact__ic{flex:none;width:52px;height:52px;display:grid;place-items:center;
  background:#E8EDE2;border-radius:50%}
.fact__ic .ic{color:var(--accent);margin:0}
.fact dt{font-size:11.5px;color:var(--ink-2);letter-spacing:.05em;line-height:1.5}
.fact dd{margin:5px 0 0;font-size:15px;font-weight:600;line-height:1.45}
.fact dd .num{font-size:27px;letter-spacing:-.01em;line-height:1}
.fact dd small{display:block;font-weight:400;font-size:11.5px;color:var(--ink-2);margin-top:5px}

/* ===== 対比インフォグラフィック ===== */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:52px;align-items:start}
.cmp{border:1px solid var(--rule);background:var(--panel);padding:30px 28px 26px;
  display:flex;flex-direction:column}
.cmp--after{border-color:var(--accent);border-width:1.5px;background:#FCFCF3}
.cmp__h{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;
  letter-spacing:.06em;color:var(--ink-2);border:1px solid var(--rule);background:var(--ground);
  padding:6px 12px;border-radius:2px;align-self:flex-start}
.cmp--after .cmp__h{color:#fff;background:var(--accent);border-color:var(--accent)}
.chain{list-style:none;margin:26px 0 0;padding:0;counter-reset:c}
/* たらい回しが一周して戻る、を線で見せる */
.loop{position:relative;margin:14px 0 0 0;padding:0 0 0 52px;font-size:13px;color:var(--ink-2);
  line-height:1.7}
.loop::before{content:"";position:absolute;left:6px;top:-14px;width:26px;height:38px;
  border:1px solid var(--rule);border-right:0;border-radius:14px 0 0 14px}
.loop .ic{position:absolute;left:0;top:20px;color:var(--accent)}
.loop b{color:var(--ink);font-weight:600}
.chain li{display:grid;grid-template-columns:38px minmax(0,1fr);gap:14px;align-items:start;
  padding:0 0 22px;position:relative}
.chain li::before{content:"";position:absolute;left:18.5px;top:40px;bottom:2px;
  width:1px;background:var(--rule)}
.chain li:last-child{padding-bottom:0}
.chain li:last-child::before{display:none}
.chain__ic{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--rule);
  border-radius:50%;background:var(--ground);color:var(--ink-2)}
.chain b{display:block;font-size:15px;font-weight:600;padding-top:8px}
.chain em{display:block;font-style:normal;font-size:13px;color:var(--ink-2);margin-top:4px;
  line-height:1.7}
.chain em::before{content:"→ ";color:#A9AF9E}
.hub{display:flex;align-items:center;gap:14px;margin-top:26px;padding:18px 20px;
  border:1.5px solid var(--accent);background:#fff;border-radius:2px}
.hub svg{color:var(--accent);flex:none}
.hub b{font-family:var(--jp-min);font-size:17px;font-weight:600;line-height:1.4}
.hub span{display:block;font-family:"Manrope",sans-serif;font-size:9px;font-weight:600;
  letter-spacing:.16em;color:var(--accent);margin-top:4px}
.branch{margin-top:0;padding-left:26px;position:relative}
.branch::before{content:"";position:absolute;left:26px;top:0;height:22px;width:1px;background:var(--accent)}
.fan{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:8px}
.fan li{display:flex;align-items:center;gap:11px;font-size:14px;padding:11px 14px;
  border:1px solid var(--rule);background:var(--ground);border-radius:2px}
.fan li .ic{color:var(--accent);flex:none}
.fan li small{margin-left:auto;font-size:11.5px;color:var(--ink-2)}
.cmp__f{margin-top:26px;padding-top:22px;border-top:1px solid var(--rule);
  font-family:var(--jp-min);font-size:19px;font-weight:600}
.cmp--after .cmp__f{color:var(--accent)}
.cmp__note{font-size:12.5px;color:var(--ink-2);margin-top:6px;line-height:1.7}

/* レンジ図：相談先にアイコン */
.range__who{display:flex;align-items:center;gap:11px}
.range__who .ic{color:var(--ink-2);flex:none}
.range__row--us .range__who .ic{color:var(--accent)}
.range__who>div{min-width:0}

/* ===== 104年のインフォグラフィック ===== */
.life{padding:104px 0;background:var(--sunk);border-block:1px solid var(--rule)}
.life h2{font-size:31px;max-width:20em}
.life__lead{margin-top:24px;font-size:16.5px;line-height:1.95;max-width:36em}
.life__lead b{font-weight:700;background:linear-gradient(transparent 68%,#D6E0C6 68%)}
.lifeline{margin-top:56px}
.lifeline__row{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.ls{background:var(--panel);border:1px solid var(--rule);padding:22px 20px;position:relative}
.ls__ic{width:44px;height:44px;display:grid;place-items:center;background:#E8EDE2;
  border-radius:50%;color:var(--accent);margin-bottom:14px}
.ls b{display:block;font-family:var(--jp-min);font-size:17px;font-weight:600}
.ls p{margin-top:8px;font-size:13.5px;color:var(--ink-2);line-height:1.8}
.ls small{display:block;margin-top:10px;font-family:"Manrope",sans-serif;font-size:11px;
  color:var(--accent);font-weight:600;letter-spacing:.06em}
.lifebar{margin-top:16px;display:flex;align-items:center;gap:14px;
  background:var(--accent);color:#fff;padding:15px 22px;border-radius:2px}
.lifebar svg{flex:none;color:#fff}
.lifebar b{font-size:15px;font-weight:600}
.lifebar span{margin-left:auto;font-family:"Manrope",sans-serif;font-size:13px;font-weight:600;
  letter-spacing:.06em;color:#D6CDA6;white-space:nowrap}
.life__q{margin-top:64px;text-align:center;font-family:var(--jp-min);font-size:31px;
  font-weight:600;line-height:1.7;max-width:26em;margin-inline:auto;letter-spacing:.02em}
.life__q .w{color:#9EA894;transition:color .7s var(--ease)}
.life__q .w.on{color:var(--ink)}

@media(max-width:1000px){
 .compare{grid-template-columns:1fr}
 .lifeline__row{grid-template-columns:1fr 1fr}}
@media(max-width:860px){
 .facts{grid-template-columns:1fr}
 .fact{border-right:0;border-bottom:1px solid var(--rule);padding:20px!important}
 .fact:last-child{border-bottom:0}
 .fact__ic{width:46px;height:46px}
 .fact dd{font-size:14.5px}
 .fact dd .num{font-size:24px}
 .life{padding:64px 0}
 .life h2{font-size:21px}
 .life__lead{font-size:15.5px}
 .lifeline__row{grid-template-columns:1fr}
 .lifebar{flex-wrap:wrap;gap:8px}
 .lifebar span{margin-left:0;width:100%}
 .life__q{font-size:19px;margin-top:40px}
 .cmp{padding:24px 20px}
 .cmp__f{font-size:17px}}

/* ===== 入口ブロック（ヒーロー直下・3秒で選ばせる） ===== */
.gates{padding:0 0 88px}
.gates__h{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:26px}
.gates__h p{font-size:15px;color:var(--ink-2)}
.gates__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);
  border:1px solid var(--rule)}
.gate{background:var(--panel);padding:26px 22px 22px;text-decoration:none;color:var(--ink);
  display:flex;flex-direction:column;position:relative;
  transition:background .45s var(--ease)}
.gate:hover{background:#FCFCF3}
.gate:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.gate__ic{width:46px;height:46px;display:grid;place-items:center;background:#E8EDE2;
  border-radius:50%;color:var(--accent);margin-bottom:16px;
  transition:background .45s var(--ease)}
.gate:hover .gate__ic{background:var(--accent);color:#fff}
.gate b{font-family:var(--jp-min);font-size:18px;font-weight:600;line-height:1.4}
.gate p{margin-top:9px;font-size:13.5px;color:var(--ink-2);line-height:1.8}
.gate__go{margin-top:18px;display:flex;align-items:center;gap:7px;font-size:12.5px;
  color:var(--accent);font-weight:500}
.gate__go .ic{transition:transform .5s var(--ease)}
.gate:hover .gate__go .ic{transform:translateX(4px)}
.gate--soon{cursor:default;background:var(--ground)}
.gate--soon:hover{background:var(--ground)}
.gate--soon b,.gate--soon p{color:#8E9689}
.gate--soon .gate__ic{background:#E4E4DA;color:#9AA398}
.gate--soon .gate__go{color:#9AA398}

/* ===== スマホ下端の固定バー ===== */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:35;display:none;
  background:rgba(246,242,230,.97);backdrop-filter:blur(10px);
  border-top:1px solid var(--rule);padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  gap:10px;transform:translateY(110%);transition:transform .5s var(--ease)}
.dock.is-up{transform:none}
.dock a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 8px;border-radius:2px;text-decoration:none;font-size:15px;font-weight:600;
  line-height:1;white-space:nowrap}
.dock .d-tel{border:1px solid var(--accent);color:var(--accent);background:var(--panel)}
.dock .d-res{background:var(--accent);color:#fff}
.dock .ic{flex:none}
@media(max-width:860px){.dock{display:flex}body{padding-bottom:0}}
@media(prefers-reduced-motion:reduce){.dock{transition:none}}


@media(max-width:1000px){.gates__grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.gates{padding-bottom:56px}.gates__grid{grid-template-columns:1fr}
 .gate{padding:20px}}

/* 実写が入った枠 */
.ph-fig{margin:0;overflow:hidden;background:var(--sunk)}
.ph-fig img{width:100%;height:100%;object-fit:cover;display:block}
.ph-fig.slot--hero{aspect-ratio:4/3}
.ph-fig.slot--card{aspect-ratio:3/2}


/* ===== ヒーロー（写真なし・組みで見せる） ===== */
.hero{padding:0;border-bottom:1px solid var(--rule);position:relative;overflow:hidden}
/* 地に極細のグリッドを敷く（近づくと分かる程度） */
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(90deg,var(--rule) 1px,transparent 1px);
  background-size:calc((min(100vw,1120px) - 48px) / 12) 100%;
  background-position:calc((100vw - min(100vw,1120px)) / 2 + 24px) 0;
  mask-image:linear-gradient(180deg,transparent,#000 18%,#000 72%,transparent)}
.hero__in{position:relative;z-index:1;padding-block:84px 0}
.hero__grid{display:grid;grid-template-columns:1.32fr .68fr;gap:64px;align-items:start}
.hero__eye{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;
  color:var(--accent);letter-spacing:.04em;border:1px solid #C6D2C0;background:#FCFAEF;
  padding:7px 14px;border-radius:2px;margin-bottom:30px;
  white-space:nowrap;max-width:100%}
.hero__eye .ic{flex:none}
.hero h1{font-size:clamp(28px,3.6vw,50px);letter-spacing:.015em;line-height:1.42;
  position:relative;padding-left:26px}
.hero h1::before{content:"";position:absolute;left:0;top:.24em;bottom:.24em;width:3px;
  background:var(--accent)}
.hero__sub{margin-top:30px;font-size:18px;line-height:1.95;color:#2F3A32;max-width:26em;
  font-weight:500;padding-left:26px}
.hero__sub b{font-weight:700;color:var(--ink);background:linear-gradient(transparent 68%,#D6E0C6 68%)}
.hero__cta{margin-top:36px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;padding-left:26px}
.hero__note{margin-top:16px;padding-left:26px;font-size:13px;color:var(--ink-2);
  display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hero__note .ic{color:var(--accent)}

/* ヒーロー右：お探しのことから */
.entry{border-top:1px solid var(--ink)}
.entry__h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  padding:14px 0 16px}
.entry__h b{font-family:var(--jp-min);font-size:16px;font-weight:600}
.entry__h span{font-family:"Manrope",sans-serif;font-size:10px;font-weight:600;
  letter-spacing:.14em;color:var(--ink-2)}
.entry a,.entry .soon{display:flex;align-items:center;gap:12px;padding:15px 0;
  border-top:1px solid var(--rule);text-decoration:none;color:var(--ink);
  transition:padding-left .45s var(--ease),color .45s var(--ease)}
.entry a:hover{padding-left:8px;color:var(--accent)}
.entry a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.entry .ic{color:var(--accent);flex:none}
.entry b{font-size:15.5px;font-weight:600;flex:1;line-height:1.5}
.entry .go{color:var(--accent);transition:transform .45s var(--ease)}
.entry a:hover .go{transform:translateX(4px)}
.entry .soon{color:#9AA398;cursor:default}
.entry .soon .ic{color:#B4BBAF}
.entry .soon em{font-style:normal;font-size:11px;letter-spacing:.04em}
.hero__facts{margin-top:72px;border-top:1px solid var(--rule);
  display:grid;grid-template-columns:repeat(4,1fr)}
.hero__facts .fact{border-right:1px solid var(--rule);border-bottom:0;padding:26px 22px 30px 0}
.hero__facts .fact:last-child{border-right:0}
.hero__facts .fact:not(:first-child){padding-left:22px}
@media(max-width:1000px){
  .hero__grid{grid-template-columns:1fr;gap:44px}
  .hero__in{padding-block-start:56px}
  .hero__facts{grid-template-columns:1fr 1fr;margin-top:48px}
  .hero__facts .fact{border-bottom:1px solid var(--rule)}
  .hero__facts .fact:nth-child(2n){border-right:0}
  .hero__facts .fact:nth-child(n+3){border-bottom:0}}
@media(max-width:860px){
  /* 1列に戻すので、2列用の罫の打ち消しを解除する */
  .hero__facts{grid-template-columns:1fr}
  .hero__facts .fact,
  .hero__facts .fact:nth-child(n+3){border-right:0;border-bottom:1px solid var(--rule)}
  .hero__facts .fact:last-child{border-bottom:0}
  .hero::before{display:none}
  .hero__in{padding-block-start:40px}
  .hero h1{padding-left:18px}
  .hero h1::before{width:2px}
  .hero__sub,.hero__cta,.hero__note{padding-left:18px}
  .hero__sub{font-size:16px;margin-top:24px}
  .hero__facts{grid-template-columns:1fr}
  .hero__facts .fact{border-right:0;padding:20px 0!important}
  .hero__facts .fact:last-child{border-bottom:0}}

/* 極端に狭い端末（320〜374px）の詰め */
@media(max-width:374px){
  .hd__in{gap:8px;height:70px}
  .hd__mark-t{font-size:12.5px}
  .hd__mark small{font-size:7px;letter-spacing:.1em}
  .hd__sym{width:24px;height:24px}
  .hd .cta{padding:10px 10px;font-size:12.5px;gap:6px}
  .hd__burger{width:38px;height:38px}
  .hero__eye{font-size:11px;letter-spacing:0;padding:6px 10px;gap:7px}
  .hero__eye .ic{width:13px;height:13px}
  .hero h1{font-size:24px}
  .hero__sub{font-size:15px}
  .stuck h2{font-size:17px!important}
  .why h2{font-size:19px}
  .close h2{font-size:19px}
  .tag p,.life__q{font-size:18px!important}
  .sec h2{font-size:19px}
  .ph h1{font-size:22px}}

.chain li>*,.fact>*,.gate>*,.ls>*{min-width:0}

/* ===== フッター（作り込み） ===== */
.ft{background:#0F221C;color:#B2BEB2;padding:72px 0 0;font-size:14px;line-height:1.9}
.ft a{color:#B2BEB2;text-decoration:none;transition:color .4s var(--ease)}
.ft a:hover{color:#fff}
.ft__top{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:56px;
  padding-bottom:56px;border-bottom:1px solid #2A3B33}
.ft__mark{display:flex;align-items:center;gap:13px;margin-bottom:22px}
.ft__mark svg{color:#D6CDA6;flex:none}
.ft__mark b{font-family:var(--jp-min);font-weight:600;font-size:18px;color:#fff;
  letter-spacing:.03em;line-height:1.35;display:block}
.ft__mark span{display:block;font-family:"Manrope",sans-serif;font-size:9px;font-weight:600;
  letter-spacing:.18em;color:#D6CDA6;margin-top:4px}
.ft__addr{font-size:13.5px;color:#8FA095;line-height:1.95}
.ft__tel{display:inline-flex;align-items:center;gap:9px;margin-top:20px;
  border:1px solid #33463C;border-radius:2px;padding:11px 15px;
  transition:border-color .4s var(--ease),background .4s var(--ease)}
.ft__tel:hover{border-color:#D6CDA6;background:#16302A}
.ft__tel .ic{color:#D6CDA6;flex:none}
.ft__tel b{display:block;font-family:"Manrope",sans-serif;font-weight:600;font-size:17px;color:#fff;
  font-variant-numeric:tabular-nums;line-height:1}
.ft__tel i{display:block;font-style:normal;font-size:10px;color:#8FA095;margin-top:4px}
.ft__col h3{font-family:var(--jp-go);font-size:11px;font-weight:600;letter-spacing:.1em;
  color:#7C8C80;margin:0 0 18px}
.ft__col ul{list-style:none;margin:0;padding:0}
.ft__col li{margin-bottom:12px;font-size:14px}
.ft__col li .soon{color:#5E6E64}
.ft__cta{padding:40px 0;border-bottom:1px solid #2A3B33;
  display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.ft__cta p{font-family:var(--jp-min);font-size:19px;color:#fff;font-weight:600;margin:0}
.ft__cta .cta{margin-left:auto;background:#D6CDA6;color:#0F221C}
.ft__cta .cta:hover{background:#fff}
.ft__legal{padding:26px 0 34px;display:flex;gap:12px 32px;flex-wrap:wrap;
  font-size:12px;color:#6E7E74}
.ft__legal .lic{font-variant-numeric:tabular-nums}
.ft__legal nav{margin-left:auto;display:flex;gap:20px}
@media(max-width:900px){
  .ft{padding-top:52px}
  .ft__top{grid-template-columns:1fr;gap:36px;padding-bottom:36px}
  .ft__cta{padding:28px 0}
  .ft__cta .cta{margin-left:0;width:100%;justify-content:center}
  .ft__cta p{font-size:16px}
  .ft__legal{padding:20px 0 28px}
  .ft__legal nav{margin-left:0;width:100%}}

/* ヒーロー：事実を1本の帯にまとめる（枠を散らさない） */
.chips{list-style:none;margin:30px 0 0 26px;padding:0;
  display:grid;grid-template-columns:repeat(4,auto);justify-content:start;
  width:max-content;max-width:calc(100% - 26px);
  border:1px solid var(--rule);background:var(--panel);border-radius:2px;overflow:hidden}
.chips li{display:flex;align-items:center;justify-content:center;gap:8px;
  font-size:13px;font-weight:600;color:var(--ink);letter-spacing:.02em;
  padding:12px 18px;border-right:1px solid var(--rule);white-space:nowrap}
.chips li:last-child{border-right:0}
.chips li:first-child{color:var(--accent);background:#FCFAEF}
.chips .ic{color:var(--accent);flex:none}
/* 第2の導線はボタンでなく下線リンクにして、面の数を減らす */
.hero__link{display:inline-flex;align-items:center;gap:7px;font-size:15px;font-weight:600;
  color:var(--ink);text-decoration:none;padding:6px 0;position:relative}
.hero__link::after{content:"";position:absolute;left:0;right:22px;bottom:2px;height:1px;
  background:var(--ink);transform-origin:left;transition:transform .5s var(--ease)}
.hero__link:hover{color:var(--accent)}
.hero__link:hover::after{background:var(--accent);transform:scaleX(1.04)}
.hero__link .ic{color:var(--accent);transition:transform .5s var(--ease)}
.hero__link:hover .ic{transform:translateX(3px)}
.hero__cta{margin-top:34px;gap:24px;align-items:center}
@media(max-width:860px){
  .chips{margin:24px 0 0 18px;width:calc(100% - 18px);max-width:none;
    grid-template-columns:1fr 1fr;grid-auto-rows:1fr}
  .chips li{font-size:12.5px;padding:12px 10px;gap:7px}
  .chips li:nth-child(2n){border-right:0}
  .chips li{box-sizing:border-box;border-bottom:1px solid transparent}
  .chips li:nth-child(-n+2){border-bottom-color:var(--rule)}
  .hero__cta{margin-top:28px;gap:18px}
  .hero__cta .cta{width:100%;justify-content:center}
  .hero__link{margin-inline:auto}}
