/* 健康ステーション まちかど元気あっぷ — 2026-10 */
:root{
  --green:#1D6B39; --green-dk:#164F2B; --green-ink:#124A26; --leaf:#7DB83A;
  --green-bg:#EEF5E6; --green-bg2:#F3F8EE; --ground:#FAFAF6; --line:#E3E7DF;
  --ink:#1F2A23; --sub:#3E4A42; --muted:#55615A;
  --orange:#B23F26; --orange-bg:#FFF4EE; --orange-line:#F0CDBF; --orange-ground:#FFFBF8;
  --r:18px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--ground);color:var(--ink);font-family:'Zen Kaku Gothic New','Hiragino Sans','Hiragino Kaku Gothic ProN',Meiryo,sans-serif;font-size:18px;line-height:1.85;font-weight:500}
img{max-width:100%;height:auto;display:block}
a{color:var(--green)}a:hover{color:var(--green-ink)}
h1,h2,h3{margin:0;line-height:1.4}
p{margin:0}
.mh{font-family:'Zen Maru Gothic','Zen Kaku Gothic New',sans-serif;font-weight:700}
.wrap{max-width:1200px;margin:0 auto;padding-left:24px;padding-right:24px}
.wrap--narrow{max-width:900px}
.sec{padding:72px 0}
.sec--white{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec--green{background:var(--green-bg)}
.sec--dark{background:var(--green-dk);color:#fff}
.stack{display:flex;flex-direction:column;gap:22px}
.stack--s{gap:12px}
.eyebrow{font-size:15px;font-weight:700;letter-spacing:.08em;color:var(--green)}
.sec--dark .eyebrow{color:#BFE0A6}
.h2{font-size:34px;font-family:'Zen Maru Gothic',sans-serif;font-weight:700}
.lead{color:var(--sub)}
.sec--dark .lead{color:#DCEBD1}
.note{font-size:15px;color:var(--muted)}
.skip{position:absolute;left:-9999px}.skip:focus{left:12px;top:12px;z-index:100;background:#fff;padding:8px 12px}

/* ボタン */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:12px 26px;border-radius:999px;font-weight:700;text-decoration:none;border:2px solid var(--green);background:var(--green);color:#fff;font-size:17px;line-height:1.4;cursor:pointer;font-family:inherit}
.btn:hover{background:var(--green-ink);border-color:var(--green-ink);color:#fff}
.btn--line{background:#fff;color:var(--green)}
.btn--line:hover{background:var(--green-bg);color:var(--green-ink)}
.btn--white{background:#fff;color:var(--green-dk);border-color:#fff}
.btn--white:hover{background:var(--green-bg);color:var(--green-dk)}
.btn--ghost{background:transparent;color:#fff;border-color:#fff}
.btn--ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.btn--orange{background:var(--orange);border-color:var(--orange)}
.btn--orange:hover{background:#8A2F1B;border-color:#8A2F1B}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.ico{width:18px;height:18px;flex:0 0 auto}

/* ヘッダー */
.hd{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.hd__in{display:flex;align-items:center;gap:22px;padding-top:12px;padding-bottom:12px}
.hd__logo{flex:0 0 auto;display:block}
.hd__logo img{height:38px;width:auto}
.hd__nav{flex:1 1 auto;display:flex;justify-content:flex-end;gap:20px;font-size:16px;font-weight:700}
.hd__nav a{color:var(--ink);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent;white-space:nowrap}
.hd__nav a:hover,.hd__nav a[aria-current="page"]{border-bottom-color:var(--green);color:var(--green)}
.hd__tel{flex:0 0 auto;min-height:44px;padding:8px 18px;font-size:17px}
.hd__menu{display:none;width:46px;height:46px;border:1px solid var(--line);border-radius:12px;background:#fff;align-items:center;justify-content:center;color:var(--ink);cursor:pointer}
@media (max-width:1060px){
  .hd__nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;gap:0;padding:8px 24px 16px}
  .hd__nav a{padding:14px 0;border-bottom:1px solid var(--line)}
  .hd.is-open .hd__nav{display:flex}
  .hd__menu{display:inline-flex;margin-left:auto}
  .hd__tel{display:none}
}
@media (max-width:480px){.hd__logo img{height:auto;width:min(270px,70vw)}}

/* ヒーロー */
.hero{padding:64px 0 56px}
.hero__in{display:flex;flex-wrap:wrap;gap:48px;align-items:center}
.hero__txt{flex:1 1 460px;min-width:0;display:flex;flex-direction:column;gap:22px}
.hero h1{font-family:'Zen Maru Gothic',sans-serif;font-size:clamp(30px,3.5vw,44px);line-height:1.4}
.hero h1 small{display:block;font-size:15px;font-family:'Zen Kaku Gothic New',sans-serif;letter-spacing:.08em;color:var(--green);margin-bottom:14px}
.hero__img{flex:1 1 520px;min-width:0;position:relative}
.hero__img > img{width:100%;height:440px;object-fit:cover;border-radius:24px}
.hero__badge{position:absolute;left:-20px;bottom:-24px;background:#fff;border-radius:18px;padding:10px 18px 10px 10px;box-shadow:0 8px 24px rgba(31,42,35,.12);display:flex;gap:12px;align-items:center;font-size:15px;line-height:1.6}
.hero__badge img{width:84px;height:100px;object-fit:cover;border-radius:12px}
.facts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.facts li{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:2px}
.facts span{font-size:14px;color:var(--muted)}
.facts strong{font-size:17px;line-height:1.5}

/* 下層ページの見出し */
.ph{padding:48px 0 40px;background:#fff;border-bottom:1px solid var(--line)}
.ph h1{font-family:'Zen Maru Gothic',sans-serif;font-size:40px}
.ph--dark{background:var(--green-dk);color:#fff;border-bottom:0}
.ph--orange{background:var(--orange-ground)}
.crumb{font-size:14px;color:var(--muted);margin-bottom:14px}
.crumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.crumb li+li::before{content:'›';margin-right:6px}
.ph--dark .crumb,.ph--dark .crumb a{color:#CFE6BD}
.ph--dark .eyebrow{color:#BFE0A6}
.ph--dark .lead{color:#DCEBD1}
.ph--dark img{border-radius:20px;width:100%;height:360px;object-fit:cover}
.ph--orange img{border-radius:20px;width:100%;height:380px;object-fit:cover}

/* 入口カード */
.doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}
.door{text-decoration:none;color:var(--ink);background:var(--green-bg);border-radius:22px;padding:30px 32px;display:flex;flex-direction:column;gap:10px}
.door:hover{color:var(--ink);background:#E4EFD8}
.door__t{font-family:'Zen Maru Gothic',sans-serif;font-size:26px;line-height:1.45}
.door__go{font-weight:700;color:var(--green)}
.door--dark{background:var(--green);color:#fff}
.door--dark:hover{background:var(--green-ink);color:#fff}
.door--dark .eyebrow{color:#CFE6BD}
.door--dark .door__go{color:#fff}
.door--dark p{color:#E4F0DA}

/* 週の教室表 */
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.week{width:100%;min-width:760px;border-collapse:separate;border-spacing:10px 0;font-size:17px}
.week thead th{padding:12px;background:var(--green);color:#fff;border-radius:12px 12px 0 0}
.week tbody th{text-align:left;padding:16px 4px;vertical-align:top;line-height:1.5;width:150px}
.week tbody th span{font-weight:500;font-size:15px;color:var(--muted)}
.week td{background:var(--green-bg2);padding:16px;vertical-align:top;line-height:1.55}
.week tr+tr td{border-top:10px solid #fff}
.week tr:last-child td{border-radius:0 0 12px 12px}
.week td span{font-size:15px;color:var(--muted)}
.week td.none{color:var(--muted);font-size:15px}

.week-sp-note{display:none}
.week-sp{display:none;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.week-sp > div{display:flex;border-bottom:1px solid var(--line)}
.week-sp > div:last-child{border-bottom:0}
.week-sp b{flex:0 0 52px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-size:17px}
.week-sp p{padding:10px 14px;font-size:15px;line-height:1.65}
.week-sp small{color:var(--muted);font-size:13px}

/* 教室カード */
.classes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.cls{margin:0;display:flex;flex-direction:column;gap:10px}
.cls img{width:100%;height:180px;object-fit:cover;border-radius:16px}
.cls figcaption{font-size:16px;line-height:1.65}
.cls figcaption span{color:var(--muted)}
.cls__lv{display:inline-block;font-size:14px;color:var(--green);font-weight:700}

/* 月間カレンダー */
.cal-wrap{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px}
.cal-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:14px}
.cal-head h3{font-size:24px;font-family:'Zen Maru Gothic',sans-serif}
.cal{width:100%;min-width:720px;border-collapse:collapse;font-size:15px;table-layout:fixed}
.cal th{background:var(--green);color:#fff;padding:8px;font-size:15px}
.cal th:first-child{border-radius:10px 0 0 0}.cal th:last-child{border-radius:0 10px 0 0}
.cal td{border:1px solid var(--line);vertical-align:top;padding:8px 8px 10px;height:112px;line-height:1.45}
.cal .d{display:block;font-weight:700;font-size:16px;margin-bottom:4px}
.cal .am,.cal .pm{display:block;border-radius:6px;padding:3px 6px;margin-top:4px;font-size:14px}
.cal .am{background:#FCE8F2}.cal .pm{background:#E3EEF9}
.cal .am b,.cal .pm b{font-size:12px;font-weight:700;color:var(--muted);margin-right:4px}
.cal .off{color:var(--orange);font-weight:700;font-size:14px}
.cal .fri{color:var(--orange);font-size:13px}
.cal td.empty{background:#FAFAF8}
.offdays{background:var(--orange-bg);border-radius:12px;padding:12px 16px;font-weight:700;color:var(--orange)}

/* 手順・FAQ */
.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.steps li{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px}
.num{flex:0 0 40px;height:40px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.steps p{color:var(--sub);font-size:17px}
.faq{display:flex;flex-direction:column;gap:12px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 22px}
.faq summary{font-weight:700;cursor:pointer;list-style-position:outside}
.faq details p{margin-top:10px;color:var(--sub);font-size:17px}
.cols{display:flex;flex-wrap:wrap;gap:48px}
.cols > *{flex:1 1 420px;min-width:0}

/* 帯 */
.band{border-radius:24px;display:flex;flex-wrap:wrap;overflow:hidden}
.band--orange{background:var(--orange-bg)}
.band > img{flex:1 1 380px;min-width:0;height:340px;object-fit:cover}
.band__txt{flex:1 1 460px;min-width:0;padding:36px 40px;display:flex;flex-direction:column;gap:14px;justify-content:center}
.band .eyebrow{color:var(--orange)}
.stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.stats li{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);border-radius:16px;padding:20px;display:flex;flex-direction:column}
.stats span{font-size:14px;color:#BFE0A6}
.stats strong{font-size:30px;font-family:'Zen Maru Gothic',sans-serif;line-height:1.4}
.stats small{font-size:14px;color:#DCEBD1}
.split{display:flex;flex-wrap:wrap;gap:48px;align-items:center}
.split > *{flex:1 1 440px;min-width:0}

/* アクセス */
.dl{margin:0;display:grid;grid-template-columns:110px 1fr;gap:12px 16px;font-size:17px}
.dl dt{font-weight:700}.dl dd{margin:0}
.access-media{display:flex;gap:16px}
.access-media img{width:38%;height:360px;object-fit:cover;border-radius:18px}
.map{flex:1;min-height:360px;border:0;border-radius:18px;width:100%}

/* 自治体ページ */
.toc{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px;font-size:15px;font-weight:700}
.toc a{display:block;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 16px;text-decoration:none;color:var(--ink)}
.toc a:hover{border-color:var(--green);color:var(--green)}
.flow{display:flex;flex-wrap:wrap;align-items:stretch}
.flow__box{flex:1 1 240px;background:#fff;border:2px solid var(--green);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:6px}
.flow__box strong{font-size:19px}
.flow__box span{color:var(--sub);font-size:16px}
.flow__box--mid{background:var(--green-bg)}
.flow__arr{flex:0 0 64px;display:flex;align-items:center;justify-content:center;color:var(--green)}
@media (max-width:820px){.flow{flex-direction:column}.flow__arr{flex-basis:48px;transform:rotate(90deg)}}
.tbl{width:100%;min-width:640px;border-collapse:collapse;font-size:16px}
.tbl caption{text-align:left;padding:18px 20px 4px;font-weight:700}
.tbl th{text-align:left;padding:10px 20px;color:var(--muted);font-size:14px}
.tbl td{padding:12px 20px;border-top:1px solid #EEF1EB}
.tbl tr.me td{background:var(--green-bg2);font-weight:700}
.card{background:#fff;border:1px solid var(--line);border-radius:18px}
.spec{margin:0;display:grid;grid-template-columns:140px 1fr;border-top:1px solid var(--line)}
.spec dt,.spec dd{padding:12px 0;border-bottom:1px solid var(--line)}
.spec dt{font-weight:700}.spec dd{margin:0}
.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:start}
.gallery img{width:100%;height:170px;object-fit:cover;border-radius:14px}
.gallery img.wide{grid-column:span 2;height:200px}
.timeline{list-style:none;margin:0 0 0 8px;padding:0;border-left:3px solid #CFE6BD}
.timeline li{padding:0 0 22px 24px;position:relative}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{content:'';position:absolute;left:-10px;top:8px;width:16px;height:16px;border-radius:50%;background:var(--green)}
.timeline li.free::before{background:var(--leaf)}
.timeline strong{color:var(--green)}
.timeline span{display:block;color:var(--sub);font-size:16px}
.levels{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:16px}
.levels li{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 18px;display:flex;justify-content:space-between;gap:12px}
.levels b{color:var(--green)}
.numbers{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.numbers li{background:#fff;border-radius:18px;padding:24px;display:flex;flex-direction:column;gap:4px}
.numbers span{font-size:15px;color:var(--muted)}
.numbers strong{font-family:'Zen Maru Gothic',sans-serif;font-size:34px;color:var(--green);line-height:1.3}
.numbers small{font-size:14px;color:var(--muted)}
.model{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.model > div{background:#fff;border:2px solid var(--green);border-radius:20px;padding:28px;display:flex;flex-direction:column;gap:12px}
.model > div.self{border-color:var(--orange)}
.tag{align-self:flex-start;background:var(--green);color:#fff;border-radius:999px;padding:4px 14px;font-size:14px;font-weight:700}
.self .tag{background:var(--orange)}
.model h3{font-size:22px;font-family:'Zen Maru Gothic',sans-serif}
.model ul{margin:0;padding-left:1.2em;color:var(--sub);font-size:16px}

/* 金曜ページ */
.slots{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.slots li{border:2px solid var(--orange-line);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:4px;background:#fff}
.slots span{font-weight:700;color:var(--orange)}
.slots strong{font-family:'Zen Maru Gothic',sans-serif;font-size:28px}
.ocards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.ocard{background:#fff;border:1px solid #EFE4DD;border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
.ocard img{width:100%;height:180px;object-fit:contain;background:#fff}
.ocard img.cover{object-fit:cover}
.ocard div{padding:18px;display:flex;flex-direction:column;gap:6px}
.ocard p{color:var(--sub);font-size:16px}
.onum{width:36px;height:36px;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.page-orange{background:var(--orange-ground)}
.page-orange .eyebrow{color:var(--orange)}
.cta-orange{background:var(--orange);color:#fff}
.cta-orange .wrap{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;padding-top:48px;padding-bottom:48px}

/* フォーム */
.form{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.form .full{grid-column:1/-1}
.form label.f{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:16px}
.req{display:inline-block;background:var(--orange);color:#fff;font-size:12px;border-radius:4px;padding:1px 6px;margin-left:6px;vertical-align:2px}
.opt{display:inline-block;background:#E7ECE3;color:var(--muted);font-size:12px;border-radius:4px;padding:1px 6px;margin-left:6px;vertical-align:2px}
.in{width:100%;border:1px solid #C9D2C4;border-radius:10px;padding:12px 14px;font:inherit;font-size:17px;background:#fff;min-height:50px;font-weight:500}
.in:focus{outline:3px solid #BFE0A6;border-color:var(--green)}
textarea.in{min-height:130px}
fieldset{border:0;margin:0;padding:0}
legend{font-weight:700;font-size:16px;margin-bottom:8px;padding:0}
.choices{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:16px}
.choices label{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.choices input{width:20px;height:20px;accent-color:var(--green)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-err{background:var(--orange-bg);border:1px solid var(--orange-line);color:#7A2A17;border-radius:12px;padding:14px 18px}
.form .submit{justify-self:center;min-width:280px;font-size:18px;min-height:56px}

/* フッター */
.ft{background:#fff;border-top:1px solid var(--line);font-size:15px;color:var(--sub)}
.ft__in{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:flex-start;padding-top:40px;padding-bottom:40px}
.ft__logo img{height:32px;width:auto}
.ft nav{display:flex;flex-wrap:wrap;gap:10px 18px}
.ft small{display:block;margin-top:8px;color:var(--muted)}

/* スマホ下部固定 */
.spbar{display:none}
@media (max-width:760px){
  body{font-size:17px}
  .sec{padding:52px 0}
  .wrap{padding-left:16px;padding-right:16px}
  .h2{font-size:26px}
  .hero{padding:0 0 32px}
  .hero__in{gap:24px;flex-direction:column-reverse;align-items:stretch}
  .hero__txt,.hero__img{flex:none}
  .hero__img{margin:0 -16px}
  .week-pc{display:none}
  .week-sp{display:block !important}
  .week-sp-note{display:block}
  .hero__img > img{height:250px;border-radius:0}
  .hero__badge{display:none}
  .hero h1{font-size:30px}
  .facts{grid-template-columns:1fr}
  .facts li{flex-direction:row;justify-content:space-between;align-items:center;padding:10px 14px}
  .ph{padding:32px 0 28px}.ph h1{font-size:28px}
  .access-media{flex-direction:column}.access-media img{width:100%;height:220px}
  .map{min-height:240px}
  .form{grid-template-columns:1fr;padding:20px}
  .form .submit{min-width:0;width:100%}
  .spec{grid-template-columns:100px 1fr}
  .dl{grid-template-columns:80px 1fr}
  .band > img{height:200px}.band__txt{padding:22px 20px}
  .stats{grid-template-columns:1fr 1fr}
  .stats strong{font-size:24px}
  .cal-wrap{padding:16px}
  body.has-spbar{padding-bottom:76px}
  .spbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--line);padding:10px 12px;gap:8px;box-shadow:0 -4px 16px rgba(31,42,35,.08)}
  .spbar a{flex:1;min-height:52px;border-radius:12px;padding:8px}
  .spbar a.btn--line{flex:0 0 132px}
}

/* 印刷（予定表） */
@media print{
  .hd,.ft,.spbar,.no-print{display:none !important}
  body{background:#fff;font-size:12pt}
  .sec{padding:12pt 0}
  .cal{min-width:0}
  .cal td{height:auto}
}
