@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);}
/* セル内リンク（明るいセル背景でも視認できる配色。thead用の白い .lvc-collink とは別） */
.lvc-celllink{color:var(--lvc-rose); font-weight:600; text-decoration:none; border-bottom:1px solid var(--lvc-line); word-break:break-all;}
.lvc-celllink:hover{color:var(--lvc-primary); border-bottom-color:var(--lvc-rose);}
.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-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-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);}
/* 星評価：半星をCSSオーバーレイで描画（フォント非依存。★☆の半星グリフ豆腐化を回避）
   --lvc-rate に 0〜5 の数値を渡すと、その割合だけ金色で塗られる */
.lvc-stars{position:relative; display:inline-block; white-space:nowrap; line-height:1;
  color:#e6d3da; /* 空（下地）の星色 */
  font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;}
.lvc-stars::before{content:"★★★★★";}
.lvc-stars::after{content:"★★★★★"; color:var(--lvc-gold);
  position:absolute; left:0; top:0; overflow:hidden;
  width:calc(var(--lvc-rate,0) / 5 * 100%);}
.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);}

/* ==========================================================
   SWELL(.post_content)型セレクタ打ち消し（.lvcスコープ内のみ）
   親テーマCSSは変更せず、ここで必要最小限を上書きする。
   ショートコード出力は .post_content 直下に入るため、
   詳細度を .lvc プレフィックスで底上げし、CSS読み込み順に依存せず勝てるようにする。
   打ち消し対象（swell/build/css/main.css で確認済み）:
     .post_content table{border-collapse:collapse;border:none}
     .post_content td,th{border:1px solid;padding:.5em}
     .post_content thead td,th{background-color;color}       ← 詳細度(0,1,2)
   ========================================================== */
.lvc .lvc-table{border-collapse:separate; border-spacing:0; min-width:1320px;}
.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;
}
.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; border-bottom:none; border-right:1px solid rgba(255,255,255,.22);}
.lvc .lvc-table thead th.lvc-colhead--lively{background:var(--lvc-rose) !important;}
@media (max-width:640px){ .lvc .lvc-table{min-width:1180px;} }
