/* バレエ教室サーチ：ピンクのリボンと白の上品な雰囲気（持ち主のデザイン案） */
:root{
  --bg:#fffafb;--bg2:#fdf1f4;--card:#fff;--ink:#3a2f35;--ink2:#5d5057;--muted:#8f8189;--line:#f1e1e7;
  --pink:#e86a92;--pink2:#d24f7a;--pink-l:#fde8ef;--pink-m:#f6c1d2;--lav:#ece6f6;--lav2:#7e68b3;--sky:#e7f0fa;--gold:#d2a679;
  --mincho:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",serif;--sans:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic UI",sans-serif;
  --script:"Great Vibes",cursive;--latin:"Cormorant Garamond",serif;
  --r:16px;--shadow:0 8px 28px rgba(160,70,100,.09);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);background-image:radial-gradient(circle at 8% 4%,rgba(253,232,239,.9),transparent 30%),radial-gradient(circle at 96% 48%,rgba(236,230,246,.6),transparent 26%);color:var(--ink);font:15.5px/1.85 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--pink2)}
h1,h2,h3{font-family:var(--mincho);font-weight:600;line-height:1.45;letter-spacing:.05em}
svg{width:1em;height:1em;flex:none}
button{font:inherit;cursor:pointer}
main{display:block}

/* 子ども向け／大人向けの切りかえ */
[data-mode="kids"] .only-adult,[data-mode="adult"] .only-kids{display:none!important}

/* ---------- ヘッダー ---------- */
.hd{position:sticky;top:0;z-index:1000;background:rgba(255,250,251,.9);backdrop-filter:blur(10px);border-bottom:1px solid rgba(241,225,231,.8)}
.hd-in{max-width:1240px;margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:22px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.logo-mark img,.logo-mark svg{width:48px;height:48px;display:block}
.logo-full{height:46px;width:auto}
.ft .logo-full{height:54px}
.logo-t{display:flex;flex-direction:column;line-height:1.15}
.logo-t b{font:600 25px var(--mincho);letter-spacing:.14em}
.logo-t small{font:600 10.5px var(--latin);color:var(--ink2);letter-spacing:.42em}
.gnav{margin-left:auto;display:flex;align-items:center;gap:24px}
.gnav>a{color:var(--ink);text-decoration:none;font-size:13.5px;font-weight:500;letter-spacing:.05em;white-space:nowrap}
.logo-t,.btn,.mode-sw button{white-space:nowrap}
.gnav a:hover{color:var(--pink)}
.gnav-r{display:flex;align-items:center;gap:14px;margin-left:10px}
.gnav-fav{display:flex;align-items:center;gap:5px;color:var(--ink);text-decoration:none;font-size:12px}
.gnav-fav svg{font-size:19px;color:var(--pink)}
.gnav-x{display:none}
.mode-sw{display:flex;background:var(--pink-l);border-radius:999px;padding:3px}
.mode-sw button{border:0;background:none;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700;color:var(--ink2)}
[data-mode="kids"] .mode-sw [data-mode-set="kids"],[data-mode="adult"] .mode-sw [data-mode-set="adult"]{background:#fff;color:var(--pink2);box-shadow:0 2px 6px rgba(210,79,122,.18)}
/* メニューを閉じたままでも、子ども／大人の切りかえとお気に入りに届くように（メニューが畳まれる幅だけ出す） */
.hd-quick{display:none;margin-left:auto;align-items:center;gap:6px}
.mode-sw.sm button{padding:5px 9px;font-size:11.5px}
.hd-fav{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#fff;color:var(--pink);box-shadow:0 2px 8px rgba(210,79,122,.15)}.hd-fav svg{width:18px;height:18px}
.menu-btn{display:none;width:44px;height:44px;border:0;background:none;flex-direction:column;justify-content:center;gap:7px;padding:9px}
.menu-btn span{display:block;height:2px;background:var(--pink);border-radius:2px}

/* ---------- ボタン ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:10px 22px;font-weight:700;font-size:14px;text-decoration:none;border:1.5px solid var(--pink);color:var(--pink2);background:#fff;transition:.2s}
.btn.pink{background:linear-gradient(135deg,#f08aab,var(--pink) 55%,var(--pink2));border-color:transparent;color:#fff!important;box-shadow:0 8px 20px rgba(232,106,146,.32)}
.btn.pink:hover{filter:brightness(1.05);transform:translateY(-1px)}
.btn.line:hover{background:var(--pink-l)}
.btn.big{font:600 19px var(--mincho);padding:16px 40px;letter-spacing:.14em}
.btns{display:flex;flex-wrap:wrap;gap:10px}

/* ---------- ヒーロー ---------- */
.hero{position:relative;overflow:hidden;padding:30px max(20px,calc((100% - 1200px)/2)) 30px;background:linear-gradient(180deg,#fff 0%,#fdf0f4 70%,var(--bg) 100%)}
.hero.has-img::before{content:"";position:absolute;inset:0 0 60px 0;background:var(--hero) right center/cover no-repeat;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%);mask-image:linear-gradient(90deg,transparent 0,#000 38%);opacity:.97}
[data-mode="adult"] .hero.has-img::before{background-image:var(--hero-ad)}
/* 大人向けのときだけ、見出しの画像が動く（音なし・くり返し。再生が始まってから出すので、それまでは静止画のまま） */
.hero-vid{position:absolute;left:0;top:0;width:100%;height:calc(100% - 60px);object-fit:cover;object-position:right center;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%);mask-image:linear-gradient(90deg,transparent 0,#000 38%);opacity:0;transition:opacity .6s;pointer-events:none}
[data-mode="adult"] .hero-vid.on{opacity:.97}
.hero-rb{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero-in{position:relative;min-height:380px}
.hero h1{font-size:clamp(40px,6.6vw,84px);font-weight:500;margin:20px 0 10px;letter-spacing:.06em;line-height:1.25}
/* 画像・動画の上でも読めるよう、文字のまわりに白いにじみ */
.hero h1,.hero-sub,.hb-num,.hb-t,.hero-tate{text-shadow:0 0 2px #fff,0 0 10px #fff,0 0 22px rgba(255,255,255,.95),0 0 40px rgba(255,255,255,.8)}
.hero h1 em{text-shadow:none;filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 14px rgba(255,255,255,.95))}
.hero h1 span{display:block}
.hero h1 span:first-child{margin-left:-.1em}
.hero h1 em{font-style:normal;color:var(--pink);font-size:1.12em;background:linear-gradient(180deg,#f4a0bb,var(--pink2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero-sub{font:500 clamp(16px,1.9vw,22px) var(--mincho);letter-spacing:.16em;color:var(--ink);margin:0 0 18px .1em}
.hero-badge{display:flex;align-items:center;gap:26px}
.hb-num{display:flex;align-items:baseline;gap:8px;margin:0;padding:0 26px;position:relative;font-family:var(--mincho)}
.hb-num::before,.hb-num::after{content:"";position:absolute;top:50%;width:16px;height:46px;transform:translateY(-50%);border:2px solid var(--gold);border-color:transparent var(--gold);border-radius:50%;opacity:.8}
.hb-num::before{left:0;border-right-color:transparent}.hb-num::after{right:0;border-left-color:transparent}
.hb-num b{font:600 38px var(--latin);color:var(--pink2)}.hb-num small{font-size:14px;font-weight:600}
.hb-t{margin:0;padding-left:22px;border-left:1px solid var(--pink-m);font-size:12.5px;line-height:1.75;color:var(--ink2)}
.hero-find{position:absolute;left:62%;top:250px;margin:0;font:400 44px/1 var(--script);color:var(--pink);opacity:.55;transform:rotate(-12deg)}
.hero-tate{position:absolute;right:0;top:10px;margin:0;writing-mode:vertical-rl;font:500 14px/2.1 var(--mincho);letter-spacing:.3em;color:var(--ink2)}

/* トップの検索 */
.hs{position:relative;margin:26px 0 0;background:rgba(255,255,255,.92);border-radius:22px;box-shadow:var(--shadow);border:1px solid #fff;backdrop-filter:blur(6px)}
.hs-tabs{display:none}
.hs-f{display:grid;grid-template-columns:1.2fr 1.4fr 1fr auto;gap:0;align-items:end;padding:20px 24px}
.hs-c{display:flex;flex-direction:column;gap:8px;padding:0 20px;border-left:1px solid var(--line);min-width:0}
.hs-c:first-child{border-left:0;padding-left:0}
.hs-area{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hs-area .hs-l{grid-column:1/-1}
.hs-l{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700}
.hs-l svg{color:var(--pink);font-size:19px}
.hs .btn.big{margin-left:20px;white-space:nowrap}
.hs-near{padding:20px 24px;text-align:center}.hs-near p{font-size:13px;color:var(--ink2);margin:0 0 12px}
select{font:inherit;font-size:13.5px;padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);min-width:0;width:100%}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-block;padding:6px 13px;border-radius:999px;border:1.5px solid var(--pink-m);background:var(--pink-l);font-size:12.5px;font-weight:700;color:var(--ink2);cursor:pointer;transition:.15s}
.chip input:checked+span{background:var(--pink);border-color:var(--pink);color:#fff}
.chip input:focus-visible+span{outline:2px solid var(--pink2);outline-offset:2px}

/* 地方のリボン */
.rribbon{position:relative;max-width:1200px;margin:0 auto;padding:0 20px;height:110px;display:flex;justify-content:space-between;align-items:flex-start}
.rr-line{position:absolute;left:0;right:0;top:0;width:100%;height:110px}
.rribbon a{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:calc(20px + 18px * sin(var(--i) * 0.9rad));color:var(--ink2);text-decoration:none;font-size:12.5px;font-weight:500}
.rr-pin{display:grid;place-items:center;width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#fff;border:1.5px solid var(--pink-m);box-shadow:0 3px 8px rgba(210,79,122,.18)}
.rr-pin svg{transform:rotate(45deg);color:var(--pink);font-size:15px}
.rribbon a.big .rr-pin{width:40px;height:40px;background:var(--pink)}.rribbon a.big .rr-pin svg{color:#fff;font-size:20px}
.rribbon a.big{font-weight:700;color:var(--ink)}
.rribbon a:hover{color:var(--pink2)}

/* ---------- セクション ---------- */
.sec{max-width:1200px;margin:0 auto;padding:40px 20px 16px}
.sec-h{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:24px;position:relative}
.sec-h h2{font-size:clamp(23px,2.8vw,31px);margin:0;display:flex;align-items:center;gap:18px}
.sec-h h2::before,.sec-h h2::after{content:"";width:60px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.sec-h h2::after{transform:scaleX(-1)}
.sec-sub{margin:6px 0 0;color:var(--ink2);font-size:13.5px;letter-spacing:.06em}
.sec-more{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--pink-m);background:#fff;color:var(--pink2);text-decoration:none;font-size:12.5px;font-weight:700;border-radius:999px;padding:6px 18px}
.sec-h .sec-more{position:absolute;right:0;top:4px}
.sec-more:hover{background:var(--pink-l)}

/* あなたに合うレッスン */
.lcards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.lcards.sm{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.lcard{position:relative;display:block;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);text-decoration:none;color:var(--ink);aspect-ratio:16/10;background:var(--pink-l);transition:.25s}
.lcard:hover{transform:translateY(-3px)}
.lc-ph{position:absolute;inset:0}
.lc-ph img{width:100%;height:100%;object-fit:cover}
.lc-b{position:absolute;left:0;top:0;bottom:0;width:72%;padding:18px 18px;display:flex;flex-direction:column;gap:6px;background:linear-gradient(90deg,rgba(255,255,255,.85),rgba(255,255,255,.5) 70%,transparent)}
.lc-b b{font:600 18px var(--mincho);letter-spacing:.06em}
.lc-b small{font-size:12px;color:var(--ink2);line-height:1.7}
.lcard.l-adult{background:var(--lav)}.lcard.l-honkaku{background:var(--sky)}
[data-mode="adult"] .lcard.l-adult{order:-2}[data-mode="adult"] .lcard.l-hajimete{order:-1}
.go{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#fff;color:var(--ink);font-size:14px;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.ph-ph{position:relative;display:grid;place-items:center;width:100%;height:100%;min-height:120px;background:linear-gradient(135deg,#fff3f6,var(--pink-l));overflow:hidden}
.ph-ph.lav{background:linear-gradient(135deg,#f7f3fb,var(--lav))}.ph-ph.sky{background:linear-gradient(135deg,#f6f9fd,var(--sky))}
.ph-ph .ph-rb{position:absolute;inset:0;width:100%;height:100%}
.ph-ph .shoes{position:relative;width:64px;height:64px;opacity:.55;margin-left:auto;margin-right:12%}
.ph-ph.sm .shoes{width:44px;height:44px;margin:0 auto}

/* 人気のエリア */
.area-sec{position:relative;isolation:isolate;padding-bottom:70px}
.area-sec::before{content:"";position:absolute;left:50%;bottom:0;width:100vw;height:100%;transform:translateX(-50%);background:var(--area) center bottom/min(1920px,140%) auto no-repeat;opacity:.75;z-index:-1;pointer-events:none}
.deco-rb{overflow:hidden;margin:10px 0 -40px;pointer-events:none}
.deco-rb img{width:100%;max-height:200px;object-fit:cover;opacity:.8}
.pchips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.pchip{display:inline-flex;align-items:center;gap:6px;padding:8px 22px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;font-size:13.5px;font-weight:500;box-shadow:0 2px 8px rgba(160,70,100,.05)}
.pchip svg{color:var(--pink)}
.pchip.on{background:linear-gradient(135deg,#f08aab,var(--pink2));border-color:transparent;color:#fff}.pchip.on svg{color:#fff}
.pchip:hover{border-color:var(--pink-m)}
.pchip.has{border-color:var(--pink-m);font-weight:700}.pchip small{color:var(--pink2);font-size:11px;margin-left:2px}

/* 注目のバレエ教室 */
.ftabs{display:flex;gap:0;border-bottom:1px solid var(--line);margin:0 0 18px;overflow-x:auto}
.ftabs button{border:0;background:none;padding:10px 26px;font-size:13.5px;color:var(--ink2);border-bottom:2px solid transparent;white-space:nowrap}
.ftabs button.on{color:var(--pink2);font-weight:700;border-bottom-color:var(--pink)}
.ccards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.ccard{position:relative;background:var(--card);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.cc-ph{display:block;aspect-ratio:16/9;overflow:hidden;background:var(--pink-l);text-decoration:none}
.cc-ph img{width:100%;height:100%;object-fit:cover;transition:.4s}
.ccard:hover .cc-ph img{transform:scale(1.03)}
.cc-area{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,.92);border-radius:999px;padding:3px 12px;font-size:11.5px;font-weight:700}
.cc-area svg{color:var(--pink)}
.fav{position:absolute;right:12px;top:10px;width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:var(--pink);font-size:19px;display:grid;place-items:center}
.fav.on{background:var(--pink);color:#fff}
.cc-b{padding:14px 18px 18px}
.ccard h3{font-size:18px;margin:0 0 8px}
.ccard h3 a{color:var(--ink);text-decoration:none}
.cc-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.tag{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 10px;border-radius:6px;background:var(--lav);color:var(--lav2)}
.tag.t-age{background:var(--pink-l);color:var(--pink2)}
.cc-lead{font-size:12.5px;color:var(--ink2);margin:0;line-height:1.75;padding-right:26px}
.cc-rv{margin:6px 0 0;font-size:12.5px;color:var(--ink2)}.cc-rv p{margin:0}.cc-rv cite{font-size:11.5px;color:var(--muted);font-style:normal}
.rate{display:flex;align-items:center;gap:6px;margin:4px 0 0;font-size:13px}
.rate .stars{color:#f0b04a;letter-spacing:1px}.rate b{font-size:16px}.rate small{color:var(--muted)}
.recruit{background:#fff;border:1px dashed var(--pink-m);border-radius:var(--r);padding:20px;font-size:14px;text-align:center}

/* バレエを知る */
.gcards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.gcards.sm{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.gcard{display:flex;flex-direction:column;gap:4px;background:var(--card);border-radius:var(--r);padding:0 0 16px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);overflow:hidden}
.gcards.sm .gcard{padding:16px}
.gc-ph{aspect-ratio:2/1;overflow:hidden;background:var(--pink-l);margin-bottom:6px}
.gc-ph img{width:100%;height:100%;object-fit:cover}
.gcard b,.gcard small,.gcard .tag{margin-left:16px;margin-right:16px}
.gcards.sm .gcard b,.gcards.sm .gcard small{margin:0}
.gcard .tag{align-self:flex-start}
.gcard b{font:600 15.5px var(--mincho);line-height:1.55}.gcard small{font-size:12px;color:var(--muted);line-height:1.65}
[data-mode="kids"] .gcard.f-adult,[data-mode="adult"] .gcard.f-kids{order:2}

/* 地域（トップ） */
.od-stats{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.od-stats li{display:flex;align-items:center;gap:8px;background:#fff;border-radius:12px;padding:10px 16px;box-shadow:var(--shadow);font-size:12.5px;color:var(--muted)}
.od-stats svg{color:var(--c);font-size:22px}.od-stats b{font:600 22px var(--latin);color:var(--ink)}

/* 結び */
.closing{max-width:1200px;margin:40px auto 0;padding:34px 20px;display:grid;grid-template-columns:1.1fr 1.4fr;gap:30px;align-items:center;border-top:1px solid var(--line)}
.cl-l h2{font-size:26px;margin:0 0 6px}.cl-l p{margin:0;font-size:13.5px;color:var(--ink2)}
.cl-l img{max-height:120px;margin-bottom:10px}
.cl-r{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cl-r li{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:center;border-left:1px solid var(--line);padding-left:16px}
.cl-r svg{grid-row:span 2;width:52px;height:52px;padding:13px;border-radius:50%;background:var(--pink-l);color:var(--pink2)}
.cl-r b{font:600 15px var(--mincho)}.cl-r small{font-size:12px;color:var(--muted);line-height:1.6}

/* ---------- 下層ページ ---------- */
.sub main{max-width:1100px;margin:0 auto;padding:10px 20px 40px}
.ph{padding:18px 4px 10px}
.ph h1{font-size:clamp(24px,3.4vw,34px);margin:10px 0}
.ph-lead{color:var(--ink2);margin:0 0 6px}
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow);padding:24px 26px;margin:18px 0}
.card h2{font-size:21px;margin:0 0 12px;display:flex;align-items:center;gap:10px}
.card h2 svg{color:var(--pink)}
.card h3{font-size:17px}
.card-lead{color:var(--ink2);font-size:14px;margin:0 0 10px}
.note{font-size:12.5px;color:var(--muted)}.note.center{text-align:center}
.empty{color:var(--muted)}
.warn-box{background:#fff4e5;border:1px solid #f1d4a6;border-radius:10px;padding:8px 14px;font-size:14px}
.crumbs{font-size:12.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.crumbs a{color:var(--muted)}.crumbs i{font-style:normal;opacity:.6}
.idx{display:flex;margin:22px 0 10px;border-top:1px solid var(--pink-m);border-bottom:1px solid var(--pink-m);padding:3px 0}
.idx a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 6px 10px;text-decoration:none;color:var(--ink)}
.idx a+a{border-left:1px solid var(--line)}
.idx span{font:500 12.5px var(--mincho);letter-spacing:.1em;color:var(--ink2)}
.idx b{font:600 26px/1.2 var(--latin)}
.idx small{font:500 12px var(--mincho);margin-left:2px;color:var(--muted)}
.idx a:hover b{color:var(--pink2)}
.toc{display:flex;flex-wrap:wrap;gap:4px 0;margin:6px 0 0;font-size:13px}
.toc a{color:var(--ink2);text-decoration:none}
.toc a:hover{color:var(--pink2);text-decoration:underline}
.toc a+a::before{content:"・";color:var(--muted);margin:0 .4em}
.gi{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:color-mix(in srgb,var(--c) 14%,#fff);color:var(--c);font-size:18px;flex:none}
.src{font-size:12px;color:var(--muted);margin:10px 0 0}
.od-minor{font-size:12px;line-height:1.7;color:var(--muted);margin:0 0 2px}.od-minor b{font-weight:600}
.mk{display:inline-grid;place-items:center;width:var(--s,22px);height:var(--s,22px);border-radius:50%;background:var(--c);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.35);color:#fff;box-sizing:border-box}.mk{overflow:hidden}.mk img,.leaflet-container .leaflet-marker-pane .mk img{width:100%;height:100%;display:block;border-radius:50%}
.spot-g{margin-top:22px}
.spot-g:first-child{margin-top:0}
.spot-g h3{display:flex;align-items:center;gap:10px;font-size:18px;margin:0 0 4px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.spot-g h3 small{font:500 13px var(--sans);color:var(--muted)}
.spot-g.off{opacity:.45}
.spots{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px 16px;font-size:13.5px}
.spots li{border-bottom:1px dashed var(--line);padding:5px 0}
.spots b{font-weight:700;margin-right:6px}.spots b a{color:var(--ink)}
.spots .cat{font-size:11.5px;color:var(--lav2);margin-right:6px}.spots .addr,.spots .info{display:block;font-size:12px;color:var(--muted)}
.hall{background:linear-gradient(135deg,#fff,#fff6f9);border:1px solid var(--pink-l)}
.hall .spots li{border-left:3px solid var(--pink-m);padding-left:8px}
.map-wrap{border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.map{height:420px;background:#f6eef1}
.map-legend{display:flex;flex-wrap:wrap;gap:6px;padding:10px;background:#fff}
.lg{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 12px;font-size:12.5px}
.lg i{width:10px;height:10px;border-radius:50%}.lg small{color:var(--muted)}.lg:not(.on){opacity:.4}
.srcs{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.srcs li{display:flex;gap:10px;align-items:flex-start;font-size:13.5px}
.srcs li>svg{font-size:20px;color:var(--pink);margin-top:3px}
.srcs span{display:flex;flex-direction:column}.srcs small{color:var(--muted)}
.munis{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.munis a{display:inline-flex;padding:6px 14px;border-radius:999px;background:#f6f0f2;color:var(--muted);text-decoration:none;font-size:13.5px}
.munis a.has{background:var(--pink-l);color:var(--pink2);font-weight:700}
.tbl-wrap{overflow-x:auto}
.tbl{border-collapse:collapse;width:100%;font-size:13.5px}
.tbl th,.tbl td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.tbl th{background:var(--bg2);font-weight:700}.tbl .num{text-align:right}
.dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 16px;margin:0;font-size:14.5px}
.dl dt{color:var(--muted);font-weight:700;white-space:nowrap}.dl dd{margin:0;min-width:0;overflow-wrap:anywhere}
.gmap{display:inline-flex;align-items:center;gap:4px;margin-left:10px;font-size:13px;font-weight:700;color:var(--pink2);white-space:nowrap}.gmap svg{width:14px;height:14px}
.ftags{display:flex;flex-wrap:wrap;gap:6px}.ftags span{display:inline-block;padding:3px 11px;border-radius:999px;border:1.5px solid var(--pink-m);background:var(--pink-l);color:var(--ink2);font-size:12.5px;font-weight:700;white-space:nowrap}
.cls-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:24px;margin-bottom:16px}
.cls-ph{border-radius:12px;overflow:hidden;background:var(--pink-l);aspect-ratio:4/3}
.cls-ph img{width:100%;height:100%;object-fit:cover}
.checks{list-style:none;padding:0;display:grid;gap:8px}
.checks li{display:flex;gap:8px;align-items:flex-start}.checks svg{color:var(--pink);margin-top:5px}
.steps{padding-left:1.4em}.steps b{display:block}
.sfilter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.sfilter select{width:auto}
.ccards>.empty{grid-column:1/-1}
.cfilter{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 14px}
.cfilter select{width:auto}
.cf-count{font-weight:700;color:var(--pink2)}
.near-h{margin:26px 0 4px;padding-top:18px;border-top:1px dashed var(--pink-m)}
.cc-ph,.cls-ph{position:relative}
.cc-ph img,.cls-ph img{object-position:top center}
.cc-shot{position:absolute;right:8px;bottom:8px;background:rgba(58,47,53,.7);color:#fff;font-size:10.5px;padding:2px 8px;border-radius:999px;letter-spacing:.04em}
.cc-area small{font-weight:500;color:var(--muted);margin-left:2px}
[data-mode="kids"] .ccard[data-kid],[data-mode="adult"] .ccard[data-adult]{order:-1}
[data-mode] .ccards[data-cf="near"] .ccard{order:0}
.s-near{margin:0 0 12px;font-size:13px;color:var(--muted)}
.linkbtn{display:inline-flex;align-items:center;gap:4px;border:0;background:none;padding:0;color:var(--pink2);text-decoration:underline;font-size:13px}
.linkbtn.busy{opacity:.5}
.s-area{background:var(--pink-l);border-radius:10px;padding:10px 14px;font-size:14px}
@media (max-width:760px){.sfilter select,.sfilter .btn{width:100%}}
.s-count{font-weight:700}
.type-top{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:center}
.type-ph{border-radius:var(--r);overflow:hidden;aspect-ratio:16/10;background:var(--pink-l)}
.type-ph img{width:100%;height:100%;object-fit:cover}
.prose h2{font-size:20px;margin:28px 0 8px;padding-left:12px;border-left:4px solid var(--pink)}
.prose h2:first-of-type{margin-top:0}
.prose>img{border-radius:12px;margin-bottom:18px}
.alist{padding-left:1.2em}
.faq details{border-bottom:1px solid var(--line);padding:12px 0}
.faq summary{font:600 16px var(--mincho);cursor:pointer}
.faq p{margin:8px 0 0;color:var(--ink2)}
.legal h2{font-size:18px;margin-top:20px}

/* ---------- フッター ---------- */
.ft{margin-top:40px;background:linear-gradient(180deg,#fdf0f4,#f8e2ea);color:var(--ink)}
.ft-in{max-width:1200px;margin:0 auto;padding:36px 20px 30px}
.ft-lead{font-size:13px;color:var(--ink2);margin:14px 0}
.ft-nav{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:13px}
.ft-nav a{color:var(--ink);text-decoration:none}.ft-nav a:hover{color:var(--pink2)}
.ft-c{font-size:12px;color:var(--muted);margin:20px 0 0}
.totop{position:fixed;right:16px;bottom:16px;width:44px;height:44px;border-radius:50%;background:var(--pink);color:#fff;display:grid;place-items:center;box-shadow:var(--shadow);z-index:40}
.totop svg{width:22px;height:22px}
.tabbar{display:none}

/* 見えたらふわっと */
.rv{opacity:0;transform:translateY(14px);transition:opacity .6s,transform .6s}
.rv.in{opacity:1;transform:none}

/* ---------- タブレット ---------- */
@media (max-width:1100px){
  .gnav{gap:14px}.gnav>a{font-size:12.5px}.gnav-fav span{display:none}
  .hs-f{grid-template-columns:1fr 1fr;gap:16px}
  .hs-c{border-left:0;padding:0}
  .hs .btn.big{margin:0}
  .hero-find{display:none}
}
@media (max-width:1000px){
  .menu-btn{display:flex}
  .hd-quick{display:flex}
  .gnav{position:fixed;inset:0;background:var(--bg);flex-direction:column;align-items:stretch;justify-content:center;gap:0;padding:40px 30px;display:none;z-index:60}
  .gnav.open{display:flex}
  .gnav>a{font:600 19px var(--mincho);padding:14px 4px;border-bottom:1px solid var(--line)}
  .gnav-r{flex-direction:column;align-items:stretch;margin:20px 0 0;gap:14px}
  .mode-sw{align-self:center}.mode-sw button{padding:8px 20px;font-size:14px}
  .gnav-fav{justify-content:center;font-size:15px}.gnav-fav span{display:inline}
  .gnav-x{display:block;position:absolute;right:20px;bottom:24px;width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:26px}
}
@media (max-width:960px){
  .lcards,.gcards{grid-template-columns:repeat(2,1fr)}
  .ccards{grid-template-columns:repeat(2,1fr)}
  .closing{grid-template-columns:1fr}
}
/* ---------- スマホ（デザイン案：上に写真と見出し、検索のカード、下にタブ） ---------- */
@media (max-width:760px){
  body{font-size:15px;padding-bottom:64px}
  .hd{background:transparent;border-bottom:0;backdrop-filter:none;position:absolute;left:0;right:0}
  .sub .hd{position:sticky;background:rgba(255,250,251,.94);backdrop-filter:blur(10px)}
  .hd-in{padding:8px 12px;gap:8px}
  .logo-t b{font-size:21px}.logo-mark img,.logo-mark svg{width:40px;height:40px}
  .logo-full{height:32px}
  .menu-btn{width:40px;padding:9px 6px}
  .gnav-x{bottom:84px}
  .hero{padding:64px 16px 10px}
  .hero.has-img::before{inset:0 0 auto 0;height:430px;background-image:var(--hero-sp);background-position:70% top;-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent)}
  .hero-vid{height:430px;object-position:70% top;-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent)}
  .hero-in{min-height:0}
  .hero h1{font-size:min(40px,9.4vw);margin:30px 0 8px;letter-spacing:.03em}
  .hero-sub{font-size:15px;letter-spacing:.1em}
  .hero-badge{display:none}
  .hero-find{display:block;position:static;font-size:34px;margin:4px 0 0 8px;transform:rotate(-10deg)}
  .hero-tate{display:none}
  .hs{margin-top:10px;border-radius:18px}
  .hs-tabs{display:flex;border-bottom:1px solid var(--line)}
  .hs-tabs button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;border:0;background:none;padding:14px 4px;font:600 15px var(--mincho);color:var(--ink);border-bottom:2px solid transparent}
  .hs-tabs button svg{color:var(--pink);font-size:20px}
  .hs-tabs button.on{border-bottom-color:var(--pink)}
  .hs-f{grid-template-columns:1fr;padding:16px}
  .hs-c .hs-l{display:none}
  .hs-area{grid-template-columns:1fr 1fr}
  .chips{display:grid;grid-template-columns:repeat(4,1fr)}
  .chip span{display:block;text-align:center;padding:8px 2px;font-size:13px}
  .btn.big{width:100%;font-size:17px}
  .rribbon{height:96px;padding:0 6px}
  .rribbon a{font-size:10.5px}
  .rr-pin{width:22px;height:22px}.rr-pin svg{font-size:12px}
  .rribbon a.big .rr-pin{width:30px;height:30px}
  .sec{padding:28px 14px 8px}
  .sec-h h2{font-size:min(22px,5.3vw);gap:10px;white-space:nowrap}.sec-h h2::before,.sec-h h2::after{width:22px}
  .sec-sub{font-size:12.5px;letter-spacing:.02em}
  .sec-h .sec-more{position:static;margin-top:10px}
  .lcards{grid-template-columns:repeat(2,1fr);gap:10px}
  .lcard{aspect-ratio:5/4}
  .lc-b{width:100%;padding:12px;background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,.3) 70%,transparent)}.lc-b b{font-size:14.5px;letter-spacing:.02em;white-space:nowrap}.lc-b small{font-size:11px}
  .pchips{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
  .pchip{justify-content:center;padding:7px 4px;font-size:12.5px}
  .pchip.more{grid-column:1/-1}
  .ccards{grid-template-columns:1fr;gap:12px}
  .ccard{display:grid;grid-template-columns:44% 1fr;align-items:stretch}
  .cc-ph{aspect-ratio:auto;height:100%;min-height:150px}
  .cc-area{position:static;background:none;padding:0;margin:12px 0 0 12px;grid-column:2;grid-row:1}
  .ccard .cc-ph{grid-row:1/3}
  .cc-b{grid-column:2;padding:2px 12px 12px}
  .ccard h3{font-size:15.5px}
  .fav{left:12px;right:auto}
  .cc-lead{display:none}
  .gcards{grid-template-columns:1fr 1fr;gap:10px}
  .cl-r{grid-template-columns:1fr}
  .cl-r li{border-left:0;padding-left:0}
  .sub main{padding:6px 14px 30px}
  .card{padding:18px 16px}
  .cls-top,.type-top{grid-template-columns:1fr}
  .dl{gap:6px 12px}
  .map{height:340px}
  .idx{flex-wrap:wrap}
  .idx a{flex:0 0 33.333%;border-left:0!important;padding:10px 4px}
  .idx a:nth-child(3n+2),.idx a:nth-child(3n+3){border-left:1px solid var(--line)!important}
  .idx a:nth-child(n+4){border-top:1px solid var(--line)}
  .idx b{font-size:22px}
  .tbl th,.tbl td{padding:6px 8px}
  .tabbar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:55;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:6px 0 calc(6px + env(safe-area-inset-bottom))}
  .tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--ink2);text-decoration:none;font-size:11px}
  .tabbar a+a{border-left:1px solid var(--line)}
  .tabbar svg{font-size:22px}
  .tabbar a.on{color:var(--pink2);font-weight:700}
  .totop{bottom:76px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
