
:root{
  --ivory:#fbf8f3; --cream:#fffdf9; --mist:#f4eee6; --sand:#e9dfd2;
  --brown:#8a6446; --brown-dark:#6d4c34; --caramel:#c08a58; --caramel-soft:#f1e2cf;
  --ink:#2f2924; --muted:#776b62; --espresso:#2e2824; --gold:#c6a06b; --tel:#8a4e3c; --line-green:#06c755;
  --line:rgba(110,80,55,.15); --shadow:0 14px 32px rgba(70,48,30,.10);
  --serif:'Noto Serif JP','Hiragino Mincho ProN',serif;
  --sans:'Noto Sans JP',-apple-system,BlinkMacSystemFont,'Hiragino Sans',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--sand);-webkit-text-size-adjust:100%}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.lp{max-width:480px;margin:0 auto;background:var(--ivory);overflow:hidden;padding-bottom:76px}
@media(min-width:481px){body{padding:28px 0}.lp{border-radius:19px;box-shadow:0 20px 60px rgba(70,48,30,.12)}.fv{border-radius:19px 19px 0 0;overflow:hidden}.fixed{bottom:12px;border-radius:16px;border:1px solid var(--line)}}
/* 院の確認待ちの箇所。公開前に外す */
.tbd{background:#fff2a8;color:inherit;border-radius:3px;padding:0 2px}

.sec{padding:56px 22px}
.en{font-size:10px;letter-spacing:.32em;color:var(--caramel);text-align:center;font-weight:500}
.h2{font-family:var(--serif);font-size:23px;font-weight:600;line-height:1.6;text-align:center;margin-top:8px}
.h2 em{font-style:normal;color:var(--brown)}
.lead{font-size:13.5px;line-height:1.9;color:var(--muted);margin-top:14px}
.card{background:var(--cream);border-radius:22px;box-shadow:var(--shadow);border:1px solid var(--line)}
.pill{display:inline-block;background:var(--brown);color:#fff;font-size:11.5px;font-weight:700;border-radius:999px;padding:4px 14px}
.photo{border-radius:20px;overflow:hidden}
.photo img{width:100%;height:100%;object-fit:cover}

.cta{display:block;text-align:center;color:#fff;font-weight:700;font-size:16px;border-radius:999px;padding:17px;background:linear-gradient(90deg,#c99467,#a8714a);box-shadow:0 10px 22px rgba(168,113,74,.35)}
.cta small{display:block;font-size:10.5px;font-weight:500;opacity:.9;margin-top:2px}
.sub2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.sub2 a{border-radius:14px;text-align:center;color:#fff;font-weight:700;font-size:14px;padding:11px 4px;line-height:1.3}
.sub2 small{display:block;font-size:10px;font-weight:500;opacity:.9}
.tel{background:var(--tel)}.line{background:var(--line-green)}
.minis{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:14px}
.minis span{font-size:10.5px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 10px;color:var(--muted)}

/* FV */
.fv{position:relative;height:600px}
.fv>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%}
.fv::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,15,10,.35) 0%,rgba(0,0,0,0) 20%,rgba(0,0,0,0) 42%,rgba(25,18,12,.85) 100%)}
.hdr{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;justify-content:space-between;align-items:center;padding:16px 18px}
.logo{color:#fff;font-weight:900;font-size:24px;line-height:1}
.logo small{display:block;font-size:9.5px;font-weight:500;letter-spacing:.22em;margin-top:4px}
.hdr .telbtn{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:center}
.badges{position:absolute;top:80px;left:18px;z-index:3;display:flex;flex-direction:column;gap:7px}
.badges span{font-size:11px;color:#fff;background:rgba(40,30,22,.55);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:4px 12px;width:max-content;backdrop-filter:blur(2px)}
.fvtx{position:absolute;left:22px;right:22px;bottom:44px;z-index:3;color:#fff}
.fvtx .s{font-size:11.5px;letter-spacing:.06em;opacity:.92}
.fvtx h1{font-family:var(--serif);font-weight:600;font-size:30px;line-height:1.55;margin-top:10px;text-shadow:0 2px 14px rgba(0,0,0,.35)}
.fvtx p{font-size:12.5px;line-height:1.8;margin-top:10px;opacity:.95}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 16px;margin-top:-26px;position:relative;z-index:4}
.tabs a{background:#fff;border-radius:14px;box-shadow:var(--shadow);text-align:center;padding:11px 0;font-family:var(--serif);font-size:13.5px;font-weight:600;border:1.5px solid transparent}
.tabs a.on{border-color:var(--caramel)}
.tabs small{display:block;font-family:var(--sans);font-size:8px;letter-spacing:.2em;color:var(--caramel);font-weight:500;margin-bottom:2px}
.offer{margin:30px 16px 0;padding:34px 20px 24px;text-align:center;position:relative}
.offer .pill{position:absolute;top:-13px;left:50%;transform:translateX(-50%)}
.offer .h{font-family:var(--serif);font-size:20px;font-weight:600;line-height:1.6}
.price{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}
.price .l{font-size:12px;color:var(--brown);font-weight:700}
.price .v{font-family:var(--serif);font-size:68px;font-weight:600;color:var(--brown);line-height:1.1}
.price .v small{font-size:22px}
.offer p{font-size:12px;color:var(--muted);line-height:1.8;text-align:left;margin:12px 0 18px}

/* trust */
.trust{background:linear-gradient(180deg,var(--mist),var(--ivory))}
.t2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.t2 .card{text-align:center;padding:18px 6px}
.t2 .lb{font-size:11px;color:var(--muted)}
.t2 .n{font-family:var(--serif);font-size:46px;color:var(--brown);font-weight:600;line-height:1.2}
.stars{color:var(--gold);letter-spacing:2px;font-size:13px}
.wide{grid-column:span 2}
.wide b{font-family:var(--serif);color:var(--brown);font-size:18px;font-weight:600}
.rv{padding:18px;margin-top:12px}
.rv .tg{display:inline-block;font-size:10.5px;background:var(--brown);color:#fff;border-radius:5px;padding:2px 8px;margin-left:6px;font-weight:700}
.rv p{font-size:12.5px;line-height:1.85;margin-top:8px;color:var(--muted)}
.note{font-size:10.5px;color:var(--muted);text-align:center;margin-top:14px;line-height:1.7}
.gmap{display:block;text-align:center;margin-top:12px;font-size:12.5px;color:var(--brown);font-weight:700;text-decoration:underline}

/* check */
.chk{list-style:none;margin-top:18px}
.chk li{font-size:14px;padding:12px 0 12px 30px;border-bottom:1px solid var(--line);position:relative;line-height:1.55}
.chk li::before{content:"✓";position:absolute;left:5px;top:11px;color:var(--caramel);font-weight:900}
.then{text-align:center;margin-top:26px}

/* approach */
.diag{display:flex;justify-content:center;margin-top:20px}
.stp{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line)}
.stp:last-child{border:none}
.stp i{font-style:normal;font-family:var(--serif);font-size:24px;color:var(--caramel);font-weight:600;line-height:1;min-width:30px}
.stp b{font-size:14.5px;display:block}
.stp span{font-size:12.5px;color:var(--muted);line-height:1.7}

/* why */
.why{background:var(--espresso);padding:56px 16px}
.why .en{color:var(--gold)}
.why .h2{color:#fff}
.pt{background:var(--cream);border-radius:22px;margin-top:18px;padding:26px 18px;text-align:center}
.pt .en{font-size:9px}
.pt .no{font-family:var(--serif);font-size:48px;color:var(--brown);font-weight:600;line-height:1.1}
.pt .t{font-family:var(--serif);font-size:18px;color:var(--brown-dark);font-weight:600;line-height:1.6;margin-top:6px}
.pt .photo{height:180px;border-radius:14px;margin-top:14px}
.pt .d{font-size:12.5px;color:var(--muted);line-height:1.8;margin-top:12px;text-align:left}
.g4{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.g4 div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 4px;text-align:center}
.g4 b{display:block;font-family:var(--serif);color:var(--brown);font-size:18px;font-weight:600}
.g4 span{font-size:10.5px;color:var(--muted)}

/* case */
.ba{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.ba div{height:220px;border-radius:14px;background:repeating-linear-gradient(45deg,var(--mist),var(--mist) 10px,#efe6da 10px,#efe6da 20px);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--serif);font-size:14px;color:var(--muted);gap:6px}
.ba div small{font-family:var(--sans);font-size:10px}

/* symptoms */
.mt{display:flex;gap:4px;margin-top:20px}
.mt button{flex:1;border:none;font-family:var(--sans);font-size:13px;padding:11px 0;border-radius:12px 12px 0 0;background:var(--sand);color:var(--muted);font-weight:700;cursor:pointer}
.mt button.on{background:var(--brown);color:#fff}
.mb{border-radius:0 0 18px 18px;padding:20px}
.mb h3{font-family:var(--serif);font-weight:600;color:var(--brown);font-size:17px}
.mb p{font-size:13px;line-height:1.85;margin-top:8px}
.mb dl{margin-top:12px;font-size:12.5px;display:grid;grid-template-columns:80px 1fr;row-gap:6px}
.mb dt{color:var(--brown);font-weight:700}

/* price */
.pr{display:flex;justify-content:space-between;align-items:center;padding:16px 4px;border-bottom:1px solid var(--line);font-size:13.5px;gap:10px}
.pr:last-child{border:none}
.pr small{display:block;color:var(--muted);font-size:11px}
.pr b{font-family:var(--serif);color:var(--brown);font-size:22px;font-weight:600;white-space:nowrap}

/* access */
.gal{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}
.gal .photo{height:130px;border-radius:14px}
.map{margin-top:16px;border-radius:16px;overflow:hidden;height:200px;background:var(--sand)}
.map iframe{width:100%;height:100%;border:0}
.tb{margin-top:14px;font-size:13px;line-height:1.8}
.tb div{display:flex;border-bottom:1px solid var(--line);padding:9px 0}
.tb span{min-width:84px;color:var(--brown);font-weight:700}

/* faq */
details{background:#fff;border:1px solid var(--line);border-radius:14px;margin-top:10px}
summary{list-style:none;padding:15px 40px 15px 16px;font-size:13.5px;position:relative;cursor:pointer;line-height:1.6}
summary::-webkit-details-marker{display:none}
summary::before{content:"Q";color:var(--caramel);font-family:var(--serif);font-weight:700;margin-right:8px}
summary::after{content:"＋";position:absolute;right:16px;top:15px;color:var(--muted)}
details[open] summary::after{content:"－"}
details p{padding:0 16px 16px;font-size:12.5px;line-height:1.85;color:var(--muted)}

/* final */
.final{position:relative;padding:64px 22px 52px;text-align:center}
.final>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.final::before{content:"";position:absolute;inset:0;background:rgba(36,27,20,.74);z-index:1}
.final>*:not(img){position:relative;z-index:2}
.final .en{color:var(--gold)}
.final .h2{color:#fff}
.final p{color:#fff;font-size:12.5px;margin:10px 0 22px;opacity:.92}
.fixed{position:fixed;left:0;right:0;bottom:0;z-index:50;max-width:480px;margin:0 auto;background:rgba(255,253,249,.96);border-top:1px solid var(--line);padding:9px 10px calc(9px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:6px;backdrop-filter:blur(6px)}
.fixed a{border-radius:12px;color:#fff;text-align:center;font-size:13px;font-weight:700;padding:13px 2px}
footer{text-align:center;font-size:11px;color:var(--muted);padding:26px 0 10px}
