  :root{
    /* ===== ブランドカラー：葡萄色（えびいろ）×金箔 ===== */
    --ink:#312836;
    /* ロゴ本来の色（看板データ実測）。LPでの表示色は --logo-ink で調整 */
    --logo-red:#e21713;
    --logo-ink:#e21713;
    --terra:#6e3b55;
    --terra-deep:#572c42;
    --terra-rgb:110,59,85;
    --terra-lt:#7f4763;
    --ink-lt:#443a4c;
    --footer-lt:#3a3141;
    --paper:#fcfaf9;
    --beige:#f6f1f2;
    --beige-a:#f7f1f3;
    --beige-b:#f2eaee;
    --greige:#e9e1e5;
    --line:#e0d6da;
    --muted:#6f6470;
    --white:#ffffff;
    --sheet-bd:#e6dde1;
    --perf:#d6c9cf;
    --seg3:#e6dae0;
    --invalid-bg:#fdf6f9;
    --amber-rgb:184,116,143;
    --blush-rgb:214,166,180;
    --gold-rgb:185,138,78;
    --tag-a1:#fdf6f8; --tag-a2:#f8ebf0;
    --tag-b1:#f9eff4; --tag-b2:#f3e2ea;
    --tag-fold:#f0e2e8;
    --header-h:76px;
  }

  /* SVG内のハードコード色をテーマ変数へ橋渡し */
  svg [fill="#a3532f"]{fill:var(--terra);}
  svg [stroke="#a3532f"]{stroke:var(--terra);}
  svg [fill="#33291f"]{fill:var(--ink);}
  svg [stroke="#33291f"]{stroke:var(--ink);}
  svg [stroke="#79695a"]{stroke:var(--muted);}
  svg [fill="#79695a"]{fill:var(--muted);}
  svg [fill="#f7f2ea"]{fill:var(--beige);}

  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;scroll-padding-top:92px;}
  body{
    font-family:'Zen Kaku Gothic New','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;
    font-weight:400;color:var(--ink);background:var(--paper);
    line-height:1.95;letter-spacing:.03em;font-size:16px;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  sup{font-size:.55em;}
  .mincho{font-family:'Shippori Mincho','Hiragino Mincho ProN',serif;font-weight:600;}
  .mono{font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;}

  /* 改行制御 */
  h1,h2,h3{word-break:auto-phrase;text-wrap:balance;font-feature-settings:"palt";}
  p,.lede,li,dd{text-wrap:pretty;}

  .wrap{max-width:1160px;margin:0 auto;padding:0 24px;}
  .wrap-n{max-width:1040px;margin:0 auto;padding:0 24px;}

  section{padding:clamp(88px,10vw,144px) 0;}
  h2{font-weight:500;font-size:clamp(28px,3.4vw,40px);line-height:1.6;letter-spacing:.06em;margin-bottom:24px;}
  .lede{font-weight:500;font-size:18px;line-height:1.9;max-width:38em;}
  .body-t{font-size:16px;line-height:1.95;color:var(--ink);max-width:38em;}

  /* ---------- 帳票ヘッダ（章頭） ---------- */
/* ---------- 帳票ヘッダ（章頭）格上げ仕様 ----------
   既存 .ch-head ブロック（90-97行目）をこの定義で置き換える。
   812-820行目の箔押し指定（.ch-head::before の金バー / .ch-no の --foil クリップ）は
   そのまま活かすため、ここでは position:relative のみ引き継ぐ。 */
.ch-head{
  position:relative;
  border-top:1px solid var(--ink);
  padding-top:18px;margin-bottom:40px;
  display:flex;align-items:baseline;gap:0 16px;flex-wrap:wrap;
}
.ch-no{
  font-family:'IBM Plex Mono',monospace;
  font-size:13px;letter-spacing:.06em;
  color:var(--terra); /* 箔押し節が background-clip:text で上書き（既存挙動を維持） */
}
/* 番号と章名の間の「細い斜線（/）」— 擬似要素で描くのでHTML追加なし */
.ch-name{
  position:relative;
  font-weight:500;font-size:14px;letter-spacing:.14em;color:var(--ink);
}
.ch-name::before{
  content:"";position:absolute;left:-11px;bottom:2px;
  width:1px;height:15px;
  background:var(--ink);opacity:.42;
  transform:rotate(24deg);transform-origin:50% 100%;
}
/* tracked caps の英字ラベル（Mono 10.5px / .3em / グレー） */
.ch-en{
  font-family:'IBM Plex Mono',monospace;
  font-style:normal;font-weight:400;
  font-size:10.5px;letter-spacing:.3em;
  color:var(--muted);
  text-transform:uppercase;white-space:nowrap;
  position:relative;top:-1px; /* 和文ベースラインへの光学合わせ */
  margin-left:-2px; /* 斜線後のリズム調整 */
}
.ch-note{margin-left:auto;font-size:12px;color:var(--muted);letter-spacing:.04em;}

/* SP: 注記を全幅に落とし、英字は詰めて折り返しを防ぐ */
@media(max-width:680px){
  .ch-en{font-size:10px;letter-spacing:.22em;}
  .ch-note{flex-basis:100%;margin-left:0;margin-top:8px;}
}

  /* 本文8col＋右3col注記 */
  .cols{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,3fr);gap:56px;align-items:start;}
  .side-note{font-size:12.5px;color:var(--muted);line-height:1.9;border-top:1px solid var(--line);padding-top:14px;}

  /* ---------- シート（机の上の書類） ---------- */
  .sheet{
    position:relative;
    isolation:isolate;
    background:var(--white);
    border:1px solid var(--line);
    border-radius:2px;
    padding:clamp(28px,4vw,48px);
  }
  .sheet::before{
    content:"";position:absolute;inset:0;
    transform:translate(-14px,14px);
    background:var(--beige);
    z-index:-1;border-radius:2px;
  }
  .sheet-title{
    font-size:12px;color:var(--muted);letter-spacing:.12em;
    margin-bottom:20px;display:flex;align-items:center;gap:10px;
  }
  .sheet-title::after{content:"";flex:1;height:1px;background:var(--line);}
  .fig-cap{
    margin-top:20px;font-size:13px;color:var(--ink);
    display:flex;gap:12px;align-items:baseline;
  }
  /* fig-capはflexなので、文節spanを直接置くと折り返せず器を超える。
     テキストは span.t でまとめて1つのアイテムにする */
  .fig-cap .t{flex:1 1 auto; min-width:0;}
  .fig-cap .mono{color:var(--terra);font-size:12px;}
  .fig-note{margin-top:8px;font-size:12px;color:var(--muted);line-height:1.8;}

  /* 明朝の声（各章1行の対話） */
  .voice-line{
    font-family:'Shippori Mincho',serif;font-weight:600;
    font-size:17px;letter-spacing:.08em;color:var(--ink);
    margin-top:36px;
  }
  .voice-line::before{content:"—— ";color:var(--terra);}

  /* ---------- header ---------- */
  header{
    position:fixed;top:0;left:0;right:0;z-index:100;
    background:rgba(252,250,246,.95);backdrop-filter:blur(8px);
    border-bottom:1px solid var(--line);
  }
  .header-inner{
    max-width:1240px;margin:0 auto;padding:12px 24px;
    display:flex;align-items:center;justify-content:space-between;gap:16px;
  }
  .logo{display:flex;align-items:center;gap:12px;}
  .logo .penguin{height:38px;width:auto;}
  .logo-text{display:flex;flex-direction:column;line-height:1.3;}
  /* ヘッダーロゴ：クライアント支給の実ロゴ（ベクター）。色はCSSで制御 */
  .logo .mark{display:block;width:132px;height:auto;color:var(--logo-ink);margin-bottom:4px;}
  @media(max-width:680px){ .logo .mark{width:112px;margin-bottom:3px;} }
  @media(max-width:380px){ .logo .mark{width:98px;} }
  .logo .tag{font-size:10px;letter-spacing:.12em;color:var(--muted);}
  .header-right{display:flex;align-items:center;gap:20px;}
  .header-tel{text-align:right;line-height:1.4;}
  .header-tel .num{font-family:'IBM Plex Mono',monospace;font-size:17px;letter-spacing:.02em;}
  .header-tel .num a:hover{color:var(--terra);}
  .header-tel .note{font-size:10px;color:var(--muted);letter-spacing:.06em;}

  /* ---------- ボタン ---------- */
  .btn{
    display:inline-block;background:var(--terra);color:#fff;
    border-radius:2px;padding:17px 34px;
    font-weight:500;font-size:15.5px;letter-spacing:.08em;
    transition:background .3s ease;
  }
  .btn:hover{background:var(--terra-deep);}
  /* CTAの「無料」は控えめに添える（クライアント指示 2026-08-08） */
  .btn .free{font-size:.76em;letter-spacing:.04em;opacity:.82;margin-left:.15em;}
  .btn-tel{
    display:inline-block;background:var(--white);color:var(--ink);
    border:1px solid var(--ink);border-radius:2px;padding:16px 26px;
    font-size:13px;letter-spacing:.04em;transition:border-color .3s ease,color .3s ease;
  }
  .btn-tel .num{font-family:'IBM Plex Mono',monospace;font-size:17px;margin-left:8px;}
  .btn-tel:hover{border-color:var(--terra);color:var(--terra-deep);}
  .header-right .btn{padding:12px 22px;font-size:13.5px;}

  /* ---------- FV ---------- */
  .hero{
    background:var(--paper);
    padding:calc(var(--header-h) + clamp(56px,8vh,88px)) 0 clamp(56px,8vh,80px);
  }
  .hero-inner{
    max-width:1160px;margin:0 auto;padding:0 24px;
    display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);
    gap:clamp(40px,6vw,88px);align-items:center;
  }
  .hero-eyebrow{
    display:flex;align-items:center;gap:12px;
    font-weight:500;font-size:13px;letter-spacing:.18em;color:var(--ink);
    margin-bottom:30px;
  }
  .hero-eyebrow::before{content:"";width:28px;height:1px;background:var(--terra);flex-shrink:0;}
  .hero h1{
    font-family:'Shippori Mincho',serif;font-weight:600;
    font-size:clamp(31px,4.1vw,46px);line-height:1.55;letter-spacing:.06em;
    margin-bottom:26px;
  }
  .hero h1 .accent{color:var(--terra);}
  .hero-sub{font-size:16px;line-height:2;color:var(--ink);max-width:32em;margin-bottom:26px;}
  .hero-checks{list-style:none;display:flex;flex-wrap:wrap;gap:8px 28px;margin-bottom:32px;}
  .hero-checks li{
    font-size:14px;font-weight:500;letter-spacing:.04em;
    display:flex;align-items:center;gap:9px;
  }
  .hero-checks li::before{
    content:"";width:12px;height:7px;
    border-left:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);
    transform:rotate(-45deg) translateY(-2px);flex-shrink:0;
  }
  .hero-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-bottom:14px;}
  .hero-micro{font-size:12.5px;color:var(--muted);line-height:1.9;max-width:36em;}
  .hero-anchor{
    display:inline-block;margin-top:14px;
    font-size:13px;color:var(--muted);letter-spacing:.06em;
    border-bottom:1px solid var(--line);padding-bottom:2px;
    transition:color .3s ease,border-color .3s ease;
  }
  .hero-anchor:hover{color:var(--terra);border-color:var(--terra);}

  /* FVシート（散らかり→整列） */
  .fv-sheet .tags{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;}
  .fv-sheet .tag{
    align-self:flex-start;background:var(--beige);
    border-radius:2px;padding:8px 16px;
    font-size:13px;letter-spacing:.03em;color:var(--ink);
  }
  .fv-sheet .tag:nth-child(1){transform:rotate(-2deg);}
  .fv-sheet .tag:nth-child(2){transform:rotate(1.5deg);align-self:center;}
  .fv-sheet .tag:nth-child(3){transform:rotate(-1deg);align-self:flex-end;}
  .fv-arrow{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:20px;}
  .fv-arrow svg{display:block;}
  .fv-arrow img{width:26px;height:auto;}
  .fv-lines{list-style:none;display:flex;flex-direction:column;gap:14px;}
  .fv-lines li{
    display:flex;align-items:baseline;gap:14px;
    font-weight:500;font-size:15px;letter-spacing:.05em;
    border-bottom:2px solid var(--terra);padding-bottom:8px;
    position:relative;
  }
  .fv-lines .mono{font-size:12.5px;color:var(--muted);}
  .fv-lines .maru{position:absolute;left:32px;top:-9px;width:138px;height:44px;pointer-events:none;}

  /* FV直下 信頼帯 */
  .trust-band{
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    background:var(--paper);
  }
  .trust-band ul{
    max-width:1160px;margin:0 auto;padding:16px 24px;
    list-style:none;display:flex;flex-wrap:wrap;gap:8px 0;
  }
  .trust-band li{
    font-size:12.5px;color:var(--muted);letter-spacing:.06em;
    padding:0 28px;position:relative;
  }
  .trust-band li:first-child{padding-left:0;}
  .trust-band li + li::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:1px;background:var(--line);}

  /* ---------- 01 現在地（チェックリスト） ---------- */
  .sec-beige{background:var(--beige);}
  .sec-beige .sheet::before{background:var(--greige);}
  .checklist{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 48px;}
  .checklist li{
    display:flex;align-items:flex-start;gap:14px;
    padding:15px 4px;border-bottom:1px solid var(--line);
    font-size:15px;line-height:1.8;
  }
  .checklist .box{
    flex-shrink:0;width:18px;height:18px;margin-top:5px;
    border:1.5px solid var(--ink);border-radius:2px;position:relative;
  }
  .checklist .box::after{
    content:"";position:absolute;left:3px;top:2px;width:10px;height:6px;
    border-left:2px solid var(--terra);border-bottom:2px solid var(--terra);
    transform:rotate(-45deg) scale(0);opacity:0;
    transition:transform .25s ease,opacity .25s ease;
  }
  .js .checklist.is-checked li .box::after{transform:rotate(-45deg) scale(1);opacity:1;}
  .checklist li:nth-child(1) .box::after{transition-delay:.05s;}
  .checklist li:nth-child(2) .box::after{transition-delay:.15s;}
  .checklist li:nth-child(3) .box::after{transition-delay:.25s;}
  .checklist li:nth-child(4) .box::after{transition-delay:.35s;}
  .checklist li:nth-child(5) .box::after{transition-delay:.45s;}
  .checklist li:nth-child(6) .box::after{transition-delay:.55s;}
  .checklist li:nth-child(7) .box::after{transition-delay:.65s;}
  .checklist li:nth-child(8) .box::after{transition-delay:.75s;}
  .checklist li:nth-child(9) .box::after{transition-delay:.85s;}
  .checklist li:nth-child(10) .box::after{transition-delay:.95s;}
  .check-verdict{
    margin-top:26px;font-weight:500;font-size:16px;letter-spacing:.04em;
    line-height:2.05;max-width:62em;
  }

  /* ---------- 墨帯（再定義） ---------- */
  .band-ink{background:var(--ink);padding:clamp(96px,12vw,140px) 24px;text-align:center;}
  .band-ink .main{
    font-family:'Shippori Mincho',serif;font-weight:600;
    font-size:clamp(24px,3vw,36px);line-height:1.9;letter-spacing:.1em;
    color:#fdfbf7;margin-bottom:26px;
  }
  .band-ink .main .u{border-bottom:2px solid var(--terra);padding-bottom:4px;}
  .band-ink .sub{
    font-size:14.5px;line-height:2.1;color:rgba(253,251,247,.8);
    max-width:38em;margin:0 auto;
  }

  /* ---------- 図解共通 ---------- */
  .fig-lede{margin-bottom:36px;}
  svg text{font-family:'Zen Kaku Gothic New',sans-serif;}

  /* FIG.2 overlay */
  .fig2-wrap{position:relative;}
  .fig2-svg{width:100%;height:auto;display:block;}
  .fig2-flagpeng{position:absolute;left:calc(4% - 12px);top:31%;width:30px;}
  .fig2-labels{
    display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:18px;
  }
  .fig2-labels .st .t{font-weight:500;font-size:13.5px;letter-spacing:.03em;display:flex;gap:7px;}
  .fig2-labels .st .t .mono{color:var(--terra);font-size:12px;}
  .fig2-labels .st .d{font-size:11.5px;color:var(--muted);line-height:1.7;margin-top:6px;}
  .fig2-rail{display:none;}

  /* FIG.3 記入シート */
  .prio-rows{display:flex;flex-direction:column;gap:2px;}
  .prio-head{display:grid;grid-template-columns:160px 1fr;gap:20px;margin-bottom:10px;}
  .prio-head .axis{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.08em;}
  .prio-head .axis .l{color:var(--terra);font-weight:500;}
  .prio-head .axis .r{color:var(--muted);}
  .prio-row{display:grid;grid-template-columns:160px 1fr;gap:20px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);position:relative;}
  .prio-row .nm{font-size:14px;font-weight:500;letter-spacing:.03em;}
  .prio-row .track{position:relative;height:2px;background:var(--greige);}
  .prio-row .dot{
    position:absolute;top:50%;transform:translate(-50%,-50%);
    width:14px;height:14px;border-radius:50%;
  }
  .prio-row .dot.t{background:var(--terra);}
  .prio-row .dot.g{background:var(--greige);border:1.5px solid var(--muted);}
  .prio-row .maru{position:absolute;left:0;top:2px;width:150px;height:40px;pointer-events:none;z-index:2;}
  .prio-note-m{
    font-family:'Shippori Mincho',serif;font-weight:600;font-size:13px;color:var(--ink);
    margin-top:14px;text-align:right;letter-spacing:.06em;
  }
  .prio-rule{margin-top:26px;font-weight:500;font-size:16px;line-height:1.9;}

  /* FIG.4 費用バー */
  .cost-bars{display:flex;flex-direction:column;gap:22px;}
  .cost-bar .bar-label{font-size:13px;color:var(--muted);margin-bottom:8px;letter-spacing:.04em;}
  .cost-bar .bar{display:flex;height:52px;border:1px solid var(--line);border-radius:2px;overflow:hidden;}
  .cost-bar .seg{
    display:flex;align-items:center;justify-content:center;
    font-size:12.5px;letter-spacing:.02em;color:var(--ink);
    white-space:nowrap;overflow:hidden;
  }
  .cost-bar .seg.s1{background:var(--greige);}
  .cost-bar .seg.s2{background:var(--beige);}
  .cost-bar .seg.s3{background:var(--seg3);}
  .cost-bar .seg.s4{background:var(--terra);color:#fff;}
  .cost-points{list-style:none;margin-top:26px;}
  .cost-points li{
    padding:13px 4px;border-bottom:1px solid var(--line);
    font-size:14.5px;font-weight:500;letter-spacing:.03em;
    display:flex;gap:14px;align-items:baseline;
  }
  .cost-points li .mono{font-size:12px;color:var(--terra);}
  .budget-bar{margin-top:40px;}
  .budget-bar .bar{display:flex;height:52px;border-radius:2px;overflow:hidden;}
  .budget-bar .seg{display:flex;align-items:center;justify-content:center;font-size:12.5px;color:var(--ink);}
  .budget-bar .b1{background:var(--terra);color:#fff;}
  .budget-bar .b2{background:var(--beige);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .budget-bar .b3{background:var(--white);border:1.5px solid var(--terra);position:relative;}
  .budget-bar .b3 .maru{position:absolute;inset:-12px -10px;width:calc(100% + 20px);height:calc(100% + 24px);pointer-events:none;}

  /* 無料の範囲シート */
  .free-scope{list-style:none;}
  .free-scope li{
    display:flex;gap:14px;align-items:baseline;
    padding:12px 4px;border-bottom:1px solid var(--line);
    font-size:14.5px;
  }
  .free-scope li::before{
    content:"";width:12px;height:7px;flex-shrink:0;
    border-left:1.5px solid var(--terra);border-bottom:1.5px solid var(--terra);
    transform:rotate(-45deg) translateY(-2px);
  }

  /* ---------- 中間CTA（罫線枠の白ボタン行） ---------- */
  .mid-cta{
    margin-top:56px;
    border:1px solid var(--line);border-radius:2px;background:var(--white);
    padding:32px 36px;
    display:flex;flex-wrap:wrap;align-items:center;gap:20px 32px;justify-content:space-between;
  }
  .mid-cta .t{font-weight:500;font-size:16.5px;letter-spacing:.04em;line-height:1.7;}
  .mid-cta .a{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
  /* CTA直下の但し書き（無料の範囲を明示・クライアント指示 2026-08-08） */
  .cta-note{
    flex-basis:100%;margin:0;font-size:12.5px;line-height:1.85;
    color:var(--muted);letter-spacing:.02em;
  }

  /* ---------- 写真行（配給制） ---------- */
  .photo-split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(36px,5vw,72px);align-items:center;}
  .photo-split .visual{position:relative;overflow:hidden;border-radius:2px;aspect-ratio:4/3;}
  .photo-split .visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

  /* ---------- 対応範囲 ---------- */
  .scope-list{list-style:none;border-top:1px solid var(--line);}
  .scope-list li{
    display:grid;grid-template-columns:220px 1fr;gap:24px;
    padding:22px 4px;border-bottom:1px solid var(--line);
  }
  .scope-list .nm{font-weight:500;font-size:15.5px;letter-spacing:.04em;}
  .scope-list .ds{font-size:14px;color:var(--muted);line-height:1.85;}

  /* ---------- 体制 ---------- */
  .team-cols{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);border-radius:2px;background:var(--white);}
  .team-col{padding:30px 32px;}
  .team-col + .team-col{border-left:1px solid var(--line);}
  .team-col .tt{font-weight:500;font-size:14px;letter-spacing:.08em;margin-bottom:12px;display:flex;align-items:center;gap:10px;}
  .team-col .tt::before{content:"";width:10px;height:10px;border-radius:50%;flex-shrink:0;}
  .team-col.r375 .tt::before{background:var(--terra);}
  .team-col.msplan .tt::before{background:var(--ink);}
  .team-col ul{list-style:none;font-size:13.5px;color:var(--muted);line-height:2;}
  .profile-grid{display:grid;grid-template-columns:300px 1fr;gap:56px;align-items:start;margin-top:64px;}
  .portrait{
    aspect-ratio:3/4;background:var(--greige);border-radius:2px;
    display:flex;align-items:center;justify-content:center;
    color:var(--muted);font-size:12px;letter-spacing:.1em;text-align:center;line-height:2;
  }
  .quals{list-style:none;border-top:1px solid var(--line);margin-top:20px;}
  .quals li{padding:9px 4px;border-bottom:1px solid var(--line);font-size:13.5px;letter-spacing:.03em;}
  .rep-quote{
    font-family:'Shippori Mincho',serif;font-weight:600;
    font-size:17px;line-height:2.1;letter-spacing:.06em;
    padding-left:22px;border-left:2px solid var(--terra);
    margin-top:28px;
  }
  .rep-quote small{display:block;margin-top:10px;font-family:'Zen Kaku Gothic New',sans-serif;font-weight:400;font-size:12px;color:var(--muted);letter-spacing:.08em;}

  /* ---------- 声 ---------- */
  .voice-sheets{display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px;}
  .voice-sheet{
    background:var(--white);border:1px solid var(--line);border-radius:2px;
    padding:26px 26px 22px;
  }
  .voice-sheet .vh{
    font-size:11.5px;color:var(--muted);letter-spacing:.08em;
    border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:16px;
    display:flex;justify-content:space-between;gap:10px;
  }
  .voice-sheet p{font-size:14px;line-height:2;}
  .media-row{
    margin-top:56px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    padding:18px 4px;text-align:center;
  }
  .media-row .lbl{font-size:11px;letter-spacing:.28em;color:var(--muted);display:block;margin-bottom:6px;}
  .media-row .names{font-family:'Shippori Mincho',serif;font-weight:600;font-size:15px;letter-spacing:.1em;}

  /* ---------- テラCTA帯 ---------- */
  .band-terra{background:var(--terra);padding:clamp(88px,10vw,128px) 24px;text-align:center;color:#fff;}
  .band-terra .main{
    font-family:'Shippori Mincho',serif;font-weight:600;
    font-size:clamp(24px,3vw,34px);letter-spacing:.1em;line-height:1.9;margin-bottom:18px;
  }
  .band-terra .name{
    font-weight:500;font-size:15px;letter-spacing:.1em;margin-bottom:26px;color:rgba(255,255,255,.9);
  }
  .band-terra .contents{
    list-style:none;display:flex;justify-content:center;flex-wrap:wrap;gap:10px 36px;
    margin-bottom:34px;
  }
  .band-terra .contents li{
    font-size:13.5px;letter-spacing:.06em;display:flex;align-items:center;gap:9px;color:rgba(255,255,255,.92);
  }
  .band-terra .contents li::before{
    content:"";width:11px;height:6px;
    border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;
    transform:rotate(-45deg) translateY(-2px);
  }
  .band-terra .btn{background:#fff;color:var(--terra-deep);}
  .band-terra .btn:hover{background:var(--beige);}
  .band-terra .tel{margin-top:22px;font-size:13px;color:rgba(255,255,255,.85);}
  .band-terra .tel .num{font-family:'IBM Plex Mono',monospace;font-size:20px;color:#fff;margin:0 6px;}
  .band-terra .micro{margin-top:18px;font-size:12.5px;color:rgba(255,255,255,.8);}

  /* ---------- 流れ・FAQ ---------- */
  .flow3{list-style:none;border-top:1px solid var(--line);max-width:820px;margin:0 auto;}
  .flow3 li{
    display:grid;grid-template-columns:64px 1fr;gap:24px;
    padding:28px 4px;border-bottom:1px solid var(--line);
  }
  .flow3 .no{font-family:'IBM Plex Mono',monospace;font-size:26px;color:var(--terra);}
  .flow3 h3{font-weight:500;font-size:16.5px;letter-spacing:.05em;margin-bottom:6px;}
  .flow3 p{font-size:14px;color:var(--muted);line-height:1.9;max-width:36em;}
  .faq-list{margin-top:72px;max-width:820px;margin-left:auto;margin-right:auto;}
  details{border-bottom:1px solid var(--line);}
  details:first-of-type{border-top:1px solid var(--line);}
  summary{
    cursor:pointer;list-style:none;position:relative;
    display:flex;align-items:flex-start;gap:14px;
    padding:22px 40px 22px 4px;
    font-weight:500;font-size:15.5px;letter-spacing:.04em;line-height:1.8;
    transition:color .3s ease;
  }
  /* summaryはflexなので、文節spanを直接置くと折り返せず切れる。
     テキストは span.q でまとめて1つのアイテムにする */
  summary .q{flex:1 1 auto; min-width:0;}
  summary::-webkit-details-marker{display:none;}
  summary:hover{color:var(--terra);}
  summary img{width:20px;height:auto;flex-shrink:0;margin-top:4px;}
  summary::after{
    content:"＋";position:absolute;right:6px;top:50%;transform:translateY(-50%);
    color:var(--terra);font-size:16px;font-weight:300;
  }
  details[open] summary::after{content:"−";}
  .faq-a{padding:0 4px 26px 38px;font-size:14.5px;line-height:2;color:var(--ink);max-width:44em;}
  .faq-a p + p{margin-top:1.1em;}

  /* ---------- フォーム（記入欄） ---------- */
  .form-sheet{max-width:760px;margin:56px auto 0;}
  .form-assure{
    border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:36px;
    text-align:center;font-size:13px;letter-spacing:.08em;color:var(--ink);
  }
  .form-assure .sep{color:var(--line);margin:0 14px;}
  .form-row{margin-bottom:28px;}
  .form-row > label,.form-row > .group-label{
    display:block;font-size:13.5px;font-weight:500;letter-spacing:.06em;margin-bottom:9px;
  }
  .form-row .req{font-size:10px;color:#fff;background:var(--terra);padding:2px 7px;margin-left:10px;letter-spacing:.1em;vertical-align:middle;border-radius:2px;}
  .form-row .opt{font-size:10px;color:var(--muted);border:1px solid var(--line);padding:2px 7px;margin-left:10px;letter-spacing:.1em;vertical-align:middle;border-radius:2px;}
  .form-row .hint{font-size:12px;color:var(--muted);margin-top:7px;transition:color .3s ease;}
  .form-row .hint.is-alert{color:var(--terra-deep);font-weight:500;}
  input[type="text"],input[type="email"],input[type="tel"],textarea{
    width:100%;border:1px solid var(--line);background:var(--paper);
    padding:14px 16px;font-size:16px;font-family:inherit;color:var(--ink);
    border-radius:2px;appearance:none;-webkit-appearance:none;
  }
  input:focus,textarea:focus{outline:none;border-color:var(--terra);background:#fff;}
  input:user-invalid{border-color:var(--terra-deep);background:var(--invalid-bg);}
  .check-group{display:flex;flex-wrap:wrap;gap:10px;}
  .check-group label{
    display:flex;align-items:center;gap:8px;
    border:1px solid var(--line);border-radius:2px;
    padding:10px 18px;font-size:13.5px;cursor:pointer;
    transition:all .25s ease;background:var(--paper);
  }
  .check-group label:has(input:checked){
    border-color:var(--terra);background:rgba(var(--terra-rgb),.06);color:var(--terra-deep);
  }
  .check-group input{accent-color:var(--terra);}
  /* SPは選択肢が増えたぶん左右の余白を詰めて行数を抑える */
  @media(max-width:680px){
    .check-group{gap:8px;}
    .check-group label{padding-left:12px;padding-right:12px;font-size:13px;}
  }
  .submit-block{text-align:center;margin-top:40px;}
  .submit-block button{
    border:none;cursor:pointer;width:min(420px,100%);
    background:var(--terra);color:#fff;border-radius:2px;
    padding:19px 20px;font-family:inherit;font-weight:500;
    font-size:15.5px;letter-spacing:.08em;transition:background .3s ease;
  }
  .submit-block button:hover{background:var(--terra-deep);}
  .submit-block .after-note{font-size:12.5px;color:var(--ink);margin-top:16px;line-height:2;}
  .submit-block .privacy{font-size:11.5px;color:var(--muted);margin-top:8px;}
  /* 送信完了の表示（フォームと置き換わる） */
  .form-thanks{
    border:1px solid var(--line);border-radius:2px;background:var(--white);
    padding:clamp(36px,6vw,56px) clamp(24px,4vw,40px);text-align:center;
  }
  .form-thanks .t{
    font-family:'Shippori Mincho',serif;font-weight:600;
    font-size:clamp(19px,2.4vw,23px);letter-spacing:.04em;color:var(--terra-deep);
    margin-bottom:16px;
  }
  .form-thanks .d{font-size:14px;line-height:2.1;color:var(--ink);}
  .form-thanks .d a{color:var(--terra);border-bottom:1px solid currentColor;}
  .contact-tel{margin-top:26px;text-align:center;font-size:13px;color:var(--ink);line-height:2;}
  .contact-tel .num{font-family:'IBM Plex Mono',monospace;font-size:24px;}
  .contact-tel a:hover{color:var(--terra);}

  /* ---------- footer ---------- */
  footer{background:var(--ink);color:rgba(255,255,255,.85);padding:64px 0 110px;font-size:12.5px;letter-spacing:.05em;}
  .footer-grid{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;}
  .footer-logo{width:104px;height:auto;margin-bottom:16px;display:block;}
  footer .co{font-size:12px;line-height:2;color:rgba(255,255,255,.65);}
  footer .addr{line-height:2.1;color:rgba(255,255,255,.75);}
  footer .addr .mono{letter-spacing:.02em;}
  footer a:hover{color:#fff;}
  .copyright{
    margin-top:44px;padding-top:18px;border-top:1px solid rgba(255,255,255,.18);
    font-size:10.5px;color:rgba(255,255,255,.55);letter-spacing:.1em;
  }

  /* ---------- side CTA / sticky CTA ---------- */
  .side-cta{
    position:fixed;right:0;top:50%;transform:translateY(-50%) translateX(8px);
    writing-mode:vertical-rl;
    background:var(--terra);color:#fff;
    padding:26px 13px;border-radius:4px 0 0 4px;
    font-weight:500;font-size:13px;letter-spacing:.16em;
    z-index:98;opacity:0;pointer-events:none;
    transition:opacity .4s ease,transform .4s ease,background .3s ease;
  }
  .side-cta.is-visible{opacity:1;pointer-events:auto;transform:translateY(-50%) translateX(0);}
  .side-cta:hover{background:var(--terra-deep);}
  @media(max-width:960px){.side-cta{display:none;}}
  .sticky-cta{
    position:fixed;bottom:0;left:0;right:0;z-index:99;display:none;
    background:rgba(252,250,246,.97);border-top:1px solid var(--line);
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:10px;
    transition:transform .3s ease;
  }
  .sticky-cta.is-hidden{transform:translateY(105%);}
  .sticky-cta a{
    flex:1;text-align:center;border-radius:2px;padding:14px 6px;
    font-weight:500;font-size:13px;letter-spacing:.02em;
  }
  .sticky-cta .tel{border:1px solid var(--terra);color:var(--terra-deep);}
  .sticky-cta .form{flex:1.35;background:var(--terra);color:#fff;}

  /* ---------- reveal & 線描画 ---------- */
  .js .reveal{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease;}
  .js .reveal.is-visible{opacity:1;transform:none;}
  .js .draw path.d,.js .draw circle.d,.js .draw ellipse.d,.js .draw line.d{
    stroke-dasharray:var(--len,600);stroke-dashoffset:var(--len,600);
    transition:stroke-dashoffset .9s cubic-bezier(.4,0,.2,1);
  }
  .js .draw.is-drawn path.d,.js .draw.is-drawn circle.d,.js .draw.is-drawn ellipse.d,.js .draw.is-drawn line.d{stroke-dashoffset:0;}
  @media (prefers-reduced-motion: reduce){
    .js .reveal{opacity:1;transform:none;transition:none;}
    .js .draw path.d,.js .draw circle.d,.js .draw ellipse.d,.js .draw line.d{stroke-dasharray:none;stroke-dashoffset:0;transition:none;}
    .checklist .box::after{transition:none;}
  }

  /* ---------- responsive ---------- */
  @media(max-width:1100px){
    .cols{grid-template-columns:1fr;gap:24px;}
    .side-note{border-top:none;padding-top:0;}
  }
  @media(max-width:960px){
    section{padding:80px 0;}
    .hero-inner{grid-template-columns:1fr;gap:48px;}
    .hero{padding-top:calc(var(--header-h) + 36px);}
    /* h1は<br>で改行位置を指定済み。各行が1行に収まるサイズへ */
    .hero h1{font-size:clamp(23px,6.4vw,30px);letter-spacing:.04em;}
    .header-tel{display:none;}
    .header-right .btn{display:none;}
    .sticky-cta{display:flex;}
    footer{padding-bottom:calc(130px + env(safe-area-inset-bottom));}
    .checklist{grid-template-columns:1fr;}
    .photo-split{grid-template-columns:1fr;}
    .profile-grid{grid-template-columns:1fr;gap:36px;}
    .portrait{max-width:300px;}
    .team-cols{grid-template-columns:1fr;}
    .team-col + .team-col{border-left:none;border-top:1px solid var(--line);}
    .voice-sheets{grid-template-columns:1fr;}
    .scope-list li{grid-template-columns:1fr;gap:6px;padding:18px 4px;}
    .fig2-svg,.fig2-labels,.fig2-flagpeng{display:none;}
    .fig2-rail{display:block;list-style:none;border-left:1.5px solid var(--ink);margin-left:8px;padding-left:28px;}
    .fig2-rail li{position:relative;padding-bottom:26px;}
    .fig2-rail li::before{
      content:"";position:absolute;left:-37px;top:6px;width:15px;height:15px;
      border-radius:50%;background:#fff;border:1.5px solid var(--ink);
    }
    .fig2-rail li.mayoi{background:var(--beige);border-radius:2px;padding:16px 16px 16px 28px;margin-left:-16px;}
    .fig2-rail li.mayoi::before{border-color:var(--terra);left:-21px;top:22px;}
    .fig2-rail .t{font-weight:500;font-size:14.5px;display:flex;gap:8px;}
    .fig2-rail .t .mono{color:var(--terra);font-size:12.5px;}
    .fig2-rail .d{font-size:12.5px;color:var(--muted);line-height:1.8;margin-top:4px;}
    .fig2-flag-sp{display:flex;align-items:center;gap:10px;margin-bottom:20px;font-weight:500;font-size:13.5px;color:var(--terra);}
    .fig2-flag-sp img{width:26px;}
    .prio-row{grid-template-columns:1fr;gap:10px;padding:14px 0;}
    .prio-head{grid-template-columns:1fr;}
    .prio-row .maru{left:0;right:auto;top:4px;width:150px;height:38px;}
    .mid-cta{flex-direction:column;align-items:flex-start;}
    .fv-lines .maru{width:100px;}
  }
  @media(min-width:961px){.fig2-flag-sp{display:none;}}
  @media(max-width:599px){
    .cost-bar .seg{font-size:10px;letter-spacing:0;white-space:normal;line-height:1.3;text-align:center;padding:0 2px;}
    h2 br{display:none;}
  }

  /* ============================================================
     華やか強化レイヤー「紙と箔のアトリエ机」
     原則: 大判の紙は静止・動くのは小物だけ／常時アニメはペンギン2羽のみ
     ============================================================ */
  :root{
    --amber:#b8748f; --amber-soft:rgba(var(--amber-rgb),.14);
    --blush:#d9adb9; --cream:#fdf7f9;
    --kraft:#cfae87; --kraft-deep:#b8946a;
    --gold:#b98a4e; --gold-hi:#e6cd92;
    --foil:linear-gradient(105deg,#a67c3d 0%,#e6cd92 38%,#b98a4e 55%,#f0dfae 78%,#a67c3d 100%);
    --sage:#8f9d7c;
    --sh-hairline:0 1px 0 rgba(51,41,31,.05);
    --sh-raise:0 1px 2px rgba(51,41,31,.06),0 3px 7px rgba(51,41,31,.05),0 10px 20px -4px rgba(51,41,31,.08);
    --sh-paper:0 1px 2px rgba(51,41,31,.07),0 6px 14px -2px rgba(51,41,31,.08),0 20px 40px -12px rgba(51,41,31,.12);
    --sh-lift:0 2px 4px rgba(51,41,31,.08),0 14px 28px -6px rgba(51,41,31,.12),0 36px 68px -16px rgba(51,41,31,.16);
    --sh-cta:0 2px 0 var(--terra-deep),0 8px 20px -4px rgba(var(--terra-rgb),.38);
    --sh-cta-hover:0 3px 0 var(--terra-deep),0 14px 30px -6px rgba(var(--terra-rgb),.46);
    --sh-cta-active:0 1px 0 var(--terra-deep),0 4px 10px -2px rgba(var(--terra-rgb),.32);
    --ease-spring:cubic-bezier(.22,1,.36,1);
    --ease-pop:cubic-bezier(.34,1.56,.64,1);
    --grain: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='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .2 0 0 0 0 .16 0 0 0 0 .12 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  /* --- 質感と光 --- */
  body{background-image:var(--grain);}
  :root{
    --pat-grid:
      repeating-linear-gradient(0deg, rgba(var(--terra-rgb),.05) 0 1px, transparent 1px 28px),
      repeating-linear-gradient(90deg, rgba(var(--terra-rgb),.05) 0 1px, transparent 1px 28px);
    --pat-dots:radial-gradient(rgba(51,41,31,.055) 1px, transparent 1.3px);
  }
  main section{position:relative;overflow:hidden;}
  main section > .wrap-n, main section > .wrap, .photo-split, .cat-grid{position:relative;z-index:1;}
  /* 紙白の章＝ドット方眼（記入用紙）、ベージュの章＝方眼紙（机のマット） */
  main > section:not(.sec-beige):not(.hero){background-image:var(--pat-dots);background-size:24px 24px;}
  .wm-quote{
    font-family:'Shippori Mincho',serif;font-weight:600;
    font-size:clamp(220px,20vw,300px);line-height:1;
    color:transparent;-webkit-text-stroke:1.5px rgba(var(--terra-rgb),.08);
    position:absolute;left:8px;top:-10px;
    pointer-events:none;user-select:none;z-index:0;
  }
  @media(max-width:960px){
    .wm-quote{display:none;}
  }
  .hero{
    background:
      radial-gradient(110% 85% at 88% 8%, var(--amber-soft), transparent 58%),
      radial-gradient(80% 70% at 4% 92%, rgba(var(--blush-rgb),.12), transparent 55%),
      var(--grain), var(--paper);
    position:relative;overflow:hidden;
  }
  .sec-beige{background-image:var(--grain), var(--pat-grid), linear-gradient(180deg,var(--beige-a) 0%,var(--beige-b) 100%);}
  .band-ink{
    background-image:
      var(--grain),
      radial-gradient(60% 40% at 50% 100%, rgba(var(--terra-rgb),.22), transparent),
      radial-gradient(120% 100% at 50% -10%, var(--ink-lt) 0%, var(--ink) 62%);
    position:relative;
  }
  .band-terra{
    background-image:var(--grain), radial-gradient(120% 130% at 50% -20%, var(--terra-lt) 0%, var(--terra) 45%, var(--terra-deep) 100%);
    position:relative;
  }
  .band-terra::before,.band-terra::after{
    content:"";position:absolute;left:0;right:0;height:1px;background:var(--foil);opacity:.6;
  }
  .band-terra::before{top:0;} .band-terra::after{bottom:0;}
  footer{background-image:linear-gradient(180deg,var(--footer-lt),var(--ink));position:relative;}
  footer::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--foil);opacity:.5;}
  header{box-shadow:0 4px 16px -8px rgba(51,41,31,.12);}
  header::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--foil);opacity:.45;}

  /* --- 紙の立体（下敷き紙はbox-shadowで表現＝背景の下に必ず描画される） --- */
  .sheet{--under:var(--beige);}
  .sec-beige .sheet{--under:var(--greige);}
  .sheet::before{content:none!important;}
  .sheet{
    box-shadow:
      -12px 14px 0 -1px var(--under),
      -12px 14px 0 0 var(--line),
      var(--sh-paper),
      inset 0 1px 0 rgba(255,255,255,.9);
    border-color:var(--sheet-bd);
    padding-top:calc(clamp(28px,4vw,48px) + 16px);
  }
  .sheet-stack3{
    box-shadow:
      -12px 14px 0 -1px var(--under),
      -12px 14px 0 0 var(--line),
      10px 26px 0 -2px var(--cream),
      10px 26px 0 -1px var(--line),
      var(--sh-paper),
      inset 0 1px 0 rgba(255,255,255,.9);
  }
  .fig-emph{filter:drop-shadow(0 5px 10px rgba(51,41,31,.25));}
  input:focus,textarea:focus{box-shadow:0 0 0 3px rgba(var(--terra-rgb),.14);}

  /* --- クラフト紙インデックスタブ --- */
  .sheet-title{
    position:absolute;top:-15px;left:26px;margin:0;
    background:linear-gradient(180deg,#d6b78f,#cfae87);
    color:#5f4a32;padding:7px 20px 6px;border-radius:6px 6px 0 0;
    font-size:11px;letter-spacing:.14em;font-weight:500;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.4), 0 2px 3px rgba(51,41,31,.12);
    z-index:2;
  }
  .sheet-title::after{display:none;}
  .sec-beige .sheet-title{background:linear-gradient(180deg,#cfae87,#c29e74);}

  /* --- ボタンの立体（単色+厚み。グラデ塗りは不使用） --- */
  .btn{
    box-shadow:var(--sh-cta);
    transition:transform .25s var(--ease-spring), box-shadow .25s ease, background .3s ease;
  }
  .btn:hover{transform:translateY(-2px);box-shadow:var(--sh-cta-hover);}
  .btn:active{transform:translateY(1px);box-shadow:var(--sh-cta-active);}
  .btn-sheen{position:relative;overflow:hidden;}
  .btn-sheen::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.38) 50%,transparent 58%);
    transform:translateX(-130%);
  }
  .btn-sheen:hover::after{transform:translateX(130%);transition:transform .7s ease;}
  .btn-tel{box-shadow:var(--sh-raise);transition:transform .25s var(--ease-spring),box-shadow .25s ease,border-color .3s ease,color .3s ease;}
  .btn-tel:hover{transform:translateY(-2px);box-shadow:var(--sh-paper);}
  .submit-block button{
    box-shadow:var(--sh-cta);
    transition:transform .25s var(--ease-spring), box-shadow .25s ease, background .3s ease;
  }
  .submit-block button:hover{transform:translateY(-2px);box-shadow:var(--sh-cta-hover);}
  .submit-block button:active{transform:translateY(1px);box-shadow:var(--sh-cta-active);}
  .side-cta{box-shadow:-4px 4px 16px -6px rgba(var(--terra-rgb),.4);}

  /* --- 小物のホバー（大判は静止） --- */
  @media(hover:hover){
    .voice-sheet{transition:transform .35s var(--ease-spring), box-shadow .35s ease;}
    .voice-sheet:hover{transform:translateY(-5px);box-shadow:var(--sh-lift);}
    .mid-cta{transition:transform .35s var(--ease-spring), box-shadow .35s ease;}
    .mid-cta:hover{transform:translateY(-3px);box-shadow:var(--sh-paper);}
    .check-group label{transition:all .25s ease, transform .3s var(--ease-spring), box-shadow .3s ease;}
    .check-group label:hover{transform:translateY(-2px);box-shadow:var(--sh-raise);}
  }
  .voice-sheet{box-shadow:var(--sh-raise);}
  .mid-cta{box-shadow:var(--sh-raise);background-image:var(--grain);}

  /* --- 箔押し（線と文字のみ・人名不可） --- */
  .ch-head::before{
    content:"";position:absolute;top:-2px;left:0;width:64px;height:3px;
    background:var(--foil);background-size:220% 100%;
  }
  .ch-head{position:relative;}
  .ch-no,.flow3 .no,.cost-points .mono{
    background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent;
  }
  .band-ink .main .u{
    border-bottom:none;
    background:var(--foil);background-repeat:no-repeat;
    background-size:0% 2px;background-position:0 100%;
    padding-bottom:6px;
    transition:background-size .9s var(--ease-spring) .5s;
  }
  .band-ink .reveal.is-visible .main .u{background-size:100% 2px;}

  /* --- 蛍光マーカー --- */
  .mk{
    background-image:linear-gradient(transparent 58%, rgba(var(--amber-rgb),.30) 58%, rgba(var(--amber-rgb),.24) 92%, transparent 92%);
    background-size:0% 100%;background-repeat:no-repeat;
    transition:background-size .8s var(--ease-spring) .45s;
  }
  .reveal.is-visible .mk,.is-checked ~ .check-verdict .mk{background-size:100% 100%;}
  .hero h1 .accent{
    background-image:linear-gradient(transparent 62%, rgba(var(--gold-rgb),.28) 62%, rgba(var(--gold-rgb),.22) 94%, transparent 94%);
    background-size:0% 100%;background-repeat:no-repeat;
    transition:background-size .9s var(--ease-spring) .6s;
    padding:0 2px;
  }
  .js .hero h1 .accent{background-size:0% 100%;animation:accentSweep .9s var(--ease-spring) .6s forwards;}
  @keyframes accentSweep{to{background-size:100% 100%;}}
  .mid-cta{position:relative;}

  /* --- 手書き注記（数字への使用禁止） --- */
    .prio-note-m{font-size:15px;}

  /* --- マスキングテープ（3箇所限定） --- */
  .tape{
    position:absolute;top:-12px;width:104px;height:26px;
    transform:rotate(var(--rot,-4deg));
    background:linear-gradient(90deg, rgba(var(--amber-rgb),.60), rgba(var(--amber-rgb),.44));
    clip-path:polygon(0 6%,3% 0,97% 2%,100% 10%,99% 92%,96% 100%,4% 98%,1% 90%);
    box-shadow:0 2px 4px rgba(51,41,31,.14);
    mix-blend-mode:multiply;opacity:.9;z-index:3;
    transform-origin:left center;
  }
  .tape--blush{background:linear-gradient(90deg, rgba(var(--blush-rgb),.55), rgba(var(--blush-rgb),.40));}
  .reveal.is-visible .tape{animation:tapePress .5s var(--ease-spring) .55s both;}
  @keyframes tapePress{
    0%{transform:rotate(var(--rot,-4deg)) scaleX(0);}
    72%{transform:rotate(var(--rot,-4deg)) scaleX(1.08);}
    100%{transform:rotate(var(--rot,-4deg)) scaleX(1);}
  }

  /* --- 丸ゴム印 --- */
  .deco-stamp{
    position:absolute;pointer-events:none;user-select:none;z-index:3;
    opacity:.82;transform:rotate(-8deg);
  }
  .reveal.is-visible .deco-stamp{animation:stampPop .55s var(--ease-pop) .9s both;}
  @keyframes stampPop{
    0%{opacity:0;transform:scale(1.9) rotate(-16deg);}
    60%{opacity:.9;transform:scale(.93) rotate(-7deg);}
    80%{transform:scale(1.03) rotate(-8.5deg);}
    100%{opacity:.82;transform:scale(1) rotate(-8deg);}
  }

  /* --- 付箋化FVタグ --- */
  .fv-sheet .tag{
    background:linear-gradient(180deg,var(--tag-a1),var(--tag-a2));
    box-shadow:0 3px 8px -2px rgba(51,41,31,.18);
    position:relative;border-radius:2px;
  }
  .fv-sheet .tag:nth-child(2){background:linear-gradient(180deg,var(--tag-b1),var(--tag-b2));}
  .fv-sheet .tag::after{
    content:"";position:absolute;right:0;bottom:0;width:14px;height:14px;
    background:linear-gradient(315deg, rgba(51,41,31,.14) 0 46%, var(--tag-fold) 50%);
    border-radius:0 0 0 2px;
  }
  .fv-sheet .tag:nth-child(1){--r:-2deg;}
  .fv-sheet .tag:nth-child(2){--r:1.5deg;}
  .fv-sheet .tag:nth-child(3){--r:-1deg;}
  /* tagCascade（総尺1.1s以内） */
  .js .fv-sheet .tag{opacity:0;transform:translateY(14px) rotate(calc(var(--r) - 4deg));transition:opacity .45s ease, transform .55s var(--ease-pop);}
  .js .fv-sheet.is-visible .tag{opacity:1;transform:translateY(0) rotate(var(--r));}
  .js .fv-sheet.is-visible .tag:nth-child(1){transition-delay:.2s;}
  .js .fv-sheet.is-visible .tag:nth-child(2){transition-delay:.32s;}
  .js .fv-sheet.is-visible .tag:nth-child(3){transition-delay:.44s;}
  .js .fv-sheet .fv-arrow{opacity:0;transform:translateY(8px);transition:opacity .4s ease .6s, transform .5s var(--ease-spring) .6s;}
  .js .fv-sheet.is-visible .fv-arrow{opacity:1;transform:none;}
  .js .fv-sheet .fv-lines li{opacity:0;transform:translateX(-10px);transition:opacity .4s ease, transform .5s var(--ease-spring);}
  .js .fv-sheet.is-visible .fv-lines li{opacity:1;transform:none;}
  .js .fv-sheet.is-visible .fv-lines li:nth-child(1){transition-delay:.75s;}
  .js .fv-sheet.is-visible .fv-lines li:nth-child(2){transition-delay:.85s;}
  .js .fv-sheet.is-visible .fv-lines li:nth-child(3){transition-delay:.95s;}
  .js .fv-sheet .maru .d{transition-delay:1.05s;}

  /* --- 紙の着地（シートのみ上書き） --- */
  .js .sheet.reveal{opacity:0;transform:translateY(30px) rotate(.7deg) scale(.985);transition:opacity .7s ease, transform .9s var(--ease-spring);}
  .js .sheet.reveal.is-visible{opacity:1;transform:none;}

  /* --- フォトコーナー & ポラロイド --- */
  .has-corners{overflow:visible!important;}
  .has-corners img{border-radius:2px;}
  .corner{
    position:absolute;width:30px;height:30px;z-index:2;
    background:linear-gradient(135deg,#d6b78f,#c3a075);
    box-shadow:0 1px 3px rgba(51,41,31,.2);
  }
  .corner.tl{top:-4px;left:-4px;clip-path:polygon(0 0,100% 0,0 100%);}
  .corner.tr{top:-4px;right:-4px;clip-path:polygon(0 0,100% 0,100% 100%);}
  .corner.bl{bottom:-4px;left:-4px;clip-path:polygon(0 0,0 100%,100% 100%);}
  .corner.br{bottom:-4px;right:-4px;clip-path:polygon(100% 0,100% 100%,0 100%);}
  .fv-polaroid{
    position:absolute;left:-104px;bottom:-74px;width:150px;z-index:1;
    background:#fff;padding:8px 8px 30px;border-radius:2px;
    box-shadow:var(--sh-paper);
    transform:rotate(-6deg);
  }
  .fv-polaroid img{aspect-ratio:1/1;object-fit:cover;width:100%;border-radius:1px;}
  .fv-polaroid figcaption{
    font-family:'Zen Kaku Gothic New',sans-serif;font-weight:500;
    font-size:12px;color:var(--muted);text-align:center;margin-top:8px;letter-spacing:.06em;
  }

  /* --- ゴールドゼムクリップ --- */
  .clip-gold{position:absolute;top:-16px;right:22px;z-index:3;filter:drop-shadow(0 2px 2px rgba(51,41,31,.25));}

  /* --- ミシン目（フォーム見出し下・1箇所のみ） --- */
  .perforation{border-top:2px dashed var(--perf);margin:28px 0 32px;}

  /* --- 透かし（heroの＊1つ+章番号3章。SP非表示） --- */
  .wm-ast{
    font-family:'Shippori Mincho',serif;font-weight:600;
    font-size:clamp(280px,26vw,360px);line-height:1;
    color:transparent;-webkit-text-stroke:1.5px rgba(var(--terra-rgb),.06);
    position:absolute;right:-50px;top:-30px;
    pointer-events:none;user-select:none;z-index:0;
  }
  .hero-inner{position:relative;z-index:1;}
  .has-wm{position:relative;overflow:hidden;}
  .has-wm > .wrap-n{position:relative;z-index:1;}
  .ch-wm{
    font-family:'IBM Plex Mono',monospace;
    font-size:clamp(120px,15vw,190px);line-height:1;
    color:transparent;-webkit-text-stroke:1px rgba(var(--terra-rgb),.09);
    position:absolute;top:-24px;right:12px;
    pointer-events:none;user-select:none;z-index:0;
  }
  @supports (animation-timeline: view()){
    .ch-wm{animation:wmScroll linear both;animation-timeline:view();animation-range:entry 0% exit 100%;}
    @keyframes wmScroll{from{transform:translateY(28px);}to{transform:translateY(-28px);}}
  }

  /* --- 図解アニメ --- */
  .js .prio-rows .dot{opacity:0;transform:translate(-50%,calc(-50% - 16px));transition:opacity .35s ease, transform .55s var(--ease-pop);}
  .reveal.is-visible .prio-rows .dot{opacity:1;transform:translate(-50%,-50%);}
  .prio-row:nth-child(1) .dot{transition-delay:.1s;} .prio-row:nth-child(2) .dot{transition-delay:.18s;}
  .prio-row:nth-child(3) .dot{transition-delay:.26s;} .prio-row:nth-child(4) .dot{transition-delay:.34s;}
  .prio-row:nth-child(5) .dot{transition-delay:.42s;} .prio-row:nth-child(6) .dot{transition-delay:.5s;}
  .prio-row:nth-child(7) .dot{transition-delay:.58s;} .prio-row:nth-child(8) .dot{transition-delay:.66s;}
  .reveal.is-visible .prio-rows .dot.t{animation:dotRing .7s ease-out 1 both;animation-delay:inherit;}
  @keyframes dotRing{0%{box-shadow:0 0 0 0 rgba(var(--terra-rgb),.35);}100%{box-shadow:0 0 0 12px transparent;}}
  .cost-bar .bar,.budget-bar .bar{position:relative;}
  .cost-bar .bar::after,.budget-bar .bar::after{
    content:"";position:absolute;inset:-1px;
    background:linear-gradient(90deg, rgba(255,255,255,0) 0, #fff 9%);
    transform-origin:right;transform:scaleX(1);
    transition:transform .9s var(--ease-spring);
  }
  .reveal.is-visible .cost-bar:nth-child(1) .bar::after{transform:scaleX(0);transition-delay:.1s;}
  .reveal.is-visible .cost-bar:nth-child(2) .bar::after{transform:scaleX(0);transition-delay:.3s;}
  .reveal.is-visible .budget-bar .bar::after{transform:scaleX(0);transition-delay:.5s;}
  .draw circle.st{transform-box:fill-box;transform-origin:center;}
  .js .draw circle.st{transform:scale(.4);opacity:0;transition:transform .4s var(--ease-pop), opacity .3s ease;}
  .js .draw.is-drawn circle.st{transform:scale(1);opacity:1;}
  .js .draw.is-drawn circle.st:nth-of-type(1){transition-delay:.15s;}
  .js .draw.is-drawn circle.st:nth-of-type(2){transition-delay:.3s;}
  .js .draw.is-drawn circle.st:nth-of-type(3){transition-delay:.45s;}
  .js .draw.is-drawn circle.st:nth-of-type(4){transition-delay:.6s;}
  .js .draw.is-drawn circle.st:nth-of-type(5){transition-delay:.75s;}
  .js .draw .flag-g{opacity:0;transform:translateY(6px);transition:opacity .45s ease .9s, transform .5s var(--ease-spring) .9s;}
  .js .draw.is-drawn .flag-g{opacity:1;transform:none;}

  /* --- 明朝の声（筆入れ） --- */
  .js .voice-line.reveal{opacity:1;transform:none;clip-path:inset(0 100% 0 0);transition:clip-path 1s var(--ease-spring) .15s;}
  .js .voice-line.reveal.is-visible{clip-path:inset(0 -4% 0 0);}

  /* --- ペンギン（常時動作はこの2羽のみ） --- */
  .fv-arrow img{animation:penguinBobS 3.6s ease-in-out infinite;}
  .fig2-flagpeng{animation:penguinBob 4.2s ease-in-out infinite;}
  @keyframes penguinBobS{0%,100%{transform:translateY(0) rotate(-1deg);}50%{transform:translateY(-2px) rotate(1deg);}}
  @keyframes penguinBob{0%,100%{transform:translateY(0) rotate(-1deg);}50%{transform:translateY(-5px) rotate(1.5deg);}}
  details[open] summary img{transform:rotate(-10deg) translateY(-2px);}
  summary img{transition:transform .35s var(--ease-pop);}

  /* --- trust帯の＊セパレータ --- */
  .trust-band{position:relative;}
  .trust-band::before,.trust-band::after{content:"";position:absolute;left:0;right:0;height:1px;background:var(--foil);opacity:.4;}
  .trust-band::before{top:2px;} .trust-band::after{bottom:2px;}
  /* 実績が長くなったため字間・余白を詰め、区切りは行末側に置いて折返しを自然に */
  .trust-band ul{justify-content:center;}
  .trust-band li{font-size:12px;padding:0 16px;letter-spacing:.03em;}
  .trust-band li:first-child{padding-left:16px;}
  .trust-band li + li::before{content:none;}
  .trust-band li:not(:last-child)::after{
    content:"＊";position:absolute;right:-6px;top:0;
    color:rgba(var(--terra-rgb),.45);font-size:13px;line-height:2;
  }

  /* --- SP調整 --- */
  @media(max-width:960px){
    .wm-ast,.ch-wm{display:none;}
    .tape{width:88px;}
    .deco-stamp{transform:rotate(-8deg) scale(.8);}
    .sheet{box-shadow:-7px 9px 0 -1px var(--under), -7px 9px 0 0 var(--line), var(--sh-paper), inset 0 1px 0 rgba(255,255,255,.9);}
    .sheet-stack3{box-shadow:-7px 9px 0 -1px var(--under), -7px 9px 0 0 var(--line), 6px 16px 0 -2px var(--cream), 6px 16px 0 -1px var(--line), var(--sh-paper), inset 0 1px 0 rgba(255,255,255,.9);}
    .fv-polaroid{position:static;width:160px;margin:20px auto 0;transform:rotate(-3deg);z-index:0;}
  }

  /* --- reduced-motion: 全装飾を即・最終状態に --- */
  @media (prefers-reduced-motion: reduce){
    .tape,.deco-stamp,.fv-arrow img,.fig2-flagpeng{animation:none!important;opacity:.9;}
    .deco-stamp{opacity:.82;transform:rotate(-8deg);}
    .js .sheet.reveal,.js .sheet.reveal::before,.js .sheet.reveal::after,
    .js .fv-sheet .tag,.js .fv-sheet .fv-arrow,.js .fv-sheet .fv-lines li,
    .js .prio-rows .dot,.js .draw circle.st,.js .draw .flag-g,
    .js .voice-line.reveal{transition:none!important;animation:none!important;opacity:1;transform:none;clip-path:none;}
    .mk,.hero h1 .accent,.band-ink .main .u{transition:none!important;background-size:100% 100%!important;}
    .band-ink .main .u{background-size:100% 2px!important;}
    .cost-bar .bar::after,.budget-bar .bar::after{transition:none!important;transform:scaleX(0)!important;}
    .ch-wm{animation:none!important;}
  }

  /* FIG.2 refined route map: 駅番号バッジのポップ＋注記類のフェード */
  .js .draw .fig2-bdg{opacity:0;transform:translateY(6px);transition:opacity .4s ease,transform .55s var(--ease-pop);}
  .js .draw.is-drawn .fig2-bdg{opacity:1;transform:none;}
  .js .draw.is-drawn .fig2-bdg:nth-of-type(1){transition-delay:.28s;}
  .js .draw.is-drawn .fig2-bdg:nth-of-type(2){transition-delay:.43s;}
  .js .draw.is-drawn .fig2-bdg:nth-of-type(3){transition-delay:.58s;}
  .js .draw.is-drawn .fig2-bdg:nth-of-type(4){transition-delay:.73s;}
  .js .draw.is-drawn .fig2-bdg:nth-of-type(5){transition-delay:.88s;}
  .js .draw .fig2-fade{opacity:0;transition:opacity .7s ease .55s;}
  .js .draw.is-drawn .fig2-fade{opacity:1;}
  @media (prefers-reduced-motion: reduce){
    .js .draw .fig2-bdg,.js .draw .fig2-fade{transition:none!important;opacity:1;transform:none;}
  }

  /* ===== FIG.3 プロ品質化 ===== */
  .prio-rows{position:relative;}
  .prio-rows::before{
    content:"";position:absolute;top:-6px;bottom:-6px;left:180px;
    width:calc((100% - 180px)*.32);
    background:rgba(110,59,85,.05);border-radius:2px;pointer-events:none;
  }
  .prio-scale{display:flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.08em;}
  .prio-scale .l{color:var(--terra);font-weight:500;white-space:nowrap;}
  .prio-scale .r{color:var(--muted);white-space:nowrap;}
  .prio-scale .bar{
    flex:1;height:6px;border-radius:3px;position:relative;
    background:linear-gradient(90deg, rgba(110,59,85,.5), rgba(111,100,112,.16));
  }
  .prio-scale .bar::before{
    content:"";position:absolute;inset:0;
    background:repeating-linear-gradient(90deg, rgba(255,255,255,.95) 0 1px, transparent 1px 25%);
  }
  .prio-row{padding:13px 8px;}
  .prio-row .nm{display:flex;align-items:center;gap:9px;}
  .prio-row .pic{width:19px;height:19px;flex-shrink:0;stroke:var(--terra);stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round;}
  .prio-row .track{height:4px;border-radius:2px;}
  .prio-row .track::before{
    content:"";position:absolute;top:-3px;bottom:-3px;left:0;right:0;
    background:repeating-linear-gradient(90deg, rgba(49,40,54,.16) 0 1px, transparent 1px 25%);
  }
  .prio-row .track::after{
    content:"";position:absolute;top:-3px;bottom:-3px;right:0;width:1px;background:rgba(49,40,54,.16);
  }
  .prio-row .dot{width:15px;height:15px;z-index:1;}
  .prio-row .dot.t{box-shadow:0 0 0 1.5px #c9a25e, 0 2px 5px rgba(49,40,54,.25);}
  .prio-row .dot.g{background:#fff;border:1.5px solid var(--ink);box-shadow:0 2px 4px rgba(49,40,54,.14);}
  .prio-row.is-key{
    background:var(--white);
    box-shadow:inset 0 0 0 1px var(--terra), var(--sh-raise);
    border-radius:2px;border-bottom-color:transparent;
  }
  @media(max-width:960px){
    .prio-rows::before{display:none;}
    .prio-head{grid-template-columns:1fr;}
  }

  /* ===== FIG.4 プロ品質化 ===== */
  .cost-bars{position:relative;padding-right:186px;}
  .cost-bar{display:grid;grid-template-columns:86px 1fr;gap:14px;align-items:stretch;}
  .cost-bar .who{
    display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;
    background:#fff;border:1px solid var(--ink);border-radius:2px;
    font-size:13.5px;font-weight:500;letter-spacing:.06em;
  }
  .cost-bar .who small{font-size:10px;color:var(--muted);font-weight:400;}
  .cost-bar .bar{height:56px;border-radius:2px;}
  .cost-bar .seg + .seg{border-left:1.5px solid #fff;}
  .cost-bar .seg.s4{background:var(--terra);color:#fff;box-shadow:inset 0 2px 0 #c9a25e;}
  .cost-bracket{position:absolute;right:0;top:0;bottom:0;width:174px;display:flex;align-items:center;gap:9px;}
  .cost-bracket .brk{
    width:12px;align-self:stretch;
    border:1.5px solid var(--terra);border-left:none;border-radius:0 3px 3px 0;
  }
  .cost-bracket .lbl{
    flex:1;font-size:11px;line-height:1.75;color:var(--terra-deep);
    background:#fff;border:1px solid var(--line);border-radius:2px;padding:8px 9px;
  }
  .cost-points .mono{
    display:inline-flex;width:24px;height:24px;flex-shrink:0;
    border:1.2px solid #c9a25e;border-radius:50%;
    align-items:center;justify-content:center;
  }
  .budget-bar .vessel{
    position:relative;
    border:2px solid var(--ink);border-top:none;border-radius:0 0 8px 8px;
    padding:14px 12px 12px 24px;
  }
  .budget-bar .vessel::before,.budget-bar .vessel::after{
    content:"";position:absolute;top:0;width:12px;height:2px;background:var(--ink);
  }
  .budget-bar .vessel::before{left:-2px;}
  .budget-bar .vessel::after{right:-2px;}
  .budget-bar .gauge{
    position:absolute;left:5px;top:14px;bottom:12px;width:9px;opacity:.4;
    background:
      linear-gradient(var(--ink),var(--ink)) left 25% / 9px 1px no-repeat,
      linear-gradient(var(--ink),var(--ink)) left 50% / 9px 1px no-repeat,
      linear-gradient(var(--ink),var(--ink)) left 75% / 9px 1px no-repeat;
  }
  @media(max-width:960px){
    .cost-bars{padding-right:0;}
    .cost-bar{grid-template-columns:60px 1fr;gap:10px;}
    .cost-bracket{position:static;width:auto;margin-top:4px;}
    .cost-bracket .brk{display:none;}
  }


  /* ===== フォトバンド（FV直下・誌面のグラビア） ===== */
  .photo-band{
    background:var(--paper);border-bottom:1px solid var(--line);
    max-width:1240px;margin:0 auto;padding:clamp(24px,3.4vw,52px) 24px clamp(18px,2.4vw,34px);
    display:grid;grid-template-columns:minmax(0,7fr) minmax(0,3fr);
    gap:clamp(12px,1.5vw,20px);
  }
  .photo-band figure{position:relative;margin:0;overflow:hidden;background:var(--greige);border-radius:2px;}
  .photo-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
  .pb-main{aspect-ratio:16/10;box-shadow:0 14px 30px rgba(49,40,54,.16);}
  .pb-main figcaption{
    position:absolute;left:0;right:0;bottom:0;
    background:linear-gradient(transparent,rgba(30,24,32,.74));
    color:#fff;font-size:12.5px;letter-spacing:.05em;line-height:1.7;
    padding:44px 16px 13px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;
  }
  .pb-main figcaption .mono{
    font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.24em;color:#e6cd92;
  }
  .pb-side{display:grid;grid-template-rows:1fr 1fr;gap:clamp(12px,1.5vw,20px);}
  .pb-side figure{box-shadow:0 10px 22px rgba(49,40,54,.14);}
  .pb-side figcaption{
    position:absolute;left:0;right:0;bottom:0;background:rgba(252,250,249,.93);
    font-size:11px;letter-spacing:.04em;color:var(--ink);padding:7px 10px;
    border-top:1px solid var(--line);
  }
  .pb-note{grid-column:1 / -1;margin:2px 0 0;font-size:11.5px;color:var(--muted);letter-spacing:.04em;}
  @media(max-width:860px){
    .photo-band{grid-template-columns:1fr;padding-bottom:14px;}
    .pb-side{grid-template-rows:none;grid-template-columns:1fr 1fr;}
    .pb-side figure{aspect-ratio:1/1;}
    .pb-side figcaption{font-size:9.5px;padding:5px 7px;line-height:1.5;}
    .pb-main figcaption{font-size:11.5px;padding:34px 12px 10px;}
  }

  /* ===== 07 実績グリッド ===== */
  .works-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:38px;}
  .works-grid figure{
    position:relative;margin:0;overflow:hidden;aspect-ratio:4/5;
    background:var(--greige);border-radius:2px;box-shadow:0 10px 22px rgba(49,40,54,.14);
  }
  .works-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s cubic-bezier(.2,.7,.2,1);}
  .works-grid figure:hover img{transform:scale(1.045);}
  .works-grid figcaption{
    position:absolute;left:0;right:0;bottom:0;
    background:linear-gradient(transparent,rgba(30,24,32,.8));
    color:#fff;padding:36px 12px 12px;font-size:12.5px;letter-spacing:.03em;line-height:1.65;
  }
  .works-grid .k{
    display:block;font-family:'IBM Plex Mono',monospace;font-size:9.5px;
    letter-spacing:.2em;color:#e6cd92;margin-bottom:4px;
  }
  @media(max-width:860px){
    .works-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:28px;}
    .works-grid figcaption{font-size:11.5px;padding:28px 10px 10px;}
  }

  /* ===== 06 写真2枚組 ===== */
  .visual-wrap{position:relative;}
  .visual-wrap .visual{position:relative;overflow:hidden;border-radius:2px;aspect-ratio:4/3;box-shadow:0 14px 28px rgba(49,40,54,.15);}
  .visual-wrap .visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  .visual-sub{
    position:absolute;right:-16px;bottom:-30px;width:40%;margin:0;
    aspect-ratio:4/3;overflow:hidden;background:var(--greige);
    border:7px solid #fff;box-shadow:0 12px 26px rgba(49,40,54,.2);
  }
  .visual-sub img{width:100%;height:100%;object-fit:cover;display:block;}
  .visual-cap{margin:22px 0 0;width:54%;font-size:11.5px;color:var(--muted);letter-spacing:.04em;line-height:1.8;}
  @media(max-width:960px){
    .visual-sub{width:44%;right:-6px;bottom:-20px;border-width:6px;}
    .visual-cap{margin-top:16px;width:52%;}
  }

  /* ===== 09 代表写真・職人写真 ===== */
  .portrait.has-photo{display:block;padding:0;}
  .portrait.has-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 16%;display:block;border-radius:2px;}
  .team-photo{margin:18px 0 0;position:relative;overflow:hidden;border-radius:2px;aspect-ratio:16/10;background:var(--greige);}
  .team-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
  .team-photo figcaption{
    position:absolute;left:0;right:0;bottom:0;background:rgba(252,250,249,.92);
    font-size:10.5px;letter-spacing:.04em;color:var(--muted);padding:5px 8px;
  }


  /* ============================================================
     v4 QUALITY PASS ── 小物装飾を撤去し、罫線・余白・写真で見せる
     ============================================================ */

  /* --- シート：多重の座布団をやめ、静かな単一の影に --- */
  .sheet, .sheet-stack3{
    box-shadow:
      0 1px 1px rgba(49,40,54,.03),
      0 12px 32px -14px rgba(49,40,54,.22) !important;
    border:1px solid var(--line) !important;
    border-radius:3px;
    padding-top:clamp(30px,4vw,50px) !important;
  }
  .sheet::before,.sheet::after{content:none !important;}

  /* --- シート見出し：クラフト紙タブ → 枠線を白で切る端正なラベル --- */
  .sheet-title{
    position:absolute; top:-8px; left:30px; margin:0;
    background:var(--white) !important;
    color:var(--terra-deep) !important;
    padding:0 12px !important;
    border:none !important; border-radius:0 !important; box-shadow:none !important;
    font-size:11px; font-weight:500; letter-spacing:.2em; line-height:1.4;
    z-index:2;
  }
  .sec-beige .sheet-title{background:var(--white) !important;}
  .sheet-title::after{display:none !important;}

  /* --- FVの付箋 → 傾きと折り返しを廃した罫チップ --- */
  .fv-sheet .tag{
    background:var(--white) !important;
    border:1px solid var(--line);
    border-left:2px solid var(--terra) !important;
    border-radius:0 !important;
    box-shadow:none !important;
    transform:none !important;
    align-self:stretch !important;
    padding:10px 16px !important;
    font-size:13.5px; letter-spacing:.02em; color:var(--ink);
  }
  .fv-sheet .tag::after{content:none !important;}
  .fv-sheet .tags{gap:8px !important;}

  /* --- ポラロイド → 傾きを止めた端正なフレーム --- */
  .fv-polaroid{
    transform:none !important;
    border:6px solid #fff !important;
    box-shadow:0 10px 26px -10px rgba(49,40,54,.34) !important;
    background:#fff;
  }
  .fv-polaroid figcaption{
    font-family:'Zen Kaku Gothic New',sans-serif !important;
    font-size:10.5px; letter-spacing:.08em; color:var(--muted);
    padding:6px 2px 2px; text-align:left;
  }

  /* --- 手書き注記 → 明朝の一行に格上げ --- */
  .prio-note-m{
    font-family:'Shippori Mincho',serif; font-weight:600;
    color:var(--terra-deep); letter-spacing:.08em; font-size:15px;
  }

  /* --- 背景写真：しっかり見える濃度へ（薄すぎ解消） --- */
  @media(max-width:960px){
  }

  /* --- 写真の枠：角留めをやめ、細い内枠で締める --- */
  .visual-wrap .visual, .portrait.has-photo{
    box-shadow:0 1px 2px rgba(49,40,54,.05), 0 18px 40px -18px rgba(49,40,54,.3) !important;
  }
  .visual-wrap .visual::after, .portrait.has-photo::after{
    content:""; position:absolute; inset:0; pointer-events:none;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);
  }
  .portrait.has-photo{position:relative; overflow:hidden;}

  /* --- 図の強調：ドロップシャドウを弱めて品位を保つ --- */
  .fig-emph{filter:drop-shadow(0 4px 10px rgba(49,40,54,.18)) !important;}


  /* --- FV：ポラロイドをシート内の右下へ収める --- */
  .fv-polaroid{
    left:auto !important; right:-52px !important; bottom:-84px !important;
    width:152px !important; z-index:3;
  }
  @media(max-width:1200px){ .fv-polaroid{right:-18px !important;} }

  /* --- FVの三行：太い葡萄罫 → 細い罫＋箔の番号で端正に --- */
  .fv-lines li{
    border-bottom:1px solid var(--line) !important;
    padding-bottom:10px !important;
    letter-spacing:.06em;
  }
  .fv-lines li .mono{
    background:none !important; -webkit-text-fill-color:#a67c3d; color:#a67c3d !important;
    font-size:11.5px; letter-spacing:.16em; font-weight:500;
  }
  .fv-lines li:last-child{border-bottom:1px solid var(--ink) !important;}

  /* --- 図の凡例・注記まわりの階調を統一 --- */
  .fig-note{color:var(--muted); letter-spacing:.03em;}


  /* --- 09 体制：2列の写真の下端を揃える --- */
  .team-cols{align-items:stretch;}
  .team-col{display:flex; flex-direction:column;}
  .team-col ul{flex:1 1 auto;}
  .team-photo{margin-top:auto !important;}


  /* ============================================================
     v5 TYPOGRAPHY & LUXE ── 可読性の底上げ＋余白と階調で品位を出す
     ============================================================ */

  /* --- 章扉：和語タイトルを主役サイズへ。番号は箔、英字は静かに --- */
  .ch-head{
    padding-top:22px !important; margin-bottom:clamp(44px,5vw,64px) !important;
    border-top:1px solid var(--line) !important;
    gap:0 18px !important;
  }
  .ch-head::after{
    content:""; position:absolute; left:0; top:-1px; height:1px; width:100%;
    background:linear-gradient(90deg,#a67c3d 0%,#e6cd92 18%,rgba(184,138,78,.28) 58%,transparent 100%);
    transform:scaleX(0); transform-origin:left center;
    transition:transform 1.2s cubic-bezier(.2,.7,.2,1) .05s;
  }
  .js .ch-head.reveal.is-visible::after{transform:scaleX(1);}
  .ch-no{font-size:15px !important; letter-spacing:.1em !important;}
  .ch-name{
    font-family:'Shippori Mincho',serif !important; font-weight:600 !important;
    font-size:clamp(21px,2.4vw,28px) !important;
    letter-spacing:.1em !important; line-height:1.5 !important;
  }
  .ch-name::before{height:20px !important; bottom:4px !important; left:-13px !important; opacity:.3 !important;}
  .ch-en{
    font-size:11.5px !important; letter-spacing:.34em !important;
    /* 灰の大理石地（05・09章）でWCAG AAを満たす濃さ */
    color:#6f6470 !important; top:-3px !important;
  }
  .ch-note{font-size:13px !important; line-height:1.9; color:var(--muted) !important;}

  /* --- 本文・リード：読める大きさへ --- */
  h2{letter-spacing:.055em; line-height:1.62;}
  .lede{font-size:19px !important; line-height:2.0 !important;}
  .body-t{font-size:16.5px !important; line-height:2.0 !important;}
  .voice-line{font-size:clamp(18px,2vw,21px) !important; letter-spacing:.1em !important;}
  .checklist li{font-size:16px !important; line-height:1.9 !important; padding:17px 4px !important;}
  .faq-a{font-size:15.5px !important; line-height:2.0 !important;}
  .scope-list .nm{font-size:16.5px !important;}
  .scope-list .ds{font-size:15px !important; line-height:1.95 !important;}
  .quals li{font-size:14.5px !important; padding:11px 4px !important;}
  .form-row label{font-size:14.5px !important;}
  .trust-band li{font-size:13.5px !important;}
  .hero-sub{font-size:16.5px !important; line-height:2.0 !important;}
  .hero-micro{font-size:13.5px !important; line-height:2.0 !important;}
  .side-note{font-size:13.5px !important; line-height:2.0 !important;}

  /* --- 注記・キャプション：11px以下を一掃 --- */
  .fig-note{font-size:13px !important; line-height:1.9 !important;}
  .visual-cap, .pb-note{font-size:12.5px !important; line-height:1.9 !important;}
  .pb-main figcaption{font-size:13.5px !important;}
  .pb-main figcaption .mono{font-size:11px !important; letter-spacing:.26em !important;}
  .pb-side figcaption{font-size:12px !important; padding:9px 12px !important;}
  .works-grid figcaption{font-size:13.5px !important; line-height:1.7 !important; padding:38px 14px 14px !important;}
  .works-grid .k{font-size:10.5px !important; letter-spacing:.24em !important; margin-bottom:5px !important;}
  .team-photo figcaption{font-size:12px !important; padding:7px 10px !important;}
  .cost-bracket .lbl{font-size:12.5px !important; line-height:1.85 !important; padding:10px 11px !important;}
  .cost-bar .seg{font-size:13px !important;}
  .cost-bar .who{font-size:14.5px !important;}
  .prio-row .nm{font-size:15.5px !important;}
  .prio-scale .l,.prio-scale .r{font-size:13px !important;}
  .fig2-labels .st .t{font-size:14.5px !important;}
  .fig2-labels .st .t .mono{font-size:13px !important;}
  .fig2-labels .st .d{font-size:12.5px !important; line-height:1.85 !important;}
  .sheet-title{font-size:12px !important; letter-spacing:.18em !important;}
  .form-assure{font-size:13.5px !important;}

  /* --- 余白：詰まりを解いて上質に --- */
  main > section{padding-top:clamp(76px,8vw,124px) !important; padding-bottom:clamp(76px,8vw,124px) !important;}
  .sheet{padding:clamp(34px,4.4vw,56px) !important; padding-top:clamp(36px,4.6vw,58px) !important;}

  /* --- 写真：現れるときに静かに寄る（1.05→1.0） --- */
  .js .photo-band figure img,
  .js .visual-wrap .visual img,
  .js .portrait.has-photo img,
  .js .team-photo img{
    transform:scale(1.06); transition:transform 1.6s cubic-bezier(.16,.7,.2,1);
  }
  .js .reveal.is-visible .photo-band figure img,
  .js .photo-band figure.reveal.is-visible img,
  .js .visual-wrap.reveal.is-visible .visual img,
  .js .portrait.has-photo.reveal.is-visible img,
  .js .reveal.is-visible .team-photo img{transform:scale(1);}

  /* --- CTA：ホバーで金のヘアラインが一度だけ走る --- */
  .btn{position:relative; overflow:hidden;}
  .btn > *{position:relative; z-index:1;}
  .btn::after{
    content:""; position:absolute; top:0; left:-40%; width:34%; height:100%;
    background:linear-gradient(90deg,transparent,rgba(230,205,146,.30),transparent);
    transform:skewX(-18deg); pointer-events:none;
  }
  .btn:hover::after{animation:btnSheen .85s cubic-bezier(.3,.6,.3,1) 1;}
  @keyframes btnSheen{from{left:-40%;} to{left:120%;}}

  @media (prefers-reduced-motion: reduce){
    .ch-head::after{transform:scaleX(1) !important; transition:none !important;}
    .js .photo-band figure img,.js .visual-wrap .visual img,
    .js .portrait.has-photo img,.js .team-photo img{transform:none !important; transition:none !important;}
    .btn:hover::after{animation:none !important;}
  }

  @media(max-width:680px){
    .ch-name{font-size:21px !important;}
    .ch-en{font-size:10.5px !important; letter-spacing:.26em !important;}
    .lede{font-size:17px !important;}
    .body-t{font-size:16px !important;}
    .works-grid figcaption{font-size:12.5px !important; padding:30px 11px 11px !important;}
  }


  /* --- 章番号：箔グラデは白背景で薄れるため、濃い金の単色に --- */
  .ch-no{
    background:none !important; -webkit-background-clip:initial !important; background-clip:initial !important;
    -webkit-text-fill-color:#8f6725 !important; color:#8f6725 !important; font-weight:500 !important;
  }
  .flow3 .no, .cost-points .mono{
    background:none !important; -webkit-text-fill-color:#8f6725 !important; color:#8f6725 !important;
  }


  /* ============================================================
     v5.1 改行の最適化 ── 日本語は文節単位で折る（1文字残しを撲滅）
     ============================================================ */
  .lede, .body-t, .hero-sub, .hero-micro, .side-note,
  .checklist li, .faq-a, .scope-list .ds, .scope-list .nm,
  .rep-quote, .after-note, .voice-line, .ch-note, .fig-note,
  .visual-cap, .pb-note, .works-grid figcaption, .pb-main figcaption,
  .fig2-labels .st .d, .cost-bracket .lbl, .form-assure,
  .band-ink .main, .band-terra .main, .quals li{
    word-break:auto-phrase;
    text-wrap:pretty;
    overflow-wrap:anywhere;
  }
  /* 見出しは行長を均す */
  h1, h2, .ch-name, .flow3 .ttl, .voice-line{text-wrap:balance;}

  /* チェックリスト：1文字あふれを防ぐため段間を詰めて実効行長を確保 */
  .checklist{column-gap:36px !important;}
  .checklist li{font-size:15.5px !important;}

  @media(max-width:960px){
    .checklist{column-gap:0 !important;}
  }


  /* --- SP：重ねたサブ写真を縦積みにして、説明文を全幅で読ませる --- */
  @media(max-width:680px){
    .visual-sub{
      position:static !important; width:56% !important;
      margin:16px 0 0 auto !important; border-width:5px !important;
      box-shadow:0 8px 18px -8px rgba(49,40,54,.28) !important;
    }
    .visual-cap{width:auto !important; margin-top:16px !important;}
  }


  /* --- タブレット幅：主写真のキャプションはラベルを改行して行長を均す --- */
  @media(max-width:900px){
    .pb-main figcaption{display:block !important; padding:40px 16px 14px !important;}
    .pb-main figcaption .mono{display:block; margin-bottom:5px;}
  }


  /* ============================================================
     v6 FV再構成 ── 白カードをやめ、施工事例の写真を主役に置く
     ============================================================ */
  .hero-visual{
    position:relative; margin:0; overflow:hidden; border-radius:3px;
    aspect-ratio:4/5; background:var(--greige);
    box-shadow:0 1px 2px rgba(49,40,54,.05), 0 30px 64px -28px rgba(49,40,54,.42);
  }
  .hero-visual img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
  .hero-visual::after{
    content:""; position:absolute; inset:0; pointer-events:none;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.45);
  }
  .hero-visual figcaption{
    position:absolute; left:0; right:0; bottom:0; z-index:1;
    background:linear-gradient(transparent, rgba(30,24,32,.76));
    color:#fff; font-size:13px; letter-spacing:.05em; line-height:1.7;
    padding:52px 18px 15px; display:flex; flex-wrap:wrap; gap:3px 12px; align-items:baseline;
  }
  .hero-visual figcaption .mono{
    font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.26em; color:#e6cd92;
  }
  .js .hero-visual img{transform:scale(1.05); transition:transform 1.8s cubic-bezier(.16,.7,.2,1);}
  .js .hero-visual.reveal.is-visible img{transform:scale(1);}
  @media(max-width:960px){
    .hero-visual{aspect-ratio:4/3;}
    .hero-visual figcaption{font-size:12px; padding:42px 14px 12px;}
  }

  /* --- フォトバンド：3枚均等の帯に --- */
  .photo-band{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
  .photo-band > figure{aspect-ratio:4/3; box-shadow:0 10px 24px -12px rgba(49,40,54,.34);}
  .photo-band > figure figcaption{
    position:absolute; left:0; right:0; bottom:0;
    background:rgba(252,250,249,.94); border-top:1px solid var(--line);
    font-size:12.5px; letter-spacing:.04em; color:var(--ink); padding:9px 12px;
  }
  @media(max-width:860px){
    .photo-band{grid-template-columns:1fr 1fr !important;}
    .photo-band > figure:first-child{grid-column:1 / -1; aspect-ratio:16/10;}
    .photo-band > figure figcaption{font-size:11.5px; padding:7px 9px;}
  }

  /* 濃色テクスチャは薄めて重くしない */
  /* --- FVはJSを待たずに描画する（LCP対策）。演出はtransformのみ --- */
  .hero-visual{opacity:1 !important;}
  .js .hero-visual img{transform:scale(1.05); animation:heroZoom 2.2s cubic-bezier(.16,.7,.2,1) .05s both;}
  @keyframes heroZoom{from{transform:scale(1.05);} to{transform:scale(1);}}
  @media (prefers-reduced-motion: reduce){
    .js .hero-visual img{animation:none !important; transform:none !important;}
  }


  /* --- 画面外セクションのレイアウト/描画を遅延（初期表示の負荷を削減） --- */
  main > section:not(.hero):not(.photo-band){
    content-visibility:auto;
    contain-intrinsic-size:auto 900px;
  }


  /* ============================================================
     v7 FV ── 大理石を全面背景に／画面高に収める
     ============================================================ */
  .hero{
    background:
      /* 文字が乗る左側だけを白く伏せ、右へ向かって大理石を見せる */
      linear-gradient(100deg, rgba(252,250,249,.70) 0%, rgba(252,250,249,.60) 34%, rgba(252,250,249,.34) 58%, rgba(252,250,249,.10) 78%, rgba(252,250,249,0) 100%),
      linear-gradient(180deg, rgba(252,250,249,.34) 0%, rgba(252,250,249,.30) 55%, rgba(246,241,242,.52) 100%),
      url("../images/hero_marble.jpg") center center / cover no-repeat,
      var(--paper) !important;
  }
  /* SPは本文が全幅に乗るため、縦方向のウォッシュに切り替える */
  @media(max-width:960px){
    .hero{
      background:
        linear-gradient(180deg, rgba(252,250,249,.62) 0%, rgba(252,250,249,.68) 46%, rgba(252,250,249,.82) 76%, rgba(252,250,249,.90) 100%),
        url("../images/hero_marble.jpg") center center / cover no-repeat,
        var(--paper) !important;
    }
  }
  /* 大理石の上に、葡萄と血色の微光をわずかに重ねる（既存の空気感を維持） */
  .hero::before{
    content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
    background:
      radial-gradient(110% 85% at 88% 8%, var(--amber-soft), transparent 58%),
      radial-gradient(80% 70% at 4% 92%, rgba(var(--blush-rgb),.10), transparent 55%);
  }

  /* --- PC：ファーストビューを画面内に収める --- */
  @media(min-width:961px){
    .hero{
      display:flex; align-items:center;
      min-height:100svh;
      padding-top:calc(var(--header-h) + clamp(20px,3.2vh,64px));
      padding-bottom:clamp(20px,3.2vh,64px);
    }
    .hero-inner{width:100%;}
    .hero-visual{
      aspect-ratio:auto;
      height:min(534px, calc(100svh - var(--header-h) - 132px));
    }
  }
  /* 画面が低いノートPC（〜860px）は文字組みを詰める */
  @media(min-width:961px) and (max-height:1000px){
    .hero h1{font-size:clamp(28px,3.1vw,38px); margin-bottom:20px;}
    .hero-eyebrow{margin-bottom:20px;}
    .hero-sub{font-size:15.5px !important; line-height:1.9 !important; margin-bottom:20px;}
    .hero-checks{margin-bottom:22px;}
    .hero-micro{font-size:12.5px !important; line-height:1.85 !important;}
    .hero-anchor{margin-top:14px;}
  }
  /* 低い画面では、スクロール誘導より「相談だけでもOK」の一文を残す */
  @media(min-width:961px) and (max-height:820px){
    .hero h1{font-size:clamp(25px,2.6vw,31px); margin-bottom:18px;}
    .hero-sub{font-size:15px !important; margin-bottom:18px;}
    .hero-checks{margin-bottom:18px;}
    .hero-micro{font-size:12px !important; line-height:1.75 !important; margin-top:12px;}
    .hero-anchor{display:none;}
  }

  /* --- SP：主要導線（見出し→CTA）を1画面に収め、写真の上端を覗かせる --- */
  @media(max-width:960px){
    .hero{
      padding-top:calc(var(--header-h) + 18px);
      padding-bottom:30px;
    }
    .hero-eyebrow{margin-bottom:18px; font-size:12px; letter-spacing:.1em;}
    .hero-sub{font-size:15.5px !important; line-height:1.9 !important; margin-bottom:20px;}
    .hero-checks{margin-bottom:20px; gap:8px 20px;}
    .hero-micro{margin-top:12px; font-size:12.5px !important; line-height:1.85 !important;}
    .hero-anchor{margin-top:12px;}
    .hero-inner{gap:28px;}
    .hero-visual{aspect-ratio:16/10;}
  }


  /* ============================================================
     v8 セクション基調を大理石に統一
     交互に「素材」と「伏せ具合」を変えて、章の切り替わりを保つ
     ============================================================ */
  /* 紙白の章：冷たい白大理石／伏せ強め（＝明るく軽い） */
  main > section:not(.sec-beige):not(.hero):not(.photo-band){
    background-image:
      linear-gradient(180deg, rgba(252,250,249,.90) 0%, rgba(252,250,249,.85) 100%),
      url("../images/secmarble_cool.jpg") !important;
    background-size:cover !important;
    background-position:center center !important;
    background-repeat:no-repeat !important;
    border-top:1px solid rgba(224,214,218,.85);
  }
  /* ベージュの章：層のある温かい大理石／伏せ弱め（＝石が強く出る） */
  .sec-beige{
    background-image:
      linear-gradient(180deg, rgba(246,241,242,.84) 0%, rgba(242,234,237,.79) 100%),
      url("../images/secmarble_warm.jpg") !important;
    background-size:cover !important;
    background-position:center center !important;
    background-repeat:no-repeat !important;
    border-top:1px solid rgba(224,214,218,.85);
  }
  /* 墨帯・テラ帯は石を敷かず、面で締める（章の区切りとして機能させる） */
  .band-ink, .band-terra{border-top:none;}
  .photo-band{border-top:1px solid rgba(224,214,218,.85);}


  /* ============================================================
     v9 セクション背景 ── 石だけで章のリズムをつくる
     ============================================================ */
  main > section:not(.hero):not(.photo-band){
    background-size:cover !important;
    background-repeat:no-repeat !important;
    border-top:1px solid rgba(224,214,218,.9);
  }
  /* 紙白の章：冷たい白大理石（軽く明るい） */
  main > section:not(.sec-beige):not(.hero):not(.photo-band){
    background-image:
      linear-gradient(180deg, rgba(252,250,249,.88) 0%, rgba(252,250,249,.82) 100%),
      url("../images/secmarble_cool.jpg") !important;
    background-position:center top !important;
  }
  /* ベージュの章：層のある温かい石（石が強く出る） */
  .sec-beige{
    background-image:
      linear-gradient(180deg, rgba(246,241,242,.82) 0%, rgba(242,234,237,.77) 100%),
      url("../images/secmarble_warm.jpg") !important;
    background-position:center center !important;
  }
  /* 同じ石でも切り取る位置を変え、章ごとに表情を変える */
  main > section:nth-of-type(3n){background-position:left top !important;}
  main > section:nth-of-type(3n+1){background-position:right center !important;}
  main > section:nth-of-type(3n+2){background-position:center bottom !important;}
  /* 節目の章（05 費用／09 体制）は灰の石で密度を上げ、流れに山をつくる */
  #cost-sec, #team-sec{
    background-image:
      linear-gradient(180deg, rgba(248,244,245,.84) 0%, rgba(244,238,240,.80) 100%),
      url("../images/secmarble_grey.jpg") !important;
  }
  /* 帯は石を敷かず面で締める＝章の切れ目として機能させる */
  .band-ink, .band-terra{border-top:none;}
  .photo-band{border-top:1px solid rgba(224,214,218,.9);}


  /* SP：ヘッダー直下の詰まりを解消（v5の一括paddingを上書き） */
  @media(max-width:960px){
    .hero{padding-top:calc(var(--header-h) + 16px) !important; padding-bottom:34px !important;}
  }


  /* ============================================================
     v10 改行の詰め ── 全幅で検出した孤立行を解消
     ============================================================ */
  /* 「ご相談の流れ」3カラムの説明文が文節で折れていなかった */
  .flow3 p, .flow3 .ttl, .hero-eyebrow, .check-verdict, .voice-sheets p{
    word-break:auto-phrase;
    text-wrap:pretty;
    overflow-wrap:anywhere;
  }
  /* 2行に収まる短文は行長を均す */
  .ch-note, .hero-eyebrow, .flow3 .ttl, .visual-cap, .pb-note{text-wrap:balance;}

  /* 小さめのスマホ（〜400px）：導入文を1行に収める */
  @media(max-width:400px){
    .hero-eyebrow{font-size:11.5px !important; letter-spacing:.06em !important;}
    .ch-note{font-size:12.5px !important;}
  }


  /* ============================================================
     v11 FIG.2 ステップ説明 ── 「決める／まだ」を行で分けて読ませる
     ============================================================ */
  .fig2-labels .st .d, .fig2-rail .d{
    display:flex; flex-direction:column; gap:5px;
    margin-top:8px !important;
  }
  .dl{
    display:grid; grid-template-columns:auto 1fr; gap:0 8px;
    align-items:start; line-height:1.75;
  }
  .dl b{
    font-weight:500; font-size:10.5px; letter-spacing:.08em;
    white-space:nowrap; padding:1px 6px; border-radius:2px;
    align-self:start; position:relative; top:2px;
  }
  .dl--now b{background:rgba(110,59,85,.10); color:var(--terra-deep);}
  .dl--later b{background:rgba(111,100,112,.10); color:var(--muted);}
  .dl--now{color:var(--ink);}
  .dl--later{color:var(--muted);}
  @media(max-width:960px){
    .dl b{font-size:11px;}
    .dl{line-height:1.8;}
  }


  /* v11 補正：迷っていい区間（ベージュ地）でのコントラスト確保と文節折り */
  .dl{word-break:auto-phrase; text-wrap:pretty; overflow-wrap:anywhere;}
  .dl--later, .dl--later b{color:#665c67 !important;}


  /* ============================================================
     v12 SP見出しの改行 ── 端末差で割れない余裕を持たせる
     ・balance をやめ、読み順どおりに折る pretty へ
     ・幅に対して文字が大きすぎたため段階的に縮小
     ・商標語「暮らし方リフォーム®」は分割禁止
     ============================================================ */
  .nb{white-space:nowrap;}
  /* 日本語の禁則を厳格に（小書き仮名・長音記号を行頭に置かない） */
  body{line-break:strict;}
  @media(max-width:680px){
    h2{text-wrap:pretty !important;}
  }
  @media(max-width:420px){
    h2{font-size:28px !important; line-height:1.58 !important;}
  }
  @media(max-width:360px){
    h2{font-size:25px !important;}
    .ch-name{font-size:19px !important;}
  }


  /* 本文の任意改行：狭い画面では自然折返しに任せる */
  .br-wide{display:inline;}
  @media(max-width:680px){ .br-wide{display:none;} }

  /* 文節単位でしか折らない（.nb）ため、極端に狭い端末での溢れを防ぐ保険 */
  h2{overflow-wrap:normal;}
  @media(max-width:340px){ h2{font-size:23px !important;} }




  /* ボタン：SPでは左右の余白と字間を詰めて、文字サイズを変えずに1行へ */
  @media(max-width:680px){
    .btn{padding-left:14px !important; padding-right:14px !important;
         letter-spacing:.04em !important; white-space:nowrap;}
    .btn-tel{padding-left:14px !important; padding-right:14px !important; white-space:nowrap;}
  }


  /* ============================================================
     v13 文節の分割禁止 ── 最終調整
     ============================================================ */
  .nb{white-space:nowrap;}

  /* 枠が狭く、文節を丸ごと置くと溢れる箇所だけ通常折り返しに戻す */
  @media(max-width:520px){
    .fig-note .nb,
    .band-ink .main .nb, .band-terra .main .nb,
    .band-ink .sub .nb, .band-terra .sub .nb,
    .cost-bracket .nb, .fig2-labels .nb, .dl .nb{white-space:normal;}
  }
  /* 360px未満は文節が1行に収まりきらないため自然折返しに戻す（禁則は line-break:strict が効く） */
  @media(max-width:359px){
    .nb{white-space:normal !important;}
    /* 極小幅：選択肢チップと図キャプションを詰めて1文字の孤立行を防ぐ */
    .check-group label{font-size:12px !important; padding-left:10px !important; padding-right:10px !important;}
    .fig-cap{font-size:11px !important; letter-spacing:.02em !important;}
    .form-row label, .form-row .group-label{font-size:13px !important;}
  }


  /* 墨帯・テラ帯の大見出し：狭い画面では語が割れないサイズに */
  @media(max-width:420px){
    .band-ink .main, .band-terra .main{font-size:24px !important; line-height:1.6 !important;}
  }
  @media(max-width:360px){
    .band-ink .main, .band-terra .main{font-size:21px !important;}
  }


  /* ============================================================
     v14 FIG.1 ── SPは縦組みに差し替え（横組みだと0.43倍で文字が6pxになる）
     ============================================================ */
  .fig1-sp{display:none !important;}
  @media(max-width:680px){
    .fig1{display:none !important;}
    .fig1-sp{display:block !important;}
    /* 図を載せるシートの左右余白を詰めて、図の実寸を稼ぐ */
    .sheet:has(.fig1-sp), .sheet:has(.fig2-rail){padding-left:16px !important; padding-right:16px !important;}
  }

  /* ============================================================
     支給写真の比率をそのまま使う（2026-09-04）
     各枠の aspect-ratio を写真の実寸比に合わせ、トリミングを起こさない。
     帯・グリッドは上端を揃え、高さの違いはそのまま見せる。
     ============================================================ */
  /* 写真は横長なので、高さ固定をやめて列幅からアスペクト比で高さを出す */
  .hero-visual{aspect-ratio:1079/719 !important; height:auto !important;}
  /* 横長写真になったぶん、写真側の列を少し広げる（PCのみ） */
  @media(min-width:961px){
    .hero-inner{grid-template-columns:minmax(0,6.4fr) minmax(0,5.6fr) !important; gap:clamp(32px,4.4vw,64px) !important;}
  }
  /* 事例帯は3枚の高さを揃える（4:3）。写真の比率は1.244/1.485/1.333で
     バラつくため、トリミング量が最小になる4:3に統一した */
  .photo-band > figure{aspect-ratio:4/3 !important;}
  /* 07章グリッドだけは縦位置・横位置が混在するため、正方形に統一する
     （4枚バラバラの比率にすると段差が大きく崩れて見えるため） */
  .works-grid figure{aspect-ratio:1/1 !important;}
  .visual-sub{aspect-ratio:693/987 !important;}
  /* サブ写真が縦長になったぶん、1カラムに切り替わる幅では横幅を絞る
     （44%のままだと主写真の3割を覆ってしまうため） */
  @media(max-width:960px){ .visual-sub{width:30% !important;} }
  @media(max-width:600px){ .visual-sub{width:34% !important;} }


  /* ===== サンクスページ（送信完了）===== */
  body.room375-thanks{min-height:100vh;display:flex;flex-direction:column;}
  body.room375-thanks main{flex:1 0 auto;}
  body.room375-thanks main > section{
    padding-top:150px !important;
    padding-bottom:clamp(64px,9vw,110px) !important;
  }
  @media(max-width:680px){
    body.room375-thanks main > section{padding-top:124px !important;}
  }
