/* ==========================================================
   Fun Foundations redesign (2026). Loaded after styles.css on
   pages with <body class="rd">, so the rest of the site is
   untouched until each page is moved over.
   ========================================================== */

.rd {
    --rd-green: #2F6B1F;
    --rd-green-dark: #1F4A12;
    --rd-green-soft: #E6EEDB;
    --rd-cream: #FBF6EA;
    --rd-cream-2: #F3EAD3;
    --rd-yellow: #F6C324;
    --rd-ink: #2A2A22;
    --rd-muted: #55554A;
    --rd-radius: 22px;
    --rd-shadow: 0 10px 30px rgba(47, 74, 18, 0.12);

    font-family: 'Nunito', system-ui, sans-serif;
    color: var(--rd-ink);
    background: var(--rd-cream);
    line-height: 1.55;
}

.rd-wrap {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 24px;
}

.rd-sr {
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.rd-flip { transform: scaleX(-1); }

.rd a:focus-visible,
.rd button:focus-visible,
.rd input:focus-visible,
.rd select:focus-visible,
.rd textarea:focus-visible {
    outline: 3px solid var(--rd-yellow);
    outline-offset: 2px;
}

/* Preview-only banner */
.rd-preview-flag {
    background: var(--rd-yellow);
    color: var(--rd-ink);
    text-align: center;
    font-size: 13px;
    font-weight: 800;
    padding: 6px 12px;
}

/* ---------- Top bar ---------- */
.rd-topbar {
    background: var(--rd-green);
    color: #fff;
    padding: 12px 0;
}

.rd-topbar-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    text-align: center;
}

.rd-topbar-icon { flex: none; color: #fff; }

.rd-topbar-main {
    font-size: 22px;
    font-weight: 800;
    line-height: 1.2;
}

.rd-topbar-main strong { color: var(--rd-yellow); }

.rd-topbar-sub {
    font-size: 14px;
    opacity: 0.92;
}

.rd-topbar-leaf {
    color: rgba(255, 255, 255, 0.85);
    width: 84px;
    height: 42px;
    flex: none;
    margin: 0 20px;
}

/* ---------- Nav (shared include, re-skinned) ---------- */
.rd header {
    background: var(--rd-cream);
    box-shadow: 0 1px 0 rgba(47, 74, 18, 0.1);
}

.rd .nav-links a { color: var(--rd-ink); }
.rd .nav-links a:hover,
.rd .dropdown:hover .dropbtn,
.rd .dropdown-content a:hover { color: var(--rd-green); }
.rd .dropdown-content { border-top-color: var(--rd-green); background: #fff; }
.rd .nav-links .btn-nav { background: var(--rd-green); color: #fff; }

@media (max-width: 768px) {
    .rd .nav-links { background: var(--rd-cream); }
}

/* ---------- Hero ---------- */
.rd-hero {
    padding: 40px 0 48px;
    background:
        radial-gradient(1200px 500px at 85% 0%, #FFF3D1 0%, transparent 60%),
        var(--rd-cream);
}

.rd-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 48px;
    align-items: center;
}

.rd-eyebrow {
    font-weight: 800;
    font-size: 14px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rd-green);
    margin-bottom: 14px;
}

.rd-hero h1 {
    font-size: clamp(34px, 4.2vw, 52px);
    font-weight: 800;
    font-style: italic;
    line-height: 1.12;
    color: var(--rd-green);
    letter-spacing: -0.01em;
}

.rd-underline {
    display: block;
    color: var(--rd-yellow);
    margin: 10px 0 22px;
    max-width: 60%;
    height: auto;
}

.rd-lede {
    font-size: 19px;
    color: var(--rd-ink);
    max-width: 34ch;
}

.rd-places {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 26px;
}

.rd-places a {
    font-weight: 700;
    font-size: 15px;
    color: var(--rd-green);
    background: var(--rd-green-soft);
    padding: 6px 14px;
    border-radius: 999px;
    text-decoration: none;
    transition: background 0.2s;
}

.rd-places a:hover { background: #d6e3c4; }

.rd-hero-media {
    position: relative;
}

.rd-hero-video {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 11;
    object-fit: cover;
    border-radius: 32px;
    box-shadow: var(--rd-shadow);
    background: var(--rd-cream-2);
}

/* Placeholders until Amy's media arrives */
.rd-ph {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 24px;
    color: var(--rd-green);
    font-weight: 700;
    background:
        repeating-linear-gradient(135deg, transparent 0 18px, rgba(47, 107, 31, 0.06) 18px 36px),
        var(--rd-cream-2);
}

.rd-ph span {
    background: rgba(255, 255, 255, 0.8);
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 15px;
}

.rd-ph-hero {
    aspect-ratio: 16 / 11;
    border-radius: 32px;
    box-shadow: var(--rd-shadow);
}

.rd-ph-card { aspect-ratio: 10 / 7; }

/* Book Tour button */
.rd-book {
    position: absolute;
    top: 20px;
    right: 20px;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    background: var(--rd-green);
    color: #fff;
    font-size: 24px;
    font-weight: 800;
    text-decoration: none;
    padding: 14px 28px 14px 22px;
    border-radius: 999px;
    border: 4px solid var(--rd-yellow);
    box-shadow: 0 8px 22px rgba(31, 74, 18, 0.35);
    transition: transform 0.2s, background 0.2s;
}

.rd-book:hover {
    background: var(--rd-green-dark);
    transform: translateY(-2px);
}

.rd-arrow { transition: transform 0.2s; }
.rd-book:hover .rd-arrow,
.rd-btn:hover .rd-arrow { transform: translateX(4px); }

/* ---------- Values strip ---------- */
.rd-values {
    background: #fff;
    border-block: 1px solid rgba(47, 74, 18, 0.08);
}

.rd-values-list {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    padding-top: 22px;
    padding-bottom: 22px;
}

.rd-values-list li {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 6px 16px;
    font-weight: 700;
    font-size: 16px;
    line-height: 1.3;
}

.rd-values-list li + li { border-left: 2px solid var(--rd-green-soft); }

.rd-values-list svg {
    width: 48px;
    height: 48px;
    flex: none;
    color: var(--rd-green);
}

.rd-values-list span { max-width: 13ch; }

/* ---------- Our Nurseries ---------- */
.rd-nurseries { padding: 64px 0 80px; }

.rd-section-head {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 28px;
    text-align: center;
    margin-bottom: 40px;
}

.rd-section-head h2,
.rd-contact h2 {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: clamp(32px, 4vw, 46px);
    line-height: 1.1;
    color: var(--rd-green);
    margin-bottom: 10px;
}

.rd-section-head p {
    font-size: 18px;
    max-width: 60ch;
    margin: 0 auto;
}

.rd-head-leaf {
    color: var(--rd-green);
    width: 110px;
    height: 55px;
    flex: none;
}

.rd-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.rd-card {
    background: #fff;
    border-radius: var(--rd-radius);
    overflow: hidden;
    box-shadow: var(--rd-shadow);
    display: flex;
    flex-direction: column;
}

.rd-card img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 10 / 7;
    object-fit: cover;
}

.rd-card-body {
    padding: 22px 24px 28px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    background: linear-gradient(#fff, var(--rd-cream));
}

.rd-card h3 {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 27px;
    font-weight: 800;
    color: var(--rd-ink);
    margin-bottom: 6px;
}

.rd-card h3 svg { color: var(--rd-green); }

.rd-card p {
    font-size: 17px;
    margin-bottom: 20px;
    max-width: 28ch;
    flex: 1;
}

.rd-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: var(--rd-green);
    color: #fff;
    font: inherit;
    font-size: 18px;
    font-weight: 700;
    text-decoration: none;
    padding: 11px 30px;
    border-radius: 999px;
    border: none;
    cursor: pointer;
    transition: background 0.2s;
}

.rd-btn:hover { background: var(--rd-green-dark); }
.rd-btn:disabled { opacity: 0.6; cursor: wait; }

/* ---------- Contact ---------- */
.rd-contact {
    padding: 72px 0;
    background: #fff;
}

.rd-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: 56px;
    align-items: start;
}

.rd-contact-info p { font-size: 17px; margin-bottom: 22px; }

.rd-phones { list-style: none; }

.rd-phones li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--rd-green-soft);
    font-weight: 700;
}

.rd-phones a {
    color: var(--rd-green);
    text-decoration: none;
    white-space: nowrap;
}

.rd-phones a:hover { text-decoration: underline; }

.rd-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    background: var(--rd-cream);
    padding: 28px;
    border-radius: var(--rd-radius);
}

.rd-form label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-weight: 700;
    font-size: 15px;
}

.rd-form input,
.rd-form select,
.rd-form textarea {
    font: inherit;
    font-weight: 400;
    font-size: 16px;
    padding: 12px 14px;
    border: 1.5px solid #D9D2BE;
    border-radius: 12px;
    background: #fff;
    color: var(--rd-ink);
}

.rd-form input:focus,
.rd-form select:focus,
.rd-form textarea:focus { border-color: var(--rd-green); }

.rd-span { grid-column: 1 / -1; }

.rd-msg {
    padding: 12px 14px;
    border-radius: 12px;
    font-weight: 700;
}

.rd-msg.is-ok { background: #DDEFD3; color: #1F4A12; }
.rd-msg.is-err { background: #F8DAD7; color: #7A1E16; }

/* ---------- Play Learn Grow band + footer ---------- */
.rd-band {
    position: relative;
    background: var(--rd-green);
    color: #fff;
    text-align: center;
    padding: 18px 16px 30px;
    margin-top: 40px;
}

.rd-band-wave {
    position: absolute;
    left: 0;
    bottom: 100%;
    width: 100%;
    height: 40px;
    color: var(--rd-green);
}

.rd-band p {
    font-family: 'Caveat', cursive;
    font-size: clamp(36px, 5vw, 54px);
    line-height: 1.1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
}

.rd-band p::before,
.rd-band p::after {
    content: "";
    width: 80px;
    height: 2px;
    background: rgba(255, 255, 255, 0.7);
}

.rd-band span { font-family: 'Nunito', sans-serif; font-size: 0.5em; }

.rd footer {
    background: var(--rd-green-dark);
    font-size: 15px;
}

.rd .footer-credit { border-top-color: rgba(255, 255, 255, 0.15); }
.rd .footer-credit a { color: var(--rd-yellow); }
.rd .footer-credit span { color: rgba(255, 255, 255, 0.65); }

.rd .mobile-phone-bar { background: var(--rd-green); }

/* ---------- Book Tour picker ---------- */
.rd-tour {
    border: none;
    border-radius: var(--rd-radius);
    padding: 32px 28px 28px;
    margin: auto;
    width: min(440px, calc(100vw - 32px));
    background: var(--rd-cream);
    color: var(--rd-ink);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    text-align: center;
    font-family: 'Nunito', system-ui, sans-serif;
}

.rd-tour::backdrop { background: rgba(31, 74, 18, 0.55); }

.rd-tour h2 {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: 26px;
    line-height: 1.2;
    color: var(--rd-green);
    margin-bottom: 6px;
}

.rd-tour p { margin-bottom: 20px; }

.rd-tour-close {
    position: absolute;
    top: 8px;
    right: 12px;
    background: none;
    border: none;
    font-size: 30px;
    line-height: 1;
    color: var(--rd-muted);
    cursor: pointer;
    padding: 4px 8px;
}

.rd-tour-options {
    display: grid;
    gap: 10px;
}

.rd-tour-option {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #fff;
    color: var(--rd-green);
    font-size: 19px;
    font-weight: 800;
    text-decoration: none;
    padding: 14px;
    border-radius: 999px;
    border: 2px solid var(--rd-green);
    transition: background 0.2s, color 0.2s;
}

.rd-tour-option:hover {
    background: var(--rd-green);
    color: #fff;
}

/* ---------- Book Tour: Calendly modal ---------- */
.rd-booking {
    border: none;
    border-radius: var(--rd-radius);
    padding: 0;
    margin: auto;
    /* Calendly switches to its two-column layout from about 1150px wide */
    width: min(1200px, calc(100vw - 48px));
    height: min(820px, calc(100vh - 48px));
    max-width: none;
    max-height: none;
    background: #fff;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    overflow: hidden;
    font-family: 'Nunito', system-ui, sans-serif;
}

.rd-booking[open] {
    display: flex;
    flex-direction: column;
}

.rd-booking::backdrop { background: rgba(31, 74, 18, 0.55); }

.rd-booking-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px 14px 28px;
    background: var(--rd-green);
    color: #fff;
}

.rd-booking-head h2 {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: 24px;
    line-height: 1.2;
    margin: 0;
}

.rd-booking-close {
    background: none;
    border: none;
    color: #fff;
    font-size: 34px;
    line-height: 1;
    cursor: pointer;
    padding: 2px 10px;
    border-radius: 999px;
}

.rd-booking-close:hover { background: rgba(255, 255, 255, 0.15); }

.rd-booking-body {
    flex: 1;
    min-height: 0;
}

.rd-booking-body iframe { display: block; }

html.rd-modal-open { overflow: hidden; }

@media (max-width: 640px) {
    .rd-booking {
        width: 100vw;
        height: 100dvh;
        border-radius: 0;
    }
    .rd-booking-head { padding-left: 18px; }
    .rd-booking-head h2 { font-size: 20px; }
}

/* ==========================================================
   Location pages
   ========================================================== */
.rd-section { padding: 72px 0; }
.rd-section-white { background: #fff; }

.rd-btn-lg { font-size: 19px; padding: 13px 28px; }

.rd-btn-ghost {
    background: transparent;
    color: var(--rd-green);
    box-shadow: inset 0 0 0 2px var(--rd-green);
}

.rd-btn-ghost:hover { background: var(--rd-green); color: #fff; }

.rd-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}

.rd-contact-list {
    list-style: none;
    display: grid;
    gap: 10px;
    margin-top: 22px;
    font-weight: 700;
}

.rd-contact-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.rd-contact-list .rd-icon {
    flex: none;
    color: var(--rd-green);
    margin-top: 1px;
}

.rd-contact-list a {
    color: var(--rd-ink);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.rd-contact-list a:hover { color: var(--rd-green); text-decoration: underline; }

.rd-loc-hero h1 { font-size: clamp(34px, 4vw, 50px); }
.rd-loc-hero .rd-lede { max-width: 44ch; font-size: 18px; }

/* Facts strip reuses the values strip */
.rd-facts .rd-icon { width: 44px; height: 44px; flex: none; color: var(--rd-green); }
.rd-facts span { max-width: none; font-weight: 600; font-size: 14px; color: var(--rd-muted); }
.rd-facts strong { display: block; font-size: 17px; font-weight: 800; color: var(--rd-ink); }

/* Sessions */
.rd-sessions {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.rd-sessions-2 { grid-template-columns: repeat(2, minmax(0, 360px)); justify-content: center; }

.rd-session {
    background: #fff;
    border-radius: var(--rd-radius);
    box-shadow: var(--rd-shadow);
    padding: 30px 24px;
    text-align: center;
}

.rd-session-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--rd-green-soft);
    color: var(--rd-green);
    margin-bottom: 14px;
}

.rd-session h3 {
    font-size: 21px;
    font-weight: 800;
    color: var(--rd-green);
    margin-bottom: 6px;
}

.rd-session-time { font-size: 26px; font-weight: 800; }
.rd-session-ask { font-size: 19px; }
.rd-session-ask a { color: var(--rd-ink); }
.rd-session-when { color: var(--rd-muted); font-weight: 600; }

.rd-session-ages {
    display: inline-block;
    margin-top: 14px;
    background: var(--rd-cream-2);
    padding: 4px 14px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
}

.rd-note {
    text-align: center;
    color: var(--rd-muted);
    margin-top: 26px;
    font-size: 15px;
}

/* Gallery */
.rd-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.rd-gallery img,
.rd-gallery .rd-ph {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--rd-radius);
}

/* Facilities */
.rd-features {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

.rd-feature {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: #fff;
    border-radius: 18px;
    padding: 22px;
    border: 1px solid rgba(47, 74, 18, 0.08);
}

.rd-feature-icon {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: var(--rd-green-soft);
    color: var(--rd-green);
}

.rd-feature h3 { font-size: 17px; font-weight: 800; margin-bottom: 4px; }
.rd-feature p { font-size: 15px; color: var(--rd-muted); }

/* Book a tour */
.rd-tour-section {
    background:
        radial-gradient(800px 400px at 0% 100%, #FFF3D1 0%, transparent 60%),
        var(--rd-cream);
}

.rd-tour-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
    gap: 48px;
    align-items: start;
}

.rd-tour-info h2 {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: clamp(32px, 4vw, 46px);
    color: var(--rd-green);
    line-height: 1.1;
    margin-bottom: 12px;
}

.rd-tour-info p { font-size: 17px; }

.rd-tour-embed {
    background: #fff;
    border-radius: var(--rd-radius);
    box-shadow: var(--rd-shadow);
    overflow: hidden;
}

.rd-tour-fallback {
    text-align: center;
    padding: 48px 28px;
    color: var(--rd-ink);
}

.rd-tour-fallback > .rd-icon { color: var(--rd-green); margin-bottom: 10px; }
.rd-tour-fallback h3 { font-size: 22px; font-weight: 800; margin-bottom: 6px; }
.rd-tour-fallback p { color: var(--rd-muted); max-width: 40ch; margin: 0 auto; }
.rd-tour-fallback .rd-actions { justify-content: center; }

/* Map */
.rd-map {
    border-radius: var(--rd-radius);
    overflow: hidden;
    box-shadow: var(--rd-shadow);
    background: #fff;
}

.rd-map iframe {
    display: block;
    width: 100%;
    height: 400px;
    border: 0;
}

.rd-map-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    padding: 18px 24px;
}

.rd-map-bar p {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
}

.rd-map-bar .rd-icon { color: var(--rd-green); flex: none; }

/* Statement of purpose */
.rd-sop-intro {
    max-width: 820px;
    margin: 0 auto 32px;
    font-size: 17px;
    text-align: center;
}

.rd-sop-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 24px;
}

.rd-sop-card {
    background: #fff;
    border-radius: 18px;
    padding: 24px;
    border: 1px solid rgba(47, 74, 18, 0.08);
}

.rd-sop-card h3 {
    font-size: 18px;
    font-weight: 800;
    color: var(--rd-green);
    margin-bottom: 12px;
}

.rd-sop-card dl {
    display: grid;
    grid-template-columns: auto auto;
    gap: 8px 12px;
    font-size: 15px;
}

.rd-sop-card dt { color: var(--rd-muted); }
.rd-sop-card dd { font-weight: 700; text-align: right; }

.rd-details {
    max-width: 820px;
    margin: 0 auto 12px;
    background: #fff;
    border-radius: 16px;
    border: 1px solid rgba(47, 74, 18, 0.08);
    padding: 0 22px;
}

.rd-details summary {
    cursor: pointer;
    font-weight: 800;
    font-size: 17px;
    color: var(--rd-green);
    padding: 16px 0;
    list-style-position: outside;
}

.rd-details[open] { padding-bottom: 18px; }
.rd-details p { margin-bottom: 12px; }
.rd-details ul { list-style: none; display: grid; gap: 6px; }
.rd-details a { color: var(--rd-green); }

/* Other nurseries */
.rd-others { padding-bottom: 96px; }
.rd-others .rd-section-head { margin-bottom: 28px; }

.rd-other-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 420px));
    justify-content: center;
    gap: 20px;
}

.rd-other {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 20px 24px;
    background: var(--rd-cream);
    border-radius: 18px;
    color: var(--rd-ink);
    text-decoration: none;
    border: 2px solid transparent;
    transition: border-color 0.2s;
}

.rd-other:hover { border-color: var(--rd-green); }
.rd-other > .rd-icon { color: var(--rd-green); flex: none; }
.rd-other strong { display: block; font-size: 20px; font-weight: 800; color: var(--rd-green); }
.rd-other span:not(.rd-arrow) { flex: 1; font-size: 15px; }
.rd-other .rd-arrow { font-size: 22px; color: var(--rd-green); }
.rd-other:hover .rd-arrow { transform: translateX(4px); }

/* ==========================================================
   Content pages (About, Fees, Policies, Our Care, 404).
   These still use the original markup from styles.css; mapping
   its colour variables to the new palette re-themes most of it.
   ========================================================== */
.rd {
    --primary: var(--rd-green);
    --secondary: var(--rd-yellow);
    --accent: var(--rd-yellow);
    --dark: var(--rd-ink);
    --light: #fff;
}

.rd .page-hero {
    background:
        radial-gradient(900px 300px at 50% 0%, #FFF3D1 0%, transparent 70%),
        var(--rd-cream);
    color: var(--rd-green);
    padding: 56px 0 40px;
}

.rd .page-hero h1 {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: clamp(36px, 5vw, 56px);
    line-height: 1.1;
}

.rd .page-hero h1::after {
    content: "";
    display: block;
    width: 180px;
    height: 12px;
    margin: 14px auto 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 12'%3E%3Cpath d='M3 8c60-6 150-7 214-2' fill='none' stroke='%23F6C324' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.rd .page-content {
    max-width: 1000px;
    padding: 24px 24px 80px;
    font-size: 17px;
}

.rd .page-content h2 {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: clamp(26px, 3vw, 34px);
    line-height: 1.15;
    margin: 48px 0 18px;
}

.rd .page-content > :first-child h2:first-child,
.rd .page-content > h2:first-child { margin-top: 16px; }

.rd .page-content h3 { color: var(--rd-green); }

.rd .page-content p a,
.rd .page-content li a,
.rd .page-content td a { color: var(--rd-green); font-weight: 700; }

/* Cards: white on the cream page, soft border */
.rd .intro-box,
.rd .info-card,
.rd .faq-item,
.rd .discount-card,
.rd .voucher-card,
.rd .meal-item,
.rd .cta-box,
.rd .info-list li,
.rd .activity-list li {
    background: #fff;
    box-shadow: 0 2px 12px rgba(47, 74, 18, 0.06);
}

.rd .intro-box,
.rd .info-card,
.rd .discount-card,
.rd .voucher-card,
.rd .meal-item,
.rd .cta-box { border-radius: var(--rd-radius); }

.rd .value-card {
    background: #fff;
    border-radius: var(--rd-radius);
    box-shadow: var(--rd-shadow);
}

.rd .value-card h3 { color: var(--rd-green); margin-bottom: 8px; }
.rd .value-card:hover { transform: translateY(-4px); }

.rd .values-list > h3 {
    font-family: 'Fraunces', Georgia, serif;
    font-weight: 600;
    font-size: 26px;
}

.rd .rd-icon-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--rd-green-soft);
    color: var(--rd-green);
    margin: 0 auto 14px;
}

.rd .value-card h3 { font-size: 20px; }
.rd .policy-link .icon { display: inline-flex; color: var(--rd-green); }

.rd .founder-img { border-radius: var(--rd-radius); box-shadow: var(--rd-shadow); }

.rd .vouchers-box { background: var(--rd-green); }

.rd .ratio-item { border-radius: var(--rd-radius); }

/* Tables */
.rd .fees-table,
.rd .routine-table {
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(47, 74, 18, 0.08);
}

.rd .fees-table th,
.rd .routine-table th { background: var(--rd-green); }

.rd .fees-table td,
.rd .routine-table td { border-bottom-color: var(--rd-green-soft); }

.rd .fees-table tr:last-child td,
.rd .routine-table tr:last-child td { border-bottom: none; }

.rd .fees-table tr:nth-child(even),
.rd .routine-table tr:nth-child(even) { background: #FCFAF3; }

.rd .fees-table tr:hover,
.rd .routine-table tr:hover { background: var(--rd-green-soft); }

/* Buttons from the old stylesheet */
.rd .btn-primary { background: var(--rd-green); color: #fff; }
.rd .btn-primary:hover { background: var(--rd-green-dark); opacity: 1; transform: none; }
.rd .btn-outline { border-color: var(--rd-green); color: var(--rd-green); }
.rd .btn-outline:hover { background: var(--rd-green); color: #fff; }
.rd .text-link { color: var(--rd-green); font-weight: 700; }

/* Policies */
.rd .policy-link { border-radius: 14px; }
.rd .policies-search input { border-color: #D9D2BE; background: #fff; }

@media (max-width: 768px) {
    .rd .fees-table,
    .rd .routine-table { display: block; overflow-x: auto; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1000px) {
    .rd-topbar-leaf,
    .rd-head-leaf { display: none; }

    .rd-hero-grid { grid-template-columns: 1fr; gap: 28px; }
    .rd-lede { max-width: none; }

    .rd-values-list { grid-template-columns: repeat(2, 1fr); row-gap: 14px; }
    .rd-values-list li { justify-content: flex-start; }
    .rd-values-list li + li { border-left: none; }

    .rd-cards { grid-template-columns: 1fr; max-width: 520px; margin: 0 auto; }
    .rd-contact-grid { grid-template-columns: 1fr; gap: 32px; }

    .rd-sessions, .rd-sessions-2 { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
    .rd-features { grid-template-columns: repeat(2, 1fr); }
    .rd-sop-grid { grid-template-columns: 1fr; max-width: 520px; margin-left: auto; margin-right: auto; }
    .rd-tour-grid { grid-template-columns: 1fr; gap: 28px; }
    .rd-other-cards { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .rd-wrap { padding: 0 16px; }

    .rd-topbar-icon { display: none; }
    .rd-topbar-main { font-size: 17px; }
    .rd-topbar-sub { font-size: 12.5px; }

    .rd-hero { padding: 28px 0 32px; }
    .rd-eyebrow { font-size: 12px; letter-spacing: 0.06em; }
    .rd-lede { font-size: 17px; }

    .rd-hero-video,
    .rd-ph-hero { border-radius: 22px; aspect-ratio: 4 / 3; }

    .rd-book {
        position: static;
        display: flex;
        justify-content: center;
        margin-top: 16px;
        font-size: 21px;
    }

    .rd-values-list li { padding: 4px; gap: 10px; font-size: 14.5px; }
    .rd-values-list svg { width: 38px; height: 38px; }

    .rd-nurseries { padding: 48px 0 56px; }
    .rd-form { grid-template-columns: 1fr; padding: 20px; }

    .rd-section { padding: 52px 0; }
    .rd-actions .rd-btn { flex: 1 1 auto; }
    .rd-facts li { align-items: flex-start; }
    .rd-facts .rd-icon { width: 34px; height: 34px; }
    .rd-facts strong { font-size: 15px; }
    .rd-facts span { font-size: 13px; }
    .rd-features { grid-template-columns: 1fr; }
    .rd-gallery { grid-template-columns: 1fr 1fr; gap: 10px; }
    .rd-gallery > :first-child { grid-column: 1 / -1; }
    .rd-map iframe { height: 300px; }
    .rd-map-bar { padding: 16px; }
    .rd-map-bar .rd-btn { width: 100%; }

    .rd-band p::before,
    .rd-band p::after { width: 28px; }
    .rd-band p { gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
    .rd *, .rd *::before, .rd *::after { transition: none !important; }
}
