/*
Theme Name: Beaver Builder Child Theme
Theme URI: https://www.wpbeaverbuilder.com
Version: 1.3
Description: An example child theme that can be used as a starting point for custom development.
Author: The Beaver Builder Team
Author URI: https://www.fastlinemedia.com
template: bb-theme
*/

/* ============================================================
   Edward Johnson PT — Complete Responsive Styles
   BB Breakpoints: Large 1200 | Medium 992 | Mobile 768
   ============================================================ */


/* =======================
   GLOBAL BASE STYLES
   ======================= */

/* Smooth font rendering */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Full-width images by default */
.fl-photo img,
.fl-module-photo img {
    max-width: 100%;
    height: auto;
}

/* Footer link hover */
.fl-theme-layout-footer a:hover {
    opacity: 0.7;
    transition: opacity 0.2s ease;
}


/* =======================
   LAPTOP (993px – 1200px)
   Keep close to desktop — minor spacing tweaks only
   ======================= */
@media (max-width: 1200px) and (min-width: 993px) {

    /* Slight padding reduction on large rows */
    .fl-row .fl-row-content-wrap {
        padding-left: 30px !important;
        padding-right: 30px !important;
    }

    /* Header: tighten side padding */
    .fl-theme-layout-header .fl-row-content-wrap {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    /* Hero: reduce vertical padding slightly */
    .fl-node-hp_r0 > .fl-row-content-wrap {
        padding-top: 80px !important;
        padding-bottom: 80px !important;
    }
}


/* =======================
   TABLET (769px – 992px)
   Stack columns, reduce sizes
   ======================= */
@media (max-width: 992px) {

    /* --- Global column stacking --- */
    .fl-col-group .fl-col {
        width: 100% !important;
    }

    /* --- Global padding reduction --- */
    .fl-row .fl-row-content-wrap {
        padding-left: 30px !important;
        padding-right: 30px !important;
    }

    /* --- Global typography scaling (inline styles) --- */
    [style*="font-size:52px"] { font-size: 36px !important; }
    [style*="font-size:48px"] { font-size: 34px !important; }
    [style*="font-size:42px"] { font-size: 32px !important; }
    [style*="font-size:36px"] { font-size: 28px !important; }
    [style*="font-size:32px"] { font-size: 26px !important; }
    [style*="font-size:24px"] { font-size: 22px !important; }
    [style*="font-size:22px"] { font-size: 20px !important; }
    [style*="font-size:20px"] { font-size: 18px !important; }

    /* --- HEADER --- */
    .fl-theme-layout-header .fl-row-content-wrap {
        padding: 15px 20px !important;
    }
    .fl-theme-layout-header .fl-col-group .fl-col {
        text-align: center !important;
    }
    /* Logo column: full width, centred */
    .fl-node-hdr_r0g0c0 {
        width: 100% !important;
        margin-bottom: 10px;
    }
    .fl-node-hdr_r0g0c0 .fl-photo {
        text-align: center !important;
    }
    .fl-node-hdr_r0g0c0 .fl-photo-img {
        max-width: 180px !important;
    }
    /* Nav column: full width, centred */
    .fl-node-hdr_r0g0c1 {
        width: 100% !important;
        margin-bottom: 10px;
    }
    /* Button column: full width, centred */
    .fl-node-hdr_r0g0c2 {
        width: 100% !important;
    }
    .fl-node-hdr_r0g0c2 .fl-button-group {
        justify-content: center;
    }

    /* --- FOOTER --- */
    .fl-theme-layout-footer .fl-row-content-wrap {
        padding: 40px 30px !important;
    }
    /* 2x2 grid on tablet */
    .fl-theme-layout-footer .fl-node-ftr_r0g0 .fl-col {
        width: 50% !important;
        margin-bottom: 30px;
    }

    /* --- HOMEPAGE --- */
    /* Hero section */
    .fl-node-hp_r0 > .fl-row-content-wrap {
        padding: 60px 30px !important;
    }
    .fl-node-hp_r0g0c0 {
        width: 100% !important;
    }
    /* Sanctuary section */
    .fl-node-hp_r1 > .fl-row-content-wrap {
        padding-top: 60px !important;
        padding-bottom: 60px !important;
    }
    /* Coaching cards: stack */
    .fl-node-hp_r3g0 .fl-col,
    .fl-node-hp_r4g0 .fl-col {
        width: 100% !important;
    }
    /* Coaching card columns — add spacing when stacked */
    .fl-node-hp_r3g0c0,
    .fl-node-hp_r3g0c1,
    .fl-node-hp_r4g0c0 {
        margin-bottom: 20px;
    }
    /* Card image columns that use bg_image: give them a min height when stacked */
    .fl-col-group-equal-height .fl-col[style*="background-image"] {
        min-height: 300px !important;
    }
    /* Testimonial section: stack, give image cols min height */
    .fl-node-hp_r5g1 .fl-col {
        width: 100% !important;
    }
    .fl-node-hp_r5g1c0,
    .fl-node-hp_r5g1c2 {
        min-height: 280px !important;
    }
    .fl-node-hp_r5g1c1 {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    /* CTA section padding */
    .fl-node-hp_r6 > .fl-row-content-wrap {
        padding-top: 40px !important;
        padding-bottom: 60px !important;
    }

    /* --- SERVICES OVERVIEW --- */
    /* All alternating image/text sections: full width columns */
    [class*="fl-node-sv_rs"] .fl-col-group .fl-col {
        width: 100% !important;
    }
    /* Image columns in services: min height when stacked */
    [class*="fl-node-sv_rs"] .fl-col[style*="background-image"] {
        min-height: 350px !important;
    }
    /* Reduce padding between service blocks */
    [class*="fl-node-sv_rs"] > .fl-row-content-wrap {
        padding-top: 30px !important;
        padding-bottom: 30px !important;
    }
    /* Services intro padding */
    .fl-node-sv_r0 > .fl-row-content-wrap {
        padding-top: 60px !important;
        padding-bottom: 30px !important;
    }

    /* --- THE GROUNDS --- */
    /* Hero: full width text column */
    .fl-node-gr_r0 > .fl-row-content-wrap {
        padding-top: 100px !important;
        padding-bottom: 60px !important;
    }
    .fl-node-gr_r0g0 .fl-col {
        width: 100% !important;
    }
    /* Intro and "Place to train" sections */
    .fl-node-gr_r1 .fl-col,
    .fl-node-gr_r2 .fl-col {
        width: 100% !important;
    }
    /* Intro image column min height */
    .fl-node-gr_r1g0c0 {
        min-height: 300px !important;
    }
    .fl-node-gr_r2g0c1 {
        min-height: 300px !important;
    }
    /* Benefits: 2x2 grid */
    .fl-node-gr_r3g1 .fl-col {
        width: 50% !important;
        margin-bottom: 20px;
    }
    /* Yorkshire full-width section */
    .fl-node-gr_r4 > .fl-row-content-wrap {
        padding-top: 120px !important;
    }
    .fl-node-gr_r4g0 .fl-col {
        width: 100% !important;
    }

    /* --- ENQUIRE --- */
    .fl-node-eq_r0 > .fl-row-content-wrap {
        padding-top: 60px !important;
    }
    .fl-node-eq_r0g0 .fl-col,
    .fl-node-eq_r1g0 .fl-col {
        width: 100% !important;
    }
    /* Enquire image column min height */
    .fl-node-eq_r0g0c1 {
        min-height: 300px !important;
    }
    /* Form section: full width */
    .fl-node-eq_r1g0c0 {
        margin-bottom: 30px;
    }

    /* --- GEO PAGES --- */
    /* Text + bullets columns */
    [class*="fl-node-ml_r2"],
    [class*="fl-node-sc_r2"],
    [class*="fl-node-pk_r2"],
    [class*="fl-node-yk_r2"],
    [class*="fl-node-nt_r2"],
    [class*="fl-node-hb_r2"] {
        /* columns stack via global rule */
    }
    /* Service card grids: 2x2 */
    [class*="fl-node-ml_r3g1"] .fl-col,
    [class*="fl-node-ml_r3g2"] .fl-col,
    [class*="fl-node-sc_r3g1"] .fl-col,
    [class*="fl-node-sc_r3g2"] .fl-col,
    [class*="fl-node-pk_r3g1"] .fl-col,
    [class*="fl-node-pk_r3g2"] .fl-col,
    [class*="fl-node-yk_r3g1"] .fl-col,
    [class*="fl-node-yk_r3g2"] .fl-col,
    [class*="fl-node-nt_r3g1"] .fl-col,
    [class*="fl-node-nt_r3g2"] .fl-col,
    [class*="fl-node-hb_r3g1"] .fl-col,
    [class*="fl-node-hb_r3g2"] .fl-col {
        width: 50% !important;
        margin-bottom: 15px;
    }

    /* --- SERVICE PAGES (individual) --- */
    /* 40/60 text+bullets sections */
    [class*="fl-node-pt_r2"] .fl-col,
    [class*="fl-node-pt_r3"] .fl-col,
    [class*="fl-node-pt_r4"] .fl-col,
    [class*="fl-node-sg_r2"] .fl-col,
    [class*="fl-node-sg_r3"] .fl-col,
    [class*="fl-node-sg_r4"] .fl-col,
    [class*="fl-node-lo_r2"] .fl-col,
    [class*="fl-node-lo_r3"] .fl-col,
    [class*="fl-node-lo_r4"] .fl-col,
    [class*="fl-node-pn_r2"] .fl-col,
    [class*="fl-node-pn_r3"] .fl-col,
    [class*="fl-node-pn_r4"] .fl-col,
    [class*="fl-node-cr_r2"] .fl-col,
    [class*="fl-node-cr_r3"] .fl-col,
    [class*="fl-node-cr_r4"] .fl-col,
    [class*="fl-node-at_r2"] .fl-col,
    [class*="fl-node-at_r3"] .fl-col,
    [class*="fl-node-at_r4"] .fl-col,
    [class*="fl-node-it_r2"] .fl-col,
    [class*="fl-node-it_r3"] .fl-col,
    [class*="fl-node-it_r4"] .fl-col,
    [class*="fl-node-tc_r2"] .fl-col,
    [class*="fl-node-tc_r3"] .fl-col,
    [class*="fl-node-tc_r4"] .fl-col {
        width: 100% !important;
    }

    /* --- AREAS WE SERVE --- */
    .fl-node-aw_r1g1 .fl-col {
        width: 100% !important;
    }

    /* Hero button row: wrap nicely */
    [style*="display:flex"][style*="gap:15px"] {
        justify-content: center;
    }
}


/* =======================
   MOBILE (max-width: 768px)
   Full single-column, further reduced sizes
   ======================= */
@media (max-width: 768px) {

    /* --- Global typography scaling --- */
    [style*="font-size:52px"] { font-size: 28px !important; }
    [style*="font-size:48px"] { font-size: 28px !important; }
    [style*="font-size:42px"] { font-size: 26px !important; }
    [style*="font-size:36px"] { font-size: 24px !important; }
    [style*="font-size:32px"] { font-size: 22px !important; }
    [style*="font-size:24px"] { font-size: 20px !important; }
    [style*="font-size:22px"] { font-size: 18px !important; }
    [style*="font-size:20px"] { font-size: 16px !important; }
    [style*="font-size:18px"] { font-size: 16px !important; }

    /* --- Global padding reduction --- */
    .fl-row .fl-row-content-wrap {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    /* Reduce vertical padding on all rows */
    .fl-row .fl-row-content-wrap[style*="padding-top: 80px"],
    .fl-row .fl-row-content-wrap[style*="padding-top:80px"] {
        padding-top: 40px !important;
    }
    .fl-row .fl-row-content-wrap[style*="padding-bottom: 80px"],
    .fl-row .fl-row-content-wrap[style*="padding-bottom:80px"] {
        padding-bottom: 40px !important;
    }

    /* Force all columns to full width */
    .fl-col-group .fl-col {
        width: 100% !important;
    }

    /* Centre text in stacked columns */
    .fl-col .fl-col-content {
        text-align: center;
    }

    /* But keep service page text/bullets left-aligned */
    [class*="fl-node-pt_"] .fl-col-content,
    [class*="fl-node-sg_"] .fl-col-content,
    [class*="fl-node-lo_"] .fl-col-content,
    [class*="fl-node-pn_"] .fl-col-content,
    [class*="fl-node-cr_"] .fl-col-content,
    [class*="fl-node-at_"] .fl-col-content,
    [class*="fl-node-it_"] .fl-col-content,
    [class*="fl-node-tc_"] .fl-col-content,
    [class*="fl-node-ml_"] .fl-col-content,
    [class*="fl-node-sc_"] .fl-col-content,
    [class*="fl-node-pk_"] .fl-col-content,
    [class*="fl-node-yk_"] .fl-col-content,
    [class*="fl-node-nt_"] .fl-col-content,
    [class*="fl-node-hb_"] .fl-col-content {
        text-align: left;
    }

    /* Left-align rich text that has lists */
    .fl-rich-text ul,
    .fl-rich-text ol {
        text-align: left;
    }

    /* --- HEADER --- */
    .fl-theme-layout-header .fl-row-content-wrap {
        padding: 12px 15px !important;
    }
    .fl-node-hdr_r0g0c0 .fl-photo-img {
        max-width: 150px !important;
    }
    /* Stack header vertically */
    .fl-node-hdr_r0g0c0,
    .fl-node-hdr_r0g0c1,
    .fl-node-hdr_r0g0c2 {
        width: 100% !important;
        text-align: center !important;
    }
    .fl-node-hdr_r0g0c2 .fl-button-group {
        justify-content: center;
    }

    /* --- FOOTER --- */
    .fl-theme-layout-footer .fl-row-content-wrap {
        padding: 35px 20px !important;
    }
    /* Single column footer */
    .fl-theme-layout-footer .fl-node-ftr_r0g0 .fl-col {
        width: 100% !important;
        text-align: center !important;
        margin-bottom: 25px;
    }
    .fl-theme-layout-footer .fl-photo {
        text-align: center !important;
    }

    /* --- HOMEPAGE --- */
    /* Hero */
    .fl-node-hp_r0 > .fl-row-content-wrap {
        padding: 40px 20px !important;
        background-position: center center !important;
    }
    .fl-node-hp_r0g0c0 {
        text-align: center !important;
    }
    /* Centre hero buttons */
    .fl-node-hp_r0g0c0 [style*="display:flex"] {
        justify-content: center !important;
    }
    /* Sanctuary section */
    .fl-node-hp_r1 > .fl-row-content-wrap {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
    }
    .fl-node-hp_r1g0c0 {
        margin-bottom: 20px;
    }
    .fl-node-hp_r1g0c1 .fl-photo-img {
        max-width: 100% !important;
    }
    /* Coaching section */
    .fl-node-hp_r2 > .fl-row-content-wrap {
        padding-top: 40px !important;
        padding-bottom: 20px !important;
    }
    .fl-node-hp_r3 > .fl-row-content-wrap,
    .fl-node-hp_r4 > .fl-row-content-wrap {
        padding-bottom: 20px !important;
    }
    /* Cards: give stacked bg-image columns a mobile height */
    .fl-col-group-equal-height .fl-col[style*="background-image"] {
        min-height: 220px !important;
    }
    .fl-node-hp_r3g0c0,
    .fl-node-hp_r3g0c1,
    .fl-node-hp_r4g0c0 {
        margin-bottom: 15px;
    }
    /* Testimonial */
    .fl-node-hp_r5_hd > .fl-row-content-wrap {
        padding-top: 40px !important;
    }
    .fl-node-hp_r5 > .fl-row-content-wrap {
        padding-bottom: 40px !important;
    }
    .fl-node-hp_r5g1c0,
    .fl-node-hp_r5g1c2 {
        min-height: 200px !important;
    }
    /* CTA */
    .fl-node-hp_r6 > .fl-row-content-wrap {
        padding-top: 20px !important;
        padding-bottom: 50px !important;
    }
    /* CTA button */
    .fl-node-hp_r6 a[style*="padding:18px 50px"] {
        padding: 14px 30px !important;
        font-size: 16px !important;
    }

    /* --- SERVICES OVERVIEW --- */
    .fl-node-sv_r0 > .fl-row-content-wrap {
        padding-top: 40px !important;
        padding-bottom: 20px !important;
    }
    [class*="fl-node-sv_rs"] > .fl-row-content-wrap {
        padding-top: 20px !important;
        padding-bottom: 20px !important;
    }
    /* Image columns in services: lower min height on mobile */
    [class*="fl-node-sv_rs"] .fl-col[style*="background-image"] {
        min-height: 250px !important;
    }
    /* CTA section */
    .fl-node-sv_r_cta > .fl-row-content-wrap {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
    }

    /* --- THE GROUNDS --- */
    .fl-node-gr_r0 > .fl-row-content-wrap {
        padding-top: 60px !important;
        padding-bottom: 40px !important;
    }
    /* Hero buttons: wrap/centre */
    .fl-node-gr_r0 [style*="display:flex"] {
        flex-direction: column !important;
        align-items: center !important;
    }
    .fl-node-gr_r0 [style*="display:inline-flex"] {
        justify-content: center !important;
    }
    /* Intro sections */
    .fl-node-gr_r1 > .fl-row-content-wrap,
    .fl-node-gr_r2 > .fl-row-content-wrap {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
    }
    .fl-node-gr_r1g0c0 {
        min-height: 220px !important;
        margin-bottom: 20px;
    }
    .fl-node-gr_r2g0c1 {
        min-height: 220px !important;
        margin-top: 20px;
    }
    /* Benefits: single column */
    .fl-node-gr_r3g1 .fl-col {
        width: 100% !important;
    }
    /* Yorkshire section */
    .fl-node-gr_r4 > .fl-row-content-wrap {
        padding-top: 60px !important;
        padding-bottom: 40px !important;
    }

    /* --- ENQUIRE --- */
    .fl-node-eq_r0 > .fl-row-content-wrap {
        padding-top: 40px !important;
        padding-bottom: 30px !important;
    }
    .fl-node-eq_r0g0c1 {
        min-height: 220px !important;
        margin-top: 20px;
    }
    .fl-node-eq_r1 > .fl-row-content-wrap {
        padding-top: 20px !important;
        padding-bottom: 40px !important;
    }
    .fl-node-eq_r1g0c0 {
        margin-bottom: 20px;
    }

    /* --- GEO PAGES --- */
    /* Intro sections */
    [class*="fl-node-ml_r0"] > .fl-row-content-wrap,
    [class*="fl-node-sc_r0"] > .fl-row-content-wrap,
    [class*="fl-node-pk_r0"] > .fl-row-content-wrap,
    [class*="fl-node-yk_r0"] > .fl-row-content-wrap,
    [class*="fl-node-nt_r0"] > .fl-row-content-wrap,
    [class*="fl-node-hb_r0"] > .fl-row-content-wrap {
        padding-top: 40px !important;
        padding-bottom: 30px !important;
    }
    /* Service card grids: single column on mobile */
    [class*="fl-node-ml_r3g1"] .fl-col,
    [class*="fl-node-ml_r3g2"] .fl-col,
    [class*="fl-node-sc_r3g1"] .fl-col,
    [class*="fl-node-sc_r3g2"] .fl-col,
    [class*="fl-node-pk_r3g1"] .fl-col,
    [class*="fl-node-pk_r3g2"] .fl-col,
    [class*="fl-node-yk_r3g1"] .fl-col,
    [class*="fl-node-yk_r3g2"] .fl-col,
    [class*="fl-node-nt_r3g1"] .fl-col,
    [class*="fl-node-nt_r3g2"] .fl-col,
    [class*="fl-node-hb_r3g1"] .fl-col,
    [class*="fl-node-hb_r3g2"] .fl-col {
        width: 100% !important;
    }

    /* --- SERVICE PAGES (individual) --- */
    /* Reduce top padding */
    [class*="fl-node-pt_r0"] > .fl-row-content-wrap,
    [class*="fl-node-sg_r0"] > .fl-row-content-wrap,
    [class*="fl-node-lo_r0"] > .fl-row-content-wrap,
    [class*="fl-node-pn_r0"] > .fl-row-content-wrap,
    [class*="fl-node-cr_r0"] > .fl-row-content-wrap,
    [class*="fl-node-at_r0"] > .fl-row-content-wrap,
    [class*="fl-node-it_r0"] > .fl-row-content-wrap,
    [class*="fl-node-tc_r0"] > .fl-row-content-wrap {
        padding-top: 40px !important;
        padding-bottom: 20px !important;
    }
    /* "Who Is It For" sections */
    [class*="fl-node-pt_r4"] > .fl-row-content-wrap,
    [class*="fl-node-sg_r4"] > .fl-row-content-wrap,
    [class*="fl-node-lo_r4"] > .fl-row-content-wrap,
    [class*="fl-node-pn_r4"] > .fl-row-content-wrap,
    [class*="fl-node-cr_r4"] > .fl-row-content-wrap,
    [class*="fl-node-at_r4"] > .fl-row-content-wrap,
    [class*="fl-node-it_r4"] > .fl-row-content-wrap,
    [class*="fl-node-tc_r4"] > .fl-row-content-wrap {
        padding-top: 30px !important;
        padding-bottom: 30px !important;
    }

    /* --- AREAS WE SERVE --- */
    .fl-node-aw_r0 > .fl-row-content-wrap {
        padding-top: 40px !important;
    }

    /* --- BUTTONS --- */
    /* Make inline buttons full-width on mobile */
    a[style*="padding:15px 35px"],
    a[style*="padding: 15px 35px"] {
        padding: 12px 25px !important;
        font-size: 15px !important;
    }

    /* Constrain max-width on text paragraphs */
    [style*="max-width:700px"],
    [style*="max-width:540px"] {
        max-width: 100% !important;
    }

    /* Equal-height override: don't stretch when stacked */
    .fl-col-group-equal-height {
        align-items: stretch;
    }

    /* Inline button flex rows: stack on mobile */
    [style*="display:flex"][style*="gap:15px"] {
        flex-direction: column !important;
        align-items: center !important;
    }

    /* CF7 forms: full width */
    .wpcf7 input[type="text"],
    .wpcf7 input[type="email"],
    .wpcf7 input[type="tel"],
    .wpcf7 textarea,
    .wpcf7 select {
        width: 100% !important;
        max-width: 100% !important;
    }
}


/* =======================
   SMALL MOBILE (max-width: 480px)
   Fine-tuning for very small screens
   ======================= */
@media (max-width: 480px) {

    /* Further reduce large headings */
    [style*="font-size:52px"] { font-size: 24px !important; }
    [style*="font-size:48px"] { font-size: 24px !important; }
    [style*="font-size:42px"] { font-size: 22px !important; }
    [style*="font-size:36px"] { font-size: 20px !important; }
    [style*="font-size:32px"] { font-size: 20px !important; }

    /* Tighter side padding */
    .fl-row .fl-row-content-wrap {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    /* Header */
    .fl-theme-layout-header .fl-row-content-wrap {
        padding: 10px 15px !important;
    }
    .fl-node-hdr_r0g0c0 .fl-photo-img {
        max-width: 130px !important;
    }

    /* Homepage hero */
    .fl-node-hp_r0 > .fl-row-content-wrap {
        padding: 30px 15px !important;
    }

    /* Smaller min-height for bg image columns */
    .fl-col-group-equal-height .fl-col[style*="background-image"] {
        min-height: 180px !important;
    }
    .fl-node-hp_r5g1c0,
    .fl-node-hp_r5g1c2 {
        min-height: 160px !important;
    }

    /* Footer */
    .fl-theme-layout-footer .fl-row-content-wrap {
        padding: 30px 15px !important;
    }
}



/* =======================
   FIX: BB fl-col-small max-width cap breaks column stacking on
   tablet/mobile (max-width:768 BB rule sets .fl-col-small max-width:400px,
   which conflicts with our width:100% stacking rule and stops percentage-
   width columns from filling the viewport). Site-wide, tablet breakpoint.
   Found on /bring-a-friend/ landing page QA, 2026-09-03.
   ======================= */
@media (max-width: 992px) {
    .fl-col-group .fl-col.fl-col-small:not(.fl-col-small-full-width) {
        max-width: 100% !important;
    }
}
