  :root{
    --ink:#141a44;        /* deep navy : hero-bar / dark sections */
    --pine:#1f2a6e;       /* secondary dark navy */
    --paper:#ededf6;      /* brand light blue-grey bg */
    --paper-2:#e0e2f0;    /* slightly deeper panel */
    --accent:#2430a5;     /* brand navy : accents on light */
    --accent-bright:#aab2ec;/* light periwinkle : accents on dark */
    --bronze:#B67836;     /* CTA only : burnished amber-bronze */
    --bronze-bright:#E0A354;/* CTA glow */
    --text:#1a1f3d;       /* text on light */
    --text-inv:#eef0fa;   /* text on dark */
    --muted:#5c6180;      /* secondary text on light */
    --muted-inv:#a9b0d6;  /* secondary text on dark */
    --line:#d3d5e6;       /* hairline on light */
    --line-inv:#33407e;   /* hairline on dark */
    --maxw:1160px;
    --disp:"Shippori Mincho B1",serif;
    --body:"Zen Kaku Gothic New",sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    font-family:var(--body);
    background:var(--paper);
    color:var(--text);
    font-size:18px;
    line-height:1.95;
    -webkit-font-smoothing:antialiased;
    letter-spacing:.01em;
    overflow-x:hidden;
  }
  h1,h2,h3,.disp{font-family:var(--disp);font-weight:700;line-height:1.35;letter-spacing:.02em}
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

  /* ---------- eyebrow / labels ---------- */
  .eyebrow{
    font-size:13px;font-weight:700;letter-spacing:.14em;
    color:var(--accent);
    display:inline-flex;align-items:center;gap:12px;margin-bottom:20px;
  }
  .eyebrow::before{content:"";width:34px;height:1px;background:var(--accent)}
  .eyebrow.jp{color:var(--muted);letter-spacing:.12em}

  /* ---------- buttons ---------- */
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:12px;
    font-family:var(--body);font-weight:700;font-size:16px;letter-spacing:.04em;
    padding:19px 38px;border-radius:100px;border:1px solid transparent;
    transition:transform .25s ease,box-shadow .25s ease,background .25s ease;
    cursor:pointer;min-height:60px;
  }
  .btn-primary{background:var(--bronze);color:#fff;box-shadow:0 8px 22px -8px rgba(182,120,54,.75);animation:ctaPulse 2.4s ease-in-out infinite}
  .btn-primary:hover{background:#a56c30;transform:translateY(-2px);animation:none;box-shadow:0 14px 30px -10px rgba(182,120,54,.85)}
  .btn-primary .arw{transition:transform .25s ease}
  .btn-primary:hover .arw{transform:translateX(5px)}
  @keyframes ctaPulse{0%,100%{box-shadow:0 8px 22px -8px rgba(182,120,54,.75),0 0 0 0 rgba(224,163,84,.45)}50%{box-shadow:0 8px 22px -8px rgba(182,120,54,.75),0 0 0 12px rgba(224,163,84,0)}}
  .btn-ghost{background:transparent;border-color:currentColor;color:var(--text-inv)}
  .btn-ghost:hover{background:rgba(255,255,255,.08)}
  .on-light-cta .btn-ghost,.final .btn-ghost{color:var(--text-inv)}

  /* ---------- header ---------- */
  header{
    position:sticky;top:0;z-index:60;
    background:rgba(20,26,68,.92);backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line-inv);
  }
  .nav{display:flex;align-items:center;justify-content:space-between;height:76px}
  .brand{display:flex;flex-direction:column;line-height:1.2}
  .brand b{font-family:var(--disp);font-weight:700;color:var(--text-inv);font-size:19px;letter-spacing:.06em}
  .brand span{font-size:10px;letter-spacing:.3em;color:var(--accent-bright);text-transform:uppercase;margin-top:3px}
  .nav-links{display:flex;gap:30px;align-items:center}
  .nav-links a{color:var(--muted-inv);font-size:14px;font-weight:500;transition:color .2s}
  .nav-links a:hover{color:var(--text-inv)}
  .nav-links .nav-cta{background:var(--bronze);color:#fff;padding:11px 24px;border-radius:100px;font-size:14px;font-weight:700;transition:background .2s}
  .nav-links .nav-cta:hover{background:#a56c30;color:#fff}
  .menu-btn{display:none;background:none;border:0;color:var(--text-inv);font-size:26px;cursor:pointer}
  @media(max-width:960px){
    .nav-links{display:none}
    .menu-btn{display:block}
  }

  /* ---------- hero ---------- */
  .hero{position:relative;background:var(--ink);padding:0}
  .hero-mv{display:block;line-height:0}
  .hero-mv img{width:100%;height:auto;display:block}
  .hero-cta-bar{background:var(--ink);padding:18px 0}
  .hero-cta-inner{display:flex;gap:16px;justify-content:center;align-items:center;flex-wrap:wrap}
  .btn-ghost-light{background:rgba(36,48,165,.62);border:1.5px solid rgba(255,255,255,.85);color:#fff;backdrop-filter:blur(3px);font-weight:700}
  .btn-ghost-light:hover{background:rgba(36,48,165,.82);border-color:#fff}
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  /* reusable bronze offset frame (echoes the source assets' offset-frame motif) */
  .framed{position:relative}
  .framed::before{content:"";position:absolute;inset:0;transform:translate(15px,15px);
    border:2px solid var(--accent);border-radius:2px;z-index:0}
  .framed img{position:relative;z-index:1;display:block;width:100%;height:auto;border-radius:2px}
  .hero-cta{display:flex;gap:16px;flex-wrap:wrap}
  .hero-meta{display:flex;gap:12px 28px;flex-wrap:wrap;align-items:center;
    color:var(--muted-inv);font-size:14px;letter-spacing:.06em}
  .hero-meta b{color:var(--text-inv);font-family:var(--disp);font-weight:500;letter-spacing:.14em}

  /* ---------- section base ---------- */
  section{padding:96px 0}
  .sec-head{max-width:720px;margin-bottom:56px}
  .sec-head h2{font-size:clamp(27px,3.6vw,40px);margin-top:6px}
  .sec-head p{margin-top:22px;color:var(--muted);font-size:16px;line-height:2}
  .on-dark{background:var(--ink);color:var(--text-inv)}
  .on-dark .sec-head p{color:var(--muted-inv)}
  .on-dark h2,.on-dark h3{color:var(--text-inv)}
  .panel{background:var(--paper-2)}

  /* reveal */
  .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
  .reveal.in{opacity:1;transform:none}

  /* ---------- symptoms ---------- */
  .sym-intro{display:grid;grid-template-columns:340px 1fr;gap:52px;align-items:center;margin-bottom:56px}
  .sym-intro .sec-head{margin-bottom:0}
  .sym-visual{max-width:340px;width:100%}
  @media(max-width:760px){.sym-intro{grid-template-columns:1fr;gap:30px}.sym-visual{max-width:300px}.framed::before{transform:translate(11px,11px)}}
  .sym-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
  .sym{background:var(--paper);padding:28px 30px}
  .sym .n{font-family:var(--disp);color:var(--accent);font-size:15px;letter-spacing:.16em;margin-right:10px}
  .sym h3{display:inline;font-size:20px}
  .sym p{color:var(--muted);font-size:15.5px;line-height:1.9;margin-top:10px}
  @media(max-width:820px){.sym-grid{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:520px){.sym-grid{grid-template-columns:1fr}}

  /* ---------- self check ---------- */
  .check-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
  .check-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .check-item{position:relative}
  .check-item input{position:absolute;opacity:0;width:0;height:0}
  .check-item label{
    display:flex;align-items:center;gap:12px;cursor:pointer;
    padding:15px 18px;border:1px solid var(--line);border-radius:2px;background:var(--paper);
    color:var(--muted);font-size:14.5px;transition:all .2s;line-height:1.5;
  }
  .check-item .box{width:20px;height:20px;border:1.5px solid var(--muted);border-radius:2px;flex-shrink:0;position:relative;transition:all .2s}
  .check-item input:checked + label{border-color:var(--accent);color:var(--text);background:rgba(36,48,165,.08)}
  .check-item input:checked + label .box{background:var(--accent);border-color:var(--accent)}
  .check-item input:checked + label .box::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
  .check-item input:focus-visible + label{outline:2px solid var(--accent-bright);outline-offset:2px}
  .check-result{background:var(--pine);border:1px solid var(--line-inv);border-radius:3px;padding:38px 34px;position:sticky;top:100px}
  .check-result .count{font-family:var(--disp);font-size:60px;color:var(--accent-bright);line-height:1}
  .check-result .count small{font-size:20px;color:var(--muted-inv);margin-left:6px}
  .check-result h3{font-size:20px;margin:18px 0 12px;color:var(--text-inv)}
  .check-result p{color:var(--muted-inv);font-size:15px;line-height:1.9}
  .check-result .btn{margin-top:24px;width:100%}
  .disclaimer{font-size:12px;color:var(--muted-inv);margin-top:16px;line-height:1.7}
  @media(max-width:860px){.check-wrap{grid-template-columns:1fr;gap:36px}.check-result{position:static}}
  @media(max-width:520px){.check-list{gap:10px}.check-item label{padding:12px 12px;font-size:14px}}

  /* ---------- decline / graph ---------- */
  .graph-wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:center}
  .graph-card{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:34px}
  .graph-card figcaption{font-size:12px;color:var(--muted);margin-top:14px;letter-spacing:.04em}
  .graph-wrap p{color:var(--muted);margin-top:18px;line-height:2}
  @media(max-width:860px){.graph-wrap{grid-template-columns:1fr;gap:36px}}

  /* ---------- changes ---------- */
  .change-intro{display:grid;grid-template-columns:1fr 340px;gap:52px;align-items:center;margin-bottom:52px}
  .change-intro .sec-head{margin-bottom:0}
  .change-visual{max-width:340px;width:100%;justify-self:end}
  @media(max-width:760px){.change-intro{grid-template-columns:1fr;gap:30px}.change-visual{max-width:300px;justify-self:center}}
  .change-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .change{border:1px solid var(--line);border-radius:3px;padding:30px 30px;transition:border-color .3s,transform .3s;
    display:flex;flex-wrap:wrap;align-items:center;column-gap:18px;background:var(--paper)}
  .change:hover{border-color:var(--accent);transform:translateY(-3px)}
  .change .ic-wrap{width:74px;height:74px;border-radius:50%;overflow:hidden;flex-shrink:0;
    box-shadow:0 0 0 1px var(--line),0 0 0 6px rgba(36,48,165,.14)}
  .change .ic-wrap img{width:112%;height:112%;object-fit:cover;object-position:center;margin:-6%;display:block}
  .change h3{font-size:20px;margin:0;flex:1;min-width:0}
  .change p{color:var(--muted);font-size:16.5px;line-height:1.9;flex-basis:100%;margin-top:16px}
  @media(max-width:820px){.change-grid{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:520px){.change-grid{grid-template-columns:1fr}}

  /* ---------- reasons ---------- */
  .reason-layout{display:grid;grid-template-columns:360px 1fr;gap:56px;align-items:start}
  .reason-visual{position:sticky;top:104px;max-width:360px;width:100%}
  .reason-main .sec-head{margin-bottom:24px}
  @media(max-width:820px){.reason-layout{grid-template-columns:1fr;gap:32px}.reason-visual{position:static;max-width:320px;margin:0 auto}}
  .reason{padding:30px 0;border-top:1px solid var(--line)}
  .reason:last-child{border-bottom:1px solid var(--line)}
  .reason-h{display:flex;align-items:baseline;gap:16px;margin-bottom:12px}
  .reason .rn{font-family:var(--disp);font-size:36px;color:var(--accent);line-height:1;font-weight:500;flex-shrink:0}
  .reason h3{font-size:22px;margin:0}
  .reason p{color:var(--muted);font-size:16px;line-height:1.95}
  .reason .note{font-size:12.5px;color:var(--muted);margin-top:8px}

  /* ---------- menu ---------- */
  .menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  .mcard{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:36px 30px}
  .mcard.lead-card{background:var(--ink);color:var(--text-inv);border-color:var(--ink)}
  .mcard .tag{display:inline-block;font-size:11px;letter-spacing:.16em;font-weight:700;padding:5px 12px;border-radius:2px;margin-bottom:18px}
  .mcard.lead-card .tag{background:var(--accent);color:#fff}
  .mcard .tag.opt{background:var(--paper-2);color:var(--muted)}
  .mcard h3{font-size:23px;margin-bottom:12px}
  .mcard.lead-card h3{color:var(--text-inv)}
  .mcard .plan-name{font-weight:700;color:var(--accent);font-size:14px;margin:-4px 0 14px;letter-spacing:.02em}
  .mcard.lead-card .plan-name{color:var(--accent-bright)}
  .menu-foot{margin-top:22px;font-size:13px;color:var(--muted);line-height:1.9}
  .mcard p{color:var(--muted);font-size:15px;line-height:1.9}
  .mcard.lead-card p{color:var(--muted-inv)}
  @media(max-width:820px){.menu-grid{grid-template-columns:1fr}}

  /* ---------- pricing ---------- */
  .price-base{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:40px}
  .price-base .pb{flex:1;min-width:200px;background:#fff;border:1px solid var(--line);border-radius:3px;padding:26px 30px}
  .price-base .pb .k{color:var(--muted);font-size:14px;letter-spacing:.06em}
  .price-base .pb .v{font-family:var(--disp);font-size:30px;color:var(--text);margin-top:8px}
  .price-base .pb .v small{font-size:15px;color:var(--muted);margin-left:4px}
  .plans{display:grid;grid-template-columns:1fr 1.15fr;gap:22px}
  .plan{border:1px solid var(--line);border-radius:3px;padding:36px 34px;position:relative;background:#fff}
  .plan.feature{border-color:var(--accent);border-width:2px;background:#fff}
  .plan .ribbon{position:absolute;top:-14px;left:34px;background:var(--accent);color:#fff;font-size:12px;font-weight:700;letter-spacing:.08em;padding:6px 16px;border-radius:100px}
  .plan h3{font-size:20px;color:var(--text);margin-bottom:6px}
  .plan .sub{color:var(--muted);font-size:13px;margin-bottom:24px}
  .plan .row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:15px}
  .plan .row b{color:var(--text);font-weight:500}
  .plan .total{margin-top:22px;display:flex;align-items:baseline;justify-content:space-between}
  .plan .total .lbl{color:var(--muted);font-size:14px}
  .plan .total .amt{font-family:var(--disp);font-size:34px;color:var(--text)}
  .plan .total .amt small{font-size:15px;color:var(--muted)}
  .plan .strike{color:var(--muted);text-decoration:line-through;font-size:15px;margin-right:10px}
  .plan .permonth{color:var(--accent);font-family:var(--disp);font-size:20px;margin-top:8px}
  .price-notes{margin-top:34px;padding:26px 30px;background:#fff;border-radius:3px;border:1px solid var(--line)}
  .price-notes li{color:var(--muted);font-size:13.5px;line-height:1.9;list-style:none;padding-left:20px;position:relative}
  .price-notes li::before{content:"※";position:absolute;left:0;color:var(--accent)}
  @media(max-width:820px){.plans{grid-template-columns:1fr}}

  /* ---------- flow ---------- */
  .flow{position:relative}
  .flow-step{display:grid;grid-template-columns:90px 1fr;gap:28px;padding-bottom:44px;position:relative}
  .flow-step::before{content:"";position:absolute;left:26px;top:56px;bottom:-4px;width:1px;background:var(--line)}
  .flow-step:last-child::before{display:none}
  .flow-num{width:54px;height:54px;border-radius:50%;background:var(--ink);color:#fff;
    font-family:var(--disp);font-size:20px;display:flex;align-items:center;justify-content:center;position:relative;z-index:2}
  .flow-body h3{font-size:20px;margin-bottom:8px}
  .flow-body p{color:var(--muted);font-size:15px;line-height:1.9}
  .flow-body .flag{display:inline-block;margin-top:10px;font-size:12.5px;color:var(--accent);border:1px solid var(--accent);border-radius:2px;padding:3px 12px}
  @media(max-width:600px){.flow-step{grid-template-columns:54px 1fr;gap:18px}.flow-step::before{left:26px}}

  /* ---------- doctor ---------- */
  .doctor{display:grid;grid-template-columns:320px 1fr;gap:48px;align-items:center}
  .doctor .ph{aspect-ratio:4/5;border:1px solid var(--line-inv);border-radius:3px;overflow:hidden;
    background:radial-gradient(120% 80% at 50% 12%, #e7e9f5 0%, #cdd2ea 55%, #b7bee0 100%)}
  .doctor .ph img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
  .doctor blockquote{font-family:var(--disp);font-size:clamp(20px,2.4vw,26px);line-height:1.9;color:var(--text-inv);margin-bottom:24px;font-weight:500}
  .doctor .who{color:var(--accent-bright);font-size:15px;letter-spacing:.1em}
  .doctor p{color:var(--muted-inv);font-size:15px;line-height:1.95;margin-top:18px}
  @media(max-width:760px){.doctor{grid-template-columns:1fr;gap:30px}.doctor .ph{max-width:280px}}

  /* ---------- risk ---------- */
  .risk-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px}
  .risk-grid h3{font-size:18px;margin-bottom:18px;color:var(--text);display:flex;align-items:center;gap:10px}
  .risk-grid h3::before{content:"";width:8px;height:8px;background:var(--accent);border-radius:50%}
  .risk-list{columns:2;column-gap:30px}
  .risk-list li{list-style:none;color:var(--muted);font-size:14px;line-height:1.6;padding:7px 0 7px 16px;position:relative;break-inside:avoid}
  .risk-list li::before{content:"−";position:absolute;left:0;color:var(--accent)}
  .caution li{list-style:none;padding:14px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:14.5px;line-height:1.8}
  .caution li b{color:var(--text);display:block;margin-bottom:2px;font-family:var(--disp)}
  .risk-foot{margin-top:36px;padding:24px 28px;background:var(--paper-2);border-left:3px solid var(--accent);color:var(--muted);font-size:14px;line-height:1.9}
  @media(max-width:760px){.risk-grid{grid-template-columns:1fr;gap:30px}.risk-list{columns:1}}

  /* ---------- faq ---------- */
  .faq-item{border-bottom:1px solid var(--line)}
  .faq-q{width:100%;text-align:left;background:none;border:0;cursor:pointer;padding:26px 44px 26px 0;
    font-family:var(--disp);font-size:18px;color:var(--text);position:relative;line-height:1.6}
  .faq-q .qmark{color:var(--accent);margin-right:14px;font-weight:700}
  .faq-q::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:26px;color:var(--accent);font-family:var(--body);transition:transform .3s}
  .faq-item.open .faq-q::after{content:"−"}
  .faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease}
  .faq-a-inner{padding:0 0 26px;color:var(--muted);font-size:15px;line-height:1.95}
  .faq-a-inner ul{margin:10px 0 0 20px;color:var(--muted)}

  /* ---------- access ---------- */
  .access-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  .clinic{background:var(--paper);border:1px solid var(--line);border-radius:3px;overflow:hidden}
  .clinic .map{aspect-ratio:16/10;background:#dcdcd2;overflow:hidden}
  .clinic .map iframe{width:100%;height:100%;border:0;display:block}
  .clinic .body{padding:26px 26px 30px}
  .clinic h3{font-size:21px;margin-bottom:6px}
  .clinic .area{color:var(--accent);font-size:12px;letter-spacing:.16em;margin-bottom:16px}
  .clinic dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:14px;color:var(--muted)}
  .clinic dt{color:var(--text);font-weight:500}
  @media(max-width:820px){
    .access-grid{grid-template-columns:1fr}
    .access-grid.swipe-sp{display:flex;grid-template-columns:none;overflow-x:auto;gap:16px;
      scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:12px;
      margin-inline:calc(-1*var(--pad,20px));padding-inline:var(--pad,20px)}
    .access-grid.swipe-sp .clinic{flex:0 0 84%;scroll-snap-align:start}
  }

  /* ---------- final cta ---------- */
  .final{position:relative;overflow:hidden;text-align:center;padding:120px 0}
  .final .eyebrow{justify-content:center}
  .final h2{font-size:clamp(28px,4.4vw,48px);color:var(--text-inv);line-height:1.4}
  .final p{color:#dce1f6;margin:24px auto 38px;max-width:560px;font-size:16.5px;line-height:2}
  .final .btn{font-size:17px;padding:22px 46px}
  .final-curve{position:absolute;left:0;right:0;bottom:0;width:100%;opacity:.5}

  /* ---------- footer ---------- */
  footer{background:#0f1436;color:var(--muted-inv);padding:64px 0 40px;font-size:13.5px}
  .foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:44px;border-bottom:1px solid var(--line-inv)}
  .foot-top .brand b{color:var(--text-inv);font-size:20px}
  .foot-top p{margin-top:16px;line-height:1.9;max-width:340px}
  .foot-col h4{color:var(--text-inv);font-size:13px;letter-spacing:.14em;margin-bottom:16px;font-weight:700}
  .foot-col a{display:block;padding:6px 0;color:var(--muted-inv);transition:color .2s}
  .foot-col a:hover{color:var(--accent-bright)}
  .foot-bottom{padding-top:28px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px}
  .foot-note{max-width:820px;margin-top:20px;font-size:11.5px;line-height:1.8;color:#6c7b73}
  @media(max-width:760px){.foot-top{grid-template-columns:1fr;gap:30px}}

  /* ---------- mobile sticky cta ---------- */
  .mcta{position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;
    background:rgba(21,33,29,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line-inv);
    padding:12px 16px;gap:10px}
  .mcta .btn{flex:1;padding:16px;min-height:54px;font-size:15px}
  @media(max-width:960px){.mcta{display:flex}body{padding-bottom:80px}}
  body.is-home .mcta{display:none}
  @media(max-width:960px){body.is-home{padding-bottom:0}}

  /* ---------- cases / 相談例 ---------- */
  .cases-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
  .case-card{background:var(--paper);border:1px solid var(--line);border-radius:4px;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease}
  .case-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px -22px rgba(21,33,29,.4)}
  .case-card img{width:100%;height:auto;display:block}
  .cases-note{margin-top:26px;font-size:15px;color:var(--muted);line-height:1.85}
  @media(max-width:820px){.cases-grid{grid-template-columns:1fr;max-width:460px;margin:0 auto}}

  /* ---------- mobile readability (larger type for older users) ---------- */
  @media(max-width:640px){
    body{font-size:18.5px;line-height:2}
    .hero-cta-bar{padding:14px 0}
    .hero-cta-inner{gap:12px}
    .hero-cta-inner .btn{width:auto;font-size:15px;padding:14px 22px}
    .hero-bar{padding:20px 0 32px;gap:18px}
    .framed::before{transform:translate(11px,11px)}
    .hero-meta{font-size:15.5px}
    .sec-head{margin-bottom:40px}
    .sec-head h2{font-size:29px}
    .sec-head p{font-size:17.5px}
    .eyebrow{font-size:14px}
    .sym{padding:24px 24px}
    .sym .n{font-size:16px}
    .sym h3{font-size:21px}
    .sym p{font-size:17px}
    .check-item label{font-size:17px;padding:16px 18px}
    .check-result{padding:32px 26px}
    .check-result h3{font-size:21px}
    .check-result p{font-size:16.5px}
    .disclaimer{font-size:14px}
    .graph-wrap p{font-size:17px}
    .change{padding:26px 24px}
    .change h3{font-size:21px}
    .change p{font-size:17.5px}
    .reason .rn{font-size:32px}
    .reason h3{font-size:22px}
    .reason p{font-size:17px}
    .reason .note{font-size:13.5px}
    .cases-note{font-size:16px}
    .mcard{padding:32px 26px}
    .mcard h3{font-size:24px}
    .mcard p{font-size:17px}
    .price-base .pb .k{font-size:16px}
    .plan{padding:32px 26px}
    .plan h3{font-size:22px}
    .plan .sub{font-size:15px}
    .plan .row{font-size:16.5px}
    .price-notes li{font-size:15.5px}
    .flow-body h3{font-size:22px}
    .flow-body p{font-size:17px}
    .flow-body .flag{font-size:14px}
    .doctor blockquote{font-size:22px}
    .doctor p{font-size:17px}
    .doctor .who{font-size:15.5px}
    .risk-list li{font-size:16px}
    .caution li{font-size:16.5px}
    .risk-foot{font-size:16px}
    .faq-q{font-size:19px;padding:24px 40px 24px 0}
    .faq-a-inner{font-size:17px}
    .clinic h3{font-size:23px}
    .clinic dl{font-size:16.5px}
    footer{font-size:15.5px}
    .foot-top p{font-size:15.5px}
    .foot-col a{font-size:16px}
    .foot-note{font-size:13.5px}
    .btn{font-size:17px}
    .final p{font-size:17.5px}
    .mcta .btn{font-size:17px}
  }

  @media(prefers-reduced-motion:reduce){
    *{animation:none!important;transition:none!important}
    .reveal{opacity:1;transform:none}
  }

  /* ---------- sub-page hero / breadcrumb ---------- */
  .page-hero{background:var(--ink);color:var(--text-inv);padding:54px 0 46px}
  .breadcrumb{font-size:13px;color:var(--muted-inv);margin-bottom:16px;letter-spacing:.04em}
  .breadcrumb a{color:var(--muted-inv)}
  .breadcrumb a:hover{color:var(--accent-bright)}
  .breadcrumb span{margin:0 9px;opacity:.55}
  .page-hero h1{font-size:clamp(27px,4vw,40px);color:var(--text-inv)}
  .page-hero p{color:var(--muted-inv);margin-top:16px;max-width:640px;line-height:1.9}
  /* ---------- clinic list card link ---------- */
  .clinic .body h3 a{color:inherit;transition:color .2s}
  .clinic .body h3 a:hover{color:var(--accent)}
  .clinic .more{display:inline-block;margin-top:16px;color:var(--accent);font-weight:700;font-size:14px}
  .clinic .more:hover{text-decoration:underline}
  /* ---------- clinic detail ---------- */
  .cl-detail{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:start}
  .cl-detail .map-lg{aspect-ratio:4/3;border:1px solid var(--line);border-radius:4px;overflow:hidden}
  .cl-detail .map-lg iframe{width:100%;height:100%;border:0;display:block}
  .cl-detail h2{font-size:30px;margin-bottom:16px}
  .cl-detail dl{display:grid;grid-template-columns:auto 1fr;gap:14px 22px;font-size:16px;color:var(--muted)}
  .cl-detail dt{color:var(--text);font-weight:500;font-family:var(--disp)}
  .cl-cta{margin-top:30px}
  @media(max-width:820px){.cl-detail{grid-template-columns:1fr;gap:28px}}
  /* ---------- mobile menu ---------- */
  @media(max-width:960px){
    header.open .nav-links{display:flex;flex-direction:column;align-items:flex-start;gap:2px;
      position:absolute;top:76px;left:0;right:0;background:var(--ink);padding:14px 24px 20px;border-bottom:1px solid var(--line-inv)}
    header.open .nav-links a{padding:11px 0;font-size:16px}
    header.open .nav-links .nav-cta{margin-top:8px;padding:12px 22px}
  }

  /* ---------- clinic page: gallery / access / placeholders ---------- */
  .ph-box{background:var(--paper-2);border:1px dashed #b9b9ad;border-radius:4px;display:flex;flex-direction:column;
    align-items:center;justify-content:center;text-align:center;color:var(--muted);font-size:14px;padding:20px;gap:6px}
  .ph-box small{font-size:11.5px;opacity:.7;word-break:break-all}
  .gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .gallery .ph-box{aspect-ratio:4/3}
  .gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;display:block}
  @media(max-width:700px){.gallery{grid-template-columns:1fr 1fr}}
  .access-route{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
  .access-route .ph-box{aspect-ratio:4/3}
  .access-route img{width:100%;border-radius:4px;border:1px solid var(--line);display:block}
  .route-steps{margin:0;padding:0}
  .route-steps li{list-style:none;position:relative;padding:2px 0 22px 26px;margin-left:18px;border-left:1px solid var(--line);
    color:var(--text);font-size:16px;line-height:1.7}
  .route-steps li:last-child{border-left:0;padding-bottom:0}
  .route-steps li::before{counter-increment:rstep;content:counter(rstep);position:absolute;left:-18px;top:-2px;
    width:36px;height:36px;border-radius:50%;background:var(--ink);color:var(--accent-bright);
    display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:15px}
  .route-steps{counter-reset:rstep}
  .area-text{max-width:780px;color:var(--muted);line-height:2;font-size:16px}
  @media(max-width:700px){.access-route{grid-template-columns:1fr;gap:28px}}

  /* ---------- treatment menu: single card + note ---------- */
  .menu-grid.single{grid-template-columns:1fr;max-width:620px}
  .mcard-note{margin-top:16px;font-size:13.5px;opacity:.85}

  /* ---------- column list ---------- */
  .article-list{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
  .art-card{display:block;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--paper);transition:transform .3s,box-shadow .3s}
  .art-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px -22px rgba(21,33,29,.4)}
  .art-thumb{aspect-ratio:16/9;background:var(--paper-2);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:12px;letter-spacing:.1em}
  .art-card .art-meta{display:flex;align-items:center;gap:10px;padding:18px 20px 0}
  .art-card h3{font-size:17px;line-height:1.6;padding:10px 20px 22px;margin:0}
  .art-meta .cat{display:inline-block;background:var(--accent);color:#fff;font-size:11.5px;font-weight:700;padding:4px 12px;border-radius:100px;letter-spacing:.04em}
  .art-meta .d{color:var(--muted);font-size:12.5px}
  .art-card--sym h3{padding-bottom:6px}
  .art-card--sym .art-desc{padding:0 20px 22px;margin:0;color:var(--muted);font-size:13.5px;line-height:1.8}
  @media(max-width:820px){.article-list{grid-template-columns:1fr 1fr}}
  @media(max-width:520px){.article-list{grid-template-columns:1fr}}

  .article-table{width:100%;border-collapse:collapse;margin:0 0 26px;font-size:14.5px}
  .article-table th,.article-table td{border:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top;line-height:1.7}
  .article-table th{background:var(--pine);color:var(--text-inv);font-weight:500;font-family:var(--disp)}
  .article-table tbody tr:nth-child(even) td{background:var(--paper-2)}
  .article-cta{text-align:center;background:var(--ink);border-radius:10px;padding:40px 30px;margin:48px 0}
  .article-cta p{color:var(--text-inv);font-family:var(--disp);font-size:20px;margin-bottom:22px}
  .supervisor{display:grid;grid-template-columns:120px 1fr;gap:26px;align-items:start;background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:28px 30px;margin:44px 0}
  .supervisor .role{color:var(--accent);font-size:13px;letter-spacing:.08em}
  .supervisor h3{font-size:20px;margin:4px 0 16px}
  .supervisor .career{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:14px;color:var(--muted);line-height:1.8}
  .supervisor .career dt{color:var(--text);font-weight:500;font-family:var(--disp);white-space:nowrap}
  .supervisor .career dd{margin:0}


  @media(max-width:600px){.supervisor{grid-template-columns:1fr;justify-items:center;text-align:center}.supervisor .career{justify-items:center}}

  /* ---------- article images (shared) ---------- */
  .supervisor img{width:120px;height:120px;border-radius:50%;object-fit:cover;display:block}
  .art-thumb img{width:100%;height:100%;object-fit:cover;display:block}

  /* ---------- section "more" link ---------- */
  .more-link{text-align:center;margin-top:36px}
  .more-link a{display:inline-flex;align-items:center;gap:8px;color:var(--bronze);font-weight:700;font-size:15px;
    border:1px solid var(--bronze);border-radius:100px;padding:13px 32px;transition:all .2s}
  .more-link a:hover{background:var(--bronze);color:#fff}

  /* ---------- clinic gallery figures (with caption) ---------- */
  .gallery.cols-2{grid-template-columns:repeat(2,1fr)}
  .gallery figure{margin:0}
  .gallery figure img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;display:block}
  .gallery figure figcaption{margin-top:10px;font-size:14px;color:var(--muted);text-align:center}
  /* ---------- route photos (step-by-step with images) ---------- */
  .route-photos{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
  .route-photos .rp{margin:0}
  .route-photos .rp-img{position:relative;border-radius:8px;overflow:hidden}
  .route-photos .rp-img img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
  .route-photos .rp-num{position:absolute;top:12px;left:12px;width:38px;height:38px;border-radius:50%;
    background:var(--ink);color:var(--accent-bright);display:flex;align-items:center;justify-content:center;
    font-family:var(--disp);font-size:18px;z-index:2}
  .route-photos .rp p{margin:14px 0 0;font-size:15px;line-height:1.8;color:var(--text)}
  @media(max-width:600px){.route-photos{grid-template-columns:1fr}.gallery.cols-2{grid-template-columns:1fr}}

  /* ---------- carousel (route photos, many images) ---------- */
  .carousel{position:relative;margin-top:8px}
  .carousel-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
    padding:4px 2px 14px;-webkit-overflow-scrolling:touch}
  .carousel-track::-webkit-scrollbar{height:8px}
  .carousel-track::-webkit-scrollbar-track{background:var(--paper-2);border-radius:4px}
  .carousel-track::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}
  .cslide{flex:0 0 calc((100% - 40px)/3);scroll-snap-align:start;margin:0}
  .cslide-img{position:relative;border-radius:8px;overflow:hidden;background:var(--paper-2)}
  .cslide-img img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
  .cslide-ph{width:100%;aspect-ratio:3/2;display:flex;flex-direction:column;align-items:center;justify-content:center;
    color:var(--muted);font-size:14px;gap:4px;border:1px dashed #b9b9ad;border-radius:8px}
  .cslide .rp-num{position:absolute;top:10px;left:10px;width:34px;height:34px;border-radius:50%;background:var(--ink);
    color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-size:16px;z-index:2}
  .cslide p{margin:12px 0 0;font-size:14.5px;line-height:1.75;color:var(--text)}
  .carousel-btn{position:absolute;top:33%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;
    border:1px solid var(--line);background:#fff;color:var(--ink);font-size:24px;line-height:1;cursor:pointer;
    display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px -6px rgba(0,0,0,.28);z-index:3;
    transition:background .2s,color .2s,opacity .2s}
  .carousel-btn:hover{background:var(--bronze);color:#fff;border-color:var(--bronze)}
  .carousel-btn.prev{left:-12px}
  .carousel-btn.next{right:-12px}
  .carousel-btn[disabled]{opacity:.25;cursor:default;box-shadow:none}
  .carousel-hint{text-align:center;color:var(--muted);font-size:12.5px;margin-top:4px}
  @media(max-width:820px){.cslide{flex-basis:calc((100% - 20px)/2)}}
  @media(max-width:560px){.cslide{flex-basis:84%}.carousel-btn{display:none}}

  /* mobile section rhythm : reduce large vertical whitespace on small screens */
  @media(max-width:820px){ section{padding:64px 0} .sec-head{margin-bottom:40px} }
  @media(max-width:560px){ section{padding:44px 0} .sec-head{margin-bottom:26px} }

  /* ---- digest top (lead + cards) ---- */
  .btn-outline{background:transparent;border-color:var(--accent);color:var(--accent)}
  .btn-outline:hover{background:var(--accent);color:#fff}
  #lead .lead-inner{max-width:760px;margin:0 auto;text-align:center}
  #lead h2{font-family:var(--disp);font-weight:500;font-size:clamp(24px,3.6vw,34px);line-height:1.5;letter-spacing:.03em}
  #lead p{color:var(--muted);margin:20px auto 0;font-size:16px;line-height:2;max-width:36em}
  .lead-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:30px}
  .digest-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
  .digest-card{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:24px 20px;color:var(--text);transition:transform .18s,box-shadow .18s,border-color .18s}
  .digest-card:hover{border-color:var(--accent);box-shadow:0 12px 28px -16px rgba(20,26,68,.45);transform:translateY(-2px)}
  .digest-card .dc-h{font-family:var(--disp);font-size:18px;font-weight:700;color:var(--accent)}
  .digest-card p{font-size:13.5px;color:var(--muted);line-height:1.85;flex:1;margin:0}
  .digest-card .dc-more{font-size:13px;font-weight:700;color:var(--bronze)}
  @media(max-width:820px){.digest-grid{grid-template-columns:1fr 1fr}}
  @media(max-width:520px){.digest-grid{grid-template-columns:1fr}.lead-cta .btn{width:100%;justify-content:center}}

  /* symptom/long-form prose block */
  .prose{max-width:760px;margin:0 auto}
  .prose p{font-size:16px;line-height:2;color:var(--text);margin-bottom:18px}
  .prose p:last-child{margin-bottom:0}

  /* symptom page inline photo */
  .loh-photo{margin:0 auto 30px;max-width:880px}
  .loh-photo img{width:100%;height:auto;display:block;border-radius:12px}
  .loh-photo figcaption{font-size:12.5px;color:var(--muted);margin-top:8px;text-align:right}
