/* Cascais Routes — Phase 3c-4 Kids detail pages.
 * Scoped body.cr-kids. Accent rides the Phase 2 --element-* token rebind (.tpl-kids:
 * action #b45309 · deep #7c2d12 · surface #fff7ed — set via CSV in element-family.php).
 * Hooks = _element_id values injected by docs/phase3c4-kids/scripts/build-kids.py.
 * Bokun = preserved EMBED buttons (.bokunButton); restyled here on the rendered output
 * (no byte change to _elementor_data).
 */
body.cr-kids {
  --amber: var(--element-action);   /* #b45309 */
  --deep:  var(--element-deep);     /* #7c2d12 */
  --cream: var(--element-surface);  /* #fff7ed */
  --yellow:#ffde01;
  --hdr: 80px;                      /* global header is static, 80px desktop + mobile */
  --pad: 1.5rem; --maxw: 1180px;
  --shadow: 0 18px 50px -22px rgba(60,30,10,.45);
  --shadow-sm: 0 8px 24px -14px rgba(60,30,10,.4);
  background: var(--white); color: var(--ink); font-family: var(--font-body);
}
body.cr-kids .elementor-section, body.cr-kids .e-con { --spacing: 0; }
body.cr-kids .elementor-widget-html, body.cr-kids .elementor-widget-image { width: 100%; }
body.cr-kids .elementor-widget:not(:last-child) { margin-block-end: 0; }
body.cr-kids h1, body.cr-kids h2, body.cr-kids h3 { margin: 0; font-family: var(--font-heading); font-weight: 800; text-transform: uppercase; letter-spacing: -.01em; line-height: 1.02; text-wrap: balance; }

/* ── shared bits ── */
body.cr-kids .eyebrow { display: inline-flex; align-items: center; gap: .55rem; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--amber); margin-bottom: .7rem; }
body.cr-kids .eyebrow::before { content: ''; width: 30px; height: 2px; background: var(--amber); border-radius: 1px; }
body.cr-kids .h2 { font-size: clamp(1.9rem, 3.4vw, 2.7rem); color: var(--deep); }
body.cr-kids .h2--xl { font-size: clamp(2.2rem, 4.4vw, 3.4rem); }
body.cr-kids .lead { font-size: 1.06rem; color: var(--ink-soft); line-height: 1.7; max-width: 60ch; margin-top: 1.1rem; }

/* ── buttons ── */
body.cr-kids .btn { display: inline-flex; align-items: center; gap: .55rem; font-family: var(--font-heading); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: .92rem; border-radius: 999px; padding: .92rem 1.8rem; text-decoration: none; border: 2px solid transparent; cursor: pointer; width: fit-content; transition: transform .25s cubic-bezier(.22,1,.36,1), background .25s, color .25s, box-shadow .25s; }
body.cr-kids .btn--yellow { background: var(--yellow); color: var(--ink); }
body.cr-kids .btn--yellow:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -10px rgba(0,0,0,.3); }
body.cr-kids .btn--amber { background: var(--amber); color: #fff; }
body.cr-kids .btn--amber:hover { background: var(--deep); transform: translateY(-2px); }
body.cr-kids .btn--ghost { border-color: rgba(255,255,255,.55); color: #fff; }
body.cr-kids .btn--ghost:hover { background: #fff; color: var(--ink); }

/* ── Bokun embed button (rendered <button class="bokunButton">) → brand pill, bytes untouched ── */
body.cr-kids .bokunButton, body.cr-kids [id^="bokun_"] {
  background: var(--amber) !important; color: #fff !important; border: 0 !important;
  border-radius: 999px !important; box-shadow: none !important; cursor: pointer;
  font-family: var(--font-heading) !important; font-weight: 700 !important; font-size: .92rem !important;
  text-transform: uppercase !important; letter-spacing: .05em !important; padding: .9rem 1.7rem !important;
  transition: transform .25s, background .25s !important; }
body.cr-kids .bokunButton:hover, body.cr-kids [id^="bokun_"]:hover { background: var(--deep) !important; transform: translateY(-2px); }
/* some relocated embeds carry a border/pill on their widget container (client styling) → strip it, keep only the button */
body.cr-kids .elementor-widget-html > .elementor-widget-container:has(.bokunButton) { border: 0 !important; border-radius: 0 !important; padding: 0 !important; background: transparent !important; }

/* ── HERO ── */
body.cr-kids #cr-hero-stage {
  /* full viewport: header is a fixed overlay (not in flow) and hero content is bottom-anchored
     (justify-content:flex-end), so no header-height subtraction needed. dvh tracks the live mobile
     viewport so the hero fills the screen when the toolbar retracts (svh would leave it ~15% short);
     vh is the fallback for engines without dvh. */
  position: relative; min-height: 100vh; min-height: 100dvh;
  display: flex; flex-direction: column; justify-content: flex-end; color: #fff; overflow: hidden;
  padding: 0 max(var(--pad), calc((100% - var(--maxw)) / 2)) clamp(2.5rem, 5vw, 4.5rem) !important;
  background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important; }
body.cr-kids #cr-hero-stage::after { content: ''; position: absolute; inset: 0; z-index: 0; background: linear-gradient(to top, rgba(50,22,8,.86) 0%, rgba(50,22,8,.34) 52%, rgba(50,22,8,.12) 100%); }
body.cr-kids #cr-hero-inner { position: relative; z-index: 2; width: 100%; max-width: var(--maxw); display: flex; flex-direction: column; }
body.cr-kids #cr-hero-stage .eyebrow { color: var(--yellow); }
body.cr-kids #cr-hero-stage .eyebrow::before { background: var(--yellow); }
body.cr-kids .hero__h1 { font-size: clamp(2.6rem, 6vw, 5rem); color: #fff; max-width: 16ch; margin-bottom: 1rem; }
body.cr-kids .hero__sub { font-size: 1.12rem; color: rgba(255,255,255,.92); max-width: 42ch; margin-bottom: 1.6rem; }
body.cr-kids .hero__chips { display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1.9rem; }
body.cr-kids .hero__chip { display: inline-flex; align-items: center; gap: .45rem; background: rgba(255,255,255,.14); backdrop-filter: blur(4px); border: 1px solid rgba(255,255,255,.28); color: #fff; border-radius: 999px; padding: .5rem 1rem; font-size: .85rem; font-weight: 600; }
body.cr-kids #cr-hero-cta { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 1rem; }
body.cr-kids #cr-hero-cta .elementor-widget-html { width: auto; }
body.cr-kids #cr-hero-cta .bokunButton, body.cr-kids #cr-hero-cta [id^="bokun_"] { background: var(--yellow) !important; color: var(--ink) !important; }
body.cr-kids #cr-hero-cta .bokunButton:hover, body.cr-kids #cr-hero-cta [id^="bokun_"]:hover { background: #fff !important; }

/* ── INTRO + activity tags ── */
body.cr-kids #cr-intro { background: var(--cream); padding: clamp(3rem,6vw,5.5rem) max(var(--pad), calc((100% - var(--maxw)) / 2)); }
body.cr-kids .intro__grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2rem,4vw,4rem); align-items: start; }
body.cr-kids .tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.6rem; }
body.cr-kids .tag { background: var(--white); border: 1px solid var(--border); color: var(--deep); border-radius: 999px; padding: .45rem .9rem; font-size: .82rem; font-weight: 600; }
body.cr-kids .tag--star { background: var(--yellow); border-color: var(--yellow); color: var(--ink); }
body.cr-kids .sched { background: var(--white); border: 1px solid var(--border); border-radius: 18px; padding: 1.6rem 1.7rem; box-shadow: var(--shadow-sm); }
body.cr-kids .sched h3 { font-size: 1.15rem; color: var(--deep); margin-bottom: .9rem; }
body.cr-kids .sched__row { display: flex; align-items: flex-start; gap: .7rem; padding: .55rem 0; border-bottom: 1px dashed var(--border); font-size: .92rem; color: var(--ink-soft); line-height: 1.5; }
body.cr-kids .sched__row:last-child { border-bottom: 0; }
body.cr-kids .sched__row b { color: var(--ink); font-weight: 700; }
body.cr-kids .sched__row svg { flex: none; width: 20px; height: 20px; color: var(--amber); margin-top: .1rem; }

/* ── AGE TIERS ── */
body.cr-kids #cr-ages { background: var(--white); padding: clamp(3rem,6vw,5.5rem) max(var(--pad), calc((100% - var(--maxw)) / 2)); }
body.cr-kids #cr-ages-head { text-align: center; max-width: 640px; margin: 0 auto 2.6rem; }
body.cr-kids #cr-ages-head .eyebrow { justify-content: center; }
body.cr-kids #cr-ages-head .lead { margin-inline: auto; }
body.cr-kids #cr-ages-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; }
body.cr-kids [id^="cr-age-"] { position: relative; background: var(--white); border: 1px solid var(--border); border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
body.cr-kids [id^="cr-age-"]:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
body.cr-kids [id^="cr-age-media-"] { position: relative; }
body.cr-kids [id^="cr-age-media-"] .elementor-widget-html { position: static; }  /* so the badge anchors to the media wrapper, not its own widget box */
body.cr-kids [id^="cr-age-"] .elementor-widget-image, body.cr-kids [id^="cr-age-"] .elementor-widget-image figure { margin: 0; }
body.cr-kids [id^="cr-age-"] .elementor-widget-image img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
body.cr-kids .age__badge { position: absolute; top: 14px; left: 14px; z-index: 2; background: var(--yellow); color: var(--ink); font-family: var(--font-heading); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: .78rem; padding: .35rem .8rem; border-radius: 999px; }
body.cr-kids .age__body { padding: 1.5rem 1.5rem .3rem; }
body.cr-kids .age__name { font-size: 1.5rem; color: var(--deep); }
body.cr-kids .age__years { font-family: var(--font-heading); font-weight: 600; color: var(--amber); text-transform: uppercase; letter-spacing: .05em; font-size: .9rem; margin: .1rem 0 .7rem; }
body.cr-kids .age__txt { font-size: .92rem; color: var(--ink-soft); line-height: 1.6; }
body.cr-kids [id^="cr-age-"] .elementor-widget-html:has(.bokunButton) { margin-top: auto; padding: 1.2rem 1.5rem 1.6rem; }
body.cr-kids [id^="cr-age-"] .bokunButton, body.cr-kids [id^="cr-age-"] [id^="bokun_"] { width: 100% !important; display: block !important; text-align: center; }

/* ── INCLUDED ── */
body.cr-kids #cr-included { background: var(--cream); padding: clamp(3rem,6vw,5.5rem) max(var(--pad), calc((100% - var(--maxw)) / 2)); }
body.cr-kids .incl__head { text-align: center; max-width: 600px; margin: 0 auto 2.4rem; }
body.cr-kids .incl__head .eyebrow { justify-content: center; }
body.cr-kids .incl__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
body.cr-kids .incl__card { background: var(--white); border: 1px solid var(--border); border-radius: 18px; padding: 1.8rem 1.6rem; text-align: center; }
body.cr-kids .incl__ic { width: 64px; height: 64px; margin: 0 auto .9rem; border-radius: 16px; background: var(--cream); display: flex; align-items: center; justify-content: center; color: var(--amber); }
body.cr-kids .incl__ic svg { width: 30px; height: 30px; }
body.cr-kids .incl__card h3 { font-size: 1.15rem; color: var(--deep); }
body.cr-kids .incl__card p { font-size: .9rem; color: var(--ink-soft); margin-top: .4rem; }
body.cr-kids .incl__note { display: flex; align-items: center; justify-content: center; gap: .5rem; margin-top: 1.8rem; font-weight: 600; color: var(--deep); }
body.cr-kids .incl__note svg { width: 20px; height: 20px; color: var(--amber); flex: none; }

/* ── CAMPING (dark band) ── */
body.cr-kids #cr-camp-night { background: var(--deep); color: #fff; padding: clamp(3rem,6vw,5.5rem) max(var(--pad), calc((100% - var(--maxw)) / 2)); }
body.cr-kids #cr-camp-inner { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem,4vw,3.5rem); align-items: center; }
body.cr-kids #cr-camp-night .eyebrow { color: var(--yellow); }
body.cr-kids #cr-camp-night .eyebrow::before { background: var(--yellow); }
body.cr-kids #cr-camp-night .h2 { color: #fff; }
body.cr-kids .camp__lead { color: rgba(255,255,255,.84); margin-top: 1.1rem; line-height: 1.7; }
body.cr-kids #cr-camp-night .btn { margin-top: 1.7rem; }
/* photo cluster: bottom photos deliberately overhang the dark band onto the lighter
   section below (z-index lifts them above the next section, which would else cover them) */
body.cr-kids #cr-camp-photos { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 1fr; gap: .8rem;
  height: clamp(400px, 40vw, 480px); position: relative; z-index: 2;
  margin-bottom: clamp(-160px, -11vw, -110px); }
body.cr-kids #cr-camp-photos .elementor-widget-image { height: 100%; min-height: 0; }
body.cr-kids #cr-camp-photos .elementor-widget-image:first-child { grid-row: span 2; }
body.cr-kids #cr-camp-photos .elementor-widget-image > .elementor-widget-container { height: 100%; }
body.cr-kids #cr-camp-photos .elementor-widget-image figure { margin: 0; height: 100%; }
body.cr-kids #cr-camp-photos img { width: 100%; height: 100%; object-fit: cover; border-radius: 14px; display: block; }

/* ── TESTIMONIAL ── */
body.cr-kids #cr-story { background: var(--white); padding: clamp(3rem,6vw,5.5rem) max(var(--pad), calc((100% - var(--maxw)) / 2)); }
body.cr-kids .story__card { max-width: 880px; margin: 0 auto; background: var(--cream); border: 1px solid var(--border); border-radius: 24px; padding: clamp(2rem,4vw,3.2rem); position: relative; }
body.cr-kids .story__q { position: absolute; top: -.1em; left: .25em; font-family: var(--font-heading); font-size: 7rem; color: var(--yellow); line-height: 1; pointer-events: none; }
body.cr-kids .story__stars { color: #f59e0b; font-size: 1rem; margin-bottom: 1rem; position: relative; }
body.cr-kids .story__text { position: relative; font-size: clamp(1.1rem,1.7vw,1.35rem); line-height: 1.6; color: var(--ink); font-weight: 500; }
body.cr-kids .story__by { margin-top: 1.4rem; font-weight: 700; color: var(--deep); }
body.cr-kids .story__by span { display: block; font-weight: 500; font-size: .85rem; color: var(--ink-soft); margin-top: .15rem; }

/* ── ROUTES CLUB ── */
body.cr-kids #cr-club { position: relative; overflow: hidden; color: #fff; padding: clamp(3rem,6vw,5rem) max(var(--pad), calc((100% - var(--maxw)) / 2)) !important;
  background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important; }
body.cr-kids #cr-club::after { content: ''; position: absolute; inset: 0; z-index: 0; background: linear-gradient(110deg, rgba(50,22,8,.92) 30%, rgba(50,22,8,.6) 100%); }
body.cr-kids .club__inner { position: relative; z-index: 2; max-width: 620px; }
body.cr-kids #cr-club .eyebrow { color: var(--yellow); }
body.cr-kids #cr-club .eyebrow::before { background: var(--yellow); }
body.cr-kids #cr-club .h2 { color: #fff; }
body.cr-kids #cr-club p { color: rgba(255,255,255,.88); margin-top: 1rem; }
body.cr-kids #cr-club .btn { margin-top: 1.7rem; }

/* ── INTRO variant with side image (after-school) ── */
/* media is the 2nd column (the weekly calendar). It was the narrower .9fr → the infographic
   rendered ~473px wide (native 800) and was hard to read; widen the media column on desktop so the
   calendar renders ~640px (still ≤ native = sharp). */
body.cr-kids #cr-intro-row { display: grid; grid-template-columns: 1fr 1.35fr; gap: clamp(2rem,4vw,4rem); align-items: center; }
/* infographic-friendly: show the whole image (e.g. after-school weekly calendar), no crop */
body.cr-kids #cr-intro-media { border-radius: 18px; overflow: hidden; box-shadow: var(--shadow); }
body.cr-kids #cr-intro-media .elementor-widget-image, body.cr-kids #cr-intro-media figure { margin: 0; }
body.cr-kids #cr-intro-media img { width: 100%; height: auto; display: block; }

/* ── WEEKEND SCHEDULE (trainings) ── */
body.cr-kids #cr-schedule { background: var(--white); padding: clamp(2.5rem,5vw,4.5rem) max(var(--pad), calc((100% - var(--maxw)) / 2)); }
body.cr-kids .wk__head { max-width: 640px; margin: 0 0 2rem; }
body.cr-kids .wk { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
body.cr-kids .wk__day { background: var(--cream); border: 1px solid var(--border); border-radius: 18px; padding: 1.6rem 1.8rem; }
body.cr-kids .wk__day h3 { font-size: 1.3rem; color: var(--deep); margin-bottom: 1rem; }
body.cr-kids .wk__day ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .2rem; }
body.cr-kids .wk__day li { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-bottom: 1px dashed var(--border); }
body.cr-kids .wk__day li:last-child { border-bottom: 0; }
body.cr-kids .wk__day li b { color: var(--ink); font-weight: 700; }
body.cr-kids .wk__day li span { color: var(--amber); font-weight: 700; font-family: var(--font-heading); white-space: nowrap; }

/* ── WhatsApp note (trainings) ── */
body.cr-kids #cr-wa { background: var(--cream); padding: clamp(1.5rem,3vw,2.5rem) max(var(--pad), calc((100% - var(--maxw)) / 2)); }
body.cr-kids .wa { text-align: center; color: var(--ink-soft); max-width: 60ch; margin: 0 auto; font-size: 1rem; line-height: 1.6; }
body.cr-kids .wa b { color: var(--deep); }

/* ── HOW IT WORKS steps (parties) ── */
body.cr-kids #cr-steps { background: var(--white); padding: clamp(2.5rem,5vw,4.5rem) max(var(--pad), calc((100% - var(--maxw)) / 2)); }
body.cr-kids .steps__head { text-align: center; max-width: 600px; margin: 0 auto 2.4rem; }
body.cr-kids .steps__head .eyebrow { justify-content: center; }
body.cr-kids .steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; }
body.cr-kids .step { text-align: center; padding: 1.2rem; }
body.cr-kids .step__num { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin: 0 auto 1rem; border-radius: 50%; background: var(--amber); color: #fff; font-family: var(--font-heading); font-weight: 700; font-size: 1.5rem; }
body.cr-kids .step__t { font-size: 1.2rem; color: var(--deep); }

/* ── PARTY PACKAGES (parties) ── */
body.cr-kids #cr-packages { background: var(--cream); padding: clamp(3rem,6vw,5.5rem) max(var(--pad), calc((100% - var(--maxw)) / 2)); }
body.cr-kids #cr-pkg-head { text-align: center; max-width: 640px; margin: 0 auto 2.6rem; }
body.cr-kids #cr-pkg-head .eyebrow { justify-content: center; }
body.cr-kids #cr-pkg-head .lead { margin-inline: auto; }
body.cr-kids #cr-pkg-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.4rem; }
body.cr-kids [id^="cr-pkgc-"] { display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--border); border-radius: 18px; padding: 1.7rem 1.6rem; transition: transform .25s, box-shadow .25s; }
body.cr-kids [id^="cr-pkgc-"]:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
body.cr-kids .pkg__top { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
body.cr-kids .pkg__name { font-size: 1.5rem; color: var(--deep); }
body.cr-kids .pkg__price { font-family: var(--font-heading); font-weight: 700; color: var(--amber); font-size: 1rem; white-space: nowrap; }
body.cr-kids .pkg__desc { font-size: .95rem; color: var(--ink-soft); line-height: 1.6; margin: .8rem 0 1rem; }
body.cr-kids .pkg__age { display: inline-block; background: var(--cream); color: var(--deep); border-radius: 999px; padding: .3rem .8rem; font-size: .78rem; font-weight: 700; }
body.cr-kids [id^="cr-pkgc-"] .elementor-widget-html:has(.bokunButton) { margin-top: auto; padding-top: 1.3rem; }
body.cr-kids [id^="cr-pkgc-"] .bokunButton, body.cr-kids [id^="cr-pkgc-"] [id^="bokun_"] { width: 100% !important; display: block !important; text-align: center; }

/* ── PROGRAM (after-school) ── */
body.cr-kids #cr-program { background: var(--white); padding: clamp(3rem,6vw,5.5rem) max(var(--pad), calc((100% - var(--maxw)) / 2)); }
body.cr-kids .prog { display: grid; grid-template-columns: 1.2fr .8fr; gap: clamp(2rem,4vw,3.5rem); align-items: start; }
body.cr-kids .prog__incl { background: var(--cream); border: 1px solid var(--border); border-radius: 18px; padding: 1.8rem; }
body.cr-kids .prog__incl h3 { font-size: 1.2rem; color: var(--deep); margin-bottom: 1rem; text-transform: uppercase; }
body.cr-kids .prog__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .8rem; }
body.cr-kids .prog__list li { display: flex; gap: .6rem; align-items: flex-start; color: var(--ink-soft); font-size: .95rem; line-height: 1.5; }
body.cr-kids .prog__list li svg { flex: none; width: 20px; height: 20px; color: var(--amber); margin-top: .1rem; }

/* ── GALLERY (after-school) ── */
body.cr-kids #cr-gallery { background: var(--cream); padding: clamp(2rem,4vw,3.5rem) max(var(--pad), calc((100% - var(--maxw)) / 2)); display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
body.cr-kids #cr-gallery .elementor-widget-image, body.cr-kids #cr-gallery figure { margin: 0; }
body.cr-kids #cr-gallery img { width: 100%; height: clamp(200px,22vw,260px); object-fit: cover; border-radius: 14px; display: block; }

/* ── BOOKING band (after-school) ── */
body.cr-kids #cr-booking { background: var(--deep); color: #fff; padding: clamp(3rem,6vw,5rem) max(var(--pad), calc((100% - var(--maxw)) / 2)); }
body.cr-kids #cr-booking-inner { max-width: 640px; margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; }
body.cr-kids #cr-booking .eyebrow { color: var(--yellow); justify-content: center; }
body.cr-kids #cr-booking .eyebrow::before { background: var(--yellow); }
body.cr-kids #cr-booking .h2 { color: #fff; }
body.cr-kids #cr-booking .lead { color: rgba(255,255,255,.84); margin: 1rem auto 1.6rem; }

/* ── responsive ── */
@media (max-width: 900px) {
  body.cr-kids #cr-intro-row, body.cr-kids .prog, body.cr-kids .wk { grid-template-columns: 1fr; }
  body.cr-kids .steps { grid-template-columns: 1fr; gap: 1rem; }
  body.cr-kids .intro__grid, body.cr-kids #cr-camp-inner { grid-template-columns: 1fr; }
  body.cr-kids #cr-ages-grid { grid-template-columns: 1fr 1fr; }
  body.cr-kids .incl__grid { grid-template-columns: 1fr; }
  body.cr-kids #cr-camp-inner { gap: 2rem; }
  body.cr-kids #cr-camp-photos { order: -1; margin-bottom: 0; z-index: auto; height: clamp(260px, 60vw, 380px); }
}
@media (max-width: 680px) {
  body.cr-kids #cr-ages-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { body.cr-kids * { transition: none !important; } }
