/* =========================================================
   自然形体療法 爽快 — 共通デザインシステム（youtsu2 踏襲）
   site.css : サイト型ページ（ヘッダー＋サイドバー）＋LP共通部品
   ========================================================= */
:root{
  --green:#2e5d40; --green-d:#244b33; --ink:#23241f; --body:#3f4138;
  --cream:#fbfaf5; --beige:#f1efe5; --card:#f6f4ed; --white:#fff;
  --gold:#d8b864; --gold-line:#cdbf95; --gold-deep:#b1924f; --gold-soft:#f3ead2;
  --terra:#c46a3a; --muted:#7a7c6f; --line:#e6e3d8;
  --sans:"Noto Sans JP",sans-serif; --serif:"Noto Serif JP",serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--body);background:var(--cream);line-height:1.85;-webkit-font-smoothing:antialiased;font-size:16px;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.serif{font-family:var(--serif)}
section{position:relative}
.sec{padding:clamp(40px,5.5vw,68px) 20px}
.in{max-width:980px;margin:0 auto}
.in-narrow{max-width:860px;margin:0 auto}
.center{text-align:center}
.eyl{color:var(--green);font-weight:700;letter-spacing:.18em;font-size:13px;margin-bottom:10px}
.h2{font-family:var(--serif);font-weight:700;font-size:clamp(22px,5.4vw,34px);line-height:1.5;margin:0}
.h2 .em{color:var(--green)}
.sec-head{text-align:center;margin-bottom:clamp(26px,4vw,40px)}
.bg-white{background:#fff}.bg-beige{background:var(--beige)}

/* ===== urgency ===== */
.urg{background:var(--green-d);color:#fff;text-align:center;font-size:clamp(11px,3vw,13px);padding:9px 14px;font-weight:500;letter-spacing:.02em}
.urg b{color:var(--gold)}

/* ===== site header ===== */
.shead{position:sticky;top:0;z-index:70;background:rgba(251,250,245,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.shead .row{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:14px;padding:11px 20px}
.brand{display:flex;align-items:center;gap:10px;min-width:0}
.brand .lf{font-size:22px;line-height:1}
.brand .bn{font-family:var(--serif);font-weight:700;color:var(--green);font-size:clamp(16px,2.2vw,20px);letter-spacing:.04em;white-space:nowrap}
.brand .bs{font-size:11px;color:var(--muted);white-space:nowrap}
.shead .sp{flex:1}
.htel{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}
.htel .n{font-family:var(--serif);font-weight:700;color:var(--green);font-size:clamp(17px,2.4vw,22px)}
.htel .t{font-size:10.5px;color:var(--muted)}
.hline{display:inline-flex;align-items:center;gap:6px;background:#06c755;color:#fff;font-weight:700;font-size:14px;padding:9px 18px;border-radius:10px;box-shadow:0 6px 16px rgba(6,199,85,.28)}
.hline:hover{filter:brightness(1.04)}
@media(max-width:860px){.htel{display:none}.hline{padding:8px 14px;font-size:13px}}

/* ===== two-column layout (site pages) ===== */
.wrap{max-width:1180px;margin:0 auto;display:flex;gap:clamp(22px,3vw,40px);align-items:flex-start;padding:clamp(26px,4vw,44px) 20px}
.main{flex:1 1 auto;min-width:0}
.side{flex:0 0 296px;width:296px;position:sticky;top:74px;display:flex;flex-direction:column;gap:18px}
@media(max-width:900px){.wrap{flex-direction:column}.side{position:static;width:100%;flex-basis:auto;flex-direction:row;flex-wrap:wrap}.side>*{flex:1 1 280px}}

/* page title (site pages) */
.ptitle{background:linear-gradient(180deg,#fbfaf5,#f1efe5);border-bottom:1px solid var(--line);padding:clamp(26px,4vw,46px) 20px;text-align:center}
.ptitle .eyl{margin-bottom:8px}
.ptitle h1{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:clamp(24px,5.4vw,38px);line-height:1.4}
.ptitle .lead{margin-top:12px;font-size:clamp(14px,3.6vw,16px);color:var(--body);max-width:720px;margin-left:auto;margin-right:auto}
.crumb{max-width:1180px;margin:0 auto;padding:9px 20px;font-size:12px;color:var(--muted)}
.crumb a{color:var(--green)}

/* ===== sidebar cards ===== */
.scard-box{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.scard-box .hd{background:var(--green-d);color:#fff;font-weight:700;font-size:14px;letter-spacing:.06em;padding:11px 16px}
.scard-box .bd{padding:16px}
.side-cta{background:#fbfaf3;border:2px solid var(--gold-line);border-radius:14px;padding:18px;text-align:center}
.side-cta .ttl{font-family:var(--serif);font-weight:700;color:var(--green);font-size:16px;margin-bottom:12px}
.side-cta .btn{width:100%;margin-bottom:9px}
.side-cta .telno{font-family:var(--serif);font-weight:700;color:var(--green);font-size:22px;margin-top:6px}
.side-cta .telno small{display:block;font-size:11px;color:var(--muted);font-weight:500}
.snav{list-style:none}
.snav li{border-bottom:1px solid var(--line)}
.snav li:last-child{border-bottom:none}
.snav a{display:flex;align-items:center;gap:9px;padding:11px 4px;font-size:14px;font-weight:500;color:var(--ink)}
.snav a:hover{color:var(--green)}
.snav a::before{content:"›";color:var(--gold-deep);font-weight:700}
.snav a.cur{color:var(--green);font-weight:700}
.side-info{font-size:13px;color:var(--body);line-height:1.9}
.side-info dt{color:var(--muted);font-size:11.5px;margin-top:8px}
.side-info dd{font-weight:500}
.side-info .tel{font-family:var(--serif);font-weight:700;color:var(--green);font-size:19px}

/* ===== buttons (youtsu2) ===== */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:700;border-radius:13px;cursor:pointer;border:none;font-family:var(--sans);transition:transform .15s,box-shadow .2s,filter .2s;text-decoration:none}
.btn:hover{transform:translateY(-2px)}
.btn-line{background:#06c755;color:#fff;box-shadow:0 8px 22px rgba(6,199,85,.32)}
.btn-line:hover{filter:brightness(1.04)}
.btn-tel{background:var(--white);border:2px solid var(--green);color:var(--green)}
.btn-mail{background:var(--green);color:#fff}

/* ===== CTA band (shared) ===== */
.ctaband{background:linear-gradient(180deg,#2e5d40,#244b33);padding:clamp(40px,6vw,72px) 20px}
.ctaband .inner{max-width:720px;margin:0 auto;text-align:center}
.ctaband .eyl{color:var(--gold);letter-spacing:.2em;margin-bottom:12px}
.ctaband h2{font-family:var(--serif);font-weight:700;color:#fff;font-size:clamp(22px,5.4vw,34px);line-height:1.5;margin:0 0 clamp(22px,4vw,32px)}
.ctaband .box{background:#fbfaf3;border-radius:20px;border:2px solid var(--gold-line);padding:clamp(24px,4.5vw,38px) clamp(20px,4vw,38px);box-shadow:0 18px 44px rgba(0,0,0,.28)}
.ctaband .lead{font-size:clamp(14px,3.6vw,16px);color:#3f4138;margin-bottom:18px;line-height:1.95}
.ctaband .cta-col{display:flex;flex-direction:column;gap:12px;max-width:420px;margin:0 auto}
.ctaband .cta-col .btn{font-size:clamp(16px,4vw,19px);padding:17px 20px}
.ctaband .foot{font-size:12px;color:var(--muted);margin-top:16px}
.ctaband .telbig{font-family:var(--serif);font-weight:700;color:var(--green);font-size:clamp(24px,6vw,32px);margin:4px 0}
.ctaband .telbig small{display:block;font-size:12px;color:var(--muted);font-weight:500}

/* ===== offer (price) — youtsu2 ===== */
.offer1{background:var(--green-d);padding:clamp(26px,4vw,40px) 20px}
.offer1 .box{max-width:760px;margin:0 auto;background:#fbfaf3;border-radius:18px;border:2px solid var(--gold-line);padding:clamp(22px,4vw,34px) clamp(18px,4vw,40px);box-shadow:0 16px 40px rgba(0,0,0,.22);text-align:center}
.tagpill{display:inline-block;background:var(--green);color:#f3ead2;font-weight:700;font-size:clamp(13px,3.4vw,15px);letter-spacing:.08em;padding:6px 20px;border-radius:99px;margin-bottom:14px}
.priceline{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:clamp(8px,2.5vw,18px);margin-bottom:6px}
.priceline .lbl{font-size:clamp(15px,3.6vw,18px);color:var(--muted)}
.priceline .was{font-size:clamp(20px,5vw,26px);color:#9a9384;text-decoration:line-through;text-decoration-color:var(--terra);font-weight:700}
.priceline .ar{font-size:clamp(22px,5vw,28px);color:var(--terra);font-weight:900}
.priceline .now{font-family:var(--serif);font-weight:700;color:var(--terra);font-size:clamp(40px,11vw,68px);line-height:1}
.priceline .now small{font-size:.42em;font-weight:700}
.priceline .tax{font-size:clamp(12px,3vw,14px);color:var(--muted)}
.offer-note{font-size:clamp(12px,3.2vw,14px);color:#5c5e54;margin:4px 0 20px}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:560px;margin:0 auto}
.cta-row .btn{flex:1 1 230px;max-width:320px;font-size:clamp(15px,3.8vw,17px);padding:16px 20px}
.tel-inline{display:inline-flex;align-items:center;gap:8px;margin-top:14px;color:var(--green);font-weight:700;font-size:clamp(15px,4vw,19px)}
.tel-inline small{font-size:12px;color:var(--muted);font-weight:500}

/* ===== FV hero (image-based / youtsu2踏襲) ===== */
.fvhero{background:linear-gradient(180deg,#fbfaf5,#f1efe5);overflow:hidden}
.fvhero .fvwrap{max-width:1200px;margin:0 auto}
.fvhero picture{display:block}
.fvhero img{width:100%;height:auto;display:block;aspect-ratio:1672/941}
@media(max-width:680px){.fvhero .fvwrap{max-width:480px}.fvhero img{aspect-ratio:941/1672}}

/* ===== hero (LP text-based) ===== */
.lpHero{background:linear-gradient(160deg,#fbfaf5 0%,#eef1e6 60%,#e7ece0 100%);padding:clamp(40px,7vw,84px) 20px;text-align:center;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.lpHero .badge{display:inline-block;background:#fff;border:1px solid var(--gold-line);color:var(--green);font-weight:700;font-size:clamp(11px,3vw,13px);letter-spacing:.08em;padding:6px 18px;border-radius:99px;margin-bottom:18px}
.lpHero h1{font-family:var(--serif);font-weight:700;color:var(--ink);font-size:clamp(26px,6.6vw,46px);line-height:1.45;max-width:880px;margin:0 auto}
.lpHero h1 .em{color:var(--green)}
.lpHero h1 .marker{background:linear-gradient(transparent 62%,#f3ead2 62%);padding:0 .1em}
.lpHero .sub{margin-top:18px;font-size:clamp(14px,3.8vw,18px);color:var(--body);font-weight:500;max-width:680px;margin-left:auto;margin-right:auto}
.lpHero .meta{margin-top:22px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.lpHero .meta span{background:#fff;border:1px solid var(--line);border-radius:99px;padding:7px 16px;font-size:clamp(12px,3.2vw,14px);font-weight:700;color:var(--green)}

/* ===== check ===== */
.checks{display:flex;flex-wrap:wrap;gap:14px;text-align:left}
.checks .it{flex:1 1 360px;min-width:240px;background:var(--card);border:1px solid #e6e3d8;border-radius:12px;padding:16px 18px;display:flex;align-items:flex-start;gap:12px}
.checks .ck{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;margin-top:2px}
.checks .tx{font-size:clamp(14px,3.6vw,16px);font-weight:500;line-height:1.7}
.check-foot{text-align:center;margin-top:clamp(24px,4vw,34px);font-size:clamp(15px,4vw,19px);font-weight:700;line-height:1.8}
.check-foot .em{color:var(--terra)}

/* ===== voice ===== */
.vgrid{display:flex;flex-wrap:wrap;gap:18px}
.vcard{flex:1 1 290px;min-width:250px;background:#fff;border-radius:16px;border:1px solid #e6e3d8;overflow:hidden;box-shadow:0 8px 22px rgba(60,70,40,.06);display:flex;flex-direction:column}
.vcard .vp{aspect-ratio:3/2;overflow:hidden;background:#eef0e7}
.vcard .vp img{width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.vcard .vb{padding:16px 20px 20px}
.vcard .sym{display:inline-block;background:#eef0e7;color:var(--green);font-size:11.5px;font-weight:700;padding:3px 11px;border-radius:20px;margin-bottom:9px}
.vcard .vt{font-size:clamp(15px,3.8vw,17px);font-weight:700;color:var(--green);line-height:1.5;margin-bottom:10px}
.vcard .vtxt{font-size:13.5px;color:#4a4c43;line-height:1.85;margin-bottom:14px}
.vcard .who{font-size:12px;color:var(--muted);border-top:1px solid #efe7d6;padding-top:10px}
.voice-note{text-align:center;font-size:12px;color:var(--muted);margin-top:18px}

/* ===== reason / lead ===== */
.lead-p{font-size:clamp(14px,3.7vw,16.5px);line-height:2;color:#3f4138;margin:0 0 22px}
.lead-p strong{color:var(--green)}
.pt-box{background:var(--card);border-left:4px solid var(--gold-deep);border-radius:0 10px 10px 0;padding:18px 22px;font-size:clamp(14px,3.7vw,16.5px);line-height:1.95;margin:0 0 18px}
.pt-box strong{color:var(--green)}
.pt-box h3{font-family:var(--serif);color:var(--green);font-size:clamp(16px,4vw,19px);margin:0 0 8px}

/* generic list (treatment-critique etc.) */
.tlist{list-style:none;margin:14px 0 0;display:flex;flex-direction:column;gap:9px}
.tlist li{position:relative;padding:11px 14px 11px 40px;background:#fff;border:1px solid var(--line);border-radius:10px;font-size:clamp(13.5px,3.5vw,15px);line-height:1.7}
.tlist li::before{content:"✓";position:absolute;left:14px;top:11px;color:var(--gold-deep);font-weight:700}

/* ===== analysis bignum ===== */
.bignum{display:inline-flex;align-items:baseline;gap:6px;margin-bottom:18px}
.bignum .n{font-family:var(--serif);font-weight:700;color:var(--green);font-size:clamp(56px,15vw,92px);line-height:.9}
.bignum .u{font-size:clamp(15px,4vw,20px);font-weight:700;color:#3f4138}

/* ===== green section ===== */
.green-sec{background:var(--green-d);color:#f2f0e6}
.green-sec .eyl{color:var(--gold)}
.green-sec .h2{color:#fff}.green-sec .h2 .em{color:var(--gold)}
.green-sec p{font-size:clamp(14px,3.7vw,16.5px);line-height:2.05;color:#dad9cb;max-width:720px;margin:0 auto 14px}
.green-sec p strong{color:#fff}.green-sec p strong.g{color:var(--gold)}
.sk-photo{max-width:760px;margin:22px auto 0;border-radius:16px;overflow:hidden;box-shadow:0 16px 40px rgba(0,0,0,.28)}
.sk-photo img{width:100%;height:auto;display:block}

/* ===== point ===== */
.pgrid{display:flex;flex-wrap:wrap;gap:18px}
.pcard{flex:1 1 280px;min-width:240px;background:var(--card);border:1px solid #e6e3d8;border-radius:16px;padding:clamp(22px,3.5vw,30px) 24px;text-align:center}
.pcard .pn{width:54px;height:54px;border-radius:50%;border:1.5px solid var(--gold-line);background:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-family:var(--serif);font-weight:700;color:var(--green);font-size:22px}
.pcard h3{font-size:clamp(16px,4vw,19px);font-weight:700;margin:0 0 12px;line-height:1.5;color:var(--ink)}
.pcard p{font-size:13.5px;color:#4a4c43;line-height:1.9;margin:0;text-align:left}

/* ===== doctors ===== */
.dgrid{display:flex;flex-wrap:wrap;gap:18px}
.dcard{flex:1 1 280px;min-width:240px;background:#fff;border-radius:16px;border:1px solid #e6e3d8;overflow:hidden;box-shadow:0 8px 22px rgba(60,70,40,.05);display:flex;flex-direction:column}
.dcard .dp{width:100%;aspect-ratio:1/1;overflow:hidden;background:#eef0e7}
.dcard .dp img{width:100%;height:100%;object-fit:cover;object-position:50% 28%}
.dcard .db{padding:18px 20px 20px}
.dcard .dn{font-weight:700;font-size:16px;color:var(--ink)}
.dcard .dr{font-size:12.5px;color:var(--muted);margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #efe7d6}
.dcard .dc{font-size:13.5px;color:#4a4c43;line-height:1.9;margin:0}

/* ===== media ===== */
.media{display:flex;gap:26px;align-items:center;justify-content:center;flex-wrap:wrap;background:#fff;border-radius:16px;padding:28px;box-shadow:0 8px 22px rgba(60,70,40,.06);border:1px solid #e6e3d8;max-width:840px;margin:0 auto}
.media img{border-radius:10px;box-shadow:0 4px 14px rgba(36,75,51,.12);max-height:240px;width:auto}
.media .mtx{flex:1;min-width:230px}
.media .mtx .eyl{margin-bottom:6px}
.media .mtx h3{font-family:var(--serif);color:var(--green);font-size:21px;margin:2px 0 8px;line-height:1.5}
.media .mtx p{font-size:14px;color:#4a4c43;line-height:1.9}

/* ===== staff ===== */
.sgrid{display:flex;flex-wrap:wrap;gap:22px}
.scard{flex:1 1 320px;min-width:280px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 8px 22px rgba(60,70,40,.06);border:1px solid #e6e3d8;display:flex;flex-direction:column}
.scard .sp{aspect-ratio:3/4;overflow:hidden}
.scard .sp img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.scard .sb{padding:22px 24px}
.scard .sr{color:var(--gold-deep);font-size:12px;font-weight:700;letter-spacing:.1em}
.scard .sn{font-family:var(--serif);color:var(--green);font-size:23px;font-weight:700;margin:3px 0 8px}
.scard .sn small{font-size:13px;color:var(--muted);font-family:var(--sans);margin-left:8px}
.scard .sl{font-size:14px;color:#4a4c43;line-height:1.9;margin-bottom:10px}
.scard ul{margin:0;padding-left:0;list-style:none}
.scard li{font-size:13px;color:#4a4c43;padding:3px 0 3px 18px;position:relative}
.scard li::before{content:"";position:absolute;left:0;top:11px;width:7px;height:7px;border-radius:50%;background:var(--gold-line)}

/* ===== message ===== */
.msg{display:flex;flex-wrap:wrap;gap:clamp(24px,4vw,44px);align-items:center;max-width:940px;margin:0 auto}
.msg .mp{flex:1 1 280px;min-width:260px;border-radius:16px;overflow:hidden;box-shadow:0 12px 30px rgba(36,75,51,.14)}
.msg .mp img{width:100%;height:auto;display:block}
.msg .mt{flex:1 1 360px;min-width:300px}
.msg .mt h2{font-family:var(--serif);font-weight:700;font-size:clamp(20px,4.8vw,28px);line-height:1.6;margin:0 0 18px}
.msg .mt p{font-size:clamp(14px,3.7vw,16px);line-height:2.05;color:#3f4138;margin:0 0 16px}
.msg .mt p strong{color:var(--green)}
.msg .sign{font-family:var(--serif);font-size:15px;color:var(--ink)}

/* ===== faq ===== */
.faq{display:flex;flex-direction:column;gap:12px;max-width:760px;margin:0 auto}
.faq details{background:var(--card);border:1px solid #e6e3d8;border-radius:12px;overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:16px 20px;display:flex;align-items:flex-start;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary .q{flex:0 0 auto;color:var(--green);font-weight:900;font-family:var(--serif);font-size:18px;line-height:1.5}
.faq summary .qt{flex:1;font-size:clamp(14px,3.7vw,16px);font-weight:700;color:var(--ink);line-height:1.6}
.faq summary .pm{flex:0 0 auto;color:var(--green);font-size:20px;font-weight:700;line-height:1.4}
.faq details[open] summary .pm{transform:rotate(45deg)}
.faq .a{padding:0 20px 18px 52px;font-size:clamp(13.5px,3.5vw,15px);color:#4a4c43;line-height:1.95}

/* ===== access ===== */
.acc{display:flex;flex-wrap:wrap;gap:clamp(20px,4vw,36px);align-items:stretch}
.acc .map{flex:1 1 320px;min-width:280px;border-radius:14px;overflow:hidden;min-height:300px;border:1px solid #e2e6d6}
.acc .map iframe{width:100%;height:100%;min-height:300px;border:0;display:block}
.acc .info{flex:1 1 300px;min-width:280px;background:#fff;border:1px solid #e6e3d8;border-radius:14px;padding:clamp(22px,3.5vw,30px)}
.acc table{width:100%;border-collapse:collapse;font-size:clamp(13.5px,3.5vw,15px)}
.acc td{padding:11px 0;border-bottom:1px solid #efeadd;vertical-align:top}
.acc td.k{color:var(--muted);width:92px}
.acc tr:last-child td{border-bottom:none}
.acc td.tel{font-weight:700;color:var(--green)}
.acc-rooms{display:flex;gap:12px;margin-top:16px}
.acc-rooms figure{flex:1}
.acc-rooms img{border-radius:12px;width:100%;aspect-ratio:3/2;object-fit:cover;box-shadow:0 4px 14px rgba(36,75,51,.1)}
.acc-rooms figcaption{font-size:11.5px;color:var(--muted);text-align:center;margin-top:5px}

/* ===== generic prose (site pages) ===== */
.prose p{font-size:clamp(14px,3.7vw,16px);line-height:2;margin:0 0 16px}
.prose h2{font-family:var(--serif);color:var(--green);font-size:clamp(19px,4.4vw,25px);line-height:1.5;margin:34px 0 14px}
.prose h3{font-family:var(--serif);color:var(--ink);font-size:clamp(16px,4vw,20px);margin:24px 0 10px}
.prose strong{color:var(--green)}
.prose img{border-radius:12px;margin:10px 0}

/* steps (flow) */
.steps{display:flex;flex-direction:column;gap:16px;counter-reset:st}
.step{display:flex;gap:16px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:clamp(18px,3vw,24px);position:relative}
.step .no{counter-increment:st;flex:0 0 auto;width:46px;height:46px;border-radius:50%;background:var(--green);color:#fff;font-family:var(--serif);font-weight:700;font-size:20px;display:flex;align-items:center;justify-content:center}
.step .no::before{content:counter(st)}
.step .sc h3{font-family:var(--serif);color:var(--green);font-size:clamp(16px,4vw,20px);margin:2px 0 7px}
.step .sc p{font-size:clamp(13.5px,3.5vw,15px);line-height:1.9;margin:0}

/* price table */
.ptbl{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.ptbl th,.ptbl td{padding:15px 18px;border-bottom:1px solid var(--line);text-align:left;font-size:clamp(14px,3.6vw,16px)}
.ptbl th{background:var(--card);color:var(--ink);font-weight:700;width:55%}
.ptbl td{text-align:right;font-weight:700;color:var(--green);white-space:nowrap}
.ptbl tr:last-child th,.ptbl tr:last-child td{border-bottom:none}
.note{font-size:12.5px;color:var(--muted);margin-top:12px;line-height:1.8}

/* gallery grid */
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.gal figure{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover}
.gal figcaption{padding:10px 12px;font-size:13px;color:var(--body)}

/* symptom index grid */
.symgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.symgrid a{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-weight:700;font-size:clamp(14px,3.6vw,15.5px);color:var(--ink);transition:transform .15s,box-shadow .2s,border-color .2s}
.symgrid a:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(60,70,40,.08);border-color:var(--gold-line);color:var(--green)}
.symgrid a::before{content:"🌿";font-size:15px}

/* ===== footer ===== */
footer{background:#23241f;color:#cfd0c5;padding:clamp(36px,5vw,56px) 20px clamp(80px,10vw,56px);text-align:center}
footer .fnav{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:center;margin-bottom:20px;font-size:13px}
footer .fnav a{color:#cfd0c5}footer .fnav a:hover{color:#fff}
footer .fb{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:14px}
footer .fb .nm{font-family:var(--serif);font-weight:600;letter-spacing:.12em;font-size:17px;color:#fff}
footer p{font-size:13px;color:#9a9b90;line-height:1.9;margin:0 0 6px}
footer .cp{font-size:11px;color:#6d6e63;margin-top:14px}
footer a{color:#cfd0c5}footer a:hover{color:#fff}

/* ===== sticky mobile cta ===== */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:80;display:none;gap:8px;padding:9px 12px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);box-shadow:0 -6px 20px rgba(0,0,0,.12);border-top:1px solid var(--line)}
.sticky .btn{flex:1;padding:13px 8px;font-size:14.5px;border-radius:10px}
.sticky .btn small{display:block;font-size:10px;font-weight:600;opacity:.9}
@media(max-width:760px){.sticky{display:flex}}
/* sticky buttons: label over caption, never broken mid-word (2026-09-25) */
body .sticky .btn{flex-direction:column;justify-content:center;gap:1px;line-height:1.25;white-space:nowrap;padding-left:6px;padding-right:6px}
body .sticky .btn small{white-space:nowrap}
