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

/* Use This File To Add Site Specific Styles and Override Theme and Plugin Defaults CSS
 * Don't Edit the original CSS files
*/

/* ── Fluid type tokens ──────────────────────────────────────────────────
   All sizes live here. Change a pair of numbers, the whole page follows.
   Naming: --rw-fs-* = font size, --rw-sp-* = spacing.
   ---------------------------------------------------------------------- */
:root {
    /* Display */
    --rw-fs-hero: clamp(1.75rem, 1.025rem + 3.094vw, 3.5rem);
    /* 28 → 56 */
    --rw-fs-h1: clamp(1.875rem, 1.512rem + 1.547vw, 2.75rem);
    /* 30 → 44 */
    --rw-fs-h2: clamp(1.625rem, 1.366rem + 1.105vw, 2.25rem);
    /* 26 → 36 */
    --rw-fs-h3: clamp(1.25rem, 1.095rem + 0.663vw, 1.625rem);
    /* 20 → 26 */
    --rw-fs-h3caps: clamp(1rem, 0.896rem + 0.442vw, 1.25rem);
    /* 16 → 20 */

    /* Body */
    --rw-fs-body: clamp(1rem, 0.948rem + 0.221vw, 1.125rem);
    /* 16 → 18 */
    --rw-fs-lead: clamp(1.063rem, 0.985rem + 0.331vw, 1.25rem);
    /* 17 → 20 */
    --rw-fs-large: clamp(1.125rem, 0.970rem + 0.663vw, 1.5rem);
    /* 18 → 24 */

    /* Callout strip */
    --rw-fs-callout-label: clamp(1.188rem, 1.058rem + 0.552vw, 1.5rem);
    /* 19 → 24 */
    --rw-fs-callout-body: clamp(0.938rem, 0.860rem + 0.331vw, 1.125rem);
    /* 15 → 18 */

    /* Rhythm */
    --rw-sp-section: clamp(2.5rem, 1.671rem + 3.536vw, 4.5rem);
    /* 40 → 72 */

    /* Brand */
    --rw-blue: #049;
    --rw-blue-soft: #59a;
    --rw-ink: #333;

    /* Comfortable line length for centred prose */
    --rw-measure: 70ch;
}

/* Topbar ------------------------------*/

.fl-page-bar .fl-page-nav-search a.fa-search {
    border: 1px solid #2A506F;
    background-color: #177FBA;
}

.fl-page-bar .fl-page-nav-search a.fa-search:hover {
    color: #fff;
    border: 3px solid #2A506F;
    background-color: #1697bf;
}

.fl-page-bar .fl-page-nav-search form input.fl-search-input {
    background-color: rgba(255, 255, 255, 1);
    border-color: #85815C;
    color: #85815C;
}


/* Header ------------------------------*/

.rw-header-text {
    font-size: 18px;
    line-height: 1.4;
}

.fl-page-header-text .rw-header-text-phone {
    font-size: 26px;
}


/* Home Page Slider ------------------------------*/
/*
.rw-home-slider .fl-col-content {
	position: relative;
}

.rw-home-slider .fl-col-content .rw-slider-form {
	position: absolute;
    z-index: 77777;
    top: 50px;
    right: 0;
    left: 0;
    bottom: 50px;
    width: 1060px;
    margin: auto;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.rw-home-slider .fl-col-content .rw-slider-form .fl-module-content {
	width: 33.33333%;
}

.rw-home-slider .fl-slide {
    display: flex !important;
}

.rw-home-slider .fl-slide-foreground {
    margin: 0 auto;
    width: 1060px;
    display: flex;
}

.rw-home-slider .fl-slide .fl-slide-content-wrap {
    width: 67%;
    display: flex;
    align-items: center;
}

.rw-home-slider .fl-slide .fl-slide-content {
	display: flex;
	margin: 0 60px 0 0;
    background-color: rgba(42,80,111,0.4);
    padding: 25px 30px;
    width: 100%;
}

.rw-home-slider .fl-slide-0 .fl-slide-content {
	background-color: rgba(78,78,31,0.4);
}

.rw-home-slider .fl-slide-1 .fl-slide-content {
	background-color: rgba(64,75,83,0.4);
}

.rw-home-slider .fl-slide-2 .fl-slide-content {
	background-color: rgba(126,108,73,0.6);
}

.rw-home-slider .fl-slide h2.fl-slide-title {
    text-align: center;
    font-size: 40px;
    font-weight: 700;
    color: #fff;
    text-shadow: 0 3px 6px rgba(0,0,0,0.45);
    text-transform: uppercase;
    margin-bottom: 0 !important;
}

.rw-home-slider .fl-col-content .rw-slider-form .rw-shortform_wrapper {
	background: rgba(255,255,255,0.52);
	border: 1px solid rgba(255,255,255,0.52);
	-webkit-box-shadow: 0 3px 6px 0 rgba(0,0,0,0.16);
	box-shadow: 0 3px 6px 0 rgba(0,0,0,0.16);
}


.rw-home-slider .fl-module-content-slider .bx-wrapper {
    margin: 0 auto;
}

.rw-home-slider .bx-wrapper .bx-controls-auto, .bx-wrapper .bx-pager {
    bottom: 30px;
}

.rw-home-slider .bx-wrapper .bx-pager.bx-default-pager a {
    background: #fff;
    width: 14px;
    height: 14px;
    margin: 0 7px;
    -moz-border-radius: 7px;
    -webkit-border-radius: 7px;
    border-radius: 7px;
}

.rw-home-slider .bx-wrapper .bx-pager.bx-default-pager a.active,
.rw-home-slider .bx-wrapper .bx-pager.bx-default-pager a:focus,
.rw-home-slider .bx-wrapper .bx-pager.bx-default-pager a:hover {
    background: #2080B8;
}

@media (min-width: 320px) {
    
    .rw-home-slider .fl-slide {
	    flex-direction: column;
	    justify-content: center;
	}
	
	.rw-home-slider .fl-slide-foreground {
	    width: calc(100% - 80px);
	}
	
	.rw-home-slider .fl-slide .fl-slide-content-wrap {
	    margin: auto;
	}
	
	.rw-home-slider .bx-has-pager {
		display: none;
	}
	
	.fl-builder-content .bx-wrapper .bx-viewport,
	.fl-content-slider .fl-slide-bg-photo,
	.rw-home-slider .fl-slide {
	    height: 320px !important;
	}
	
	.rw-home-slider .fl-col-content .rw-slider-form {
	    position: relative;
	    clear: both;
	    width: 100%;
	    justify-content: center;
	    top:10px;
	    bottom: 10px;
	}
	
	.rw-home-slider .fl-col-content .rw-slider-form .fl-module-content {
	    width: calc(100% - 40px);
	    margin-left: 0;
	}
	
	.rw-home-slider .fl-col-content .rw-slider-form .rw-shortform_wrapper {
	    border: none;
	    -webkit-box-shadow: none;
	    box-shadow: none;
	}
	
	.rw-home-slider .gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]),
	.gform_wrapper textarea {
	    background-color: #f5f5f5;
	}	
    
}

@media (min-width: 480px) {
	
	.fl-builder-content .bx-wrapper .bx-viewport,
	.fl-content-slider .fl-slide-bg-photo,
	.rw-home-slider .fl-slide {
	    height: 400px !important;
	}

}

@media (max-width: 768px) {
	
	.fl-slide-mobile-photo {
	    display: none;
	}
	
	.fl-content-slider .fl-slide-bg-photo {
	    position: absolute;
	}
	
	.fl-builder-content .fl-module-content-slider .fl-slide .fl-slide-title {
	    font-size: 20px !important;
	    line-height: 26px !important;
	}
	
}

@media (min-width: 769px) {
	
	.fl-builder-content .bx-wrapper .bx-viewport,
	.fl-content-slider .fl-slide-bg-photo,
	.rw-home-slider .fl-content-slider,
	.rw-home-slider .fl-slide {
	    height: 400px !important;
	    min-height: 400px;
	}
	
	.rw-home-slider .fl-slide .fl-slide-content {
	    margin: 0;
	}
	
	.fl-builder-content .fl-module-content-slider .fl-slide .fl-slide-title {
	    font-size: 32px !important;
		line-height: 38px !important;
		width: 100%;
	}

}

@media (min-width: 980px) {
	
	.fl-builder-content .bx-wrapper .bx-viewport,
	.fl-content-slider .fl-slide-bg-photo,
	.rw-home-slider .fl-content-slider,
	.rw-home-slider .fl-slide {
	    height: 580px !important;
	    min-height: 580px;
	}
	
	.rw-home-slider .fl-slide-foreground {
	    width: 67%;
	    margin: 0;
	}
	
	.rw-home-slider .fl-col-content .rw-slider-form {
	    position: absolute;
	    clear: none;
	    width: calc(100% - 80px);
	    justify-content: flex-end;
	    top: 50px;
	    bottom: 50px;
	}
	
	.rw-home-slider .fl-col-content .rw-slider-form .fl-module-content {
	    width: 33%;
	}
	
	.rw-home-slider .bx-has-pager {
	    display: block;
	}
	
	.rw-home-slider .gform_wrapper input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]),
	.gform_wrapper textarea {
	    background-color: #fff;
	}
	
}

@media (min-width: 1140px) {
	
	.fl-builder-content .bx-wrapper .bx-viewport,
	.fl-content-slider .fl-slide-bg-photo,
	.rw-home-slider .fl-content-slider,
	.rw-home-slider .fl-slide {
	    height: 700px !important;
	    min-height: 700px;
	}
	
}
*/

.rw-hero-image .fl-row-content-wrap {
    height: 650px;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.rw-hero-image .fl-row-content-wrap .fl-row-content {
    width: 100%;
}

.rw-hero-image-text {
    display: flex;
    justify-content: center;
    text-align: center;
}

.rw-hero-image-text-wrapper {
    width: 100%;
}

.rw-hero-image-text .line1,
.rw-hero-image-text .line2,
.rw-hero-image-text .line3 {
    font-size: 32px;
    font-weight: 700;
    color: #00171F;
    margin-bottom: 5px;
    line-height: 1.5;
    text-align: center;
    text-shadow: 0 0 8px #FFFFFF;
}

.rw-hero-image-text .line2 {
    font-size: 25px;
    color: #225579;
    margin-bottom: 10px;
}


.rw-hero-image-text .line3 {
    color: #3C3D40;
    font-size: 19px;
}

.rw-hero-image-text .line3 {
    margin-bottom: 20px;
}

.fl-builder-content a.fl-button,
.fl-builder-content a.fl-button:visited {
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px;
    font-size: 16px;
    line-height: 16px;
}

.fl-builder-content a.fl-button:hover {
    -webkit-border-radius: 4px;
    -moz-border-radius: 4px;
    border-radius: 4px;
}

@media (min-width: 320px) {

    .rw-hero-image .fl-row-content-wrap {
        align-items: center;
        height: 320px;
    }

    .rw-hero-image-text-wrapper {
        padding: 20px;
    }

    .rw-hero-image-text .line1,
    .rw-hero-image-text .line2,
    .rw-hero-image-text .line3 {
        font-size: 18px
    }

    .rw-hero-image-text .line2 {
        font-size: 18px;
    }

    .rw-hero-image-text .line3 {
        font-size: 16px;
    }

    .fl-builder-content a.fl-button,
    .fl-builder-content a.fl-button:visited {
        padding: 17px 20px;
    }

}

@media (min-width: 400px) {

    .rw-hero-image-text .line1 {
        font-size: 20px
    }

}

@media (min-width: 480px) {

    .rw-hero-image-text .line1 {
        font-size: 22px
    }

}

@media (min-width: 540px) {

    .rw-hero-image .fl-row-content-wrap {
        align-items: center;
        background-size: cover;
        background-position-x: center;
        background-position-y: center;
        height: 340px;
        padding: 0;
        background-color: #eee;
    }

    .rw-hero-image-text-wrapper {
        padding: 20px;
    }

    .rw-hero-image-text .line1 {
        font-size: 24px
    }

}

@media (min-width: 600px) {

    .rw-hero-image .fl-row-content-wrap {
        height: 380px;
    }

}

@media (min-width: 700px) {

    .rw-hero-image-text .line1,
    .rw-hero-image-text .line2,
    .rw-hero-image-text .line3 {
        font-size: 24px
    }

    .rw-hero-image-text .line2 {
        font-size: 20px;
    }

    .rw-hero-image-text .line3 {
        font-size: 18px;
    }

    .fl-builder-content a.fl-button,
    .fl-builder-content a.fl-button:visited {
        padding: 17px 50px;
    }

}

@media (min-width: 800px) {

    .rw-hero-image .fl-row-content-wrap {
        height: 420px;
    }

    .rw-hero-image-text .line1,
    .rw-hero-image-text .line2,
    .rw-hero-image-text .line3 {
        font-size: 28px
    }

    .rw-hero-image-text .line2 {
        font-size: 24px;
    }

    .rw-hero-image-text .line3 {
        font-size: 20px;
    }

}

@media (min-width: 800px) {

    .rw-hero-image .fl-row-content-wrap {
        height: 450px;
    }

}

@media (min-width: 1100px) {

    .rw-hero-image .fl-row-content-wrap {
        height: 560px;
    }

}

@media (min-width: 1180px) {

    .rw-hero-image .fl-row-content-wrap {
        height: 600px;
    }

}


/* Home Logos ---------------------------------------*/

.rw-row-logos .fl-row-content-wrap {
    position: relative;
    padding: 40px 0;
}


/* Content Styles ------------------------------*/

.rw-white-content-box .fl-module-content {
    background-color: #fff;
    padding: 30px;
    -webkit-border-radius: 5px;
    border-radius: 5px;
}

.rw-white-content-box .fl-module-content h2 {
    font-size: 28px;
    color: #177FBA;
}

.rw-white-content-box .fl-module-content h3 {
    font-size: 24px;
    color: #85805C;
}

@media (min-width: 320px) {

    .rw-white-content-box .fl-module-content h2 {
        font-size: 22px;
    }

    .rw-white-content-box .fl-module-content h3 {
        font-size: 20px;
    }

}

.policy-language {
    background: #F5F5F5;
    border: 1px solid #ddd;
    padding: 30px;
    margin-bottom: 20px;
}

.policy-language p,
.policy-language li {
    font-family: Times, serif;
    font-size: 18px;
}

.fl-module-pp-pullquote .pp-quote-wrap .pp-pullquote-wrapper {
    max-width: 100% !important;
}

/* Content Styles ------------------------------*/
.rw-footnotes li {
    font-size: 13px;
    margin-bottom: 15px;
}




/* RW Form Box
----------------------------------------*/

.rw-form-box {
    background: #EBEBDF;
    border: 1px solid #ccc;
    padding: 30px;
    margin: 20px;
    -webkit-border-radius: 10px;
    border-radius: 10px;
    margin-bottom: 40px;
}

.rw-form-box .fl-module-content {
    margin: 0;
}

.rw-shortform_wrapper {
    background: #eee;
    padding: 20px;
    -webkit-border-radius: 10px;
    border-radius: 10px;
    margin-bottom: 40px;
    margin: 10px auto 40px;
}

@media (min-width: 320px) {

    .rw-shortform_wrapper {
        padding: 15px;
    }

    .rw-form-box {
        padding: 15px;
    }

}

@media (min-width: 641px) {

    .rw-form-box {
        padding: 30px;
    }

}

@media (min-width: 769px) {

    .rw-form-box {
        padding: 15px;
    }

}

@media (min-width: 980px) {

    .rw-form-box {
        padding: 30px;
    }

}

/* Site Specific Form Styles */

#gform_wrapper_1 #field_1_12,
#gform_wrapper_3 #field_3_12,
#gform_wrapper_4 #field_4_12 {
    border-bottom: none !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}


/* Free Download Widget
----------------------------------------*/

.fl-module-sidebar .free-download-widget.widget_text,
.fl-sidebar .free-download-widget.widget_text {
    background-color: #F5F6F8;
    padding: 0;
    border: 1px solid #ced4df;
    -webkit-border-radius: 5px;
    border-radius: 5px;
    margin-bottom: 30px;
    margin: 0 auto 30px;
}

.fl-module-sidebar .free-download-widget h4.fl-widget-title,
.fl-sidebar .free-download-widget h4.fl-widget-title {
    background: rgb(35, 87, 124);
    background: linear-gradient(180deg, #E80715 0%, #C90713 100%);
    font-size: 24px;
    text-align: center;
    color: #fff;
    margin-top: 0;
    margin-bottom: 0 !important;
    padding: 15px;
    -webkit-border-radius: 5px 5px 0 0;
    border-radius: 5px 5px 0 0;
    text-transform: uppercase;
}

.fl-module-sidebar .free-download-widget .textwidget,
.fl-sidebar .free-download-widget .textwidget {
    padding: 20px;
    text-align: center;
}

.fl-module-sidebar .free-download-widget .textwidget a,
.fl-sidebar .free-download-widget .textwidget a {
    color: #2A506F;
}

.fl-module-sidebar .free-download-widget .textwidget a:hover,
.fl-sidebar .free-download-widget .textwidget a:hover {
    color: #ea0743;
    text-decoration: none;
}

.fl-module-sidebar .free-download-widget .textwidget i.fas,
.fl-sidebar .free-download-widget .textwidget i.fas {
    font-size: 48px;
    clear: both;
    margin-bottom: 10px;
}


/* iFrame Heights
----------------------------------------*/

.rw-listing-iframe {
    border-radius: 6px;
    border: 1px solid #C3C3BB;
    height: calc(100vh - 540px) !important;
}

@media (max-height: 1366px) {

    .rw-listing-iframe {
        height: 1000px !important;
    }

}

@media (max-height: 1024px) {

    .rw-listing-iframe {
        height: 860px !important;
    }

}

@media (max-height: 896px) {

    .rw-listing-iframe {
        height: 796px !important;
    }

}

@media (max-height: 812px) {

    .rw-listing-iframe {
        height: 712px !important;
    }

}

@media (max-height: 736px) {

    .rw-listing-iframe {
        height: 636px !important;
    }

}

@media (max-height: 667px) {

    .rw-listing-iframe {
        height: 560px !important;
    }

}

@media (max-height: 568px) {

    .rw-listing-iframe {
        height: 468px !important;
    }

}




/* Sidebar Styles ------------------------------*/

.rw-widget-box-header .fl-html h3.widgettitle {
    background-color: #177FBA;
    padding: 20px 30px;
    margin: 0;
    -webkit-border-radius: 5px 5px 0 0;
    border-radius: 5px 5px 0 0;
    font-size: 22px;
    color: #fff;
    text-align: center;
}

.rw-widget-box-header .fl-html .widgetbody {
    border: 1px solid #C3C3BB;
    background-color: #EBEBDE;
    padding: 30px;
    margin: 0;
    -webkit-border-radius: 0 0 5px 5px;
    border-radius: 0 0 5px 5px;
}

.rw-widget-box-header .fl-html .widgetbody p:last-of-type {
    margin-bottom: 0;
}

.rw-widget-box-header .button {
    background-color: #2A506F;
    -webkit-border-radius: 3px;
    border-radius: 3px;
    color: #fff;
    text-transform: uppercase;
    font-weight: 700;
    display: block;
    text-align: center;
    padding: 13px;
}

.rw-widget-box-no-header .fl-html,
.rw-widget-box-no-header .fl-rich-text {
    border: 1px solid #C3C3BB;
    -webkit-border-radius: 5px;
    border-radius: 5px;
    background-color: #EBEBDE;
    padding: 20px 30px;
}

.rw-widget-box-no-header h3 {
    font-size: 22px;
}

.rw-widget-no-box-no-header h3 {
    font-size: 22px;
}

@media (min-width: 769px) {

    .rw-widget-box-header .fl-html h3.widgettitle {
        padding: 20px 10px;
        font-size: 16px;
    }

    .rw-widget-box-no-header h3 {
        font-size: 16px;
    }

    .rw-widget-box-header .fl-html .widgetbody,
    .rw-widget-box-header .fl-rich-text .widgetbody,
    .rw-widget-box-no-header .fl-html,
    .rw-widget-box-no-header .fl-rich-text {
        padding: 20px 10px;
    }

    .rw-widget-box-header .widgetbody ul,
    .rw-widget-box-no-header .fl-rich-text ul {
        padding-left: 30px;
    }

    .rw-widget-box-header .fl-html .widgetbody li,
    .rw-widget-box-header .fl-html .widgetbody p,
    .rw-widget-box-no-header .fl-rich-text p,
    .rw-widget-box-no-header .fl-rich-text li {
        font-size: 14px;
    }

}

@media (min-width: 1024px) {

    .rw-widget-box-header .fl-html h3.widgettitle {
        padding: 20px;
        font-size: 22px;
    }

    .rw-widget-box-no-header h3 {
        font-size: 22px;
    }

    .rw-widget-box-header .fl-html .widgetbody,
    .rw-widget-box-header .fl-rich-text .widgetbody,
    .rw-widget-box-no-header .fl-html,
    .rw-widget-box-no-header .fl-rich-text {
        padding: 20px;
    }

    .rw-widget-box-header .widgetbody ul,
    .rw-widget-box-no-header .fl-rich-text ul {
        padding-left: 40px;
    }

    .rw-widget-box-header .fl-html .widgetbody li,
    .rw-widget-box-header .fl-html .widgetbody p,
    .rw-widget-box-no-header .fl-rich-text p,
    .rw-widget-box-no-header .fl-rich-text li {
        font-size: 16px;
    }

}


/* Power Pack Styles
--------------------------------------------------------*/

.fl-module-pp-faq .pp-faq-item .pp-faq-button {
    background-color: #eee;
    -webkit-border-radius: 3px 3px 0 0;
    border-radius: 3px 3px 0 0;
}

.fl-module-pp-faq .pp-faq-item .pp-faq-content {
    background-color: #fff;
    border: 1px solid #eee;
}

.fl-module-pp-faq .pp-faq-item .pp-faq-content p:last-of-type {
    margin-bottom: 0;
}



/* ── Grid System ────────────────────────────────────── */
.rw-grid {
    display: grid;
    overflow: visible;
    grid-auto-rows: minmax(min-content, max-content);
    grid-column-gap: 30px;
    grid-row-gap: 30px;
}

.rw-cols-1,
.rw-cols-2,
.rw-cols-3,
.rw-cols-4,
.rw-cols-5,
.rw-cols-6 {
    grid-template-columns: repeat(1, 1fr);
}

@media (min-width: 640px) {

    .rw-cols-2,
    .rw-cols-3,
    .rw-cols-4,
    .rw-cols-5,
    .rw-cols-6 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 960px) {
    .rw-cols-3 {
        grid-template-columns: repeat(3, 1fr);
    }

    .rw-cols-4 {
        grid-template-columns: repeat(4, 1fr);
    }

    .rw-cols-5,
    .rw-cols-6 {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 1280px) {
    .rw-cols-4 {
        grid-template-columns: repeat(4, 1fr);
    }

    .rw-cols-5 {
        grid-template-columns: repeat(5, 1fr);
    }

    .rw-cols-6 {
        grid-template-columns: repeat(6, 1fr);
    }
}

.rw-grid-item-col {
    display: flex;
    flex-direction: column;
}

.rw-grid-item-row {
    display: flex;
    flex-direction: row;
}

.rw-grid-item>* {
    flex: 1;
}


/* ── Section rhythm ─────────────────────────────────────────────────────
   BB writes a flat 40px top/bottom on every row node. This scales it.
   Specificity (0,3,0) beats the .fl-node-xxx > .fl-row-content-wrap rule.
   ---------------------------------------------------------------------- */
.fl-row.landing-content>.fl-row-content-wrap,
.fl-row.landing-callouts>.fl-row-content-wrap {
    padding-top: var(--rw-sp-section);
    padding-bottom: var(--rw-sp-section);
}


/* ── Hero ───────────────────────────────────────────────────────────────
   aspect-ratio drives the height on wide screens; min-height takes over
   below ~820px. The clamp keeps five lines of copy inside that box.
   ---------------------------------------------------------------------- */
.landing-hero .fl-row-content-wrap {
    min-height: clamp(20rem, 12.5rem + 32vw, 25rem);
    aspect-ratio: 1440 / 700;
}

.landing-hero .rw-landing-hero-text {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
}

.landing-hero .rw-landing-hero-text .line1 {
    font-size: var(--rw-fs-hero);
    color: var(--rw-blue);
    font-weight: 800;
    line-height: 1.25;
    text-wrap: balance;
}

/* ── Callout strip (SAFETY / RELIABILITY / EFFICIENCY / DETAILS) ─────────
   Icon is a fixed fluid width rather than 25%, so it doesn't balloon when
   the grid drops from 4 columns to 2.
   ---------------------------------------------------------------------- */
.fl-module.landing-callouts::before,
.fl-module.landing-callouts::after {
    display: none;
}

.landing-callouts .rw-grid-item-row {
    gap: 13px;
    align-items: flex-start;
}

.landing-callouts .rw-icon {
    flex: 0 0 clamp(2.75rem, 1.9rem + 3.6vw, 4.5rem);
    /* 44 → 72 */
    width: auto;
    height: auto;
}

.landing-callouts .rw-icon img {
    width: 100%;
    height: auto;
    display: block;
}

.landing-callouts .rw-content {
    flex: 1 1 auto;
    width: auto;
    font-size: var(--rw-fs-callout-body);
    line-height: 1.35;
    font-weight: 600;
    color: var(--rw-blue-soft);
}

.landing-callouts .rw-content span {
    font-size: var(--rw-fs-callout-label);
    color: var(--rw-blue);
    font-weight: 700;
    line-height: 1.2;
}

/* ── Content sections ───────────────────────────────────────────────────
   Note: the theme skin sets h1 to 32px on desktop but 36px at ≤991px, so
   headings currently get LARGER on mobile. These class-scoped rules
   (0,1,1) outrank the skin's bare element selectors and fix that.
   ---------------------------------------------------------------------- */
.landing-content h1 {
    font-size: var(--rw-fs-h1);
    font-weight: 800;
    line-height: 1.2;
    text-wrap: balance;
}

.landing-content h2.section-heading {
    font-size: var(--rw-fs-h2);
    font-weight: 800;
    line-height: 1.25;
    color: var(--rw-blue);
    text-wrap: balance;
}

.landing-content h3 {
    font-size: var(--rw-fs-h3);
    line-height: 1.3;
}

.landing-content .h3caps {
    font-size: var(--rw-fs-h3caps);
    text-transform: uppercase;
    color: #000;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: .02em;
}

.landing-content p {
    font-size: var(--rw-fs-body);
    line-height: 1.6;
}

.landing-content .large-text {
    font-size: var(--rw-fs-large);
    line-height: 1.5;
}

.landing-content .lead {
    font-size: var(--rw-fs-lead);
    color: #000;
    font-weight: 600;
    line-height: 1.5;
}

/* Centred intro copy reads badly at 1140px wide — cap the measure */
.landing-content .text-center.lead,
.landing-content .text-center.large-text {
    max-width: var(--rw-measure);
    margin-inline: auto;
}

/* "Step 1:" / "Education:" style headings sitting tight to their paragraph */
.landing-content .mb-0 {
    margin-bottom: .25rem;
}

/* ── FAQ (PowerPack) ────────────────────────────────────────────────────
   Only the type is touched — the accordion mechanics stay as-is.
   ---------------------------------------------------------------------- */
.landing-content .fl-module-pp-faq .pp-faq-item .pp-faq-button {
    background-color: #f0f7fe;
    font-size: var(--rw-fs-lead);
    line-height: 1.35;
}

.landing-content .fl-module-pp-faq .pp-faq-item .pp-faq-content {
    border: none;
    background-color: #f0f7fe;
    font-size: var(--rw-fs-body);
    line-height: 1.6;
}

/* ── Quality floor ──────────────────────────────────────────────────────*/
@media (prefers-reduced-motion: reduce) {
    .landing-content .fl-module-pp-faq * {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}


/* ── Numbered list ──────────────────────────────────────────────────────
   Same component as before, now fully fluid — the max-width:600px
   breakpoint is gone, replaced by clamps on the circle and the type.
   ---------------------------------------------------------------------- */
.rw-numlist {
    --nl-accent: var(--rw-blue);
    --nl-ring: var(--rw-blue);
    --nl-fill: rgba(207, 229, 245, .8);
    --nl-body: var(--rw-ink);
    /* was undefined */
    --nl-size: clamp(2rem, 1.793rem + 0.884vw, 2.5rem);
    /* 32 → 40 */
    --nl-ring-width: 2px;
    --nl-gutter: clamp(0.75rem, 0.543rem + 0.884vw, 1.25rem);
    /* 12 → 20 */
    --nl-item-gap: clamp(1.75rem, 1.233rem + 2.210vw, 3rem);
    /* 28 → 48 */

    counter-reset: rw-num;
    list-style: none;
    margin: 0;
    padding: 0;
}

.rw-numlist>li {
    counter-increment: rw-num;
    position: relative;
    padding-left: calc(var(--nl-size) + var(--nl-gutter));
    margin-bottom: var(--nl-item-gap);
}

.rw-numlist>li:last-child {
    margin-bottom: 0;
}

/* The circled number */
.rw-numlist>li::before {
    content: counter(rw-num);
    position: absolute;
    left: 0;
    top: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    width: var(--nl-size);
    height: var(--nl-size);
    box-sizing: border-box;

    border: var(--nl-ring-width) solid var(--nl-ring);
    border-radius: 50%;
    background: var(--nl-fill);

    color: var(--nl-accent);
    font-size: clamp(0.938rem, 0.860rem + 0.331vw, 1.125rem);
    /* 15 → 18 */
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

/* Headings — override the generic .landing-content h3 above */
.landing-content .rw-numlist h3,
.rw-numlist h3 {
    margin: 0 0 .5rem;
    padding-top: .25em;
    /* em, so it tracks the type */
    color: var(--nl-accent);
    font-size: clamp(1.063rem, 0.959rem + 0.442vw, 1.313rem);
    /* 17 → 21 */
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: .015em;
    text-transform: uppercase;
    text-wrap: balance;
}

.landing-content .rw-numlist p,
.rw-numlist p {
    margin: 0 0 .75rem;
    color: var(--nl-body);
    font-size: var(--rw-fs-body);
    font-weight: 400;
    line-height: 1.6;
}

.rw-numlist p:last-child {
    margin-bottom: 0;
}