@charset "UTF-8";
/* ============================================================
   第1回 ファミリースマイルフェス 2026 集客LP
   配色・書体はチラシ(コード版)から継承。紫系は版元NGのため不使用。
   ============================================================ */

:root{
  /* チラシ表面(コード版)系 */
  --pink:#C8006B; --blue:#00489E; --orange:#D2440E; --green:#0E8636; --amber:#E08A00;
  --navy:#12325F; --red:#E60012; --ink:#111;
  --tile-blue:#0060B0; --tile-orange:#F05000; --tile-green:#4FA020; --band-pink:#E23A5E;
  /* チラシ裏面系(ソフト) */
  --paper:#FFF9EF; --navy2:#16305E; --efo:#EF7D00; --sun:#FFCE3D;
  --coral:#E63946; --mint:#2E9E63; --skyblue:#58AEE0; --blue2:#2E77C8;
  --hoppe:#E4007F; --ink2:#3A3226; --sub:#6B6257;
  --lgfs: clamp(36px, 11vw, 62px);
  --apfs: clamp(11.5px, 3.6vw, 14px);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:"M PLUS Rounded 1c","Hiragino Maru Gothic ProN","Yu Gothic","Meiryo",sans-serif;
  font-weight:700; color:var(--ink2); background:var(--paper);
  overflow-x:hidden; line-height:1.6;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }
button{ font-family:inherit; }
.disp{ font-family:"Mochiy Pop One","M PLUS Rounded 1c",sans-serif; font-weight:400; }
.wrap{ width:min(100% - 36px, 1060px); margin-inline:auto; }
.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
a,button{ -webkit-tap-highlight-color:transparent; }
:focus-visible{ outline:3px solid var(--blue2); outline-offset:2px; border-radius:4px; }
.nw{ white-space:nowrap; }
.brsp{ display:inline; }

/* ============ 表示アニメーション(reveal) ============ */
[data-rv]{ opacity:0; transform:translateY(20px);
  transition:opacity .6s ease, transform .6s ease; transition-delay:var(--d,0ms); }
[data-rv].is-in{ opacity:1; transform:none; }
[data-rv].rv-group{ opacity:1; transform:none; }
.rv-group>*{ opacity:0; transform:translateY(18px);
  transition:opacity .55s ease, transform .55s ease; transition-delay:var(--d,0ms); }
.rv-group.is-in>*{ opacity:1; transform:none; }

/* ============================================================
   ヒーロー（Web専用KV／スマホ・PC別設計）
   ============================================================ */
.hero{ position:relative; overflow:hidden; padding:24px 0 32px;
  background:linear-gradient(145deg,#DDF3FD 0%,#F3F9F8 52%,#FFF7E9 100%);
  font-family:"BIZ UDPGothic","Yu Gothic","Meiryo",sans-serif; }
.hero-sky{ position:absolute; inset:0; pointer-events:none; }
.cloud{ display:none; }
.confetti{ display:none; }
.garland{ display:none; }

/* 写真と情報を一つの広告面として扱うWeb専用KV */
.hero-in{ position:relative; display:flex; flex-direction:column; width:min(100% - 24px,1180px);
  min-height:720px; padding:0; overflow:hidden; border:1px solid rgba(255,255,255,.92); border-radius:24px;
  background:#F8FAF4;
  box-shadow:0 18px 48px rgba(25,61,91,.13); }
.hero-photo{ position:absolute; z-index:0; inset:0; width:100%; height:100%; overflow:hidden; }
.hero-photo picture,.hero-photo img{ display:block; width:100%; height:100%; }
.hero-photo img{ object-fit:cover; object-position:42% top; }
.hero-main{ position:relative; z-index:2; display:flex; flex-direction:column; align-items:center;
  min-height:820px; padding:435px 16px 20px; text-align:center; }

.free-badge{ grid-column:1 / -1; grid-row:3; justify-self:center; display:inline-flex;
  align-items:center; gap:7px; min-height:27px; padding:4px 10px; border:1px solid #F2C8C8;
  border-radius:999px; background:#FFF5F5; color:#B61F2D; box-shadow:none; transform:none; }
.free-badge b{ font-size:11px; font-weight:900; line-height:1; letter-spacing:.04em; }
.free-badge span{ margin:0; padding-left:7px; border-left:1px solid #E8B7BA;
  font-size:8.5px; font-weight:400; line-height:1.3; }

.catch{ position:relative; z-index:3; transform:translateY(1px); font-size:15px; font-weight:700;
  line-height:1.4; color:var(--navy2); letter-spacing:.025em;
  -webkit-text-stroke:1.2px rgba(255,255,255,.96); paint-order:stroke fill;
  text-shadow:0 1px 2px rgba(255,255,255,.48); }
.catch::before{ content:""; position:absolute; z-index:-1; inset:-9px -24px;
  background:radial-gradient(ellipse at center,rgba(255,255,255,.78) 0%,rgba(255,255,255,.52) 42%,rgba(255,255,255,.18) 66%,transparent 82%);
  filter:blur(5px); pointer-events:none; }
.catch i{ font-style:normal; color:var(--red); }

.logo{ position:relative; width:min(63vw,235px); aspect-ratio:971 / 785; margin:4px auto 0;
  overflow:hidden; line-height:1; }
.logo img{ position:absolute; top:-36.94%; left:-2.68%; width:105.46%; max-width:none; height:auto; }

.subcopy{ display:none; }
.dates{ display:flex; align-items:flex-end; justify-content:center; gap:7px; margin-top:12px; }
.dates .m{ font-size:16px; font-weight:900; color:var(--ink); margin-bottom:4px; }
.dnum{ display:flex; align-items:flex-end; }
.dnum b{ font-size:36px; font-weight:900; color:var(--ink); line-height:.86; letter-spacing:-.035em; }
.dnum em{ font-style:normal; font-size:9px; font-weight:900; color:#fff; line-height:1;
  padding:4px; border-radius:4px; margin-left:3px; margin-bottom:2px; white-space:nowrap; }
.b-sun{ background:var(--red); border-radius:50%; padding:5px 4px; }
.b-mon{ background:var(--efo); } .b-tue{ background:#3FA535; }

.hero-info{ margin-top:9px; display:grid; grid-template-columns:auto auto; justify-content:center;
  align-items:center; column-gap:14px; row-gap:6px; }
.hero-info .row{ display:flex; align-items:center; justify-content:center; gap:6px; }
.hero-info .row:nth-child(2){ grid-column:1 / -1; grid-row:1; }
.hero-info .row:first-child{ grid-column:1 / -1; grid-row:2; }
.hero-info .ic{ width:19px; height:auto; flex:none; }
.time{ font-size:17px; font-weight:900; color:var(--ink); white-space:nowrap; }
.venue{ font-size:20px; font-weight:900; color:var(--ink); }
.addr{ display:none; }
.rain-pill{ grid-column:1 / -1; grid-row:3; justify-self:center; margin:0 !important; min-height:27px; padding:3px 9px !important; }
.free-badge{ grid-row:4; }
.rain-pill span{ font-size:9.5px !important; font-weight:700 !important; }
.rain-pill img{ width:17px !important; height:17px !important; }

.scroll-cue{ display:none; }
.hero-wave{ display:none; }

@media (min-width:900px){
  .hero{ min-height:auto; padding:36px 0 36px; }
  .hero-in{ display:block; min-height:620px; border-radius:30px; background:#EAF6F7; }
  .hero-photo img{ object-position:center center; }
  .hero-main{ width:49%; min-height:620px; margin-left:auto; justify-content:center;
    padding:38px 44px 34px; }
  .free-badge{ justify-self:center; min-height:31px; padding:5px 13px; }
  .free-badge b{ font-size:12px; }
  .free-badge span{ font-size:9.5px; }
  .catch{ transform:none; font-size:16px; font-weight:700; letter-spacing:.06em;
    -webkit-text-stroke:0; text-shadow:none; }
  .catch::before{ display:none; }
  .logo{ width:min(29vw,385px); margin-top:10px; }
  .subcopy{ display:block; margin-top:18px; font-size:15px; font-weight:400; color:var(--ink2); }
  .subcopy i{ font-style:normal; color:#E8500C; font-size:1.16em; font-weight:900; }
  .dates{ gap:14px; margin-top:20px; }
  .dates .m{ font-size:23px; }
  .dnum b{ font-size:57px; }
  .dnum em{ font-size:12px; padding:5px; }
  .hero-info{ margin-top:16px; row-gap:8px; }
  .hero-info .row:first-child{ grid-column:1; grid-row:2; }
  .time{ font-size:22px; }
  .venue{ font-size:27px; }
  .addr{ display:block; grid-column:1 / -1; grid-row:4; font-size:11px; font-weight:400; color:#53606B; }
  .rain-pill{ grid-column:2; grid-row:2; justify-self:auto; }
  .free-badge{ grid-row:3; }
  .rain-pill span{ font-size:11px !important; }
  .scroll-cue{ display:flex; position:relative; flex-direction:column; align-items:center; gap:2px;
    width:max-content; margin:12px auto 0; color:var(--navy); text-decoration:none;
    font-size:10px; font-weight:700; letter-spacing:.24em; opacity:.55; }
  .scroll-cue svg{ width:20px; }
}

/* ============================================================
   カウントダウン
   ============================================================ */
.countdown{ position:relative; z-index:2; background:#FFF9EF; padding:11px 0 3px; overflow:hidden;
  font-family:"BIZ UDPGothic","Yu Gothic","Meiryo",sans-serif; }
.cd-in{ position:relative; display:flex; align-items:center; justify-content:center; width:min(100% - 28px,520px);
  min-height:52px; padding:6px 12px; border:0; border-radius:0; background:transparent; }
.sunburst{ position:absolute; width:150px; height:150px; border-radius:50%;
  background:repeating-conic-gradient(from 4deg,#FFEDB8 0 7deg,transparent 7deg 16deg);
  -webkit-mask-image:radial-gradient(#000 0 56%,transparent 72%);
          mask-image:radial-gradient(#000 0 56%,transparent 72%);
  opacity:.38; animation:spin 46s linear infinite; pointer-events:none; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.cd-body{ position:relative; text-align:center; }
.cd-label{ display:inline; font-size:clamp(11px,3vw,14px); color:var(--navy2); font-weight:700; }
.cd-num{ margin-top:2px; font-weight:900; color:var(--ink); font-size:clamp(15px,4.1vw,21px); }
.cd-num b{ font-size:2.35em; color:var(--red); line-height:1; font-family:"M PLUS Rounded 1c",sans-serif;
  font-weight:900; padding:0 .08em; font-variant-numeric:tabular-nums; }
.cd-static{ font-size:clamp(11px,3vw,15px); font-weight:500; }

/* ============================================================
   コンテンツダイジェスト
   ============================================================ */
.digest{ position:relative; background:#fff; padding:48px 0 64px;
  font-family:"BIZ UDPGothic","Yu Gothic","Meiryo",sans-serif; }
.digest.deco::after{ display:none; }
.digest>.sec-tab{ top:20px; background:transparent; color:var(--efo); box-shadow:none;
  padding-top:0; padding-bottom:0; font-weight:700; }
.digest>.sec-tab::before{ background:var(--efo); }
.band-title{ position:relative; width:auto; margin:0 0 20px; filter:none; text-align:left; }
.band-title img{ display:none; }
.band-title span{ position:static; display:block; color:var(--navy2); padding:0; text-shadow:none;
  font-size:clamp(26px,7vw,42px); font-weight:900; line-height:1.25; letter-spacing:.02em; }
.band-title span::after{ content:""; display:block; width:52px; height:5px; margin-top:13px;
  border-radius:999px; background:var(--efo); }
.digest-grid{ display:grid; grid-template-columns:1fr; gap:10px; }
.dtile{ --c:var(--navy); position:relative; isolation:isolate; overflow:hidden; display:flex;
  flex-direction:column; align-items:flex-start; justify-content:center; gap:3px; min-height:142px;
  padding:14px 14px 14px 132px; border:1px solid #E1E6EA; border-radius:16px; color:var(--navy2);
  background:#fff; text-decoration:none; text-align:left;
  box-shadow:0 6px 18px rgba(22,48,94,.07); transition:transform .2s ease,box-shadow .2s ease; }
.dtile::before{ content:""; position:absolute; inset:0 auto 0 0; z-index:0; width:116px; background:#F2F6F8; }
.dtile:hover{ transform:translateY(-3px); box-shadow:0 14px 28px rgba(22,48,94,.13); }
.dtile>*{ position:relative; z-index:1; }
.dtile-ic{ position:absolute; z-index:1; left:16px; top:50%; width:84px; height:78px;
  object-fit:contain; margin:0; transform:translateY(-50%); }
.dtile b{ padding:0; background:transparent; color:var(--c); font-size:19px;
  font-weight:900; line-height:1.2; letter-spacing:.08em; }
.dtile>span{ color:var(--ink2); font-size:11px; font-weight:500; line-height:1.55; opacity:1; }
.dtile-meta{ color:var(--sub); font-style:normal; font-size:10px; font-weight:400; line-height:1.4; }
.dtile-tag{ margin-top:3px; padding:4px 9px; border-radius:999px; background:#EDF1F4;
  color:var(--navy2) !important; font-style:normal; font-size:10px; font-weight:700; }
.t-stage{ --c:#075A95; }
.t-stage::before{ background:#EAF4FA; }
.t-stage .dtile-ic{ filter:drop-shadow(0 4px 8px rgba(22,48,94,.1)); }
.t-stage .dtile-tag{ width:max-content; }
.t-greet{ --c:var(--hoppe); }
.t-greet::before{ background:#FFF0F6; }
.t-make{ --c:#00877F; }
.t-make::before{ background:#EAF7F5; }
.t-kids{ --c:#2376A8; }
.t-food{ --c:#D45C13; }
.t-kids::before,.t-food::before{ background:#EEF3F5; }
.dtile-photo{ position:absolute; inset:0 auto 0 0; z-index:1; width:116px !important; height:100% !important;
  margin:0 !important; object-fit:cover; transform:none; }
.t-kids .dtile-photo{ object-position:center 47%; }
.t-food .dtile-photo{ object-position:center 42%; }
.t-kids .dtile-tag,.t-food .dtile-tag{ width:max-content; }

@media (min-width:760px){
  .digest{ padding:64px 0 80px; }
  .digest-grid{ grid-template-columns:repeat(5,1fr); gap:14px; }
  .dtile,.t-stage,.t-kids,.t-food{ min-height:330px; padding:164px 18px 18px; justify-content:flex-end; }
  .dtile::before{ inset:0 0 auto; width:auto; height:146px; }
  .dtile-ic,.t-stage .dtile-ic{ left:50%; top:73px; width:112px; height:100px; transform:translate(-50%,-50%); }
  .dtile-photo{ inset:0 0 auto; width:100% !important; height:146px !important; transform:none; }
  .dtile b,.t-stage b{ font-size:20px; }
}

/* ============================================================
   セクション共通
   ============================================================ */
.sec-head{ text-align:center; margin-bottom:28px; }
.sec-chip{ display:inline-block; color:#fff; font-weight:900; font-size:clamp(10px,2.8vw,12px);
  letter-spacing:.28em; padding:5px 14px 5px 18px; border-radius:999px; }
.chip-blue{ background:var(--tile-blue); } .chip-pink{ background:var(--hoppe); }
.chip-blue2{ background:var(--blue2); } .chip-orange{ background:var(--tile-orange); }
.chip-navy{ background:var(--navy); } .chip-mint{ background:var(--mint); }
.sec-head h2{ margin-top:12px; font-size:clamp(24px,6.4vw,38px); line-height:1.25; }
.h-blue{ color:var(--tile-blue); } .h-pink{ color:#D6007F; } .h-blue2{ color:var(--blue2); }
.h-orange{ color:var(--orange); } .h-navy{ color:var(--navy); } .h-mint{ color:var(--mint); }
.sec-lead{ margin-top:10px; font-size:clamp(14px,3.9vw,18px); font-weight:900; color:var(--ink);
  display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; }
.tag-free{ background:var(--hoppe); color:#fff; font-weight:900; font-size:.85em;
  padding:3px 12px; border-radius:6px; letter-spacing:.06em; }
.sec-note{ margin-top:7px; font-size:clamp(10.5px,2.9vw,12.5px); color:var(--sub); font-weight:700; }

/* ============================================================
   ステージ(アンパンマンショー) — クリチェ準拠フォーマット
   ============================================================ */
.stage{ background:#F7FAFD; padding:64px 0 54px; }
.aprow{ display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:8px 18px 20px; margin:0 -18px; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.aprow::-webkit-scrollbar{ display:none; }
.apcard{ flex:none; scroll-snap-align:center; background:#fff; border-radius:18px;
  padding:12px; box-shadow:0 10px 26px rgba(22,48,94,.15);
  display:flex; flex-direction:column; align-items:center; }
.bg20{ background:#FEFEFD; } .bg21{ background:#FFF6D9; } .bg22{ background:#E7F4FC; }
.bgGreet{ background:#FDEFF5; } .bgWs{ background:#fff; }

/* 告知帯ブロック(88mm版の忠実移植: 1mm = 0.25em) */
.apblk{ font-size:var(--apfs); width:22em; border:.175em solid var(--red); border-radius:.2em;
  display:flex; flex-direction:column; align-items:center; padding:.75em .75em .65em;
  font-family:"Noto Sans JP","Yu Gothic","Meiryo",sans-serif; background:transparent; }
.apblk.pinkframe{ border-color:var(--hoppe); }
.ap-logo{ width:19em; height:auto; margin-bottom:.4em; }
.ap-art{ width:20em; height:16.2em; object-fit:contain; }
.ap-cline{ width:20em; text-align:right; margin-top:.3em; line-height:0; }
.ap-cline img{ height:.8em; width:auto; display:inline-block; }
.ap-daterow{ width:20em; display:flex; align-items:flex-end; justify-content:space-between; margin-top:.5em; }
.ap-daterow.g-center{ justify-content:center; }
.ap-date{ display:flex; align-items:baseline; line-height:1; color:#000; white-space:nowrap; }
.ap-date .d{ font-size:3em; font-weight:900; letter-spacing:-.03em; }
.ap-date .mu{ font-size:1.45em; font-weight:900; }
.ap-date .tl{ font-size:1.9em; font-weight:900; margin:0 .05em; }
.wcircle{ flex:none; font-size:.9em; width:1.81em; height:1.81em; border-radius:50%;
  color:#fff; display:flex; align-items:center; justify-content:center; font-weight:900; margin-bottom:.1em; }
.w-sun{ background:var(--red); } .w-mon{ background:var(--efo); } .w-tue{ background:#3FA535; }
.ap-times{ line-height:1.4; font-size:.925em; font-weight:700; color:#000; white-space:nowrap; margin:0 .15em -.15em; }
.ap-free{ background:var(--hoppe); color:#fff; font-size:1em; font-weight:900;
  padding:.3em .55em; border-radius:.25em; letter-spacing:.05em; white-space:nowrap; flex:none; margin-bottom:.22em; }
.ap-rule{ width:20em; height:.25em; background:#000; margin:.5em 0; }
.ap-venue{ text-align:center; font-size:1.35em; font-weight:900; line-height:1.35; color:#000; }
.ap-note{ margin-top:.45em; text-align:center; font-size:.675em; font-weight:700; color:#222; line-height:1.5; }

.dots{ display:flex; justify-content:center; gap:8px; margin-top:4px; }
.dots button{ width:9px; height:9px; border-radius:50%; background:#C9D8E8; border:0; padding:0; cursor:pointer;
  transition:transform .2s ease, background .2s ease; }
.dots button.on{ background:var(--red); transform:scale(1.3); }
.swipe-hint{ text-align:center; margin-top:10px; font-size:11px; font-weight:800; color:var(--sub); letter-spacing:.08em; }

/* ============================================================
   ほっぺちゃん(グリーティング&ワークショップ)
   ============================================================ */
.hoppe{ background:#FFF2F8; padding:64px 0;
  background-image:radial-gradient(#F9DEEC 1.2px,transparent 1.5px); background-size:26px 26px; }
.hoppe-grid{ display:grid; gap:26px; justify-items:center; }
.g-title{ text-align:center; font-size:1.45em; color:#D6007F; line-height:1.35; margin-bottom:.5em; }
.g-art{ width:14.5em; height:14.5em; object-fit:contain; }
.g-times{ text-align:center; font-size:1.1em; font-weight:900; color:#000; margin-top:.5em; }
.ws-art{ width:20em; height:14.15em; object-fit:contain; }
.ws-badges{ display:flex; flex-direction:column; gap:.35em; align-items:flex-end; margin-bottom:.1em; }
.badge{ color:#fff; font-size:.875em; font-weight:900; padding:.28em .6em; border-radius:.28em;
  letter-spacing:.05em; white-space:nowrap; }
.b-pink{ background:var(--hoppe); } .b-orange{ background:var(--efo); }
.ws-caption{ margin-top:14px; text-align:center; padding:0 4px 4px; max-width:340px; }
.ws-info{ display:inline-block; background:#fff; border:2px solid var(--mint); color:var(--navy2);
  font-weight:900; border-radius:10px; padding:6px 12px; font-size:clamp(11px,3vw,13.5px);
  margin:2px 3px; white-space:nowrap; }
.ws-caption p{ margin-top:10px; font-size:clamp(13px,3.5vw,15px); font-weight:700; line-height:1.85; }

/* ============================================================
   キッズパーク / フード＆マルシェ
   ============================================================ */
.kids{ background:#EAF4FB; padding:64px 0; }
.food{ background:#FFF6E8; padding:64px 0; }
.kids-in,.food-in{ display:flex; flex-direction:column; gap:24px; align-items:center; }
.kids-visual,.food-visual{ position:relative; width:min(100%,560px); }
.kids-visual{ padding:12px 0 30px; }
.food-visual{ padding:8px 0 24px; }
.photo-main{ border:6px solid #fff; border-radius:18px; overflow:hidden; width:84%;
  box-shadow:0 10px 26px rgba(22,48,94,.2); }
.photo-main img{ width:100%; }
.tilt-l{ transform:rotate(-1.6deg); } .tilt-r{ transform:rotate(1.6deg); }
.circ{ position:absolute; border-radius:50%; border:5px solid #fff; overflow:hidden;
  box-shadow:0 8px 20px rgba(22,48,94,.22); }
.circ img{ width:100%; height:100%; object-fit:cover; }
.kids-visual .circ-a{ width:34%; aspect-ratio:1; right:0; top:-2%; }
.kids-visual .circ-b{ width:27%; aspect-ratio:1; right:6%; bottom:0; }
.food-visual .photo-main{ width:72%; margin-left:auto; }
.food-visual .circ-a{ width:36%; aspect-ratio:1; left:0; top:-3%; }
.food-visual .circ-b{ width:29%; aspect-ratio:1; left:6%; bottom:0; }
.balloon{ position:absolute; width:36px; }
.bl-a{ left:-8px; top:-16px; animation:flt2 5s ease-in-out infinite alternate; }
.bl-b{ left:15%; bottom:-8px; animation:flt2 6.4s ease-in-out 1s infinite alternate; }
@keyframes flt2{ from{ transform:translateY(-6px) rotate(-4deg); } to{ transform:translateY(8px) rotate(5deg); } }
.kids-txt,.food-txt{ text-align:center; max-width:560px; }
.tagline{ font-family:"Mochiy Pop One","M PLUS Rounded 1c",sans-serif; font-weight:400;
  font-size:clamp(17px,4.7vw,24px); color:var(--blue2); margin-top:6px; }
.t-coral{ color:var(--coral); }
.tag{ display:inline-block; color:#fff; font-size:clamp(11px,3vw,13px); font-weight:800;
  padding:5px 18px; border-radius:999px; margin:12px 0 10px; letter-spacing:.05em; }
.tag-orange{ background:var(--efo); } .tag-sky{ background:var(--skyblue); }
.body-txt{ font-size:clamp(13.5px,3.7vw,16px); line-height:1.95; font-weight:700; max-width:34em; margin-inline:auto; text-align:left; }
.kids-txt{ order:-1; }
.mini-note{ margin-top:10px; font-size:clamp(10.5px,2.9vw,12px); color:var(--sub); font-weight:700; }

/* ============================================================
   開催概要
   ============================================================ */
.overview{ background:var(--paper); padding:64px 0;
  background-image:radial-gradient(#F3E8D2 1.2px,transparent 1.5px); background-size:26px 26px; }
.ov-card{ background:#fff; border-radius:22px; box-shadow:0 12px 30px rgba(22,48,94,.12);
  padding:clamp(18px,4.5vw,36px); }
.ov-card dl div{ display:grid; grid-template-columns:88px 1fr; gap:10px; padding:13px 4px;
  border-bottom:2px dashed #EDE4D2; align-items:baseline; }
.ov-card dt{ font-weight:900; color:var(--navy); font-size:clamp(12px,3.3vw,14px); }
.ov-card dd{ font-size:clamp(13px,3.6vw,15.5px); font-weight:700; line-height:1.75; }
.ov-free{ color:var(--red); font-size:1.15em; }
.ov-card .tel{ color:var(--navy); font-weight:900; text-decoration:none; font-size:1.2em; }
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:6px; white-space:nowrap;
  font-weight:900; font-size:clamp(11.5px,3.2vw,14.5px); padding:12px 8px; border-radius:999px;
  text-decoration:none; border:2.5px solid var(--navy); background:#fff; color:var(--navy);
  min-height:48px; cursor:pointer; transition:transform .2s ease, box-shadow .2s ease; }
.btn svg{ width:18px; height:18px; flex:none; }
.btn.solid{ background:var(--red); border-color:var(--red); color:#fff; box-shadow:0 6px 14px rgba(230,0,18,.25); }
.btn:hover{ transform:translateY(-2px); }

/* ============================================================
   アクセス
   ============================================================ */
.access{ background:#F4F3EE; padding:64px 0; }
.map-scroller{ overflow-x:auto; border-radius:16px; box-shadow:0 8px 22px rgba(22,48,94,.15);
  background:#DCEEF7; -webkit-overflow-scrolling:touch; }
.map-svg{ display:block; min-width:640px; width:100%; height:auto; }
.map-svg text{ font-family:"Noto Sans JP","Yu Gothic","Meiryo",sans-serif; }
.vring{ transform-box:fill-box; transform-origin:center; animation:vpulse 2.4s ease-out infinite; }
@keyframes vpulse{ 0%{ transform:scale(.6); opacity:.9; } 70%,100%{ transform:scale(1.9); opacity:0; } }
.sh-map{ margin-top:8px; }
.acc-rows{ margin-top:24px; display:grid; gap:12px; justify-items:start; max-width:640px; margin-inline:auto; }
.acc-row{ display:flex; align-items:center; gap:12px; }
.acc-ic{ width:38px; height:38px; border-radius:50%; color:#fff; font-weight:900; font-size:15px;
  display:flex; align-items:center; justify-content:center; flex:none; }
.ic-jr{ background:#2B4A66; } .ic-den{ background:var(--mint); } .ic-car{ background:var(--navy2); }
.acc-row p{ font-size:clamp(13.5px,3.7vw,16px); font-weight:900; color:var(--navy2); }
.acc-row em{ font-style:normal; color:var(--red); font-size:1.15em; white-space:nowrap; }
.acc-addr{ font-size:clamp(11.5px,3.2vw,13px); font-weight:700; color:var(--ink2);
  border-top:2px dashed #CBD6E2; padding-top:12px; margin-top:8px; width:100%; }

/* ============================================================
   ご来場のお願い
   ============================================================ */
.onegai{ background:#E7F3FB; padding:56px 0 64px; position:relative; }
.onegai::before{ content:""; position:absolute; top:-13px; left:0; right:0; height:14px;
  background:radial-gradient(circle at 11px 0,transparent 11px,#E7F3FB 11.5px);
  background-size:30px 14px; }
.onegai-grid{ display:grid; gap:14px; }
.ng-card{ background:#fff; border-radius:16px; padding:20px 20px 18px; box-shadow:0 6px 16px rgba(22,48,94,.1); }
.ng-card h3{ color:var(--mint); font-size:clamp(14px,3.9vw,16.5px); font-weight:900; margin-bottom:9px;
  display:flex; gap:8px; align-items:center; }
.ng-card h3::before{ content:"●"; font-size:.6em; flex:none; }
.ng-card p{ font-size:clamp(12.5px,3.4vw,14px); line-height:1.9; font-weight:700; }

/* ============================================================
   フッター
   ============================================================ */
.foot{ background:var(--navy2); color:#fff; padding:46px 0 calc(30px + 92px); }
.foot-in{ display:flex; flex-direction:column; align-items:center; gap:20px; text-align:center; }
.foot-free{ background:var(--hoppe); border-radius:14px; padding:13px 28px; }
.foot-free b{ display:block; font-size:clamp(20px,5.4vw,26px); letter-spacing:.1em; }
.foot-free span{ display:block; font-size:clamp(10px,2.8vw,11.5px); font-weight:700; margin-top:6px; line-height:1.5; }
.foot-contact .lbl{ display:inline-block; background:var(--sun); color:var(--navy2);
  font-size:clamp(11px,3vw,12.5px); font-weight:900; border-radius:999px; padding:4px 16px; }
.foot-contact .who{ font-size:clamp(12px,3.3vw,14px); font-weight:800; margin-top:9px; }
.foot-contact .tel{ display:block; color:#fff; font-size:clamp(21px,5.8vw,27px); font-weight:900;
  text-decoration:none; margin-top:4px; font-variant-numeric:tabular-nums; }
.foot-c{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; align-items:center; }
.foot-c .chip{ background:#fff; border-radius:8px; padding:6px 10px; display:inline-flex; align-items:center; }
.foot-c .chip img{ height:12px; width:auto; }
.foot-host{ font-size:clamp(11px,3vw,12.5px); font-weight:700; opacity:.85; }

/* ============================================================
   追従バー
   ============================================================ */
.bar{ position:fixed; left:0; right:0; bottom:0; z-index:60; display:flex; align-items:center; gap:9px;
  background:rgba(255,255,255,.94); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  box-shadow:0 -6px 22px rgba(22,48,94,.18);
  padding:10px max(14px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));
  transform:translateY(115%); transition:transform .35s ease; }
.bar.show{ transform:none; }
.bar-date{ flex:1; min-width:0; line-height:1.25; }
.bar-date b{ display:block; font-size:15px; font-weight:900; color:var(--navy); white-space:nowrap; }
.bar-date b small{ font-size:.72em; }
.bar-date span{ font-size:10.5px; font-weight:800; color:var(--red); white-space:nowrap; }
.bar-btn{ flex:none; font-weight:900; font-size:13px; padding:11px 14px; border-radius:999px;
  font-family:inherit; line-height:1.2; text-decoration:none; min-height:44px; display:inline-flex;
  align-items:center; justify-content:center; cursor:pointer; appearance:none; }
.bar-btn.ghost{ border:2px solid var(--navy); color:var(--navy); background:#fff; }
.bar-btn.solid{ border:0; background:var(--red); color:#fff; box-shadow:0 4px 12px rgba(230,0,18,.3); }
.share-status{ position:absolute; right:12px; bottom:calc(100% + 8px); max-width:220px; padding:8px 12px;
  border-radius:8px; background:rgba(22,48,94,.94); color:#fff; font-size:12px; font-weight:700;
  line-height:1.4; opacity:0; visibility:hidden; transform:translateY(4px); transition:.18s ease;
  pointer-events:none; }
.share-status.show{ opacity:1; visibility:visible; transform:none; }

/* ============================================================
   ブレークポイント
   ============================================================ */
@media (min-width:600px){
  .brsp{ display:none; }
  .ov-card dl div{ grid-template-columns:130px 1fr; }
  .onegai-grid{ grid-template-columns:1fr 1fr; }
}
@media (min-width:760px){
  :root{ --apfs:12.8px; }
  .aprow{ display:grid; grid-template-columns:repeat(3,auto); justify-content:center; gap:20px;
    overflow:visible; margin:0; padding:8px 0; }
  .dots,.swipe-hint{ display:none; }
  .sh-map{ display:none; }
  .map-svg{ min-width:0; }
  .hoppe-grid{ grid-template-columns:1fr 1fr; align-items:start; }
  .kids-in{ flex-direction:row; gap:34px; align-items:center; }
  .kids-visual{ flex:none; width:50%; }
  .kids-txt{ text-align:left; flex:1; order:0; }
  .food-in{ flex-direction:row; gap:34px; align-items:center; }
  .food-txt{ text-align:left; flex:1; order:0; }
  .food-visual{ flex:none; width:48%; order:1; }
  .body-txt{ margin-inline:0; }
  .acc-rows{ grid-template-columns:1fr 1fr; }
  .acc-rows .acc-addr{ grid-column:1/-1; }
}
@media (min-width:1000px){
  :root{ --apfs:14.2px; }
}
@media (min-width:900px){
  .foot{ padding-bottom:110px; }
  .bar{ left:50%; right:auto; bottom:16px; border-radius:999px; padding:10px 18px;
    min-width:540px; transform:translate(-50%,140%); }
  .bar.show{ transform:translate(-50%,0); }
  .bar-date{ display:flex; align-items:baseline; gap:10px; }
}

/* ============================================================
   追加セクション（2026-08 デザイン反映）
   ============================================================ */

/* --- ヒーロー: 雨天決行ピル --- */
.rain-pill{ display:inline-flex; align-items:center; gap:6px; margin-top:10px;
  background:rgba(255,255,255,.86); border:2px solid var(--blue2); border-radius:999px;
  padding:5px 14px 5px 10px; box-shadow:0 3px 8px rgba(22,48,94,.12); }
.rain-pill svg{ width:18px; height:18px; flex:none; }
.rain-pill span{ font-size:clamp(11px,3vw,13px); font-weight:900; color:var(--navy); white-space:nowrap; }

/* --- FV直後の価値訴求 --- */
.benefit{ position:relative; background:#FFF9EF; padding:20px 0 34px;
  font-family:"BIZ UDPGothic","Yu Gothic","Meiryo",sans-serif; }
.benefit.deco::after{ display:none; }
.benefit>.sec-tab{ display:none; }
.bf-in{ display:block; }
.bf-photo{ display:none; }
.bf-txt{ max-width:900px; margin-inline:auto; text-align:center; }
.bf-h{ font-family:"M PLUS Rounded 1c","Noto Sans JP",sans-serif;
  font-size:clamp(21px,5.5vw,32px); font-weight:800; line-height:1.4; color:var(--navy2); }
.bf-h em{ font-style:normal; color:#E8500C; }
.bf-lead{ margin-top:7px; font-size:clamp(12.5px,3.4vw,15px); font-weight:400; line-height:1.7; }
.bf-list{ margin-top:15px; display:grid; gap:0; list-style:none; }
.bf-list li{ display:flex; align-items:center; gap:10px; min-height:50px; padding:10px 13px;
  border:0; border-top:1px solid #E9DDC9; border-radius:0; background:transparent; text-align:left;
  box-shadow:none; color:var(--navy2); font-size:13px; font-weight:500; line-height:1.5; }
.bf-list li:last-child{ border-bottom:1px solid #E9DDC9; }
.bf-list li b{ color:var(--red); font-size:1.05em; font-weight:900; }
.bf-ic{ flex:none; width:27px; height:27px; border-radius:50%; display:flex;
  align-items:center; justify-content:center; color:#fff; }
.bf-ic svg{ width:17px; height:17px; }
.i-rain{ background:var(--blue2); } .i-free{ background:var(--red); } .i-one{ background:var(--efo); }

/* --- 主要コンテンツへの直前導線 --- */
.osusume{ position:relative; background:#F6F8FA; padding:46px 0 50px;
  font-family:"BIZ UDPGothic","Yu Gothic","Meiryo",sans-serif; }
.osusume.deco::after{ display:none; }
.osusume .sec-head{ margin-bottom:20px; }
.osusume .sec-tab{ display:none; }
.osusume .sec-head h2{ margin:0; color:var(--navy2); font-family:"M PLUS Rounded 1c","Noto Sans JP",sans-serif;
  font-size:clamp(20px,5.3vw,29px); font-weight:800; line-height:1.45; }
.os-list{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:8px; max-width:920px; margin-inline:auto; }
.os-list li{ position:relative; display:flex; align-items:flex-start; gap:8px; min-height:70px;
  padding:12px 10px; border:0; border-radius:11px; background:#fff; box-shadow:none;
  color:var(--ink2); font-size:11.5px; font-weight:400; line-height:1.55; }
.os-list li::before{ content:"✓"; flex:none; width:20px; height:20px; display:flex;
  align-items:center; justify-content:center; margin-top:1px; border-radius:50%;
  background:var(--efo); color:#fff; font-size:11px; font-weight:900; }
.os-list li::after{ display:none; }

@media (min-width:600px){
  .bf-list{ grid-template-columns:repeat(3,1fr); }
  .bf-list li:first-child{ grid-column:auto; }
  .bf-list li{ justify-content:center; min-height:46px; border-top:0; border-right:1px solid #E2D5C0; padding:8px 14px; }
  .bf-list li:last-child{ border-right:0; border-bottom:0; }
  .os-list{ grid-template-columns:repeat(4,1fr); }
}

@media (min-width:900px){
  .countdown{ padding:13px 0 3px; }
  .cd-in{ min-height:54px; }
  .benefit{ padding:22px 0 38px; }
  .bf-list{ margin-top:18px; }
}

/* --- フード: 続報フック --- */
.food-soon{ margin-top:18px; background:#fff; border:2.5px dashed var(--efo); border-radius:16px;
  padding:16px 16px 18px; text-align:center; }
.food-soon b{ display:block; font-size:clamp(14px,3.9vw,17px); font-weight:900; color:var(--orange); }
.food-soon p{ margin-top:7px; font-size:clamp(11.5px,3.1vw,13px); font-weight:700; line-height:1.75; }
.btn-sm{ margin-top:12px; min-height:42px; padding:9px 20px; font-size:clamp(11.5px,3.1vw,13.5px); }
.img-note{ margin-top:14px; font-size:clamp(10px,2.8vw,11.5px); color:var(--sub); font-weight:700; text-align:center; }

/* --- モデルコース --- */
.course{ background:#F1F9F3; padding:62px 0; }
.chip-green{ background:var(--mint); } .h-green{ color:#1F7D4C; }
.tl{ list-style:none; max-width:640px; margin:0 auto; position:relative; }
.tl::before{ content:""; position:absolute; left:72px; top:14px; bottom:14px; width:3px;
  background:repeating-linear-gradient(180deg,var(--mint) 0 7px,transparent 7px 14px); }
.tl li{ position:relative; display:flex; align-items:flex-start; padding:8px 0; }
.tl-t{ flex:none; width:56px; text-align:right; font-size:clamp(14px,3.9vw,17px); font-weight:900;
  color:var(--mint); font-variant-numeric:tabular-nums; padding-top:11px; }
.tl li::after{ content:""; position:absolute; left:66px; top:17px; width:15px; height:15px;
  border-radius:50%; background:#fff; border:4px solid var(--mint); z-index:1; }
.tl-b{ flex:1; background:#fff; border-radius:12px; padding:11px 15px; margin-left:40px;
  box-shadow:0 4px 12px rgba(22,48,94,.09); font-size:clamp(12.5px,3.4vw,15px); font-weight:800;
  line-height:1.55; display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.tl-tag{ font-style:normal; font-size:.78em; font-weight:900; color:#fff; background:var(--hoppe);
  padding:3px 9px; border-radius:5px; white-space:nowrap; }
.tac{ text-align:center; margin-top:16px; }

/* --- 料金 --- */
.price{ background:var(--paper); padding:62px 0;
  background-image:radial-gradient(#F3E8D2 1.2px,transparent 1.5px); background-size:26px 26px; }
.chip-red{ background:var(--red); } .h-red{ color:var(--red); }
.price-card{ background:#fff; border-radius:22px; box-shadow:0 12px 30px rgba(22,48,94,.12);
  padding:clamp(14px,4vw,28px); max-width:720px; margin-inline:auto; }
.price-card dl div{ display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:14px 4px; border-bottom:2px dashed #EDE4D2; }
.price-card dl div:last-child{ border-bottom:0; }
.price-card dt{ font-size:clamp(12.5px,3.4vw,15px); font-weight:900; color:var(--navy2); line-height:1.45; }
.price-card dd{ flex:none; display:flex; align-items:center; justify-content:flex-end;
  gap:8px; text-align:right; flex-wrap:wrap; max-width:52%; }
.yen{ font-size:clamp(17px,4.6vw,22px); font-weight:900; color:var(--ink); white-space:nowrap; }
.yen.free{ color:var(--red); }
.yen.sm{ font-size:clamp(13px,3.5vw,16px); color:var(--orange); }
.free-tag{ font-style:normal; background:var(--mint); color:#fff; font-size:clamp(9.5px,2.6vw,11px);
  font-weight:900; letter-spacing:.06em; padding:4px 9px; border-radius:6px; }
.price-card dd small{ flex-basis:100%; text-align:right; font-size:clamp(9.5px,2.6vw,11px);
  color:var(--sub); font-weight:700; line-height:1.4; }

/* --- FAQ --- */
.faq{ background:#F4F3EE; padding:60px 0 66px; }
.faq-list{ display:grid; gap:10px; max-width:760px; margin-inline:auto; }
.faq-list details{ background:#fff; border-radius:14px; box-shadow:0 5px 14px rgba(22,48,94,.09); overflow:hidden; }
.faq-list summary{ list-style:none; cursor:pointer; display:flex; align-items:flex-start; gap:11px;
  padding:16px 46px 16px 16px; position:relative; font-size:clamp(13px,3.5vw,15.5px);
  font-weight:900; color:var(--navy2); line-height:1.5; }
.faq-list summary::-webkit-details-marker{ display:none; }
.faq-list summary::before{ content:"Q"; flex:none; width:24px; height:24px; border-radius:50%;
  background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:900; }
.faq-list summary::after{ content:""; position:absolute; right:18px; top:50%; width:11px; height:11px;
  border-right:3px solid var(--navy); border-bottom:3px solid var(--navy);
  transform:translateY(-70%) rotate(45deg); transition:transform .25s ease; }
.faq-list details[open] summary::after{ transform:translateY(-30%) rotate(225deg); }
.faq-list details p{ padding:0 18px 18px 51px; font-size:clamp(12.5px,3.3vw,14px);
  font-weight:700; line-height:1.9; color:var(--ink2); }

/* ============================================================
   デザイン強化（タブ・装飾・アイコン）
   ============================================================ */

/* --- 左肩のセクションタブ --- */
.stage,.hoppe,.course,.price,.overview,.access,.onegai,.faq{ position:relative; }
.sec-tab{ position:absolute; top:18px; left:0; z-index:3;
  background:var(--efo); color:#fff; white-space:nowrap;
  font-size:clamp(10.5px,2.9vw,12.5px); font-weight:900; letter-spacing:.12em;
  padding:7px 20px 7px max(16px, calc(50vw - 530px + 18px));
  border-radius:0 999px 999px 0; box-shadow:0 4px 11px rgba(22,48,94,.22); }
.sec-tab::before{ content:""; display:inline-block; width:7px; height:7px; border-radius:50%;
  background:rgba(255,255,255,.85); margin-right:8px; vertical-align:1px; }
.tab-blue{ background:var(--tile-blue); } .tab-pink{ background:var(--hoppe); }
.tab-amber{ background:#D98A00; } .tab-green{ background:#1F7D4C; }
.tab-red{ background:var(--red); } .tab-navy{ background:var(--navy); }
.tab-mint{ background:var(--mint); } .tab-orange{ background:var(--efo); }
.tab-band{ background:var(--band-pink); }
.stage,.hoppe,.course,.price,.overview,.access,.faq{ padding-top:74px; }
.onegai{ padding-top:70px; }

/* --- 紙吹雪の装飾レイヤー --- */
/* z-index:-1 で「セクション背景の上・本文の下」に敷く。
   .wrap を position:relative にすると .sec-tab の基準がずれるので使わないこと。 */
.deco::after{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:.5;
  background-repeat:repeat; background-size:600px 600px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600' viewBox='0 0 600 600'%3E%3Cg%3E%3Crect x='44' y='70' width='12' height='17' rx='3' fill='%23E63946' transform='rotate(-20 50 78)'/%3E%3Ccircle cx='168' cy='38' r='7' fill='%23FFCE3D'/%3E%3Crect x='290' y='96' width='11' height='11' rx='2' fill='%232E9E63' transform='rotate(24 295 101)'/%3E%3Ccircle cx='430' cy='52' r='6' fill='%2358AEE0'/%3E%3Crect x='540' y='120' width='12' height='17' rx='3' fill='%23EF7D00' transform='rotate(16 546 128)'/%3E%3Cpath d='M96 204l8 14-16 0z' fill='%23E4007F'/%3E%3Ccircle cx='250' cy='250' r='6' fill='%23EF7D00'/%3E%3Crect x='380' y='215' width='11' height='16' rx='3' fill='%23FFCE3D' transform='rotate(-14 385 223)'/%3E%3Ccircle cx='520' cy='300' r='7' fill='%232E9E63'/%3E%3Crect x='60' y='360' width='11' height='11' rx='2' fill='%2358AEE0' transform='rotate(30 65 365)'/%3E%3Cpath d='M210 396l8 14-16 0z' fill='%23E63946'/%3E%3Ccircle cx='350' cy='430' r='6' fill='%23E4007F'/%3E%3Crect x='470' y='440' width='12' height='17' rx='3' fill='%2358AEE0' transform='rotate(-24 476 448)'/%3E%3Ccircle cx='120' cy='520' r='7' fill='%23FFCE3D'/%3E%3Crect x='280' y='540' width='11' height='16' rx='3' fill='%232E9E63' transform='rotate(18 285 548)'/%3E%3Cpath d='M560 516l8 14-16 0z' fill='%23EF7D00'/%3E%3C/g%3E%3C/svg%3E"); }

/* --- 見出しのジャンプ率とキラキラ --- */
.sec-head h2{ position:relative; display:inline-block; }
.sec-head h2 em{ font-style:normal; color:#E8500C; font-size:1.2em; }
.h-red em{ color:var(--red); }
.sec-head h2::before,.sec-head h2::after{ content:""; position:absolute; width:20px; height:20px;
  background-repeat:no-repeat; background-size:contain; opacity:.9;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1l2.4 7.2L21.6 10.6 14.4 13 12 20.2 9.6 13 2.4 10.6 9.6 8.2z' fill='%23FFCE3D'/%3E%3C/svg%3E"); }
.sec-head h2::before{ left:-26px; top:-6px; transform:rotate(-14deg); }
.sec-head h2::after{ right:-26px; bottom:2px; width:14px; height:14px; transform:rotate(12deg); }
@media (max-width:420px){ .sec-head h2::before{ left:-20px; width:15px; height:15px; }
  .sec-head h2::after{ right:-18px; width:11px; height:11px; } }

/* --- モデルコース --- */
.tl::before{ left:78px; }
.tl li::after{ display:none; }
.tl-t{ width:66px; text-align:center; padding-top:0; align-self:center;
  background:var(--mint); color:#fff; border-radius:999px; padding:5px 0;
  font-size:clamp(12.5px,3.4vw,14.5px); box-shadow:0 3px 8px rgba(46,158,99,.3); z-index:1; }
.tl-b{ margin-left:26px; border-left:5px solid var(--mint); border-radius:6px 14px 14px 6px; }
.tl li:nth-child(2) .tl-b,.tl li:nth-child(5) .tl-b{ border-left-color:var(--tile-blue); background:#F4F9FF; }
.tl li:nth-child(2) .tl-t,.tl li:nth-child(5) .tl-t{ background:var(--tile-blue); box-shadow:0 3px 8px rgba(0,96,176,.3); }
.tl li:nth-child(3) .tl-b,.tl li:nth-child(6) .tl-b{ border-left-color:var(--hoppe); background:#FFF5FA; }
.tl li:nth-child(3) .tl-t,.tl li:nth-child(6) .tl-t{ background:var(--hoppe); box-shadow:0 3px 8px rgba(228,0,127,.3); }
.tl li:nth-child(4) .tl-b{ border-left-color:var(--tile-green); background:#F5FBF0; }
.tl li:nth-child(4) .tl-t{ background:var(--tile-green); box-shadow:0 3px 8px rgba(79,160,32,.3); }
.tl li:nth-child(7) .tl-b{ border-left-color:var(--efo); background:#FFF8EF; }
.tl li:nth-child(7) .tl-t{ background:var(--efo); box-shadow:0 3px 8px rgba(239,125,0,.3); }

/* --- 料金 --- */
.price-card{ padding:0; overflow:hidden; }
.price-card::before{ content:"料金一覧"; display:block; background:var(--red); color:#fff;
  font-size:clamp(12.5px,3.4vw,15px); font-weight:900; letter-spacing:.14em;
  padding:12px 20px; font-family:"Mochiy Pop One","M PLUS Rounded 1c",sans-serif; }
.price-card dl{ padding:6px clamp(14px,4vw,26px) clamp(10px,3vw,18px); }
.price-card dt{ position:relative; padding-left:18px; font-size:clamp(11.5px,3.1vw,15px); }
.price-card dt::before{ content:""; position:absolute; left:0; top:.42em; width:9px; height:9px;
  border-radius:3px; background:var(--efo); }
.price-card dl div:nth-child(1) dt::before{ background:var(--red); }
.price-card dl div:nth-child(2) dt::before{ background:var(--tile-blue); }
.price-card dl div:nth-child(3) dt::before{ background:var(--hoppe); }
.price-card dl div:nth-child(4) dt::before{ background:#00908A; }
.price-card dl div:nth-child(5) dt::before{ background:var(--tile-green); }
.free-tag{ border:2.5px solid var(--mint); background:#fff; color:var(--mint);
  border-radius:8px; padding:3px 9px; transform:rotate(-5deg); letter-spacing:.08em;
  font-family:"Mochiy Pop One","M PLUS Rounded 1c",sans-serif; font-weight:400; }
.yen.free{ font-size:clamp(19px,5vw,25px); }

/* --- FAQ --- */
.faq-list details p{ display:flex; gap:11px; padding:0 18px 18px 16px; }
.faq-list details p::before{ content:"A"; flex:none; width:24px; height:24px; border-radius:50%;
  background:var(--efo); color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:900; }
.faq-list details[open] summary{ background:#FFF7EC; }

/* --- セクション境界のスカラップ --- */
.course::before,.faq::before{ content:""; position:absolute; top:-13px; left:0; right:0; height:14px;
  z-index:2; background-size:30px 14px; }
.course::before{ background:radial-gradient(circle at 11px 0,transparent 11px,#F1F9F3 11.5px); }
.faq::before{ background:radial-gradient(circle at 11px 0,transparent 11px,#F4F3EE 11.5px); }

/* ============================================================
   AI生成パーツの組み込み（2026-08-12）
   素材: LP_work\parts_in\ → LP\img\parts\
   ============================================================ */

/* --- 背景テクスチャを生成画像に差し替え --- */
.deco::after{ background-image:url("../img/parts/texture.png"); background-size:760px 760px; opacity:.85; }

/* --- フード内の続報リボン（前半の目次リボンとは別用途） --- */
.rb-head{ position:relative; display:block; max-width:340px; margin:0 auto 4px; }
.rb-head img{ width:100%; height:auto; display:block; }
.rb-head span{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:clamp(13px,3.6vw,16px); font-weight:900; padding-bottom:5px;
  text-shadow:0 2px 3px rgba(150,60,0,.35); }
.food-soon{ padding-top:10px; }

/* ============================================================
   第2弾パーツ（あしらい・ピクト）の組み込み
   ============================================================ */

/* --- 見出しのキラキラを生成素材に差し替え --- */
.sec-head h2::before,.sec-head h2::after{
  background-image:url("../img/parts/dc_sparkle.png"); width:30px; height:27px; opacity:1; }
.sec-head h2::before{ left:-34px; top:-10px; transform:rotate(-8deg); }
.sec-head h2::after{ right:-30px; bottom:0; width:19px; height:17px; transform:rotate(10deg) scaleX(-1); }
@media (max-width:420px){
  .sec-head h2::before{ left:-24px; top:-6px; width:21px; height:19px; }
  .sec-head h2::after{ right:-20px; width:14px; height:13px; } }

/* --- 見出しの下敷き（筆・波線） --- */
/* 素材は縦横比が大きいので、高さをpxで固定して横に伸ばす（文字への被り防止） */
.sec-head h2.h-red,.sec-head h2.h-navy,.sec-head h2.h-amber{
  background:url("../img/parts/dc_brush.png") no-repeat center bottom / 92% 15px; padding-bottom:20px; }
.sec-head h2.h-blue,.sec-head h2.h-mint,.sec-head h2.h-green{
  background:url("../img/parts/dc_wave.png") no-repeat center bottom / 84% 12px; padding-bottom:19px; }

/* --- タグラインを吹き出しに --- */
.tagline.bub{ display:inline-block; color:var(--ink2); font-weight:900;
  padding:18px 30px 30px; background-repeat:no-repeat; background-position:center top;
  background-size:100% 100%; margin-top:10px; }
/* padding は .tagline.bub と同じ詳細度で書かないと上書きできない */
.tagline.bub-el{ background-image:url("../img/parts/dc_bubble_el.png"); padding:18px 52px 42px; }
.tagline.bub-sq{ background-image:url("../img/parts/dc_bubble_sq.png"); padding:18px 34px 40px; }

/* --- アクセスのアイコン --- */
.acc-ic{ background:transparent !important; width:46px; height:46px; padding:2px; }
.acc-ic img{ width:100%; height:100%; object-fit:contain; }

/* --- ご来場のお願いのアイコン --- */
.ng-card h3::before{ display:none; }
.ng-card h3{ align-items:center; }
.ng-ic{ width:26px; height:26px; object-fit:contain; flex:none; }

/* ============================================================
   案A｜引き算リファクタ（2026-08-12）
   他社フェスLP調査の結論を反映：色数を絞り、装飾を削り、余白と写真を大きく。
   ★このブロックを丸ごと削除すれば、装飾版に戻る★
   ============================================================ */

/* --- 1. セクション背景を2種類に統一（クリーム／白の交互） --- */
.stage,.hoppe,.kids,.food,.course,.price,.overview,.access,.onegai,.faq{
  background-color:var(--paper); background-image:none; }
.stage,.kids,.course,.overview,.onegai{ background-color:#fff; }
.onegai::before{ background:radial-gradient(circle at 11px 0,transparent 11px,#fff 11.5px); }
.course::before,.faq::before{ display:none; }

/* --- 2. 装飾を削る（紙吹雪だけ薄く残す） --- */
.deco::after{ opacity:.32; }
.kids,.food,.overview,.access,.onegai{ position:relative; }
.sec-head h2::before,.sec-head h2::after{ display:none; }
.sec-head h2.h-red,.sec-head h2.h-navy,.sec-head h2.h-amber,
.sec-head h2.h-blue,.sec-head h2.h-mint,.sec-head h2.h-green{
  background:none; padding-bottom:0; }
.tagline.bub,.tagline.bub-el,.tagline.bub-sq{ background:none; padding:0; margin-top:8px; }
.rb-head{ display:block; max-width:none; }
.rb-head img{ display:none; }
.rb-head span{ position:static; display:block; color:var(--orange);
  font-size:clamp(14px,3.9vw,17px); text-shadow:none; padding:0; }

/* --- 3. 見出しとタブの色を統一 --- */
.sec-head h2,.h-blue,.h-pink,.h-blue2,.h-orange,.h-navy,.h-mint,.h-amber,.h-green,.h-red{
  color:var(--navy2); }
.sec-head h2 em{ color:var(--red); }
.sec-tab{ background:var(--efo); letter-spacing:.16em; }
.tagline,.t-coral{ color:var(--orange); }
/* キッズパーク・フードのチップもタブと同色に揃える */
.chip-blue2,.chip-orange,.chip-blue,.chip-pink,.chip-navy,.chip-mint{ background:var(--efo); }
/* --- 4. 余白を広げる --- */
.stage,.hoppe,.kids,.food,.course,.price,.overview,.access,.faq{
  padding-top:104px; padding-bottom:92px; }
.onegai{ padding-top:96px; padding-bottom:96px; }
.sec-head{ margin-bottom:44px; }
.sec-tab{ top:30px; }

/* --- 6. 写真を大きく --- */
.kids-visual,.food-visual{ width:min(100%,640px); }
.photo-main{ width:90%; border-width:8px; border-radius:22px; }
.food-visual .photo-main{ width:78%; }
.kids-visual .circ-a{ width:38%; } .kids-visual .circ-b{ width:31%; }
.food-visual .circ-a{ width:40%; } .food-visual .circ-b{ width:33%; }

/* --- 7. カード類の縁を落ち着かせる --- */
.os-list li{ box-shadow:0 4px 12px rgba(22,48,94,.07); }
.faq-list details,.ng-card,.tl-b{ box-shadow:0 4px 12px rgba(22,48,94,.07); }
.food-soon{ border-style:solid; border-width:2px; border-color:#EFE2CC; background:#fff; }

@media (min-width:760px){
  .stage,.hoppe,.kids,.food,.course,.price,.overview,.access,.faq{
    padding-top:128px; padding-bottom:116px; }
}

/* ============================================================
   flat モード(監修撮影用: ?flat=1) & アニメーション抑制
   ============================================================ */
html.flat *,html.flat *::before,html.flat *::after{ animation:none !important; transition:none !important; }
html.flat [data-rv],html.flat .rv-group>*{ opacity:1 !important; transform:none !important; }
html.flat .tilt-l,html.flat .tilt-r{ transform:rotate(0) !important; }
html.flat .free-badge{ transform:none !important; }
html.flat .aprow{ display:grid; grid-template-columns:1fr; justify-items:center; overflow:visible;
  margin:0; padding:0 0 8px; gap:18px; }
@media (min-width:760px){ html.flat .aprow{ grid-template-columns:repeat(3,auto); } }
html.flat .dots,html.flat .swipe-hint,html.flat .bar,html.flat .scroll-cue{ display:none !important; }
html.flat .map-scroller{ overflow:visible; }

/* ============================================================
   LP全体の最終仕上げ
   FVは完成版のため対象外。FV以降の見出し・余白・カード・写真を
   共通トークンで統一し、最後まで同じデザイン言語でつなぐ。
   ============================================================ */

main{
  --finish-radius-sm:10px;
  --finish-radius:15px;
  --finish-radius-lg:19px;
  --finish-border:#E2E6E8;
  --finish-shadow:0 8px 24px rgba(22,48,94,.07);
  --finish-navy:#17345E;
  --finish-text:#404750;
  --finish-sub:#68727C;
}

/* 共通見出し：カテゴリ、見出し、説明の3階層 */
.stage .sec-head,.hoppe .sec-head,.course .sec-head,.price .sec-head,
.overview .sec-head,.access .sec-head,.onegai .sec-head,.faq .sec-head{
  margin:0 auto 32px;
  text-align:center;
}
.stage .sec-tab,.hoppe .sec-tab,.course .sec-tab,.price .sec-tab,
.overview .sec-tab,.access .sec-tab,.onegai .sec-tab,.faq .sec-tab{
  position:static;
  display:inline-flex;
  align-items:center;
  width:max-content;
  min-height:28px;
  margin:0 auto 12px;
  padding:5px 13px;
  border-radius:999px;
  background:#FCE9D4;
  box-shadow:none;
  color:#A94B08;
  font-size:11px;
  font-weight:700;
  letter-spacing:.12em;
}
.stage .sec-tab::before,.hoppe .sec-tab::before,.course .sec-tab::before,
.price .sec-tab::before,.overview .sec-tab::before,.access .sec-tab::before,
.onegai .sec-tab::before,.faq .sec-tab::before{ display:none; }
.stage .sec-head h2,.hoppe .sec-head h2,.course .sec-head h2,.price .sec-head h2,
.overview .sec-head h2,.access .sec-head h2,.onegai .sec-head h2,.faq .sec-head h2{
  color:var(--finish-navy);
  font-size:clamp(27px,7vw,42px);
  font-weight:800;
  line-height:1.28;
  letter-spacing:.02em;
}
.stage .sec-lead,.hoppe .sec-lead,.course .sec-lead,.price .sec-lead{
  margin-top:9px;
  color:var(--finish-text);
  font-weight:500;
  line-height:1.7;
}
.sec-note,.mini-note,.img-note{ color:var(--finish-sub); font-weight:400; }

/* 導入：KVの余韻を保ったまま、体験ナビへ短くつなぐ */
.countdown{
  padding:18px 0 5px;
  background:linear-gradient(180deg,#FFF9EF 0%,#FFF9EF 72%,#FFFDF8 100%);
}
.cd-in{
  width:min(100% - 32px,680px);
  min-height:68px;
  padding:8px 18px;
}
.sunburst{ width:176px; height:176px; opacity:.42; }
.cd-label{ font-size:clamp(12px,3.2vw,15px); letter-spacing:.04em; }
.cd-num{ margin-top:3px; }
.benefit{
  padding:14px 0 24px;
  background:linear-gradient(180deg,#FFF9EF 0%,#FFFDF8 100%);
}
.bf-txt{ max-width:980px; }
.bf-h{ font-size:clamp(24px,6vw,36px); line-height:1.38; }
.bf-lead{ margin-top:9px; }
.bf-list{
  max-width:920px;
  margin:17px auto 0;
  border-block:1px solid #E7DDCE;
}
.bf-list li{
  min-height:46px;
  padding:8px 12px;
  border:0;
  font-size:12.5px;
}
.bf-list li:last-child{ border-bottom:0; }

/* 5つの体験：カード群ではなく、次の章へ進むビジュアル目次 */
.digest{
  padding:34px 0 70px;
  background:linear-gradient(180deg,#FFFDF8 0%,#FFFFFF 100%);
}
.digest>.sec-tab{ display:none; }
.band-title{ margin-bottom:26px; text-align:center; }
.band-title span{ font-size:clamp(27px,7vw,43px); }
.band-title span::after{ margin:13px auto 0; width:44px; height:4px; }
.digest-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 11px;
  border:0;
}
.dtile{
  height:288px;
  min-height:288px;
  padding:162px 14px 17px;
  gap:4px;
  overflow:hidden;
  border:1px solid var(--finish-border);
  border-radius:var(--finish-radius);
  background:#fff;
  box-shadow:0 7px 20px rgba(22,48,94,.06);
}
.t-stage,.t-kids,.t-food{ grid-column:auto; }
.t-food{ grid-column:1/-1; width:calc((100% - 11px)/2); justify-self:center; }
.dtile::before{
  display:none;
}
.t-stage::before,.t-kids::before,.t-food::before{ display:none; }
.dtile::after{
  content:"→";
  position:absolute;
  right:14px;
  top:auto;
  bottom:16px;
  color:#87949E;
  font-size:20px;
  font-weight:500;
  transform:none;
}
.dtile:hover{ transform:translateY(-2px); border-color:#CBD5DA; box-shadow:var(--finish-shadow); }
.dtile:active{ opacity:.72; }
.dtile-photo{
  inset:0 0 auto;
  width:100% !important;
  height:146px !important;
  border-radius:0;
  object-fit:cover;
  transform:none;
  filter:saturate(.94) contrast(.98);
}
.t-stage .dtile-photo{ object-position:center 46%; }
.t-greet .dtile-photo{
  object-fit:contain;
  object-position:center;
  background:#FFF0F6;
}
.dtile-copyright{
  position:absolute;
  z-index:2;
  top:150px;
  right:8px;
  width:min(82%,170px);
  height:auto;
  object-fit:contain;
}
.t-make .dtile-photo{ object-position:center 52%; }
.t-kids .dtile-photo{ object-position:center 48%; }
.t-food .dtile-photo{ object-position:center 54%; }
.dtile b{
  color:#B65310; font-size:11px; font-weight:800; letter-spacing:.12em; line-height:1.4;
}
.dtile>span{
  min-height:38px; color:var(--finish-navy); font-size:13px; font-weight:700; line-height:1.48;
}
.dtile .ap-digest-title{ white-space:nowrap; font-size:11px; letter-spacing:-.025em; }
.t-stage b,.t-kids b,.t-food b{ font-size:11px; }
.dtile-meta{ min-height:18px; margin-top:2px; padding-right:18px; color:#77818A; font-size:9.5px; line-height:1.45; font-weight:400; }
.dtile-tag{ width:max-content; min-height:25px; padding:5px 8px; }
.digest-note{
  margin-top:12px; color:var(--finish-sub); font-size:10.5px; font-weight:400; text-align:right;
}

/* おすすめ：主要コンテンツを遮らない、短い確認リスト */
.osusume{ padding:44px 0 50px; background:#F4F8FA; }
.osusume .sec-head{ margin-bottom:18px; }
.os-list{ gap:0 18px; }
.os-list li{
  min-height:58px;
  padding:11px 4px;
  border-bottom:1px solid #DDE5E9;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

/* 目次から公式ステージへ空気感を連続させる（告知カード内部は対象外） */
.stage{
  padding:68px 0 76px;
  background:linear-gradient(180deg,#F3F9FC 0%,#FFFFFF 38%);
  border-top:1px solid #E3EDF3;
}
.stage .sec-head{ margin-bottom:30px; }
.stage .sec-lead{ font-weight:700; }
.stage .sec-note{ font-weight:400; }
.stage .aprow{ gap:clamp(16px,2vw,24px); }
.stage .apcard{ box-shadow:0 7px 22px rgba(22,48,94,.08); }

/* 版権告知カードの中身は変更せず、セクション外周だけを整える */
.hoppe{
  padding:70px 0 56px;
  background:linear-gradient(180deg,#FFF8FB 0%,#FFFFFF 100%);
  background-image:none;
}
.hoppe .sec-head{ margin-bottom:30px; }
.hoppe-grid{ gap:32px; }
.hoppe-grid>.apcard{ border-radius:var(--finish-radius); box-shadow:0 7px 22px rgba(45,49,65,.07); }
.hoppe-kind{
  display:block; width:max-content; margin:0 auto 12px; padding:6px 14px;
  border-radius:999px; background:#FFF0F7; color:#A92B6D;
  font-size:12px; font-weight:800; letter-spacing:.08em;
}

/* つくる：公式ビジュアルと開催情報を分けた編集レイアウト */
.workshop{
  padding:64px 0 80px;
  background:linear-gradient(180deg,#FFF9F4 0%,#FFFDF9 100%);
}
.workshop-in{
  display:grid; grid-template-columns:minmax(0,1fr); gap:24px; align-items:start;
}
.workshop-heading{ order:0; text-align:left; }
.workshop-heading .sec-chip{
  display:inline-block; min-height:27px; margin-bottom:10px; padding:5px 13px;
  border-radius:999px; background:#FCE8F2; color:#A92B6D;
  font-size:11px; font-weight:700; letter-spacing:.12em;
}
.workshop-heading h2{
  color:var(--finish-navy); font-size:clamp(27px,7vw,42px); font-weight:800;
  line-height:1.28; letter-spacing:.01em;
}
.workshop-lead{
  margin-top:12px; color:#B65379; font-size:clamp(16px,4.3vw,20px);
  font-weight:700; line-height:1.75;
}
.workshop-visual{ order:1; width:100%; }
.workshop-showcase{
  display:flex; flex-direction:column; align-items:center; padding:16px clamp(16px,4vw,30px);
  border-radius:var(--finish-radius-lg); background:linear-gradient(145deg,#FFF7FB 0%,#FFFDF9 100%);
}
.workshop .ws-art{
  display:block; width:100%; height:auto; max-height:none; object-fit:contain;
  border-radius:var(--finish-radius-sm); box-shadow:0 8px 22px rgba(169,43,109,.08);
}
.workshop .ap-cline{ width:100%; margin-top:8px; padding-right:2px; }
.workshop .ap-cline img{ height:.9em; max-width:100%; }
.workshop-details{ order:2; padding:2px 4px 0; }
.workshop-facts{ display:grid; gap:7px; }
.workshop-facts span{
  display:grid; grid-template-columns:68px 1fr; align-items:baseline; gap:8px;
  padding:8px 10px; border-bottom:1px solid #F0DFE7; color:var(--finish-text);
  font-size:12px; line-height:1.55;
}
.workshop-facts b{ color:#A92B6D; font-weight:800; }
.workshop-body{ margin-top:18px; color:var(--finish-text); font-size:14px; font-weight:400; line-height:1.9; }
.workshop-note{ margin-top:12px; color:var(--finish-sub); font-size:10.5px; line-height:1.6; }

/* キッズ／フード：丸抜きコラージュを廃止し、大写真＋補助写真に統一 */
.kids,.food{ padding:72px 0 80px; }
.kids{ background:linear-gradient(180deg,#EEF8FC 0%,#E8F4F9 100%); }
.food{ background:linear-gradient(180deg,#FFF9EF 0%,#FFF4E5 100%); }
.kids-in,.food-in{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
  align-items:start;
}
.kids-txt,.food-txt{
  order:0;
  max-width:620px;
  text-align:left;
}
.kids-txt .sec-chip,.food-txt .sec-chip{
  min-height:27px; margin-bottom:10px; padding:5px 13px; border-radius:999px;
  background:#FCE9D4; color:#A94B08; font-size:11px; font-weight:700; letter-spacing:.12em;
}
.kids-txt h2,.food-txt h2{
  color:var(--finish-navy);
  font-size:clamp(28px,7.4vw,42px);
  font-weight:800;
  line-height:1.25;
}
.food-txt h2{
  font-size:clamp(25px,6.5vw,40px);
  overflow-wrap:anywhere;
}
.tagline.bub,.tagline.bub-el,.tagline.bub-sq{
  margin-top:8px;
  color:#B65310;
  font-size:clamp(17px,4.5vw,22px);
}
.kids-txt .tag,.food-txt .tag{ margin:12px 0 11px; }
.body-txt{ color:var(--finish-text); font-weight:400; line-height:1.9; }
.kids-visual,.food-visual{
  order:1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:auto auto;
  gap:10px;
  width:100%;
  max-width:720px;
  padding:0;
}
.kids-visual .photo-main,.food-visual .photo-main{
  grid-column:1/-1;
  grid-row:1;
  width:100%;
  height:100%;
  min-height:250px;
  aspect-ratio:4/3;
  margin:0;
  border:0;
  border-radius:var(--finish-radius-lg);
  box-shadow:none;
  transform:none;
}
.kids-visual .photo-main img,.food-visual .photo-main img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.kids-visual .photo-main img{ object-position:68% center; }
.kids-visual .circ-a img{ object-position:64% center; }
.kids-visual .circ-b img{ object-position:center; }
.kids-visual .circ,.food-visual .circ{
  position:relative;
  inset:auto;
  width:100%;
  height:100%;
  min-height:126px;
  aspect-ratio:4/3;
  border:0;
  border-radius:var(--finish-radius-sm);
  box-shadow:none;
}
.kids-visual .circ-a,.food-visual .circ-a{ grid-column:1; grid-row:2; }
.kids-visual .circ-b,.food-visual .circ-b{ grid-column:2; grid-row:2; }
.kids-visual .circ img,.food-visual .circ img{ object-fit:cover; }
.kids-visual .photo-support{
  aspect-ratio:4/3; min-height:0; height:auto; overflow:hidden; background:#DDE9EE;
}
.kids-visual .photo-support img{ width:100%; height:100%; object-fit:cover; image-rendering:auto; }
.kids-visual .balloon{ display:none; }
.food-visual{
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:auto auto;
}
.food-visual .photo-main{ grid-row:1; min-height:260px; }
.food-visual .circ-a,.food-visual .circ-b{ min-height:126px; }
.food-soon{
  margin-top:20px;
  padding:16px 0 0;
  border:0;
  border-top:1px solid #E5D6C2;
  border-radius:0;
  background:transparent;
  text-align:left;
}
.food-soon .btn{ margin-left:0; }
.img-note{ margin-top:10px; text-align:left; }

/* モデルコース〜FAQ：情報UIを軽く、読みやすく統一 */
.course,.price,.overview,.access,.onegai,.faq{ padding:70px 0 78px; }
.course{ background:#F6FAF7; }
.tl{ max-width:680px; }
.tl::before{ left:77px; width:2px; background:#B9D8C6; }
.tl li{ padding:5px 0; }
.tl-t{
  width:66px; padding:6px 0; background:#347B58; box-shadow:none;
  font-weight:800;
}
.tl-b{
  min-height:46px; margin-left:23px; padding:10px 14px;
  border:1px solid #DFE8E2; border-left:4px solid #5C9876;
  border-radius:8px var(--finish-radius) var(--finish-radius) 8px;
  background:#fff; box-shadow:none; color:var(--finish-text); font-weight:500;
}
.tl li:nth-child(n) .tl-t{ background:#347B58; box-shadow:none; }
.tl li:nth-child(n) .tl-b{ background:#fff; border-left-color:#5C9876; box-shadow:none; }
.course .sec-head h2 em{ color:#B65310; font-size:1em; }

.price{ background:#FFF9EF; background-image:none; }
.price-card{
  max-width:780px; border:1px solid #E8DFD0; border-radius:var(--finish-radius);
  box-shadow:var(--finish-shadow);
}
.price-card::before{
  padding:11px 20px; background:#B93A3F; font-size:13px; font-weight:700;
}
.price-card dl{ padding:7px clamp(15px,4vw,28px) 14px; }
.price-card dl div{ padding:13px 3px; border-bottom:1px solid #EEE7DB; }
.price-card dt{ color:var(--finish-navy); font-weight:600; }
.price-card dt::before{ width:7px; height:7px; border-radius:50%; }
.price-card .yen{ font-weight:800; }
.free-tag{ transform:none; border-width:1px; border-radius:6px; font-family:inherit; font-weight:700; }

.overview{ background:#fff; }
.ov-card{
  max-width:880px; margin-inline:auto; border:1px solid var(--finish-border);
  border-radius:var(--finish-radius); box-shadow:var(--finish-shadow);
}
.ov-card dl div{ padding-block:13px; border-bottom:1px solid #E9ECEE; }
.ov-card dt{ color:var(--finish-navy); font-weight:700; }
.ov-card dd{ color:var(--finish-text); font-weight:400; }

.access{ background:#F7F5F0; }
.map-scroller{
  max-width:1000px; margin-inline:auto; overflow:hidden; border:1px solid #D9E1E5;
  border-radius:var(--finish-radius); box-shadow:var(--finish-shadow);
}
.map-scroller .map-svg{ display:none; }
.map-embed{ display:block; width:100%; height:clamp(340px,52vw,520px); border:0; }
.acc-rows{ max-width:900px; margin-inline:auto; gap:10px; }
.acc-row{
  width:100%; height:126px; min-height:126px; padding:14px 16px; gap:14px;
  border:1px solid #E1E5E7; border-radius:var(--finish-radius-sm);
  background:#fff; box-shadow:none; justify-self:stretch;
}
.acc-row .acc-ic{ flex:0 0 46px; margin:0; }
.acc-row p{ flex:1; margin:0; color:var(--finish-text); font-weight:500; line-height:1.65; }
.acc-addr{ color:var(--finish-sub); font-weight:400; }

.onegai{ background:#fff; }
.onegai-grid{ gap:14px; max-width:900px; margin-inline:auto; }
.ng-card{
  border:1px solid #DDE5E1; border-radius:var(--finish-radius);
  background:#FBFDFC; box-shadow:none;
}
.ng-card h3{ color:var(--finish-navy); font-weight:700; }
.ng-card p{ color:var(--finish-text); font-weight:400; }

.faq{ background:#F6F4EF; }
.faq-list{ max-width:820px; gap:9px; }
.faq-list details{
  border:1px solid #E0E3E4; border-radius:var(--finish-radius-sm); box-shadow:none;
}
.faq-list summary{
  min-height:58px; align-items:center; padding:14px 48px 14px 15px;
  color:var(--finish-navy); font-weight:700;
}
.faq-list details p{ color:var(--finish-text); font-weight:400; }
.faq-list details[open] summary{ background:#FFF9EF; }


.foot{ padding-top:54px; }
.foot-in{ gap:22px; }
.foot-contact{ line-height:1.75; }
.foot .tel{ display:inline-block; margin-top:6px; }

/* 版権カード内のコピーライト：公式画像は加工せず表示寸法のみ調整 */
.stage .ap-cline{ width:20em; max-width:100%; overflow:hidden; }
.stage .ap-cline img{ display:block; width:auto; height:1.12em; max-width:100%; margin-left:auto; object-fit:contain; }
.foot-c .chip:first-child{ max-width:100%; }
.foot-c .chip:first-child img{ width:auto; height:15px; max-width:min(100%,260px); object-fit:contain; }

@media (min-width:600px){
  .bf-list li{ border-right:1px solid #E2D5C0; }
  .bf-list li:last-child{ border-right:0; }
}

@media (min-width:760px){
  .countdown{ padding:20px 0 6px; }
  .cd-in{ min-height:72px; }
  .benefit{ padding:16px 0 28px; }
  .digest{ padding:62px 0 86px; }
  .digest .wrap{ width:min(1160px,calc(100% - 48px)); }
  .digest-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
    grid-template-rows:350px;
    gap:14px;
  }
  .dtile,.t-stage,.t-kids,.t-food{
    grid-area:auto;
    width:auto;
    height:350px;
    min-height:350px;
    padding:214px 18px 21px;
    justify-content:flex-start;
    border:1px solid var(--finish-border);
  }
  .t-food{ justify-self:stretch; }
  .dtile::before,.t-stage::before,.t-greet::before,.t-make::before,.t-kids::before,.t-food::before{ display:none; }
  .dtile::after{ right:18px; top:auto; bottom:18px; transform:none; }
  .dtile-photo{ height:196px !important; }
  .dtile-copyright{ top:200px; right:10px; width:min(88%,180px); }
  .dtile b,.t-stage b,.t-kids b,.t-food b{ font-size:11px; }
  .dtile>span{ min-height:42px; font-size:14px; line-height:1.5; }
  .dtile .ap-digest-title{ font-size:11.5px; }
  .dtile-meta{ font-size:10px; }
  .stage,.hoppe,.workshop,.course,.price,.overview,.access,.onegai,.faq{ padding:88px 0 96px; }
  .hoppe{ padding-bottom:64px; }
  .workshop{ padding-top:72px; }
  .stage .sec-head,.hoppe .sec-head,.course .sec-head,.price .sec-head,
  .overview .sec-head,.access .sec-head,.onegai .sec-head,.faq .sec-head{ margin-bottom:38px; }
  .hoppe-grid{
    grid-template-columns:minmax(0,1fr);
    align-items:start;
    justify-items:center;
    gap:0;
  }
  .hoppe-grid>.bgGreet{
    width:min(100%,350px);
    justify-self:center;
  }
  .workshop-in{
    grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr);
    grid-template-rows:auto 1fr;
    column-gap:clamp(44px,6vw,82px); row-gap:22px; align-items:start;
  }
  .workshop-heading{ grid-column:1; grid-row:1; }
  .workshop-visual{ grid-column:2; grid-row:1/3; align-self:center; }
  .workshop-details{ grid-column:1; grid-row:2; width:100%; padding:0; }
  .workshop-showcase{ padding:22px clamp(34px,5vw,58px); }
  .workshop-facts span{ grid-template-columns:76px 1fr; padding:9px 12px; font-size:12.5px; }
  .kids,.food{ padding:88px 0 96px; }
  .kids-in,.food-in{
    grid-template-columns:minmax(0,1.22fr) minmax(320px,.78fr);
    gap:clamp(44px,6vw,82px);
    align-items:center;
  }
  .kids-visual,.food-visual{ grid-column:1; grid-row:1; }
  .kids-txt,.food-txt{ grid-column:2; grid-row:1; }
  .food-in{ grid-template-columns:minmax(320px,.78fr) minmax(0,1.22fr); }
  .food-txt{ grid-column:1; }
  .food-visual{ grid-column:2; }
  .kids-visual,.food-visual{
    grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
    grid-template-rows:1fr 1fr;
  }
  .kids-visual .photo-main,.food-visual .photo-main{
    grid-column:1;
    grid-row:1/3;
    min-height:390px;
    aspect-ratio:auto;
  }
  .kids-visual .circ-a,.food-visual .circ-a{ grid-column:2; grid-row:1; }
  .kids-visual .circ-b,.food-visual .circ-b{ grid-column:2; grid-row:2; }
  .kids-visual .circ,.food-visual .circ{
    min-height:190px;
    aspect-ratio:auto;
  }
  .kids-visual{ grid-template-rows:auto auto; }
  .kids-visual .photo-support{ min-height:0; height:auto; aspect-ratio:4/3; align-self:center; }
  .acc-rows{ grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; }
  .acc-row{ min-height:132px; height:132px; padding:16px; }
  .acc-rows .acc-addr{ grid-column:1/-1; }
  .aprow{ max-width:1120px; margin-inline:auto; }
  .hoppe-grid{ max-width:1040px; margin-inline:auto; }
  .workshop .wrap{ width:min(1120px,calc(100% - 48px)); }
  .course .wrap,.price .wrap,.overview .wrap,.access .wrap,.onegai .wrap,.faq .wrap{
    width:min(1120px,calc(100% - 48px));
  }
  .map-svg{ width:100%; }
  .foot-in{ max-width:900px; }
}
html.flat .map-svg{ min-width:0; }
/* 監修撮影時はFAQをすべて開いた状態で写す */
html.flat .faq-list details p{ display:flex !important; }
html.flat .faq-list details::details-content{ content-visibility:visible !important; }
html.flat .faq-list summary::after{ display:none; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none !important; transition:none !important; }
  [data-rv],.rv-group>*{ opacity:1 !important; transform:none !important; }
}
