@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@400;500;600;700&display=swap");
/* =========================================================
   むらつ歯科クリニック インプラント専門サイト TOP
   本番用スタイル（デザインカンプ v3 準拠 ＋ レスポンシブ）
   - 未使用の旧FV案・実装指示・sample透かし用CSSは削除済み
   - 末尾に RESPONSIVE ブロック（タブレット/スマホ）
   ========================================================= */

* { margin:0; padding:0; box-sizing:border-box; }
html { font-size:10px; }
body {
  font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;
  font-size:1.6rem; line-height:1.9; color:#26232b; background:#fff; width:100%; overflow-x:hidden;
}
img { max-width:100%; vertical-align:middle; }
a { color:inherit; text-decoration:none; }
.inner { width:1160px; max-width:calc(100% - 40px); margin:0 auto; position:relative; }

:root {
  --pink:#EA557E; --pink-d:#c73a63; --wine:#7c2140;
  --char:#26232b; --char2:#3a3542;
  --gold:#b3998f; --gold-l:#cbb2a6; --gold-pale:#ecdad0;
}
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.goldtxt { background:linear-gradient(115deg,#8a7060 0%,#b8998a 30%,#ecdad0 50%,#b8998a 70%,#8a7060 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.tx-warm { background-color:#f6f4f1; background-image:radial-gradient(rgba(150,130,110,.12) 1px, transparent 1px), radial-gradient(rgba(150,130,110,.08) 1px, transparent 1px); background-size:26px 26px, 17px 17px; background-position:0 0, 9px 13px; }
.tx-paper { background-color:#f8f2e8; background-image:radial-gradient(rgba(160,130,80,.13) 1px, transparent 1px); background-size:22px 22px; }

/* スクロール出現アニメーション */
.reveal { opacity:0; transform:translateY(20px); transition:opacity .6s ease, transform .6s ease; }
.reveal.in { opacity:1; transform:none; }

/* ============ ヘッダー ============ */
header { background:#fff; box-shadow:0 1px 0 #eee9ef; position:relative; z-index:60; }
.header-in { width:1380px; max-width:calc(100% - 40px); margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:12px 0; }
.header-left { display:flex; align-items:center; gap:14px; }
.header-left img { height:50px; width:auto; }
.header-left .site-name { font-family:"Noto Serif JP",serif; font-size:1.35rem; color:#6b6472; letter-spacing:.08em; border-left:1px solid #ddd6e0; padding-left:14px; line-height:1.5; }
.header-right { display:flex; align-items:center; gap:14px; }
.header-tel { text-align:right; line-height:1.25; }
.header-tel .num { font-family:"EB Garamond",serif; font-size:2.6rem; color:var(--char); font-weight:600; }
.header-tel .time { font-size:1.1rem; color:#6b6472; }
.btn-line { background:#20b356; color:#fff; font-weight:700; font-size:1.35rem; padding:14px 20px; letter-spacing:.06em; text-align:center; line-height:1.35; }
.btn-line small, .btn-free small { display:block; font-size:1rem; font-weight:500; letter-spacing:.14em; }
.btn-free { background:linear-gradient(135deg,#c73a63,#EA557E 55%,#f47b9c); color:#fff; font-weight:700; font-size:1.35rem; padding:14px 22px; letter-spacing:.06em; text-align:center; line-height:1.35; box-shadow:0 6px 16px rgba(199,58,99,.35), inset 0 1px 0 rgba(255,255,255,.35); }

/* ハンバーガー（SP用・デフォルト非表示） */
.nav-toggle { display:none; width:46px; height:40px; background:none; border:none; cursor:pointer; flex-direction:column; justify-content:center; gap:6px; padding:0; }
.nav-toggle span { display:block; height:3px; width:28px; margin:0 auto; background:var(--wine); border-radius:2px; transition:transform .3s, opacity .3s; }
body.drawer-open .nav-toggle span:nth-child(1) { transform:translateY(9px) rotate(45deg); }
body.drawer-open .nav-toggle span:nth-child(2) { opacity:0; }
body.drawer-open .nav-toggle span:nth-child(3) { transform:translateY(-9px) rotate(-45deg); }

/* SPドロワー */
.drawer { position:fixed; top:0; right:0; width:300px; max-width:82%; height:100%; background:#fff; box-shadow:-8px 0 30px rgba(60,40,50,.2); transform:translateX(102%); transition:transform .3s ease; z-index:120; overflow-y:auto; }
.drawer.open { transform:translateX(0); }
.drawer-nav { display:flex; flex-direction:column; padding:72px 0 40px; }
.drawer-nav a { padding:16px 26px; font-size:1.6rem; font-weight:700; color:#3a3542; border-bottom:1px solid #f0eaee; }
.drawer-nav .drawer-cv { margin:20px 22px 0; background:linear-gradient(135deg,#c73a63,#EA557E 55%,#f47b9c); color:#fff; text-align:center; border:none; border-radius:6px; padding:16px; }
.drawer-ov { position:fixed; inset:0; background:rgba(25,22,34,.5); z-index:110; }

/* ============ FV（mv4：1面写真×縦書き段組み） ============ */
.mv4 { position:relative; height:890px; overflow:hidden; color:#fff; }
.mv4 .bg { position:absolute; inset:0; }
.mv4 .bg img { width:100%; height:100%; object-fit:cover; object-position:center 10%; display:block; }
.mv4 .ov { position:absolute; inset:0; background:linear-gradient(0deg, rgba(43,15,29,.6), transparent 42%), linear-gradient(100deg, rgba(43,15,29,.93) 16%, rgba(87,29,51,.6) 46%, rgba(43,15,29,.08) 72%, rgba(43,15,29,.38) 100%); }
.mv4 .in { position:relative; z-index:3; width:1300px; max-width:calc(100% - 48px); margin:0 auto; height:100%; }
.mv4 .kicker2 { position:absolute; left:0; top:58px; display:inline-flex; align-items:center; gap:14px; font-size:1.45rem; letter-spacing:.24em; color:var(--gold-pale); }
.mv4 .kicker2::before { content:""; width:46px; height:1px; background:linear-gradient(90deg,var(--gold-l),transparent); }
.mv4 .pill0 { position:absolute; left:0; top:96px; border:1px solid rgba(236,218,208,.7); color:var(--gold-pale); font-family:"Noto Serif JP",serif; font-size:1.55rem; letter-spacing:.2em; padding:6px 26px; }
.vcatch { position:absolute; left:4px; top:168px; writing-mode:vertical-rl; }
.vcatch .c1 { display:block; position:relative; font-family:"Noto Serif JP",serif; font-size:2.1rem; letter-spacing:.34em; color:#ecdad0; margin-left:30px; text-shadow:0 2px 16px rgba(30,8,18,.6); }
.vcatch .c2 { display:block; position:relative; top:0; font-family:"Noto Serif JP",serif; font-size:5rem; font-weight:700; letter-spacing:.16em; margin-left:36px; text-shadow:0 4px 30px rgba(30,8,18,.5); }
.vcatch .c2 .g2 { background:linear-gradient(180deg,#e7d5c6,#cbb2a6 50%,#ecdad0); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.vcatch .c3 { display:block; position:relative; top:56px; font-family:"Noto Serif JP",serif; font-size:5rem; font-weight:700; letter-spacing:.16em; background:#fff; color:#571d33; padding:26px 13px; box-shadow:0 18px 46px rgba(30,8,18,.5); }
.mv4 .foot { position:absolute; left:362px; right:0; bottom:76px; display:flex; align-items:center; gap:40px; border-top:1px solid rgba(203,178,166,.4); padding-top:24px; }
.mv4 .stats { display:flex; gap:30px; align-items:baseline; }
.mv4 .stat2 { font-family:"Noto Serif JP",serif; font-size:1.45rem; letter-spacing:.06em; color:rgba(255,255,255,.92); text-shadow:0 2px 14px rgba(30,8,18,.6); white-space:nowrap; }
.mv4 .stat2 b { font-family:"EB Garamond",serif; font-size:3.4rem; font-weight:500; margin-right:4px; line-height:1; color:var(--gold-pale); }
.mv4 .cta { display:flex; gap:14px; margin-left:auto; white-space:nowrap; }
.mv4 .cta-a { background:linear-gradient(135deg,#c73a63,#EA557E 55%,#f47b9c); color:#fff; padding:14px 36px; font-family:"Noto Serif JP",serif; font-size:1.8rem; font-weight:700; letter-spacing:.1em; box-shadow:0 14px 34px rgba(30,8,18,.4), inset 0 1px 0 rgba(255,255,255,.45); text-align:center; line-height:1.35; }
.mv4 .cta-a small { display:block; font-family:"Noto Sans JP",sans-serif; font-size:1.1rem; letter-spacing:.16em; font-weight:500; }
.mv4 .cta-b { border:1px solid rgba(255,255,255,.7); color:#fff; padding:14px 28px; text-align:center; line-height:1.35; background:rgba(43,15,29,.35); }
.mv4 .cta-b .n { font-family:"EB Garamond",serif; font-size:2.4rem; }
.mv4 .cta-b .t { font-size:1.05rem; color:rgba(255,255,255,.75); }
.mv4 .round { position:absolute; right:24px; top:74px; width:168px; height:168px; border-radius:50%; background:radial-gradient(circle at 50% 28%, #EA557E, #7c2140); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#fff; font-family:"Noto Serif JP",serif; font-size:1.45rem; line-height:1.5; box-shadow:0 16px 44px rgba(30,8,18,.5); z-index:5; }
.mv4 .round b { font-size:2.5rem; }
.mv4 .round small { font-size:1.15rem; letter-spacing:.1em; }
.mv4 .round::after { content:""; position:absolute; inset:8px; border:1px dashed rgba(255,255,255,.65); border-radius:50%; }

/* FV下：実績3カード＋費用帯 */
.fv-under2 { position:relative; padding-bottom:48px; background-color:#f6f4f1; background-image:radial-gradient(rgba(150,130,110,.12) 1px, transparent 1px); background-size:22px 22px; }
.statrow2 { width:1160px; max-width:calc(100% - 40px); margin:-26px auto 0; position:relative; z-index:5; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.statcard2 { background:#fff; box-shadow:0 24px 60px rgba(60,30,45,.18); text-align:center; padding:0 20px 24px; position:relative; }
.statcard2::after { content:""; position:absolute; left:24px; right:24px; bottom:14px; height:1px; background:linear-gradient(90deg,transparent,var(--gold-l),transparent); }
.statcard2 .ic { width:66px; height:66px; margin:-33px auto 12px; background:linear-gradient(135deg,#8a7060,#cbb2a6); transform:rotate(45deg); display:flex; align-items:center; justify-content:center; box-shadow:0 10px 26px rgba(60,30,45,.35); }
.statcard2 .ic span { transform:rotate(-45deg); color:#fff; font-family:"Noto Serif JP",serif; font-size:2.4rem; font-weight:700; }
.statcard2 .lb { display:block; font-size:1.35rem; letter-spacing:.34em; color:#571d33; font-weight:700; margin-bottom:6px; }
.statcard2 .lb small { display:block; font-family:"EB Garamond",serif; font-style:italic; font-size:1.05rem; color:#b0a6ae; letter-spacing:.16em; }
.statcard2 .v { font-family:"EB Garamond",serif; font-size:5.4rem; line-height:1.1; color:#8a7060; }
.statcard2 .v small { font-size:1.9rem; font-family:"Noto Serif JP",serif; color:#26232b; }
.statcard2 .v.jp { font-family:"Noto Serif JP",serif; font-size:2.9rem; padding:10px 0; display:block; color:#571d33; }
.statcard2 .v.jp b { color:#8a7060; }
.statcard2 .t { font-size:1.35rem; color:#5c5464; margin-top:6px; letter-spacing:.06em; padding-bottom:14px; }
/* 費用帯（レシート型フルバンド） */
.feeband { width:1160px; max-width:calc(100% - 40px); margin:44px auto 0; background:#fff; box-shadow:0 24px 60px rgba(60,30,45,.16); display:flex; align-items:stretch; position:relative; }
.feeband::before { content:""; position:absolute; top:0; left:0; right:0; height:5px; background:linear-gradient(90deg,#571d33 0%,#8a3352 40%,var(--gold-l)); }
.feeband .side { flex:0 0 200px; background:linear-gradient(160deg,#2b0f1d,#571d33); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; position:relative; overflow:hidden; }
.feeband .side::after { content:""; position:absolute; right:-18px; top:0; width:70px; height:100%; background:rgba(203,178,166,.25); clip-path:polygon(40% 0,100% 0,100% 100%,0 100%); }
.feeband .side .ja { font-family:"Noto Serif JP",serif; font-size:2.2rem; letter-spacing:.24em; }
.feeband .side .en { font-family:"EB Garamond",serif; font-style:italic; font-size:1.3rem; letter-spacing:.2em; color:var(--gold-pale); }
.feeband .cell { flex:1; padding:30px 30px 26px; display:flex; flex-direction:column; justify-content:center; text-align:center; position:relative; }
.feeband .cell:not(:last-child)::after { content:""; position:absolute; right:0; top:24px; bottom:24px; width:1px; background:#f0e4ea; }
.feeband .cl { display:inline-block; margin:0 auto 10px; background:#f6ecf0; color:#571d33; font-size:1.25rem; font-weight:700; letter-spacing:.14em; padding:3px 18px; border-radius:100px; }
.feeband .num { font-family:"EB Garamond",serif; font-size:5rem; line-height:1.1; color:#571d33; }
.feeband .num.g { color:#8a7060; }
.feeband .num .pre { font-size:1.9rem; font-family:"Noto Serif JP",serif; color:#6b6472; margin-right:6px; }
.feeband .num small { font-size:1.8rem; font-family:"Noto Serif JP",serif; color:#26232b; }
.feeband .cap { font-size:1.25rem; color:#8a8290; margin-top:4px; }
.feeband .pay { text-align:left; margin:0 auto; }
.feeband .pay li { list-style:none; font-size:1.4rem; color:#4a4453; padding:2px 0; }
.feeband .pay li:not(.kj)::before { content:"✓ "; color:var(--gold); font-weight:700; }
.feeband .pay .kj { margin-top:8px; font-size:1.2rem; color:#8a7060; border-top:1px dashed #e8dccc; padding-top:8px; }

/* ============ グロナビ ============ */
.gnav { background:#fff; border-top:1px solid #f0eaee; border-bottom:1px solid #f0eaee; }
.gnav.stuck { position:fixed; top:0; left:0; right:0; z-index:100; box-shadow:0 6px 20px rgba(60,40,50,.12); }
.gnav-in { width:1300px; max-width:calc(100% - 24px); margin:0 auto; display:flex; align-items: center; }
.gnav a { flex:1; text-align:center; padding:16px 6px 14px; font-size:1.5rem; font-weight:700; color:#3a3542; line-height:1.3; border-left:1px solid #f0eaee; }
.gnav a:last-of-type { border-right:1px solid #f0eaee; }
.gnav a small { display:block; font-family:"EB Garamond",serif; font-style:italic; font-size:1.1rem; color:#b0a6ae; letter-spacing:.1em; font-weight:400; }
.gnav .cv { flex:1.2; background:linear-gradient(135deg,#c73a63,#EA557E 55%,#f47b9c); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; font-size:1.6rem; font-weight:700; letter-spacing:.08em; }
.gnav .cv small { color:rgba(255,255,255,.85); font-family:"Noto Sans JP",sans-serif; font-style:normal; }

/* ============ 無料相談バンド ============ */
.consult { position:relative; min-height:430px; display:flex; align-items:center; overflow:hidden; color:#fff; }
.consult .bg { position:absolute; inset:0; }
.consult .bg img { width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.consult .ov { position:absolute; inset:0; background:linear-gradient(90deg, rgba(25,22,34,.88) 30%, rgba(124,33,64,.55) 70%, rgba(25,22,34,.4)); }
.consult .c { position:relative; z-index:3; width:1160px; max-width:calc(100% - 40px); margin:0 auto; text-align:center; padding:64px 0; }
.consult h2 { font-family:"Noto Serif JP",serif; font-size:4rem; font-weight:700; letter-spacing:.08em; line-height:1.6; }
.consult h2 .g { color:var(--gold-pale); }
.consult .sub2 { margin-top:12px; font-size:1.7rem; letter-spacing:.08em; color:rgba(255,255,255,.92); }
.consult-pills { display:flex; justify-content:center; gap:20px; margin-top:28px; }
.consult-pill { display:flex; align-items:center; border:1px solid rgba(255,255,255,.55); }
.consult-pill .k2 { background:rgba(203,178,166,.9); color:#26232b; font-weight:700; font-size:1.4rem; padding:10px 20px; letter-spacing:.14em; }
.consult-pill .v2 { padding:10px 24px; font-size:1.5rem; letter-spacing:.04em; }
.consult-cta { display:inline-block; margin-top:32px; background:linear-gradient(135deg,#c73a63,#EA557E 50%,#f47b9c); color:#fff; font-weight:900; font-size:2rem; letter-spacing:.1em; padding:18px 74px; border-radius:100px; box-shadow:0 14px 36px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.45); }

/* ============ お悩みカードグリッド ============ */
.worry { padding:96px 0 100px; }
.worry-head { text-align:center; margin-bottom:16px; }
.worry-head .en { font-family:"EB Garamond",serif; font-style:italic; font-size:1.7rem; letter-spacing:.3em; color:var(--gold); }
.worry-head h2 { font-family:"Noto Serif JP",serif; font-size:3.6rem; font-weight:700; letter-spacing:.1em; margin-top:4px; }
.worry-head h2 b { color:var(--pink-d); }
.worry-lead { text-align:center; font-size:1.5rem; color:#5c5464; margin-bottom:44px; }
.worry-grid { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.worry-card { display:flex; background:#fff; box-shadow:0 16px 44px rgba(60,40,50,.12); position:relative; overflow:hidden; min-height:190px; transition:transform .25s, box-shadow .25s; }
.worry-card:hover { transform:translateY(-4px); box-shadow:0 22px 54px rgba(60,40,50,.18); }
.worry-card::after { content:""; position:absolute; top:0; right:0; border-top:48px solid var(--gold-l); border-left:48px solid transparent; }
.worry-card:nth-child(even)::after { border-top-color:var(--pink-d); }
.worry-card .ph { flex:0 0 225px; overflow:hidden; }
.worry-card .ph img { width:100%; height:100%; object-fit:cover; display:block; }
.worry-card .tx { flex:1; padding:24px 30px 40px 26px; }
.worry-card .tx h3 { font-family:"Noto Serif JP",serif; font-size:2rem; line-height:1.5; margin-bottom:8px; }
.worry-card .tx h3 span { color:var(--pink-d); }
.worry-card .tx p { font-size:1.35rem; color:#5c5464; line-height:1.75; }
.worry-card .vm { position:absolute; right:0; bottom:0; background:linear-gradient(135deg,var(--wine),var(--pink-d)); color:#fff; font-size:1.25rem; font-weight:700; letter-spacing:.1em; padding:7px 24px; }

/* ============ STRENGTH 共通 ============ */
section { position:relative; }
.st-band { position:relative; height:300px; display:flex; align-items:center; justify-content:center; text-align:center; overflow:hidden; color:#fff; clip-path:polygon(0 0, 100% 40px, 100% 100%, 0 calc(100% - 40px)); }
.st-band .bg { position:absolute; inset:0; }
.st-band .bg img { width:100%; height:100%; object-fit:cover; }
.st-band .ov { position:absolute; inset:0; background:linear-gradient(100deg, rgba(25,22,34,.93) 30%, rgba(58,45,60,.72) 60%, rgba(124,33,64,.5)); }
.st-band .shard { position:absolute; right:-40px; top:0; width:360px; height:100%; background:linear-gradient(135deg,rgba(179,153,143,.85),rgba(236,218,208,.4)); clip-path:polygon(38% 0, 100% 0, 100% 100%, 0 100%); }
.st-band .c { position:relative; z-index:2; }
.st-band h2 { font-family:"EB Garamond",serif; font-size:6.6rem; letter-spacing:.1em; line-height:1.05; font-weight:400; }
.st-band .ja { font-size:1.6rem; letter-spacing:.44em; margin-top:6px; color:rgba(255,255,255,.85); }
.st-band .ja::before, .st-band .ja::after { content:"―"; margin:0 14px; color:var(--gold-l); }

.st-head { display:flex; align-items:flex-end; gap:24px; margin-bottom:46px; position:relative; z-index:2; }
.st-head.center { justify-content:center; text-align:center; }
.st-num { font-family:"EB Garamond",serif; font-style:italic; font-size:9rem; line-height:.78; color:transparent; -webkit-text-stroke:1.5px var(--gold); flex:0 0 auto; }
.st-ttl .k { font-size:1.25rem; letter-spacing:.3em; color:var(--gold); font-weight:700; font-family:"EB Garamond",serif; }
.st-ttl h2 { font-family:"Noto Serif JP",serif; font-size:3.5rem; font-weight:700; line-height:1.5; letter-spacing:.04em; }
.st-ttl h2 .pk { color:var(--pink-d); }
.on-dark .st-num { -webkit-text-stroke:1.5px var(--gold-l); }
.on-dark .st-ttl h2 { color:#fff; }
.on-dark .st-ttl h2 .pk { color:var(--gold-pale); }

.vlabel { position:absolute; writing-mode:vertical-rl; font-family:"EB Garamond",serif; font-style:italic; font-size:4.8rem; letter-spacing:.24em; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.16); pointer-events:none; z-index:1; white-space:nowrap; }

/* S01 実績 */
.s01 { position:relative; padding:96px 0 90px; color:#fff; overflow:hidden; background:linear-gradient(115deg,#191622 0%,#26232b 50%,#3a3542 100%); }
.s01::before { content:""; position:absolute; left:-60px; top:-30px; width:380px; height:130%; background:linear-gradient(135deg,#7c2140,#c73a63); clip-path:polygon(0 0, 60% 0, 100% 100%, 0 100%); opacity:.5; }
.stats-grid { display:flex; justify-content:center; gap:0; position:relative; z-index:2; }
.stat { text-align:center; padding:0 52px; position:relative; }
.stat:not(:last-child)::after { content:""; position:absolute; right:0; top:12px; bottom:12px; width:1px; background:linear-gradient(180deg,transparent,rgba(203,178,166,.6),transparent); }
.stat .v { font-family:"EB Garamond",serif; font-size:7.4rem; line-height:1; color:#ecdad0; }
.stat .v small { font-size:2.2rem; font-family:"Noto Serif JP",serif; margin-left:4px; }
.stat .t { font-size:1.45rem; letter-spacing:.12em; margin-top:10px; color:rgba(255,255,255,.85); }
.stat .cap { font-size:1.1rem; color:rgba(255,255,255,.55); margin-top:4px; }
.s01-foot { display:flex; justify-content:flex-end; align-items:center; margin-top:44px; position:relative; z-index:2; }
.s01-foot .note { font-size:1.3rem; color:rgba(255,255,255,.6); }

/* S02 ガイド */
.s02 { padding:100px 0; }
.proc { display:flex; gap:0; margin-top:10px; }
.proc-step { flex:1; text-align:center; position:relative; padding:0 20px; }
.proc-step:not(:last-child)::after { content:"▸"; position:absolute; right:-9px; top:70px; color:var(--gold); font-size:2.4rem; }
.proc-step .fig { height:150px; overflow:hidden; box-shadow:0 14px 34px rgba(60,40,50,.16); margin-bottom:16px; background:#fff; }
.proc-step .fig img { width:100%; height:100%; object-fit:cover; display:block; }
.proc-step .fig.dia { display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#26232b,#3a3542); }
.proc-step .fig.dia span { color:var(--gold-pale); font-family:"EB Garamond",serif; font-size:4rem; }
.proc-step h3 { font-family:"Noto Serif JP",serif; font-size:1.8rem; margin-bottom:6px; }
.proc-step p { font-size:1.35rem; color:#5c5464; line-height:1.75; }
.s02-callout { margin-top:50px; background:linear-gradient(115deg,#7c2140,#c73a63); color:#fff; padding:30px 44px; display:flex; align-items:center; gap:30px; box-shadow:0 20px 50px rgba(124,33,64,.3); clip-path:polygon(22px 0, 100% 0, calc(100% - 22px) 100%, 0 100%); }
.s02-callout .crown { font-size:4rem; color:var(--gold-pale); }
.s02-callout .t { font-family:"Noto Serif JP",serif; font-size:2.2rem; letter-spacing:.06em; line-height:1.6; }
.s02-callout .t b { color:var(--gold-pale); }
.s02-callout .s { font-size:1.35rem; color:rgba(255,255,255,.8); }

/* S03 ロキソリッド */
.s03 { position:relative; padding:100px 0; color:#fff; overflow:hidden; background:linear-gradient(128deg,#141119 0%,#26232b 60%,#3a3542 100%); }
.s03::after { content:""; position:absolute; right:-80px; top:-40px; width:420px; height:420px; background-image:radial-gradient(rgba(203,178,166,.3) 2.2px, transparent 2.2px); background-size:20px 20px; }
.s03-in { display:flex; align-items:center; gap:60px; position:relative; z-index:2; }
.s03-txt { flex:1; }
.s03-txt .big { font-family:"Noto Serif JP",serif; font-size:4.6rem; font-weight:700; line-height:1.5; margin:18px 0 16px; }
.s03-txt p { font-size:1.55rem; color:rgba(255,255,255,.88); margin-bottom:12px; }
.s03-specs { display:flex; gap:14px; margin-top:22px; }
.s03-spec { border:1px solid rgba(203,178,166,.5); background:rgba(203,178,166,.08); padding:14px 24px; text-align:center; font-size:1.35rem; line-height:1.6; }
.s03-spec b { display:block; font-family:"Noto Serif JP",serif; font-size:1.7rem; color:var(--gold-pale); }
.s03-ph { flex:0 0 460px; position:relative; }
.s03-ph img { width:100%; display:block; box-shadow:0 30px 70px rgba(0,0,0,.5); }
.s03-ph::after { content:""; position:absolute; right:-16px; bottom:-16px; width:55%; height:55%; border-right:3px solid var(--gold-l); border-bottom:3px solid var(--gold-l); }

/* S04 定額＋シミュレーター */
.s04 { padding:100px 0; position:relative; overflow:hidden; }
.price-hero { width:860px; max-width:100%; margin:0 auto 24px; text-align:center; position:relative; color:#fff; padding:52px 30px 44px; background:linear-gradient(128deg,#191622 0%,#26232b 55%,#3a3542 100%); box-shadow:0 30px 70px rgba(25,22,34,.4); }
.price-hero::before { content:""; position:absolute; inset:10px; border:1px solid rgba(236,218,208,.4); pointer-events:none; }
.price-hero .t { font-family:"Noto Serif JP",serif; font-size:2.1rem; letter-spacing:.18em; }
.price-hero .num { font-family:"EB Garamond",serif; font-size:9rem; line-height:1.1; }
.price-hero .num small { font-size:2.6rem; font-family:"Noto Serif JP",serif; }
.price-hero .cap { font-size:1.5rem; color:var(--gold-pale); letter-spacing:.1em; margin-top:4px; }
.price-hero .rib { position:absolute; top:-18px; left:50%; transform:translateX(-50%); white-space:nowrap; background:linear-gradient(135deg,#7c2140,#c73a63); color:#fff; font-size:1.4rem; font-weight:700; letter-spacing:.12em; padding:9px 32px; box-shadow:0 8px 20px rgba(124,33,64,.45); }
.price-comp { width:1000px; max-width:100%; margin:40px auto 0; display:grid; grid-template-columns:1fr 1fr; box-shadow:0 18px 44px rgba(60,40,50,.12); }
.price-comp .col { padding:26px 34px 28px; }
.price-comp .col.them { background:#efeae6; color:#6b6472; }
.price-comp .col.us { background:linear-gradient(135deg,#7c2140,#c73a63); color:#fff; }
.price-comp h3 { font-family:"Noto Serif JP",serif; font-size:1.8rem; letter-spacing:.08em; margin-bottom:10px; text-align:center; }
.price-comp .col.them h3 { color:#5c5464; }
.price-comp p { font-size:1.45rem; line-height:1.9; }
.price-comp .col.us p b { color:var(--gold-pale); }
.inc-grid { width:1000px; max-width:100%; margin:40px auto 0; display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.inc-item { background:#fff; border:1px solid #eee4e8; padding:16px 12px; text-align:center; font-size:1.4rem; font-weight:700; color:#4a4453; box-shadow:0 8px 22px rgba(60,40,50,.06); }
.inc-item::before { content:"✓"; display:block; color:var(--gold); font-size:1.7rem; }
.price-notes { width:1000px; max-width:100%; margin:26px auto 0; font-size:1.35rem; color:#6b6472; }
.price-notes li { list-style:none; padding-left:1.3em; text-indent:-1.3em; margin-bottom:5px; }
.price-notes li::before { content:"※ "; color:var(--gold); }

/* 歯タップ式シミュレーター */
.sim2 { width:1000px; max-width:100%; margin:46px auto 0; background:#fff; box-shadow:0 24px 60px rgba(60,30,45,.16); overflow:hidden; }
.sim2-hd { background:linear-gradient(115deg,#2b0f1d,#571d33 60%,#8a3352); color:#fff; padding:24px 36px 20px; position:relative; overflow:hidden; }
.sim2-hd::after { content:""; position:absolute; right:-30px; top:0; width:200px; height:100%; background:linear-gradient(135deg,rgba(203,178,166,.55),rgba(236,218,208,.15)); clip-path:polygon(30% 0,100% 0,100% 100%,0 100%); }
.sim2-hd .en { font-family:"EB Garamond",serif; font-style:italic; font-size:1.3rem; letter-spacing:.26em; color:var(--gold-pale); position:relative; z-index:2; }
.sim2-hd h3 { font-family:"Noto Serif JP",serif; font-size:2.6rem; letter-spacing:.08em; margin-top:2px; position:relative; z-index:2; }
.sim2-hd p { font-size:1.3rem; color:rgba(255,255,255,.85); margin-top:4px; position:relative; z-index:2; }
.sim2-hd p b { color:var(--gold-pale); }
.sim2-bd { display:flex; }
.sim2-stage { flex:1.25; padding:26px 28px 22px; border-right:1px solid #f0e4ea; }
.sim2 .jaw-head { display:flex; align-items:center; justify-content:space-between; margin:2px 4px 4px; }
.sim2 .jaw-name { font-family:"Noto Serif JP",serif; font-size:1.45rem; letter-spacing:.16em; color:#571d33; }
.sim2 .jaw-name .en { font-family:"EB Garamond",serif; font-style:italic; font-size:1.05rem; color:#b0a6ae; letter-spacing:.2em; margin-left:8px; }
.sim2 .jaw { display:flex; justify-content:center; gap:2px; }
.sim2 .tooth { border:none; background:none; cursor:pointer; padding:0; width:32px; }
.sim2 .tooth svg { width:100%; height:auto; display:block; }
.sim2 .tooth .g-imp { display:none; }
.sim2 .tooth.on .g-imp { display:block; }
.sim2 .tooth.on .g-nat { display:none; }
.sim2 .midline { display:flex; align-items:center; gap:14px; margin:6px 0; color:#b0a6ae; font-size:1.05rem; letter-spacing:.24em; }
.sim2 .midline::before, .sim2 .midline::after { content:""; flex:1; height:1px; background:linear-gradient(90deg,transparent,#d8cdd4,transparent); }
.sim2 .hint { margin-top:12px; font-size:1.2rem; color:#8a8290; text-align:center; }
.sim2-panel { flex:1; padding:24px 30px 22px; background:linear-gradient(180deg,#fdfbf8,#f8f4ef); display:flex; flex-direction:column; }
.sim2-panel .pt { font-family:"Noto Serif JP",serif; font-size:1.8rem; letter-spacing:.1em; color:#571d33; border-bottom:1px solid #f0e4ea; padding-bottom:8px; margin-bottom:12px; }
.sim2 .lines { font-size:1.35rem; }
.sim2 .lines .row { display:flex; justify-content:space-between; align-items:baseline; padding:6px 0; border-bottom:1px dashed #f0e4ea; }
.sim2 .lines .row .r { font-family:"EB Garamond",serif; font-size:1.7rem; }
.sim2 .lines .row .r.free { color:#8a7060; font-family:"Noto Sans JP",sans-serif; font-size:1.25rem; font-weight:700; }
.sim2 .total { display:flex; justify-content:space-between; align-items:baseline; margin-top:12px; }
.sim2 .total .l { font-size:1.35rem; letter-spacing:.08em; }
.sim2 .total .r { font-family:"EB Garamond",serif; font-size:4rem; line-height:1.1; color:#571d33; }
.sim2 .monthly { text-align:right; font-size:1.3rem; margin-top:2px; }
.sim2 .monthly b { font-family:"EB Garamond",serif; font-size:1.9rem; color:#8a7060; }
.sim2 .zero2 { display:inline-block; margin-top:10px; background:#2e6b52; color:#fff; font-size:1.2rem; font-weight:700; padding:3px 18px; border-radius:100px; letter-spacing:.08em; }
.sim2 .sim2-odnote { margin-top:12px; background:#f6ecf0; border-left:3px solid var(--wine); padding:10px 14px; font-size:1.2rem; color:#571d33; line-height:1.7; }
.sim2 .note3 { margin-top:auto; padding-top:12px; font-size:1.05rem; color:#948c98; line-height:1.7; }
.sim2-ft { padding:10px 36px 14px; display:flex; justify-content:space-between; align-items:center; border-top:1px solid #f0e4ea; }
.sim2-ft .gl { font-size:1.15rem; color:#948c98; line-height:1.6; }

/* S05 骨 */
.s05 { padding:100px 0; }
.bone-in { display:flex; gap:56px; align-items:center; }
.bone-fig { flex:0 0 500px; position:relative; }
.bone-fig img { width:100%; display:block; box-shadow:0 30px 70px rgba(60,40,50,.22); }
.bone-fig::before { content:""; position:absolute; left:-18px; top:-18px; width:150px; height:150px; border-left:3px solid var(--gold); border-top:3px solid var(--gold); z-index:2; }
.bone-txt { flex:1; }
.bone-txt p { font-size:1.55rem; color:#4a4453; margin-bottom:14px; }
.bone-tags { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.bone-tag { border:1.5px solid var(--gold); color:#8a7060; font-size:1.35rem; font-weight:700; padding:6px 18px; letter-spacing:.04em; }
.bone-tag b { color:var(--pink-d); }
.bone-note { margin-top:20px; background:#f8f2e8; /*border-left:3px solid var(--gold);*/ padding:14px 20px; font-size:1.45rem; color:#5c4a30; }

/* S06 保証 */
.s06 { padding:100px 0; }
.tl-wrap { position:relative; margin:20px 0 50px; }
.tl-bar { height:10px; background:linear-gradient(90deg,#c73a63 0%,#b3998f 55%,#cbb2a6 100%); border-radius:100px; position:relative; }
.tl-pts { display:flex; justify-content:space-between; margin-top:-7px; }
.tl-pt { text-align:center; flex:1; position:relative; }
.tl-pt::before { content:""; display:block; width:24px; height:24px; margin: -20px auto 0; background:#fff; border:6px solid var(--wine); border-radius:50%; box-shadow:0 4px 12px rgba(60,40,50,.3); }
.tl-pt:nth-child(2)::before { border-color:var(--gold); }
.tl-pt:nth-child(3)::before { border-color:var(--gold-l); }
.tl-pt h3 { font-family:"Noto Serif JP",serif; font-size:1.9rem; margin-top:14px; }
.tl-pt p { font-size:1.35rem; color:#5c5464; }
.hosho-cols { display:grid; grid-template-columns:1fr 1fr; gap:34px; }
.hosho-col { background:#fff; box-shadow:0 22px 54px rgba(60,40,50,.12); }
.hosho-col .hd { text-align:center; font-family:"Noto Serif JP",serif; font-size:2.2rem; padding:20px; letter-spacing:.1em; color:#fff; position:relative; overflow:hidden; }
.hosho-col:first-child .hd { background:linear-gradient(115deg,#7c2140,#c73a63); }
.hosho-col:last-child .hd { background:linear-gradient(115deg,#26232b,#3a3542); }
.hosho-col .hd::after { content:""; position:absolute; right:-16px; top:0; width:110px; height:100%; background:rgba(255,255,255,.12); clip-path:polygon(35% 0, 100% 0, 100% 100%, 0 100%); }
.hosho-col .bd { padding:30px 36px 32px; }
.hosho-col .big { text-align:center; font-family:"Noto Serif JP",serif; font-size:2.6rem; color:var(--char); margin-bottom:12px; }
.hosho-col .big .n { font-family:"EB Garamond",serif; font-size:4.6rem; color:#8a7060; }
.hosho-col p { font-size:1.5rem; color:#4a4453; }
.hosho-col ul { list-style:none; margin-top:14px; }
.hosho-col li { font-size:1.45rem; padding:7px 0 7px 30px; position:relative; border-bottom:1px dashed #efe6ea; }
.hosho-col li::before { content:""; position:absolute; left:4px; top:17px; width:11px; height:11px; background:var(--gold); transform:rotate(45deg); }

/* S07 チーム */
.s07 { position:relative; padding:100px 0; color:#fff; overflow:hidden; }
.s07 .bg { position:absolute; inset:0; }
.s07 .bg img { width:100%; height:100%; object-fit:cover; }
.s07 .ov { position:absolute; inset:0; background:linear-gradient(100deg, rgba(25,22,34,.92) 36%, rgba(25,22,34,.6) 70%, rgba(25,22,34,.35)); }
.s07 .inner { z-index:2; }
.s07 p.lead2 { width:640px; max-width:100%; font-size:1.55rem; color:rgba(255,255,255,.9); margin-bottom:26px; }
.team-row { display:flex; gap:16px; width:720px; max-width:100%; }
.team-card { flex:1; background:rgba(255,255,255,.1); border:1px solid rgba(203,178,166,.5); text-align:center; padding:20px 12px; }
.team-card b { display:block; font-family:"EB Garamond",serif; font-size:4.4rem; color:var(--gold-pale); line-height:1.1; }
.team-card span { font-size:1.3rem; color:rgba(255,255,255,.85); }
.s07 .lab { margin-top:26px; width:720px; max-width:100%; background:rgba(203,178,166,.14); /*border-left:3px solid var(--gold-l);*/ padding:14px 22px; font-size:1.45rem; color:rgba(255,255,255,.92); }

/* S08 設備・安全 */
.s08 { padding:100px 0; }
.fac-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.fac-card { background:#fff; box-shadow:0 20px 50px rgba(60,40,50,.12); }
.fac-card .ph { height:200px; overflow:hidden; }
.fac-card .ph img { width:100%; height:100%; object-fit:cover; display:block; }
.fac-card h3 { font-family:"Noto Serif JP",serif; font-size:1.8rem; padding:20px 24px 6px; letter-spacing:.04em; }
.fac-card p { font-size:1.35rem; color:#4a4453; padding:0 24px 22px; line-height:1.75; }
.fac-safety { margin-top:40px; background:#fff; padding:30px 40px; box-shadow:0 16px 40px rgba(60,40,50,.1); display:flex; align-items:center; gap:26px; }
.fac-safety .ic { flex:0 0 64px; height:64px; background:linear-gradient(135deg,#7c2140,#c73a63); transform:rotate(45deg); display:flex; align-items:center; justify-content:center; }
.fac-safety .ic span { transform:rotate(-45deg); color:#fff; font-size:2.4rem; }
.fac-safety .t { font-family:"Noto Serif JP",serif; font-size:1.9rem; margin-bottom:4px; }
.fac-safety p { font-size:1.4rem; color:#4a4453; }

/* 理念（歯は臓器 v2） */
.s09v2 { position:relative; padding:104px 0; color:#fff; overflow:hidden; background:linear-gradient(120deg,#180810 0%,#33121f 55%,#571d33 100%); }
.s09v2::before { content:""; position:absolute; left:-60px; bottom:-60px; width:420px; height:420px; background-image:radial-gradient(rgba(203,178,166,.16) 2px, transparent 2px); background-size:20px 20px; }
.s09v2 .vph { position:absolute; right:20px; top:48px; writing-mode:vertical-rl; font-family:"EB Garamond",serif; font-style:italic; font-size:5.2rem; letter-spacing:.3em; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.13); pointer-events:none; }
.organ-grid { display:flex; gap:76px; align-items:stretch; position:relative; z-index:2; }
.organ-left { display:flex; flex-direction:row-reverse; gap:28px; align-items:flex-start; padding-right:64px; border-right:1px solid rgba(203,178,166,.35); }
.organ-tate2 { writing-mode:vertical-rl; font-family:"Noto Serif JP",serif; font-size:7.2rem; font-weight:700; letter-spacing:.24em; color:#fff; text-shadow:0 6px 40px rgba(0,0,0,.55); }
.organ-tsub { writing-mode:vertical-rl; font-family:"Noto Serif JP",serif; font-size:1.5rem; letter-spacing:.4em; color:#cbb2a6; padding-top:12px; }
.organ-right { flex:1; max-width:660px; }
.o-lead { font-size:1.6rem; line-height:2.15; color:rgba(255,255,255,.93); margin-bottom:30px; }
.o-syn .row { display:flex; align-items:baseline; gap:22px; padding:15px 4px; border-top:1px solid rgba(203,178,166,.32); font-family:"Noto Serif JP",serif; }
.o-syn .row:last-child { border-bottom:1px solid rgba(203,178,166,.32); }
.o-syn .no { font-family:"EB Garamond",serif; font-style:italic; font-size:1.5rem; color:#cbb2a6; }
.o-syn .t { font-size:1.9rem; letter-spacing:.06em; }
.o-ath { display:flex; align-items:center; gap:38px; margin-top:34px; flex-wrap:wrap; }
.o-ath .albl { background:rgba(203,178,166,.16); border:1px solid rgba(203,178,166,.5); color:#ecdad0; font-size:1.2rem; letter-spacing:.14em; padding:10px 16px; line-height:1.6; text-align:center; }
.o-ath .ai { display:flex; align-items:baseline; gap:12px; }
.o-ath .ai .n { font-family:"EB Garamond",serif; font-size:5.6rem; line-height:1; color:#ecdad0; }
.o-ath .ai .n small { font-size:1.8rem; font-family:"Noto Serif JP",serif; color:#fff; }
.o-ath .ai .t { font-size:1.3rem; color:rgba(255,255,255,.82); max-width:130px; line-height:1.65; }
.o-ath .acap { width:100%; font-size:1.3rem; color:rgba(255,255,255,.6); margin-top:4px; }

/* ドクター以降 */
.doctor { padding:100px 0 0; }
.doc-catch { text-align:center; margin-bottom:56px; position:relative; }
.doc-catch .en-bg { position:absolute; left:50%; transform:translateX(-50%); top:-30px; font-family:"EB Garamond",serif; font-style:italic; font-size:11rem; color:transparent; -webkit-text-stroke:1px rgba(138,112,96,.16); line-height:1; white-space:nowrap; }
.doc-catch .lb { display:inline-block; background:var(--char); color:#fff; font-size:1.4rem; letter-spacing:.24em; padding:5px 24px; margin-bottom:16px; position:relative; }
.doc-catch h2 { font-family:"Noto Serif JP",serif; font-size:4rem; font-weight:700; line-height:1.65; letter-spacing:.05em; position:relative; }
.doc-catch h2 .g { background:linear-gradient(115deg,#8a7060,#b8998a 40%,#dcc6ba 55%,#8a7060); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.doc-main { display:flex; gap:52px; align-items:flex-start; }
.doc-ph2 { flex:0 0 440px; position:relative; }
.doc-ph2 img { width:100%; display:block; box-shadow:0 30px 70px rgba(60,40,50,.25); }
.doc-ph2::after { content:""; position:absolute; right:-14px; bottom:-14px; width:55%; height:55%; border-right:3px solid var(--gold); border-bottom:3px solid var(--gold); }
.doc-ph2 .name-tag { position:absolute; bottom:18px; left:18px; background:rgba(25,22,34,.85); color:#fff; padding:10px 24px; font-size:1.35rem; letter-spacing:.1em; z-index:2; }
.doc-prof { flex:1; }
.doc-prof .nm { font-family:"Noto Serif JP",serif; font-size:1.6rem; color:#6b6472; }
.doc-prof .nm b { font-size:3.2rem; color:var(--char); margin-left:10px; }
.doc-prof .nm small { margin-left:12px; color:#8a7060; font-size:1.4rem; }
.doc-career { font-size:1.45rem; color:#4a4453; border-left:2px solid var(--gold); padding-left:18px; line-height:2.1; margin:18px 0; }
.doc-msg { font-size:1.5rem; color:#4a4453; }
.book-band { margin-top:70px; position:relative; padding:56px 0; overflow:hidden; }
.book-in { display:flex; align-items:center; gap:46px; width:1060px; max-width:calc(100% - 40px); margin:0 auto; position:relative; z-index:2; }
.book-cover { flex:0 0 190px; box-shadow:0 24px 56px rgba(60,40,50,.35); transform:rotate(-3deg); }
.book-txt { flex:1; }
.book-txt .lb { font-family:"EB Garamond",serif; font-style:italic; font-size:1.5rem; letter-spacing:.28em; color:#8a7060; }
.book-txt h3 { font-family:"Noto Serif JP",serif; font-size:3rem; line-height:1.6; margin:8px 0 10px; }
.book-txt p { font-size:1.5rem; color:#4a4453; }
.book-laurels { display:flex; gap:24px; flex:0 0 auto; }
.laurel { width:150px; height:150px; border-radius:50%; border:2px solid var(--gold-l); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:radial-gradient(circle at 50% 28%, rgba(203,178,166,.22), rgba(203,178,166,.05)); box-shadow:0 0 26px rgba(203,178,166,.3); position:relative; }
.laurel::before { content:"♛"; position:absolute; top:-13px; color:#b3998f; font-size:1.9rem; }
.laurel .a { font-family:"Noto Serif JP",serif; font-size:1.3rem; color:#5c4a30; line-height:1.4; }
.laurel .b { font-family:"Noto Serif JP",serif; font-size:2.1rem; color:#8a7060; font-weight:700; }
.media2 { padding:70px 0 0; }
.media2 h3 { text-align:center; font-family:"Noto Serif JP",serif; font-size:2.7rem; letter-spacing:.12em; margin-bottom:30px; }
.media2 h3 b { color:var(--pink-d); }
.media-cards { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.media-card { position:relative; overflow:hidden; box-shadow:0 22px 54px rgba(60,40,50,.16); }
.media-card img { width:100%; height:270px; object-fit:cover; display:block; }
.media-card .cap { position:absolute; left:0; right:0; bottom:0; background:linear-gradient(0deg,rgba(25,22,34,.9),transparent); color:#fff; padding:34px 24px 16px; font-family:"Noto Serif JP",serif; font-size:1.7rem; letter-spacing:.06em; }
.zenkoku { margin-top:80px; padding:70px 0; position:relative; overflow:hidden; background:linear-gradient(115deg,#f0ecf4 0%,#f6f0f2 100%); }
.zenkoku-in { display:flex; align-items:center; gap:60px; }
.zen-fig { flex:0 0 400px; text-align:center; position:relative; }
.zen-circle { width:300px; height:300px; margin:0 auto; border-radius:50%; background:linear-gradient(135deg,#7c2140,#c73a63); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:0 30px 70px rgba(124,33,64,.35); position:relative; }
.zen-circle::after { content:""; position:absolute; inset:10px; border:1px dashed rgba(255,255,255,.5); border-radius:50%; }
.zen-circle .a { font-size:1.5rem; letter-spacing:.14em; }
.zen-circle .b { font-family:"EB Garamond",serif; font-size:6.6rem; line-height:1; color:#ecdad0; }
.zen-circle .b small { font-size:2.2rem; font-family:"Noto Serif JP",serif; }
.zen-circle .c2 { font-size:1.5rem; letter-spacing:.1em; }
.zen-txt { flex:1; }
.zen-txt .k { font-family:"EB Garamond",serif; font-style:italic; font-size:1.6rem; letter-spacing:.3em; color:#8a7060; }
.zen-txt h3 { font-family:"Noto Serif JP",serif; font-size:3.3rem; line-height:1.6; margin:8px 0 16px; }
.zen-txt h3 b { color:var(--pink-d); }
.zen-list { margin-top:18px; }
.zen-list .row { display:flex; align-items:center; gap:18px; background:#fff; padding:14px 22px; margin-bottom:12px; box-shadow:0 10px 26px rgba(60,40,50,.08); font-size:1.55rem; font-weight:500; }
.zen-list .row .no { font-family:"EB Garamond",serif; font-style:italic; font-size:2.2rem; color:var(--wine); flex:0 0 58px; }
.zen-pill { display:inline-block; margin-top:14px; background:#2e6b52; color:#fff; font-size:1.4rem; font-weight:700; padding:8px 26px; border-radius:100px; letter-spacing:.08em; }

/* CASE */
.case { padding:96px 0; }
.ba-slider { width:940px; max-width:100%; margin:0 auto 36px; overflow:hidden; position:relative; box-shadow:0 30px 70px rgba(60,40,50,.2); background:#fff; }
.ba-wrap { display:flex; height:360px; position:relative; user-select:none; }
.ba-half { flex:1; position:relative; display:flex; align-items:center; justify-content:center; color:#7a6d76; font-size:1.5rem; }
.ba-half.before { background:linear-gradient(135deg,#e0d4da,#efe7ec); }
.ba-half.after { background:linear-gradient(135deg,#f0e2cd,#f8f0e2); color:#8a7060; position:absolute; inset:0; clip-path:inset(0 0 0 50%); }
.ba-half .lbl { position:absolute; top:16px; font-family:"EB Garamond",serif; font-size:1.5rem; letter-spacing:.26em; padding:4px 20px; background:#191622; color:#fff; }
.ba-half.before .lbl { left:16px; }
.ba-half.after .lbl { right:16px; background:linear-gradient(135deg,#8a7060,#cbb2a6); }
.ba-handle { position:absolute; left:50%; top:0; bottom:0; width:3px; background:#fff; box-shadow:0 0 20px rgba(0,0,0,.35); z-index:3; cursor:ew-resize; transform:translateX(-50%); }
.ba-handle::after { content:"◀ ▶"; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); background:#fff; color:var(--char); font-size:1.2rem; padding:10px 14px; white-space:nowrap; box-shadow:0 8px 24px rgba(0,0,0,.3); font-weight:700; }
.ba-caption { padding:18px 28px; display:flex; align-items:center; justify-content:space-between; font-size:1.35rem; border-top:1px solid #f2ebee; color:#4a4453; }
.case-note { text-align:center; font-size:1.35rem; color:#6b6472; }

/* FLOW */
.flow { padding:96px 0; }
.flow-steps { display:flex; gap:18px; }
.flow-step { flex:1; background:#fff; box-shadow:0 20px 50px rgba(60,40,50,.12); position:relative; padding-bottom:22px; }
.flow-step .no { position:absolute; top:-20px; left:14px; background:var(--char); color:var(--gold-pale); font-family:"EB Garamond",serif; font-size:2rem; width:54px; height:54px; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 20px rgba(25,22,34,.4); z-index:3; }
.flow-step h3 { font-family:"Noto Serif JP",serif; font-size:1.7rem; text-align:center; margin:40px 0 8px; letter-spacing:.04em; line-height:1.5; }
.flow-step h3 small { display:block; font-size:1.15rem; color:var(--pink-d); letter-spacing:.08em; }
.flow-step p { font-size:1.3rem; color:#4a4453; padding:0 18px; line-height:1.7; }
.flow-step:not(:last-child)::after { content:"▸"; position:absolute; right:-16px; top:44%; color:var(--gold); font-size:2.2rem; z-index:3; }
.flow-pt { margin-top:36px; text-align:center; font-size:1.55rem; }
.flow-pt b { color:var(--pink-d); }

/* セカンドオピニオン */
.sop { position:relative; padding:80px 0; color:#fff; overflow:hidden; background:linear-gradient(115deg,#191622 0%,#26232b 55%,#3a3542 100%); }
.sop::before { content:""; position:absolute; right:-60px; top:0; width:360px; height:100%; background:linear-gradient(135deg,rgba(199,58,99,.55),rgba(244,123,156,.15)); clip-path:polygon(35% 0,100% 0,100% 100%,0 100%); }
.sop-in { position:relative; z-index:2; display:flex; align-items:center; gap:50px; }
.sop-txt { flex:1; }
.sop-txt .k { font-family:"EB Garamond",serif; font-style:italic; letter-spacing:.3em; font-size:1.6rem; color:var(--gold-l); }
.sop-txt h2 { font-family:"Noto Serif JP",serif; font-size:3.2rem; line-height:1.6; letter-spacing:.04em; margin:8px 0 12px; }
.sop-txt p { font-size:1.5rem; color:rgba(255,255,255,.88); }
.sop-btns { flex:0 0 400px; display:flex; flex-direction:column; gap:16px; }
.sop-btn-a { background:#fff; color:var(--char); text-align:center; padding:18px; font-family:"Noto Serif JP",serif; font-size:1.9rem; letter-spacing:.06em; display:block; }
.sop-btn-a small { display:block; font-size:1.2rem; color:var(--pink-d); font-family:"Noto Sans JP",sans-serif; font-weight:700; letter-spacing:.14em; }

/* FAQ */
.faq { padding:96px 0; }
.faq-head { text-align:center; margin-bottom:40px; }
.faq-head .en { font-family:"EB Garamond",serif; font-size:6.2rem; letter-spacing:.1em; line-height:1; color:#26232b; }
.faq-head .ja { font-size:1.5rem; letter-spacing:.46em; margin-top:8px; color:#6b6472; }
.faq-list { width:960px; max-width:100%; margin:0 auto; }
.faq-item { border:1px solid #eee4e8; margin-bottom:14px; box-shadow:0 10px 26px rgba(60,40,50,.05); background:#fff; }
.faq-q { padding:20px 60px 20px 70px; position:relative; font-weight:700; font-size:1.7rem; font-family:"Noto Serif JP",serif; cursor:pointer; }
.faq-q::before { content:"Q"; position:absolute; left:24px; top:50%; transform:translateY(-50%); font-family:"EB Garamond",serif; font-style:italic; font-size:2.7rem; color:var(--pink-d); }
.faq-q .pm { position:absolute; right:20px; top:50%; transform:translateY(-50%); width:28px; height:28px; background:linear-gradient(135deg,#8a7060,#cbb2a6); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.6rem; }
.faq-a { padding:0 28px 22px 70px; position:relative; font-size:1.5rem; color:#4a4453; }
.faq-a::before { content:"A"; position:absolute; left:26px; top:0; font-family:"EB Garamond",serif; font-style:italic; font-size:2.7rem; color:var(--gold); line-height:1; }
.faq-item.closed .faq-a { display:none; }

/* ACCESS */
.access { padding:96px 0; }
.access-in { display:flex; gap:46px; align-items:stretch; }
.access-map { flex:0 0 520px; min-height:360px; overflow:hidden; position:relative; box-shadow:0 16px 40px rgba(60,40,50,.14); }
.access-map iframe { position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
.access-txt { flex:1; }
.access-txt h3 { font-family:"Noto Serif JP",serif; font-size:2.6rem; margin-bottom:14px; }
.access-txt h3 b { color:var(--pink-d); }
.access-txt p { font-size:1.5rem; color:#4a4453; margin-bottom:10px; }
.access-far { margin-top:20px; background:#f8f2e8; border-left:3px solid var(--gold); padding:16px 22px; font-size:1.45rem; color:#5c4a30; }
.access-far b { color:var(--pink-d); }

/* CONTACT */
.contact { position:relative; color:#fff; padding:110px 0 90px; overflow:hidden; background:linear-gradient(128deg,#191622 0%,#3a2233 50%,#7c2140 100%); clip-path:polygon(0 44px, 100% 0, 100% 100%, 0 100%); }
.contact::before { content:""; position:absolute; right:-60px; top:0; width:400px; height:100%; background:linear-gradient(135deg,rgba(203,178,166,.4),rgba(236,218,208,.1)); clip-path:polygon(35% 0, 100% 0, 100% 100%, 0 100%); }
.contact-head { text-align:center; margin-bottom:30px; position:relative; z-index:2; }
.contact-head .en { font-family:"EB Garamond",serif; font-size:6.2rem; letter-spacing:.1em; line-height:1; }
.contact-head .ja { font-size:1.5rem; letter-spacing:.46em; margin-top:8px; color:rgba(255,255,255,.8); }
.contact-lead { text-align:center; font-family:"Noto Serif JP",serif; font-size:2.7rem; letter-spacing:.08em; line-height:1.9; position:relative; z-index:2; }
.contact-lead b { color:var(--gold-pale); }
.contact-btns { display:flex; gap:24px; justify-content:center; margin-top:44px; position:relative; z-index:2; align-items:stretch; }
.c-free { background:linear-gradient(135deg,#c73a63,#EA557E 55%,#f47b9c); padding:26px 50px; text-align:center; box-shadow:0 24px 60px rgba(2,2,10,.5), inset 0 1px 0 rgba(255,255,255,.4); position:relative; }
.c-free::after { content:""; position:absolute; inset:6px; border:1px solid rgba(255,255,255,.5); pointer-events:none; }
.c-free .label { font-size:1.5rem; font-weight:700; letter-spacing:.16em; }
.c-free .big { font-family:"Noto Serif JP",serif; font-size:2.9rem; font-weight:700; letter-spacing:.08em; line-height:1.35; }
.c-free .small { font-size:1.25rem; }
.c-tel2 { background:#fff; color:var(--char); padding:26px 44px; text-align:center; box-shadow:0 24px 60px rgba(2,2,10,.5); }
.c-tel2 .label { font-size:1.35rem; font-weight:700; letter-spacing:.12em; }
.c-tel2 .num { font-family:"EB Garamond",serif; font-size:4.4rem; font-weight:600; line-height:1.15; }
.c-tel2 .time { font-size:1.2rem; color:#6b6472; }
.c-line2 { background:#20b356; color:#fff; padding:26px 40px; display:flex; flex-direction:column; justify-content:center; text-align:center; box-shadow:0 24px 60px rgba(2,2,10,.5); }
.c-line2 .label { font-size:1.4rem; font-weight:700; letter-spacing:.14em; }
.c-line2 .big { font-size:2.3rem; font-weight:900; letter-spacing:.06em; }
.contact-access { margin-top:36px; text-align:center; font-size:1.45rem; color:rgba(255,255,255,.88); position:relative; z-index:2; }

/* フッター */
footer { background:#12101a; color:#cfc8d6; padding:38px 0 24px; font-size:1.3rem; }
.footer-in { width:1160px; max-width:calc(100% - 40px); margin:0 auto; display:flex; justify-content:space-between; align-items:center; }
.footer-logo { background:#fff; padding:10px 16px; }
.footer-logo img { height:40px; width:auto; }
.footer-info { text-align:right; line-height:1.9; }
.footer-copy { text-align:center; margin-top:22px; font-size:1.1rem; color:#7a7386; }

/* SP下部固定バー（デフォルト非表示） */
.sp-bar { display:none; position:fixed; left:0; right:0; bottom:0; z-index:90; }
.sp-bar a { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:9px 4px; font-size:1.15rem; font-weight:700; color:#fff; line-height:1.2; }
.sp-bar .ic { font-size:1.9rem; line-height:1; }
.sp-bar .sp-tel { background:var(--char2); }
.sp-bar .sp-line { background:#20b356; }
.sp-bar .sp-free { background:linear-gradient(135deg,#c73a63,#EA557E 55%,#f47b9c); flex:1.5; font-size:1.4rem; }

/* =========================================================
   RESPONSIVE
   ========================================================= */

/* ---- タブレット（～1080px） ---- */
@media (max-width:1080px) {
  .header-in { flex-wrap:wrap; }
  /* ヘッダーのTEL/LINE/無料相談はSPドロワー・下部バーに集約 */
  .header-right .btn-line, .header-right .btn-free { display:none; }
  .nav-toggle { display:flex; }

  /* グロナビは横スクロールに */
  .gnav-in { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .gnav a, .gnav .cv { flex:0 0 auto; min-width:120px; }

  .worry-grid { gap:20px; }
  .fac-grid { grid-template-columns:1fr 1fr; }
  .fac-grid .fac-card:last-child { grid-column:1 / -1; }
  .flow-steps { flex-wrap:wrap; }
  .flow-step { flex:1 1 30%; margin-bottom:26px; }
  .flow-step:not(:last-child)::after { display:none; }

  .organ-grid { gap:44px; }
  .doc-main { gap:32px; }
  .doc-ph2 { flex:0 0 340px; }
  .bone-fig { flex:0 0 380px; }
  .s03-ph { flex:0 0 360px; }
}

/* ---- スマホ（～720px） ---- */
@media (max-width:720px) {
  html { font-size:9px; }
  body { line-height:1.85; }

  /* ヘッダー */
  .header-in { padding:10px 0; }
  .header-left img { height:40px; }
  .header-left .site-name { font-size:1.2rem; padding-left:10px; }
  .header-tel { display:none; }

  /* FV：絶対配置をやめて縦積み */
  .mv4 { height:auto; min-height:78vh; padding:90px 0 40px; }
  .mv4 .bg img { object-position:center 20%; }
  .mv4 .in { height:auto; display:flex; flex-direction:column; }
  .mv4 .kicker2, .mv4 .pill0 { position:static; }
  .mv4 .kicker2 { margin-bottom:14px; }
  .mv4 .pill0 { align-self:flex-start; margin-bottom:24px; font-size:1.35rem; padding:6px 18px; }
  .vcatch { position:static; writing-mode:horizontal-tb; margin-bottom:30px; }
  .vcatch .c2 { margin-left:0; font-size:3.4rem; }
  .vcatch .c3 { top:0; display:inline-block; margin-top:10px; font-size:3.4rem; padding:12px 18px; }
  .mv4 .foot { position:static; flex-direction:column; align-items:flex-start; gap:22px; border-top:1px solid rgba(203,178,166,.4); }
  .mv4 .stats { gap:26px; }
  .mv4 .cta { flex-direction:column; margin-left:0; width:100%; white-space:normal; }
  .mv4 .cta-a, .mv4 .cta-b { width:100%; }
  .mv4 .round { width:118px; height:118px; right:14px; top:auto; bottom:14px; font-size:1.1rem; }
  .mv4 .round b { font-size:1.7rem; }

  /* FV下カード・費用帯：縦積み */
  .statrow2 { grid-template-columns:1fr; gap:36px; margin-top:0; padding-top:44px; }
  .statcard2 .ic { margin-top:0; }
  .feeband { flex-direction:column; }
  .feeband .side { flex:0 0 auto; padding:20px; }
  .feeband .side::after { display:none; }
  .feeband .cell:not(:last-child)::after { display:none; }
  .feeband .cell { border-bottom:1px solid #f0e4ea; }

  /* グロナビは非表示（ドロワーへ集約） */
  .gnav { display:none; }

  /* 無料相談バンド */
  .consult { min-height:0; }
  .consult .c { padding:56px 0; }
  .consult h2 { font-size:2.9rem; }
  .consult-pills { flex-direction:column; gap:12px; }
  .consult-pill { flex-direction:column; }
  .consult-pill .k2, .consult-pill .v2 { width:100%; }
  .consult-cta { padding:16px 40px; width:100%; }

  /* お悩みカード：1列＋写真上 */
  .worry { padding:64px 0 70px; }
  .worry-head h2 { font-size:2.8rem; }
  .worry-grid { grid-template-columns:1fr; gap:20px; }
  .worry-card { flex-direction:column; }
  .worry-card .ph { flex:0 0 180px; height:180px; }

  /* STRENGTH帯 */
  .st-band { height:200px; clip-path:polygon(0 0, 100% 24px, 100% 100%, 0 calc(100% - 24px)); }
  .st-band h2 { font-size:4.4rem; }
  .st-band .ja { font-size:1.3rem; letter-spacing:.2em; }

  /* STRENGTH見出し */
  .s01, .s02, .s03, .s04, .s05, .s06, .s07, .s08 { padding:64px 0; }
  .st-head { gap:14px; margin-bottom:32px; }
  .st-num { font-size:6rem; }
  .st-ttl h2 { font-size:2.5rem; }
  .vlabel { display:none; }

  /* S01 実績：2×2 */
  .stats-grid { flex-wrap:wrap; }
  .stat { flex:0 0 50%; padding:16px 10px; }
  .stat:not(:last-child)::after { display:none; }
  .stat .v { font-size:5.2rem; }

  /* S02 プロセス：2列 */
  .proc { flex-wrap:wrap; }
  .proc-step { flex:0 0 50%; padding:0 10px 24px; }
  .proc-step:not(:last-child)::after { display:none; }
  .s02-callout { flex-direction:column; text-align:center; gap:14px; }

  /* S03 */
  .s03-in { flex-direction:column; gap:34px; }
  .s03-txt .big { font-size:3.2rem; }
  .s03-ph { flex:0 0 auto; width:100%; }
  .s03-specs { flex-wrap:wrap; }

  /* S04 定額 */
  .price-hero .num { font-size:6rem; }
  .price-comp { grid-template-columns:1fr; }
  .inc-grid { grid-template-columns:1fr 1fr; }

  /* シミュレーター：縦積み・歯を縮小 */
  .sim2-bd { flex-direction:column; }
  .sim2-stage { border-right:none; border-bottom:1px solid #f0e4ea; }
  .sim2 .tooth { width:20px; }
  .sim2 .jaw { gap:1px; }
  .sim2-hd h3 { font-size:2.1rem; }
  .sim2-ft { flex-direction:column; align-items:flex-start; gap:4px; }

  /* S05 骨 */
  .bone-in { flex-direction:column; gap:30px; }
  .bone-fig { flex:0 0 auto; width:100%; }

  /* S06 保証タイムライン：縦 */
  .tl-bar { display:none; }
  .tl-pts { flex-direction:column; gap:18px; }
  .tl-pt { text-align:left; padding-left:34px; }
  .tl-pt::before { position:absolute; left:0; top:4px; margin:0; }
  .hosho-cols { grid-template-columns:1fr; gap:22px; }

  /* S07 チーム */
  .team-row { flex-wrap:wrap; }
  .team-card { flex:0 0 calc(50% - 8px); }

  /* S08 設備 */
  .fac-grid { grid-template-columns:1fr; }
  .fac-safety { flex-direction:column; text-align:center; }

  /* 理念：縦積み */
  .s09v2 { padding:64px 0; }
  .organ-grid { flex-direction:column; gap:30px; }
  .organ-left { flex-direction:row; padding-right:0; padding-bottom:24px; border-right:none; border-bottom:1px solid rgba(203,178,166,.35); gap:20px; align-items:center; }
  .organ-tate2 { writing-mode:horizontal-tb; font-size:4.4rem; }
  .organ-tsub { writing-mode:horizontal-tb; padding-top:0; }
  .o-ath { gap:20px; }
  .o-ath .ai .n { font-size:4.2rem; }

  /* ドクター */
  .doctor { padding:64px 0 0; }
  .doc-catch .en-bg { font-size:6rem; top:-10px; }
  .doc-catch h2 { font-size:2.6rem; }
  .doc-main { flex-direction:column; gap:24px; }
  .doc-ph2 { flex:0 0 auto; width:100%; max-width:400px; margin:0 auto; }
  .book-in { flex-direction:column; gap:24px; text-align:center; }
  .book-laurels { justify-content:center; }
  .media-cards { grid-template-columns:1fr; }
  .zenkoku-in { flex-direction:column; gap:34px; }
  .zen-fig { flex:0 0 auto; }

  /* CASE */
  .ba-wrap { height:260px; }
  .ba-caption { flex-direction:column; align-items:flex-start; gap:6px; }

  /* SOP */
  .sop-in { flex-direction:column; gap:28px; }
  .sop-txt h2 { font-size:2.5rem; }
  .sop-btns { flex:0 0 auto; width:100%; }

  /* FAQ */
  .faq-head .en { font-size:4.6rem; }
  .faq-q { font-size:1.55rem; padding:16px 50px 16px 56px; }
  .faq-q::before { left:16px; font-size:2.2rem; }
  .faq-a { padding-left:56px; }

  /* ACCESS */
  .access-in { flex-direction:column; gap:26px; }
  .access-map { flex:0 0 auto; width:100%; min-height:260px; }

  /* CONTACT */
  .contact { padding:80px 0 90px; clip-path:polygon(0 24px, 100% 0, 100% 100%, 0 100%); }
  .contact-head .en { font-size:4.6rem; }
  .contact-lead { font-size:2.1rem; }
  .contact-btns { flex-direction:column; gap:16px; }
  .contact-btns > a { width:100%; }

  /* フッター */
  .footer-in { flex-direction:column; gap:16px; text-align:center; }
  .footer-info { text-align:center; }

  /* SP下部固定バー表示＋本文の余白確保 */
  .sp-bar { display:flex; }
  body { padding-bottom:58px; }
  .drawer.open ~ .sp-bar, body.drawer-open .sp-bar { z-index:80; }
}

/* ---- 極小（～400px） ---- */
@media (max-width:400px) {
  .vcatch .c2, .vcatch .c3 { font-size:2.9rem; }
  .inc-grid { grid-template-columns:1fr; }
  .stat { flex:0 0 100%; }
}

/* =========================================================
   下層ページ汎用（page / single / archive / search / 404）
   TOPのLP以外の一般ページ用ベーススタイル
   ========================================================= */
.page-hero { position:relative; overflow:hidden; color:#fff; text-align:center; padding:72px 0 60px; background:linear-gradient(112deg,#2b0f1d 0%,#571d33 55%,#8a3352 100%); }
.page-hero::before { content:""; position:absolute; right:-60px; top:0; width:340px; height:100%; background:linear-gradient(135deg,rgba(203,178,166,.35),rgba(236,218,208,.08)); clip-path:polygon(35% 0,100% 0,100% 100%,0 100%); }
.page-hero .en { position:relative; z-index:2; font-family:"EB Garamond",serif; font-style:italic; font-size:1.6rem; letter-spacing:.3em; color:var(--gold-pale); }
.page-hero h1 { position:relative; z-index:2; font-family:"Noto Serif JP",serif; font-size:3.4rem; font-weight:700; letter-spacing:.06em; line-height:1.5; margin-top:6px; }

.breadcrumb { font-size:1.25rem; color:#8a8290; padding:16px 0; }
.breadcrumb a { color:#8a7060; }
.breadcrumb .sep { margin:0 8px; color:#c9bcc4; }

.site-main { padding:56px 0 90px; }
.content-wrap { display:flex; gap:56px; align-items:flex-start; }
.content-main { flex:1; min-width:0; }
.content-side { flex:0 0 300px; }

.entry { background:#fff; }
.entry + .entry { margin-top:40px; }
.entry-header { margin-bottom:24px; }
.entry-title { font-family:"Noto Serif JP",serif; font-size:2.8rem; font-weight:700; line-height:1.5; letter-spacing:.03em; color:var(--char); }
.entry-title a { color:inherit; }
.entry-meta { margin-top:10px; font-size:1.3rem; color:#8a8290; letter-spacing:.04em; }
.entry-meta a { color:#8a7060; }
.entry-thumb { margin-bottom:24px; }
.entry-thumb img { width:100%; height:auto; display:block; }

.entry-content { font-size:1.55rem; line-height:2.05; color:#3a3542; }
.entry-content > * + * { margin-top:1.4em; }
.entry-content h2 { font-family:"Noto Serif JP",serif; font-size:2.4rem; font-weight:700; line-height:1.5; letter-spacing:.03em; color:var(--wine); border-left:5px solid var(--pink-d); padding:6px 0 6px 16px; margin-top:2em; }
.entry-content h3 { font-family:"Noto Serif JP",serif; font-size:2rem; font-weight:700; color:var(--char); border-bottom:2px solid var(--gold-l); padding-bottom:6px; margin-top:1.8em; }
.entry-content h4 { font-family:"Noto Serif JP",serif; font-size:1.7rem; font-weight:700; color:var(--char2); margin-top:1.6em; }
.entry-content a { color:var(--pink-d); text-decoration:underline; }
.entry-content ul, .entry-content ol { padding-left:0; } /* 2026-09-30 指示：インデント不要 */
.entry-content li { margin-top:.4em; }
.entry-content ul > li { list-style:none; position:relative; padding-left:1.2em; }
.entry-content ol > li { list-style:decimal inside; } /* padding-left:0 でも番号が枠外に出ないように */
.entry-content img { max-width:100%; height:auto; }
.entry-content blockquote { border-left:4px solid var(--gold-l); background:#f8f2e8; padding:16px 22px; color:#5c4a30; font-size:1.5rem; }
.entry-content table { width:100%; border-collapse:collapse; font-size:1.45rem; }
.entry-content th, .entry-content td { border:1px solid #e7dde2; padding:12px 16px; text-align:left; }
.entry-content th { background:#f6ecf0; color:var(--wine); font-weight:700; }
.entry-content code { background:#f2edf0; padding:2px 6px; border-radius:3px; font-size:.92em; }
.entry-content hr { border:none; border-top:1px solid #e7dde2; }

/* アーカイブ・一覧のカード */
.post-list { display:grid; grid-template-columns:repeat(2,1fr); gap:30px; }
.post-card { background:#fff; box-shadow:0 16px 40px rgba(60,40,50,.1); display:flex; flex-direction:column; transition:transform .25s, box-shadow .25s; }
.post-card:hover { transform:translateY(-4px); box-shadow:0 22px 54px rgba(60,40,50,.16); }
.post-card .thumb { aspect-ratio:16/9; overflow:hidden; background:#efeae6; }
.post-card .thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.post-card .body { padding:22px 24px 26px; }
.post-card .cat { display:inline-block; background:var(--wine); color:#fff; font-size:1.15rem; font-weight:700; letter-spacing:.08em; padding:3px 14px; margin-bottom:10px; }
.post-card h2 { font-family:"Noto Serif JP",serif; font-size:1.9rem; line-height:1.55; }
.post-card h2 a { color:var(--char); }
.post-card .date { margin-top:10px; font-size:1.25rem; color:#8a8290; font-family:"EB Garamond",serif; letter-spacing:.06em; }

/* ページャー */
.pagination { margin-top:50px; display:flex; justify-content:center; gap:8px; flex-wrap:wrap; }
.pagination .page-numbers { display:inline-flex; align-items:center; justify-content:center; min-width:44px; height:44px; padding:0 12px; background:#fff; border:1px solid #e7dde2; font-family:"EB Garamond",serif; font-size:1.6rem; color:var(--char2); }
.pagination .page-numbers.current { background:linear-gradient(135deg,#7c2140,#c73a63); border-color:transparent; color:#fff; }
.pagination .page-numbers.dots { border:none; background:none; }

/* ページ末尾ナビ（single） */
.post-nav { margin-top:50px; display:flex; justify-content:space-between; gap:20px; font-size:1.4rem; }
.post-nav a { color:var(--wine); font-weight:700; }
.post-nav .nv-next { margin-left:auto; text-align:right; }

/* 検索フォーム */
.search-form { display:flex; gap:8px; }
.search-form .search-field { flex:1; border:1px solid #d9cfd6; padding:12px 16px; font-size:1.5rem; }
.search-form .search-submit { background:linear-gradient(135deg,#7c2140,#c73a63); color:#fff; border:none; padding:12px 24px; font-size:1.5rem; font-weight:700; cursor:pointer; }

/* ウィジェット */
.widget { background:#fff; box-shadow:0 12px 32px rgba(60,40,50,.08); padding:24px 26px; margin-bottom:26px; }
.widget-title { font-family:"Noto Serif JP",serif; font-size:1.8rem; color:var(--wine); border-bottom:2px solid var(--gold-l); padding-bottom:8px; margin-bottom:14px; }
.widget ul { list-style:none; }
.widget li { padding:8px 0; border-bottom:1px dashed #eee4e8; font-size:1.4rem; }
.widget a { color:#3a3542; }

/* 404 */
.nf-box { text-align:center; padding:40px 0; }
.nf-box .big { font-family:"EB Garamond",serif; font-size:9rem; line-height:1; color:var(--gold-l); }
.nf-box p { font-size:1.6rem; color:#4a4453; margin:16px 0 26px; }
.btn-primary { display:inline-block; background:linear-gradient(135deg,#c73a63,#EA557E 55%,#f47b9c); color:#fff; font-weight:700; font-size:1.6rem; letter-spacing:.06em; padding:16px 44px; border-radius:100px; box-shadow:0 12px 30px rgba(199,58,99,.3); }

@media (max-width:1080px) {
  .content-wrap { flex-direction:column; gap:40px; }
  .content-side { flex:0 0 auto; width:100%; }
}
@media (max-width:720px) {
  .page-hero { padding:52px 0 44px; }
  .page-hero h1 { font-size:2.6rem; }
  .site-main { padding:40px 0 70px; }
  .entry-title { font-size:2.3rem; }
  .post-list { grid-template-columns:1fr; gap:22px; }
  .post-nav { flex-direction:column; }
  .post-nav .nv-next { margin-left:0; text-align:left; }
}

/* === Codex FV update: main visual and proof cards === */
body {
  font-family: "Noto Serif JP", "Yu Mincho", "Hiragino Mincho ProN", serif;
}

.hero {
  --hero-target-h: 90svh;
  position: relative;
  min-height: max(520px, var(--hero-target-h));
  overflow: hidden;
  color: #fff;
  background: #2b0f1d;
}

.hero__photo {
	position: absolute;
    inset: 0;
    background-image: url(../images/hero-main.jpg); /* 2026-09-30 テーマ同梱JPEGへ（旧: uploads/2026/09/main-33.png 2.9MB） */
    background-repeat: no-repeat;
    background-size: cover;
    background-position: 70% center;
    transform: scale(1.001);
}

.hero__shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(43,15,29,.90) 0%, rgba(74,24,44,.78) 28%, rgba(110,44,68,.45) 45%, rgba(176,150,140,.18) 62%, rgba(203,178,166,0) 78%),
    linear-gradient(0deg, rgba(43,15,29,.24) 0%, rgba(43,15,29,0) 48%);
}

.hero__inner {
  position: relative;
  z-index: 2;
  width: min(100%, 1440px);
  min-height: max(520px, var(--hero-target-h));
  margin: 0 auto;
  padding: 44px clamp(28px, 7.5vw, 108px) 78px;
  display: flex;
  align-items: center;
}

.hero__copy {
  width: min(47vw, 640px);
  transform: translateY(-2%);
}

.hero__eyebrow {
  margin: 0 0 10px;
  font-size: clamp(1.6rem, 1.18vw, 1.9rem);
  line-height: 1.5;
  color: rgba(236,218,208,.9);
  letter-spacing: .02em;
}

.hero__title {
  margin: 0;
  font-weight: 400;
  letter-spacing: 0;
  text-shadow: 0 1px 8px rgba(0,0,0,.12);
  line-height: 1.08;
}

.hero__title-line {
  display: flex;
  align-items: baseline;
  white-space: nowrap;
}

.hero__title-line--main {
  font-size: clamp(4.4rem, 4.55vw, 6.6rem);
}

.hero__title-line--sub {
  display: block;
  margin-top: 6px;
  font-size: clamp(4.2rem, 4.3vw, 6.4rem);
  line-height: 1.18;
}

.hero__large {
  font-size: clamp(7.2rem, 6.95vw, 10rem);
  line-height: 1;
}

.hero__cross {
  margin: 0 clamp(12px, 1.3vw, 20px);
  font-size: clamp(4.2rem, 4.8vw, 7.4rem);
  font-weight: 300;
  opacity: .78;
}

.hero__lead {
  margin: 22px 0 0;
  font-size: clamp(1.7rem, 1.55vw, 2.3rem);
  line-height: 1.9;
  letter-spacing: .02em;
  color: rgba(255,255,255,.86);
}

.hero__cta {
  margin-top: clamp(34px, 5vw, 70px);
  width: min(100%, 400px);
  min-height: 56px;
  padding: 0 14px 0 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(255,255,255,.14);
  -webkit-backdrop-filter: blur(12px) saturate(130%);
  backdrop-filter: blur(12px) saturate(130%);
  border: 1px solid rgba(255,255,255,.4);
  color: #fff;
  font-size: clamp(1.6rem, 1.35vw, 2rem);
  font-weight: 600;
  letter-spacing: 0;
  box-shadow: 0 10px 30px rgba(20,8,14,.28), inset 0 1px 0 rgba(255,255,255,.45), inset 0 -1px 0 rgba(255,255,255,.08);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.hero__cta:hover {
  transform: translateY(-1px);
  background: rgba(255,255,255,.22);
  box-shadow: 0 14px 34px rgba(20,8,14,.34), inset 0 1px 0 rgba(255,255,255,.5), inset 0 -1px 0 rgba(255,255,255,.1);
}

.hero__cta-arrow {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.65);
  color: #fff;
  border-radius: 50%;
  font-size: 0; /* テキストの「›」を隠し、下の擬似要素で正確に描画 */
  line-height: 1;
}

.hero__cta-arrow::before {
  content: "";
  width: 5px;
  height: 5px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: translate(-1px, 3.5px) rotate(45deg); /* 山括弧の視覚中心を微調整（右上に寄るのを補正） */
}

.hero__proofs {
  position: absolute;
  right: clamp(8px, 2.2vw, 34px);
  bottom: clamp(18px, 2.6vw, 38px);
  width: min(780px, 42vw);
  display: block;
}

.hero__proofs-image {
  display: block;
  width: 100%;
  height: auto;
}

.post-hero-feature {
  position: relative;
  padding: 0 48px 42px;
  background-color: #f4eee8;
  background-image:
    radial-gradient(rgba(87,29,51,.12) 1px, transparent 1px),
    linear-gradient(180deg, rgba(43,15,29,.08) 0%, rgba(43,15,29,0) 58px);
  background-size: 9px 9px, 100% 100%;
}

.feature-cards {
  position: relative;
  z-index: 1;
  width: min(100%, 1440px);
  margin: 0 auto -18px;
  display: grid;
  grid-template-columns: 1fr 1.08fr 1fr;
  gap: 8px;
  align-items: end;
  transform: translateY(-18px);
}

.feature-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 2px solid rgba(236,218,208,.72);
  background:
    radial-gradient(circle at 50% 0%, rgba(138,51,82,.34) 0%, rgba(138,51,82,0) 45%),
    linear-gradient(135deg, #3b1224 0%, #2b0f1d 100%);
  color: #fff;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 26px rgba(43,15,29,.16);
}

.feature-card--side {
  height: 214px;
  padding: 36px 28px 28px;
}

.feature-card--center {
  height: 274px;
  padding: 56px 32px 34px;
  background:
    radial-gradient(circle at 50% 0%, rgba(179,153,143,.15) 0%, rgba(179,153,143,0) 48%),
    linear-gradient(135deg, #8a3352 0%, #571d33 58%, #3a1427 100%);
  border-color: rgba(236,218,208,.9);
  box-shadow: 0 16px 34px rgba(43,15,29,.24);
/*   clip-path: polygon(0 0, 100% 0, 94% 100%, 6% 100%); */
  z-index: 2;
}

.feature-card__ribbon {
  position: absolute;
  top: 0;
  left: 50%;
  width: 260px;
  height: 38px;
  margin: 0;
  transform: translateX(-50%);
  display: grid;
  place-items: center;
  background: linear-gradient(90deg, #8a7060 0%, #b3998f 18%, #cbb2a6 50%, #b3998f 82%, #8a7060 100%);
  color: #fff;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: .08em;
/*   clip-path: polygon(8% 0, 92% 0, 100% 100%, 0 100%); */
  box-shadow: 0 5px 12px rgba(43,15,29,.18);
}

.feature-card__ribbon::before,
.feature-card__ribbon::after {
  content: none;
}

.feature-card__kicker {
  margin: 0;
  color: #ecdad0;
  font-size: 1.7rem;
  font-weight: 700;
  letter-spacing: .12em;
}

.feature-card__kicker span {
  margin-left: 8px;
  font-size: 1.2rem;
  letter-spacing: .2em;
  opacity: .76;
}

.feature-card__rule {
  width: 54px;
  height: 1px;
  margin: 14px auto 20px;
  background: #cbb2a6;
}

.feature-card__main {
  position: relative;
  z-index: 1;
  margin: 0;
  line-height: 1;
  color: #fff;
  text-shadow: 0 1px 8px rgba(43,15,29,.28);
}

.feature-card__number {
  font-family: "EB Garamond", serif;
  font-size: 6rem;
  font-weight: 500;
  letter-spacing: .02em;
}

.feature-card--center .feature-card__number {
  font-size: 6.8rem;
}

.feature-card__unit {
  margin-left: 4px;
  font-family: "Noto Serif JP", serif;
  font-size: 1.8rem;
  font-weight: 600;
  vertical-align: baseline;
}

.feature-card--center .feature-card__unit {
  margin-left: 7px;
  font-size: 2.1rem;
}

.feature-card__main--text {
  font-size: 3.1rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .02em;
}

.feature-card__text {
  position: relative;
  z-index: 1;
  margin: 14px 0 0;
  color: rgba(236,218,208,.95);
  font-size: 1.3rem;
  font-weight: 600;
  line-height: 1.6;
}

.feature-card__watermark {
  position: absolute;
  right: 34px;
  bottom: -18px;
  margin: 0;
  color: rgba(236,218,208,.12);
  font-size: 5.8rem;
  font-style: italic;
  line-height: 1;
  pointer-events: none;
}

@media (max-width: 1100px) {
  .hero__inner {
    padding-right: 28px;
    padding-left: 32px;
  }
  .hero__copy { width: min(54vw, 520px); }
  .hero__proofs { width: min(620px, 45vw); }
}

@media (max-width: 920px) {
  .hero { min-height: max(600px, var(--hero-target-h)); }
  .hero__inner {
    min-height: max(600px, var(--hero-target-h));
    padding: 40px 28px 72px;
  }
  .hero__copy { width: min(100%, 430px); }
  .hero__shade {
    background:
      linear-gradient(90deg, rgba(43,15,29,.96) 0%, rgba(87,29,51,.86) 42%, rgba(138,51,82,.36) 72%, rgba(203,178,166,.12) 100%),
      linear-gradient(0deg, rgba(43,15,29,.62) 0%, rgba(43,15,29,0) 48%);
  }
  .hero__photo { background-position: 58% center; }
  .hero__proofs { right: 8px; bottom: 28px; width: min(560px, 52vw); }
  .post-hero-feature { padding: 28px 20px 42px; }
  .feature-cards {
    grid-template-columns: 1fr;
    gap: 14px;
    transform: none;
    margin-bottom: 0;
  }
  .feature-card,
  .feature-card--side,
  .feature-card--center {
    height: auto;
    min-height: 190px;
    padding: 40px 24px 30px;
    clip-path: none;
  }
  .feature-card--center { padding-top: 64px; }
}

@media (max-width: 640px) {
  .hero {
    min-height: 690px;
    background: #2b0f1d;
  }
  .hero__photo {
    background-size: auto 58%;
    background-position: 73% 0;
  }
  .hero__shade {
    background:
      linear-gradient(180deg, rgba(43,15,29,.08) 0%, rgba(43,15,29,.18) 30%, rgba(43,15,29,.88) 55%, rgba(43,15,29,.98) 100%),
      linear-gradient(90deg, rgba(43,15,29,.98) 0%, rgba(87,29,51,.82) 58%, rgba(138,51,82,.26) 100%);
  }
  .hero__inner {
    min-height: 690px;
    padding: 34px 18px 22px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-end;
  }
  .hero__copy {
    width: 100%;
    max-width: 360px;
    padding-top: 220px;
  }
  .hero__eyebrow {
    margin-bottom: 8px;
    font-size: 1.3rem;
    line-height: 1.5;
  }
  .hero__title-line--main {
    height: auto;
    font-size: 2.4rem;
    line-height: 1.1;
  }
  .hero__large { font-size: 4.5rem; }
  .hero__cross { margin: 0 10px; font-size: 2.8rem; }
  .hero__title-line--sub {
    margin-top: 8px;
    font-size: 3.1rem;
    line-height: 1.25;
  }
  .hero__lead {
    margin-top: 18px;
    font-size: 1.5rem;
    line-height: 1.9;
  }
  .hero__cta {
    width: 100%;
    max-width: 328px;
    min-height: 52px;
    margin-top: 20px;
    padding: 0 14px 0 20px;
    font-size: 1.5rem;
  }
  .hero__proofs {
    position: static;
    width: 100%;
    max-width: 330px;
    margin: 24px auto 0;
    padding-top: 0;
    display: block;
  }
  .post-hero-feature { padding: 22px 14px 34px; }
  .feature-card__number { font-size: 4.8rem; }
  .feature-card--center .feature-card__number { font-size: 5.4rem; }
  .feature-card__main--text { font-size: 2.4rem; }
  .feature-card__ribbon {
    width: 220px;
    height: 34px;
    font-size: 1.2rem;
  }
}

@media (max-width: 390px) {
  .hero { min-height: 668px; }
  .hero__inner {
    min-height: 668px;
    padding-left: 16px;
    padding-right: 16px;
  }
  .hero__photo {
    background-size: auto 54%;
    background-position: 72% 0;
  }
  .hero__copy {
    max-width: 342px;
    padding-top: 206px;
  }
  .hero__eyebrow { font-size: 1.2rem; }
  .hero__large { font-size: 3.9rem; }
  .hero__cross { margin: 0 8px; font-size: 2.5rem; }
  .hero__title-line--main { font-size: 2.1rem; }
  .hero__title-line--sub { font-size: 2.7rem; }
  .hero__lead { font-size: 1.4rem; }
  .hero__cta { font-size: 1.4rem; }
  .hero__proofs { max-width: 310px; }
}
/* === /Codex FV update === */

/* Assurance fee band */
.assurance-fee {
  position: relative;
  z-index: 5;
  padding: 50px 24px;
  background-color: #f4eee8;
  background-image: radial-gradient(rgba(87,29,51,.1) 1px, transparent 1px);
  background-size: 9px 9px;
}
.assurance-fee__inner {
  width: min(1160px, 100%);
  min-height: 132px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 210px 1.18fr 1.18fr .92fr;
  align-items: stretch;
  background: rgba(255,255,255,.94);
  border-top: 4px solid #8a7060;
  border-right: 1px solid #e9dde0;
  border-bottom: 1px solid #e9dde0;
  box-shadow: 0 8px 22px rgba(43,15,29,.08);
  transform: translateY(-1px);
}
.assurance-fee__heading {
  position: relative;
  overflow: hidden;
  padding: 36px 26px 30px 30px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: #fff;
  background: linear-gradient(135deg, #3b1427 0%, #571d33 100%);
}
.assurance-fee__heading::after {
  content: "";
  position: absolute;
  top: 0;
  right: -34px;
  width: 62px;
  height: 100%;
  background: #f4eee8;
  transform: skewX(-9deg);
  transform-origin: top right;
}
.assurance-fee__title {
  position: relative;
  z-index: 1;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.35;
}
.assurance-fee__en {
  position: relative;
  z-index: 1;
  margin-top: 8px;
  color: #cbb2a6;
  font-size: 12px;
  font-style: italic;
  letter-spacing: .12em;
}
.assurance-fee__item {
  min-width: 0;
  padding: 22px 34px 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  border-left: 1px solid #eadfe2;
}
.assurance-fee__label {
  margin: 0 0 8px;
  min-width: 112px;
  padding: 5px 18px 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #f0e6ea;
  color: #571d33;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1;
}
.assurance-fee__price {
  margin: 0;
  color: #8a7060;
  font-size: 48px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .02em;
}
.assurance-fee__price span {
  margin-right: 7px;
  color: #8a7060;
  font-size: 20px;
  vertical-align: .18em;
}
.assurance-fee__price small {
  margin-left: 3px;
  font-size: 18px;
  font-weight: 600;
  vertical-align: .22em;
}
.assurance-fee__note {
  margin: 10px 0 0;
  color: #8a7060;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.55;
}
.assurance-fee__list {
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
  color: #8a7060;
  text-align: left;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.7;
}
.assurance-fee__list li::before {
  content: "✓";
  margin-right: 7px;
  color: #8a7060;
}
.assurance-fee__item--payment {
  align-items: flex-start;
  padding-left: 42px;
}
.assurance-fee__item--payment .assurance-fee__label {
  align-self: center;
  margin-bottom: 10px;
}
.assurance-fee__item--payment .assurance-fee__note {
  margin-top: 6px;
  text-align: left;
}
@media (max-width: 920px) {
  .assurance-fee { padding: 18px 20px 0; }
  .assurance-fee__inner { grid-template-columns: 1fr; border-top-width: 3px; }
  .assurance-fee__heading { min-height: 92px; padding: 24px 28px; align-items: center; text-align: center; }
  .assurance-fee__heading::after { display: none; }
  .assurance-fee__item,
  .assurance-fee__item--payment { padding: 24px 22px; align-items: center; border-left: 0; border-top: 1px solid #eadfe2; }
  .assurance-fee__item--payment .assurance-fee__note { text-align: center; }
}
@media (max-width: 520px) {
  .assurance-fee { padding: 14px 14px 0; }
  .assurance-fee__title { font-size: 19px; }
  .assurance-fee__price { font-size: 40px; }
  .assurance-fee__price span { font-size: 17px; }
  .assurance-fee__price small { font-size: 15px; }
  .assurance-fee__note,
  .assurance-fee__list { font-size: 12px; }
}

/* Unified post hero background */
.post-hero-cluster {
  position: relative;
  background-color: #f4eee8;
  background-image:
    radial-gradient(rgba(87,29,51,.12) 1px, transparent 1px),
    linear-gradient(180deg, rgba(43,15,29,.08) 0%, rgba(43,15,29,0) 58px);
  background-size: 9px 9px, 100% 100%;
}
.post-hero-cluster .assurance-fee,
.post-hero-cluster .post-hero-feature {
  background: transparent;
  background-image: none;
}
.post-hero-cluster .assurance-fee {
  padding-bottom: 0;
}
.post-hero-cluster .post-hero-feature {
  padding-top: 34px;
}
.post-hero-cluster .feature-cards {
  transform: none;
  margin-bottom: 0;
}
@media (max-width: 920px) {
  .post-hero-cluster .post-hero-feature {
    padding-top: 24px;
  }
}

/* Side fixed CTA */
.side-cta {
  position: fixed;
  right: 0;
  top: 50%;
  z-index: 80;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transform: translateY(-50%);
}
.side-cta__item {
  width: 66px;
  min-height: 136px;
  padding: 15px 8px 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 11px;
  color: #fff;
  box-shadow: 0 10px 24px rgba(43,15,29,.18);
  transition: transform .2s ease, filter .2s ease;
}
.side-cta__item:hover {
  transform: translateX(-4px);
  filter: brightness(1.04);
}
.side-cta__item--consult {
  background: linear-gradient(180deg, #8a3352 0%, #571d33 100%);
  border: 1px solid rgba(236,218,208,.38);
  border-right: 0;
}
.side-cta__item--line {
  min-height: 158px;
  background: linear-gradient(180deg, #20b356 0%, #168b43 100%);
  border: 1px solid rgba(255,255,255,.28);
  border-right: 0;
}
.side-cta__text {
  display: block;
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.08;
}
.side-cta__icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 30px;
  height: 30px;
  color: #fff;
  font-size: 24px;
  line-height: 1;
}
.side-cta__icon--line {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #fff;
  color: #20b356;
  font-size: 25px;
}
.sp-line .ic.fa-line {
  font-size: 2.2rem;
  line-height: 1;
}
@media (max-width: 920px) {
  .side-cta {
    display: none;
  }
}

/* 2026-09-30 TOP FAQ「そのほかのご質問」リンク */
.faq-more { text-align:center; margin-top:28px; font-size:1.5rem; }
.faq-more a { color:var(--wine); font-weight:700; letter-spacing:.06em; border-bottom:1px solid var(--gold-l); padding-bottom:4px; text-decoration:none; }
.faq-more a:hover { color:var(--pink-d); border-bottom-color:var(--pink-d); }

/* =========================================================
   2026-09-30 TOPモバイル改善
   ========================================================= */
/* SP専用の改行（h2の「1〜2文字だけ折り返し」を防ぐ。PCでは無効） */
.br-sp { display:none; }
@media (max-width:720px) {
  .br-sp { display:inline; }
  /* 改行位置の指定が無い見出しも、行の長さが揃うように折り返す（対応ブラウザのみ） */
  main h2, .doc-catch h2, .sop-txt h2 { text-wrap:balance; }

  /* ヘッダー：ロゴ＋ハンバーガーを1行に収める（サイト名の3行折り返し防止） */
  .header-in { flex-wrap:nowrap; align-items:center; gap:10px; }
  .header-right { display:none; }
  .header-left { min-width:0; }
  .header-left img { height:34px; }
  .header-left .site-name { white-space:nowrap; font-size:1.05rem; line-height:1.4; letter-spacing:.04em; }
  .nav-toggle { flex:0 0 auto; }
}
@media (max-width:480px) {
  .header-left .site-name { display:none; }
}

/* ハンバーガーの追従：ヘッダーが画面外に出たとき／ドロワーを開いている間は右上に固定 */
@media (max-width:1080px) {
  body.hdr-out .nav-toggle,
  body.drawer-open .nav-toggle {
    position:fixed; top:10px; right:12px; z-index:125;
    width:46px; height:46px; gap:5px;
    background:#fff; border-radius:50%;
    box-shadow:0 4px 14px rgba(60,40,50,.28);
  }
  body.hdr-out .nav-toggle span,
  body.drawer-open .nav-toggle span { width:22px; }
  body.drawer-open.hdr-out .nav-toggle span:nth-child(1),
  body.drawer-open .nav-toggle span:nth-child(1) { transform:translateY(8px) rotate(45deg); }
  body.drawer-open.hdr-out .nav-toggle span:nth-child(3),
  body.drawer-open .nav-toggle span:nth-child(3) { transform:translateY(-8px) rotate(-45deg); }
}
/* 極小幅（〜400px）では見出しを一段小さくして、改行位置指定どおりに収める */
@media (max-width:400px) {
  .consult h2 { font-size:2.6rem; }
  .st-ttl h2 { font-size:2.3rem; }
  .sop-txt h2 { font-size:2.3rem; }
}
/* ドロワー表示中は、ヘッダー（固定化した×ボタンを含む）をドロワーより前面に */
@media (max-width:1080px) {
  body.drawer-open #siteHeader { z-index:130; }
}

/* =========================================================
   2026-09-30 TOPモバイル改善 第2弾
   ========================================================= */
/* ケアサロン「専門メンテナンス」の文字サイズ（インラインstyleから移動） */
.hosho-col .big .n-sm { font-size:3.2rem; }
/* ドクター写真：width/height属性を付けたため縦に伸びていたのを修正 */
.doc-ph2 img { height:auto; }

@media (max-width:720px) {
  /* 強みセクションの見出し：番号とタイトルを上下中央揃え */
  .st-head { align-items:center; }
  /* 料金シミュレーターの見出し帯 */
  .sim2-hd { padding:24px 30px 20px; }
  /* 定額に含まれるもの：2列 */
  .inc-grid { grid-template-columns:1fr 1fr; gap:10px; }
  /* 保証タイムライン：丸印と文字の重なりを解消 */
  .tl-wrap { margin:16px 0 40px; }
  .tl-bar { display:none; }
  .tl-pts { margin-top:0; gap:16px; }
  .tl-pt { padding-left:40px; }
  .tl-pt::before { width:18px; height:18px; border-width:5px; top:6px; }
  .tl-pt h3 { margin-top:0; font-size:1.8rem; line-height:1.5; }
  .tl-pt p { margin-top:2px; }
  /* 保証・ケアサロンの大きな数字 */
  .hosho-col .big { font-size:2.2rem; }
  .hosho-col .big .n { font-size:3.6rem; }
  .hosho-col .big .n-sm { font-size:2.2rem; }
  /* 著書・コラボ講演・全国からの見出し */
  .book-txt h3 { font-size:2.2rem; line-height:1.6; }
  .media2 h3 { font-size:2.3rem; line-height:1.6; }
  .media-card .cap { font-size:1.25rem; }
  .zen-circle { width:220px; height:220px; }
  .zen-circle .b { font-size:4.8rem; }
  .zen-circle .b small { font-size:1.8rem; }
  .zen-txt h3 { font-size:2.4rem; line-height:1.6; }
  /* お問い合わせ帯 */
  .contact-lead { font-size:1.9rem; letter-spacing:.04em; }
  .c-free .big { font-size:2.4rem; }
}
@media (max-width:400px) {
  .inc-grid { grid-template-columns:1fr 1fr; }
}

/* =========================================================
   2026-09-30 全体点検 第3弾（モバイルの改行・文字サイズ）
   ========================================================= */
@media (max-width:720px) {
  .faq-q { text-wrap:balance; padding:16px 46px 16px 52px; }
  .faq-q::before { left:14px; }
  .proc-step h3 { font-size:1.5rem; }
  .stat .cap { font-size:1.2rem; }
  .footer-copy { font-size:1.2rem; }
}
@media (max-width:400px) {
  .sim2-hd h3 { font-size:1.9rem; }
}
@media (max-width:720px) {
  /* 料金シミュレーターの小さな注記・ラベル */
  .s04 .en, .s04 .midline, .s04 .note3 { font-size:1.2rem; }
}
@media (max-width:720px) {
  .sim2 .jaw-name .en { font-size:1.2rem; }
}

/* =========================================================
   2026-09-30 モバイル追加修正（万一に備える／理念サブ／FV画像のSP差し替え）
   ========================================================= */
@media (max-width:720px) {
  /* 「万一に備える安全管理体制」：縦積み時にひし形アイコンが横に伸びていたのを修正 */
  .fac-safety { padding:26px 22px; gap:18px; }
  .fac-safety .ic { flex:0 0 auto; width:56px; height:56px; align-self:center; margin:6px 0 4px; }
  .fac-safety .ic span { font-size:2.2rem; }
  .fac-safety .t { font-size:1.8rem; }
}
@media (max-width:640px) {
  /* FV背景：SP専用画像（assets/images/hero-main-sp.jpg・正方形1:1）。横幅いっぱいに敷き、上端揃え */
  .hero__photo { background-image:url(../images/hero-main-sp.jpg); background-size:100% auto; background-position:center top; }
}
@media (max-width:390px) {
  .hero__photo { background-size:100% auto; background-position:center top; }
}
@media (max-width:720px) {
  /* 理念「歯は臓器」：2列だと見出しが「歯は臓／器」で折れるため、見出しとサブを縦積みに */
  .organ-left { flex-direction:column; align-items:flex-start; gap:10px; }
  .organ-tate2 { white-space:nowrap; letter-spacing:.18em; line-height:1.2; }
  .organ-tsub { white-space:nowrap; letter-spacing:.3em; font-size:1.4rem; }
}
@media (max-width:640px) {
  /* SP FV：コラージュ写真が見えるよう、上部（写真部分）の影を薄く、文字が載る下部だけ濃く */
  .hero__shade {
    background:
      linear-gradient(180deg, rgba(43,15,29,.04) 0%, rgba(43,15,29,.10) 36%, rgba(43,15,29,.86) 58%, rgba(43,15,29,.98) 100%),
      linear-gradient(90deg, rgba(43,15,29,.45) 0%, rgba(87,29,51,.25) 55%, rgba(138,51,82,.10) 100%);
  }
}

/* 2026-10-02 TOP費用セクション：自由診療・主なリスクの独立ブロック */
.price-risk { width:1000px; max-width:100%; margin:34px auto 0; background:#fbf3f5; border-left:4px solid var(--pink-d); padding:22px 28px; }
.price-risk__ttl { font-family:"Noto Serif JP",serif; font-size:1.6rem; font-weight:700; color:var(--wine); margin-bottom:8px; }
.price-risk p { font-size:1.35rem; line-height:1.9; color:#4a4453; text-align:justify; }
.price-risk p + p { margin-top:10px; }
@media (max-width:720px) {
  .price-risk { padding:18px 20px; margin-top:26px; }
  .price-risk__ttl { font-size:1.5rem; }
  .price-risk p { font-size:1.3rem; }
}

/* ========== AI相談窓口 ========== */
.ai-window { padding: 72px 0; }
@media (max-width: 767px) {
  .ai-window { padding: 48px 0; }
}
