/* F案 ユニバーサルデザイン最優先 — 大きく、はっきり、迷わない */
*,*::before,*::after{box-sizing:border-box}
:root{
  --bg:#fff;--fg:#0a1530;--muted:#24345a;
  --pri:#0b2a5b;--on-pri:#fff;
  --acc:#ffd400;--on-acc:#0b2a5b;
  --org:#ffa62b;--on-org:#061a3d;
  --card:#fff;--tint:#eef3fb;--line:#0b2a5b;--link:#0b2a5b;
  --f1:#0b2a5b;--f2:#ffd400;
  --c1:#ffd400;--c2:#ffa62b;--c3:#bfe0ff;--cfg:#061a3d;
  --ok:#0b2a5b;
}
html[data-theme="dark"]{
  --bg:#000;--fg:#fff;--muted:#fff;--pri:#000;--on-pri:#fff;
  --acc:#ffd400;--on-acc:#000;--org:#ffd400;--on-org:#000;
  --card:#000;--tint:#000;--line:#fff;--link:#ffd400;--f1:#ffd400;--f2:#000;
  --c1:#000;--c2:#000;--c3:#000;--cfg:#fff;
}
html[data-theme="yellow"]{
  --bg:#ffd400;--fg:#000;--muted:#000;--pri:#000;--on-pri:#ffd400;
  --acc:#fff;--on-acc:#000;--org:#fff;--on-org:#000;
  --card:#fff;--tint:#fff;--line:#000;--link:#000;--f1:#000;--f2:#fff;
  --c1:#fff;--c2:#fff;--c3:#fff;--cfg:#000;
}
html{font-size:20px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
html[data-fs="s"]{font-size:18px}
html[data-fs="l"]{font-size:24px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--bg);color:var(--fg);
  font-family:"BIZ UDPGothic","BIZ UDGothic","Hiragino Sans","Yu Gothic UI","Meiryo",sans-serif;
  font-size:1rem;line-height:1.9;word-break:keep-all;line-break:strict;overflow-wrap:anywhere;font-weight:400}
img,svg{max-width:100%}
img{height:auto;display:block}
a{color:var(--link);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.22em}
h1,h2,h3,h4{line-height:1.5;margin:0;font-weight:700}
p{margin:0 0 1rem}
ul{margin:0;padding:0;list-style:none}
.nw{white-space:nowrap}
:focus-visible{outline:5px solid var(--f1);outline-offset:3px;box-shadow:0 0 0 3px var(--f2)}
.ic{width:1.5em;height:1.5em;flex:none;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.wrap{width:min(100% - 2rem,44rem);margin-inline:auto}
.skip{position:absolute;left:.5rem;top:-6rem;z-index:100;background:var(--acc);color:var(--on-acc);border:3px solid var(--line);padding:.6rem 1rem;font-weight:700}
.skip:focus{top:.5rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ふりがな */
rt{display:none;font-size:.5em;font-weight:400;line-height:1}
html[data-ruby="on"] rt{display:revert}
ruby{ruby-position:over}

/* ボタン */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.4rem;padding:.55rem 1.2rem;
  border:3px solid var(--line);border-radius:14px;background:var(--pri);color:var(--on-pri);
  font:700 1rem/1.4 inherit;font-family:inherit;text-decoration:none;cursor:pointer;text-align:center}
.btn:hover{filter:none}
.btn-acc{background:var(--acc);color:var(--on-acc)}
.btn-ghost{background:var(--card);color:var(--fg)}
.btn-lg{min-height:4.6rem;font-size:1.2rem;border-radius:18px;border-width:4px}
.btn-block{display:flex;width:100%}
.tg{background:var(--card);color:var(--fg);min-height:3.2rem;padding:.3rem .9rem}
.tg[aria-pressed="true"]{background:var(--pri);color:var(--on-pri);border-width:5px}
.tg[aria-pressed="true"]::before{content:"✔";font-weight:700}

/* 上部ツールバー */
.a11y{background:var(--tint);border-bottom:4px solid var(--line)}
.a11y .wrap{display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;padding:.7rem 0}
.grp{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.grp-l{font-weight:700;margin-right:.2rem;display:flex;align-items:center;gap:.4rem}

/* ヘッダー */
.hd{padding:1rem 0;background:var(--bg)}
.logo{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--fg);margin-bottom:1rem}
.logo-m{width:3.4rem;height:3.4rem;border:3px solid var(--line);border-radius:14px;background:var(--pri);color:var(--on-pri);display:grid;place-items:center;flex:none}
.logo-t{font-size:1.35rem;font-weight:700;line-height:1.4}
.logo-s{display:block;font-size:.8rem;font-weight:400}
.tel{display:flex;align-items:center;justify-content:center;gap:.9rem;width:100%;min-height:5.4rem;padding:.6rem 1rem;
  border:4px solid var(--line);border-radius:20px;background:var(--acc);color:var(--on-acc);text-decoration:none}
.tel .ic{width:2.4rem;height:2.4rem;stroke-width:2.6}
.tel-b{display:flex;flex-direction:column;line-height:1.3;text-align:left}
.tel-s{font-size:.85rem;font-weight:700}
.tel-n{font-size:2rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}
.srch{display:flex;gap:.5rem;margin:1rem 0 .8rem}
.srch input{flex:1;min-width:0;min-height:3.4rem;border:3px solid var(--line);border-radius:14px;background:var(--card);color:var(--fg);font:inherit;padding:.3rem .9rem}
.srch .btn{flex:none;padding-inline:1rem}
.hd-links{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.hd-links .btn{padding-inline:.4rem;min-height:3.6rem;flex-direction:column;gap:.1rem;font-size:.9rem}
.hd-links .btn .ic{width:1.3em;height:1.3em}

/* メニューパネル */
.mp{position:fixed;inset:0;z-index:60;background:var(--bg);color:var(--fg);overflow:auto;padding:1rem 0 7rem}
.mp[hidden]{display:none}
.mp-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}
.mp h2{font-size:1.3rem;margin:1.4rem 0 .5rem;border-bottom:4px solid var(--line);padding-bottom:.2rem}
.mp li a{display:flex;align-items:center;gap:.6rem;min-height:3.4rem;padding:.3rem .2rem;font-weight:700;border-bottom:2px solid var(--line)}

/* メイン */
main{display:block}
.sec{padding:2.6rem 0 .6rem}
.h2{font-size:1.55rem;display:flex;align-items:center;gap:.7rem;padding-bottom:.5rem;border-bottom:5px solid var(--line);margin-bottom:1.2rem}
.h2 .n{flex:none;width:2.4rem;height:2.4rem;border-radius:50%;border:3px solid var(--line);background:var(--acc);color:var(--on-acc);display:grid;place-items:center;font-size:1.15rem}
.lead{font-size:1.05rem}

/* ヒーロー */
.hero{padding-top:1.6rem}
.hero h1{font-size:2rem;line-height:1.45;margin-bottom:.8rem}
.hero h1 em{font-style:normal;background:linear-gradient(transparent 62%,var(--acc) 62%)}
html[data-theme="dark"] .hero h1 em{background:none;text-decoration:underline;text-decoration-color:var(--acc);text-decoration-thickness:6px;text-underline-offset:.15em}
.fig{border:4px solid var(--line);border-radius:22px;background:#fff;overflow:hidden}
.fig img{width:100%}
.hero .fig{margin:1.2rem 0}
.cta2{display:grid;gap:.8rem}
.help{margin-top:1rem;padding:1rem 1.1rem;border:3px dashed var(--line);border-radius:16px;font-weight:700}

/* カテゴリー */
.cats{display:grid;gap:1.4rem}
.cat{border:4px solid var(--line);border-radius:22px;overflow:hidden;background:var(--card)}
.cat-main{display:grid;grid-template-columns:7rem 1fr auto;align-items:center;gap:1rem;padding:.9rem 1rem;text-decoration:none;color:var(--cfg);min-height:9rem}
.cat1 .cat-main{background:var(--c1)}.cat2 .cat-main{background:var(--c2)}.cat3 .cat-main{background:var(--c3)}
.cat-main .fig{border-width:3px;border-radius:16px}
.cat-t{display:block;font-size:1.55rem;font-weight:700;line-height:1.35}
.cat-d{display:block;font-size:.9rem;line-height:1.6;margin-top:.2rem}
.cat-main .ic{width:2.2rem;height:2.2rem;stroke-width:3}
.cat-l li a{display:flex;align-items:center;justify-content:space-between;gap:.6rem;min-height:3.6rem;padding:.4rem 1rem;font-weight:700;border-top:2px solid var(--line);color:var(--fg)}
.cat-l li a .ic{width:1.2em;height:1.2em}
.cat-more a{background:var(--tint)}

/* やさしい日本語 */
.easy{border:4px solid var(--line);border-radius:22px;padding:1.2rem;background:var(--tint)}
.badge{display:inline-flex;align-items:center;gap:.35rem;font-weight:700;font-size:.85rem;line-height:1.3;padding:.15rem .7rem;border:3px solid var(--line);border-radius:999px;background:var(--acc);color:var(--on-acc);white-space:nowrap}
.easy h3{font-size:1.3rem;margin:.6rem 0}
.easy p{font-size:1.1rem}

/* 新着 */
.tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.8rem}
.tabs .tg{font-size:.9rem;min-height:3rem}
.news-box{border:4px solid var(--line);border-radius:18px;overflow-y:auto;background:var(--card);max-height:34rem}
.news-box li{border-bottom:2px solid var(--line)}
.news-box li:last-child{border-bottom:0}
.news-box li[hidden]{display:none}
.nrow{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;align-items:center;padding:.8rem 1rem;min-height:4.2rem;text-decoration:none;color:var(--fg)}
.nrow:hover .nt{text-decoration:underline}
.nd{font-weight:700;white-space:nowrap}
.tag{justify-self:start;display:inline-flex;gap:.3rem;font-size:.8rem;font-weight:700;line-height:1.3;border:2px solid var(--line);border-radius:8px;padding:.1rem .55rem;background:var(--tint);color:var(--fg);white-space:nowrap}
.nt{grid-column:1/-1;font-weight:700;font-size:1.05rem;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
.hint{font-weight:700;margin:.7rem 0 1rem;display:flex;gap:.5rem;align-items:flex-start}
.empty{padding:1rem;font-weight:700}

/* Instagram */
.ig{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.ig a{display:block;text-decoration:none;color:var(--fg);border:3px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card)}
.ig .fig{border:0;border-radius:0;border-bottom:3px solid var(--line)}
.ig span{display:block;padding:.4rem .7rem;font-weight:700;font-size:.9rem;line-height:1.5}

/* 地図 */
.map{border:4px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}
.map iframe{display:block;width:100%;height:26rem;border:0}
.dist{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 .4rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.4rem 0 1rem}
.sub{font-weight:700;margin:1.1rem 0 .3rem}

/* CTA・注記 */
.cta-box{border:4px solid var(--line);border-radius:22px;padding:1.2rem;background:var(--tint);display:grid;gap:.9rem}
.note{font-size:.9rem;line-height:1.8;border-left:6px solid var(--line);padding:.2rem 0 .2rem .8rem}

/* 下層 */
.bc{padding:.8rem 0}
.bc ol{display:flex;flex-wrap:wrap;gap:.3rem .5rem;list-style:none;margin:0;padding:0;font-size:.9rem}
.bc li+li::before{content:"›";margin-right:.5rem;font-weight:700}
.page-h{padding:1rem 0 .4rem}
.page-h h1{font-size:1.9rem;line-height:1.45;margin-bottom:.6rem}
.tcards{display:grid;gap:1rem;margin:1.2rem 0}
.tc{display:grid;grid-template-columns:6rem 1fr;gap:1rem;align-items:start;border:3px solid var(--line);border-radius:18px;padding:1rem;background:var(--card)}
.tc .fig{border-width:3px;border-radius:14px}
.tc h2{font-size:1.25rem;margin-bottom:.3rem}
.tc p{font-size:.95rem;line-height:1.8;margin-bottom:.7rem}
.tc .btn{min-height:3.2rem;font-size:.95rem}
.tc-b{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}

/* フォーム */
.fm{display:grid;gap:1.4rem;margin:1.2rem 0}
.fld>label,.fld>legend{display:block;font-weight:700;font-size:1.1rem;margin-bottom:.35rem;padding:0}
fieldset.fld{border:0;margin:0;padding:0;min-width:0}
.req{display:inline-block;margin-left:.5rem;font-size:.8rem;border:2px solid var(--line);background:var(--acc);color:var(--on-acc);border-radius:8px;padding:0 .5rem;line-height:1.6;white-space:nowrap}
.opt{display:inline-block;margin-left:.5rem;font-size:.8rem;border:2px solid var(--line);border-radius:8px;padding:0 .5rem;line-height:1.6;white-space:nowrap}
.fm input[type=text],.fm input[type=email],.fm input[type=tel],.fm select,.fm textarea{width:100%;min-height:3.6rem;border:3px solid var(--line);border-radius:14px;background:var(--card);color:var(--fg);font:inherit;padding:.5rem .9rem}
.fm textarea{min-height:10rem;line-height:1.7}
.hint2{font-size:.9rem;margin:.2rem 0 .4rem}
.opts{display:grid;gap:.6rem}
.opts label{display:flex;align-items:center;gap:.8rem;min-height:3.6rem;border:3px solid var(--line);border-radius:14px;padding:.3rem .9rem;font-weight:700;background:var(--card)}
.opts input,.chk input{width:1.7rem;height:1.7rem;flex:none;accent-color:var(--pri)}
.chk{display:flex;gap:.8rem;align-items:flex-start;font-weight:700}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.err{display:none;font-weight:700;border:3px solid var(--line);border-radius:12px;padding:.5rem .8rem;background:var(--card)}
.err.on{display:block}
.err::before{content:"⚠ 入力してください：";}
.done{display:none;border:5px solid var(--line);border-radius:22px;padding:1.4rem;background:var(--acc);color:var(--on-acc);font-weight:700}
.done.on{display:block}
.done h2{font-size:1.5rem;margin-bottom:.5rem}

/* イベント */
.ev{border:4px solid var(--line);border-radius:20px;padding:1.1rem;background:var(--card);display:grid;gap:.6rem}
.ev h2{font-size:1.3rem}
.ev dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;font-size:.95rem}
.ev dt{font-weight:700}.ev dd{margin:0}
.ev-badges{display:flex;gap:.5rem;flex-wrap:wrap}
.b-first{background:var(--acc);color:var(--on-acc)}
.b-lot{background:var(--card);color:var(--fg);border-style:dashed}

/* フッター */
.ft{margin-top:3rem;background:var(--pri);color:var(--on-pri);border-top:6px solid var(--line);padding:2rem 0 9rem}
.ft a{color:inherit}
.ft h2{font-size:1.4rem;margin-bottom:.6rem}
.ft address{font-style:normal;margin-bottom:1rem}
.ft ul{display:grid;gap:.1rem;margin:1rem 0}
.ft li a{display:flex;align-items:center;min-height:3rem;font-weight:700}
.ft .btn{background:var(--acc);color:var(--on-acc);border-color:var(--bg)}
html[data-theme="yellow"] .ft .btn{border-color:var(--on-pri)}
.copy{font-size:.85rem;margin-top:1rem}

/* 下部固定ナビ */
.bnav{position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:1.3fr 1fr 1fr;background:var(--bg);border-top:4px solid var(--line)}
.bnav a,.bnav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;min-height:4.6rem;
  font:700 .95rem/1.3 inherit;font-family:inherit;text-decoration:none;border:0;border-right:3px solid var(--line);background:var(--pri);color:var(--on-pri);cursor:pointer;padding:.3rem}
.bnav>*:last-child{border-right:0}
.bnav .b-tel{background:var(--acc);color:var(--on-acc)}
.bnav .ic{width:1.7em;height:1.7em}
.bnav :focus-visible{outline-offset:-8px}
.samp{position:fixed;right:.5rem;bottom:5.4rem;z-index:40;background:var(--pri);color:var(--on-pri);border:2px solid var(--line);border-radius:8px;padding:.1rem .6rem;font-size:.8rem;font-weight:700;line-height:1.6}

@media (min-width:821px){
  .bnav{display:none}
  .samp{bottom:.6rem}
  .ft{padding-bottom:3rem}
  .mp{padding-bottom:2rem}
  .cta2{grid-template-columns:1fr 1fr}
  .hero h1{font-size:2.4rem}
  .ig{grid-template-columns:repeat(3,1fr)}
  .nrow{grid-template-columns:auto auto 1fr}
  .nt{grid-column:auto}
  .map iframe{height:30rem}
}
@media (max-width:420px){
  .tel-n{font-size:1.75rem}
  .cat-main{grid-template-columns:5.2rem 1fr auto;gap:.7rem;padding:.8rem}
  .cat-t{font-size:1.35rem}
  .tc{grid-template-columns:4.6rem 1fr}
  .hero h1{font-size:1.75rem}
}
@media (max-width:560px){
  .grp{width:100%;gap:.4rem}
  .grp-l{flex-basis:100%;margin:0}
  .grp .tg{flex:1 1 0;padding-inline:.3rem}
  .a11y .wrap{gap:.5rem}
}
@media (max-width:420px){
  .tel{gap:.6rem;padding-inline:.6rem}
  .tel .ic{width:2rem;height:2rem}
  .tel-n{font-size:1.5rem}
  .cat-main{grid-template-columns:5rem 1fr}
  .cat-main>.ic{display:none}
}
