@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@500;700&display=swap');
/* ==========================================================
   サブシジョン主要8院比較（女性向けデザイン）
   すべて .lvc 配下にスコープ（テーマとの競合防止）
   ========================================================== */
.lvc{
  --lvc-primary:#7c4455;   /* 深いローズブラウン：見出し */
  --lvc-head:#a8697d;      /* 表ヘッダー */
  --lvc-rose:#c06f8c;      /* アクセント */
  --lvc-rose-pale:#fdf3f6; /* 淡いローズ */
  --lvc-ink:#4d4247;
  --lvc-sub:#9b8b91;
  --lvc-line:#f0dce3;
  --lvc-bg:#fbf6f4;
  --lvc-best:#c9566f; --lvc-best-bg:#fbe7ed;
  --lvc-ok:#7d87c4;   --lvc-ok-bg:#eef0fa;
  --lvc-low:#a09aa0;  --lvc-low-bg:#f4f2f3;
  --lvc-gold:#e0a63c;
  font-size:16px; line-height:1.9; color:var(--lvc-ink);
  -webkit-text-size-adjust:100%;
}
.lvc *,.lvc *::before,.lvc *::after{box-sizing:border-box;}
.lvc h2,.lvc h3,.lvc h4{line-height:1.5; color:var(--lvc-primary); font-weight:700;
  font-family:'Zen Maru Gothic','Hiragino Maru Gothic ProN','Hiragino Kaku Gothic ProN',sans-serif;}
.lvc h2{font-size:1.4rem; margin:3.4em 0 1em; padding:.65em 1em .65em 1.1em; background:var(--lvc-rose-pale); border-radius:14px; position:relative;}
.lvc h2::before{content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:6px; height:60%; background:var(--lvc-rose); border-radius:6px;}
.lvc h3{font-size:1.15rem; margin:2.2em 0 .8em; padding-bottom:.4em; border-bottom:2px dotted var(--lvc-line);}
.lvc p{margin:0 0 1.2em;}
.lvc ul{margin:0 0 1.2em; padding-left:1.3em;}

/* キービジュアル */
.lvc-hero{border-radius:20px; overflow:hidden; margin:0 0 1.8em; line-height:0; box-shadow:0 6px 24px rgba(192,111,140,.14);}
.lvc-hero__svg{width:100%; height:auto; display:block;}
.lvc-hero img{width:100%; height:auto; display:block;}

/* 図解 */
.lvc-fig{margin:1.6em 0 .4em; line-height:0;}
.lvc-fig__svg{width:100%; height:auto; display:block; border-radius:20px;}
.lvc-figcap{font-size:.8rem; color:var(--lvc-sub); text-align:center; margin:.6em 0 1.6em;}

.lvc-lead{font-size:1.02rem;}
.lvc-note{background:var(--lvc-bg); border:1px solid var(--lvc-line); border-radius:14px; padding:1em 1.2em; font-size:.88rem; color:var(--lvc-sub); margin:1.5em 0;}
.lvc-note p{margin:0 0 .6em;} .lvc-note p:last-child{margin:0;}

/* この記事を書いた理由 */
.lvc-reason{border:2px solid var(--lvc-line); border-radius:18px; background:#fff; padding:1.5em 1.6em; margin:1.6em 0 2.2em; position:relative;}
.lvc-reason::before{content:"❝"; position:absolute; top:-14px; left:22px; background:#fff; color:var(--lvc-rose); font-size:1.9rem; line-height:1; padding:0 .3em;}
.lvc-reason p:last-child{margin:0;}
.lvc-reason__quote{font-weight:700; color:var(--lvc-primary); font-size:1.08rem;
  font-family:'Zen Maru Gothic','Hiragino Maru Gothic ProN',sans-serif;}

/* 目次 */
.lvc-toc{border:1px solid var(--lvc-line); border-radius:18px; padding:1.2em 1.5em; margin:2em 0; background:var(--lvc-rose-pale);}
.lvc-toc__title{font-weight:700; color:var(--lvc-primary); margin:0 0 .6em; font-size:1rem; font-family:'Zen Maru Gothic',sans-serif;}
.lvc-toc ol{margin:0; padding-left:1.4em;}
.lvc-toc li{margin:.35em 0;}
.lvc-toc li::marker{color:var(--lvc-rose); font-weight:700;}
.lvc-toc a{color:var(--lvc-primary); text-decoration:none; border-bottom:1px solid transparent;}
.lvc-toc a:hover{border-bottom-color:var(--lvc-rose); color:var(--lvc-rose);}

/* 凡例 */
.lvc-legend{display:flex; flex-wrap:wrap; gap:.6em 1.4em; align-items:center; background:#fff; border:1px solid var(--lvc-line); border-radius:14px; padding:1em 1.2em; margin:1.2em 0 2em; font-size:.9rem;}
.lvc-legend__item{display:flex; align-items:center; gap:.45em; color:var(--lvc-sub);}

/* バッジ */
.lvc-badge{display:inline-flex; align-items:center; justify-content:center; width:1.75em; height:1.75em; border-radius:50%; font-weight:700; font-size:.95rem; flex:none;}
.lvc-badge--best{color:var(--lvc-best); background:var(--lvc-best-bg);}
.lvc-badge--ok{color:var(--lvc-ok); background:var(--lvc-ok-bg);}
.lvc-badge--low{color:var(--lvc-low); background:var(--lvc-low-bg);}

.lvc-imp{display:inline-block; margin-top:.5em; font-size:.7rem; font-weight:600; color:var(--lvc-sub); background:var(--lvc-low-bg); border-radius:20px; padding:.12em .75em;}
.lvc-imp--high{color:#b04a63; background:var(--lvc-best-bg);}

/* ===== 比較テーブル ===== */
.lvc-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--lvc-line); border-radius:16px; background:#fff; margin:1.2em 0 .4em;}
.lvc-scroll:focus-visible{outline:3px solid var(--lvc-rose); outline-offset:2px;}
.lvc-table{border-collapse:separate; border-spacing:0; width:100%; min-width:1320px; font-size:.86rem; line-height:1.65; margin:0;}
.lvc-table th,.lvc-table td{border-bottom:1px solid var(--lvc-line); border-right:1px solid var(--lvc-line); padding:.9em .95em; vertical-align:top; text-align:left; background:#fff;}
.lvc-table tr:last-child th,.lvc-table tr:last-child td{border-bottom:none;}
.lvc-table thead th{position:sticky; top:0; z-index:3; background:var(--lvc-head); color:#fff; font-weight:700; font-size:.88rem; white-space:nowrap; border-bottom:none; border-right:1px solid rgba(255,255,255,.22);}
.lvc-colhead--lively{background:var(--lvc-rose) !important;}
.lvc-collink{color:#fff !important; text-decoration:none; border-bottom:1px dashed rgba(255,255,255,.65); padding-bottom:1px;}
.lvc-collink:hover{border-bottom-style:solid;}
.lvc-rowhead{position:sticky; left:0; z-index:2; background:var(--lvc-bg) !important; font-weight:600; color:var(--lvc-primary); min-width:180px; max-width:210px; box-shadow:2px 0 0 var(--lvc-line);}
.lvc-corner{z-index:4 !important; background:var(--lvc-head) !important; color:#fff;}
.lvc-itemname{display:block;}
.lvc-cell{min-width:190px; max-width:250px;}
.lvc-cell .lvc-badge{margin-bottom:.4em;}
.lvc-cellinfo{display:block; color:var(--lvc-ink);}
.lvc-cell--lively{background:var(--lvc-rose-pale) !important;}
.lvc-cell--tbd .lvc-cellinfo{color:var(--lvc-low);}
.lvc-cell--tbd{background:#fbfafa;}
.lvc-cell--tbd.lvc-cell--lively{background:var(--lvc-rose-pale) !important;}
.lvc-scrollhint{font-size:.78rem; color:var(--lvc-sub); text-align:right; margin:0 0 1.6em;}
@media (max-width:640px){
  .lvc-rowhead{min-width:128px; max-width:140px; font-size:.8rem;}
  .lvc-cell{min-width:168px;}
  .lvc-table{min-width:1180px; font-size:.82rem;}
  .lvc-table th,.lvc-table td{padding:.7em .75em;}
}

/* ===== アコーディオン ===== */
.lvc-acc{border:1px solid var(--lvc-line); border-radius:16px; background:#fff; margin:0 0 1em; overflow:hidden;}
.lvc-acc__head{display:flex; align-items:center; gap:.7em; padding:1.05em 1.2em; cursor:pointer; list-style:none; font-weight:700; color:var(--lvc-primary); background:#fff;
  font-family:'Zen Maru Gothic','Hiragino Maru Gothic ProN',sans-serif;}
.lvc-acc__head::-webkit-details-marker{display:none;}
.lvc-acc__head:hover{background:var(--lvc-rose-pale);}
.lvc-cicon{width:1.35em; height:1.35em; color:var(--lvc-rose); flex:none;}
.lvc-acc__title{font-size:1.02rem;}
.lvc-acc__count{font-size:.75rem; font-weight:600; color:var(--lvc-rose); background:var(--lvc-rose-pale); border-radius:20px; padding:.12em .8em;}
.lvc-acc__icon{margin-left:auto; width:.7em; height:.7em; border-right:2px solid var(--lvc-rose); border-bottom:2px solid var(--lvc-rose); transform:rotate(45deg); transition:transform .2s; flex:none;}
.lvc-acc[open] .lvc-acc__icon{transform:rotate(-135deg);}
.lvc-acc__body{padding:0 1.2em 1.2em;}
.lvc-acc .lvc-scroll{margin-top:.4em;}
@media (prefers-reduced-motion:reduce){.lvc-acc__icon{transition:none;}}

/* ---- 一括開閉トグル・開閉ヒント ---- */
.lvc-acc-tools{display:flex; justify-content:flex-end; margin:0 0 .8em;}
.lvc-acc-toggle{-webkit-appearance:none; appearance:none; border:1.5px solid var(--lvc-rose); background:#fff; color:var(--lvc-rose);
  font-family:inherit; font-size:.85rem; font-weight:700; line-height:1.4; border-radius:20px; padding:.45em 1.4em; cursor:pointer;
  transition:background .15s, color .15s;}
.lvc-acc-toggle:hover{background:var(--lvc-rose); color:#fff;}
.lvc-acc__hint{margin-left:auto; font-size:.72rem; font-weight:600; color:var(--lvc-rose); white-space:nowrap;}
.lvc-acc__hint + .lvc-acc__icon{margin-left:0;}
/* 閉じた見出しはボタンらしく色を付けて「開ける」ことを示す */
.lvc-acc:not([open]) > .lvc-acc__head{background:var(--lvc-rose-pale);}
@media (max-width:480px){
  .lvc-acc__hint{display:none;}
  .lvc-acc__hint + .lvc-acc__icon{margin-left:auto;}
}

/* ===== クリニックカード ===== */
.lvc-card{border:1px solid var(--lvc-line); border-radius:18px; background:#fff; padding:1.5em 1.6em; margin:0 0 1.5em;}
.lvc-card--lively{border:2px solid var(--lvc-rose); box-shadow:0 6px 20px rgba(192,111,140,.13);}
.lvc-card__head{display:flex; flex-wrap:wrap; align-items:baseline; gap:.4em 1em; margin-bottom:.4em;}
.lvc-card__name{margin:0; font-size:1.15rem; border-bottom:none; padding-bottom:0;}
.lvc-card__name a{color:var(--lvc-primary); text-decoration:none; border-bottom:1.5px dashed var(--lvc-rose);}
.lvc-card__name a:hover{border-bottom-style:solid; color:var(--lvc-rose);}
.lvc-card__rating{margin:0; font-size:.9rem; color:var(--lvc-sub);}
.lvc-stars{color:var(--lvc-gold); letter-spacing:.08em;}
.lvc-starnum{font-weight:700; color:var(--lvc-primary); margin-left:.35em;}
.lvc-card__summary{font-size:.95rem; margin-bottom:1em;}
.lvc-card__cols{display:grid; grid-template-columns:1fr 1fr; gap:1em;}
@media (max-width:640px){.lvc-card__cols{grid-template-columns:1fr;}}
.lvc-card__col{border-radius:14px; padding:1.05em 1.15em; font-size:.88rem;}
.lvc-card__col--good{background:var(--lvc-rose-pale);}
.lvc-card__col--bad{background:var(--lvc-bg);}
.lvc-card__label{font-weight:700; margin:0 0 .5em; color:var(--lvc-primary); font-size:.85rem;}
.lvc-card__col ul{margin:0; padding-left:1.2em;}
.lvc-card__col li{margin:.3em 0;}
.lvc-card__col--good li::marker{color:var(--lvc-rose);}

/* 見積書セクション */
.lvc-quote{border:1px solid var(--lvc-line); border-radius:18px; background:#fff; padding:1.4em 1.5em; margin:0 0 1.4em;}
.lvc-quote--pick{border:2px solid var(--lvc-rose); box-shadow:0 6px 20px rgba(192,111,140,.13);}
.lvc-quote__name{margin:0 0 .8em; font-size:1.1rem; border-bottom:none; padding-bottom:0;}
.lvc-quote__name a{color:var(--lvc-primary); text-decoration:none; border-bottom:1.5px dashed var(--lvc-rose);}
.lvc-quote__name a:hover{border-bottom-style:solid; color:var(--lvc-rose);}
.lvc-quote__cols{display:grid; grid-template-columns:minmax(220px,300px) 1fr; gap:1.2em; align-items:start;}
.lvc-quote__ph{margin:0; border:2px dashed #e8c3cf; border-radius:14px; background:var(--lvc-rose-pale); min-height:200px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.6em; padding:1.2em; text-align:center; color:var(--lvc-sub); font-size:.85rem;}
.lvc-quote__phicon svg{width:34px; height:34px; color:var(--lvc-rose);}
.lvc-quote__body{font-size:.92rem;}
.lvc-quote__label{font-weight:700; color:var(--lvc-primary); margin:0 0 .4em; font-size:.85rem; font-family:'Zen Maru Gothic',sans-serif;}
.lvc-quote__comment{margin:0;}
.lvc-tbd{color:var(--lvc-low);}
.lvc-colhead--pick{background:var(--lvc-rose) !important;}
.lvc-cell--pick{background:var(--lvc-rose-pale) !important;}

/* 追加: 見積書ギャラリー・料金表・並び順注記 */
.lvc-quote__gallery{display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:.8em;}
/* スマホ: 1カラム化し、編集部コメントを見積書画像より先に表示 */
@media (max-width:640px){
  .lvc-quote{padding:1.1em 1em;}
  .lvc-quote__cols{grid-template-columns:1fr; gap:.9em;}
  .lvc-quote__body{order:-1;}
  .lvc-quote__gallery{grid-template-columns:1fr;}
}
.lvc-sortnote{font-size:.78rem; color:var(--lvc-sub); margin:.2em 0 .4em;}
.lvc-pricebox{border:2px solid var(--lvc-line); border-radius:18px; background:#fff; padding:1.3em 1.4em 1em; margin:0 0 1em;}
.lvc-pricebox__title{margin:0 0 .5em; font-size:1.05rem; border-bottom:none; padding-bottom:0; color:var(--lvc-primary);}
.lvc-pricebox__lead{font-size:.9rem; margin-bottom:.6em;}
.lvc-table--price{min-width:760px;}
.lvc-table--price .lvc-cell a{color:var(--lvc-rose);}

/* 追加: 料金表・見積枚数チップ */
.lvc-pricebox__sub{font-size:.98rem; color:var(--lvc-primary); margin:1.4em 0 .3em; border-bottom:none; padding-bottom:0;}
.lvc-pricebox__note{font-size:.8rem; color:var(--lvc-sub); margin:0 0 .4em;}
.lvc-table--price{min-width:860px;}
.lvc-table--price .lvc-rowhead{min-width:150px;}
.lvc-cell--price{white-space:nowrap;}
.lvc-chip-min{display:inline-block; margin-left:.5em; font-size:.68rem; font-weight:700; color:#fff; background:var(--lvc-rose); border-radius:20px; padding:.1em .7em; vertical-align:middle;}
.lvc-prow--min th,.lvc-prow--min td{background:#fdf0f4 !important;}
.lvc-prow--min .lvc-cell--pick,.lvc-prow--min .lvc-rowhead.lvc-cell--pick{background:#fdf0f4 !important;}
/* スマホ: 料金表は横スクロールをやめて1行＝1カードの縦積み表示に */
@media (max-width:640px){
  .lvc-scroll--price{overflow-x:visible; border:none; border-radius:0; background:transparent;}
  .lvc-table--price{display:block; min-width:0; width:100%;}
  .lvc-table--price thead{display:none;}
  .lvc-table--price tbody{display:block;}
  .lvc-table--price tr{display:block; border:1px solid var(--lvc-line); border-radius:14px; overflow:hidden; background:#fff; margin:0 0 .8em;}
  .lvc-table--price tr:last-child{margin-bottom:0;}
  .lvc-table--price .lvc-rowhead{display:block; position:static; min-width:0; max-width:none; box-shadow:none; border-right:none; padding:.7em 1em; font-size:.88rem;}
  .lvc-table--price td{display:flex; align-items:baseline; gap:.9em; min-width:0; max-width:none; border-right:none; padding:.55em 1em;}
  .lvc-table--price td:last-child{border-bottom:none;}
  .lvc-table--price td::before{flex:none; width:4em; font-size:.7rem; font-weight:700; color:var(--lvc-sub);}
  .lvc-table--price td:nth-of-type(1)::before{content:"施術範囲";}
  .lvc-table--price td:nth-of-type(2)::before{content:"税込金額";}
  .lvc-table--price td:nth-of-type(3)::before{content:"備考";}
  .lvc-table--price .lvc-cell--price{white-space:normal;}
}
.lvc-plink{color:var(--lvc-primary); text-decoration:none; border-bottom:1px dashed var(--lvc-rose);}
.lvc-plink:hover{color:var(--lvc-rose);}
.lvc-quote__count{margin-left:.7em; font-size:.72rem; font-weight:700; color:var(--lvc-rose); background:var(--lvc-rose-pale); border-radius:20px; padding:.15em .8em; vertical-align:middle;}

/* ==========================================================
   SWELL(.post_content)型セレクタ打ち消し（.lvcスコープ内のみ）
   親テーマCSSは変更せず、ここで必要最小限を上書きする。
   ショートコード出力は .post_content 直下に入るため、
   詳細度を .lvc プレフィックスで底上げし、CSS読み込み順に依存せず勝てるようにする。
   （サブシジョン版 subcision.css の打ち消しブロックを本ページのセレクタに合わせて流用）
   打ち消し対象（swell/build/css/main.css で確認済み）:
     .post_content table{border-collapse:collapse;border:none;line-height:1.6}
     .post_content td,th{border:1px solid;padding:.5em}
     .post_content th{background-color;color;font-weight:700}
     .post_content thead td,th{background-color;color}       ← 詳細度(0,1,2)
   ========================================================== */
.lvc .lvc-table{border-collapse:separate; border-spacing:0; line-height:1.65;}
.lvc .lvc-table th,.lvc .lvc-table td{
  border-top:0; border-left:0;
  border-bottom:1px solid var(--lvc-line); border-right:1px solid var(--lvc-line);
  padding:.9em .95em; vertical-align:top; text-align:left; background:#fff;
}
.lvc .lvc-table tr:last-child th,.lvc .lvc-table tr:last-child td{border-bottom:none;}
.lvc .lvc-table thead th{background:var(--lvc-head); color:#fff; font-weight:700; border-bottom:none; border-right:1px solid rgba(255,255,255,.22);}
.lvc .lvc-rowhead{font-weight:600; color:var(--lvc-primary);}

/* 追加: 見積書画像（IMPLEMENTATION-tokyo-lipo-quotes.md §3-5） */
.lvc-quote__fig{margin:0; border:1px solid var(--lvc-line); border-radius:14px; overflow:hidden; background:#fff;}
.lvc-quote__fig img{width:100%; height:auto; display:block;}
.lvc-quote__fig figcaption{font-size:.78rem; color:var(--lvc-sub); padding:.5em .8em; background:var(--lvc-rose-pale);}

/* 追加: 見積書画像のライトボックス（クリック/タップで拡大） */
.lvc-quote__zoom{display:block; position:relative; cursor:zoom-in;}
.lvc-quote__zoom::after{content:"タップで拡大"; position:absolute; top:8px; right:8px; font-size:.68rem; font-weight:700; color:#fff; background:rgba(51,51,51,.55); border-radius:20px; padding:.2em .8em; pointer-events:none;}
@media (hover:hover){
  .lvc-quote__zoom::after{content:"クリックで拡大";}
}
.lvc-lightbox{position:fixed; inset:0; z-index:99999; background:rgba(20,10,14,.82); display:flex; align-items:center; justify-content:center; padding:20px; cursor:zoom-out;}
.lvc-lightbox__img{max-width:min(94vw,900px); max-height:92vh; width:auto; height:auto; border-radius:8px; background:#fff; box-shadow:0 10px 40px rgba(0,0,0,.45);}
.lvc-lightbox__close{position:absolute; top:14px; right:14px; width:2.4em; height:2.4em; border:none; border-radius:50%; background:rgba(255,255,255,.92); color:#333; font-size:1.2rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center;}
.lvc-lightbox__close:hover{background:#fff;}
