/* =========================================================
   ゆうき整骨院 — Concept C "HIKOSHIMA" / 島の保健室
   全ページ共通のスタイル（トップページ＋下層ページ）
   1. 基本・トップページ（デザインコンペ優勝案 e1 がベース）
   2. 追加部品（特典バッジ・特典チップ・本日の施術時間・部位タブ ほか）
   3. 下層ページ用の部品（ページ見出し・カード・表・フォーム ほか）
   ========================================================= */
:root{
  /* palette (Concept C) */
  --white:#FFFFFF;
  --teal:#0F6E74; --teal-d:#0A5357;
  --mist:#E4F1F0; --mist-2:#CFE7E5; --mist-0:#F3F9F8; --sea:#7BC4C0;
  --or:#FF7A1A;            /* decoration: lines, dots, doodle accents */
  --or-d:#EA6408;          /* fills carrying large (>=19px bold) white text */
  --or-t:#C25000;          /* small orange text on white (AA) */
  --peach:#FFF1E6;
  --ink:#1E2E33; --ink-2:#4F6368;
  --line:#06C755;          /* LINE brand green: icon glyphs */
  --line-ui:#00873E;       /* LINE buttons with white text (AA 4.6:1) */
  --line-sh:#00652E;
  --acc:var(--or);

  --jp:'Zen Maru Gothic','Hiragino Maru Gothic ProN','BIZ UDPGothic',sans-serif;
  --num:'Nunito','Zen Maru Gothic',sans-serif;

  --r-s:14px; --r-m:24px; --r-l:34px; --r-xl:48px;
  --sh:0 16px 36px rgba(15,110,116,.11);
  --sh-s:0 8px 20px rgba(15,110,116,.10);
  --ease:cubic-bezier(.3,.7,.2,1);
  --sec:clamp(84px,9.5vw,132px);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html,body{margin:0;overflow-x:clip}
body{font-family:var(--jp);font-weight:500;color:var(--ink);background:var(--white);font-size:16px;line-height:1.9;font-feature-settings:"palt";letter-spacing:.02em;line-break:strict;word-break:auto-phrase;overflow-wrap:anywhere}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
button{font:inherit;color:inherit}
p,ul,ol,dl,figure,h1,h2,h3,h4{margin:0}
ul,ol{padding:0;list-style:none}
[id]{scroll-margin-top:92px}
:focus-visible{outline:3px solid var(--or);outline-offset:3px;border-radius:10px}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.center{text-align:center}
.i{width:1.15em;height:1.15em;flex:none;vertical-align:-.18em;fill:currentColor}
svg.i{color:inherit}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--teal-d);color:#fff;padding:10px 16px;border-radius:999px;font-weight:700;text-decoration:none}
.skip:focus{top:12px}
br.pc{display:inline}
p,li,dd,figcaption{text-wrap:pretty}

/* ---------- type ---------- */
.h2{font-weight:900;color:var(--teal-d);font-size:clamp(27px,3.3vw,42px);line-height:1.45;letter-spacing:.03em;word-break:keep-all;overflow-wrap:anywhere;text-wrap:balance}
.h2--s{font-size:clamp(23px,2.5vw,32px)}
.h3{font-weight:900;color:var(--teal-d);font-size:clamp(21px,2.1vw,27px);line-height:1.5;word-break:keep-all;word-break:auto-phrase;overflow-wrap:anywhere;text-wrap:balance;margin:12px 0 14px}
.lead{color:var(--ink-2);font-size:16.5px;margin-top:18px;max-width:36em}
.tag{display:inline-flex;align-items:center;gap:6px;background:var(--teal);color:#fff;font-size:13px;font-weight:700;letter-spacing:.06em;border-radius:999px;padding:3px 14px;line-height:1.7}
.tag--soft{background:var(--mist);color:var(--teal-d)}
.mist .tag--soft,.sec--mist .tag--soft{background:#fff}
.note{display:flex;gap:10px;align-items:flex-start;background:var(--mist-0);border:2px dashed var(--mist-2);border-radius:var(--r-m);padding:14px 18px;font-size:13.5px;line-height:1.8;color:var(--ink-2);margin-top:22px}
.note .i{color:var(--teal);margin-top:4px}
.cap{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;line-height:1.7;color:var(--ink-2);margin-top:14px;padding:0 6px}
.cap .i{color:var(--or-t);margin-top:2px}

/* section heading component */
.sh{max-width:760px}
.sh--c{margin:0 auto;text-align:center}
.sh--c .lead{margin-left:auto;margin-right:auto}
.sh__ic{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:#fff;color:var(--teal);box-shadow:inset 0 0 0 2.5px var(--mist-2);margin-bottom:14px;transform:rotate(-6deg)}
.sec--mist .sh__ic{box-shadow:none}
.sh__ic svg{width:40px;height:40px}
.sh__ic--line{color:var(--line-ui)}
.squig{display:block;width:180px;height:16px;margin:12px 0 0;overflow:visible}
.sh--c .squig{margin-left:auto;margin-right:auto}
.squig path{fill:none;stroke:var(--or);stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round}
.js .squig path{stroke-dasharray:320;stroke-dashoffset:320;transition:stroke-dashoffset 1.3s .2s var(--ease)}
.js .in .squig path,.js .squig.in path,.js .hero .squig path{stroke-dashoffset:0}
.js .hero .squig path{transition:none;animation:draw 1.4s .55s var(--ease) both}
@keyframes draw{from{stroke-dashoffset:320}to{stroke-dashoffset:0}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 28px;border-radius:999px;font-weight:900;font-size:17px;letter-spacing:.04em;line-height:1.3;text-decoration:none;text-align:center;border:0;cursor:pointer;transition:transform .25s var(--ease),box-shadow .25s var(--ease),background-color .2s}
.btn:hover{transform:translateY(-3px)}
.btn:active{transform:translateY(2px)}
.btn .i{width:22px;height:22px}
.btn--sm{min-height:44px;padding:0 18px;font-size:14.5px;gap:8px}
.btn--sm .i{width:20px;height:20px}
.btn--lg{min-height:62px;padding:0 30px;font-size:18px}
.btn--xl{min-height:72px;padding:0 40px;font-size:20px}
.btn--line{background:var(--line-ui);color:#fff;box-shadow:0 6px 0 var(--line-sh)}
.btn--line:hover{box-shadow:0 9px 0 var(--line-sh)}
.btn--line:active{box-shadow:0 2px 0 var(--line-sh)}
.btn__badge{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#fff;flex:none}
.btn__badge svg{width:22px;height:22px;color:var(--line)}
.btn--xl .btn__badge{width:38px;height:38px}
.btn--xl .btn__badge svg{width:26px;height:26px}
.btn--ghost{background:#fff;color:var(--teal-d);box-shadow:inset 0 0 0 2.5px var(--teal),0 6px 0 var(--mist-2)}
.btn--ghost:hover{box-shadow:inset 0 0 0 2.5px var(--teal),0 9px 0 var(--mist-2)}
.btn--ghost .i{color:var(--teal)}
.btn--teal{background:var(--teal);color:#fff;box-shadow:0 6px 0 var(--teal-d)}
.btn--teal:hover{box-shadow:0 9px 0 var(--teal-d)}
.btn--or{background:var(--or-d);color:#fff;box-shadow:0 6px 0 #B34A00;font-size:20px}
.btn--or:hover{box-shadow:0 9px 0 #B34A00}
.btn--or .num{font-family:var(--num);font-weight:900;font-size:22px;letter-spacing:.03em}
.btns{display:flex;flex-wrap:wrap;gap:16px 18px;margin-top:26px}
.btns--c{justify-content:center}
.more{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:700;color:var(--teal);text-decoration:none;font-size:15px}
.more svg{width:22px;height:22px;padding:3px;border-radius:50%;background:var(--mist);color:var(--teal);transition:transform .25s var(--ease)}
.more:hover{text-decoration:underline;text-underline-offset:4px}
.more:hover svg{transform:translateX(3px)}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:box-shadow .3s}
.hdr.is-scrolled{box-shadow:0 6px 24px rgba(15,110,116,.10)}
.hdr__in{display:flex;align-items:center;justify-content:space-between;gap:16px;height:78px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex:none}
.brand__mk{width:46px;height:46px;border-radius:50%;background:var(--or-d);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:25px;line-height:1;box-shadow:0 4px 0 #C25000}
.brand__tx{display:flex;flex-direction:column;line-height:1.25}
.brand__tx b{font-weight:900;font-size:20px;color:var(--teal-d);letter-spacing:.04em}
.brand__tx small{font-size:12px;color:var(--ink-2);font-weight:700;letter-spacing:.08em}
.nav{display:flex;gap:2px;font-size:14.5px;font-weight:700}
.nav a{display:flex;align-items:center;min-height:44px;text-decoration:none;padding:0 13px;border-radius:999px;color:var(--ink-2);transition:background-color .2s,color .2s}
.nav a:hover{background:var(--mist);color:var(--teal-d)}
.hdr__cta{display:flex;align-items:center;gap:14px}
.hdr__tel{display:flex;align-items:center;gap:6px;font-family:var(--num);font-weight:900;font-size:19px;color:var(--teal-d);text-decoration:none;min-height:44px;letter-spacing:.02em}
.hdr__tel .i{color:var(--or-t);width:18px;height:18px}
.burger{display:none;width:48px;height:48px;border-radius:50%;border:0;background:var(--mist);cursor:pointer;position:relative;flex:none}
.burger span{position:absolute;left:14px;right:14px;height:2.6px;border-radius:2px;background:var(--teal-d);transition:transform .3s var(--ease),opacity .2s}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:23px}.burger span:nth-child(3){top:30px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mnav{background:#fff;border-top:2px dashed var(--mist-2);padding:10px 20px 24px;max-height:calc(100vh - 70px);overflow:auto}
.mnav[hidden]{display:none}
.mnav ul{display:grid;gap:2px}
.mnav li a{display:flex;align-items:center;min-height:50px;padding:0 14px;border-radius:var(--r-s);text-decoration:none;font-weight:700;color:var(--ink)}
.mnav li a:hover{background:var(--mist)}
.mnav__cta{display:grid;gap:14px;margin-top:16px}

/* ---------- hero ---------- */
.hero{position:relative;padding:34px 0 150px;overflow:hidden;background:
  radial-gradient(circle at 86% 30%,var(--mist) 0 22%,transparent 22.2%),
  radial-gradient(circle at 104% 82%,var(--mist-0) 0 14%,transparent 14.2%),#fff}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:40px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:8px;background:var(--mist);color:var(--teal-d);font-weight:700;font-size:14.5px;padding:5px 18px 5px 12px;border-radius:999px;margin-bottom:22px}
.pill .i{width:24px;height:24px;color:var(--teal)}
.hero__h1{font-weight:900;color:var(--teal-d);font-size:clamp(32px,4.1vw,56px);line-height:1.34;letter-spacing:.03em;word-break:keep-all;overflow-wrap:anywhere}
.hero__h1 .ln{display:block}
.js .hero__h1 .ln{animation:pop .9s var(--ease) both}
.js .hero__h1 .ln+.ln{animation-delay:.14s}
@keyframes pop{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.squig--hero{width:min(300px,80%);height:20px;margin:14px 0 4px}
.squig--hero path{stroke-width:5.5}
.hero__who{font-weight:900;font-size:clamp(18px,1.75vw,23px);color:var(--ink);margin-top:12px;word-break:keep-all;line-height:1.6}
.hero__sub{color:var(--ink-2);font-size:16px;margin-top:14px;max-width:31em}
.hero__cta{display:flex;flex-wrap:wrap;gap:16px 16px;margin-top:28px}
.js .hero__who,.js .hero__sub,.js .hero__cta,.js .okrow,.js .hero__tel{animation:pop .9s var(--ease) both}
.js .hero__who{animation-delay:.32s}.js .hero__sub{animation-delay:.42s}.js .hero__cta{animation-delay:.52s}.js .okrow,.js .hero__tel{animation-delay:.62s}
.okrow{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:22px;font-size:14.5px;font-weight:700;color:var(--teal-d)}
.okrow li{display:flex;align-items:center;gap:6px}
.okrow .i{width:20px;height:20px;padding:3px;border-radius:50%;background:var(--or-d);color:#fff}
.hero__tel{margin-top:4px;font-size:14.5px;color:var(--ink-2)}
.hero__tel a{font-family:var(--num);font-weight:900;font-size:19px;color:var(--teal-d);text-decoration:none;display:inline-flex;align-items:center;min-height:44px;padding:0 4px}
.hero__tel a:hover{text-decoration:underline}

.hero__vis{position:relative;aspect-ratio:1/1;max-width:540px;width:100%;justify-self:center}
.orbit{position:absolute;inset:-2%;width:104%;height:104%;animation:spin 70s linear infinite}
.orbit circle{fill:none;stroke:var(--sea);stroke-width:2.6;stroke-dasharray:2 13;stroke-linecap:round}
@keyframes spin{to{transform:rotate(360deg)}}
.hero__main{position:absolute;inset:6% 4% 8% 8%}
.rph{border-radius:50%;overflow:hidden;background:var(--mist);border:8px solid #fff;box-shadow:var(--sh)}
.rph img{width:100%;height:100%;object-fit:cover}
.rph--hero{width:100%;height:100%;animation:morph 16s ease-in-out infinite alternate}
.rph--hero img{object-position:49% 28%;transform:scale(1.32);transform-origin:50% 34%}
@keyframes morph{0%{border-radius:50% 50% 50% 50%/50% 50% 50% 50%}35%{border-radius:54% 46% 52% 48%/48% 54% 46% 52%}70%{border-radius:47% 53% 46% 54%/53% 47% 55% 45%}100%{border-radius:51% 49% 55% 45%/46% 52% 48% 54%}}
.nametag{position:absolute;left:50%;bottom:-4%;transform:translateX(-50%) rotate(-2deg);background:#fff;border-radius:999px;padding:8px 26px 9px;text-align:center;font-weight:900;font-size:20px;color:var(--teal-d);white-space:nowrap;box-shadow:var(--sh-s);line-height:1.35;border:2.5px solid var(--mist-2)}
.nametag small{display:block;font-size:12px;color:var(--ink-2);font-weight:700;letter-spacing:.06em}
.hero__door{position:absolute;left:-5%;bottom:-2%;width:31%;text-align:center}
.rph--door{aspect-ratio:1/1;border-width:6px}
.rph--door img{object-position:30% 30%;transform:scale(1.55);transform-origin:24% 30%}
.hero__door figcaption{display:inline-block;margin-top:8px;font-size:12.5px;font-weight:700;color:var(--teal-d);background:var(--peach);border-radius:999px;padding:2px 12px;line-height:1.7;white-space:nowrap}
.sticker{position:absolute;display:flex;align-items:center;justify-content:center;text-align:center;border-radius:50%;font-weight:900;line-height:1.3;box-shadow:0 10px 22px rgba(15,110,116,.16);animation:bob 4.6s ease-in-out infinite}
.sticker b{display:block;font-family:var(--num);line-height:1.05}
.st-ok{width:126px;height:126px;background:var(--teal);color:#fff;right:-2%;top:2%;font-size:15px;transform:rotate(8deg)}
.st-ok b{font-size:34px;margin-top:2px}
.st-time{width:120px;height:120px;background:#fff;color:var(--teal-d);right:-4%;bottom:22%;font-size:12.5px;box-shadow:inset 0 0 0 3px var(--or),0 10px 22px rgba(15,110,116,.14);transform:rotate(-7deg);animation-delay:-2.2s}
.st-time b{font-size:30px;color:var(--or-d);margin:2px 0}
.st-time small{font-size:12.5px;font-weight:900}
@keyframes bob{50%{translate:0 -9px}}
.doodle{position:absolute;pointer-events:none}
.d-plaster{width:78px;height:34px;color:var(--teal);left:6%;top:4%;transform:rotate(-24deg)}
.d-spark{width:42px;height:42px;color:var(--teal);right:24%;top:-5%;animation:twinkle 3.2s ease-in-out infinite}
@keyframes twinkle{50%{transform:scale(.8) rotate(10deg)}}

.facts{display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:46px;position:relative;z-index:2}
.facts li{display:inline-flex;align-items:center;gap:8px;background:#fff;border:2px solid var(--mist-2);border-radius:999px;padding:6px 16px 6px 10px;font-weight:700;font-size:14.5px;color:var(--teal-d)}
.facts .i{width:24px;height:24px;color:var(--teal)}
.waves{position:absolute;left:0;right:0;bottom:-1px;height:120px;overflow:hidden;pointer-events:none}
.waves svg{position:absolute;bottom:0;left:0;width:200%;height:100%}
.waves .w1{fill:var(--mist-2);animation:drift 22s linear infinite}
.waves .w2{fill:var(--mist);animation:drift 14s linear infinite reverse}
@keyframes drift{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
.sec{position:relative;padding:var(--sec) 0}
.sec--mist{background:var(--mist)}
.sec--mist::before,.sec--mist::after{content:"";position:absolute;left:0;right:0;height:36px;pointer-events:none;z-index:1;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 36' preserveAspectRatio='none'%3E%3Cpath d='M0 36V20C130 4 250 2 370 12s250 22 380 10 250-20 380-12 220 16 310 8V36z' fill='%23E4F1F0'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.sec--mist::before{top:-35px}
.sec--mist::after{bottom:-35px;transform:scaleY(-1) scaleX(-1)}
.who::before{display:none}

/* ---------- who ---------- */
.who{padding-top:56px}
.who__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:52px}
.wcard{position:relative;background:#fff;border-radius:var(--r-l);padding:34px 30px 26px;box-shadow:var(--sh);display:flex;flex-direction:column;align-items:flex-start;transition:transform .35s var(--ease)}
.wcard:hover{transform:translateY(-5px)}
.wcard__art{width:104px;height:104px;border-radius:50%;background:var(--mist);display:flex;align-items:center;justify-content:center;color:var(--teal);margin-bottom:18px}
.wcard:nth-child(2) .wcard__art{border-radius:46% 54% 52% 48%/55% 46% 54% 45%}
.wcard:nth-child(3) .wcard__art{border-radius:55% 45% 48% 52%/46% 56% 44% 54%}
.wcard__art svg{width:66px;height:66px}
.wcard h3{font-weight:900;font-size:22px;color:var(--teal-d);margin:12px 0 8px;line-height:1.5;word-break:keep-all}
.wcard p{font-size:15px;color:var(--ink-2);line-height:1.85;flex:1}
.wcard .more{margin-top:14px}
.who__note{display:flex;align-items:center;justify-content:center;gap:10px;margin:40px auto 0;width:fit-content;max-width:100%;background:#fff;border-radius:999px;padding:10px 24px;font-weight:700;color:var(--teal-d);font-size:15.5px;word-break:keep-all}
.who__note .i{width:26px;height:26px;color:var(--teal)}

/* ---------- approach (echo / exercise) ---------- */
.feat{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,5vw,72px);align-items:center;margin-top:64px}
.feat + .feat{margin-top:96px}
.feat--rev .feat__media{order:2}
.feat__media{position:relative}
.blobph{border-radius:150px 64px 150px 40px/130px 64px 130px 40px;overflow:hidden;aspect-ratio:1/1;box-shadow:var(--sh);border:8px solid #fff;animation:morph2 18s ease-in-out infinite alternate}
.blobph img{width:100%;height:100%;object-fit:cover;object-position:22% 50%}
@keyframes morph2{50%{border-radius:130px 80px 160px 40px/150px 70px 120px 40px}100%{border-radius:160px 56px 130px 44px/120px 80px 150px 40px}}
.archph{border-radius:999px 999px var(--r-l) var(--r-l);overflow:hidden;box-shadow:var(--sh);border:8px solid #fff;max-width:440px;margin:0 auto;aspect-ratio:4/5;background:var(--mist)}
.archph img{width:100%;height:100%;object-fit:cover}
.feat--rev .archph img{object-position:50% 52%}
.feat--rev .feat__media .cap{max-width:440px;margin-left:auto;margin-right:auto}
.feat__txt p{color:var(--ink-2)}
.trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:26px;text-align:center}
.trio li{display:flex;flex-direction:column;align-items:center;font-size:13px;line-height:1.6;color:var(--ink-2)}
.trio b{display:block;color:var(--teal-d);font-size:15px;font-weight:900;margin-top:10px;word-break:keep-all}
.trio__ph{width:104px;height:104px;border-radius:50%;overflow:hidden;border:5px solid #fff;box-shadow:0 0 0 2.5px var(--mist-2),var(--sh-s);background:var(--mist);display:flex;align-items:center;justify-content:center}
.trio__ph img{width:100%;height:100%;object-fit:cover}
.trio li:nth-child(1) img{object-position:45% 55%}
.trio li:nth-child(2) img{object-position:50% 38%;transform:scale(1.5);transform-origin:50% 36%}
.trio__ph--art{color:var(--teal)}
.trio__ph--art svg{width:58px;height:58px}
.ticks{display:grid;gap:14px;margin-top:24px}
.ticks li{display:flex;gap:14px;align-items:flex-start;background:var(--mist-0);border-radius:var(--r-m);padding:14px 18px;font-size:14.5px;color:var(--ink-2);line-height:1.75}
.ticks b{display:block;color:var(--teal-d);font-size:16px;font-weight:900}
.ticks__ic{flex:none;width:48px;height:48px;border-radius:50%;background:#fff;color:var(--teal);display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 2px var(--mist-2)}
.ticks__ic svg{width:32px;height:32px}

/* ---------- rehab ---------- */
.rehab__head{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:48px;align-items:center}
.rehab__goal{text-align:center;justify-self:center;width:100%;max-width:340px}
.rph--goal{aspect-ratio:1/1;width:100%}
.rph--goal img{object-position:50% 58%}
.rehab__goal .cap{justify-content:center;font-weight:700;color:var(--teal-d);font-size:15px}
.stages{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin-top:64px;counter-reset:st}
.stages::before{content:"";position:absolute;left:8%;right:8%;top:52px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 16' preserveAspectRatio='none'%3E%3Cpath d='M2 8c30-7 50 6 80 0s50-7 80 0 50 7 80 0 50-7 80 0 48 6 76 0' fill='none' stroke='%237BC4C0' stroke-width='3' stroke-dasharray='2 9' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.stage{position:relative;background:#fff;border-radius:var(--r-l);padding:24px 18px 24px;text-align:center;box-shadow:var(--sh-s)}
.stage__ic{display:flex;align-items:center;justify-content:center;width:80px;height:80px;margin:-6px auto 0;border-radius:50%;background:var(--mist);color:var(--teal)}
.stage__ic svg{width:52px;height:52px}
.stage__no{position:absolute;top:14px;left:14px;width:38px;height:38px;border-radius:50%;background:var(--or-d);color:#fff;font-family:var(--num);font-weight:900;font-size:20px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 0 #B34A00}
.stage:last-child .stage__ic{background:var(--peach)}
.stage h3{font-weight:900;font-size:18.5px;color:var(--teal-d);margin:14px 0 6px;line-height:1.5;word-break:keep-all}
.stage p{font-size:14px;color:var(--ink-2);line-height:1.75}
.stages__note{margin-top:22px;font-size:13.5px;color:var(--ink-2);text-align:center}
.share{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:center;margin-top:64px;background:#fff;border-radius:var(--r-xl);padding:clamp(22px,3.4vw,44px);box-shadow:var(--sh)}
.share__media{display:grid;gap:12px;background:var(--mist-0);border-radius:var(--r-l);padding:14px}
.share__ph{position:relative;border-radius:var(--r-m);overflow:hidden;background:#111}
.share__ph img{width:100%;height:auto}
.share__lbl{position:absolute;left:10px;top:10px;background:rgba(255,255,255,.92);color:var(--teal-d);font-size:12.5px;font-weight:900;border-radius:999px;padding:2px 12px;line-height:1.7}
.share__cap{font-size:12.5px;color:var(--ink-2);line-height:1.7;padding:2px 4px 0}
.share__txt .h3{margin-top:12px}
.share__txt p{color:var(--ink-2)}
.share__note{display:block;margin-top:14px;font-size:13px!important;line-height:1.8;background:var(--mist-0);border-left:4px solid var(--sea);border-radius:0 12px 12px 0;padding:10px 14px}

/* ---------- team ---------- */
.team__grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(32px,4.6vw,64px);margin-top:56px;align-items:start}
.archph--room{aspect-ratio:3/4.4;max-width:460px}
.archph--room img{object-position:42% 40%}
.room .cap{max-width:460px;margin-left:auto;margin-right:auto}
.team__side{display:grid;gap:22px}
.room__txt .h3{margin-top:0}
.room__txt p{color:var(--ink-2)}
.scard{display:flex;gap:22px;align-items:center;background:var(--mist);border-radius:var(--r-l);padding:22px 26px 22px 22px}
.scard__ph{flex:none;width:132px;height:132px;border-radius:50%;overflow:hidden;border:6px solid #fff;box-shadow:var(--sh-s)}
.scard__ph img{width:100%;height:100%;object-fit:cover;object-position:49% 26%;transform:scale(1.25);transform-origin:50% 28%}
.scard__ph--nk img{object-position:50% 42%;transform:none}
.scard__ph--nakao img{object-position:38% 34%;transform:scale(1.15);transform-origin:36% 40%}
.scard h3{font-weight:900;font-size:23px;color:var(--ink);margin:8px 0 4px;line-height:1.4}
.scard h3 small{font-size:12.5px;color:var(--ink-2);font-weight:700;margin-left:10px;letter-spacing:.06em}
.scard p{font-size:14.5px;color:var(--ink-2);line-height:1.8}
.scard .tag--soft{background:#fff}
.scard__q{font-weight:900;color:var(--teal-d)!important;font-size:15.5px!important;margin-bottom:4px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips li{display:inline-flex;align-items:center;gap:7px;border:2px solid var(--mist-2);border-radius:999px;padding:5px 16px 5px 11px;font-size:14px;font-weight:700;color:var(--teal-d)}
.chips .i{width:22px;height:22px;color:var(--teal)}

/* ---------- flow + price ---------- */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin-top:56px;position:relative}
.step{position:relative;background:#fff;border-radius:var(--r-l);padding:30px 22px 26px;text-align:center;box-shadow:var(--sh-s)}
.step:not(:last-child)::after{content:"";position:absolute;right:-19px;top:66px;width:16px;height:16px;border-top:3.5px solid var(--or);border-right:3.5px solid var(--or);border-radius:3px;transform:rotate(45deg);z-index:2}
.step__no{position:absolute;top:-16px;left:50%;transform:translateX(-50%);width:40px;height:40px;border-radius:50%;background:var(--or-d);color:#fff;font-family:var(--num);font-weight:900;font-size:20px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 0 #B34A00}
.step__ic{display:flex;align-items:center;justify-content:center;width:84px;height:84px;margin:6px auto 0;border-radius:50%;background:var(--mist);color:var(--teal)}
.step__ic svg{width:54px;height:54px}
.step h3{font-weight:900;font-size:18px;color:var(--teal-d);margin:14px 0 8px;line-height:1.5;word-break:keep-all}
.step p{font-size:14.5px;color:var(--ink-2);line-height:1.8;text-align:left}
.price{margin-top:76px}
.price__h{display:flex;align-items:center;justify-content:center;gap:10px;font-weight:900;font-size:24px;color:var(--teal-d)}
.price__h .i{width:34px;height:34px;color:var(--teal)}
.price__h small{font-size:15px;color:var(--ink-2)}
.price__grid{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:22px;margin-top:28px}
.pcard{background:#fff;border-radius:var(--r-l);padding:28px 28px 26px;box-shadow:var(--sh-s);display:flex;flex-direction:column;align-items:flex-start}
.pcard h4{font-weight:900;font-size:20px;color:var(--ink);margin-top:14px}
.pcard h4 small{font-size:14px;color:var(--ink-2);font-weight:700}
.pcard__yen{font-weight:900;color:var(--teal-d);font-size:17px;margin:4px 0 8px;line-height:1.2}
.pcard__yen b{font-family:var(--num);font-size:52px;letter-spacing:.01em;color:var(--teal-d);margin-right:4px}
.pcard p{font-size:14.5px;color:var(--ink-2);line-height:1.8}
.pcard .tag--soft{background:var(--mist)}
.pcard--info{gap:18px;background:var(--white)}
.pinfo + .pinfo{border-top:2px dashed var(--mist-2);padding-top:16px;width:100%}
.pinfo h4{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:17px;color:var(--teal-d)}
.pinfo h4 .i{width:26px;height:26px;color:var(--teal)}
.price .center{margin-top:32px}

/* ---------- parents ---------- */
.parents__grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:center}
.letter{position:relative;background:#fff;border-radius:var(--r-xl);padding:clamp(34px,4.4vw,56px);border:3px dashed var(--sea);box-shadow:0 0 0 12px var(--mist-0)}
.letter__tape{position:absolute;top:-16px;left:50%;width:120px;height:30px;transform:translateX(-50%) rotate(-3deg);background:rgba(255,122,26,.35);border-radius:4px}
.letter__to{display:inline-flex;align-items:center;gap:8px;font-weight:900;color:var(--or-t);font-size:16px;margin-bottom:10px}
.letter__to .i{width:28px;height:28px;color:var(--teal)}
.letter__body{color:var(--ink-2);margin-top:16px}
.pts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:26px}
.pts li{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--ink-2);line-height:1.75;background:var(--mist-0);border-radius:var(--r-m);padding:14px 16px}
.pts b{display:block;color:var(--teal-d);font-size:15.5px;font-weight:900;line-height:1.55;margin-bottom:2px}
.pts__ic{flex:none;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--teal);display:flex;align-items:center;justify-content:center}
.pts__ic svg{width:30px;height:30px}
.colm__card{display:block;background:var(--mist);border-radius:var(--r-l);overflow:hidden;text-decoration:none;box-shadow:var(--sh-s);transition:transform .3s var(--ease)}
.colm__card:hover{transform:translateY(-4px)}
.colm__ph{display:block;aspect-ratio:3/2;overflow:hidden}
.colm__ph img{width:100%;height:100%;object-fit:cover}
.colm__tx{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:20px 24px 18px}
.colm__tx > b{font-weight:900;font-size:17px;color:var(--ink);line-height:1.6;word-break:keep-all}
.colm__tx .tag--soft{background:#fff}

/* ---------- jiko ---------- */
.jiko__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(30px,5vw,72px);align-items:center}
.jiko__art{position:relative;aspect-ratio:1/1;max-width:400px;width:100%;justify-self:center;border-radius:50%;background:#fff;box-shadow:var(--sh)}
.jiko__road{position:absolute;left:6%;right:6%;width:88%;top:58%;height:auto}
.jiko__road path{fill:none;stroke:var(--mist-2);stroke-width:7;stroke-linecap:round;stroke-dasharray:18 16}
.jiko__car{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);color:var(--teal);animation:bob 5s ease-in-out infinite}
.jiko__car svg{width:200px;height:200px}
.d-spark2{width:52px;height:52px;color:var(--teal);right:16%;top:16%;animation:twinkle 3.6s ease-in-out infinite}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:30px}
.stats li{background:#fff;border-radius:var(--r-l);padding:20px 16px;text-align:center;box-shadow:var(--sh-s);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}
.stats b{font-weight:900;color:var(--teal-d);font-size:19px;line-height:1.4}
.stats__big{font-family:var(--num);font-size:48px!important;color:var(--or-d)!important;line-height:1!important}
.stats__big small{font-family:var(--jp);font-size:20px;margin-left:2px}
.stats span{font-size:13px;color:var(--ink-2);line-height:1.65}
.jiko__txt .btn{margin-top:26px}

/* ---------- LINE ---------- */
.line{padding-top:calc(var(--sec) + 10px)}
.line__panel{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(30px,4vw,60px);background:linear-gradient(180deg,#EAF7EF 0%,var(--mist-0) 100%);border-radius:var(--r-xl);padding:clamp(28px,4.6vw,64px);border:3px solid #CDEBD8}
.say{margin-top:30px;background:#fff;border-radius:var(--r-l);padding:24px 24px 18px;box-shadow:var(--sh-s)}
.say__t{font-weight:900;color:var(--ink);font-size:16.5px;word-break:keep-all}
.say__t span{display:block;font-size:12.5px;color:var(--ink-2);font-weight:700}
.say__list{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:14px}
.bubble{position:relative;display:inline-flex;align-items:center;gap:10px;min-height:46px;text-align:left;background:#E9F8EE;border:2px solid #BFE6CC;border-radius:22px 22px 22px 6px;padding:8px 16px 8px 18px;font-weight:700;font-size:15px;line-height:1.55;color:var(--ink);cursor:pointer;transition:transform .2s var(--ease),background-color .2s,border-color .2s}
.bubble .i{color:var(--line-ui);width:18px;height:18px}
.bubble:hover{background:#DDF3E4;transform:translateX(3px)}
.bubble.is-copied{background:#fff;border-color:var(--line-ui)}
.say__toast{min-height:1.8em;margin-top:8px;font-size:13.5px;font-weight:700;color:var(--line-ui)}
.lfeat{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}
.lfeat li{display:flex;gap:12px;align-items:center;background:#fff;border-radius:var(--r-m);padding:12px 14px;font-size:13px;color:var(--ink-2);line-height:1.6}
.lfeat b{display:block;font-size:15px;color:var(--teal-d);font-weight:900}
.lfeat__ic{flex:none;width:44px;height:44px;border-radius:50%;background:var(--mist);color:var(--teal);display:flex;align-items:center;justify-content:center}
.lfeat__ic svg{width:30px;height:30px}
.line__go{margin-top:32px}
.line__side{display:flex;flex-direction:column;gap:22px}
.gift{position:relative;background:#fff;border-radius:var(--r-l);padding:28px 26px 24px;box-shadow:var(--sh);text-align:center}
.st-gift{width:96px;height:96px;background:var(--or-d);color:#fff;top:-24px;right:-14px;font-size:13px;transform:rotate(10deg);z-index:2}
.st-gift b{font-family:var(--jp);font-size:21px;margin-top:2px}
.gift__ph{width:62%;margin:0 auto;transform:rotate(-4deg);box-shadow:0 14px 30px rgba(15,110,116,.18);border-radius:6px;overflow:hidden;border:1px solid var(--mist-2)}
.gift__h{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:900;font-size:17px;color:var(--teal-d);margin:22px 0 6px;line-height:1.5;word-break:keep-all}
.gift__h .i{width:28px;height:28px;color:var(--teal)}
.gift p{font-size:14px;color:var(--ink-2);line-height:1.8;text-align:left}
.qr{display:flex;align-items:center;gap:18px;background:#fff;border-radius:var(--r-l);padding:16px 22px 16px 16px;box-shadow:var(--sh-s)}
.qr img{width:112px;height:112px;flex:none;border-radius:10px}
.qr p{font-size:14px;font-weight:700;color:var(--ink);line-height:1.7}

/* ---------- instagram ---------- */
.ig{padding-top:20px}
.ig__card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(22px,3.4vw,44px);align-items:center;background:#fff;border-radius:var(--r-xl);padding:clamp(26px,3.6vw,44px);border:3px dashed var(--mist-2)}
.ig__art{width:132px;height:132px;border-radius:38px;background:var(--peach);color:var(--teal);display:flex;align-items:center;justify-content:center;transform:rotate(-6deg)}
.ig__art svg{width:84px;height:84px}
.ig__txt p{color:var(--ink-2);margin-top:10px;font-size:15px}
.igchips{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:14px}
.igchips li{display:inline-flex;align-items:center;gap:6px;background:var(--mist);border-radius:999px;padding:4px 14px 4px 10px;font-size:13.5px;font-weight:700;color:var(--teal-d)}
.igchips .i{width:22px;height:22px;color:var(--teal)}
.ig__go{text-align:center}
.ig__handle{font-family:var(--num);font-weight:900;color:var(--teal-d);font-size:17px;margin-bottom:12px;letter-spacing:.02em}

/* ---------- FAQ ---------- */
.faq__wrap{max-width:900px}
.qa{display:grid;gap:14px;margin-top:44px}
.qa details{background:#fff;border-radius:var(--r-l);box-shadow:var(--sh-s);overflow:hidden}
.qa summary{display:flex;align-items:center;gap:14px;min-height:64px;padding:12px 60px 12px 18px;font-weight:900;font-size:16.5px;color:var(--ink);cursor:pointer;list-style:none;position:relative;line-height:1.55}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";position:absolute;right:24px;top:50%;width:12px;height:12px;border-right:3px solid var(--teal);border-bottom:3px solid var(--teal);border-radius:2px;transform:translateY(-70%) rotate(45deg);transition:transform .3s var(--ease)}
.qa details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.qa summary:hover{color:var(--teal-d)}
.qa__q{flex:none;width:38px;height:38px;border-radius:50%;background:var(--teal);color:#fff;font-family:var(--num);font-weight:900;font-size:19px;display:flex;align-items:center;justify-content:center}
.qa__a{padding:0 26px 22px 70px}
.qa__a p{color:var(--ink-2);font-size:15px;position:relative}
.faq .center{margin-top:24px}

/* ---------- access ---------- */
.access__grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,5vw,72px);align-items:center}
.access__grid > *,.feat > *,.team__grid > *,.jiko__grid > *,.line__panel > *,.parents__grid > *,.rehab__head > *,.share > *,.hero__grid > *{min-width:0}
.archph--door{aspect-ratio:3/4;max-width:420px}
.archph--door img{object-position:0 55%;transform:scale(1.08);transform-origin:0 50%}
.access__ph .cap{max-width:420px;margin-left:auto;margin-right:auto}
.hours{margin-top:28px;overflow-x:auto}
.hours table{width:100%;min-width:480px;border-collapse:separate;border-spacing:0;background:#fff;border-radius:var(--r-m);overflow:hidden;box-shadow:inset 0 0 0 2px var(--mist-2);font-size:14.5px;text-align:center}
.hours caption{text-align:left;font-weight:900;color:var(--teal-d);font-size:16px;padding-bottom:8px}
.hours th,.hours td{padding:12px 6px;border-bottom:2px solid var(--mist)}
.hours tbody tr:last-child th,.hours tbody tr:last-child td{border-bottom:0}
.hours thead th{background:var(--mist);color:var(--teal-d);font-weight:900}
.hours tbody th{font-family:var(--num);font-weight:900;color:var(--ink);white-space:nowrap;padding-left:14px;padding-right:14px}
.hours .on{display:inline-block;width:16px;height:16px;border-radius:50%;background:var(--or);vertical-align:middle}
.hours td.off{color:var(--ink-2);font-weight:700}
.hours__note{font-size:13px;color:var(--ink-2);margin-top:8px}
.info{display:grid;gap:0;margin-top:20px;border-top:2px dashed var(--mist-2)}
.info div{display:grid;grid-template-columns:5.5em 1fr;gap:12px;padding:12px 4px;border-bottom:2px dashed var(--mist-2);font-size:15px}
.info dt{font-weight:900;color:var(--teal-d)}
.info dd{margin:0;color:var(--ink)}
.info__tel{display:inline-flex;align-items:center;min-height:44px;font-family:var(--num);font-weight:900;font-size:19px;color:var(--teal-d);text-decoration:none}
.info__tel:hover{text-decoration:underline}

/* ---------- final ---------- */
.final{padding:0 0 var(--sec)}
.final__box{position:relative;overflow:hidden;background:var(--peach);border-radius:var(--r-xl);padding:clamp(44px,6vw,80px) clamp(22px,5vw,64px);text-align:center}
.final__box::before,.final__box::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.final__box::before{width:300px;height:300px;left:-110px;bottom:-150px;background:rgba(255,122,26,.16)}
.final__box::after{width:220px;height:220px;right:-70px;top:-90px;background:rgba(123,196,192,.28)}
.final__ic{position:relative;display:inline-flex;width:76px;height:76px;border-radius:50%;background:#fff;color:var(--teal);align-items:center;justify-content:center;margin-bottom:16px;box-shadow:var(--sh-s)}
.final__ic svg{width:48px;height:48px}
.final__box .h2{position:relative}
.final__box > p{position:relative;color:var(--ink-2);max-width:34em;margin:16px auto 0;font-size:16.5px}
.final__box .btns{position:relative;margin-top:32px}
.final__small{position:relative;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;margin-top:22px!important;font-size:13.5px!important;font-weight:700;color:var(--ink-2)!important}
.final__small span{white-space:nowrap;display:inline-flex;align-items:center;gap:7px}
.final__small span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--or)}
.d-f1{width:46px;height:46px;color:var(--teal);right:12%;bottom:18%;animation:twinkle 3.4s ease-in-out infinite}
.d-f2{width:84px;height:36px;color:var(--teal);left:9%;top:16%;transform:rotate(-18deg)}

/* ---------- footer ---------- */
.ftr{position:relative;background:var(--teal-d);color:#fff;padding:40px 0 30px;margin-top:40px}
.ftr__wave{position:absolute;left:0;right:0;top:-46px;height:48px}
.ftr__wave svg{width:100%;height:100%;display:block;fill:var(--teal-d)}
.ftr__in{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:40px}
.brand--ftr .brand__tx b{color:#fff}
.brand--ftr .brand__tx small{color:#CFE7E5}
.brand--ftr .brand__mk{box-shadow:none}
.ftr__brand p{font-size:14px;line-height:1.85;margin-top:14px;color:#E4F1F0}
.ftr__brand a{color:#fff;font-weight:700}
.ftr__hours{font-size:13px!important}
.ftr__hours span{white-space:nowrap}
.ftr__nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ftr__nav a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:#fff;text-decoration:none;font-weight:700}
.ftr__nav a:hover{text-decoration:underline;text-underline-offset:4px}
.notice{margin-top:30px;font-size:12.5px;line-height:1.9;color:#E4F1F0;background:rgba(255,255,255,.08);border-radius:var(--r-m);padding:18px 22px}
.copy{margin-top:20px;font-size:12px;color:#CFE7E5}

/* ---------- fixed UI ---------- */
.totop{position:fixed;right:20px;bottom:22px;z-index:70;width:54px;height:54px;border-radius:50%;background:#fff;color:var(--teal);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2.5px var(--mist-2),0 10px 24px rgba(15,110,116,.18);transition:opacity .3s,transform .3s var(--ease),visibility .3s}
.js .totop:not(.show){opacity:0;visibility:hidden;transform:translateY(12px)}
.totop svg{width:26px;height:26px}
.bar{display:none}

/* ---------- reveal ---------- */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .rv.in{opacity:1;transform:none}

/* =========================================================
   responsive
   ========================================================= */
@media (max-width:1160px){
  .nav{display:none}
  .burger{display:block}
}
@media (max-width:1080px){
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}
  .step:nth-child(2)::after{display:none}
  .stages{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:24px}
  .stages::before{display:none}
  .price__grid{grid-template-columns:1fr 1fr}
  .pcard--info{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}
  .pinfo + .pinfo{border-top:0;border-left:2px dashed var(--mist-2);padding:0 0 0 20px}
  .ig__card{grid-template-columns:auto minmax(0,1fr)}
  .ig__go{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 20px}
  .ig__handle{margin:0}
}
@media (max-width:960px){
  .hdr__in{height:68px}
  .hdr__tel{display:none}
  .hdr .btn--sm{min-height:44px;padding:0 14px;font-size:14px}
  .hero{padding:22px 0 120px}
  .hero__grid{grid-template-columns:1fr;gap:34px}
  .hero__vis{max-width:440px}
  .facts{margin-top:40px}
  .who__grid{grid-template-columns:1fr;max-width:560px;margin-left:auto;margin-right:auto}
  .feat,.feat--rev{grid-template-columns:1fr}
  .feat--rev .feat__media{order:0}
  .rehab__head{grid-template-columns:1fr}
  .share{grid-template-columns:1fr}
  .team__grid{grid-template-columns:1fr}
  .parents__grid{grid-template-columns:1fr}
  .colm{max-width:520px}
  .jiko__grid{grid-template-columns:1fr}
  .jiko__art{max-width:300px}
  .jiko__car svg{width:150px;height:150px}
  .line__panel{grid-template-columns:1fr}
  .qr{display:none}
  .access__grid{grid-template-columns:1fr}
  .ftr__in{grid-template-columns:1fr}
  body{padding-bottom:78px}
  .bar{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:80;background:rgba(255,255,255,.97);padding:8px 10px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -6px 22px rgba(15,110,116,.14);border-radius:22px 22px 0 0}
  .bar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:56px;border-radius:16px;text-decoration:none;font-weight:900;font-size:13.5px;line-height:1.3}
  .bar svg{width:22px;height:22px}
  .bar__tel{background:var(--mist);color:var(--teal-d)}
  .bar__tel svg{color:var(--teal)}
  .bar__web{background:var(--teal);color:#fff}
  .bar__line{background:var(--line-ui);color:#fff}
  .bar__line svg{color:#fff}
  .totop{bottom:92px;right:14px;width:50px;height:50px}
}
@media (max-width:640px){
  .wrap{padding:0 20px}
  .hero{background:radial-gradient(circle at 92% 74%,var(--mist) 0 30%,transparent 30.2%),#fff}
  .who__grid{gap:18px;margin-top:40px}
  .wcard{display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:center}
  .wcard__art{width:76px;height:76px;margin:0;grid-row:1/3}
  .wcard__art svg{width:50px;height:50px}
  .wcard .tag{justify-self:start}
  .wcard h3{margin:6px 0 0;font-size:20px}
  .wcard p,.wcard .more{grid-column:1/-1}
  .wcard p{margin-top:12px}
  .who__note{border-radius:var(--r-m);text-align:left;padding:12px 18px;font-size:14.5px}
  .step{display:grid;grid-template-columns:auto 1fr;column-gap:16px;text-align:left;padding:22px 20px 20px;align-items:center}
  .step__no{left:20px;transform:none;top:-14px;width:34px;height:34px;font-size:17px}
  .step__ic{width:68px;height:68px;margin:0}
  .pcard{padding:24px 24px 22px}
  .pcard__yen b{font-size:44px}
  .jiko__art{max-width:230px}
  .jiko__car svg{width:120px;height:120px}
  .d-spark2{width:40px;height:40px}
  .hours table{min-width:0;font-size:13px}
  .hours th,.hours td{padding:10px 2px}
  .hours tbody th{padding:10px 6px 10px 10px;font-size:12.5px}
  .hours .on{width:13px;height:13px}
  .d-f2{width:60px;height:26px;left:6%;top:5%}
  .d-f1{right:6%;bottom:4%}
  .step__ic svg{width:44px;height:44px}
  .step h3{margin:0;font-size:17px}
  .step p{grid-column:1/-1;margin-top:10px}
  .line__panel{padding:26px 18px;border-radius:var(--r-l)}
  .line .h2{font-size:26px}
  .btn--xl .btn__badge{width:32px;height:32px}
  .btn--xl .btn__badge svg{width:22px;height:22px}
  .share{padding:18px}
  .share__media{padding:10px}
  br.pc{display:none}
  .brand__mk{width:42px;height:42px;font-size:22px}
  .brand__tx b{font-size:18px}
  .brand__tx small{font-size:11px}
  .hero__h1{font-size:clamp(30px,8.4vw,40px)}
  .hero__cta .btn{width:100%}
  .hero__vis{max-width:360px;margin-top:6px}
  .st-ok{width:100px;height:100px;font-size:13px}
  .st-ok b{font-size:27px}
  .st-time{width:96px;height:96px;font-size:11px;right:-5%}
  .st-time b{font-size:24px}
  .st-time small{font-size:11px}
  .nametag{font-size:17px;padding:6px 20px 7px}
  .hero__door{width:34%;left:-4%}
  .hero__door figcaption{font-size:11.5px;padding:2px 10px}
  .d-plaster{width:60px;height:26px}
  .facts{gap:8px}
  .facts li{font-size:13.5px;padding:5px 12px 5px 8px}
  .facts .i{width:21px;height:21px}
  .lead{font-size:15.5px}
  .wcard{padding:28px 24px 20px}
  .feat{margin-top:44px}
  .feat + .feat{margin-top:72px}
  .trio{gap:10px}
  .trio__ph{width:84px;height:84px}
  .trio b{font-size:14px}
  .trio li{font-size:12.5px}
  .stages{grid-template-columns:1fr;gap:14px;margin-top:44px}
  .stage{display:grid;grid-template-columns:auto 1fr;column-gap:16px;text-align:left;padding:18px 18px 18px 18px;align-items:center}
  .stage__ic{grid-row:1/3;width:70px;height:70px;margin:0}
  .stage__ic svg{width:44px;height:44px}
  .stage__no{top:auto;bottom:10px;left:58px;width:30px;height:30px;font-size:16px}
  .stage h3{margin:0 0 2px;font-size:18px}
  .scard{flex-direction:column;text-align:center;padding:26px 22px}
  .scard h3 small{display:block;margin:2px 0 0}
  .steps{grid-template-columns:1fr;row-gap:34px}
  .step::after{display:none}
  .price__grid{grid-template-columns:1fr}
  .pcard--info{display:flex}
  .pinfo + .pinfo{border-left:0;border-top:2px dashed var(--mist-2);padding:16px 0 0}
  .pts{grid-template-columns:1fr}
  .letter{box-shadow:0 0 0 8px var(--mist-0)}
  .stats{grid-template-columns:1fr;gap:12px}
  .stats li{flex-direction:row;justify-content:flex-start;text-align:left;gap:16px;padding:16px 20px}
  .stats li > b{flex:none;width:112px}
  .stats li > span{flex:1}
  .stats br{display:none}
  .stats li > b br{display:inline}
  .lfeat{grid-template-columns:1fr}
  .say{padding:20px 16px 14px}
  .bubble{font-size:14.5px}
  .btn--xl{min-height:64px;font-size:17px;padding:0 16px;width:100%;gap:8px}
  .line__go .btn{width:100%}
  .ig__card{grid-template-columns:1fr;text-align:center}
  .ig__art{margin:0 auto;width:104px;height:104px;border-radius:30px}
  .ig__art svg{width:64px;height:64px}
  .igchips{justify-content:center}
  .ig__go{flex-direction:column}
  .qa summary{font-size:15.5px;padding-right:50px}
  .qa__a{padding:0 20px 20px 20px}
  .btns .btn{width:100%}
  .final__box .btn{width:100%}
  .ftr__nav{grid-template-columns:1fr 1fr}
  .info div{grid-template-columns:4.5em 1fr}
}

/* ---------- motion preferences ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv{opacity:1;transform:none}
  .js .squig path{stroke-dashoffset:0}
}

/* =========================================================
   2. 追加部品
   ========================================================= */
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nobr{white-space:nowrap}

/* focus crop: shows one area of a photo at any size (--w = image width, --l/--t = offset, all in % of the frame) */
.fc{position:relative;overflow:hidden}
.fc > img,.scard__ph.fc img,.step__ic--ph.fc img,.person__ph.fc img,.eq__ph.fc img,.archph.fc img{position:absolute;max-width:none;width:var(--w);height:auto;left:var(--l);top:var(--t);transform:none;object-fit:fill}
.fc--nakao-room{--w:222%;--l:-50%;--t:-68%}
.fc--nakao-desk{--w:250%;--l:-45%;--t:-48%}

/* header: current page + LINE button with 「特典」 badge */
.nav a,.hdr__tel{white-space:nowrap}
.nav a[aria-current="page"]{background:var(--mist);color:var(--teal-d)}
.mnav li a[aria-current="page"]{background:var(--mist);color:var(--teal-d)}
.hdr__line{position:relative;white-space:nowrap;padding-right:24px}
.hdr__line .badge{top:-14px;right:-14px}
.badge{position:absolute;top:-12px;right:-10px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--or);color:var(--ink);font-size:11px;font-weight:900;letter-spacing:0;line-height:1;box-shadow:0 0 0 3px #fff;transform:rotate(12deg);animation:bob 3.6s ease-in-out infinite;pointer-events:none}
.mnav__gift{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 16px;border-radius:var(--r-m);background:var(--peach);color:var(--ink);text-decoration:none;font-size:14px;line-height:1.6;box-shadow:inset 0 0 0 2px #FFD2AE}
.mnav__gift .i{width:30px;height:30px;color:var(--teal)}
.mnav__gift b{color:var(--or-t)}

/* hero: LINE gift chip (borrowed from e3) */
.giftchip{display:flex;align-items:center;gap:14px;max-width:470px;margin-top:22px;padding:10px 16px 10px 12px;border-radius:22px;background:var(--peach);color:var(--ink);text-decoration:none;box-shadow:inset 0 0 0 2px #FFD2AE;transition:transform .25s var(--ease),box-shadow .25s}
.giftchip:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 2px var(--or)}
.giftchip__img{flex:none;width:46px;border-radius:5px;overflow:hidden;rotate:-6deg;box-shadow:0 4px 10px rgba(0,0,0,.18);background:#fff}
.giftchip__tx{display:flex;flex-direction:column;line-height:1.45;flex:1;min-width:0}
.giftchip__tx small{font-size:12.5px;font-weight:700;color:var(--or-t)}
.giftchip__tx b{font-size:15.5px;font-weight:900;color:var(--ink);word-break:keep-all;overflow-wrap:anywhere}
.giftchip__go{flex:none;width:26px;height:26px;padding:4px;border-radius:50%;background:#fff;color:var(--or-t)}
.js .giftchip{animation:pop .9s .58s var(--ease) both}

/* hero: today's hours strip (borrowed from e6) */
.today{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px 24px;flex-wrap:wrap;margin-top:44px;background:#fff;border-radius:999px;padding:10px 14px 10px 12px;box-shadow:inset 0 0 0 2px var(--mist-2),var(--sh-s)}
.today__now{display:flex;align-items:center;gap:12px;font-weight:900;color:var(--teal-d);font-size:16px;line-height:1.55}
.today__ic{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:var(--peach);color:var(--teal)}
.today__ic svg{width:30px;height:30px}
.today__now small{display:inline-block;margin-left:12px;font-size:13px;font-weight:700;color:var(--ink-2)}
.today .more{flex:none;padding-right:8px}
.today + .facts{margin-top:16px}
.today--sub{margin:0 0 22px;border-radius:var(--r-l)}

/* body-part tabs (borrowed from e6) */
.parts{padding-bottom:calc(var(--sec) * .55)}
.parts + .approach{padding-top:calc(var(--sec) * .6)}
.bp{margin-top:48px}
.bp__tabs{display:none}
.js .bp__tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.bp__tab{min-height:50px;border:0;border-radius:999px;background:var(--mist);color:var(--teal-d);font-weight:900;font-size:15px;cursor:pointer;transition:background-color .2s,color .2s,transform .2s var(--ease);word-break:keep-all}
.bp__tab:hover{background:var(--mist-2)}
.bp__tab[aria-selected="true"]{background:var(--teal);color:#fff;box-shadow:0 4px 0 var(--teal-d)}
.bp__panels{margin-top:16px;display:grid;gap:16px}
.bp__panel{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:16px 40px;align-items:center;background:#fff;border-radius:var(--r-xl);padding:28px;box-shadow:var(--sh),inset 0 0 0 2px var(--mist)}
.js .bp__panel[hidden]{display:none}
.js .bp__panel.is-in{animation:pop .45s var(--ease)}
.bp__fig figcaption{margin-top:8px;font-size:12.5px;font-weight:700;color:var(--ink-2);text-align:center;line-height:1.5}
.bp__txt h3{font-weight:900;font-size:clamp(22px,2.3vw,28px);color:var(--teal-d);line-height:1.45}
.bp__txt > p{margin-top:6px;font-size:15px;color:var(--ink-2)}
.bp__list{display:grid;gap:8px;margin-top:16px}
.bp__list li{position:relative;padding:10px 14px 10px 44px;background:var(--mist-0);border-radius:16px;font-weight:700;font-size:15px;line-height:1.6;color:var(--ink)}
.bp__list li::before{content:"";position:absolute;left:14px;top:50%;width:20px;height:20px;margin-top:-10px;border-radius:50%;background:var(--or-d) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.6l4 4 8-8.6' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.bp__more{display:flex;flex-wrap:wrap;gap:0 22px;margin-top:10px}

/* joint line drawings: one view cropped out of the 2x2 sheet */
.jimg{position:relative;aspect-ratio:328/306;overflow:hidden;background:#fff;border-radius:18px;border:2px solid var(--mist)}
.jimg img{position:absolute;left:0;top:0;width:213.4%;max-width:none;height:auto;transform:translate(var(--x),var(--y))}
.jimg--svg svg{display:block;width:100%;height:100%;font-family:var(--jp)}

/* first-visit step 1 photo (borrowed from e5) */
.step__ic--ph{overflow:hidden;border:4px solid #fff;box-shadow:0 0 0 2.5px var(--mist-2)}
.step__ic--ph img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;transform:scale(1.45);transform-origin:46% 8%}
.step__cap{margin-top:8px!important;font-size:12px!important;line-height:1.6!important;color:var(--ink-2);text-align:center!important}

/* LINE section: on mobile the gift card comes before the button */
.line__panel{grid-template-areas:"main side" "go side";align-items:start}
.line__main{grid-area:main}
.line__side{grid-area:side}
.line__go{grid-area:go;margin-top:0}
.gift__ph{aspect-ratio:579/676}
.gift__ph img{width:100%;height:100%;object-fit:cover}

/* tap targets */
.ftr__tel{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}
.bar a{position:relative}
.bar .badge{top:-10px;right:4px;width:30px;height:30px;font-size:10px}

/* =========================================================
   3. 下層ページ用の部品
   ========================================================= */
body.sub{--sec:clamp(68px,7.6vw,108px)}

/* ---------- page header ---------- */
.phero{position:relative;overflow:hidden;padding:26px 0 128px;background:
  radial-gradient(circle at 92% 18%,rgba(255,255,255,.55) 0 15%,transparent 15.2%),
  radial-gradient(circle at 4% 96%,rgba(255,255,255,.45) 0 10%,transparent 10.2%),var(--mist)}
.phero__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:48px;align-items:center}
.phero__grid--1{grid-template-columns:minmax(0,1fr)}
.crumb ol{display:flex;flex-wrap:wrap;align-items:center;gap:0 6px;font-size:13.5px;font-weight:700;color:var(--ink-2)}
.crumb li{display:inline-flex;align-items:center;gap:6px}
.crumb li + li::before{content:"";width:7px;height:7px;border-top:2.5px solid var(--sea);border-right:2.5px solid var(--sea);transform:rotate(45deg);margin-right:6px}
.crumb a{display:inline-flex;align-items:center;min-height:44px;color:var(--teal);text-decoration:none}
.crumb a:hover{text-decoration:underline;text-underline-offset:4px}
.phero__h1{font-weight:900;color:var(--teal-d);font-size:clamp(29px,3.7vw,48px);line-height:1.42;letter-spacing:.03em;word-break:keep-all;overflow-wrap:anywhere;text-wrap:balance;margin-top:4px}
.js .phero__h1{animation:pop .9s var(--ease) both}
.phero .squig{width:200px;height:18px;margin-top:14px}
.js .phero .squig path{transition:none;animation:draw 1.4s .45s var(--ease) both}
.phero .lead{max-width:34em}
.js .phero .lead,.js .phero__extra{animation:pop .9s .3s var(--ease) both}
.phero__extra{margin-top:22px}
.phero__vis{position:relative;justify-self:center;width:100%;max-width:380px}
.phero__vis .orbit{inset:-5%;width:110%;height:110%}
.phero__ph{position:relative}
.phero__ph .rph{aspect-ratio:1/1;width:100%}
.phero__ph figcaption{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%) rotate(-2deg);background:#fff;border-radius:999px;padding:6px 18px;font-size:13.5px;font-weight:900;color:var(--teal-d);white-space:nowrap;box-shadow:var(--sh-s);border:2.5px solid var(--mist-2)}
.phero__art{position:relative;aspect-ratio:1/1;width:100%;border-radius:50%;background:#fff;box-shadow:var(--sh);display:flex;align-items:center;justify-content:center;color:var(--teal)}
.phero__art > svg{width:62%;height:62%}
.phero__art .sticker{z-index:2}
.phero .st-note{width:112px;height:112px;background:var(--teal);color:#fff;right:-4%;top:2%;font-size:14px;transform:rotate(8deg)}
.phero .st-note b{font-family:var(--jp);font-size:19px;margin-top:2px}
.phero .st-or{width:104px;height:104px;background:#fff;color:var(--teal-d);left:-4%;bottom:6%;font-size:13px;box-shadow:inset 0 0 0 3px var(--or),0 10px 22px rgba(15,110,116,.14);transform:rotate(-7deg);animation-delay:-2s}
.phero .st-or b{font-family:var(--jp);font-size:18px;color:var(--or-t)}
.waves--w .w1{fill:#fff;opacity:.55}
.waves--w .w2{fill:#fff}
.phero__h1 + .squig{display:block}

/* jump links */
.jump{display:flex;flex-wrap:wrap;gap:10px}
.jump a{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px 0 12px;border-radius:999px;background:#fff;color:var(--teal-d);font-weight:700;font-size:14.5px;text-decoration:none;box-shadow:inset 0 0 0 2px var(--mist-2);transition:background-color .2s}
.jump a:hover{background:var(--mist-0)}
.jump .i{width:20px;height:20px;color:var(--or-t);transform:rotate(90deg)}

/* ---------- generic layout ---------- */
.grid{display:grid;gap:22px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.sh + .grid,.sh + .tbl,.sh + .steps,.sh + .people,.sh + .posts,.shx + .grid{margin-top:44px}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4.4vw,64px);align-items:center}
.split > *{min-width:0}
.blk{margin-top:56px}
.h3s{font-weight:900;color:var(--teal-d);font-size:clamp(20px,2vw,24px);line-height:1.5;word-break:keep-all;overflow-wrap:anywhere}

/* ---------- cards ---------- */
.card{position:relative;display:flex;flex-direction:column;align-items:flex-start;background:#fff;border-radius:var(--r-l);padding:28px 26px 26px;box-shadow:var(--sh-s)}
.card--line{box-shadow:none;border:2.5px solid var(--mist-2)}
.sec--mist .card--line{border-color:#fff}
.card h3{font-weight:900;font-size:19.5px;color:var(--teal-d);line-height:1.5;margin:12px 0 8px;word-break:auto-phrase;overflow-wrap:anywhere;text-wrap:balance}
.card .tag + h3{margin-top:12px}
.card p{font-size:15px;color:var(--ink-2);line-height:1.85}
.card p + p{margin-top:8px}
.card .more{margin-top:auto;padding-top:10px}
.card__ic{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;background:var(--mist);color:var(--teal);flex:none}
.sec--mist .card__ic{background:var(--mist-0)}
.card__ic svg{width:46px;height:46px}
.card__ic--peach{background:var(--peach)!important}
.card__top{display:flex;align-items:center;gap:14px;width:100%}
.card__top h3{margin:0}
.nb{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;background:var(--or-d);color:#fff;font-family:var(--num);font-weight:900;font-size:20px;line-height:1;box-shadow:0 3px 0 #B34A00;flex:none}
.big{display:block;font-weight:900;color:var(--teal-d);font-size:28px;line-height:1.3;word-break:keep-all}
.big--or{font-family:var(--num);font-size:52px;line-height:1;color:var(--or-d)}
.big--or small{font-family:var(--jp);font-size:22px;margin-left:2px}
.card--stat{align-items:center;text-align:center}
.card--stat h3{margin-top:10px}
.card--stat p{text-align:left}
.sym--link{text-decoration:none;color:inherit;transition:transform .3s var(--ease),box-shadow .3s}
.sym--link:hover{transform:translateY(-4px);box-shadow:var(--sh)}
.sym--link .card__ic{margin-bottom:6px}

/* section heading with a figure (symptoms) */
.shx{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,320px);gap:28px 56px;align-items:center}
.jfig{background:#fff;border-radius:var(--r-l);padding:12px 12px 10px;box-shadow:var(--sh-s)}
.jfig figcaption{margin-top:8px;font-size:13px;font-weight:700;color:var(--ink-2);text-align:center;line-height:1.5}
.jquad{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.jquad .jfig{padding:8px 8px 6px;border-radius:var(--r-m)}
.jquad .jimg{border-radius:12px}
.jquad figcaption{font-size:12px;margin-top:4px}

/* ---------- note / callouts ---------- */
.note__t{display:block;color:var(--ink);font-weight:900;font-size:14.5px;margin-bottom:2px}
.note--w{background:#fff}
.note p + p{margin-top:6px}
.cta-strip{display:flex;align-items:center;flex-wrap:wrap;gap:16px 26px;background:linear-gradient(180deg,#EAF7EF 0%,var(--mist-0) 100%);border:3px solid #CDEBD8;border-radius:var(--r-l);padding:22px 28px}
.cta-strip__ic{flex:none;display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:#fff;color:var(--line-ui)}
.cta-strip__ic svg{width:40px;height:40px}
.cta-strip p{flex:1 1 300px;font-weight:700;font-size:16px;color:var(--ink);line-height:1.8}
.cta-strip__btns{display:flex;flex-wrap:wrap;gap:12px 14px}
.strip-sec{padding:0 0 var(--sec)}
.sec--mist + .strip-sec,.strip-sec--top{padding-top:var(--sec)}

/* ---------- table ---------- */
.tbl{background:#fff;border-radius:var(--r-l);box-shadow:var(--sh-s);overflow:hidden}
.tbl table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.7}
.tbl th,.tbl td{padding:16px 22px;text-align:left;vertical-align:middle;border-bottom:2px dashed var(--mist-2)}
.tbl thead th{background:var(--teal);color:#fff;font-weight:900;font-size:14px;letter-spacing:.06em;border-bottom:0;padding-top:12px;padding-bottom:12px}
.tbl tbody tr:last-child > *{border-bottom:0}
.tbl tbody th{font-weight:900;color:var(--teal-d);white-space:nowrap}
.tbl td{color:var(--ink-2)}
.tbl strong{color:var(--ink);font-weight:900}
.tbl .r{text-align:right;white-space:nowrap;font-family:var(--num);font-weight:900;font-size:19px;color:var(--teal-d)}
.tbl thead .r{font-family:var(--jp);font-size:14px;color:#fff}
.tbl .r small,.tbl .yen{font-family:var(--jp);font-size:14px;margin-left:1px}
.tbl__sub{display:block;font-size:13px;color:var(--ink-2);font-weight:700}
.tbl a{color:var(--teal-d);font-weight:700}
.tbl--info th{width:9em;background:var(--mist-0)}

/* ---------- price page ---------- */
.price-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:28px 44px;align-items:start}
.price-split > *{min-width:0}
.price-fig .archph{max-width:300px;aspect-ratio:3/4}
.price-fig .archph img{object-position:50% 55%}
.price-fig .cap{max-width:300px;margin-left:auto;margin-right:auto}
.plan{padding:32px 30px 30px}
.plan__for{font-size:13.5px!important;font-weight:700;color:var(--or-t)!important;margin-top:14px}
.plan h3{font-size:24px;margin:2px 0 4px}
.plan__yen{font-weight:900;color:var(--teal-d)!important;font-size:16px!important;line-height:1.2!important}
.plan__yen b{font-family:var(--num);font-size:48px;letter-spacing:.01em;margin-right:4px}
.plan__small{margin-top:8px;font-size:13px!important}
.checks{display:grid;gap:8px;margin-top:16px;width:100%}
.checks li{position:relative;padding-left:30px;font-size:14.5px;color:var(--ink-2);line-height:1.7}
.checks li::before{content:"";position:absolute;left:0;top:.2em;width:20px;height:20px;border-radius:50%;background:var(--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.6l4 4 8-8.6' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
.plan__go{margin-top:auto!important;padding-top:22px;width:100%}
.plan__go .btn{width:100%}

/* ---------- prose ---------- */
.prose{max-width:820px}
.prose > * + *{margin-top:14px}
.prose p{color:var(--ink-2)}
.prose ul{display:grid;gap:12px}
.prose li{position:relative;padding:14px 18px 14px 44px;background:#fff;border-radius:var(--r-m);color:var(--ink-2);font-size:15px;line-height:1.8;box-shadow:var(--sh-s)}
.prose li::before{content:"";position:absolute;left:20px;top:1.42em;width:10px;height:10px;border-radius:50%;background:var(--or)}
.prose li strong{color:var(--ink);font-weight:900}
.sec:not(.sec--mist) .prose li{background:var(--mist-0);box-shadow:none}

/* ---------- about ---------- */
.princ{display:grid;gap:0;margin-top:48px}
.princ__row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start;max-width:860px;background:var(--mist-0);border-radius:var(--r-l);padding:26px 28px}
.princ__row h3{font-weight:900;color:var(--teal-d);font-size:clamp(19px,1.9vw,23px);line-height:1.5;word-break:auto-phrase;text-wrap:balance}
.princ__row p{margin-top:8px;color:var(--ink-2)}
.princ .feat{margin-top:56px}
.princ .feat + .princ__row,.princ .feat + .feat{margin-top:56px}
.princ > .princ__row + .feat{margin-top:56px}
.feat__no{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.feat__no .h3{margin:0}
.dgph{border-radius:var(--r-l);overflow:hidden;background:#fff;border:8px solid #fff;box-shadow:var(--sh)}
.dgph img{width:100%;height:auto}
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.person{display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff;border-radius:var(--r-xl);padding:34px 30px 30px;box-shadow:var(--sh)}
.person__ph{width:200px;height:200px;border-radius:50%;overflow:hidden;border:8px solid #fff;box-shadow:0 0 0 3px var(--mist-2),var(--sh-s);background:var(--mist)}
.person__ph img{width:100%;height:100%;object-fit:cover}
.person__ph--dir img{object-position:49% 26%;transform:scale(1.3);transform-origin:50% 28%}
.person__ph--nakao img{object-position:40% 30%;transform:scale(1.55);transform-origin:40% 30%}
.person .tag{margin-top:18px}
.person__name{font-weight:900;font-size:26px;color:var(--ink);line-height:1.4;margin-top:10px}
.person__name small{display:block;font-size:13px;font-weight:700;color:var(--ink-2);letter-spacing:.06em;margin-top:2px}
.person__lead{font-weight:900;color:var(--teal-d);font-size:16px;margin-top:12px}
.person p{color:var(--ink-2);font-size:15px;text-align:left;margin-top:10px}
.person .chips{justify-content:center;margin-top:16px}
.people__note{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:28px}
.people__note li{display:inline-flex;align-items:center;gap:7px;background:#fff;border-radius:999px;padding:6px 16px 6px 11px;font-size:14px;font-weight:700;color:var(--teal-d)}
.people__note .i{width:22px;height:22px;color:var(--teal)}
.equip{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(30px,4.6vw,64px);align-items:start}
.equip > *{min-width:0}
.equip .archph{aspect-ratio:3/4.3;max-width:440px}
.equip .archph img{object-position:42% 40%}
.equip .cap{max-width:440px;margin-left:auto;margin-right:auto}
.eqlist{display:grid;gap:16px;margin-top:30px}
.eq{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;background:#fff;border-radius:var(--r-l);padding:18px 22px 18px 18px;box-shadow:var(--sh-s)}
.eq h3{font-weight:900;color:var(--teal-d);font-size:18.5px;line-height:1.5}
.eq p{font-size:14.5px;color:var(--ink-2);line-height:1.8;margin-top:4px}
.eq__ph{width:104px;height:104px;border-radius:50%;overflow:hidden;border:5px solid #fff;box-shadow:0 0 0 2.5px var(--mist-2);background:var(--mist);display:flex;align-items:center;justify-content:center;color:var(--teal)}
.eq__ph img{width:100%;height:100%;object-fit:cover}
.eq__ph svg{width:60px;height:60px}
.eq__ph--echo img{object-position:50% 38%;transform:scale(1.5);transform-origin:50% 36%}
.eq__ph--tools img{object-position:50% 50%;transform:scale(1.25);transform-origin:45% 38%}
.eq__cap{display:block;font-size:12px;color:var(--ink-2);margin-top:6px;line-height:1.6}

/* ---------- FAQ page ---------- */
.qgroup + .qgroup{margin-top:56px}
.qgroup__h{display:flex;align-items:center;gap:14px;font-weight:900;color:var(--teal-d);font-size:clamp(22px,2.4vw,28px);line-height:1.4}
.qgroup__ic{flex:none;display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--mist);color:var(--teal)}
.qgroup__ic svg{width:36px;height:36px}
.qgroup .qa{margin-top:20px}
.qa--line details{box-shadow:none;border:2.5px solid var(--mist-2)}
.qa__a a{color:var(--teal-d);font-weight:700;text-underline-offset:3px}
.faqp .cta-strip{margin-top:56px}

/* ---------- access / contact ---------- */
.infocard{background:#fff;border-radius:var(--r-xl);padding:clamp(20px,3vw,32px);box-shadow:var(--sh)}
.infocard__ph{border-radius:var(--r-m);overflow:hidden;aspect-ratio:1.1/1;background:var(--mist)}
.infocard__ph img{width:100%;height:100%;object-fit:cover;object-position:0 50%}
.infocard .cap{padding:0 2px}
.infocard .info{margin-top:16px}
.infocard .btns{margin-top:20px}
.map{position:relative;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:16/9;background:#fff;border:8px solid #fff;box-shadow:var(--sh);margin-top:40px}
.map iframe{display:block;width:100%;height:100%;border:0}
.todo{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;background:#FFF4D6;border:2.5px dashed var(--or);color:#6B3300;font-weight:900;border-radius:14px;padding:6px 14px;line-height:1.6}
.todo::before{content:"要記入";display:inline-block;background:var(--or-t);color:#fff;font-size:11.5px;border-radius:999px;padding:0 9px;line-height:1.8}
.methods .card{align-items:stretch}
.method__ic{display:flex;align-items:center;justify-content:center;width:76px;height:76px;border-radius:50%;margin-bottom:6px}
.method__ic svg{width:44px;height:44px}
.method__ic--line{background:#E9F8EE;color:var(--line-ui)}
.method__ic--tel{background:var(--mist);color:var(--teal)}
.method__ic--web{background:var(--peach);color:var(--or-t)}
.method__hours{margin-top:10px!important;font-size:13.5px!important;font-weight:700;color:var(--ink)!important;background:var(--mist-0);border-radius:14px;padding:8px 12px}
.method__go{margin-top:auto;padding-top:20px}
.method__go .btn{width:100%}
.recep{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,4.6vw,64px);align-items:start}
.recep > *{min-width:0}
.recep .archph{aspect-ratio:3/4;max-width:400px}
.recep .archph img{object-position:50% 20%}
.recep .cap{max-width:400px;margin-left:auto;margin-right:auto}
.recep .hours{margin-top:18px}
.addr{margin-top:28px}
.addr .h3s{margin-bottom:6px}

/* ---------- form ---------- */
.form{display:grid;gap:20px;max-width:760px;margin:40px auto 0;background:#fff;border-radius:var(--r-xl);padding:clamp(24px,4vw,44px);box-shadow:var(--sh)}
.form label{display:flex;flex-direction:column;gap:8px;font-weight:900;color:var(--ink);font-size:15.5px;line-height:1.5}
.form input,.form select,.form textarea{font:inherit;font-weight:500;font-size:16px;color:var(--ink);width:100%;min-height:54px;padding:12px 16px;border-radius:16px;border:2.5px solid var(--mist-2);background:var(--mist-0);transition:border-color .2s,background-color .2s}
.form textarea{min-height:170px;resize:vertical;line-height:1.7}
.form select{appearance:none;-webkit-appearance:none;padding-right:48px;background:var(--mist-0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%230F6E74' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 16px center/20px no-repeat}
.form input:hover,.form select:hover,.form textarea:hover{border-color:var(--sea)}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--teal);background-color:#fff;outline:none;box-shadow:0 0 0 4px rgba(255,122,26,.35)}
.form ::placeholder{color:#6F8186}
.req{display:inline-block;margin-left:8px;background:var(--or-t);color:#fff;font-size:11.5px;font-weight:900;border-radius:999px;padding:1px 10px;line-height:1.7;vertical-align:2px}
.form .consent{flex-direction:row;align-items:flex-start;gap:12px;font-weight:500;font-size:14px;color:var(--ink-2);background:var(--mist-0);border-radius:var(--r-m);padding:14px 16px;line-height:1.8;cursor:pointer}
.form .consent input{flex:none;width:24px;height:24px;min-height:0;margin:3px 0 0;padding:0;accent-color:var(--teal);cursor:pointer}
.form__send .btn{min-width:240px}
.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}

/* ---------- column ---------- */
.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.post{display:flex;flex-direction:column;background:#fff;border-radius:var(--r-l);overflow:hidden;box-shadow:var(--sh-s);text-decoration:none;color:inherit;transition:transform .3s var(--ease),box-shadow .3s}
.post:hover{transform:translateY(-4px);box-shadow:var(--sh)}
.post__ph{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;background:#fff;border-bottom:2px solid var(--mist)}
.post__ph > img{width:100%;height:100%;object-fit:cover}
.post__ph--top > img{object-position:50% 0}
.post__ph--draw{display:flex;justify-content:center;padding:6px 0}
.post__ph--draw .jimg{height:100%;border:0;border-radius:0}
.post__lbl{position:absolute;left:12px;bottom:10px;background:rgba(255,255,255,.95);color:var(--teal-d);font-size:12px;font-weight:900;border-radius:999px;padding:2px 12px;line-height:1.7;box-shadow:0 0 0 2px var(--mist-2)}
.post__b{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:20px 22px 22px;flex:1}
.post__b h3{font-weight:900;font-size:18px;color:var(--ink);line-height:1.6;word-break:auto-phrase;text-wrap:pretty}
.post__b p{font-size:14.5px;color:var(--ink-2);line-height:1.8}
.post__b .more{margin-top:auto}

/* ---------- thanks ---------- */
.done{max-width:720px;margin:0 auto;text-align:center}
.done__ic{display:inline-flex;align-items:center;justify-content:center;width:96px;height:96px;border-radius:50%;background:var(--line-ui);color:#fff;box-shadow:0 6px 0 var(--line-sh);margin-bottom:20px}
.done__ic svg{width:52px;height:52px}
.done .lead{margin-left:auto;margin-right:auto}

/* final CTA on subpages */
.sub .final{padding-top:var(--sec)}
.sub .sec--mist + .final{padding-top:calc(var(--sec) + 20px)}
.final__lead{position:relative;color:var(--ink-2);max-width:34em;margin:16px auto 0;font-size:16.5px}

/* ---------- responsive (sections 2-3) ---------- */
@media (max-width:1080px){
  .posts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bp__panel{grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:16px 28px}
}
@media (min-width:961px){
  .js .bp{display:grid;grid-template-columns:230px minmax(0,1fr);gap:28px;align-items:start}
  .js .bp__tabs{display:flex;flex-direction:column;gap:10px;position:sticky;top:100px}
  .bp__tab{min-height:58px;text-align:left;padding:0 24px;font-size:17px;display:flex;align-items:center;justify-content:space-between}
  .bp__tab::after{content:"";width:9px;height:9px;border-right:3px solid currentColor;border-top:3px solid currentColor;transform:rotate(45deg);opacity:.5}
  .js .bp__panels{margin-top:0}
}
@media (max-width:960px){
  .line__panel{grid-template-areas:"main" "side" "go"}
  .line__go{margin-top:4px}
  .today{border-radius:var(--r-l);padding:12px 16px 10px 12px}
  .today__now small{display:block;margin-left:0}
  .phero{padding:18px 0 112px}
  .phero__grid{grid-template-columns:1fr;gap:30px}
  .phero__vis{max-width:300px}
  .shx{grid-template-columns:minmax(0,1fr) minmax(0,260px);gap:24px 32px}
  .split,.price-split,.equip,.recep{grid-template-columns:1fr}
  .price-fig{order:-1}
  .people{grid-template-columns:1fr;max-width:560px;margin-left:auto;margin-right:auto}
  .grid-2{grid-template-columns:1fr}
}
@media (max-width:640px){
  .hdr__line{min-height:44px;padding:0 14px;font-size:14px}
  /* first view: keep the LINE gift chip above the fixed bottom bar */
  .hero{padding-top:12px}
  .pill{margin-bottom:12px;font-size:13.5px}
  .hero__h1{line-height:1.3}
  .squig--hero{margin:10px 0 2px}
  .hero__who{margin-top:8px}
  .hero__sub{margin-top:8px;font-size:15px;line-height:1.85}
  .hero__cta{margin-top:20px;gap:12px}
  .hero__cta .btn--lg{min-height:58px}
  .hdr__line .i{width:19px;height:19px}
  .pc-only{display:none}
  .badge{width:30px;height:30px;font-size:10px;top:-10px;right:-8px}
  .hdr__cta{gap:10px}
  .giftchip{margin-top:16px;padding:9px 12px 9px 10px;gap:12px}
  .giftchip__img{width:40px}
  .giftchip__tx b{font-size:15px}
  .today{margin-top:36px}
  .today__now{font-size:15px;gap:10px;align-items:flex-start}
  .today__ic{width:40px;height:40px}
  .today__ic svg{width:26px;height:26px}
  .today .more{margin-left:50px}
  .bp{margin-top:36px}
  .bp__panel{grid-template-columns:1fr;padding:18px 16px 16px;border-radius:var(--r-l)}
  .bp__fig{max-width:300px;width:100%;justify-self:center}
  .bp__list li{font-size:14.5px}
  .bp__tab{font-size:14.5px;min-height:48px}
  .step--ph .step__ic--ph{width:84px;height:84px}
  .step__cap{grid-column:1/-1;text-align:left!important}
  .grid-3,.posts{grid-template-columns:1fr}
  .card{padding:24px 22px 22px}
  .shx{grid-template-columns:1fr}
  .shx .jfig{max-width:320px;width:100%;justify-self:center}
  .shx .jquad{max-width:340px;width:100%;justify-self:center}
  .phero__vis{max-width:250px}
  .phero__ph figcaption{font-size:12.5px;padding:5px 14px}
  .phero .st-note{width:92px;height:92px;font-size:12px}
  .phero .st-note b{font-size:16px}
  .phero .st-or{width:88px;height:88px;font-size:11.5px}
  .phero .st-or b{font-size:15px}
  .cta-strip{padding:20px 18px;gap:14px}
  .cta-strip__ic{width:52px;height:52px}
  .cta-strip__ic svg{width:32px;height:32px}
  .cta-strip__btns,.cta-strip__btns .btn{width:100%}
  .tbl th,.tbl td{padding:14px 16px}
  .tbl--menu thead{display:none}
  .tbl--menu tr{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;padding:14px 16px;border-bottom:2px dashed var(--mist-2)}
  .tbl--menu tbody tr:last-child{border-bottom:0}
  .tbl--menu td{padding:0;border:0}
  .tbl--menu td:nth-child(2){grid-row:2;grid-column:1/-1;font-size:13.5px;margin-top:2px}
  .tbl--menu .r{grid-row:1;grid-column:2;align-self:center}
  .tbl--plan thead{display:none}
  .tbl--plan tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 8px;padding:16px;border-bottom:2px dashed var(--mist-2)}
  .tbl--plan tbody tr:last-child{border-bottom:0}
  .tbl--plan td{padding:0;border:0}
  .tbl--plan td:first-child{grid-column:1/-1;margin-bottom:6px}
  .tbl--plan .r{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--mist-0);border-radius:12px;padding:8px 4px;font-size:16px}
  .tbl--plan .r::before{content:attr(data-label);font-family:var(--jp);font-size:11.5px;font-weight:700;color:var(--ink-2);margin-bottom:2px}
  .tbl--info th{width:6.2em;white-space:normal}
  .tbl--info th,.tbl--info td{padding:12px 12px;font-size:14px}
  .plan{padding:26px 22px 24px}
  .plan__yen b{font-size:42px}
  .princ__row{grid-template-columns:1fr;padding:22px 20px;gap:10px}
  .person{padding:28px 20px 24px}
  .person__ph{width:168px;height:168px}
  .eq{grid-template-columns:auto minmax(0,1fr);padding:16px;gap:14px}
  .eq__ph{width:80px;height:80px}
  .eq__ph svg{width:46px;height:46px}
  .qgroup__ic{width:48px;height:48px}
  .qgroup__ic svg{width:30px;height:30px}
  .map{aspect-ratio:4/3.4;border-width:5px}
  .form{padding:22px 18px}
  .form__send .btn{width:100%}
  .jump a{font-size:14px;padding:0 14px 0 10px}
  .big--or{font-size:46px}
}

/* ---------- small fixes ---------- */
.trio li > span{word-break:keep-all}
.strip-sec + .final{padding-top:0}
.bodymap{font-family:var(--jp)}
.phero__art > svg.bodymap{width:78%;height:78%}
.card .tag--soft,.sec--mist .card .tag--soft{background:var(--mist);color:var(--teal-d)}
.jiko__art--hero{max-width:none}
.qa + .note{margin-top:28px}
.card--stat .big{margin-top:6px}
.card__top + p{margin-top:14px}
.sec--mist .card .card__ic{background:var(--mist)}
.final__small span span::before{display:none}
@media (max-width:640px){
  .tbl--plan .r{display:block}
  .tbl--plan .r::before{display:block}
}
.rph--ext img{object-position:0 42%;transform:scale(1.12);transform-origin:0 45%}
.share--line{box-shadow:none;border:2.5px solid var(--mist-2)}
.princ + .share{margin-top:72px}
.feat__txt .note{margin-top:20px}
.fc--tools{--w:167%;--l:-3%;--t:-61%}
.cta-strip + .qgroup{margin-top:56px}
.split--top{align-items:start}
.today--sub{margin-top:26px}
.today--sub + .hours{margin-top:22px}
/* contact: three ways badge cluster */
.trio3{position:relative;width:78%;aspect-ratio:1/1}
.trio3__b{position:absolute;width:47%;aspect-ratio:1/1;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#fff;box-shadow:0 6px 0 rgba(10,83,87,.18)}
.trio3__b svg{width:42%;height:42%}
.trio3__b b{font-weight:900;font-size:clamp(12px,1.2vw,16px);line-height:1.2}
.trio3__b--line{background:var(--line-ui);top:0;left:26.5%;--acc:#fff}
.trio3__b--tel{background:var(--teal);bottom:3%;left:0;--acc:#FFD2AE}
.trio3__b--web{background:var(--or-t);bottom:3%;right:0;--acc:#fff}
.form-note{max-width:760px;margin:36px auto 0}
.form-note + .form{margin-top:18px}
.fc--desk-arch{--w:150%;--l:-7%;--t:-3%}
.form label{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:0;row-gap:8px}
.form label > input,.form label > select,.form label > textarea{flex:1 0 100%}
.form .consent{flex-wrap:nowrap;column-gap:12px}
.form .consent > input{flex:none}
@media (max-width:640px){ .d-f1{top:5%;bottom:auto;right:7%} }
.phero__vis--s{max-width:300px}
.post__ph > img[src*="stadium"]{object-position:50% 62%}
.ig--sub .ig__card{background:#fff;border-color:#fff}
.ig.ig--sub{padding-top:var(--sec)}
@media (max-width:960px){ .phero__vis--s{display:none} }
@media (max-width:640px){
  .phero{padding-bottom:100px}
  .phero__vis{max-width:230px}
  .phero__grid{gap:24px}
}
.brand{min-height:44px}

/* =========================================================
   4. 症状別・スポーツ別・コラム記事ページ（sym-〜 / sport-〜 / col-〜）
   ========================================================= */
/* page header additions */
.phero__h1s{display:block;font-size:.6em;color:var(--teal);letter-spacing:.02em;line-height:1.5;margin-top:4px}
.byline{display:flex;flex-wrap:wrap;gap:4px 20px;margin-top:16px;font-size:13px;font-weight:700;color:var(--ink-2);line-height:1.7}
.byline__i{display:inline-flex;align-items:flex-start;gap:6px}
.byline .i{width:18px;height:18px;color:var(--teal);margin-top:.2em}
.jfig--hero{position:relative;z-index:1;padding:14px 14px 12px;box-shadow:var(--sh)}
.jfig--hero figcaption{font-size:13px;margin-top:10px}

/* article = main column + sticky side column (PC) */
.art{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:56px;align-items:start}
.art__main{min-width:0;display:grid;gap:clamp(52px,5.6vw,76px)}
.art__side{position:sticky;top:104px;display:grid;gap:18px}
.ablk .sh{max-width:none}
.sh--s .sh__ic{width:52px;height:52px;margin-bottom:8px}
.sh--s .sh__ic svg{width:32px;height:32px}
.sh--s .squig{width:140px;margin-top:8px}
.ablk .h2--s{word-break:keep-all;overflow-wrap:anywhere}
.ablk__body{margin-top:22px}
.ablk__body > * + *,.ablk__txt > * + *{margin-top:16px}
.ablk__body p{color:var(--ink-2)}
.ablk__body strong,.ablk__body b{color:var(--ink);font-weight:900}
.ablk__body--media{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,260px);gap:20px 34px;align-items:start}
.ablk__body--media > * + *{margin-top:0}
.ablk__txt{min-width:0}
.afig{min-width:0}
.afig .cap{padding:0 2px}
.afig .rph{aspect-ratio:1/1;width:100%}
.afig .archph{aspect-ratio:3/4;max-width:100%}
.afig .blobph{aspect-ratio:4/3.4}
.afig .blobph img{object-position:30% 50%}
.afig--wide{max-width:720px}
.afig--wide .dgph{border-width:6px}

/* lists */
.ablk .checks{margin-top:0}
.evl{display:grid;gap:10px}
.evl li{position:relative;padding:12px 16px 12px 40px;background:var(--mist-0);border-radius:var(--r-m);color:var(--ink-2);font-size:15px;line-height:1.75}
.evl li::before{content:"";position:absolute;left:18px;top:1.3em;width:9px;height:9px;border-radius:50%;background:var(--or)}
.scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.scope .card{padding:22px 22px 20px;align-items:stretch}
.scope .scope__t{display:flex;align-items:center;gap:10px;font-weight:900;color:var(--teal-d);font-size:17px;line-height:1.5;margin:0 0 14px}
.scope__ic{flex:none;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--teal);color:#fff}
.scope__ic .i{width:20px;height:20px}
.scope__ic--no{background:var(--mist-2);color:var(--teal-d);font-family:var(--num);font-weight:900;font-size:18px;line-height:1}
.xlist{display:grid;gap:8px}
.xlist li{position:relative;padding-left:30px;font-size:14.5px;color:var(--ink-2);line-height:1.7}
.xlist li::before{content:"×";position:absolute;left:0;top:.18em;width:20px;height:20px;border-radius:50%;background:var(--mist);color:var(--teal-d);font-family:var(--num);font-weight:900;font-size:13px;line-height:20px;text-align:center}

/* callout: when to see a medical institution first */
.warn{background:#FFF7F0;border:2.5px solid #FFD2AE;border-radius:var(--r-l);padding:22px 24px 20px}
.warn__t{display:flex;gap:10px;align-items:flex-start;font-weight:900;color:var(--ink);font-size:16.5px;line-height:1.65;word-break:auto-phrase}
.warn__t .i{flex:none;width:28px;height:28px;color:var(--or-t);margin-top:1px}
.warn__list{display:grid;gap:9px;margin-top:14px}
.warn__list li{position:relative;padding-left:30px;font-size:15px;color:var(--ink);line-height:1.7}
.warn__list li::before{content:"!";position:absolute;left:0;top:.2em;width:20px;height:20px;border-radius:50%;background:var(--or-t);color:#fff;font-family:var(--num);font-weight:900;font-size:13px;line-height:20px;text-align:center}
.warn__foot{margin-top:16px;padding-top:12px;border-top:2px dashed #FFD2AE;font-size:14px;color:var(--ink-2)!important;line-height:1.8}
.ablk .note{margin-top:0;font-size:14.5px}
.ablk .note > div > p + p{margin-top:8px}

/* staged rehab */
.phases{display:grid;gap:12px}
.phase{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:start;background:var(--mist-0);border-radius:var(--r-l);padding:18px 22px}
.phase__no{display:flex;flex-direction:column;align-items:center;justify-content:center;width:58px;height:58px;border-radius:50%;background:var(--or-d);color:#fff;font-family:var(--num);font-weight:900;font-size:22px;line-height:1;box-shadow:0 3px 0 #B34A00}
.phase__no small{font-size:10px;letter-spacing:.08em;margin-bottom:3px}
.phase h3{font-weight:900;color:var(--teal-d);font-size:17px;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}
.phase p{font-size:14.5px;color:var(--ink-2)!important;line-height:1.8;margin-top:6px}

/* references */
.refs{display:grid;gap:10px;counter-reset:ref}
.refs li{position:relative;padding-left:38px;counter-increment:ref;font-size:13.5px;line-height:1.75;color:var(--ink-2);word-break:normal;overflow-wrap:anywhere}
.refs li::before{content:counter(ref);position:absolute;left:0;top:.05em;width:26px;height:26px;border-radius:50%;background:var(--mist);color:var(--teal-d);font-family:var(--num);font-weight:900;font-size:13px;line-height:26px;text-align:center}
.refs a{color:var(--teal-d);font-weight:700;text-underline-offset:3px}
.art__disc{margin-top:0;font-size:12.5px}

/* side column */
.side-cta{background:#fff;border:3px solid #CDEBD8;border-radius:var(--r-l);padding:22px 20px 20px;box-shadow:var(--sh-s);text-align:center}
.side-cta__ic{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#E9F8EE;color:var(--line-ui)}
.side-cta__ic svg{width:34px;height:34px}
.side-cta__t{font-weight:900;color:var(--teal-d);font-size:18px;line-height:1.5;margin-top:6px}
.side-cta p:not(.side-cta__t){font-size:14px;color:var(--ink-2);line-height:1.8;margin-top:6px;text-align:left}
.side-cta .btn{width:100%;margin-top:12px;padding:0 14px}
.side-nav{background:var(--mist-0);border-radius:var(--r-l);padding:16px 18px 8px}
.side-nav__t{font-weight:900;color:var(--teal-d);font-size:15px}
.side-nav a{display:flex;align-items:center;gap:8px;min-height:46px;color:var(--ink);font-weight:700;font-size:14.5px;line-height:1.5;text-decoration:none;border-bottom:2px dashed var(--mist-2)}
.side-nav li:last-child a{border-bottom:0}
.side-nav a:hover{color:var(--teal-d)}
.side-nav .i{width:20px;height:20px;color:var(--or-t)}
.cta-strip__t{display:block;color:var(--teal-d);font-weight:900;font-size:17px}

/* link cards (sport injuries / related pages) */
.sym--link h3{margin-top:4px}
.sym--link .more{padding-top:12px}
.rel .card{padding:22px 24px 18px}
.rel .card h3{font-size:18px;margin:0}
.final__more{margin-top:18px!important}
.final__more .more{font-size:15.5px}

@media (max-width:1080px){
  .art{grid-template-columns:minmax(0,1fr)}
  .art__side{display:none}
  .art__main{max-width:860px}
}
@media (max-width:640px){
  .ablk__body--media{grid-template-columns:1fr}
  .ablk__body--media .afig{width:100%;max-width:300px;justify-self:center;order:-1}
  .afig--wide{max-width:100%}
  .scope{grid-template-columns:1fr}
  .warn{padding:18px 16px 16px}
  .phase{grid-template-columns:1fr;gap:8px;padding:16px 16px 18px}
  .phase__no{flex-direction:row;gap:5px;width:auto;height:34px;padding:0 14px;border-radius:999px;font-size:17px;justify-self:start}
  .phase__no small{font-size:11px;margin:0}
  .jfig--hero{padding:10px 10px 8px}
  .jfig--hero figcaption{font-size:12px;margin-top:6px}
}
.rel + .final{padding-top:0}
@media (min-width:700px){ .ablk__body > .evl{grid-template-columns:repeat(2,minmax(0,1fr))} }
.strip-sec + .rel{padding-top:0}
.afig--quad{max-width:560px}
.afig .archph{aspect-ratio:4/5}
