/* ==========================================================================
   SANITIZED & SPECIFICITY-BOOSTED ISOLATED FIX
   ========================================================================== */

/* Nursery pages only: restore #borderWrapperKp's horizontal containment,
   which a Customizer Additional CSS rule (#borderWrapperKp { overflow:
   visible !important; }) currently overrides. Scoped via body.single-kp-nursuries
   and overflow-x only - does not touch html/body or vertical overflow. */
body.single-kp-nursuries #borderWrapperKp {
    overflow-x: hidden !important;
}

/* Hero Band */
body .generic-nursery h2 { padding-top: 10px !important; }

body .new-nursery-hero h1, 
body .new-nursery-hero h2, 
body .new-nursery-hero h3, 
body .new-nursery-hero h4, 
body .new-nursery-hero p {
    font-weight: 700 !important;
    font-family: houschka-rounded, sans-serif !important;
}

body .new-nursery-hero .container {
    max-width: 1340px !important;
    padding: 55px 16px !important;
}

body .overview_title_25 .overview_sub_title_25 { margin-top: 0px !important; }

/* DEFEATING THE GAP: Boosted to beat legacy inline styles */
body section#about_content_ss.new-nursery-hero {
    background-color: #7bb28e !important;
    background-image: none !important;
    margin-top: 0px !important; 
    padding-top: 25px !important;
    padding-bottom: 25px !important;
}

@media (min-width: 1025px) {
    body section#about_content_ss.new-nursery-hero {
        padding-top: 40px !important; 
        padding-bottom: 40px !important;
    }
}

body .new-nursery-hero h1 {
    font-size: clamp(1.875rem, 1.2481rem + 2.3077vw, 4rem) !important;
    color: white !important;
    line-height: 1 !important;
    font-family: inherit !important;
    margin-top: 11px !important;
}

body .new-nursery-hero h4, 
body .new-nursery-hero p {
    font-size: 18px !important;
    color: #3A455D !important;
    line-height: 3 !important;
}

body .new-nursery-hero .owl-carousel .owl-item img {
    border-radius: 6px !important;
    object-fit: cover !important;
}

body #about_content_ss.new-nursery-hero .rowTop .container {
    align-items: center !important;
    padding-top: 0px !important;
    padding-bottom: 0px !important;
}

body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight {
    margin-top: 0px !important;
    box-shadow: none !important;
}

body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight #nursery_head_slider .item {
    height: 300px !important;
    border-radius: 6px !important;
    border: 0px !important;
}

body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight .nextNursery {
    right: -10px !important;
    border: 10px solid #7bb28e !important;
    top: 80% !important;
    box-shadow: none !important;
    width: 70px !important;
    height: 70px !important;
}

body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight .prevNursery {
    left: -10px !important;
    border: 10px solid #7bb28e !important;
    top: 80% !important;
    box-shadow: none !important;
    width: 70px !important;
    height: 70px !important;
}

body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight .prevNursery img, 
body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight .nextNursery img {
    width: 18px !important;
    height: 18px !important;
}

body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight .owl-dots { display: none !important; }

body #about_content_ss.new-nursery-hero .rowTop .container .contentWrapLeft.no-slider { margin-top: 60px !important; }

@media all and (min-width: 768px) and (max-width: 998px) {
    body #about_content_ss.new-nursery-hero .rowTop .container .contentWrapLeft { margin-top: 45px !important; }
}

@media all and (max-width: 768px) {
    body .new-nursery-hero { margin-bottom: -15px !important; }
    body .new-nursery-hero h2 { font-size: 50px !important; }
    body #about_content_ss.new-nursery-hero .rowTop .container .contentWrapLeft { padding-left: 5% !important; max-width: 100% !important; margin-top: 0px !important; }
    body #about_content_ss.new-nursery-hero .rowTop .container .contentWrapLeft.no-slider { margin-top: 0px !important; }
    body #about_content_ss .rowTop .container .carouselWrapRight { margin-bottom: 35px !important; }
    body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight .prevHpbnr,
    body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight .nextHpbnr { width: 80px !important; height: 80px !important; }

    /* ---- Visual-rhythm pass: measured (real device + local computed-style
       check) top padding was 25px, H1-to-carousel gap was 0px, and bottom
       green space totalled ~71px (35px carousel margin + 25px section
       padding, minus a 15px overlap, plus the overview section's own 26px
       top padding). Rebalance: less at the outer edges, a real gap in the
       middle. The .new-nursery-hero-qualified selectors here are more
       specific than the bare #about_content_ss ones above/elsewhere in this
       file, so they win on nursery pages only - the About Us page (which
       shares the bare #about_content_ss rules) is unaffected. */
    body section#about_content_ss.new-nursery-hero {
        padding-top: 16px !important;
        padding-bottom: 16px !important;
    }
    body .new-nursery-hero .contentWrapLeft {
        margin-bottom: 20px !important;
    }
    body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight {
        margin-bottom: 20px !important;
    }
    /* The +32px negative-margin/calc() breakout tried here previously measured as safely
       contained within the section's own padding (confirmed via getBoundingClientRect: the
       carousel stayed 24-32px inside the true viewport edge in every check), but real-device
       iPhone QA found the page could pan horizontally after it shipped, and reverting it is an
       explicitly acceptable outcome - correct viewport behaviour matters more than the extra
       width. Removed rather than chased further; the carousel returns to its pre-breakout width. */

    /* ---- Heading before photo: the shared #about_content_ss SCSS puts the
       carousel first (order:1) and the text second (order:2) below 998px,
       pushing the H1 well down the page. Flip that on phone-width screens. */
    body #about_content_ss.new-nursery-hero .rowTop .container .contentWrapLeft { order: 1 !important; }
    body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight { order: 2 !important; }

    /* ---- Eyebrow spacing: .new-nursery-hero p carries line-height:3 (54px
       on an 18px font), creating a large dead band above the H1. */
    body .new-nursery-hero .contentWrapLeft p {
        font-size: 15px !important;
        line-height: 1.3 !important;
        letter-spacing: 0.04em !important;
        text-transform: uppercase !important;
    }
    body .new-nursery-hero .contentWrapLeft h1 { margin-top: 4px !important; }

    /* ---- Carousel controls: shrink and centre them, off the photo. */
    body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight .prevNursery,
    body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight .nextNursery {
        width: 44px !important;
        height: 44px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        border: 0 !important;
        background: rgba(255, 255, 255, 0.94) !important;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.22) !important;
    }
    body #about_content_ss.new-nursery-hero .caroselFloatControl.prevNursery:hover,
    body #about_content_ss.new-nursery-hero .caroselFloatControl.nextNursery:hover {
        top: 50% !important;
    }
    body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight .prevNursery img,
    body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight .nextNursery img {
        width: 14px !important;
        height: 14px !important;
    }

    /* ---- Hero photo: shorter now that it's full-bleed on this breakpoint,
       lifting the overview content into the first screen. */
    body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight #nursery_head_slider .item {
        height: 232px !important;
    }

    /* ---- Tighten the transition into the first overview section. */
    body #nursery_overview.new-nursery-overview.generic-nursery { padding-top: 26px !important; }
}

@media all and (max-width: 520px) {
    body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight .nextHpbnr, 
    body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight .prevHpbnr { display: flex !important; }
}

/* ==========================================================================
   TRUST PILL - ISOLATED RESTORATION
   ========================================================================== */
body #about_content_ss.new-nursery-hero .contentWrapLeft {
    position: relative !important;
    z-index: 10 !important;
}

body .trust-strip-pill {
    display: inline-flex !important;
    position: relative !important;
    z-index: 99 !important;
    align-items: center !important;
    gap: 12px !important;
    background: #ffffff !important;
    padding: 6px 20px 6px 6px !important;
    border-radius: 50px !important;
    margin: 15px 0 20px 0 !important;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15) !important;
    width: fit-content !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: translateZ(0) !important;
    backface-visibility: hidden !important;
}

body .pill-circle {
    background: #ec6086 !important;
    color: #ffffff !important;
    width: 45px !important; 
    height: 45px !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: 800 !important;
    font-size: 1.1rem !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
    border: 3px solid #ffffff !important; 
    box-shadow: 0 0 0 2px #ec6086 !important; 
}

body .pill-text {
    font-size: 0.85rem !important;
    color: #20445d !important;
    line-height: 1.2 !important;
    text-align: left !important;
    font-family: sans-serif !important;
    margin-left: 5px !important; 
}

body .dn-link {
    color: #20445d !important;
    text-decoration: underline !important;
    font-weight: 700 !important;
    transition: color 0.2s ease !important;
}

body .dn-link:hover {
    color: #ec6086 !important;
    text-decoration: none !important;
}

@media (max-width: 768px) {
    body .trust-strip-pill { margin-top: 10px !important; margin-bottom: 15px !important; }
}

/* ==========================================================================
   HERO ENQUIRY CTAs (desktop/tablet, >=769px)
   Markup: components/banners/nursery-banner.php, inside .contentWrapLeft.
   Hidden below 769px in favour of the mobile sticky bar (see further down).
   ========================================================================== */

body .kp-hero-cta {
    display: none;
}

@media (min-width: 769px) {
    body .kp-hero-cta {
        display: flex;
        flex-wrap: wrap;
        gap: 14px;
        margin-top: 24px;
    }

    body .kp-hero-cta__btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 50px;
        padding: 13px 32px;
        border-radius: 36px;
        font-family: houschka-rounded, "Helvetica Neue", Helvetica, Arial, sans-serif;
        font-size: 16px;
        font-weight: 700;
        line-height: 1.1;
        text-decoration: none !important;
        transition: background-color 0.2s ease, color 0.2s ease;
    }

    body .kp-hero-cta__btn--primary {
        background: #EC6086;
        border: 2px solid #EC6086;
        color: #ffffff !important;
    }

    body .kp-hero-cta__btn--primary:hover,
    body .kp-hero-cta__btn--primary:focus-visible {
        background: #ffffff;
        border-color: #ffffff;
        color: #EC6086 !important;
    }

    /* Solid white rather than an outline - an outlined button on the green
       hero fails contrast against the background at this weight. */
    body .kp-hero-cta__btn--secondary {
        background: #ffffff;
        border: 2px solid #ffffff;
        color: #3A455D !important;
    }

    body .kp-hero-cta__btn--secondary:hover,
    body .kp-hero-cta__btn--secondary:focus-visible {
        background: transparent;
        color: #ffffff !important;
    }

    body .kp-hero-cta__btn:focus-visible {
        outline: 3px solid #3A455D;
        outline-offset: 2px;
    }
}

/* 769-998px: the hero is already in the theme's stacked/centred layout at
   this width (see #about_content_ss .rowTop .container flex-direction:
   column below 998px in _about_us.scss), so centre the buttons with it. */
@media (min-width: 769px) and (max-width: 998px) {
    body .kp-hero-cta {
        justify-content: center;
    }
}

/* ==========================================================================
   PERSISTENT MOBILE ENQUIRY CTA BAR (<=768px)
   Markup: components/nurseries-single/sticky-cta-bar.php. Hidden off-screen
   by default; library/js/nursery-sticky-cta.js adds .is-visible once the
   hero has scrolled past.
   ========================================================================== */

body .kp-sticky-cta {
    display: none;
}

@media (max-width: 768px) {
    body .kp-sticky-cta {
        display: flex;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 90; /* below mobile nav overlay (100) and VR/video overlay (101) */
        gap: 10px;
        box-sizing: border-box;
        padding: 10px 12px;
        padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
        background: #ffffff;
        box-shadow: 0 -2px 16px rgba(0, 0, 0, 0.16);
        transform: translateY(115%);
        transition: transform 0.28s ease;
    }

    body .kp-sticky-cta.is-visible {
        transform: translateY(0);
    }

    body .kp-sticky-cta__btn {
        flex: 1 1 0;
        min-height: 48px; /* WCAG 2.5.8 target size */
        display: flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        padding: 12px 8px;
        border-radius: 36px;
        font-family: houschka-rounded, "Helvetica Neue", Helvetica, Arial, sans-serif;
        font-size: 15px;
        font-weight: 700;
        line-height: 1.1;
        text-align: center;
        text-decoration: none !important;
        transition: opacity 0.2s ease;
    }

    body .kp-sticky-cta__btn:active {
        opacity: 0.85;
    }

    body .kp-sticky-cta__btn--primary {
        background: #EC6086;
        border: 2px solid #EC6086;
        color: #ffffff !important;
    }

    body .kp-sticky-cta__btn--secondary {
        background: #ffffff;
        border: 2px solid #3A455D;
        color: #3A455D !important;
    }

    /* Stop the bar covering the end of the page */
    body.kp-cta-visible {
        padding-bottom: 78px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body .kp-sticky-cta,
    body .kp-sticky-cta.is-visible {
        transition: none;
    }
}

/* ==========================================================================
   REST OF ORIGINAL CSS (SANITIZED)
   ========================================================================== */

#nursery_overview.new-nursery-overview h1, #nursery_overview.new-nursery-overview h3, #nursery_overview.new-nursery-overview h4 { font-weight: 700; font-family: houschka-rounded, sans-serif !important; }
#nursery_overview.new-nursery-overview .container { max-width: 1340px; padding: 16px; }
#nursery_overview.new-nursery-overview { background-image: none; background-color: #FFF8EB; }
#nursery_overview:before { background-image: none !important; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap { text-align: left; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap h4 { font-size: 22px; color: #EC6086; font-family: "Solway", serif !important; }

.overview_title_25 p { font-size: 22px !important; color: #EC6086 !important; font-family: "Solway", serif !important; margin-bottom: 0px !important; }
.overview_title_25 p a { position: relative; text-decoration: none; }
.overview_title_25 .overview_sub_title_25 { margin: 0px !important; }
.overview_title_25 p a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background-color: #EC6086; transition: width 0.3s ease; }
.overview_title_25 p a:hover::after { width: 100%; }

#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap h4 a { position: relative; text-decoration: none; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap h4 a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background-color: #EC6086; transition: width 0.3s ease; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap h4 a:hover::after { width: 100%; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap h2.afterstate_title:after { background-image: none; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap h2.afterstate_title { margin: 0px; color: #3A455D; font-size: clamp(1.625rem, 1.0913rem + 2.2769vw, 3.9375rem); line-height: 1.25; margin-bottom: 20px; }

#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap .nursery_manager_overview { justify-content: flex-start; padding: 30px; background-color: white; width: 80%; flex-direction: column; align-items: flex-start; gap: 30px; border-radius: 6px; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap .nursery_manager_overview .secondaryManager { margin-left: 0px; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar { max-width: 500px; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .infoWrap h4 { font-size: 18px; color: #EC6086; font-family: "Solway", serif !important; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard h4.afterstate_title { font-size: clamp(1.625rem, 1.4904rem + 0.5385vw, 2.5rem); margin-bottom: 0px; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .infoWrap .content, 
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .infoWrap .content a { padding-left: 0px; font-size: 20px; font-weight: 700; transition: 0.3s ease-in-out; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .infoWrap .content a:hover { opacity: 0.8; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .infoWrap .content .socials { display: flex; gap: 5px; margin-top: 10px; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .infoWrap .content .socials a { transition: 0.3s ease-in-out; opacity: 1; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .infoWrap .content .socials a:hover { transform: scale(1.2); }

#nursery_overview.new-nursery-overview .mainContentWrap .leftWrap p { margin: 20px 0px 0px 0px; font-weight: 700; font-size: 16px; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap p:first-of-type { font-size: 16px; letter-spacing: normal; max-width: 100%; line-height: 22px; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap p { max-width: 100%; letter-spacing: normal; line-height: 22px; }
#nursery_overview.new-nursery-overview .mainContentWrap .leftWrap .nurseryEntry p { margin: 0px 0 !important; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap .nursery_manager_overview .nurseryEntry { flex-direction: column; align-items: flex-start; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap .nursery_manager_overview .nurseryEntry .title { display: flex; align-items: center; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap .nursery_manager_overview .nurseryEntry .title p { font-size: 20px; font-weight: 700; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap .nursery_manager_overview .nurseryEntry .title span { font-size: 16px; font-weight: 700; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .infoWrap .content p { font-size: 20px; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .infoWrap { display: block; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard h4.afterstate_title:after { display: none; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard { box-shadow: none; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .infoWrap .icon { width: 100%; }

#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .extraLinks a { color: #EC6086; font-size: 18px; font-family: "Solway", serif; font-weight: 700; position: relative; transition: 0.3s ease-in-out; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .extraLinks a:hover { text-decoration: underline; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .further_buttons { justify-content: flex-start; gap: 15px; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .further_buttons a { width: auto; font-size: 16px; font-weight: 700; }
.new-nursery-overview .further_buttons .red_btn_small { padding: 10px 20px; }

#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard #mapNurseryInner { height: 200px; cursor: pointer; }

#usp-block .usp-item { transition: 0.3s; }
#usp-block .usp-item:hover { animation: bounce 0.3s ease-in-out; opacity: 0.7; }
@keyframes bounce { 0% { transform: scale(1); } 25% { transform: scale(1.05); } 50% { transform: scale(1.1); } 75% { transform: scale(1.05); } 100% { transform: scale(1); } }

#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .extraLinks .kp-btn-secondary { padding: 10px 20px; border: 1px solid #3A455D; font-size: 16px !important; color: #FFF !important; background: #3A455D !important; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .extraLinks .kp-btn-secondary:hover { color: #3A455D !important; text-decoration: none !important; background: #FFF !important; }

.new-nursery-overview .red_btn_large, .new-nursery-overview .red_btn_small { background-color: #EC6086; }
.new-nursery-overview .red_btn_small:hover { background: none; border: 1px #EC6086 solid; color: #EC6086 !important; }

.testimonial-title a { position: relative; text-decoration: none; }
.testimonial-title a::after { content: ''; position: absolute; bottom: -3px; left: 0; width: 0; height: 2px; background-color: #EC6086; transition: width 0.3s ease-in-out; }
.testimonial-title a:hover::after { width: 100%; }
.testimonial-title .txt-red { color: #EC6086; }

#usp-block .vt-content-wrap a { position: relative; text-decoration: none; }
#usp-block .vt-content-wrap a::after { content: ''; position: absolute; bottom: -4px; left: 0; width: 0; height: 2px; background-color: #EC6086; transition: width 0.3s ease-in-out; }
#usp-block .vt-content-wrap a:hover::after { width: 100%; }
#usp-block .txt-red { color: #EC6086; }

.benefits-wrapper a { position: relative; text-decoration: none; }
.benefits-wrapper a::after { content: ''; position: absolute; bottom: 0px; left: 0; width: 0; height: 2px; background-color: #EC6086; transition: width 0.3s ease-in-out; }
.benefits-wrapper a:hover::after { width: 100%; }
.benefits-wrapper .txt-red { color: #EC6086; }

#learn-and-grow .additional-content a { position: relative; text-decoration: none; }
#about_content_ss.new-nursery-hero .caroselFloatControl:hover{ top: 79%; }
#learn-and-grow .caroselFloatControl:hover { top: 79%; }
#nursery-additional-2 .caroselFloatControl:hover { top: 79%; }

#learn-and-grow .additional-content a::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background-color: #EC6086; transition: width 0.3s ease-in-out; }
#learn-and-grow .additional-content a:hover::after { width: 100%; }
#learn-and-grow .txt-red { color: #EC6086; }
#learn-and-grow .additional-img .caroselFloatControl { background: #EC6086; }

#virtual-tour-full-embed a { position: relative; text-decoration: none; }
#virtual-tour-full-embed a::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background-color: #3A455D; transition: width 0.3s ease-in-out; }
#virtual-tour-full-embed a:hover::after { width: 100%; }
#virtual-tour-full-embed.green-bg { background: #7bb28e; }
.vt-content-wrap strong { color: #3A455D; }

.additional-content a:first-of-type { position: relative; text-decoration: none; }
.additional-content a:first-of-type:not(:has(button))::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background-color: #EC6086; transition: width 0.3s ease-in-out; }
.additional-content a:first-of-type:not(:has(button)):hover::after { width: 100%; }

#nursery-additional-2 .txt-red { color: #EC6086; }
#nursery-additional-2 .red_btn_small { background-color: #EC6086; }
#nursery-additional-2 .red_btn_small:hover { background: none; border: 1px #EC6086 solid; color: #EC6086 !important; }

.generic-nursery { padding-block: 40px !important; }
#about_content_ss .rowTop { padding: 0 !important; }
.carouselWrapRight .single-img { width: 100%; max-height: 300px; object-fit: cover; border-radius: 10px; }
.owl-carousel.owl-drag .owl-item { touch-action: inherit !important; }

@media all and (max-width: 768px) {
    .new-nursery-hero .container { padding: 60px 16px; }
    #testimonial-block { padding-top: 60px; }
    #nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar { max-width: 100vw; }
    #nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap .nursery_manager_overview { width: 100%; }
    #nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard { margin-top: 40px; }
    .testimonial-title { margin-top: 50px; }
}

.new-nursery-overview .small-map { height: 200px; width: 100%; cursor: pointer; }
.new-nursery-overview .map-popup { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.7); z-index: 1000; display: flex; justify-content: center; align-items: center; }
.new-nursery-overview .map-popup-content { position: relative; width: 80%; max-width: 800px; background: #fff; border-radius: 10px; overflow: hidden; }
.new-nursery-overview .large-map { height: 500px; width: 100%; }
.new-nursery-overview .close { position: absolute; top: 10px; right: 20px; font-size: 30px; font-weight: bold; color: #333; cursor: pointer; z-index: 1001; }
#mapPopup { display: none; }
.new-nursery-overview .gm-style a { display: none !important; }
.new-nursery-overview .gmnoprint .gm-style-cc { display: none !important; }
.new-nursery-overview .gmnoprint a { display: none !important; }

.new-nursery-overview .mapdeet strong { color: #EC6086; font-size: 18px; font-family: "Solway", serif !important; font-weight: 700; }
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .mapdeet { color: #3A455D; font-size: 20px; font-weight: 700; }

#testimonial-block { background-color: #FFF8EB; }
.testimonial-embed { padding: 32px; background: #fff; }
.testimonial-title { margin-bottom: 48px; text-align: center; }
.single-item { display: none; }
.usp-slider-wrap-mobile { position: relative; display: none; }
.usp-item { display: flex; flex-direction: column; }
.swiper-container { width: 100%; height: 300px; margin: 0 auto; }
.swiper-slide { display: flex; justify-content: center; align-items: center; text-align: center; }
.usp-icon img { width: 100%; height: auto; display: block; object-fit: contain; }
.progress-bar { position: absolute; bottom: -36px; left: 0; width: 100%; height: 10px; background: #50586b; border-radius: 10px; }
.progress-bar .progress { height: 100%; background: #fff; width: 0; transition: width 0.5s ease-in-out; border-radius: 10px; }

@media all and (max-width: 769px) {
    .usp-slider-wrap-mobile { display: block; }
    .usp-wrap { display: none !important; }
    .swiper-container { margin-bottom: 60px; }
    .usp-item { max-width: 100% !important; justify-content: center !important; }
}

@media all and (max-width: 998px) {
    .usp-wrap { grid-template-columns: repeat(3, 1fr) !important; }
}

.usp-wrap { display: flex; gap: 1.5rem; justify-content: center; }
#usp-block { background: #3A455D; }
.usp-item { background: #fff; border-radius: 10px; width: 100%; padding: 45px 18px; justify-content: space-between; max-width: 20%; }
.usp-icon { justify-content: center; display: flex; margin-bottom: 32px; }
.usp-icon img { max-height: 84px; max-width: 114px; }
.usp-item p { text-align: center; font-size: 20px; font-weight: 700; line-height: 140%; }

.benefits-left p, .benefits-right p { font-size: 16px; font-weight: 700; line-height: 140%; }
.benefits-wrapper { display: flex; }
.benefits-left, .benefits-right { width: 50%; }
.benefits-left { padding: 0px 75px 0px 0px; }
.benefits-right { background: #fff; padding: 32px; border-radius: 10px; max-height: fit-content; }
.benefits-right .benefit-item:last-child { border-bottom: 0px; }
.benefit-item { display: flex; justify-content: flex-start; align-items: center; padding-block: 10px; border-bottom: 1px solid #00000038; }
.benefit-item img { width: 30px; height: 30px; margin-right: 16px; }
.benefits-right-mobile { display:none; }

@media all and (max-width: 998px) {
    .benefits-wrapper { display: flex; flex-direction: column; }
    .benefits-left { padding: 0px; }
    .benefits-left, .benefits-right { width: 100%; }
    .benefits-right { margin-top: 32px; }
}

@media all and (max-width: 769px) {
    .benefits-right-mobile { display: block; border-radius: 0px; }
    .benefits-right-desktop { display: none; }
    #nursery-benefits.generic-nursery { padding-bottom: 0px !important; }
}

#learn-and-grow { background: #3A455D; }
.learn-image img { width: 100%; border-radius: 10px; }
.learn-grow-content p { color: #fff !important; }
@media all and (max-width: 998px) { #learn-and-grow .additional-img { margin-bottom: 24px; } }

.green-bg { background: #529B6B; }
.virtual-tour-wrapper { padding: 0rem 6rem; }
.virtual-tour-wrapper iframe { width: 100%; height: 500px; }
.vt-content-wrap { padding: 0rem 6rem; margin-bottom: 50px; text-align: center; }
.vt-content-wrap p { color: #ffffff; font-size: 16px; font-weight: 700; line-height: 140%; }
#virtual-tour-full-embed { padding-block: 5rem; }
@media all and (max-width: 998px) {
    .vt-content-wrap { padding: 0rem 0rem; }
    .virtual-tour-wrapper { padding: 0rem 0rem; }
    #virtual-tour-full-embed { padding-block: 20px; }
    .virtual-tour-wrapper iframe { height: 300px; }
}

.generic-nursery { padding-block: 100px; }
#nursery-additional-2 { background: #FFF8EB; }
.generic-nursery .container { max-width: 1340px; padding: 16px; }
#nursery-additional-2.nursery-additional-container { padding-top: 0px !important; }
.additional-wrap { display: flex; align-items: center; }
.additional-img { width: 45%; margin-right: 100px; }
.additional-img.additional-img-right { margin-right: 0px; margin-left: 100px; }
.additional-content { width: 55%; }

.generic-nursery strong { font-family: "Solway", serif; font-weight: 700; font-style: normal; font-size: 22px; margin-bottom: 10px; }
.generic-nursery h2 { font-size: clamp(1.625rem, 1.0913rem + 2.2769vw, 3.9375rem); font-style: normal; font-weight: 700; font-family: houschka-rounded, sans-serif !important; line-height: 100%; margin-bottom: 12px; }
.additional-content p { color: #3A455D; font-size: 16px; font-weight: 700; line-height: 140%; }
.nursery-cta-single { margin-top: 32px; }
.additional-img { position: relative; }
.additional-img .item { height: 300px; border: 0px; border-radius: 10px; width: 100%; background-position: center center; background-size: cover; }
.additional-img .prevHpbnr { left: -10px; border: 10px solid #FFF8EB; top: 79%; box-shadow: none; width: 70px; height: 70px; }
#learn-and-grow .additional-img .prevHpbnr3 { border: 10px solid #3A455D; }
#learn-and-grow .additional-img .nextHpbnr3 { border: 10px solid #3A455D; }
.additional-img .nextHpbnr { right: -10px; border: 10px solid #FFF8EB; top: 79%; box-shadow: none; width: 70px; height: 70px; }
.additional-img .nextHpbnr img { width: 15px; height: 12px; }
.additional-img .prevHpbnr img { width: 15px; height: 12px; }
.additional-img .caroselFloatControl { background: #EC6086; }
#additional-slider-2 { overflow: hidden; width: 100%; }
#nursery-additional-2 .owl-dots { display: none; }
.additional-wrap .owl-carousel .owl-stage-outer { border-radius: 10px; }
#about_content_ss.new-nursery-hero .owl-carousel .owl-stage-outer { border-radius: 10px; }

@media all and (max-width: 998px) {
    .additional-wrap { flex-direction: column; }
    .additional-img, .additional-content { width: 100%; }
    .additional-img { margin-right: 0px; }
    /* Applies to both #nursery-additional-1 and #nursery-additional-2 - they
       share this .additional-wrap > .additional-content/.additional-img
       pattern. Previously only nursery-additional-2 got padding-bottom here,
       so nursery-additional-1's CTA sat flush against the image below it. */
    .additional-wrap .additional-content { order: -1; padding-bottom: 38px; }
    .additional-img.additional-img-right { margin-left: 0px; }
    .nursery-additional-container { padding-top: 0px !important; }
    .generic-nursery strong { font-size: 16px; }
    .generic-nursery { padding-block: 20px; }
}

/* ==========================================================================
   NURSERY PAGE UX/UI PASS - promo banner, CTA hierarchy, card polish,
   sticky bar refinement, DayNurseries widget containment.
   Everything below is scoped to single nursery pages only, either via the
   #about_content_ss/.new-nursery-hero/#nursery_overview/#testimonial-block
   ancestors (already nursery-only) or explicitly via the body.single-kp-nursuries
   class WordPress adds on this template, so nothing here reaches any other
   page even though this stylesheet itself loads sitewide.
   ========================================================================== */

/* ---- Card radius consistency: the hero photo/carousel used 6px while every
   other card on this page (manager card, benefits, additional-img, map) uses
   10px. Match it. */
body #about_content_ss.new-nursery-hero .rowTop .container .carouselWrapRight #nursery_head_slider .item,
body .new-nursery-hero .owl-carousel .owl-item img {
    border-radius: 10px !important;
}

/* ==========================================================================
   PROMO BANNER: compact treatment on nursery pages only (mobile)
   Live evidence (Fazakerley, current preview) shows the banner still rendering
   as a full-height coloured bar with a large pill CTA beneath the message,
   consuming a large share of the first mobile screen - the same defect
   originally identified for Chester. Demoted to a compact single line with an
   inline text link, without touching the campaign copy/destination (both come
   from ACF options and are untouched here) or any other template.
   ========================================================================== */
@media (max-width: 768px) {
    body.single-kp-nursuries .banner-notice {
        min-height: 0;
        padding: 6px 0;
    }
    body.single-kp-nursuries .banner-notice .container {
        padding: 4px 12px;
    }
    body.single-kp-nursuries .banner-notice .container p {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        font-size: 12px !important;
        line-height: 1.3 !important;
        text-align: center !important;
    }
    body.single-kp-nursuries .banner-notice .container p a {
        display: inline !important;
        margin: 0 0 0 4px !important;
        padding: 0 !important;
        background: none !important;
        background-color: transparent !important;
        border-radius: 0 !important;
        white-space: normal !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        text-decoration: underline !important;
    }
}

/* ==========================================================================
   CTA HIERARCHY: the hero Book a Tour / Apply now pair is the single source
   of truth for this CTA on nursery pages at every width (mobile uses the
   persistent sticky bar instead). The sidebar "Get in Touch" card duplicated
   the same pair - now hidden at all breakpoints, including desktop, per
   approved design decision. The markup/business logic in overview.php is
   untouched (kp_get_special_book_tour_url(), the URL construction, and the
   Oxford/Cambridge special cases all still run and render normally) - this
   is a CSS-only visibility change. Everything else in the "Get in Touch"
   card (phone, email, opening hours, Fees and Funding, View Fees) is a
   separate block/selector, unaffected. */
body #nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .further_buttons:has(.red_btn_small) {
    display: none;
}

/* ==========================================================================
   STICKY MOBILE CTA BAR: comfort/robustness refinements on top of the
   existing implementation (safe-area padding, prefers-reduced-motion and the
   reveal behaviour itself are unchanged - see the block earlier in this file).
   ========================================================================== */
@media (max-width: 768px) {
    body .kp-sticky-cta {
        gap: 12px;
        padding: 12px 14px;
        padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px));
        border-top: 1px solid rgba(58, 69, 93, 0.08);
    }
}

/* ==========================================================================
   CONTACT / MANAGER CARDS: mobile polish - proportionate padding, graceful
   wrapping for long emails, button groups that wrap instead of overflowing.
   ========================================================================== */
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .infoWrap .content,
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .infoWrap .content a {
    overflow-wrap: anywhere;
    word-break: break-word;
}
#nursery_overview.new-nursery-overview .container .mainContentWrap .rightSidebar .enrtyCard .further_buttons {
    flex-wrap: wrap;
}
@media (max-width: 768px) {
    #nursery_overview.new-nursery-overview .container .mainContentWrap .leftWrap .nursery_manager_overview {
        padding: 20px;
    }
}

/* ==========================================================================
   MAP CARD: consistent radius, contained regardless of the Google Maps
   success/error state (see project notes - the "Sorry! Something went wrong"
   state is a Maps API credentials/referrer issue, not a template problem).
   ========================================================================== */
.new-nursery-overview .small-map,
.new-nursery-overview .large-map {
    border-radius: 10px;
    overflow: hidden;
}

/* ==========================================================================
   DAYNURSERIES REVIEWS WIDGET: scoped containment/layout overrides only.
   The widget's own script/stylesheet is untouched - these rules re-lay-out
   its existing tg_* markup so it reads as one Kids-Planet-consistent card
   instead of a disconnected, oversized embed. Review content, attribution
   and outbound links are all left exactly as the widget renders them.
   Selectors are scoped under #testimonial-block .testimonial-embed, which is
   unique to this nursery template - the footer's separate review widget uses
   different tg-review-widget/tgrw- markup and is untouched.
   ========================================================================== */
#testimonial-block .testimonial-embed {
    overflow: hidden;
}
#testimonial-block .testimonial-embed .tg-review-carousel-widget-container {
    max-width: 100%;
    overflow: hidden;
}
#testimonial-block .testimonial-embed .tg_header_wrap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    text-align: left;
}
#testimonial-block .testimonial-embed .tg_score_wrapper {
    flex-shrink: 0;
}
#testimonial-block .testimonial-embed .tg_text_small.tg_score_text {
    flex: 1 1 200px;
    line-height: 1.35;
}
#testimonial-block .testimonial-embed .tg_chlogo img {
    width: 140px !important;
    height: auto !important;
}
#testimonial-block .testimonial-embed .tg_Read-all-reviews {
    width: 100%;
}

@media (max-width: 600px) {
    #testimonial-block .testimonial-embed .tg_chlogo img {
        width: 110px !important;
    }
    #testimonial-block .testimonial-embed .tg_reviews_node_inner {
        display: flex !important;
        flex-wrap: nowrap !important;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        gap: 12px;
        -webkit-overflow-scrolling: touch;
    }
    #testimonial-block .testimonial-embed .tg_single_review {
        flex: 0 0 100% !important;
        width: 100% !important;
        scroll-snap-align: start;
        box-sizing: border-box;
    }
}