:root {
  /* Palette is centralized here. Viridian uses the standard Generic Viridian value;
     the supporting yellow/orange swatches should be confirmed against the client palette file. */
  --brand-viridian: #007f66;
  --brand-viridian-dark: #075b4b;
  --brand-yellow: #f8c84a;
  --brand-orange: #ef8a32;
  --brand-light: #fffaf0;
  --brand-dark: #143c32;
  --brand-accent: #a7d8c6;
  --brand-cream: #f6ecd8;
  --brand-sky: #dceff0;
  --brand-coral: #f3c9b8;
  --white: #ffffff;
  --ink: #20352f;
  --muted: #52645f;
  --line: rgba(20, 60, 50, 0.16);
  --shadow: 0 18px 50px rgba(20, 60, 50, 0.12);
  --shadow-strong: 0 24px 70px rgba(20, 60, 50, 0.2);
  --font-display: "Cooper Black", "Arial Rounded MT Bold", "Trebuchet MS", sans-serif;
  --font-support: "Trebuchet MS", "Avenir Next", Avenir, Arial, sans-serif;
  --container: 1180px;
  --radius-sm: 16px;
  --radius-md: 28px;
  --radius-lg: 48px;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: 82px; }
body { margin: 0; color: var(--ink); background: var(--brand-light); font-family: var(--font-support); font-size: 17px; line-height: 1.65; overflow-x: hidden; }
body.menu-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { color: var(--brand-dark); font-family: var(--font-display); line-height: 1.08; letter-spacing: -0.025em; }
h1 { font-size: clamp(3rem, 6vw, 5.7rem); }
h2 { font-size: clamp(2.25rem, 4vw, 4rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.7rem); }
:focus-visible { outline: 4px solid var(--brand-yellow); outline-offset: 4px; }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { position: relative; padding: clamp(76px, 9vw, 130px) 0; overflow: hidden; }
.svg-library { position: absolute; width: 0; height: 0; overflow: hidden; }
.skip-link { position: fixed; z-index: 9999; top: 10px; left: 10px; padding: 12px 18px; border-radius: 10px; color: var(--white); background: var(--brand-dark); transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }

.announcement { display: flex; justify-content: center; gap: 16px; align-items: center; min-height: 42px; padding: 8px 20px; color: var(--brand-dark); background: var(--brand-yellow); font-size: 0.88rem; font-weight: 750; text-align: center; }
.announcement a { font-weight: 900; }
.site-header { position: relative; z-index: 51; background: rgba(255, 250, 240, 0.98); }
.brand-row { display: grid; grid-template-columns: 205px 1fr auto; gap: 34px; align-items: center; min-height: 222px; padding-block: 12px; }
.brand { position: relative; z-index: 3; width: 198px; height: 198px; align-self: center; margin-bottom: 0; border-radius: 50%; filter: drop-shadow(0 10px 14px rgba(20, 60, 50, 0.12)); transition: transform 0.25s ease; }
.brand:hover { transform: rotate(-2deg) scale(1.025); }
.brand img { width: 100%; height: 100%; object-fit: contain; }
.brand-row p { margin: 0; color: var(--muted); }
.brand-row p strong, .brand-row p span { display: block; }
.brand-row p strong { color: var(--brand-viridian-dark); font-family: var(--font-display); font-size: 1.5rem; }
.brand-row p span { font-size: 1.03rem; }
.nav-shell { position: sticky; z-index: 100; top: 0; background: var(--brand-viridian); box-shadow: 0 9px 25px rgba(7, 91, 75, 0.2); }
.nav-shell.is-scrolled { box-shadow: 0 14px 34px rgba(7, 91, 75, 0.27); }
.nav-inner { display: flex; min-height: 78px; align-items: center; }
.desktop-nav { display: flex; width: 100%; align-items: stretch; justify-content: center; }
.desktop-nav a { display: flex; min-height: 78px; padding: 0 18px; align-items: center; border-bottom: 5px solid transparent; color: var(--white); font-size: 1.08rem; font-weight: 850; text-decoration: none; white-space: nowrap; }
.desktop-nav a:hover, .desktop-nav a[aria-current="location"] { border-color: var(--brand-yellow); background: rgba(255,255,255,0.1); }
.menu-toggle, .mobile-nav { display: none; }

.button { display: inline-flex; min-height: 52px; padding: 13px 24px; align-items: center; justify-content: center; gap: 9px; border: 2px solid var(--brand-viridian); border-radius: 999px; color: var(--white); background: var(--brand-viridian); box-shadow: 0 10px 22px rgba(0, 127, 102, 0.18); font-weight: 900; line-height: 1.2; text-align: center; text-decoration: none; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease; }
.button:hover { transform: translateY(-3px); background: var(--brand-viridian-dark); box-shadow: 0 15px 28px rgba(0, 127, 102, 0.24); }
.button-secondary { color: var(--brand-viridian-dark); background: var(--white); }
.button-sun { border-color: var(--brand-orange); color: var(--brand-dark); background: var(--brand-yellow); box-shadow: 0 10px 22px rgba(239, 138, 50, 0.22); }
.button-sun:hover { background: #ffd766; }
.button-light { border-color: rgba(255,255,255,0.8); color: var(--brand-dark); background: var(--white); }
.button-row { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.text-link { color: var(--brand-viridian-dark); font-weight: 900; }
.text-link.light { color: var(--white); }

.eyebrow { display: inline-block; margin-bottom: 18px; color: var(--brand-viridian-dark); font-size: 0.95rem; font-weight: 900; letter-spacing: 0.1em; line-height: 1.3; text-transform: uppercase; }
.eyebrow-strong { padding: 9px 15px; border-radius: 999px; background: var(--brand-yellow); font-size: 1.06rem; }
.eyebrow.light { color: var(--brand-yellow); }
.section-heading { max-width: 760px; margin-bottom: 54px; }
.section-heading h2 { margin-bottom: 20px; }
.section-heading p { margin-bottom: 0; color: var(--muted); font-size: 1.09rem; }
.align-center { margin-inline: auto; text-align: center; }
.align-left { text-align: left; }
.body-large { font-size: clamp(1.08rem, 1.7vw, 1.3rem); }

.foliage-section { isolation: isolate; }
.leaf-watermark { position: absolute; z-index: -1; width: clamp(180px, 23vw, 350px); height: auto; color: var(--brand-viridian); fill: currentColor; stroke: currentColor; stroke-width: 2; opacity: 0.095; pointer-events: none; }
.leaf-a { top: 5%; left: -5%; transform: rotate(-22deg); }
.leaf-b { right: -5%; bottom: 3%; transform: rotate(145deg); }
.leaf-c { right: -5%; top: 9%; transform: rotate(32deg); }
.leaf-d { left: -4%; bottom: 4%; transform: rotate(-45deg); }
.leaf-e { right: -4%; bottom: 2%; transform: rotate(122deg); }
.leaf-f { left: -3%; top: 6%; transform: rotate(-18deg); }
.leaf-g { right: -7%; top: 12%; transform: rotate(128deg); }
.leaf-h { left: -8%; top: 19%; transform: rotate(-38deg); }
.leaf-i { right: -5%; bottom: 2%; color: var(--brand-yellow); opacity: 0.13; transform: rotate(145deg); }
.leaf-j { left: -6%; bottom: 4%; transform: rotate(-20deg); }

.hero { position: relative; min-height: 700px; padding: clamp(70px, 8vw, 115px) 0 95px; overflow: hidden; background: radial-gradient(circle at 13% 12%, rgba(248,200,74,0.3), transparent 29%), linear-gradient(145deg, #fffdf7 0%, #f7eedb 100%); }
.hero-grid { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: clamp(40px, 7vw, 90px); align-items: center; }
.hero h1 { max-width: 690px; margin-bottom: 24px; }
.hero h1 span { color: var(--brand-viridian); text-decoration: underline; text-decoration-color: var(--brand-orange); text-decoration-thickness: 0.12em; text-underline-offset: 0.12em; }
.hero-lede { max-width: 650px; margin-bottom: 34px; color: #39534b; font-size: clamp(1.12rem, 1.6vw, 1.3rem); }
.hero-visual { position: relative; min-width: 0; }
.hero-image-wrap { overflow: hidden; border: 10px solid var(--white); border-radius: 44% 56% 45% 55% / 56% 38% 62% 44%; box-shadow: var(--shadow-strong); aspect-ratio: 1.08 / 1; background: #f9e5bd; transform: rotate(1.5deg); }
.hero-hands-illustration { width: 100%; height: 100%; }
.float-card { position: absolute; display: grid; min-width: 130px; padding: 14px 17px; border: 4px solid var(--white); border-radius: 24px; background: var(--brand-yellow); box-shadow: var(--shadow); line-height: 1.25; }
.float-card strong { font-family: var(--font-display); font-size: 1.25rem; }
.float-card span, .float-card small { font-size: 0.82rem; font-weight: 750; }
.card-age { top: 8%; right: -15px; text-align: center; transform: rotate(5deg); }
.card-age strong { font-size: 2rem; }
.card-play { bottom: 5%; left: -25px; grid-template-columns: 34px 1fr; column-gap: 9px; color: var(--white); background: var(--brand-viridian); transform: rotate(-3deg); }
.card-play svg { grid-row: 1 / 3; width: 32px; fill: var(--brand-yellow); }

.section-paw-trail { position: absolute; z-index: 2; display: flex; gap: 19px; width: max-content; pointer-events: none; }
.section-paw-trail svg { width: 34px; height: 34px; fill: var(--brand-viridian); opacity: 0.38; }
.section-paw-trail svg:nth-child(2) { width: 28px; height: 28px; transform: translateY(19px) rotate(22deg); }
.section-paw-trail svg:nth-child(3) { width: 37px; height: 37px; transform: translateY(-4px) rotate(-17deg); }
.section-paw-trail svg:nth-child(4) { width: 30px; height: 30px; transform: translateY(18px) rotate(26deg); }
.trail-hero { right: 8%; bottom: 30px; transform: rotate(-14deg); }
.trail-left { left: 5%; bottom: 28px; transform: rotate(17deg); }
.trail-cloud { right: 8%; bottom: 22px; transform: rotate(-11deg); }
.trail-right { right: 8%; bottom: 28px; transform: rotate(-17deg); }
.trail-vision { left: 11%; bottom: 23px; transform: rotate(12deg); }

.pillars { padding: 90px 0 110px; background: var(--white); }
.pillar-bubbles { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 4vw, 50px); align-items: center; }
.pillar { display: flex; min-height: 350px; padding: 50px 38px; flex-direction: column; align-items: center; justify-content: center; border-radius: 48% 52% 46% 54% / 55% 43% 57% 45%; text-align: center; box-shadow: var(--shadow); transition: transform 0.25s ease; }
.pillar:first-child { transform: translateY(24px) rotate(-1.5deg); }
.pillar:nth-child(2) { min-height: 370px; border-radius: 54% 46% 58% 42% / 46% 56% 44% 54%; }
.pillar:nth-child(3) { min-height: 335px; border-radius: 42% 58% 50% 50% / 57% 44% 56% 43%; transform: translateY(-11px) rotate(1.5deg); }
.pillar:hover { translate: 0 -8px; }
.pillar svg { width: 68px; height: 68px; margin-bottom: 22px; fill: none; stroke: currentColor; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.pillar svg use[href="#icon-paw"] { fill: currentColor; stroke: none; }
.pillar h3 { margin-bottom: 12px; }
.pillar p { max-width: 250px; margin-bottom: 0; }
.bubble-faith { color: #5d3a0a; background: var(--brand-yellow); }
.bubble-play { color: var(--white); background: var(--brand-viridian); }
.bubble-play h3 { color: var(--white); }
.bubble-learning { color: var(--brand-dark); background: var(--brand-accent); }

.paw-journey { position: relative; z-index: 2; width: min(820px, 92vw); height: 94px; margin: -46px auto; pointer-events: none; }
.paw-journey::before { position: absolute; top: 46px; left: 9%; width: 82%; border-top: 3px dashed rgba(0,127,102,0.18); content: ""; transform: rotate(-2deg); }
.paw { position: absolute; width: 36px; height: 36px; fill: var(--brand-viridian); opacity: 0.45; }
.p1 { left: 12%; top: 37px; transform: rotate(-24deg); }.p2 { left: 35%; top: 17px; transform: rotate(12deg); }.p3 { left: 60%; top: 40px; transform: rotate(-10deg); }.p4 { right: 12%; top: 20px; transform: rotate(25deg); }

.mission { background: var(--brand-cream); }
.mission-grid { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: clamp(45px, 8vw, 100px); align-items: center; }
.mission-visual { min-height: 430px; display: grid; place-items: center; border-radius: 38% 62% 56% 44% / 45% 38% 62% 55%; background: linear-gradient(145deg, var(--brand-viridian), var(--brand-viridian-dark)); box-shadow: var(--shadow-strong); }
.bible-illustration { color: var(--white); text-align: center; transform: rotate(-2deg); }
.bible-illustration svg { width: 165px; height: 135px; margin: 0 auto 20px; fill: none; stroke: var(--brand-yellow); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.bible-illustration span { font-family: var(--font-display); font-size: 1.5rem; line-height: 1.25; }

.approach { background: var(--white); }
.benefit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.benefit-bubble { min-height: 280px; padding: 42px 34px; border: 0; border-radius: 38% 28% 35% 24% / 28% 39% 25% 35%; box-shadow: 0 14px 34px rgba(20,60,50,0.09); transition: transform 0.25s ease; }
.benefit-bubble:nth-child(even) { border-radius: 26% 38% 28% 36% / 36% 25% 39% 28%; }
.benefit-bubble:nth-child(3n+1) { transform: rotate(-1deg); }.benefit-bubble:nth-child(3n+2) { transform: translateY(18px) rotate(1deg); }.benefit-bubble:nth-child(3n) { transform: rotate(.6deg); }
.benefit-bubble:hover { translate: 0 -7px; }
.benefit-bubble > span { display: grid; width: 46px; height: 46px; margin-bottom: 22px; place-items: center; border-radius: 50%; color: var(--white); background: var(--brand-viridian); font-size: 1.45rem; font-weight: 900; }
.benefit-bubble h3 { margin-bottom: 13px; }
.benefit-bubble p { margin-bottom: 0; }
.tone-yellow { background: #fff1b9; }.tone-leaf { background: #dff2e8; }.tone-orange { background: #f9dfce; }.tone-sky { background: var(--brand-sky); }.tone-cream { background: #fff8e8; }.tone-gold { background: #f9e4a1; }

.learning-cloud { position: relative; margin-top: 100px; padding: clamp(55px, 8vw, 90px); border-radius: 45% 55% 48% 52% / 12% 14% 10% 15%; color: var(--white); background: var(--brand-viridian-dark); overflow: hidden; text-align: center; }
.learning-cloud::before, .learning-cloud::after { position: absolute; border-radius: 50%; background: rgba(255,255,255,0.07); content: ""; }
.learning-cloud::before { width: 220px; height: 220px; left: -60px; top: -70px; }.learning-cloud::after { width: 280px; height: 280px; right: -100px; bottom: -120px; }
.learning-cloud h2 { position: relative; z-index: 1; margin-bottom: 42px; color: var(--brand-yellow); font-size: clamp(3rem, 6vw, 5.5rem); }
.cloud-words { position: relative; z-index: 1; display: flex; max-width: 940px; margin-inline: auto; flex-wrap: wrap; gap: 22px 30px; justify-content: center; align-items: center; }
.cloud-words span { padding: 7px 13px; color: var(--white); font-family: var(--font-display); font-size: clamp(1rem, 1.6vw, 1.35rem); transform: rotate(-2deg); }
.cloud-words span:nth-child(3n) { color: var(--brand-yellow); transform: rotate(3deg); }.cloud-words span:nth-child(4n) { color: var(--brand-accent); transform: rotate(-4deg); }.cloud-words .word-lg { font-size: clamp(1.4rem, 2.4vw, 2rem); }.cloud-words .word-xl { font-size: clamp(1.8rem, 3.3vw, 2.8rem); color: var(--brand-orange); }

.faith { background: #fff4d4; }
.faith-grid { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: 70px; align-items: center; }
.faith .section-heading { margin-bottom: 0; }
.scripture-card { padding: 45px 34px; border: 3px solid var(--brand-yellow); border-radius: 38px 18px 38px 18px; background: var(--white); box-shadow: var(--shadow); text-align: center; transform: rotate(2deg); }
.scripture-card svg { width: 62px; height: 62px; margin: 0 auto 20px; fill: none; stroke: var(--brand-orange); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.scripture-card span, .scripture-card strong { display: block; }.scripture-card span { margin-bottom: 8px; color: var(--muted); }.scripture-card strong { color: var(--brand-viridian-dark); font-family: var(--font-display); font-size: 1.55rem; }

.opportunities { background: linear-gradient(#f1f8f3, #fffaf0); }
.opportunity-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: stretch; }
.opportunity-card { position: relative; padding: 38px 32px 34px; border: 2px solid rgba(0,127,102,0.14); border-radius: 38px 20px 38px 20px; background: var(--white); box-shadow: var(--shadow); overflow: hidden; transition: transform 0.25s ease; }
.opportunity-card:nth-child(2) { border-radius: 20px 38px 20px 38px; }.opportunity-card:hover { transform: translateY(-7px); }
.opportunity-primary { color: var(--white); background: var(--brand-viridian); transform: scale(1.035); }
.opportunity-primary:hover { transform: scale(1.035) translateY(-7px); }.opportunity-primary h3, .opportunity-primary .text-link { color: var(--white); }.opportunity-primary .status { color: var(--brand-dark); background: var(--brand-yellow); }
.opportunity-card .status { display: inline-flex; padding: 7px 12px; border-radius: 999px; color: var(--brand-viridian-dark); background: var(--brand-accent); font-size: 0.82rem; font-weight: 900; }
.opportunity-card > svg { width: 54px; height: 54px; margin: 30px 0 18px; fill: none; stroke: var(--brand-orange); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.opportunity-card > svg use[href="#icon-paw"] { fill: var(--brand-orange); stroke: none; }.opportunity-card strong { display: block; margin-bottom: 12px; font-size: 1.18rem; }.opportunity-card p { min-height: 90px; }
.future-focus { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 55px; margin-top: 70px; padding: 42px; border-radius: var(--radius-lg); background: var(--brand-cream); }
.future-focus h3 { margin-bottom: 8px; }.future-focus p { margin-bottom: 0; }.future-focus ul { columns: 2; margin: 0; padding-left: 22px; }.future-focus li { margin-bottom: 12px; break-inside: avoid; }

.day { background: var(--white); }
.day-path { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 0; padding: 0; list-style: none; }
.day-path::before { position: absolute; z-index: 0; top: 34px; left: 8%; width: 84%; border-top: 4px dashed var(--brand-accent); content: ""; }
.day-path li { position: relative; z-index: 1; min-height: 158px; padding: 27px 18px; border-radius: 42% 58% 47% 53% / 37% 43% 57% 63%; background: var(--brand-light); box-shadow: 0 8px 22px rgba(20,60,50,0.08); text-align: center; transform: rotate(-.7deg); }
.day-path li:nth-child(even) { margin-top: 42px; border-radius: 55% 45% 58% 42% / 48% 58% 42% 52%; background: #f0f8f4; transform: rotate(.9deg); }
.day-path svg { width: 44px; height: 44px; margin: 0 auto 18px; fill: var(--brand-orange); }.day-path span { font-family: var(--font-display); font-weight: 800; }

.outcomes { color: var(--white); background: var(--brand-viridian-dark); }
.outcomes h2, .outcomes .eyebrow, .outcomes .section-heading p { color: var(--white); }
.outcomes-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 70px; align-items: center; }
.outcomes .section-heading { margin-bottom: 0; }
.outcome-cloud { display: flex; flex-wrap: wrap; gap: 13px; justify-content: center; }
.outcome-cloud span { padding: 12px 17px; border-radius: 48% 52% 44% 56% / 55% 45% 55% 45%; color: var(--brand-dark); background: var(--brand-yellow); font-weight: 850; }.outcome-cloud span:nth-child(2n) { background: var(--brand-accent); }.outcome-cloud span:nth-child(3n) { background: var(--brand-coral); }

.enrollment { background: #eef7f2; }
.enrollment-grid, .contact-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(45px, 7vw, 90px); align-items: start; }
.steps { display: grid; gap: 18px; padding: 0; list-style: none; }
.steps li { display: flex; gap: 15px; align-items: center; }.steps b { display: grid; width: 44px; height: 44px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: var(--white); background: var(--brand-viridian); font-family: var(--font-display); }.steps strong, .steps span { display: block; }.steps span { color: var(--muted); font-size: 0.94rem; }
.inquiry-form { position: relative; padding: clamp(28px, 5vw, 48px); border: 1px solid var(--line); border-radius: 42px 20px 42px 20px; background: var(--white); box-shadow: var(--shadow); }
.form-heading { display: flex; margin-bottom: 28px; justify-content: space-between; gap: 16px; align-items: baseline; }.form-heading span { color: var(--brand-dark); font-family: var(--font-display); font-size: 1.6rem; }.form-heading small { color: var(--muted); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.field { display: grid; gap: 7px; color: var(--brand-dark); font-weight: 750; }.field-full { grid-column: 1 / -1; }
.field input, .field select, .field textarea { width: 100%; min-height: 50px; padding: 11px 13px; border: 2px solid #c7d8d1; border-radius: 13px; color: var(--ink); background: var(--white); font-weight: 500; }.field textarea { resize: vertical; }.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--brand-viridian); outline: 3px solid rgba(0,127,102,0.15); }
.check-field { display: flex; gap: 12px; align-items: flex-start; }.check-field input { width: 21px; height: 21px; margin-top: 3px; accent-color: var(--brand-viridian); }.privacy-note { margin: 22px 0; color: var(--muted); font-size: 0.84rem; }.honeypot { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }.field-error { display: block; color: #9b2c1c; font-size: 0.82rem; }.form-status { margin-top: 16px; font-weight: 750; }.form-status.success { color: var(--brand-viridian-dark); }.form-status.error { color: #9b2c1c; }

.tuition { background: var(--brand-light); }
.tuition-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tuition-card { padding: 38px 32px; border-radius: 32px; background: var(--white); box-shadow: var(--shadow); }.tuition-card > span { color: var(--brand-viridian); font-weight: 900; text-transform: uppercase; letter-spacing: 0.08em; }.tuition-card h3 { margin: 17px 0; }.payment-card { border: 2px dashed var(--brand-accent); }.payment-card svg { width: 52px; height: 52px; margin-bottom: 20px; fill: none; stroke: var(--brand-orange); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }

.support { color: var(--white); background: linear-gradient(135deg, var(--brand-viridian), var(--brand-viridian-dark)); }
.support-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 70px; align-items: center; }.support h2 { color: var(--white); }.support-copy p { font-size: 1.12rem; }.button-stack { display: flex; flex-wrap: wrap; gap: 13px; align-items: center; }.needs-card { padding: 40px; border-radius: 46px 20px 46px 20px; color: var(--ink); background: var(--white); }.needs-card ul { display: grid; gap: 19px; margin: 16px 0 0; padding: 0; list-style: none; }.needs-card li { position: relative; padding-left: 31px; }.needs-card li::before { position: absolute; left: 0; top: 6px; width: 16px; height: 16px; border-radius: 50% 50% 45% 55%; background: var(--brand-orange); box-shadow: 7px -4px 0 -3px var(--brand-yellow); content: ""; }.needs-card strong, .needs-card span { display: block; }.needs-card span { color: var(--muted); font-size: 0.92rem; }

.vision { background: #fff5d8; }
.growth-path { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }.growth-path::before { position: absolute; top: 70px; left: 14%; width: 72%; border-top: 5px dotted var(--brand-orange); content: ""; }.growth-path article { position: relative; padding: 30px; border-radius: 40px; background: var(--white); box-shadow: var(--shadow); text-align: center; }.growth-path article:nth-child(2) { transform: translateY(24px); }.growth-path article > span { display: inline-flex; padding: 6px 14px; border-radius: 999px; color: var(--white); background: var(--brand-viridian); font-weight: 900; }.growth-path svg { width: 52px; height: 52px; margin: 20px auto; fill: none; stroke: var(--brand-orange); stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }.growth-path svg use[href="#icon-paw"] { fill: var(--brand-orange); stroke: none; }.vision-note { margin: 65px auto 0; color: var(--muted); text-align: center; }

.faq { background: var(--white); }
.faq-grid { display: grid; grid-template-columns: 0.75fr 1.25fr; gap: 70px; align-items: start; }.faq-contact { display: inline-flex; padding: 18px 24px; flex-direction: column; border-radius: 24px 24px 24px 5px; color: var(--white); background: var(--brand-viridian); }.faq-contact a { color: var(--brand-yellow); font-family: var(--font-display); font-size: 1.4rem; }.faq-list { display: grid; gap: 25px; }.faq-item { position: relative; }.faq-item:nth-child(odd) { margin-right: 8%; }.faq-item:nth-child(even) { margin-left: 7%; }.faq-item h3 { margin: 0; }.faq-item button { display: flex; width: 100%; min-height: 76px; padding: 19px 23px; justify-content: flex-start; gap: 16px; align-items: center; border: 0; border-radius: 31px 31px 8px 31px; color: var(--brand-dark); background: #e0f2ea; box-shadow: 0 9px 22px rgba(20,60,50,.08); font-family: var(--font-display); font-size: 1.1rem; text-align: left; cursor: pointer; }.faq-item:nth-child(even) button { border-radius: 31px 31px 31px 8px; background: #ffedb2; }.faq-item button::before { width: 37px; height: 37px; flex: 0 0 auto; border-radius: 50%; background-color: var(--white); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='%23007f66'%3E%3Cellipse cx='32' cy='42' rx='17' ry='14'/%3E%3Cellipse cx='12' cy='28' rx='7' ry='9'/%3E%3Cellipse cx='25' cy='17' rx='7' ry='9'/%3E%3Cellipse cx='40' cy='17' rx='7' ry='9'/%3E%3Cellipse cx='53' cy='28' rx='7' ry='9'/%3E%3C/svg%3E"); background-position: center; background-repeat: no-repeat; background-size: 24px; content: ""; }.faq-item button span { flex: 1; }.faq-item button i { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: var(--white); background: var(--brand-viridian); font-style: normal; transition: transform 0.2s ease; }.faq-item.is-open button i { transform: rotate(45deg); }.faq-answer { position: relative; margin: 12px 34px 0 58px; padding: 35px 25px 23px; border-radius: 8px 28px 28px 28px; background: var(--brand-light); box-shadow: 0 8px 20px rgba(20,60,50,.06); }.faq-answer::before { position: absolute; top: 11px; left: 25px; color: var(--brand-orange); font-size: .75rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; content: "Kingdom Cubs answers"; }.faq-answer p { margin: 0; }

.contact { background: #eef7f2; }.contact address { display: grid; gap: 18px; font-style: normal; }.contact address div { padding: 17px 20px; border-left: 5px solid var(--brand-yellow); border-radius: 0 16px 16px 0; background: var(--white); }.contact address span, .contact address strong, .contact address a { display: block; }.contact address span { color: var(--muted); font-size: 0.8rem; font-weight: 850; letter-spacing: 0.08em; text-transform: uppercase; }.contact address a { color: var(--brand-viridian-dark); font-weight: 900; }

.final-cta { padding: 95px 0; color: var(--white); background: var(--brand-dark); text-align: center; }.final-inner { max-width: 900px; }.final-inner > svg { width: 58px; height: 58px; margin: 0 auto 22px; fill: var(--brand-yellow); transform: rotate(-14deg); }.final-cta h2 { color: var(--white); }.final-cta p { font-size: 1.12rem; }.final-cta .button-row { justify-content: center; }
footer { position: relative; padding: 82px 0 25px; color: rgba(255,255,255,0.85); background: #0a2e26; overflow: hidden; }.footer-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.2fr 0.8fr 0.95fr 0.9fr; gap: 45px; }.footer-grid > * { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }.footer-grid strong { color: var(--brand-yellow); font-family: var(--font-display); }.footer-grid a { text-decoration: none; }.footer-grid a:hover { color: var(--brand-yellow); }.footer-brand { display: block; width: 165px; height: 165px; margin-top: -35px; flex: 0 0 165px; }.footer-brand img { width: 100%; height: 100%; object-fit: contain; }.footer-cta { display: inline-flex; min-height: 48px; padding: 11px 17px; align-items: center; border: 1px solid rgba(255,255,255,0.25); border-radius: 999px; }.footer-bottom { position: relative; z-index: 1; display: flex; margin-top: 50px; padding-top: 20px; justify-content: space-between; gap: 20px; border-top: 1px solid rgba(255,255,255,0.14); font-size: 0.82rem; }.footer-foliage { position: absolute; inset: auto -45px -55px auto; display: flex; align-items: flex-end; gap: 18px; color: var(--brand-accent); opacity: .13; transform: rotate(-10deg); }.footer-foliage svg:first-child { width: 280px; height: 330px; fill: currentColor; stroke: currentColor; }.footer-foliage svg:not(:first-child) { width: 42px; height: 42px; margin-bottom: 80px; fill: var(--brand-yellow); }
.back-top { position: fixed; z-index: 40; right: 22px; bottom: 22px; display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; color: var(--white); background: var(--brand-viridian); box-shadow: var(--shadow); opacity: 0; pointer-events: none; text-decoration: none; transform: translateY(12px); transition: 0.2s ease; }.back-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.65s ease, transform 0.65s ease; }.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1080px) {
  .desktop-nav a { padding-inline: 12px; font-size: 0.96rem; }
  .brand-row { grid-template-columns: 170px 1fr auto; min-height: 165px; }.brand { width: 166px; height: 166px; margin-bottom: 0; }
  .benefit-grid { grid-template-columns: repeat(2, 1fr); }.opportunity-grid { grid-template-columns: 1fr 1fr; }.opportunity-primary { transform: none; }.opportunity-primary:hover { transform: translateY(-7px); }.opportunity-card:last-child { grid-column: 1 / -1; max-width: 560px; justify-self: center; }.footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 860px) {
  html { scroll-padding-top: 70px; }.container { width: min(calc(100% - 30px), var(--container)); }
  .brand-row { grid-template-columns: 118px 1fr auto; min-height: 126px; gap: 15px; }.brand { width: 116px; height: 116px; margin-bottom: 0; }.brand-row p span { display: none; }.brand-row p strong { font-size: 1.2rem; }.header-cta { min-height: 48px; padding: 11px 17px; font-size: 0.92rem; }
  .desktop-nav { display: none; }.nav-inner { min-height: 64px; justify-content: flex-end; }.menu-toggle { display: grid; width: 48px; height: 48px; padding: 10px; place-content: center; gap: 5px; border: 2px solid rgba(255,255,255,0.5); border-radius: 14px; background: transparent; }.menu-toggle span { display: block; width: 24px; height: 3px; border-radius: 5px; background: var(--white); }.mobile-nav { position: absolute; top: 100%; left: 0; display: grid; width: 100%; max-height: 0; padding: 0 20px; overflow: hidden; background: var(--brand-viridian-dark); opacity: 0; visibility: hidden; transition: max-height 0.25s ease, opacity 0.2s ease; }.mobile-nav.is-open { max-height: calc(100vh - 64px); padding-block: 14px 24px; overflow-y: auto; opacity: 1; visibility: visible; }.mobile-nav a { min-height: 50px; padding: 12px 8px; border-bottom: 1px solid rgba(255,255,255,0.12); color: var(--white); font-weight: 800; text-decoration: none; }
  .hero { min-height: auto; }.hero-grid, .mission-grid, .faith-grid, .enrollment-grid, .contact-grid, .support-grid, .outcomes-grid, .faq-grid { grid-template-columns: 1fr; }.hero-copy { text-align: center; }.hero-lede { margin-inline: auto; }.hero .button-row { justify-content: center; }.hero-visual { width: min(680px, 100%); margin-inline: auto; }.hero-image-wrap { aspect-ratio: 1.25 / 1; }.pillar-bubbles { grid-template-columns: 1fr; max-width: 530px; margin-inline: auto; }.pillar, .pillar:nth-child(2), .pillar:first-child, .pillar:nth-child(3) { min-height: 300px; transform: none; }.mission-grid { max-width: 680px; }.mission-visual { min-height: 360px; }.faith-grid { gap: 40px; }.scripture-card { max-width: 500px; }.opportunity-grid, .tuition-grid { grid-template-columns: 1fr; }.opportunity-card:last-child { grid-column: auto; max-width: none; }.opportunity-card p { min-height: 0; }.future-focus { grid-template-columns: 1fr; }.day-path { grid-template-columns: repeat(2, 1fr); }.outcomes-grid, .support-grid, .faq-grid { gap: 45px; }.growth-path { grid-template-columns: 1fr; }.growth-path::before { left: 50px; top: 8%; width: 0; height: 80%; border-top: 0; border-left: 5px dotted var(--brand-orange); }.growth-path article:nth-child(2) { transform: none; }.faq .section-heading { margin-bottom: 30px; }
}

@media (max-width: 620px) {
  body { font-size: 16px; }.section { padding-block: 75px; }.announcement { flex-direction: column; gap: 0; padding-block: 7px; }.brand-row { grid-template-columns: 100px 1fr; min-height: 108px; }.brand { width: 98px; height: 98px; margin-bottom: 0; }.brand-row p strong { font-size: 1.05rem; }.header-cta { display: none; }
  h1 { font-size: clamp(2.65rem, 15vw, 4rem); }.hero { padding-top: 60px; }.hero-grid { gap: 46px; }.hero-image-wrap { aspect-ratio: 0.98 / 1; border-width: 6px; }.card-age { right: -4px; }.card-play { left: -4px; }.button-row, .button-stack { align-items: stretch; flex-direction: column; }.button-row .button, .button-stack .button { width: 100%; }.pillar { padding-inline: 28px; }.benefit-grid { grid-template-columns: 1fr; }.benefit-bubble, .benefit-bubble:nth-child(n) { min-height: 0; border-radius: 34% 26% 31% 24% / 27% 37% 25% 35%; transform: none; }.learning-cloud { margin-top: 70px; padding: 50px 20px; border-radius: 50px 22px 50px 22px; }.cloud-words { gap: 14px 12px; }.cloud-words span { padding: 6px 8px; font-size: 1.04rem; transform: none !important; }.cloud-words .word-lg { font-size: 1.28rem; }.cloud-words .word-xl { font-size: 1.65rem; }.future-focus { padding: 30px 24px; }.future-focus ul { columns: 1; }.day-path { grid-template-columns: 1fr; }.day-path::before { left: 50%; top: 4%; width: 0; height: 90%; border-top: 0; border-left: 4px dashed var(--brand-accent); }.day-path li, .day-path li:nth-child(even) { margin-top: 0; transform: none; }.form-grid { grid-template-columns: 1fr; }.field-full { grid-column: auto; }.form-heading { align-items: flex-start; flex-direction: column; }.inquiry-form { border-radius: 30px 14px 30px 14px; }.tuition-card, .needs-card { padding: 30px 24px; }.faq-item:nth-child(n) { margin-inline: 0; }.faq-item button { padding-inline: 17px; }.faq-answer { margin-left: 18px; margin-right: 4px; }.footer-grid { grid-template-columns: 1fr; }.footer-bottom { flex-direction: column; }.paw-journey { display: none; }.section-paw-trail { opacity: .75; transform: scale(.8) rotate(-8deg); }
}

@media print {
  .skip-link, .announcement, .nav-shell, .back-top, .button { display: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

.analytics-choice{position:fixed;left:20px;bottom:20px;z-index:400;max-width:450px;padding:22px;background:#fffaf0;color:#143c32;border:1px solid #aac5b8;border-radius:18px;box-shadow:0 10px 40px #143c3233;font:16px/1.5 Arial,sans-serif}.analytics-choice[hidden]{display:none}.analytics-choice p{margin:0 0 14px}.analytics-choice>div{display:flex;gap:10px;flex-wrap:wrap}.analytics-choice button,.analytics-preferences{padding:10px 16px;min-height:44px;border:1px solid #007f66;border-radius:10px;background:#fff;color:#075b4b;font:inherit;cursor:pointer}.analytics-choice button[data-choice=yes]{background:#007f66;color:white}.analytics-preferences{margin:16px 4vw;font-size:.85rem}@media(max-width:600px){.analytics-choice{left:12px;right:12px;bottom:12px;max-width:none}}
.design-credit{position:relative;margin-top:0;margin-bottom:0;padding-block:20px 30px;text-align:center;font-size:.88rem;color:#d8e8df}.design-credit a{color:inherit;font-weight:750;text-underline-offset:4px}
