/*
Theme Name: SpinLab Studios 2026
Theme URI: https://spinlabstudios.com/
Author: SpinLab Studios
Description: A custom, accessible theme for SpinLab Studios lessons, programs and institutional partnerships.
Version: 1.5.0
Requires at least: 6.5
Requires PHP: 8.1
Text Domain: spinlab-studios
*/

:root {
  --red: #e10600;
  --red-deep: #a30e0a;
  --black: #070707;
  --ink: #151313;
  --cream: #f4efe8;
  --paper: #fffdf9;
  --white: #ffffff;
  --muted: #696363;
  --line: rgba(21, 19, 19, .14);
  --blue: #1479e8;
  --yellow: #ffba08;
  --green: #43b02a;
  --orange: #ff7900;
  --shell: min(1180px, calc(100vw - 48px));
  --shadow: 0 24px 70px rgba(20, 10, 10, .15);
  --radius: 24px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}

body.menu-open { overflow: hidden; }
img, video { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

/* The previous site used an Elementor Theme Builder header. Keep its content
   installed for rollback, but prevent it from covering the new shared shell. */
.elementor-location-header,
.elementor-location-footer { display: none !important; }

.shell { width: var(--shell); margin-inline: auto; }
.section { padding: clamp(84px, 9vw, 136px) 0; }
.section--tight { padding: clamp(64px, 7vw, 100px) 0; }
.section--dark { background: var(--black); color: var(--white); }
.section--red { background: var(--red); color: var(--white); }
.section--cream { background: var(--cream); }

.skip-link,
.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;
}

.skip-link:focus {
  z-index: 99999;
  top: 12px;
  left: 12px;
  width: auto;
  height: auto;
  clip: auto;
  margin: 0;
  padding: 12px 18px;
  background: var(--white);
  color: var(--black);
  font-weight: 800;
}

.eyebrow {
  margin: 0 0 18px;
  color: var(--red);
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .17em;
  line-height: 1.2;
  text-transform: uppercase;
}

.eyebrow--light { color: #ff534d; }
.eyebrow--white { color: var(--white); }

h1, h2, h3, p { margin-top: 0; }
:where(h1[id], h2[id], section[id]) { scroll-margin-top: 120px; }
h1, h2, h3 {
  margin-bottom: .55em;
  font-weight: 850;
  letter-spacing: -.045em;
  line-height: .98;
}

h1 { font-size: clamp(3.25rem, 7vw, 6.8rem); }
h2 { font-size: clamp(2.5rem, 5.2vw, 5rem); }
h3 { font-size: clamp(1.35rem, 2.2vw, 2rem); }
h1 em, h2 em {
  color: var(--red);
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  letter-spacing: -.055em;
}

.lead {
  max-width: 720px;
  color: var(--muted);
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  line-height: 1.75;
}

.button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 13px 24px;
  background: var(--red);
  color: var(--white);
  font-size: .8rem;
  font-weight: 900;
  letter-spacing: .1em;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition: transform .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
}

.button:hover, .button:focus-visible { transform: translateY(-2px); background: var(--red-deep); }
.button--light { background: var(--white); color: var(--black); }
.button--light:hover, .button--light:focus-visible { background: var(--cream); }
.button--outline { border-color: rgba(255, 255, 255, .42); background: transparent; color: var(--white); }
.button--outline:hover, .button--outline:focus-visible { border-color: var(--white); background: var(--white); color: var(--black); }
.button--ink { background: var(--black); }
.button--ink:hover, .button--ink:focus-visible { background: #2b2525; }

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--red);
  font-weight: 850;
  text-decoration: none;
}
.text-link::after { content: "→"; transition: transform .2s ease; }
.text-link:hover::after, .text-link:focus-visible::after { transform: translateX(4px); }

.family-bar {
  position: relative;
  z-index: 60;
  background: var(--black);
  color: rgba(255, 255, 255, .75);
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.family-bar__inner {
  display: flex;
  min-height: 34px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.family-bar a { color: var(--white); text-decoration: none; }
.family-bar a:hover, .family-bar a:focus-visible { color: #ff625d; }

.site-header {
  position: sticky;
  z-index: 50;
  top: 0;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 253, 249, .96);
  backdrop-filter: blur(14px);
}

body.admin-bar .site-header { top: 32px; }

.header-inner {
  display: flex;
  min-height: 90px;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.brand {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 12px;
  color: var(--black);
  text-decoration: none;
}

.brand img { width: 48px; height: 48px; object-fit: contain; }
.brand-text { display: grid; gap: 1px; }
.brand-text strong { font-size: 1.1rem; font-weight: 950; letter-spacing: .1em; line-height: 1; }
.brand-text span { color: var(--red); font-size: .62rem; font-weight: 900; letter-spacing: .27em; line-height: 1; }

.primary-nav { margin-left: auto; }
.primary-nav ul {
  display: flex;
  align-items: center;
  gap: clamp(16px, 2vw, 30px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.primary-nav a {
  color: var(--ink);
  font-size: .82rem;
  font-weight: 800;
  text-decoration: none;
}
.primary-nav a:hover, .primary-nav a:focus-visible { color: var(--red); }
.mobile-nav-cta { display: none; }
.header-cta { flex: 0 0 auto; }

.menu-toggle {
  display: none;
  width: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 50%;
  background: var(--black);
  color: var(--white);
}
.menu-toggle-lines { display: grid; gap: 5px; }
.menu-toggle-lines span { display: block; width: 20px; height: 2px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines span:first-child { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .menu-toggle-lines span:last-child { transform: translateY(-7px) rotate(-45deg); }

.hero {
  position: relative;
  overflow: hidden;
  background: var(--black);
  color: var(--white);
}

.hero::before {
  content: "";
  position: absolute;
  width: 540px;
  height: 540px;
  top: -290px;
  left: -230px;
  border: 90px solid rgba(225, 6, 0, .16);
  border-radius: 50%;
}

.hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: min(780px, calc(100vh - 124px));
  grid-template-columns: .92fr 1.08fr;
  align-items: center;
  gap: clamp(48px, 7vw, 104px);
  padding: clamp(80px, 9vw, 140px) 0;
}

.hero-copy { max-width: 650px; }
.hero h1 { margin-bottom: 28px; }
.hero h1 em { display: block; }
.hero-copy > p:not(.eyebrow) { max-width: 620px; color: rgba(255, 255, 255, .72); font-size: clamp(1.05rem, 1.55vw, 1.26rem); line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.hero-note { display: flex; gap: 12px; align-items: flex-start; margin-top: 34px; color: rgba(255, 255, 255, .62); font-size: .88rem; line-height: 1.6; }
.hero-note::before { content: ""; flex: 0 0 8px; width: 8px; height: 8px; margin-top: .5em; border-radius: 50%; background: var(--red); }

.hero-visual {
  position: relative;
  min-height: 590px;
}

.hero-photo-main {
  position: absolute;
  inset: 0 64px 64px 0;
  overflow: hidden;
  border-radius: 26px;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .42);
}
.hero-photo-main img { width: 100%; height: 100%; object-fit: cover; object-position: 55% center; }

.hero-photo-small {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 43%;
  overflow: hidden;
  border: 10px solid var(--black);
  border-radius: 22px;
  box-shadow: var(--shadow);
}
.hero-photo-small img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; }

.hero-badge {
  position: absolute;
  top: 28px;
  right: 16px;
  display: grid;
  width: 128px;
  height: 128px;
  place-items: center;
  border-radius: 50%;
  background: var(--red);
  color: var(--white);
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .12em;
  line-height: 1.45;
  text-align: center;
  text-transform: uppercase;
  transform: rotate(7deg);
}

.mission-head {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  align-items: end;
  gap: clamp(40px, 8vw, 120px);
  margin-bottom: 58px;
}
.mission-head h2 { margin-bottom: 0; }
.mission-head .lead { margin-bottom: 0; }

.pillar-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.pillar-card {
  min-height: 330px;
  padding: 32px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--paper);
}
.pillar-label,
.process-label,
.spinlab-flow-cue,
.spinlab-process-cue {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--red);
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.pillar-label::before,
.process-label::before,
.spinlab-flow-cue::before,
.spinlab-process-cue::before {
  content: "";
  width: 28px;
  height: 9px;
  background:
    linear-gradient(90deg,
      currentColor 0 3px, transparent 3px 7px,
      currentColor 7px 10px, transparent 10px 14px,
      currentColor 14px 17px, transparent 17px 21px,
      currentColor 21px 24px, transparent 24px);
  transform: skewY(-18deg);
}
.pillar-label { margin-bottom: 76px; }
.pillar-card h3 { margin-bottom: 15px; }
.pillar-card p { margin-bottom: 0; color: var(--muted); }

.origin-grid { display: grid; grid-template-columns: 1.08fr .92fr; align-items: stretch; }
.origin-image { min-height: 680px; }
.origin-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.origin-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(54px, 8vw, 120px); background: var(--red); color: var(--white); }
.origin-copy .eyebrow { color: var(--white); }
.origin-copy h2 { max-width: 560px; color: var(--white); }
.origin-copy h2 em { color: var(--black); }
.origin-copy p { max-width: 590px; color: rgba(255, 255, 255, .82); font-size: 1.07rem; line-height: 1.75; }
.origin-quote { margin: 28px 0 0; padding-top: 28px; border-top: 1px solid rgba(255, 255, 255, .35); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.35rem, 2vw, 1.9rem); line-height: 1.45; }
.origin-credit { margin-top: 12px; color: var(--white); font-size: .75rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }

.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 54px; }
.section-heading h2 { max-width: 720px; margin-bottom: 0; }
.section-heading .lead { max-width: 460px; margin-bottom: 0; }

.program-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.program-card {
  position: relative;
  display: grid;
  min-height: 360px;
  align-content: end;
  overflow: hidden;
  padding: 38px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--cream);
}
.program-card:nth-child(2) { background: var(--black); color: var(--white); }
.program-card:nth-child(3) { background: var(--red); color: var(--white); }
.program-card:nth-child(4) { background: #e7e0d6; }
.program-label { position: absolute; top: 30px; left: 36px; font-size: .72rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.program-card h3 { margin-bottom: 14px; }
.program-card p { max-width: 520px; margin-bottom: 24px; color: inherit; opacity: .76; }
.program-card .text-link { color: inherit; }

.kids-section {
  position: relative;
  overflow: hidden;
  background: var(--black);
  color: var(--white);
}
.kids-section::before,
.kids-section::after { content: ""; position: absolute; border-radius: 50%; filter: blur(4px); }
.kids-section::before { width: 270px; height: 270px; top: -130px; right: 5%; background: rgba(20, 121, 232, .26); }
.kids-section::after { width: 240px; height: 240px; bottom: -120px; left: 7%; background: rgba(255, 186, 8, .2); }

.kids-intro { position: relative; z-index: 1; display: grid; grid-template-columns: .76fr 1.24fr; align-items: center; gap: clamp(50px, 9vw, 130px); margin-bottom: 60px; }
.kids-logo-wrap { display: grid; place-items: center; padding: 0; background: transparent; }
.kids-logo-wrap img { width: min(100%, 390px); height: auto; }
.kids-copy h2 em { color: var(--yellow); }
.kids-copy > p { max-width: 650px; color: rgba(255, 255, 255, .72); font-size: 1.08rem; }
.kids-stages { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 28px 0 32px; }
.kids-stage { padding: 18px; border: 1px solid rgba(255, 255, 255, .18); border-radius: 16px; }
.kids-stage strong { display: block; margin-bottom: 6px; font-size: 1.02rem; }
.kids-stage span { color: rgba(255, 255, 255, .62); font-size: .85rem; }
.kids-stage:nth-child(1) { border-top: 4px solid var(--blue); }
.kids-stage:nth-child(2) { border-top: 4px solid var(--yellow); }
.kids-stage:nth-child(3) { border-top: 4px solid var(--green); }

.kids-gallery { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr .85fr .85fr; grid-template-rows: 310px 310px; gap: 14px; }
.kids-gallery figure { margin: 0; overflow: hidden; border-radius: 20px; }
.kids-gallery figure:first-child { grid-row: 1 / 3; }
.kids-gallery figure:nth-child(4) { grid-column: 2 / 4; }
.kids-gallery img, .kids-gallery video { width: 100%; height: 100%; object-fit: cover; }
.kids-gallery figure:first-child img { object-position: center 35%; }
.kids-gallery video { background: #111; }

.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.process-step { min-height: 290px; padding: 32px 28px; border-right: 1px solid var(--line); }
.process-step:last-child { border-right: 0; }
.process-step .process-label { margin-bottom: 68px; }
.process-step p { margin-bottom: 0; color: var(--muted); }

.integrated-page .spinlab-flow-cue { margin: 0 0 12px; }
.integrated-page .spinlab-process-cue {
  width: auto !important;
  height: auto !important;
  margin: 0 auto 18px !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #ff312b !important;
  font-size: .7rem !important;
  letter-spacing: .14em !important;
}

.proof-grid { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: clamp(48px, 8vw, 100px); }
.proof-image { overflow: hidden; border-radius: var(--radius); box-shadow: var(--shadow); }
.proof-image img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.proof-copy p:not(.eyebrow) { max-width: 550px; color: var(--muted); font-size: 1.08rem; }
.proof-list { display: grid; gap: 13px; margin: 28px 0 34px; padding: 0; list-style: none; }
.proof-list li { display: flex; align-items: center; gap: 12px; font-weight: 750; }
.proof-list li::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--red); }

.closing-cta { position: relative; overflow: hidden; text-align: center; }
.closing-cta::before { content: ""; position: absolute; width: 620px; height: 620px; top: 50%; left: 50%; border: 110px solid rgba(225, 6, 0, .13); border-radius: 50%; transform: translate(-50%, -50%); }
.closing-cta .shell { position: relative; z-index: 1; }
.closing-cta h2 { max-width: 900px; margin-inline: auto; }
.closing-cta p { max-width: 620px; margin: 0 auto 32px; color: rgba(255, 255, 255, .7); font-size: 1.1rem; }
.closing-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }

.site-footer { background: #020202; color: var(--white); }
.footer-main { display: grid; grid-template-columns: 1.3fr .7fr .8fr .9fr; gap: 48px; padding: 72px 0 54px; }
.footer-brand .brand { color: var(--white); }
.footer-brand p { max-width: 350px; margin: 24px 0 0; color: rgba(255, 255, 255, .58); }
.footer-column h3 { margin-bottom: 18px; font-size: .72rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.footer-column ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.footer-column a { color: rgba(255, 255, 255, .68); text-decoration: none; }
.footer-column a:hover, .footer-column a:focus-visible { color: var(--white); }
.footer-column p { color: rgba(255, 255, 255, .62); }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 0 28px; border-top: 1px solid rgba(255, 255, 255, .12); color: rgba(255, 255, 255, .48); font-size: .78rem; }
.footer-bottom a { color: inherit; }

.content-page { min-height: 60vh; padding: clamp(70px, 8vw, 120px) 0; }
.content-page__inner { width: min(900px, calc(100vw - 40px)); margin-inline: auto; }
.content-page__inner > h1 { font-size: clamp(2.8rem, 6vw, 5.8rem); }
.content-page__inner :where(p, li) { color: var(--muted); }

/* Shared treatment for the existing Elementor pages. The page content and
   plugin shortcodes remain untouched while the visual shell stays consistent. */
.integrated-page {
  min-height: 60vh;
  overflow: clip;
  background: var(--black);
  color: var(--white);
}
.integrated-page > .elementor { font-family: inherit; }
.integrated-page .elementor :where(h1, h2, h3) {
  font-family: inherit !important;
  font-weight: 850 !important;
  letter-spacing: -.045em !important;
  line-height: 1.02 !important;
}
.integrated-page .elementor h1 { font-size: clamp(3.1rem, 7vw, 6.2rem) !important; }
.integrated-page .elementor h2 { font-size: clamp(2.35rem, 4.8vw, 4.6rem) !important; }
.integrated-page .elementor h3 { font-size: clamp(1.35rem, 2.2vw, 2.1rem) !important; }
.integrated-page .elementor .e-con-inner { width: 100%; }
.integrated-page .elementor-widget-container > [style*="width:100vw"] {
  margin-left: calc(50% - 50vw) !important;
}
.integrated-page .elementor :where(a, button, input[type="submit"])[style*="background:#E10600"],
.integrated-page :where(.wpforms-submit, .glsr-button) {
  min-height: 52px !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  padding: 14px 26px !important;
  background: var(--red) !important;
  color: var(--white) !important;
  font-size: .78rem !important;
  font-weight: 900 !important;
  letter-spacing: .09em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  transition: transform .2s ease, background .2s ease !important;
}
.integrated-page .elementor :where(a, button, input[type="submit"])[style*="background:#E10600"]:hover,
.integrated-page :where(.wpforms-submit, .glsr-button):hover {
  background: var(--red-deep) !important;
  transform: translateY(-2px);
}
.integrated-page .elementor [style*="border-radius:10px"] { border-radius: 999px !important; }
.integrated-page .elementor [style*="border-radius:20px"],
.integrated-page .elementor [style*="border-radius:22px"],
.integrated-page .elementor [style*="border-radius:24px"] { border-radius: var(--radius) !important; }
.integrated-page :where(.wpforms-container, .glsr-form-wrap) :where(label, legend),
.integrated-page .glsr-label { color: var(--white) !important; font-weight: 800 !important; }
.integrated-page :where(.wpforms-field-medium, .wpforms-field-large, .wpforms-field-small, .glsr-input, .glsr-textarea, .glsr-select) {
  width: 100% !important;
  border: 1px solid #454141 !important;
  border-radius: 12px !important;
  background: #151313 !important;
  color: var(--white) !important;
  box-shadow: none !important;
}
.integrated-page :where(.wpforms-field-medium, .wpforms-field-large, .wpforms-field-small, .glsr-input, .glsr-select) { min-height: 50px !important; }
.integrated-page :where(input, select, textarea):focus {
  border-color: var(--red) !important;
  outline: 3px solid rgba(225, 6, 0, .2) !important;
  outline-offset: 1px;
}
.integrated-page :where(.wpforms-error, .glsr-field-error) { color: #ff8d88 !important; }
.integrated-page .shortcode-site-reviews .glsr-review {
  border: 1px solid rgba(255, 255, 255, .13) !important;
  border-radius: var(--radius) !important;
  background: #111 !important;
  color: var(--white) !important;
  box-shadow: 0 18px 50px rgba(0, 0, 0, .24) !important;
}
.integrated-page .shortcode-site-reviews :where(.glsr-review-content, .glsr-review-content p, .glsr-review-author, .glsr-review-response) {
  color: var(--white) !important;
}

[data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s ease; }
[data-reveal].is-visible { opacity: 1; transform: none; }

@media (max-width: 1080px) {
  :root { --shell: min(100% - 36px, 980px); }
  .primary-nav ul { gap: 16px; }
  .primary-nav a { font-size: .75rem; }
  .header-cta { display: none; }
  .hero-grid { grid-template-columns: 1fr 1fr; }
  .hero-visual { min-height: 520px; }
  .footer-main { grid-template-columns: 1.2fr repeat(3, .8fr); gap: 30px; }
}

@media (max-width: 900px) {
  body.admin-bar .site-header { top: 46px; }
  .site-header { backdrop-filter: none; }
  .family-bar__inner { justify-content: center; text-align: center; }
  .family-bar__inner > span { display: none; }
  .header-inner { min-height: 78px; }
  .brand img { width: 42px; height: 42px; }
  .brand-text strong { font-size: .95rem; }
  .menu-toggle { display: inline-flex; position: relative; z-index: 72; }
  .primary-nav {
    position: fixed;
    z-index: 70;
    inset: 112px 0 0;
    display: grid;
    align-content: start;
    overflow-y: auto;
    padding: 34px 24px 60px;
    background: var(--paper);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-12px);
    transition: opacity .2s ease, transform .2s ease;
  }
  body.admin-bar .primary-nav { inset-block-start: 158px; }
  .primary-nav.is-open { opacity: 1; pointer-events: auto; transform: none; }
  .primary-nav ul { display: grid; gap: 0; }
  .primary-nav li { border-bottom: 1px solid var(--line); }
  .primary-nav a { display: block; padding: 17px 4px; font-size: 1.15rem; }
  .primary-nav .mobile-nav-cta { display: block; margin-top: 24px; border-radius: 999px; padding: 16px 20px; background: var(--red); color: var(--white); text-align: center; }
  .primary-nav .mobile-nav-cta:hover, .primary-nav .mobile-nav-cta:focus-visible { background: var(--red-deep); color: var(--white); }
  .hero-grid { grid-template-columns: 1fr; min-height: auto; }
  .hero-copy { max-width: 760px; }
  .hero-visual { min-height: 620px; }
  .mission-head, .kids-intro, .proof-grid { grid-template-columns: 1fr; }
  .pillar-grid { grid-template-columns: 1fr; }
  .pillar-card { min-height: 250px; }
  .pillar-label { margin-bottom: 50px; }
  .origin-grid { grid-template-columns: 1fr; }
  .origin-image { min-height: 520px; }
  .section-heading { align-items: flex-start; flex-direction: column; }
  .program-grid { grid-template-columns: 1fr; }
  .program-card { min-height: 310px; }
  .kids-logo-wrap { max-width: 440px; }
  .kids-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 440px 280px 280px; }
  .kids-gallery figure:first-child { grid-column: 1 / 3; grid-row: auto; }
  .kids-gallery figure:nth-child(4) { grid-column: 1 / 3; }
  .process-grid { grid-template-columns: 1fr 1fr; }
  .process-step:nth-child(2) { border-right: 0; }
  .process-step:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .footer-main { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  :root { --shell: calc(100% - 32px); }
  .section { padding: 74px 0; }
  h1 { font-size: clamp(3rem, 16vw, 4.55rem); }
  h2 { font-size: clamp(2.45rem, 12vw, 3.8rem); }
  .family-bar { font-size: .61rem; }
  .family-bar__inner { min-height: 32px; }
  .brand-text strong { font-size: .83rem; letter-spacing: .08em; }
  .brand-text span { font-size: .53rem; }
  .primary-nav { inset-block-start: 110px; }
  body.admin-bar .primary-nav { inset-block-start: 156px; }
  .hero-grid { gap: 54px; padding: 76px 0; }
  .hero-actions { display: grid; }
  .hero-actions .button { width: 100%; }
  .hero-visual { min-height: 500px; }
  .hero-photo-main { inset: 0 28px 50px 0; }
  .hero-photo-small { width: 48%; border-width: 7px; }
  .hero-badge { width: 96px; height: 96px; right: -4px; font-size: .54rem; }
  .pillar-card { padding: 26px; }
  .origin-image { min-height: 390px; }
  .origin-copy { padding: 64px 24px; }
  .program-card { min-height: 290px; padding: 28px; }
  .program-label { top: 25px; left: 28px; }
  .kids-stages { grid-template-columns: 1fr; }
  .kids-gallery { grid-template-columns: 1fr; grid-template-rows: 420px repeat(3, 300px); }
  .kids-gallery figure:first-child, .kids-gallery figure:nth-child(4) { grid-column: auto; }
  .process-grid { grid-template-columns: 1fr; }
  .process-step { min-height: 230px; border-right: 0; border-bottom: 1px solid var(--line); }
  .process-step:last-child { border-bottom: 0; }
  .process-step .process-label { margin-bottom: 42px; }
  .proof-image img { aspect-ratio: 3 / 4; object-position: center; }
  .closing-actions { display: grid; }
  .footer-main { grid-template-columns: 1fr; padding-top: 58px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
  .integrated-page .elementor h1 { font-size: clamp(2.8rem, 14vw, 4.2rem) !important; }
  .integrated-page .elementor h2 { font-size: clamp(2.15rem, 10vw, 3.25rem) !important; }
  .integrated-page .elementor-widget-container > [style*="padding:95px 20px"],
  .integrated-page .elementor-widget-container > [style*="padding:100px 20px"] { padding: 76px 18px !important; }
}

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