/* totonoie 新LP 共通スタイル（6色のみ使用） */
/* 文字と場面画像の調整は末尾の読みやすさ設定で管理 */
:root{
  --base:#F5F0E8; --accent-bg:#F5EDE0; --ink:#1C2B3A; --green:#2D5A3D; --green-l:#D4EAD4; --red-l:#F5E4DC;
  --line:rgba(28,43,58,.16); --line-dark:rgba(245,240,232,.22); --weak:rgba(28,43,58,.8); --tag:rgba(28,43,58,.28);
  --sans:"Noto Sans JP",sans-serif; --serif:"Noto Serif JP",serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--base);color:var(--ink);font-family:var(--serif);font-weight:400;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;letter-spacing:.01em;text-wrap:pretty}
a{color:var(--green);text-underline-offset:3px}
a:hover{color:var(--ink)}
img{max-width:100%;display:block}
summary{cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
details[open] .qmark{transform:rotate(45deg)}
:focus-visible{outline:2px solid var(--green);outline-offset:2px}
[id]{scroll-margin-top:124px}
.num{font-variant-numeric:tabular-nums}

/* ヘッダー（sticky。JSなし） */
.site-header{position:sticky;top:0;z-index:40;background:rgba(245,240,232,.97);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.hd-row{max-width:1000px;margin:0 auto;padding:10px 18px;display:flex;align-items:center;gap:14px}
.brand{display:flex;align-items:baseline;gap:9px;text-decoration:none;color:var(--ink);flex:1 1 auto;min-width:0;flex-wrap:wrap}
.brand-name{font-size:22px;letter-spacing:.06em;line-height:1.2}
.brand-kana{font-family:var(--sans);font-size:10.5px;letter-spacing:.14em;color:rgba(28,43,58,.7);line-height:1.2}
.brand-tag{font-family:var(--sans);font-size:11.5px;letter-spacing:.1em;color:var(--green);line-height:1.2}
.hd-btn{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;background:var(--green);color:var(--base);text-decoration:none;border-radius:4px;font-family:var(--sans);font-size:13.5px;letter-spacing:.04em;white-space:nowrap}
.hd-btn:hover{color:var(--base);background:var(--ink)}
.hd-nav{border-top:1px solid var(--line);overflow-x:auto;-webkit-overflow-scrolling:touch}
.hd-nav-in{max-width:1000px;margin:0 auto;padding:0 18px;display:flex;gap:20px;white-space:nowrap;font-family:var(--sans)}
.hd-nav a{font-size:12.5px;padding:11px 0;text-decoration:none;color:var(--ink);border-bottom:1px solid transparent}
.hd-nav a[aria-current="page"]{color:var(--green);border-bottom-color:var(--green)}

/* ページ本体 */
.page{max-width:100%;overflow-x:hidden;padding-bottom:78px;font-size:16px;line-height:2}
.wrap{max-width:1000px;margin:0 auto;padding-left:18px;padding-right:18px}
.w760{max-width:760px}
.w680{max-width:680px}
.sec{padding-top:56px;padding-bottom:56px}
.sec-52{padding-top:52px;padding-bottom:52px}
.bg-accent{background:var(--accent-bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.bg-dark{background:var(--ink);color:var(--base)}
.bg-green{background:var(--green);color:var(--base)}
.bg-green :focus-visible,.price-panel :focus-visible{outline:3px solid var(--base);outline-offset:4px}
.kicker{font-family:var(--sans);font-size:11px;letter-spacing:.16em;color:var(--green);margin-bottom:16px;line-height:1.8}
.bg-dark .kicker{color:var(--green-l)}
.cat{font-family:var(--sans);font-size:11px;letter-spacing:.12em;color:var(--green);margin-bottom:16px}
.h1-sub{font-size:clamp(23px,5.2vw,34px);line-height:1.7;margin:0 0 26px;font-weight:400}
.h2{font-size:clamp(20px,4.2vw,28px);line-height:1.7;margin:0 0 26px;font-weight:400}
.bg-dark .h2{color:var(--base)}
.h2s{font-size:20px;line-height:1.8;margin:0 0 18px;font-weight:500;border-top:1px solid var(--line);padding-top:30px}
.txt{font-size:15.5px;line-height:2.1;text-align:justify;margin:0 0 22px}
.txt:last-child{margin-bottom:0}
.small{font-family:var(--sans);font-size:13px;line-height:1.9;color:var(--weak)}
.link-s{font-family:var(--sans);font-size:13.5px;line-height:1.9}

/* 注意書き */
.disclaimer{font-size:12.5px;line-height:1.95;margin:0;color:var(--ink);background:var(--accent-bg);padding:16px 18px;border-radius:4px;text-align:justify}
.disclaimer-block{margin:40px 0 0}

/* ボタン */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:4px;font-family:var(--sans);font-size:14px;letter-spacing:.04em;text-decoration:none}
.btn-fill{background:var(--green);color:var(--base);border:1px solid var(--green)}
.btn-fill:hover{background:var(--ink);border-color:var(--ink);color:var(--base)}
.btn-line{border:1px solid var(--green);color:var(--green);background:transparent}
.btn-line:hover{color:var(--ink);border-color:var(--ink)}
.btn-lg{min-height:52px;font-size:15px;padding:0 20px}

/* 画像枠 */
.plate{border:1px solid var(--line);border-radius:4px;background:var(--accent-bg);overflow:hidden}
.plate img{width:100%;height:100%;object-fit:cover}
.ratio-43{aspect-ratio:4/3}
.ratio-1610{aspect-ratio:16/10}

/* タグ */
.tags{display:flex;flex-wrap:wrap;gap:8px;font-family:var(--sans)}
.tag{font-size:13px;border:1px solid var(--tag);border-radius:4px;padding:6px 13px;line-height:1.5}
.tag-l{font-size:12.5px;border:1px solid rgba(212,234,212,.6);color:var(--green-l);border-radius:4px;padding:6px 12px;line-height:1.5}

/* ヒーロー */
.hero{max-width:1000px;margin:0 auto;padding:22px 18px 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:36px;align-items:start}
.hero > div{min-width:0}
.hero .kicker{margin-bottom:14px}
.hero-simple{padding-top:44px;padding-bottom:44px;align-items:center;gap:52px}
.hero-simple h1{font-size:clamp(28px,3.4vw,36px);line-height:1.65;letter-spacing:.035em;margin:0 0 24px}
.hero-lead{font-size:18px;line-height:1.9;margin:0 0 30px;color:var(--weak);max-width:24em}
.hero-first-price{font-size:18px;margin:0;line-height:1.5}.hero-first-price span{font-size:30px;font-variant-numeric:tabular-nums;color:var(--green)}
.hero-terms{margin:8px 0 22px}.hero-action{margin:0 0 12px}.hero-medical{margin:0}
.hero-simple .hero-img{aspect-ratio:4/5;max-height:480px;margin-bottom:28px}
.hero-practical{padding:26px 0;background:var(--accent-bg);border-top:1px solid var(--line)}
.hero-practical-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.hero-practical h2{font-size:20px;font-weight:500;margin:0 0 8px}.hero-practical p{font-size:18px;margin:0 0 14px;line-height:1.8}.hero-practical .small{font-size:16px}
.hero-service-note summary{cursor:pointer;min-height:44px;font-size:16px}.hero-service-note p{font-size:16px}
@media(max-width:700px){.hero-simple{grid-template-columns:minmax(0,1fr);padding-top:28px;padding-bottom:20px;gap:28px}.hero-simple h1{font-size:28px;line-height:1.65}.hero-lead{font-size:18px;margin-bottom:24px}.hero-first-price span{font-size:28px}.hero-simple .hero-img{aspect-ratio:3/2;height:220px;max-height:none}.hero-simple .hero-img img{object-position:center 40%}.hero-practical-grid{grid-template-columns:1fr;gap:16px}.hero-practical{padding:24px 0}}
.hero h1{margin:0 0 18px;font-weight:400}
.hero h1 .nw{display:inline-block}
.hl-s{display:block;font-size:clamp(17px,3.4vw,21px);line-height:1.9}
.hl-l{display:block;font-size:clamp(26px,6.2vw,40px);line-height:1.68;margin:8px 0}
.hl-m{display:block;font-size:clamp(20px,4.4vw,28px);line-height:1.75}
.hero .disclaimer{margin-bottom:26px}
.hero-img{width:100%;aspect-ratio:2/3}
.hero-img img{width:100%;height:100%;object-fit:cover;-webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 70%,transparent 100%);mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 70%,transparent 100%)}
.hero-rule{border-top:1px solid var(--line);padding-top:20px;margin-bottom:26px}
.hero-hours{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin-bottom:24px;font-family:var(--sans);font-size:13px;line-height:1.95;color:rgba(28,43,58,.75)}
.cta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:22px}
.badges{font-family:var(--sans);font-size:12.5px;line-height:1.9;color:var(--weak);border-bottom:1px solid var(--line);padding-bottom:20px}

/* リスト類 */
.checks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}
.checks li{display:flex;gap:11px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:13px;font-size:15px;line-height:1.9}
.checks .mk{color:var(--green);font-family:var(--sans);font-size:14px}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 28px}
.steps li,.steps-1 li{display:flex;gap:14px;align-items:baseline;border-top:1px solid var(--line);padding:16px 0;font-size:15px;line-height:1.85}
.steps .n,.steps-1 .n{font-family:var(--sans);font-size:13px;color:var(--green);font-variant-numeric:tabular-nums;flex:0 0 auto}
.steps-1{list-style:none;margin:0 0 40px;padding:0}
.steps-1 li:last-child{border-bottom:1px solid var(--line)}
.fields{list-style:none;margin:0 0 26px;padding:0;display:flex;flex-direction:column;gap:12px}
.fields li{border-bottom:1px solid var(--line-dark);padding-bottom:12px;font-size:15px;line-height:1.9}
.ul-plain{margin:0 0 40px;padding-left:1.3em;font-size:15px;line-height:2}

/* 2カラム */
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px;align-items:start}
.grid2 > div{min-width:0}
.portrait{position:relative;width:100%;max-width:340px;aspect-ratio:4/5;padding:10px;background:rgba(245,240,232,.1);border-radius:4px}
.portrait img{width:100%;height:100%;object-fit:cover;border-radius:2px}

/* 引用ブロック */
.quote{border-left:2px solid var(--green);padding-left:20px;max-width:640px}

/* 料金 */
.price-row{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);padding:26px 0;margin-bottom:16px}
.price-lb{font-family:var(--sans);font-size:12px;letter-spacing:.14em;color:var(--green);margin-bottom:12px}
.price-line{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.price-big{font-size:clamp(30px,7vw,42px);line-height:1.4;color:var(--green);font-variant-numeric:tabular-nums}
.price-panel{background:var(--green);color:var(--base);border-radius:4px;padding:28px 22px;margin-bottom:22px}
.price-panel .lb{font-family:var(--sans);font-size:12px;letter-spacing:.14em;color:var(--green-l);margin-bottom:6px}
.price-panel .main{font-size:clamp(46px,12vw,76px);line-height:1.3;font-variant-numeric:tabular-nums}
.price-panel .sub{font-family:var(--sans);font-size:13px;color:var(--green-l)}
.tbl-wrap{overflow-x:auto;margin-bottom:12px}
.tbl{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.tbl th{font-family:var(--sans);font-size:12.5px;font-weight:500;text-align:left;color:var(--weak);padding:10px 8px;border-bottom:1px solid var(--ink)}
.tbl td{font-size:16px;padding:14px 8px;border-bottom:1px solid var(--line)}
.box-green{font-size:14px;line-height:2;text-align:justify;margin:0;color:var(--weak);background:var(--green-l);padding:16px 18px;border-radius:4px}
.box-red{background:var(--red-l);border-radius:4px;padding:20px;margin-bottom:40px}

/* 表（dl） */
.dl{margin:0}
.dl > div{display:flex;gap:16px;padding:16px 0;border-top:1px solid var(--line)}
.dl > div:last-child{border-bottom:1px solid var(--line)}
.dl dt{flex:0 0 96px;font-family:var(--sans);font-size:12.5px;color:var(--green);line-height:2}
.dl dd{margin:0;flex:1;min-width:0;font-size:15px;line-height:1.95}
.dl-legal > div{flex-wrap:wrap;gap:4px 16px}
.dl-legal dt{flex:0 0 130px}
.dl-legal dd{flex:1 1 260px;font-size:14.5px}
.bg-dark .dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 32px}
.bg-dark .dl > div{border-top-color:var(--line-dark);border-bottom:0}
.bg-dark .dl dt{flex-basis:84px;font-size:12px;color:var(--green-l)}

/* お客様の声 */
.voices{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:14px;margin-bottom:6px}
.voices figure{flex:0 0 min(300px,82vw);scroll-snap-align:start;margin:0;background:var(--base);border:1px solid var(--line);border-radius:4px;padding:22px;display:flex;flex-direction:column}
.voices blockquote{font-size:14.5px;line-height:2;text-align:justify;margin:0 0 16px;flex:1}
.voices figcaption{font-family:var(--sans);font-size:11.5px;line-height:1.8;color:rgba(28,43,58,.7);border-top:1px solid var(--line);padding-top:12px}

/* FAQ */
.faq details{border-top:1px solid var(--line)}
.faq details:last-of-type{border-bottom:1px solid var(--line)}
.faq summary{display:flex;gap:12px;align-items:baseline;padding:16px 0;min-height:44px}
.faq summary .q{flex:1;font-size:15px;line-height:1.85}
.qmark{color:var(--green);transition:transform .2s;font-size:17px;line-height:1.5;display:inline-block}
.faq details p{font-size:14.5px;line-height:2;text-align:justify;margin:0 0 20px;color:rgba(28,43,58,.9)}

/* 申し込み（緑） */
.offer{max-width:760px;margin:0 auto;padding:56px 18px;text-align:center}
.offer .ttl{font-size:clamp(21px,4.6vw,30px);line-height:1.7;margin-bottom:8px}
.offer .sub{font-family:var(--sans);font-size:13.5px;line-height:1.9;color:var(--green-l);margin-bottom:28px}
.btn-offer{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 40px;background:var(--base);color:var(--green);text-decoration:none;border-radius:4px;font-family:var(--sans);font-size:16px;letter-spacing:.04em}
.btn-offer:hover{background:var(--green-l);color:var(--ink)}
.offer .hours{font-family:var(--sans);font-size:13px;line-height:1.9;margin:14px 0 0;color:var(--green-l)}

/* 締めの言葉 */
.closing{max-width:620px;margin:0 auto;text-align:center}
.closing .lead{font-size:clamp(19px,4vw,24px);line-height:1.8;margin:0 0 24px}
.closing p{font-size:15.5px;line-height:2.2;margin:0 0 28px}
.closing-q{border-left:2px solid var(--green);padding-left:20px;margin:0 0 24px}
.closing-q p{font-size:15.5px;line-height:2.2;margin:0 0 18px;text-align:justify}

/* カード */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.cards-lg{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
.card{display:block;text-decoration:none;color:var(--ink);background:var(--base);border:1px solid var(--line);border-radius:4px;overflow:hidden}
.card:hover{color:var(--ink);border-color:var(--green)}
.card.alt{background:var(--accent-bg)}
.card .thumb{width:100%;aspect-ratio:16/10;background:var(--accent-bg);border-bottom:1px solid var(--line)}
.card.alt .thumb{background:var(--base)}
.card .body{padding:18px}
.card h2,.card h3{font-size:17px;line-height:1.75;margin:0 0 10px;font-weight:500}
.card p{font-size:13px;line-height:1.9;color:var(--weak);margin:0}

/* 記事 */
.article{max-width:680px;margin:0 auto;padding:44px 18px 0}
.article h1{font-size:clamp(23px,5.2vw,32px);line-height:1.75;margin:0 0 30px;font-weight:400}
.article .p{font-size:16px;line-height:2.25;text-align:justify;margin:0 0 26px}
.article .p-end{margin-bottom:44px}
.article h2{font-size:20px;line-height:1.8;margin:0 0 20px;font-weight:500;border-top:1px solid var(--line);padding-top:32px}
.article h3{font-size:16px;line-height:1.7;margin:0 0 8px;font-weight:500}
.types{margin-bottom:40px}
.types > div{border-top:1px solid var(--line);padding:18px 0}
.types > div:last-child{border-bottom:1px solid var(--line)}
.types p{font-size:14.5px;line-height:2;margin:0}

/* 施術者ページ */
.field{border-top:1px solid var(--line);padding:22px 0}
.field:last-child{border-bottom:1px solid var(--line)}
.field .no{font-family:var(--sans);font-size:11px;letter-spacing:.12em;color:var(--green);margin-bottom:6px}
.field h3{font-size:17px;line-height:1.7;margin:0 0 8px;font-weight:500}
.field p{font-size:14.5px;line-height:2.05;text-align:justify;margin:0}

/* エリアページ */
.areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:18px}
.areas > div{border:1px solid var(--line);border-radius:4px;padding:14px 16px;background:var(--accent-bg)}
.areas .nm{font-size:17px;line-height:1.6}
.areas .sb{font-family:var(--sans);font-size:12px;line-height:1.8;color:var(--weak);margin-top:4px}

/* 法務ページ */
.legal h2{font-size:19px;line-height:1.8;margin:36px 0 14px;font-weight:500;border-top:1px solid var(--line);padding-top:28px}
.legal p,.legal li{font-size:14.5px;line-height:2.05;text-align:justify}
.legal ul{padding-left:1.3em;margin:0 0 18px}

/* フッター */
.site-footer{background:var(--ink);color:var(--base)}
.site-footer .in{max-width:1000px;margin:0 auto;padding:44px 18px}
.ft-name{font-size:21px;letter-spacing:.06em;margin-bottom:6px;color:var(--base);text-decoration:none;display:inline-block}
.ft-tag{font-family:var(--sans);font-size:12px;letter-spacing:.1em;color:var(--green-l);margin-bottom:26px}
.ft-disc{font-size:13px;line-height:2;text-align:justify;margin:0 0 24px;color:var(--base);max-width:640px}
.ft-dl{margin:0 0 26px;max-width:640px}
.ft-dl > div{display:flex;gap:16px;padding:12px 0;border-top:1px solid var(--line-dark)}
.ft-dl > div:last-child{border-bottom:1px solid var(--line-dark)}
.ft-dl dt{flex:0 0 84px;font-family:var(--sans);font-size:12px;color:var(--green-l);line-height:1.9}
.ft-dl dd{margin:0;flex:1;font-size:14px;line-height:1.9}
.ft-links{display:flex;gap:18px;flex-wrap:wrap;font-family:var(--sans);font-size:12.5px}
.ft-links a{color:var(--green-l);display:inline-block;padding:8px 0}
.ft-links a:hover{color:var(--base)}

/* 固定CTAバー */
.cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(245,240,232,.97);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line)}
.cta-bar .in{max-width:1000px;margin:0 auto;padding:9px 12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cta-bar a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border-radius:4px;font-family:var(--sans);font-size:14px;text-decoration:none}
.cta-bar .c1{border:1px solid var(--green);color:var(--green)}
.cta-bar .c2{background:var(--green);color:var(--base)}

/* 年齢層に合わせた読みやすさと専用場面画像 */
.page{font-size:20px}.tbl th,.tbl td,.faq summary .q,.faq details p,.voices blockquote,.article .p,.legal p,.legal li,.dl dd,.ft-dl dd{font-size:20px;line-height:1.95}.card p,.types p,.field p{font-size:18px;line-height:1.95}a:focus-visible{outline:3px solid var(--green);outline-offset:4px}
body{font-size:20px;line-height:1.95}
.txt,.box-green,.checks li,.ul-plain li,details p,.tbl{font-size:20px;line-height:1.95}
.txt[style]{font-size:20px!important}.small[style]{font-size:16px!important}
.small,.disclaimer,.ft-disc,.ft-dl,.badges,.hero-hours,.price-panel .sub{font-size:16px;line-height:1.9}
.h2s{font-size:26px}.hd-nav a,.hd-btn,.btn,.cta-bar a{font-size:16px}
.care-illustration{margin:0;align-self:center}.care-illustration img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:6px}.care-illustration figcaption{font-size:17px;margin-top:14px}
.illustrated-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.illustrated-steps li{display:grid;grid-template-columns:130px minmax(0,1fr);align-items:center;gap:20px;padding:26px 0}
.illustrated-steps img{width:130px;height:100px;object-fit:contain;border-radius:5px}
.illustrated-steps h3{font-size:22px;margin:4px 0 10px;line-height:1.6}.illustrated-steps p{font-size:18px;margin:0;line-height:1.9}.illustrated-steps .n{font-size:20px}
.course-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:20px}.course-photos figure{margin:0}.course-photos img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.course-photos figcaption{font-size:20px;margin-top:14px}
@media(max-width:700px){body{font-size:18px}.txt,.box-green,.checks li,.ul-plain li,details p,.tbl{font-size:18px}.small,.disclaimer,.ft-disc,.ft-dl{font-size:15px}.illustrated-steps,.course-photos{grid-template-columns:1fr}.illustrated-steps li{grid-template-columns:105px minmax(0,1fr);gap:16px}.illustrated-steps img{width:105px;height:90px}.illustrated-steps h3{font-size:20px}.illustrated-steps p{font-size:17px}.h2s{font-size:24px}}
@media(max-width:700px){.page,.tbl th,.tbl td,.faq summary .q,.faq details p,.voices blockquote,.article .p,.legal p,.legal li,.dl dd,.ft-dl dd{font-size:18px}.txt[style]{font-size:18px!important}.small[style]{font-size:15px!important}.tbl{min-width:0}.tbl th,.tbl td{overflow-wrap:anywhere}}
