
/* ── tokens ───────────────────────────────────────── */
/* ── hahito のブランドカラー ─────────────────────────
   黄 #FFDC5A = 帯・選択中・強調 ／ 黒 = 文字とCTA ／ 水色 #02A8E3 = リンクと情報 */
:root{
  --ground:#FFFCF3; --surface:#FFFFFF; --sunk:#FFF7DF;
  --line:#EFE7CE; --line-2:#DCD1B0;
  --ink:#1A1A17; --ink-2:#4C4B44; --muted:#706B5C;
  --brand:#FFDC5A; --brand-soft:#FFF3C6; --brand-line:#F0CE58; --brand-ink:#1A1A17;
  --accent:#FFDC5A; --accent-ink:#1A1A17; --accent-soft:#FFF3C6; --accent-line:#F0CE58;
  --link:#01769F; --link-soft:#E2F5FC;
  --cta:#1A1A17; --cta-ink:#FFFFFF;
  --warn:#C03A50; --warn-soft:#FDEBEE; --warn-line:#F3B7C1;
  --mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --sans:"Zen Kaku Gothic New", -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Noto Sans JP", sans-serif;
  --serif:"Hiragino Maru Gothic ProN", "Zen Kaku Gothic New", "BIZ UDPGothic", sans-serif;
  /* 黄(#FFDC5A)は面の色。文字に使うと白背景でも薄黄背景でも読めないので、
     文字用の濃い色を別に持つ */
  --accent-text:#8A6B00;
  --r:12px;
  /* 求人サイト本体もメディアもダークモードに対応していないため、
     DBだけ黒くならないよう明るい表示で固定する（select のドロップダウンも含めて） */
  color-scheme:light;
}


*{box-sizing:border-box}
body{margin:0; background:var(--ground); color:var(--ink); font-family:var(--sans);
     font-size:15px; line-height:1.8; -webkit-font-smoothing:antialiased}
a{color:inherit; text-decoration:none}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px; border-radius:4px}
.wrap{max-width:1040px; margin:0 auto; padding:0 20px}
.num{font-family:var(--mono); font-variant-numeric:tabular-nums}
main{padding-bottom:110px}
section{margin:44px 0}

/* ── header ───────────────────────────────────────── */
.proto{background:#1A1A17; color:#FFDC5A; font-size:11.5px; letter-spacing:.06em}
.proto .wrap{display:flex; gap:9px; align-items:center; flex-wrap:wrap; padding:6px 20px}
.proto b{font-family:var(--mono); font-weight:600}
.proto span{color:#C9C4B4; letter-spacing:0}
/* ヘッダー・フッターは求人サイト本体／メディアと同じ（swell_child の .hahito-media-* に合わせる） */
.hh-header{background:var(--brand); width:100%}
.hh-header__inner{max-width:1200px; margin:0 auto; padding:20px 40px; display:flex;
  align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px}
.hh-header__logo img{width:200px; height:auto; display:block}
.hh-header__nav ul{display:flex; align-items:center; gap:2em; margin:0; padding:0; list-style:none}
.hh-header__nav a{color:#000; font-size:16px; font-weight:500; text-decoration:none}
.hh-header__nav a:hover{text-decoration:underline}

.hh-footer{background:var(--brand); width:100%}
.hh-footer__inner{max-width:1200px; margin:0 auto; padding:3em 40px 4em; display:flex;
  justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:24px}
.hh-footer__logo img{width:180px; height:auto; display:block}
.hh-footer__links{display:flex; flex-wrap:wrap; justify-content:flex-end; gap:0 1.5em;
  margin:0; padding:0; list-style:none}
.hh-footer__links a{color:#000; font-size:14px; text-decoration:none; line-height:2}
.hh-footer__links a:hover{text-decoration:underline}
.hh-footer__copyright{width:100%; text-align:right; color:#000; font-size:12px; margin:2em 0 0}
@media screen and (max-width:767px){
  .hh-header__inner{flex-direction:column; align-items:center; padding:14px 4vw; gap:10px}
  .hh-header__logo img{width:140px}
  .hh-header__nav ul{gap:.6em 1.2em; flex-wrap:wrap; justify-content:center}
  .hh-header__nav a{font-size:13px}
  .hh-footer__inner{flex-direction:column; align-items:center; text-align:center; padding:2em 4vw 3em}
  .hh-footer__links{justify-content:center}
  .hh-footer__copyright{text-align:center; margin-top:1.5em}
}
.search{margin-left:auto; flex:1 1 260px; max-width:380px}
.search input{width:100%; font-family:var(--sans); font-size:14px; color:#1A1A17;
  background:#FFFFFF; border:1px solid transparent; border-radius:99px; padding:10px 18px}
.search input:focus{background:#FFFFFF; border-color:#1A1A17; outline:none}
.search input::placeholder{color:#8A857A}
.crumb{font-size:12px; color:var(--muted); padding:18px 0 0}
.crumb a:hover{color:var(--link)}
.crumb i{font-style:normal; margin:0 6px; color:var(--line-2)}

/* ── type ─────────────────────────────────────────── */
h1{font-family:var(--serif); font-weight:700; font-size:clamp(23px,3.4vw,31px); line-height:1.5;
   margin:14px 0 8px; text-wrap:balance; letter-spacing:.01em}
h2{font-family:var(--serif); font-size:17.5px; font-weight:700; letter-spacing:.01em; margin:0 0 16px;
   display:flex; align-items:baseline; gap:10px; flex-wrap:wrap}
h2 .cnt{font-family:var(--mono); font-size:12px; color:var(--muted); font-weight:400}
h3{font-size:14px; font-weight:700; margin:0 0 10px}
.lede{color:var(--ink-2); font-size:14.5px; max-width:44em; margin:0}
.sub-note{font-size:12px; color:var(--muted); line-height:1.75; margin:10px 0 0}
.note{font-size:12px; color:var(--muted); line-height:1.75; margin-top:24px;
      background:var(--sunk); border-radius:var(--r); padding:13px 16px}
.note b{color:var(--ink-2)}
.link{color:var(--link); text-decoration:underline; text-underline-offset:3px}

/* ── hero（結論） ─────────────────────────────────── */
.hero{background:var(--surface); border-radius:var(--r); padding:24px 26px; margin-top:20px;
      box-shadow:0 0 0 1px var(--line); border-top:4px solid var(--brand)}
.figs{display:flex; gap:34px; flex-wrap:wrap; margin-bottom:16px}
.fig{min-width:0}
.fig .v{font-family:var(--serif); font-size:36px; font-weight:700; line-height:1.05; color:var(--ink);
        letter-spacing:0; display:flex; align-items:baseline; gap:5px}
.fig .v::after{content:""; }
.fig:first-child .v{color:var(--ink)}
.fig .v small{font-family:var(--sans); font-size:13px; font-weight:400; color:var(--ink-2)}
.fig .k{font-size:12px; color:var(--muted); margin-top:5px}
.fig.plain .v{color:var(--ink); font-size:27px}
.pill{display:inline-block; font-size:11px; font-weight:700; padding:1px 9px; border-radius:99px; margin-left:6px}
.pill.up{background:var(--accent-soft); color:var(--ink)}
.pill.mid{background:var(--sunk); color:var(--muted)}
.pill.dn{background:var(--warn-soft); color:var(--warn)}
.hero p{margin:0; font-size:14.5px; line-height:1.9; color:var(--ink-2); max-width:52em}
.hero p + p{margin-top:6px}
.hero b{color:var(--ink); font-weight:700}

/* ── 絞り込みチップ ───────────────────────────────── */
.filterbar{background:var(--surface); border-radius:var(--r); padding:16px 18px 14px;
           box-shadow:0 0 0 1px var(--line); margin-bottom:18px}
.fbhd{display:flex; align-items:baseline; gap:12px; font-size:13px; font-weight:700; margin-bottom:11px}
.fbhd .hint{font-weight:400; color:var(--muted); font-size:12px}
.fbhd .clearf{margin-left:auto; background:none; border:0; color:var(--accent-text); font-size:12px;
              font-family:var(--sans); cursor:pointer; text-decoration:underline; text-underline-offset:2px}
.chips-t{display:flex; flex-wrap:wrap; gap:7px}
.chip-t{display:inline-flex; align-items:center; gap:7px; font-family:var(--sans); font-size:13px;
  padding:7px 13px; border-radius:99px; border:1px solid var(--line-2); background:var(--surface);
  color:var(--ink-2); cursor:pointer; transition:background .12s, border-color .12s, color .12s}
.chip-t:hover{border-color:var(--accent-line); color:var(--accent-text)}
.chip-t[aria-pressed="true"]{background:var(--brand); border-color:var(--brand-line); color:var(--brand-ink); font-weight:700}
.chip-t[aria-pressed="true"] .n{color:var(--brand-ink); opacity:.65}
.chip-t .n{font-family:var(--mono); font-size:11px; color:var(--muted)}
.chip-t:disabled{opacity:.35; cursor:default}
.fbmore{margin-top:10px}
.fbmore summary{font-size:12.5px; color:var(--accent-text); cursor:pointer; list-style:none; display:inline-block}
.fbmore summary::-webkit-details-marker{display:none}
.fbmore summary::before{content:"＋ "}
.fbmore[open] summary::before{content:"− "}
.fbmore .chips-t{margin-top:10px}

/* ── リスト ───────────────────────────────────────── */
.listhd{display:flex; align-items:baseline; gap:12px; margin:0 2px 12px}
.listhd h2{margin:0}
.list{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line); overflow:hidden}
.row{display:block; padding:17px 20px; border-top:1px solid var(--line); transition:background .12s; position:relative}
.row:first-child{border-top:0}
.row:hover{background:var(--sunk)}
.row .hd{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap}
.row .rank{font-family:var(--mono); font-size:12px; color:var(--muted); font-weight:600; min-width:1.6em}
.row .nm{font-size:16.5px; font-weight:700; letter-spacing:.01em}
.row a.nm:hover{color:var(--link)}
.row .ad{font-size:12.5px; color:var(--muted); margin-top:3px}
.walk{display:inline-flex; align-items:baseline; gap:6px; font-size:12.5px; color:var(--accent-text);
      background:var(--accent-soft); border-radius:99px; padding:2px 10px}
.walk em{font-style:normal; font-size:10.5px; opacity:.8}
.walk b{font-weight:700}
.walk .m{font-family:var(--mono); opacity:.8}
.badges,.tags{display:flex; flex-wrap:wrap; gap:6px; margin-top:10px}
.b,.tag{font-size:11.5px; line-height:1.6; padding:2px 10px; border-radius:99px;
        background:var(--sunk); color:var(--ink-2); border:1px solid transparent}
.b em,.tag em{font-style:normal; opacity:.6; font-weight:400; font-size:.86em; margin-left:5px}
.tag.hit,.b.hit{background:var(--accent-soft); color:var(--ink);
  border-color:var(--accent-line); font-weight:700}
.tag.plus{background:var(--warn-soft); color:var(--warn); font-weight:700}
.b.more,.tag.more{background:none; color:var(--muted); border-color:var(--line)}
.b.job{background:var(--warn-soft); color:var(--warn)}
a.b:hover{background:var(--accent-soft); color:var(--ink)}
.sumbox{margin-top:11px; font-size:13.5px; line-height:1.9; color:var(--ink-2);
        border-left:2px solid var(--accent-line); padding-left:13px}
.sumbox .src{display:block; margin-top:5px; font-size:11px; color:var(--muted)}
.sumbox .src a{color:var(--link); text-decoration:underline}
.sumnone{margin-top:11px; font-size:12.5px; color:var(--muted); border-left:2px dashed var(--line-2); padding-left:13px; line-height:1.7}
.cmpchk{display:inline-flex; align-items:center; gap:7px; font-size:12px; color:var(--muted);
        white-space:nowrap; cursor:pointer; padding:3px 4px; border-radius:99px}
.row .hd .cmpchk{margin-left:auto}
.cmpchk.big{font-size:13px; padding:8px 16px; border:1px solid var(--line-2); color:var(--ink-2)}
.cmpchk.big:hover{border-color:var(--accent-line); color:var(--accent-text)}
.cmpchk:hover{color:var(--accent-text)}
.cmpchk input{accent-color:var(--accent-text); margin:0; width:15px; height:15px}
.empty{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line);
       padding:36px; text-align:center; color:var(--muted); font-size:14px}

/* ── ページャ ─────────────────────────────────────── */
.pager{display:flex; align-items:center; justify-content:center; gap:5px; margin-top:20px; flex-wrap:wrap}
.pager button{font-family:var(--mono); font-size:13px; min-width:36px; padding:7px 11px; background:var(--surface);
  color:var(--ink-2); border:1px solid var(--line); border-radius:99px; cursor:pointer}
.pager button:hover:not(:disabled){border-color:var(--accent-line); color:var(--accent-text)}
.pager button[aria-current="page"]{background:var(--brand); color:var(--brand-ink); border-color:var(--brand-line); font-weight:700}
.pager button:disabled{opacity:.35; cursor:default}
.pager .gap{color:var(--muted)}

/* ── タイル（エリア・施術の回遊） ─────────────────── */
.tiles{display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:8px}
.tiles.wide{grid-template-columns:repeat(auto-fill,minmax(258px,1fr))}
.tile{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line);
  padding:12px 15px; display:flex; align-items:center; justify-content:space-between; gap:10px;
  transition:box-shadow .12s, transform .12s}
.tile:hover{box-shadow:0 0 0 1px var(--accent-line); transform:translateY(-1px)}
.tile .t{font-size:13.5px; font-weight:500; min-width:0}
.tile .t small{display:block; font-size:11px; color:var(--muted); font-weight:400; line-height:1.5}
.tile .c{font-family:var(--mono); font-size:12.5px; color:var(--muted); flex:0 0 auto}
.kwgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(232px,1fr)); gap:8px}
.kwgrid a{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line);
  padding:12px 15px; display:flex; align-items:center; justify-content:space-between; gap:10px; transition:box-shadow .12s}
.kwgrid a:hover{box-shadow:0 0 0 1px var(--accent-line)}
.kwgrid .t{font-size:13.5px; font-weight:500}
.kwgrid .c{font-family:var(--mono); font-size:12.5px; color:var(--muted)}
.featgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:8px}
.feat{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line);
  padding:14px 16px; display:flex; flex-direction:column; gap:2px; transition:box-shadow .12s, transform .12s}
.feat:hover{box-shadow:0 0 0 1px var(--accent-line); transform:translateY(-1px)}
.feat .t{font-size:14px; font-weight:700; line-height:1.55}
.feat .d{font-size:11px; color:var(--muted); line-height:1.5}
.feat .c{font-family:var(--mono); font-size:12.5px; color:var(--accent-text); font-weight:600; margin-top:5px}
.stats{display:flex; gap:30px; flex-wrap:wrap; background:var(--surface); border-radius:var(--r);
       box-shadow:0 0 0 1px var(--line); padding:20px 24px; margin-top:22px}
.stat .k{font-size:11.5px; color:var(--muted)}
.stat .v{font-family:var(--serif); font-size:27px; font-weight:700; line-height:1.2; letter-spacing:0}
.stat .v small{font-family:var(--sans); font-size:12px; font-weight:400; color:var(--muted); margin-left:3px}

/* ── 折りたたみの詳細 ─────────────────────────────── */
.tcard .thead{display:flex; align-items:center; gap:14px; margin-bottom:2px}
.tcard .thead .tn{display:flex; flex-direction:column; gap:2px; min-width:0}
.tcard .thead .tname{margin-top:0}
.tavatar{width:76px; height:76px; border-radius:50%; object-fit:cover; flex:none;
  box-shadow:0 0 0 3px var(--surface), 0 0 0 4px var(--brand-line)}
.career{display:flex; flex-wrap:wrap; gap:6px; margin-top:9px}
.career span{font-size:11px; line-height:1.5; background:var(--ground); border:1px solid var(--line);
  border-radius:5px; padding:3px 8px; color:var(--ink-2); white-space:nowrap}
.credit .cav{width:26px; height:26px; border-radius:50%; object-fit:cover; flex:none;
  box-shadow:0 0 0 2px var(--brand-line)}
.edv .eh .eav{width:22px; height:22px; border-radius:50%; object-fit:cover;
  vertical-align:-6px; margin-right:3px; box-shadow:0 0 0 2px var(--brand-line)}
.pickgrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(258px,1fr)); gap:16px}
.pick{display:flex; flex-direction:column; background:var(--surface); border-radius:var(--r);
  box-shadow:0 0 0 1px var(--line); padding:26px 24px 22px; color:inherit; text-decoration:none;
  transition:box-shadow .16s ease, transform .16s ease}
.pick:hover{box-shadow:0 0 0 2px var(--brand-line), 0 10px 26px -14px rgba(26,26,23,.32);
  transform:translateY(-3px)}
.pick:focus-visible{outline:2px solid var(--link); outline-offset:3px}
.pick .pt{font-family:var(--serif); font-weight:700; font-size:21px; color:var(--ink); letter-spacing:.01em}
.pick .pd{font-size:12.5px; color:var(--muted); line-height:1.75; margin-top:6px;
  min-height:calc(1.75em * 3)}
@media(max-width:560px){ .pick .pd{min-height:0} }
.pick .pk{display:block; font-size:10.5px; font-weight:700; letter-spacing:.1em; color:var(--ink-2);
  margin:20px 0 10px; padding-bottom:8px; border-bottom:1px solid var(--line)}
.pick .ty{display:flex; flex-direction:column; gap:1px; padding:7px 0 7px 15px; position:relative}
.pick .ty::before{content:""; position:absolute; left:0; top:14px; width:6px; height:6px;
  border-radius:50%; background:var(--brand); box-shadow:0 0 0 1px var(--brand-line)}
.pick .ty b{font-size:13.5px; font-weight:700; color:var(--ink); line-height:1.5}
.pick .ty i{font-style:normal; font-size:11.5px; color:var(--muted); line-height:1.6}
.pick .pbtn{margin-top:auto; display:flex; align-items:center; justify-content:center; gap:7px;
  background:var(--cta); color:var(--cta-ink); border-radius:99px; padding:13px 20px;
  font-size:13.5px; font-weight:700; letter-spacing:.02em;
  transition:opacity .14s ease}
.pick .ty:last-of-type{margin-bottom:22px}
.pick .pbtn::after{content:"→"; font-size:13px}
.pick:hover .pbtn{opacity:.86}
.teamgrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:16px}
.tcard{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line);
  padding:22px 24px 20px; display:flex; flex-direction:column; gap:7px}
.tcard .trole{display:inline-flex; align-self:flex-start; align-items:center; gap:6px;
  background:var(--brand-soft); border:1px solid var(--brand-line); color:var(--brand-ink);
  border-radius:999px; padding:4px 12px; font-size:11.5px; font-weight:800; letter-spacing:.04em}
.tcard .tname{font-size:19px; font-weight:900; color:var(--ink); letter-spacing:.01em; margin-top:3px}
.tcard .tmeta{font-size:12.5px; color:var(--ink-2); font-weight:600}
.tcard .tdesc{font-size:13.5px; line-height:1.9; color:var(--ink-2); margin-top:5px}
.tcard .tdesc b{color:var(--ink); font-weight:700}
.tcard .tnote{margin-top:auto; padding-top:12px; font-size:11.5px; line-height:1.75; color:var(--muted);
  border-top:1px dashed var(--line)}

.policy{margin-top:16px; background:var(--sunk); border:1px solid var(--brand-line);
  border-radius:var(--r); padding:22px 26px 20px}
.policy .pt{font-weight:900; font-size:15px; color:var(--ink); margin-bottom:14px;
  display:flex; align-items:center; gap:9px}
.policy .pt::before{content:""; width:4px; height:17px; background:var(--brand); border-radius:2px}
.policy ul{margin:0; padding:0; list-style:none; display:grid; gap:11px}
.policy li{font-size:13.5px; line-height:1.85; color:var(--ink-2); padding-left:20px; position:relative}
.policy li::before{content:"✓"; position:absolute; left:0; top:0; color:var(--brand-line);
  font-weight:900; font-size:13px}
.policy li b{color:var(--ink); font-weight:800}
.credit{display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-top:12px;
  font-size:12.5px; color:var(--ink-2)}
.credit .cbadge{display:inline-flex; align-items:center; gap:5px; background:var(--brand-soft);
  border:1px solid var(--brand-line); color:var(--brand-ink); border-radius:999px;
  padding:4px 11px; font-weight:700; font-size:12px; letter-spacing:.02em}
.credit .cwho{font-weight:700; color:var(--ink)}
.credit .cdate{color:var(--muted); font-size:11.5px}

.edv{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line);
  overflow:hidden; margin-top:16px}
.edv > .eh{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
  padding:16px 22px 13px; background:var(--sunk); border-bottom:1px solid var(--brand-line)}
.edv > .eh .et{font-weight:900; font-size:15.5px; color:var(--ink); letter-spacing:.01em}
.edv > .eh .es{font-size:12px; color:var(--ink-2)}
.edv > .eh .es b{color:var(--ink)}
.edv .ebody{padding:20px 22px 6px}
.edv .elead{margin:0 0 4px; font-size:14.5px; line-height:1.95; color:var(--ink-2); max-width:54em}
.edv .elead b{color:var(--ink); font-weight:700}
.edv .epts{margin:16px 0 0; padding:0; list-style:none; display:grid; gap:14px}
.edv .epts > li{padding:14px 16px; background:var(--ground); border-radius:10px;
  border-left:3px solid var(--brand)}
.edv .epts .ph{display:block; font-weight:800; font-size:13.5px; color:var(--ink); margin-bottom:5px}
.edv .epts .pb{font-size:13.5px; line-height:1.9; color:var(--ink-2)}
.edv .epts .pb b{color:var(--ink); font-weight:700}
.edv .efoot{padding:14px 22px 17px; font-size:11.5px; line-height:1.8; color:var(--muted);
  border-top:1px solid var(--line); margin-top:18px; background:var(--surface)}
.edv .efoot b{color:var(--ink-2)}
.edv .conflict{display:block; margin-top:6px; color:var(--ink-2)}

.denom{display:flex; align-items:center; gap:0; flex-wrap:wrap; margin:0 0 2px;
  padding:12px 18px; background:var(--ground); border-radius:10px; font-size:12.5px}
.denom .dstep{display:flex; flex-direction:column; gap:2px; padding:0 14px 0 0}
.denom .dstep + .dstep{padding-left:14px; border-left:1px solid var(--line)}
.denom .dk{font-size:11px; color:var(--muted); letter-spacing:.02em}
.denom .dv{font-weight:800; font-size:14px; color:var(--ink); font-variant-numeric:tabular-nums}
.denom .dv small{font-weight:600; font-size:11px; color:var(--ink-2); margin-left:1px}
.denom .dstep.on .dv{color:var(--link)}
@media(max-width:640px){
  .denom{gap:8px 0}
  .denom .dstep{padding:0 10px 0 0}
  .denom .dstep + .dstep{padding-left:10px}
}
.panelbox{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line); overflow:hidden}
.panelbox > summary{padding:15px 20px; cursor:pointer; font-weight:700; font-size:15px; list-style:none;
  display:flex; align-items:center; gap:10px}
.panelbox > summary::-webkit-details-marker{display:none}
.panelbox > summary::after{content:"▾"; margin-left:auto; color:var(--muted); font-size:12px; transition:transform .15s}
.panelbox[open] > summary::after{transform:rotate(180deg)}
.panelbox > summary:hover{background:var(--sunk)}
.panelbox > summary .cnt{font-family:var(--mono); font-size:12px; color:var(--muted); font-weight:400}
.panelbody{padding:4px 20px 20px; border-top:1px solid var(--line)}

/* ── 相場 ─────────────────────────────────────────── */
.market{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line);
  overflow:hidden; margin-top:2px}
.market > .hd{display:flex; flex-direction:column; gap:5px; padding:17px 22px 14px;
  background:var(--sunk); border-bottom:1px solid var(--brand-line)}
.market > .hd > b{font-size:15px; color:var(--ink); letter-spacing:.01em}
.market > .hd > span{font-size:12px; color:var(--ink-2); line-height:1.6}
.mdenom{padding:16px 22px 0}
.mbody{padding:16px 22px 2px}
.mrow{display:grid; grid-template-columns:repeat(auto-fit,minmax(112px,1fr)); gap:10px; margin:0}
.mrow > div{background:var(--ground); border-radius:10px; padding:12px 14px;
  display:flex; flex-direction:column; gap:3px; min-width:0}
.mrow > div.hi{background:var(--brand-soft); box-shadow:inset 0 0 0 1px var(--brand-line)}
.mrow .k{font-size:11px; color:var(--muted); letter-spacing:.02em}
.mrow .v{font-family:var(--serif); font-size:19px; font-weight:700; color:var(--ink);
  font-variant-numeric:tabular-nums; line-height:1.35}
.mrow .v.mid{font-size:23px; color:var(--ink)}
.mbar{position:relative; height:26px; margin:26px 8px 46px; background:var(--sunk); border-radius:99px}
.mbar .band{position:absolute; top:0; bottom:0; background:var(--brand-soft);
  box-shadow:inset 0 0 0 1px var(--brand-line); border-radius:99px}
.mbar .med{position:absolute; top:-5px; bottom:-5px; width:3px; background:var(--brand-line); border-radius:3px}
.mbar .lab{position:absolute; top:33px; font-size:10.5px; color:var(--muted);
  white-space:nowrap; transform:translateX(-50%); font-variant-numeric:tabular-nums}
.mfoot{padding:16px 22px 17px; font-size:11.5px; color:var(--muted);
  line-height:1.8; border-top:1px solid var(--line)}
.mfoot b{color:var(--ink-2)}
.mfoot + .mfoot{border-top:0; padding-top:0}

/* ── 医院ページ ───────────────────────────────────── */
/* ヒーローは画面の端まで敷く。main に .full を付けているので幅の計算はいらない */
.dhero{position:relative; overflow:hidden;
  background:linear-gradient(168deg, var(--sunk) 0%, var(--brand-soft) 52%, var(--sunk) 100%);
  border-bottom:1px solid var(--brand-line)}
/* 背景はごく薄いテクスチャに留める（文字の可読性を優先） */
.dhero .dbg{position:absolute; inset:0; background-size:cover; background-position:top center;
  filter:saturate(.45) blur(7px); opacity:.11; transform:scale(1.12)}
.dinner{position:relative; z-index:1; max-width:1040px; margin:0 auto; padding:48px 20px 44px;
  display:flex; flex-direction:column; align-items:center; text-align:center}
/* スクリーンショットが無い医院は頭文字を出す */
.dhero .av{width:84px; height:84px; border-radius:20px; background:var(--surface);
  display:flex; align-items:center; justify-content:center; font-family:var(--serif);
  font-size:34px; font-weight:700; color:var(--brand-ink); box-shadow:0 0 0 1px var(--brand-line)}
.dhero .cat{font-size:11.5px; letter-spacing:.22em; color:var(--ink-2); font-weight:700; margin-top:22px}
.dhero h1{font-family:var(--serif); font-size:clamp(25px,4.2vw,40px); line-height:1.36;
  margin:10px 0 0; letter-spacing:.01em; max-width:19em; text-wrap:balance}
.dhero .where{font-size:14px; color:var(--ink-2); margin-top:13px; line-height:1.8}
.dhero .shotsrc{margin:20px 0 0; font-size:10.5px; color:var(--ink-2); opacity:.8}
.dbadges{display:flex; flex-wrap:wrap; gap:7px; justify-content:center; margin-top:22px}
.dbadges span{background:var(--surface); border:1px solid var(--brand-line); border-radius:7px;
  padding:6px 12px; font-size:12px; font-weight:700; color:var(--ink)}
.dbadges span b{font-variant-numeric:tabular-nums; color:var(--brand-ink)}
.dhero .cvmain{justify-content:center; margin-top:26px}
/* ヒーローの直後は section の余白だけで足りるので、上に足さない */
main.full > .wrap > section:first-of-type{margin-top:38px}
main.full > .wrap > p:first-child{margin-top:22px}

/* 公式サイトのスクリーンショット。ヒーローの主役にする */
/* 元画像は 800×450。高解像度の画面でも引き伸ばしにならない範囲で大きく見せる */
.dshot{display:block; width:min(300px,72vw); border-radius:14px; overflow:hidden;
  background:var(--surface); text-decoration:none;
  box-shadow:0 0 0 1px var(--brand-line), 0 18px 34px -18px rgba(120,96,20,.55)}
.dshot img{display:block; width:100%; height:auto}
.dshot .cap{display:block; padding:7px 9px 8px; font-size:10.5px; color:var(--ink-2);
  background:var(--surface); border-top:1px solid var(--line)}
a.dshot:hover{box-shadow:0 0 0 1px var(--link), 0 20px 38px -18px rgba(120,96,20,.65)}
a.dshot:hover .cap{color:var(--link)}
.cbav.shot{background-size:cover; background-position:top left; color:transparent;
  text-indent:-999px; overflow:hidden}
@media(max-width:640px){
  .dinner{padding:34px 18px 32px}
  .dhero .cat{margin-top:18px}
  .dhero .cvmain{margin-top:20px; gap:8px}
  .dhero .cvmain .cv{font-size:13.5px; padding:12px 20px}
}

.dprice{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px}
.dprice > div{background:var(--surface); border-radius:12px; box-shadow:0 0 0 1px var(--line);
  padding:15px 17px}
.dprice .mt{font-size:10.5px; font-weight:700; letter-spacing:.04em; background:var(--brand);
  color:var(--brand-ink); border-radius:4px; padding:2px 8px; display:inline-block}
.dprice .mv{font-family:var(--serif); font-size:24px; font-weight:700; line-height:1.2; margin-top:9px;
  font-variant-numeric:tabular-nums}
.dprice .mv span{font-size:13px; font-weight:400}
.dprice .mu{font-size:11px; color:var(--muted); margin-top:2px}

.rbars{display:grid; gap:5px; margin:14px 0 4px}
.rbar{display:flex; align-items:center; gap:9px; font-size:11.5px}
.rbar .lab{width:2.6em; color:var(--muted); font-variant-numeric:tabular-nums}
.rbar .track{flex:1; height:7px; background:var(--sunk); border-radius:99px; overflow:hidden}
.rbar .fill{height:100%; background:var(--brand); border-radius:99px}
.rbar .cnt{width:2.4em; text-align:right; color:var(--ink-2); font-variant-numeric:tabular-nums}

/* ── 表 ───────────────────────────────────────────── */
.gwrap{overflow-x:auto}
table.guide{width:100%; min-width:600px; border-collapse:collapse; font-size:13.5px}
table.guide th, table.guide td{padding:11px 14px 11px 0; text-align:left; border-top:1px solid var(--line); vertical-align:top}
table.guide thead th{border-top:0; font-size:11.5px; color:var(--muted); font-weight:500; white-space:nowrap}
table.guide td.n{font-family:var(--mono); white-space:nowrap; color:var(--accent-text); font-weight:600}
table.guide td.t{font-weight:700; white-space:nowrap}
table.guide td.t small{display:block; font-weight:400; font-size:11px; color:var(--muted); white-space:normal; line-height:1.5}
table.spec{width:100%; table-layout:fixed; border-collapse:collapse; font-size:14px}
table.spec td{word-break:break-word; overflow-wrap:anywhere}
table.spec th, table.spec td{border-top:1px solid var(--line); padding:12px 4px; text-align:left; vertical-align:top}
table.spec tr:first-child th, table.spec tr:first-child td{border-top:0}
table.spec th{width:8.5em; color:var(--muted); font-weight:500; font-size:13px}
.eki-row{display:flex; align-items:baseline; gap:9px; flex-wrap:wrap; padding:2px 0}
.eki-row .d{font-family:var(--mono); font-size:12.5px; color:var(--muted)}
.eki-row .li{font-size:11.5px; color:var(--muted); min-width:0; overflow-wrap:anywhere}
.todoke{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:2px 18px}
.todoke div{font-size:12.5px; line-height:1.9; color:var(--ink-2)}
.todoke div::before{content:"・"; color:var(--accent-text)}

/* ── FAQ ──────────────────────────────────────────── */
.faq details{border-top:1px solid var(--line)}
.faq details:first-child{border-top:0}
.faq summary{padding:14px 0; cursor:pointer; font-weight:700; font-size:14.5px; list-style:none;
  display:flex; gap:11px; align-items:baseline}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{content:"Q"; font-family:var(--mono); font-size:12px; color:var(--accent-text); flex:0 0 auto}
.faq summary:hover{color:var(--accent-text)}
.faq .ans{padding:0 0 16px 24px; font-size:13.5px; color:var(--ink-2); line-height:1.95}

/* ── 口コミ ───────────────────────────────────────── */
.stars{font-family:var(--mono); letter-spacing:.1em; color:var(--warn); font-size:14px}
.stars .off{opacity:.25}
.revsum{display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:16px 20px;
  background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line)}
.revsum .big{font-family:var(--mono); font-size:32px; font-weight:600; line-height:1; color:var(--warn)}
.revsum .cnt{font-size:12.5px; color:var(--muted)}
.revlist{display:grid; gap:2px; margin-top:12px; background:var(--surface); border-radius:var(--r);
  box-shadow:0 0 0 1px var(--line); overflow:hidden}
.rev{padding:14px 20px; border-top:1px solid var(--line)}
.rev:first-child{border-top:0}
.rev .top{display:flex; align-items:baseline; gap:12px; flex-wrap:wrap}
.rev .when{font-size:11.5px; color:var(--muted); font-family:var(--mono)}
.rev .body{font-size:13.5px; line-height:1.9; margin-top:6px; color:var(--ink-2); white-space:pre-wrap}
.rev .sub{display:flex; gap:14px; flex-wrap:wrap; margin-top:7px; font-size:11.5px; color:var(--muted)}
.rev .sub b{font-family:var(--mono); color:var(--ink-2)}
.rev .del{margin-left:auto; background:none; border:0; color:var(--muted); font-size:11.5px;
  cursor:pointer; text-decoration:underline}
.revform{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line); padding:20px; margin-top:14px}
.revform .fr{display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:12px}
.revform label{font-size:12.5px; color:var(--ink-2); min-width:9em}
.revform select, .revform input[type=text], .revform textarea{font-family:var(--sans); font-size:13.5px;
  color:var(--ink); background:var(--sunk); border:1px solid transparent; border-radius:7px; padding:8px 11px}
.revform select:focus, .revform input:focus, .revform textarea:focus{background:var(--surface); border-color:var(--accent-line); outline:none}
.revform textarea{width:100%; min-height:92px; resize:vertical; line-height:1.75}
.revform button{background:var(--cta); color:var(--cta-ink); border:0; border-radius:99px;
  padding:11px 26px; font-family:var(--sans); font-size:14px; font-weight:700; cursor:pointer}
.revform button:hover{opacity:.9}
.revform .rule{font-size:11.5px; color:var(--muted); line-height:1.75; margin:0 0 14px;
  background:var(--sunk); border-radius:7px; padding:11px 13px}
.revform .msg{font-size:12.5px; color:var(--accent-text); margin-top:9px}

/* ── 比較 ─────────────────────────────────────────── */
#cmpbar{position:fixed; left:0; right:0; bottom:0; z-index:40; background:var(--surface);
  box-shadow:0 -1px 0 var(--line), 0 -10px 30px -22px rgba(0,0,0,.5);
  transform:translateY(102%); transition:transform .2s}
#cmpbar.on{transform:none}
#cmpbar .wrap{display:flex; align-items:center; gap:14px; padding:13px 20px; flex-wrap:wrap}
#cmpbar .names{font-size:12.5px; color:var(--muted); flex:1 1 240px; min-width:0}
#cmpbar .names span{display:inline-block; background:var(--sunk); border-radius:99px;
  padding:3px 11px; margin:2px 5px 2px 0; color:var(--ink-2)}
#cmpbar .go{background:var(--cta); color:var(--cta-ink); border:0; border-radius:99px;
  padding:11px 24px; font-family:var(--sans); font-size:14px; font-weight:700; cursor:pointer}
#cmpbar .go:disabled{opacity:.35; cursor:default}
#cmpbar .clr{background:none; border:0; color:var(--muted); font-size:12.5px; cursor:pointer; text-decoration:underline}
.cmpwrap{overflow-x:auto; background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line)}
table.cmp{border-collapse:collapse; font-size:13px; width:100%}
table.cmp th, table.cmp td{border-bottom:1px solid var(--line); padding:12px 14px; vertical-align:top;
  text-align:left; min-width:180px}
table.cmp thead th{font-size:14px; background:var(--sunk)}
table.cmp th.rh{background:var(--sunk); font-size:12px; color:var(--muted); font-weight:500;
  min-width:9em; position:sticky; left:0}
table.cmp th.rh small{display:block; font-weight:400; font-size:10.5px; color:var(--muted); line-height:1.4}
table.cmp td.hit{color:var(--accent-text); font-weight:700}
table.cmp td.no{color:var(--muted)}

/* ── その他 ───────────────────────────────────────── */
.chips{display:flex; gap:6px; flex-wrap:wrap; margin:14px 0 0}
.chip{display:inline-flex; align-items:center; gap:6px; font-size:12px; background:var(--brand);
  color:var(--brand-ink); border-radius:99px; padding:4px 6px 4px 13px; font-weight:700}
.chip button{background:none; border:0; color:inherit; cursor:pointer; font-size:14px; line-height:1; padding:0 4px}
.slot{background:var(--warn-soft); border-radius:var(--r); padding:16px 18px; margin-bottom:12px}
.slot .lab{font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; color:var(--warn); margin-bottom:7px}
.slot p{margin:0 0 8px; font-size:13px; color:var(--ink-2); line-height:1.75}
.slot a.fake{color:var(--link); text-decoration:underline; font-size:13px}
.cta{background:var(--cta); color:var(--cta-ink); border-radius:99px; padding:11px 20px;
  display:inline-block; font-size:13.5px; font-weight:700; margin-top:2px}
.dcols{display:grid; grid-template-columns:minmax(0,1fr) 290px; gap:34px; align-items:start}
.dcols > *{min-width:0}
@media (max-width:900px){ .dcols{grid-template-columns:1fr} }
footer{border-top:1px solid var(--line); background:var(--surface); padding:28px 0 46px; margin-top:24px}
footer .wrap{font-size:11.5px; color:var(--muted); line-height:1.9}
footer strong{color:var(--ink-2)}
@media (max-width:640px){
  header.top .wrap{flex-wrap:wrap; gap:10px 14px}
  .search{flex:1 1 100%; max-width:none; margin-left:0}
  .figs{gap:22px}
  .fig .v{font-size:28px}
  .row{padding:15px 16px}
  section{margin:34px 0}
}
/* ── 上部の検索バー ───────────────────────────────── */
.sbar{background:var(--surface); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:25}
.sbar .wrap{display:flex; align-items:flex-end; gap:10px; padding:12px 20px; flex-wrap:wrap}
.sfield{display:flex; flex-direction:column; gap:4px; min-width:0; flex:1 1 165px}
.sfield > label{font-size:11px; color:var(--muted); letter-spacing:.03em; padding-left:2px}
.sfield select, .sfield .sbtn{
  font-family:var(--sans); font-size:13.5px; color:var(--ink); background:var(--sunk);
  border:1px solid transparent; border-radius:99px; padding:10px 16px; width:100%;
  text-align:left; cursor:pointer; appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 15px) 50%, calc(100% - 10px) 50%;
  background-size:5px 5px, 5px 5px; background-repeat:no-repeat;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.sfield select:hover, .sfield .sbtn:hover{border-color:var(--accent-line)}
.sfield select:focus, .sfield .sbtn:focus-visible{background-color:var(--surface); border-color:var(--accent-text); outline:none}
.sfield select:disabled{opacity:.5; cursor:default}
.sbtn.on{background-color:var(--brand); color:var(--brand-ink); font-weight:700}
.sfeat{position:relative}
.spop{position:absolute; top:calc(100% + 6px); left:0; z-index:40; width:min(460px,86vw);
  background:var(--surface); border-radius:12px; box-shadow:0 0 0 1px var(--line), 0 18px 40px -20px rgba(0,0,0,.45);
  padding:14px; display:none}
.spop.open{display:block}
.spop .ttl{font-size:12px; color:var(--muted); margin-bottom:9px}
.spop .scroll{max-height:min(340px,46vh); overflow-y:auto; margin:-2px -4px; padding:2px 4px}
.spop .grid{display:flex; flex-wrap:wrap; gap:6px}
.sgrp + .sgrp{margin-top:14px}
.filterbar .sgrp .gt{font-size:12px}
.sgrp .gt{font-size:11.5px; font-weight:700; color:var(--ink-2); margin-bottom:7px;
  display:flex; align-items:baseline; gap:8px}
.sgrp .gt span{font-weight:400; color:var(--muted); font-size:11px}
.spop .doneline{font-size:11.5px; color:var(--muted); line-height:1.6; margin:10px 0 0}
.spop .foot{display:flex; align-items:center; gap:12px; margin-top:12px; padding-top:11px; border-top:1px solid var(--line)}
.spop .foot .clr{background:none; border:0; color:var(--muted); font-size:12px; cursor:pointer; text-decoration:underline}
.spop .foot .done{margin-left:auto; background:var(--cta); color:var(--cta-ink); border:0;
  border-radius:99px; padding:8px 18px; font-family:var(--sans); font-size:13px; font-weight:700; cursor:pointer}
.sgo{flex:0 0 auto; background:var(--cta); color:var(--cta-ink); border:0; border-radius:99px;
  padding:11px 22px; font-family:var(--sans); font-size:14px; font-weight:700; cursor:pointer; height:41px}
.sgo:hover{opacity:.92}
.sreset{flex:0 0 auto; background:none; border:0; color:var(--muted); font-size:12px; cursor:pointer;
  text-decoration:underline; height:41px}
@media (max-width:760px){
  .sbar{position:static}
  .sfield{flex:1 1 46%}
  .sgo{flex:1 1 100%}
}
/* ── 求人 ─────────────────────────────────────────── */
.joblist{display:grid; gap:2px; background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line); overflow:hidden}
.job{padding:16px 20px; border-top:1px solid var(--line)}
.job:first-child{border-top:0}
.job .hd{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap}
.job .jt{font-size:16px; font-weight:700}
.job .emp{font-size:11.5px; padding:2px 10px; border-radius:99px; background:var(--accent-soft); color:var(--accent-text); font-weight:700}
.job .pr{font-size:13px; color:var(--ink-2); margin-top:5px; line-height:1.75}
.job .sal{font-family:var(--mono); font-size:19px; font-weight:600; color:var(--warn); margin-top:8px; letter-spacing:-.01em}
.job .sal small{font-family:var(--sans); font-size:11.5px; color:var(--muted); font-weight:400; margin-left:5px}
.jobmeta{display:grid; grid-template-columns:auto 1fr; gap:5px 14px; margin-top:11px; font-size:12.5px; line-height:1.7}
.jobmeta dt{color:var(--muted); white-space:nowrap}
.jobmeta dd{margin:0; color:var(--ink-2)}
.job .term{font-size:11.5px; color:var(--muted); font-family:var(--mono); margin-top:9px}
.ld{background:var(--sunk); border-radius:7px; padding:13px 15px; margin-top:12px; overflow-x:auto}
.ld pre{margin:0; font-family:var(--mono); font-size:11px; line-height:1.65; color:var(--ink-2); white-space:pre}
.ldwrap > summary{font-size:12.5px; color:var(--accent-text); cursor:pointer; list-style:none; padding:8px 0}
.ldwrap > summary::-webkit-details-marker{display:none}
.ldwrap > summary::before{content:"＋ "}
.ldwrap[open] > summary::before{content:"− "}
/* ── デモの見どころ ───────────────────────────────── */
.demo{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--accent-line); padding:20px 22px; margin-top:22px}
.demo .t{font-size:12px; font-family:var(--mono); letter-spacing:.08em; color:var(--accent-text); margin-bottom:4px}
.demo h2{font-size:16px; margin:0 0 4px}
.demo p{margin:0 0 14px; font-size:13px; color:var(--muted); line-height:1.7}
.demogrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:8px}
.demogrid a{display:block; padding:13px 15px; border-radius:7px; background:var(--sunk); transition:background .12s}
.demogrid a:hover{background:var(--accent-soft)}
.demogrid .k{font-size:13.5px; font-weight:700}
.demogrid .d{font-size:11.5px; color:var(--muted); line-height:1.6; margin-top:2px}
/* ── 医院さま向け編集画面 ─────────────────────────── */
.adminbar{background:var(--ink); color:var(--ground); border-radius:var(--r); padding:14px 20px;
  display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:18px}
.adminbar .who{font-size:13.5px}
.adminbar .who b{font-weight:700}
.adminbar .tag{font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; opacity:.7}
.adminbar .out{margin-left:auto; font-size:12px; opacity:.7; text-decoration:underline}
.status{display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:700;
  padding:4px 12px; border-radius:99px}
.status.draft{background:var(--sunk); color:var(--muted)}
.status.review{background:var(--warn-soft); color:var(--warn)}
.status.live{background:var(--accent-soft); color:var(--ink)}
.efield{padding:18px 0; border-top:1px solid var(--line)}
.efield:first-child{border-top:0}
.efield > label, .efield .lb{display:block; font-size:13.5px; font-weight:700; margin-bottom:3px}
.efield .hint{font-size:11.5px; color:var(--muted); line-height:1.65; margin-bottom:10px}
.efield input[type=text], .efield input[type=url], .efield textarea{
  width:100%; font-family:var(--sans); font-size:13.5px; color:var(--ink); background:var(--sunk);
  border:1px solid transparent; border-radius:7px; padding:9px 12px}
.efield textarea{min-height:86px; resize:vertical; line-height:1.75}
.efield input:focus, .efield textarea:focus{background:var(--surface); border-color:var(--accent-line); outline:none}
.hours{display:grid; grid-template-columns:3.2em 1fr auto; gap:7px 10px; align-items:center}
.hours .d{font-size:13px; color:var(--ink-2)}
.hours label.cl{display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--muted); white-space:nowrap}
.hours input[type=checkbox]{accent-color:var(--accent-text)}
.menurow{display:grid; grid-template-columns:1fr 130px 1fr auto; gap:8px; margin-bottom:8px; align-items:center}
.menurow .rm{background:none; border:0; color:var(--muted); cursor:pointer; font-size:16px; line-height:1; padding:4px 6px}
.menurow .rm:hover{color:var(--warn)}
.addrow{background:none; border:1px dashed var(--line-2); border-radius:7px; color:var(--accent-text);
  font-family:var(--sans); font-size:12.5px; padding:8px 14px; cursor:pointer}
.addrow:hover{border-color:var(--accent-line)}
.locked{background:var(--sunk); border-radius:var(--r); padding:16px 18px; margin-top:8px}
.locked .lt{font-size:12px; color:var(--muted); margin-bottom:9px}
.locked dl{display:grid; grid-template-columns:auto 1fr; gap:5px 14px; margin:0; font-size:13px}
.locked dt{color:var(--muted); white-space:nowrap}
.locked dd{margin:0; color:var(--ink-2)}
.locked .lockbadges{display:flex; flex-wrap:wrap; gap:5px; margin-top:10px}
.locked .lockbadges span{font-size:11px; padding:2px 9px; border-radius:99px; background:var(--surface); color:var(--muted)}
.ebar{position:sticky; bottom:0; z-index:20; background:var(--surface); box-shadow:0 -1px 0 var(--line);
  padding:14px 0; margin-top:8px; display:flex; align-items:center; gap:12px; flex-wrap:wrap}
.ebar .save{background:var(--surface); color:var(--ink-2); border:1px solid var(--line-2); border-radius:99px;
  padding:10px 20px; font-family:var(--sans); font-size:13.5px; font-weight:700; cursor:pointer}
.ebar .pub{background:var(--cta); color:var(--cta-ink); border:0; border-radius:99px;
  padding:11px 24px; font-family:var(--sans); font-size:14px; font-weight:700; cursor:pointer}
.ebar .msg{font-size:12.5px; color:var(--accent-text)}
.ebar .demo{margin-left:auto; font-size:11.5px; color:var(--muted); background:none; border:0;
  cursor:pointer; text-decoration:underline}
.selfinfo{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line); padding:18px 20px}
.selfinfo .src{font-size:11.5px; color:var(--muted); margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid var(--line)}
.selfinfo .src b{color:var(--ink-2)}
.htable{display:grid; grid-template-columns:3.6em 1fr; gap:3px 12px; font-size:13px}
.htable .d{color:var(--muted)}
.htable .v{color:var(--ink-2)}
.htable .v.off{color:var(--muted)}
.mtable{width:100%; border-collapse:collapse; font-size:13.5px; margin-top:4px}
.mtable th, .mtable td{padding:9px 10px 9px 0; border-top:1px solid var(--line); text-align:left; vertical-align:top}
.mtable thead th{border-top:0; font-size:11.5px; color:var(--muted); font-weight:500}
.mtable td.p{font-family:var(--mono); white-space:nowrap; color:var(--warn); font-weight:600}
/* ── 公開前チェック・審査キュー ───────────────────── */
.check{border-radius:var(--r); padding:16px 18px; margin-top:16px}
.check.red{background:var(--warn-soft); box-shadow:0 0 0 1px var(--warn-line)}
.check.yellow{background:var(--sunk); box-shadow:0 0 0 1px var(--line-2)}
.check.green{background:var(--accent-soft); box-shadow:0 0 0 1px var(--accent-line)}
.check .ct{font-size:13.5px; font-weight:700; margin-bottom:9px; display:flex; align-items:center; gap:9px}
.check .verdict{font-size:11px; padding:2px 10px; border-radius:99px; font-weight:700}
.check.red .verdict{background:var(--warn); color:var(--ground)}
.check.yellow .verdict{background:var(--line-2); color:var(--ink)}
.check.green .verdict{background:var(--accent); color:var(--accent-ink)}
.check ul{margin:0; padding:0; list-style:none; display:grid; gap:7px}
.check li{font-size:12.5px; line-height:1.75; display:grid; grid-template-columns:1.2em 1fr; gap:8px; color:var(--ink-2)}
.check li .m{font-family:var(--mono); font-size:12px}
.check li.ng .m{color:var(--warn)}
.check li.wa .m{color:var(--line-2)}
.check li.ok .m{color:var(--accent-text)}
.check li b{color:var(--ink)}
.check li .fld{font-size:11px; color:var(--muted)}
.qrow{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line); padding:16px 18px; margin-bottom:10px}
.qrow .qh{display:flex; align-items:baseline; gap:11px; flex-wrap:wrap}
.qrow .qn{font-size:15.5px; font-weight:700}
.qrow .qa{display:flex; gap:8px; margin-top:12px; flex-wrap:wrap}
.qrow .ok{background:var(--cta); color:var(--cta-ink); border:0; border-radius:99px; padding:9px 20px;
  font-family:var(--sans); font-size:13px; font-weight:700; cursor:pointer}
.qrow .ng{background:var(--surface); color:var(--warn); border:1px solid var(--warn-line); border-radius:99px;
  padding:9px 18px; font-family:var(--sans); font-size:13px; font-weight:700; cursor:pointer}
.qrow .vw{margin-left:auto; font-size:12.5px; color:var(--link); text-decoration:underline; align-self:center}
/* 投稿された本文。原文どおり読めるよう改行を保つ */
.qrow .qbody{margin-top:7px; font-size:13.5px; line-height:1.85; color:var(--ink-2);
  white-space:pre-wrap; overflow-wrap:anywhere}
.qrow .when{font-size:11.5px; color:var(--muted); margin-left:8px}
.qrow .qact{display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:12px}
.qrow .qact select,.qrow .qact input[type=text]{font-family:var(--sans); font-size:12.5px;
  padding:8px 11px; border:1px solid var(--line-2); border-radius:10px; background:var(--surface);
  color:var(--ink)}
.qrow .qact input[type=text]{flex:1 1 200px; min-width:0}
.qrow .undo{background:var(--surface); color:var(--ink-2); border:1px solid var(--line-2);
  border-radius:99px; padding:7px 16px; font-family:var(--sans); font-size:12.5px; cursor:pointer}
.qrow .undo:hover{border-color:var(--link); color:var(--link)}
.qdiff{font-size:12.5px; color:var(--ink-2); line-height:1.8; margin-top:8px}
.qdiff b{color:var(--ink)}
/* ── PR枠（提携医院） ─────────────────────────────── */
.prbox{border:2px solid var(--warn-line); border-radius:var(--r); overflow:hidden; margin-bottom:20px; background:var(--surface)}
.prbox .prhd{background:var(--warn-soft); padding:9px 18px; display:flex; align-items:center; gap:11px; flex-wrap:wrap}
.prbox .prtag{font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:.1em;
  background:var(--warn); color:#FFFFFF; padding:3px 11px; border-radius:99px}
.prbox .prname{font-size:13px; font-weight:700; color:var(--warn)}
.prbox .prwhy{font-size:11.5px; color:var(--ink-2); line-height:1.6; flex:1 1 100%}
.prbox .list{border-radius:0; box-shadow:none}
.prbox .row{padding:16px 18px}
.prfoot{font-size:11.5px; color:var(--muted); padding:11px 18px; border-top:1px solid var(--line); line-height:1.7}
/* ── CVボタン ─────────────────────────────────────── */
.cvrow{display:flex; gap:8px; flex-wrap:wrap; margin-top:13px; align-items:center}
.cv{display:inline-flex; align-items:center; gap:7px; font-family:var(--sans); font-size:13px;
  font-weight:700; padding:9px 17px; border-radius:99px; white-space:nowrap; border:1px solid transparent;
  transition:background .12s, border-color .12s, color .12s; cursor:pointer}
.cv em{font-style:normal; font-family:var(--mono); font-size:12.5px; font-weight:400; opacity:.9}
.cv.tel{background:var(--cta); color:var(--cta-ink)}
.cv.tel:hover{opacity:.9}
.cv.book{background:var(--warn); color:#FFFFFF}
.cv.book:hover{opacity:.9}
.cv.site{background:var(--surface); color:var(--ink-2); border-color:var(--line-2)}
.cv.site:hover{border-color:var(--accent-line); color:var(--accent-text)}
.cv.more{background:var(--sunk); color:var(--ink-2)}
.cv.map{background:var(--surface); color:var(--ink-2); border-color:var(--line-2)}
.cv.map:hover{border-color:var(--link); color:var(--link)}
.cv.more:hover{background:var(--accent-soft); color:var(--ink)}
.row .cvrow .cmpchk{margin-left:auto}
.cvmain{display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin:16px 0 0}
.cvmain .cv{font-size:14.5px; padding:13px 26px}
.cvmain .cv.tel em{font-size:15px; font-weight:600}
.cvnote{font-size:11.5px; color:var(--muted); margin-top:9px; line-height:1.7}
/* ── ページヘッダー（施術名を大きく） ─────────────── */
.pagehead{background:var(--sunk); border-radius:var(--r); padding:44px 24px 40px; text-align:center; margin-top:18px}
.pagehead .cat{font-size:12px; letter-spacing:.22em; color:var(--ink-2); font-weight:700}
.pagehead .rule{width:38px; height:2px; background:var(--brand-line); margin:11px auto 14px; border-radius:2px}
.pagehead h1{margin:0; font-size:clamp(24px,4vw,34px); line-height:1.4}
.pagehead .area{display:block; font-size:.62em; color:var(--ink-2); font-weight:700; margin-bottom:6px}
/* ── スペックバー ─────────────────────────────── */
.specbar{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); background:var(--surface);
  border-radius:var(--r); box-shadow:0 0 0 1px var(--line); overflow:hidden; margin-top:14px}
.specbar > div{padding:16px 20px; border-left:1px solid var(--line)}
.specbar > div:first-child{border-left:0}
.specbar .k{font-size:11px; color:var(--muted); letter-spacing:.06em}
.specbar .v{font-family:var(--serif); font-size:24px; font-weight:700; line-height:1.25; margin-top:3px}
.specbar .v small{font-size:12px; font-weight:400; color:var(--ink-2); margin-left:2px}
/* ── 英字セクションラベル ───────────────────────── */
.seclabel{text-align:center; margin-bottom:6px; font-family:var(--mono); font-size:11px;
  letter-spacing:.24em; color:var(--muted)}
h2.center{justify-content:center; font-size:20px; margin-bottom:18px}
/* ── 条件バーと並び替え ─────────────────────────── */
.hitline{font-size:13.5px; color:var(--ink-2); margin:0 2px 12px}
.hitline b{font-family:var(--serif); font-size:19px; font-weight:700; color:var(--ink); margin:0 3px}
.sortbar{display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin:0 0 14px}
.sortbar .lb{font-size:11.5px; color:var(--muted)}
.sortbar .grp{display:inline-flex; background:var(--sunk); border-radius:99px; padding:3px;
  box-shadow:inset 0 0 0 1px var(--line-2)}
.sortbar .grp a{font-family:var(--sans); font-size:12.5px; padding:6px 15px; border-radius:99px;
  color:var(--ink-2); text-decoration:none; white-space:nowrap; cursor:pointer;
  transition:background .18s ease, color .18s ease, box-shadow .18s ease}
.sortbar .grp a:hover{color:var(--ink); background:rgba(255,255,255,.5)}
.sortbar .grp a[aria-current="true"]{background:var(--surface); color:var(--ink); font-weight:700;
  box-shadow:0 1px 3px rgba(0,0,0,.13), 0 0 0 1px var(--line-2)}
.sortbar .grp a[aria-current="true"]:hover{background:var(--surface)}
.sortbar .grp button{font-family:var(--sans); font-size:12.5px; padding:6px 15px; border:0;
  border-radius:99px; background:none; color:var(--ink-2); cursor:pointer; white-space:nowrap;
  transition:background .18s ease, color .18s ease, box-shadow .18s ease}
.sortbar .grp button:hover{color:var(--ink); background:rgba(255,255,255,.5)}
.sortbar .grp button[aria-current="true"]{background:var(--surface); color:var(--ink); font-weight:700;
  box-shadow:0 1px 3px rgba(0,0,0,.13), 0 0 0 1px var(--line-2)}
.sortbar .grp button:disabled{opacity:.6; cursor:default}
.sortoff{font-size:11.5px; color:var(--muted); text-decoration:underline}
@media(max-width:640px){
  .sortbar{gap:7px}
  .sortbar .grp{flex-wrap:wrap; width:100%; border-radius:16px; gap:2px}
  .sortbar .grp a,.sortbar .grp button{flex:1 0 auto; text-align:center; padding:7px 12px}
}
.sortnote{font-size:12px; color:var(--ink-2); background:var(--sunk); border-radius:10px;
  padding:9px 13px; margin:-8px 0 14px}
/* 現在地順のときにカードへ出す距離 */
.cbstation.here b{color:var(--ink)}
.cbstation.here .w{font-variant-numeric:tabular-nums}
/* ── 3カラムの医院カード ───────────────────────── */
/* ── 医院カード（縦帯） ───────────────────────────── */
.ccard{background:var(--surface); border-radius:14px; box-shadow:0 0 0 1px var(--line),
  0 12px 30px -16px rgba(120,96,20,.26); overflow:hidden; margin-bottom:16px;
  transition:box-shadow .16s ease, transform .16s ease}
.ccard:hover{box-shadow:0 0 0 1px var(--brand-line), 0 16px 34px -16px rgba(120,96,20,.34);
  transform:translateY(-2px)}
.ccard.pr{box-shadow:0 0 0 2px var(--brand-line), 0 12px 30px -16px rgba(120,96,20,.3)}
.cb{padding:14px 18px; border-top:1px solid var(--line)}
.cb:first-child{border-top:0}

.cbhead{display:flex; align-items:flex-start; gap:13px; padding:16px 18px 13px}
.cbav{flex:0 0 auto; width:56px; height:56px; border-radius:12px; display:flex;
  align-items:center; justify-content:center; background:var(--sunk);
  box-shadow:inset 0 0 0 1px var(--brand-line); font-family:var(--serif);
  font-size:22px; font-weight:700; color:var(--brand-ink); overflow:hidden}
.cbid{flex:1; min-width:0}
.cbid .cname{font-family:var(--serif); font-size:17px; font-weight:700; line-height:1.5;
  color:var(--ink); text-decoration:none; letter-spacing:.01em}
.cbid .cname:hover{color:var(--link)}
.cbid .crank{font-size:11.5px; color:var(--muted); font-weight:700; margin-right:8px;
  font-variant-numeric:tabular-nums}
.cbid .cmeta{font-size:11.5px; color:var(--muted); margin-top:4px; line-height:1.7}
.cbrate{flex:none; display:inline-flex; align-items:center; gap:5px; background:var(--brand-soft);
  border:1px solid var(--brand-line); border-radius:999px; padding:4px 12px;
  font-size:13px; font-weight:700; color:var(--brand-ink); white-space:nowrap}
.cbrate small{font-weight:400; font-size:11px; color:var(--ink-2)}

.cbprice{background:linear-gradient(135deg, var(--sunk) 0%, var(--brand-soft) 100%)}
.cbplabel{flex:none; font-size:10.5px; color:var(--ink-2); letter-spacing:.06em; font-weight:700}
.cbptop{display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; margin-top:3px}
.cbpmain{font-family:var(--serif); font-size:19px; font-weight:700; line-height:1.2;
  letter-spacing:-.01em; font-variant-numeric:tabular-nums}
.cbpmain span{font-size:12px; font-weight:400}
.cbpmax{font-size:11.5px; color:var(--muted)}
.cbpmore{font-size:10.5px; color:var(--muted); margin-left:auto}
.cbpsrc{margin:8px 0 0; font-size:10px; color:var(--muted); line-height:1.6}
.cbmenus{list-style:none; margin:9px 0 0; padding:0; display:grid; gap:1px;
  background:var(--line); border-radius:7px; overflow:hidden}
.cbmenus li{display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:8px;
  background:var(--surface); padding:6px 11px; font-size:11.5px; line-height:1.5}
.cbmenus .mtag{font-size:10px; font-weight:700; letter-spacing:.02em; background:var(--brand-soft);
  border:1px solid var(--brand-line); border-radius:4px; padding:2px 7px; white-space:nowrap}
.cbmenus .mname{color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.cbmenus .mprice{font-weight:700; font-variant-numeric:tabular-nums; color:var(--ink); white-space:nowrap}
.cbsrc{font-size:10.5px; color:var(--ink-2); margin-top:9px; line-height:1.6; opacity:.85}
.cbnone{font-size:12.5px; color:var(--ink-2); line-height:1.8; margin-top:5px}
.cbnone b{font-variant-numeric:tabular-nums; color:var(--ink)}

.cbaccess{display:flex; align-items:center; gap:16px; flex-wrap:wrap}
.cbstation{display:inline-flex; align-items:baseline; gap:6px; font-size:13.5px}
.cbstation b{font-weight:700}
.cbstation .w{color:var(--link); font-weight:700}
.cbstation i{font-style:normal; font-size:11px; color:var(--muted); font-variant-numeric:tabular-nums}
.tile.rail .t{font-size:13px}
.tile.rail{background:var(--sunk)}
.weekcal{display:flex; gap:3px; margin-top:10px}
.weekcal > div{width:26px; text-align:center}
.weekcal .d{font-size:10.5px; color:var(--muted); line-height:1.6}
.weekcal .m{font-size:13px; line-height:1.2; color:var(--line-2)}
.weekcal .m.on{color:var(--ink)}
.weekcal .sat .d{color:#3E86B8}
.weekcal .sun .d{color:var(--warn)}
.calnote{font-size:10.5px; color:var(--muted); margin-top:4px}
.cbaccess .weekcal{margin-top:0}
.cbaccess .calnote{display:none}

.cbtags{display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:12px 18px; list-style:none;
  border-top:1px solid var(--line)}
.cbtags .tag{border-radius:5px}
.cbsum{font-size:12.5px; line-height:1.85; color:var(--ink-2); background:var(--ground)}
.cbsum a{color:var(--link); white-space:nowrap}

.cbbottom{display:flex; align-items:center; gap:12px; flex-wrap:wrap; background:var(--surface)}
.cbbottom .cbcta{margin-left:auto; display:flex; gap:7px; flex-wrap:wrap}
.cbbottom .cv.tel{box-shadow:0 8px 16px -10px rgba(26,26,23,.6)}
.cbpr{flex:0 0 100%; font-size:10.5px; color:var(--muted); letter-spacing:.04em; font-weight:700}
@media(max-width:640px){
  .cbhead{gap:11px}
  .cbav{width:46px; height:46px; font-size:18px; border-radius:10px}
  .cbbottom .cbcta{margin-left:0; width:100%}
  .cbpmain{font-size:18px}
}
/* ── 料金カラム ───────────────────────────────── */
.colp{background:var(--sunk); border-radius:10px; padding:15px 17px}
.colp .lb{font-size:11px; color:var(--muted)}
.colp .big{font-family:var(--serif); font-size:29px; font-weight:700; line-height:1.15; margin-top:2px}
.colp .big small{font-size:13px; font-weight:400; color:var(--ink-2); margin-left:2px}
.colp .sub{font-size:11.5px; color:var(--muted); margin-top:2px}
.menurow2{display:flex; align-items:baseline; gap:8px; font-size:12px; padding:6px 0; border-top:1px solid var(--line)}
.menurow2:first-of-type{margin-top:10px}
.menurow2 .tg{font-size:10px; padding:1px 7px; border-radius:99px; background:var(--surface); color:var(--ink-2); white-space:nowrap}
.menurow2 .nm2{flex:1; min-width:0; color:var(--ink-2)}
.menurow2 .pv{font-family:var(--mono); font-weight:600; white-space:nowrap}
.colp .src2{font-size:10.5px; color:var(--muted); margin-top:9px; line-height:1.55}
.nodata{font-size:12px; color:var(--muted); line-height:1.7}
/* ── 操作カラム ───────────────────────────────── */
.cola{display:grid; gap:8px}
.cola .cv{justify-content:center; width:100%}
.cola .cmpchk{justify-content:center; border:1px solid var(--line-2); border-radius:99px; padding:9px 14px; font-size:12.5px}
.cola .prlabel{font-size:10.5px; color:var(--muted); text-align:center; margin-top:2px}
.crev{background:var(--sunk); border-radius:10px; padding:11px 15px; margin-top:14px; font-size:12.5px;
  color:var(--ink-2); line-height:1.75; display:flex; gap:12px; align-items:baseline; flex-wrap:wrap}
.crev .who{margin-left:auto; font-size:11px; color:var(--muted); white-space:nowrap}
.ctags{display:flex; flex-wrap:wrap; gap:5px; margin-top:10px}
/* ── トップのヒーロー ─────────────────────────────── */
.hero2{background:var(--brand); border-radius:var(--r); padding:46px 34px 38px; margin-top:18px; text-align:center}
.hero2 .cp{font-family:var(--serif); font-weight:700; color:#1A1A17; line-height:1.55;
  font-size:clamp(22px,3.6vw,33px); letter-spacing:.01em; text-wrap:balance; margin:0}
.hero2 .cp .box{background:#FFFFFF; padding:2px 14px; border-radius:6px; display:inline-block; margin:3px 2px}
.hero2 .sb{color:#3A3A34; font-size:14px; line-height:1.9; margin:14px auto 0; max-width:40em}
/* 治療＋エリア／路線／駅の4つ。1行に並べると窮屈なので2行に分ける */
.hfind{background:var(--surface); border-radius:14px; padding:16px; margin:24px auto 0; max-width:820px;
  display:grid; grid-template-columns:repeat(3,1fr) auto; gap:10px 10px; align-items:end; text-align:left}
.hfind > div:first-child{grid-column:1 / -1}
@media (max-width:760px){ .hfind{grid-template-columns:1fr 1fr} .hfind button{grid-column:1 / -1} }
@media (max-width:520px){ .hfind{grid-template-columns:1fr} .hfind > div:first-child{grid-column:auto} }
.hfind label{display:block; font-size:11px; color:var(--muted); margin-bottom:4px; padding-left:2px}
.hfind select{width:100%; font-family:var(--sans); font-size:14.5px; color:var(--ink); background:var(--sunk);
  border:1px solid transparent; border-radius:99px; padding:12px 18px; appearance:none; cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size:5px 5px,5px 5px; background-repeat:no-repeat}
.hfind select:focus{background-color:var(--surface); border-color:var(--ink); outline:none}
.hfind button{background:var(--cta); color:var(--cta-ink); border:0; border-radius:99px; padding:13px 30px;
  font-family:var(--sans); font-size:15px; font-weight:700; cursor:pointer; white-space:nowrap}
.hnum{display:flex; justify-content:center; gap:34px; flex-wrap:wrap; margin-top:22px}
.hnum div{text-align:center}
.hnum .v{font-family:var(--serif); font-size:25px; font-weight:700; line-height:1.2; color:#1A1A17}
.hnum .k{font-size:11px; color:#4A4A42; margin-top:2px}
/* ── 特徴カード ─────────────────────────────────── */
.feats3{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:10px}
.feat3{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line); padding:20px 22px}
.feat3 .ic{font-family:var(--mono); font-size:11px; letter-spacing:.1em; color:var(--muted)}
.feat3 .t{font-family:var(--serif); font-size:16px; font-weight:700; margin:6px 0 6px; line-height:1.6}
.feat3 .d{font-size:13px; color:var(--ink-2); line-height:1.85}
.feat3 .d b{color:var(--ink)}
/* ── 悩みから探す ───────────────────────────────── */
.symgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(258px,1fr)); gap:9px}
.sym{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line);
  padding:15px 17px; display:flex; align-items:center; gap:12px; transition:box-shadow .12s, transform .12s}
.sym:hover{box-shadow:0 0 0 1px var(--brand-line); transform:translateY(-1px)}
.sym .q{flex:1; min-width:0}
.sym .q b{display:block; font-size:14px; font-weight:700; line-height:1.55}
.sym .q span{display:block; font-size:11.5px; color:var(--muted); line-height:1.6; margin-top:2px}
.sym .n2{font-family:var(--mono); font-size:12.5px; color:var(--muted); white-space:nowrap}
/* ── 医院さま向け帯 ─────────────────────────────── */
.forclinic{background:var(--ink); border-radius:var(--r); padding:26px 30px; color:#F2EFE6;
  display:grid; grid-template-columns:1fr auto; gap:22px; align-items:center}
@media (max-width:700px){ .forclinic{grid-template-columns:1fr} }
.forclinic .t{font-family:var(--serif); font-size:19px; font-weight:700; color:var(--brand); line-height:1.6}
.forclinic .d{font-size:13.5px; line-height:1.9; color:#CFCABA; margin-top:6px}
.forclinic .btns{display:grid; gap:8px}
.forclinic .btns a{background:var(--brand); color:#1A1A17; border-radius:99px; padding:12px 24px;
  font-size:13.5px; font-weight:700; text-align:center; white-space:nowrap}
.forclinic .btns a.g{background:none; color:#F2EFE6; box-shadow:inset 0 0 0 1px #4A4A42}
@media (prefers-reduced-motion: reduce){ *{transition:none !important} }

/* ── 比較 ───────────────────────────────────────── */
.cmpadd{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);
  color:var(--ink-2);border-radius:999px;padding:0 14px;height:38px;font:600 13px/1 var(--sans);cursor:pointer;
  transition:border-color .15s,color .15s,background .15s}
.cmpadd i{width:14px;height:14px;border:1.5px solid currentColor;border-radius:4px;position:relative;flex:none}
.cmpadd.on{border-color:var(--brand-line);color:var(--ink);background:var(--brand-soft)}
.cmpadd.on i{background:var(--brand);border-color:var(--brand-line)}
.cmpadd.on i::after{content:"";position:absolute;left:3.5px;top:.5px;width:4px;height:8px;
  border:solid var(--brand-ink);border-width:0 2px 2px 0;transform:rotate(42deg)}
.cmpadd:hover:not(:disabled){border-color:var(--line-2);color:var(--ink)}
.cmpadd:disabled{opacity:.4;cursor:not-allowed}
.cmpadd.big{height:46px;padding:0 20px;font-size:14px}

.cmpbar{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--surface);
  border-top:1px solid var(--line);box-shadow:0 -6px 24px rgba(15,26,38,.10)}
.cmpbar .wrap{display:flex;align-items:center;gap:14px;padding:12px 20px;flex-wrap:wrap}
.cmpbar .lb{font:800 12px/1 var(--sans);color:var(--muted);letter-spacing:.04em;flex:none}
.cmpbar .lb .n{color:var(--ink);font-size:16px;margin-left:6px}
.cmpbar .chips{display:flex;gap:8px;flex:1 1 240px;flex-wrap:wrap;min-width:0}
.cmpbar .chip{display:inline-flex;align-items:center;gap:6px;background:var(--sunk);border:1px solid var(--line);
  border-radius:999px;padding:6px 8px 6px 12px;font:600 12px/1.2 var(--sans);color:var(--ink);max-width:210px}
.cmpbar .chip .x{border:0;background:none;color:var(--muted);font-size:15px;line-height:1;cursor:pointer;padding:0 2px}
.cmpbar .chip .x:hover{color:var(--warn)}
.cmpbar .act{display:flex;gap:10px;align-items:center;flex:none}
.cmpbar .clr{border:0;background:none;color:var(--muted);font:600 12px var(--sans);cursor:pointer;text-decoration:underline}
.cmpbar .go.off{pointer-events:none;opacity:.45}
body.hascmp{padding-bottom:84px}

.cmpempty{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:36px 24px;text-align:center}
.cmpempty p{margin:0 0 10px}
.cmpwrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
table.cmp{border-collapse:collapse;width:100%;min-width:640px}
table.cmp th,table.cmp td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);
  padding:14px 12px;vertical-align:middle;text-align:center;font-size:13px}
table.cmp tr>*:last-child{border-right:0}
table.cmp tbody tr:last-child>*{border-bottom:0}
table.cmp .rh{background:var(--sunk);text-align:left;font:700 12px/1.4 var(--sans);color:var(--ink-2);
  width:132px;position:sticky;left:0;z-index:1}
table.cmp .rh .sm{display:block;font-weight:500;color:var(--muted);font-size:11px}
table.cmp thead th{background:var(--surface);position:relative;min-width:190px;vertical-align:top;padding-top:20px}
table.cmp thead .ch{display:flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none;color:inherit}
table.cmp thead .av{width:52px;height:52px;border-radius:14px;background:var(--brand-soft);color:var(--ink);
  display:flex;align-items:center;justify-content:center;font:900 20px/1 var(--sans);background-size:cover;background-position:center}
table.cmp thead .av.shot{color:transparent}
table.cmp thead .nm{font:700 13px/1.45 var(--sans);color:var(--ink)}
table.cmp thead .ch:hover .nm{color:var(--link)}
.cmpdel{position:absolute;top:6px;right:6px;border:1px solid var(--line);background:var(--surface);color:var(--muted);
  width:24px;height:24px;border-radius:50%;font-size:13px;line-height:1;cursor:pointer}
.cmpdel:hover{border-color:var(--warn-line);color:var(--warn)}
table.cmp .big{font:900 22px/1 var(--sans);color:var(--ink)}
table.cmp .sm{color:var(--muted);font-size:11px}
ul.cmpf{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:5px;justify-content:center}
ul.cmpf li{background:var(--sunk);border:1px solid var(--line);border-radius:999px;padding:4px 9px;font-size:11px;color:var(--ink-2)}
.cmpcta{display:flex;flex-direction:column;gap:7px}
table.cmp .weekcal{justify-content:center}
@media(max-width:640px){
  table.cmp .rh{width:96px;font-size:11px;padding:10px 8px}
  table.cmp thead th{min-width:150px}
  .cmpbar .wrap{padding:10px 14px;gap:10px}
  .cmpbar .chips{order:3;flex-basis:100%}
  body.hascmp{padding-bottom:120px}
}

/* 一覧カードの紹介文。参考サイトはここに口コミを置いているが、うちは編集部の紹介文を出す */
.cbnote{display:flex; align-items:flex-start; gap:12px; padding:12px 16px;
  background:var(--sunk); border-top:1px solid var(--line)}
.cbnote p{margin:0; flex:1; min-width:0; font-size:12.5px; line-height:1.85; color:var(--ink-2);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden}
.cbnote .by{flex:none; font-size:10.5px; color:var(--muted); white-space:nowrap; padding-top:3px}
@media(max-width:640px){
  .cbnote{flex-direction:column; gap:5px; padding:11px 14px}
  .cbnote p{-webkit-line-clamp:3}
  .cbnote .by{align-self:flex-end}
}

/* ── 価格帯から探す ───────────────────────────────── */
.bands{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px}
.band{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--line); overflow:hidden}
.band .bhd{display:flex; align-items:baseline; justify-content:space-between; gap:8px;
  padding:13px 16px; background:var(--sunk); border-bottom:1px solid var(--line)}
.band .bhd b{font-family:var(--serif); font-size:16px; font-variant-numeric:tabular-nums}
.band .bhd span{font-size:11.5px; color:var(--muted)}
.band ul{list-style:none; margin:0; padding:6px 0}
.band li + li{border-top:1px solid var(--line)}
.band a{display:flex; align-items:baseline; justify-content:space-between; gap:10px;
  padding:10px 16px; text-decoration:none; color:var(--ink)}
.band a:hover{background:var(--sunk)}
.band .bn{font-size:12.5px; line-height:1.6; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.band .bv{flex:none; font-size:12px; font-weight:700; color:var(--ink-2); font-variant-numeric:tabular-nums}

/* ── エリアから探す ───────────────────────────────── */
.arealinks{display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:8px}
.arealinks a{display:flex; align-items:center; justify-content:space-between; gap:8px;
  background:var(--surface); border-radius:9px; box-shadow:0 0 0 1px var(--line);
  padding:11px 14px; text-decoration:none; color:var(--ink); font-size:13px}
.arealinks a:hover{box-shadow:0 0 0 1px var(--accent-line); background:var(--accent-soft)}
.arealinks .c{font-size:11px; color:var(--muted); font-variant-numeric:tabular-nums}

/* ── 関連コラム ─────────────────────────────────── */
.colcards{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px}
.colcard{display:flex; flex-direction:column; gap:9px; background:var(--surface); border-radius:var(--r);
  box-shadow:0 0 0 1px var(--line); padding:16px 18px; text-decoration:none; color:var(--ink)}
.colcard:hover{box-shadow:0 0 0 1px var(--accent-line)}
.colcard .ct{font-size:13.5px; font-weight:700; line-height:1.65}
.colcard .cd{font-size:11px; color:var(--muted)}
/* 編集部の見解の直下に1枚だけ置く関連コラム */
.colcard.solo{margin-top:12px; gap:6px}
.colcard.solo .cl{font-size:10.5px; font-weight:700; letter-spacing:.08em; color:var(--muted)}
.colcard.solo .ct{font-size:14.5px}
/* アイキャッチ付きは横並び。画像は比率を保って切り抜く */
.colcard.solo.hasimg{flex-direction:row; align-items:center; gap:16px; padding:14px 16px}
.colcard.solo .cimg{flex:0 0 auto; width:150px; border-radius:10px; overflow:hidden;
  background:var(--sunk); line-height:0}
.colcard.solo .cimg img{width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; display:block}
.colcard.solo .ctxt{display:flex; flex-direction:column; gap:6px; min-width:0}
@media(max-width:640px){
  .colcard.solo.hasimg{gap:12px; padding:12px 13px}
  .colcard.solo .cimg{width:108px; border-radius:8px}
  .colcard.solo .ct{font-size:13.5px}
}
@media(max-width:640px){
  .bands{grid-template-columns:1fr}
  .arealinks{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
}

/* ── 保険で受けられる場合がある治療 ───────────────────── */
.insbox{background:var(--surface); border-radius:var(--r); box-shadow:0 0 0 1px var(--brand-line);
  border-top:4px solid var(--brand); padding:22px 24px}
.inslead{margin:0 0 14px; font-size:14.5px; line-height:1.95; font-weight:700}
.inscond{margin:0 0 16px; padding-left:1.2em; font-size:13px; line-height:1.95; color:var(--ink-2)}
.inscond li + li{margin-top:5px}
.insnum{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px}
.insnum > div{flex:1 1 170px; background:var(--sunk); border-radius:9px; padding:11px 14px}
.insnum .k{display:block; font-size:11px; color:var(--muted); line-height:1.6}
.insnum .v{display:block; font-family:var(--serif); font-size:20px; font-weight:700; margin-top:3px;
  font-variant-numeric:tabular-nums}
.insnum .v small{font-size:12px; font-weight:400}
@media(max-width:640px){ .insbox{padding:18px 16px} .insnum > div{flex:1 1 100%} }

/* 出典のリンク。本文と同じ大きさで、下線で区別する */
.note a{color:var(--link); text-decoration:underline; text-underline-offset:2px}
.note a:hover{text-decoration-thickness:2px}
