/*
Theme Name: Hello AMBA
Theme URI: 
Author: AMBA (Craig Campbell)
Description: Custom AMBA block theme for Association use
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.9
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: hello-amba
*/

/* ─── GLOBAL BASE STYLES ─────────────────────────────────────────────────── */
/*
    REM SCALE: html font-size = 10px
    So: 1rem = 10px, 1.6rem = 16px, 1.8rem = 18px, 2rem = 20px, etc.
    This makes rem math trivial throughout the stylesheet.
*/

:root {
	--font-family-primary: 'Open Sans', Helvetica, Arial, sans-serif;

    /* ── Layout ─────────────────────────────── */
    --content-size: 1400px;
    --wide-size: 1400px;

    /* ── Font Sizes ──────────────────────────── */
    --font-size-xxs:   1.2rem;  /* 12px */
    --font-size-xs:   1.4rem;  /* 14px */
    --font-size-sm:   1.8rem;  /* 18px */
    --font-size-base: 2.2rem;  /* 22px */
    --font-size-md:   2.4rem;  /* 24px */
    --font-size-lg:   2.8rem;    /* 28px */
    --font-size-xl:   3rem;  /* 30px */
    --font-size-2xl:  3.2rem;    /* 32px */
    --font-size-3xl:  3.6rem;  /* 36px */
    --font-size-4xl:  4rem;    /* 40px */
    --font-size-5xl:  5rem;    /* 50px */
    --font-size-6xl:  6rem;    /* 60px */
    --font-size-7xl:  7rem;    /* 70px */
    --font-size-10xl:  10rem;    /* 100px */

    /* ── Spacing ─────────────────────────────── */
    --space-0:   0;
    --space-10:  1rem;
    --space-20:  2rem;
    --space-30:  3rem;
    --space-40:  4rem;
    --space-50:  5rem;
    --space-60:  6rem;
    --space-70:  7rem;
    --space-80:  8rem;

    /* ── Colors ──────────────────────────────── */
    --color-primary:    	#252e65;
    --color-primary-dark:  	#474766;
    --color-primary-light: 	#1374ac;
    --color-cta:        	#e6001d;
    --color-highlight:  	#e6001d;
    --color-error:     		#e6001d;
    --color-red:        	#e6001d;
    --color-red-dark: 		#ad0d0d;
    --color-preheader:  	#252e65;
    --color-nav:        	#ffffff;
    --color-nav-border: 	#474766;
    --color-text:       	#333333;
    --color-gray-extra-light:    #ececec;
    --color-gray-light: 	#dddddd;
    --color-gray-dark: 		#4c4c4c;
    --color-gray-medium:	#999999;
    --color-white:			#ffffff;
    --color-black:          #000000;
}
section {
    margin-top: 0;
    margin-bottom: 0;
}
.section-bg-white { background-color: var(--color-white); }
.section-bg-gray-light,
.content-bg-light-gray { 
	background-color: var(--color-gray-light); 
}
.section-bg-primary-dark,
.content-bg-primary-blue { 
	background-color: var(--color-primary-dark); 
	color: var(--color-white);
}
.section-bg-primary,
.content-bg-primary { 
	background-color: var(--color-primary); 
	color: var(--color-white);
}
.section-bg-primary-light,
.content-bg-primary-light {
	background-color: var(--color-primary-light); 
	color: var(--color-white);
}
.section-bg-primary-dark h2,
.content-bg-primary-blue h2,
.section-bg-primary h2,
.content-bg-primary h2,
.section-bg-primary-light h2,
.content-bg-primary-light h2,
.section-bg-primary-dark h3,
.content-bg-primary-blue h3,
.section-bg-primary h3,
.content-bg-primary h3,
.section-bg-primary-light h3,
.content-bg-primary-light h3,
.section-bg-primary-dark h4,
.content-bg-primary-blue h4,
.section-bg-primary h4,
.content-bg-primary h4,
.section-bg-primary-light h4,
.content-bg-primary-light h4,
.section-bg-primary-dark a,
.content-bg-primary-dark a,
.section-bg-primary a,
.content-bg-primary a {
	color: var(--color-white)!important;
}

.section-bg-primary-dark a:hover,
.content-bg-primary-dark a:hover,
.section-bg-primary a:hover,
.content-bg-primary a:hover {
	opacity: 0.7;
}

/* Styles to avoid overly large 'white space' between same-background-color sections on top of each other */
.section-bg-white + .section-bg-white,
.section-bg-black + .section-bg-black,
.section-bg-primary + .section-bg-primary,
.section-bg-primary-dark + .section-bg-primary-dark,
.section-bg-primary-light + .section-bg-primary-light,
.section-bg-cta + .section-bg-cta,
.section-bg-gray-light + .section-bg-gray-light,
.section-bg-gray-medium + .section-bg-gray-medium,
.section-bg-gray-dark + .section-bg-gray-dark,
.section-bg-highlight + .section-bg-highlight,
.section-bg-error + .section-bg-error,
.section-bg-red + .section-bg-red,
.section-bg-white + .section-bg-white .content-col-inner,
.section-bg-black + .section-bg-black .content-col-inner,
.section-bg-primary + .section-bg-primary .content-col-inner,
.section-bg-primary-dark + .section-bg-primary-dark .content-col-inner,
.section-bg-primary-light + .section-bg-primary-light .content-col-inner,
.section-bg-cta + .section-bg-cta .content-col-inner,
.section-bg-gray-light + .section-bg-gray-light .content-col-inner,
.section-bg-gray-medium + .section-bg-gray-medium .content-col-inner,
.section-bg-gray-dark + .section-bg-gray-dark .content-col-inner,
.section-bg-highlight + .section-bg-highlight .content-col-inner,
.section-bg-error + .section-bg-error .content-col-inner,
.section-bg-red + .section-bg-red .content-col-inner {
    padding-top: var(--space-0);
}



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

html {
    font-size: 10px; /* REM BASE — do not change */
}

body {
    font-family: var(--font-family-primary);
    font-size: var(--font-size-base); /* 18px */
    line-height: 1.35;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
    color: var(--color-text);
}
main {
	margin: 0;
}
/* Headings — all based on 10px root */
h1, h2, h3, h4, h5, h6 {
    line-height: 1.1;
    margin-block-start: 0;
    margin-block-end: 0.5em;
    font-family: 'Open Sans', Helvetica, Arial, sans-serif;
}
h1 { font-size: var(--font-size-7xl);  font-weight: 900; } /* 70px */
h2 { font-size: var(--font-size-6xl); font-weight: 700; } /* 55px  */
h3 { font-size: var(--font-size-4xl);   font-weight: 700; } /* 40px  */
h4 { font-size: var(--font-size-xl);   font-weight: 700; } /* 30px  */
h5 { font-size: var(--font-size-md); font-weight: 700; } /* 25px  */
h6 { font-size: var(--font-size-base);   font-weight: 700; } /* 20px  */

/* Paragraph-level elements */
p, ul, ol, li, address { font-size: var(--font-size-base); } /* 18px */
p { margin-top: 0; margin-bottom: 20px; line-height: 1.5; }
p:last-child { margin-bottom: 0; }
ul, ol, li { line-height: 1.35; }
ol li, ul li { margin-bottom: 10px; }
address { font-style: normal; margin: 20px 0; line-height: 1.15; }

/* Links */
a { color: var(--color-cta); transition: all 0.25s ease-out; cursor: pointer; }
a:hover, a:active { color: var(--color-primary-dark); }
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
    color: inherit !important;
    font-size: inherit !important;
    text-transform: inherit !important;
    font-weight: inherit !important;
}
a:where(:not(.wp-element-button)):hover {
	text-decoration: none;
}

b, 
strong, 
text-bold {
    font-weight: 900;
}

/* Buttons */
.btn, 
button, 
.wp-element-button, 
form input.gform_button {
    text-transform: uppercase;
    border-radius: 5px;
    padding: 2rem 2.5rem; /* 10px 25px */
    font-weight: 700;
    font-size: var(--font-size-base);
    font-family: 'Open Sans', Helvetica, Arial, sans-serif;
    transition: all 0.25s ease-out;
    cursor: pointer;
    line-height: 1;
    background-color: var(--color-cta);
    color: var(--color-white);
    border: 2px solid var(--color-cta);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
}
.btn:hover, 
button:hover, 
.wp-element-button:hover, 
form input.gform_button:hover { 
	transform: scale(1.1); 
	background-color: var(--color-cta);
    color: var(--color-white);
}
.btn-primary,
button.primary, 
.wp-element-button,
form input.gform_button,
a.btn {
    background-color: var(--color-cta);
    color: var(--color-white);
    border: 2px solid var(--color-cta);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
}
.btn-primary:hover, 
.wp-element-button:hover, 
form input.gform_button:hover,
a.btn:hover { 
	background-color: var(--color-cta); 
	color: var(--color-white); 
}

.bg-red .btn, 
.bg-red button,
.bg-red .btn-primary,
.bg-red button.primary, 
.bg-red .wp-element-button,
.bg-red form input.gform_button,
.bg-red a.btn {
    border: 2px solid var(--color-white);
}
.btn-ghost {
    background-color: transparent!important;
    border: 2px solid var(--color-white)!important;
}
@media(max-width: 768px) {
	.btn, 
	button,
	.wp-element-button,
	form input.gform_button {
		padding: 1rem 2rem; /* 10px 25px */
		font-size: var(--font-size-base);
	}
}
/* Utilities */
ul.no-bullets, ol.no-bullets { list-style-type: none; padding-left: 0; margin-left: 0; }
.sr-only { display: none; }
.mobile-only, .display-mobile { 
    display: none !important; 
}
hr {
	border: 0;
	border-top-width: 5px;
	border-style: solid;
	border-color: var(--color-highlight);
    margin: 2rem auto 3rem; 
    box-sizing: content-box;
    height: 0;
    overflow: visible;
    width: 50px;
}
hr.text-white {
	border-color: var(--color-white);
}
.hr-long {
	width: 75%;
}
.hr-small { 
	width: 30px;  
}
.lead, .text-lead, .text-lead p { font-size: var(--font-size-lg) !important; line-height: 1.25; font-weight: 600; } /* 25px */
.text-white { color: var(--color-white); }
.text-uppercase { text-transform: uppercase; }
.text-bold { font-weight: 700 !important; }

.content-bg-primary-blue,
.content-bg-primary {
	color: var(--color-white);
}
/* Responsive heading scale — reduce at smaller screens */
@media (max-width: 991px) {
    h1 { font-size: var(--font-size-7xl); }  /* 70px */
    h2 { font-size: var(--font-size-5xl); } /* 50px */
    h3 { font-size: var(--font-size-2xl); } /* 32px */
    h4 { font-size: var(--font-size-lg); } /* 26px */
}
@media (max-width: 767px) {
    h1 { font-size: var(--font-size-5xl); }  /* 50px */
    h2 { font-size: var(--font-size-3xl); } /* 36px */
    h3 { font-size: var(--font-size-lg); } /* 28px */
    h4 { font-size: var(--font-size-base); } /* 22px */
    p, ul, ol, li, address { font-size: var(--font-size-sm); } /* 16px on mobile */
}

/* ─── SITE HEADER ────────────────────────────────────────────────────────── */

#primary-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
}

.admin-bar #primary-header {
    top: 32px;
}

@media screen and (max-width: 782px) {
    .admin-bar #primary-header {
        top: 46px;
    }
}

.header-inner {
    display: flex;
    flex-direction: column;
    width: 100%;
}

/* Shared inner container */
.preheader .inner-container,
.nav-wrapper .inner-container {
    display: flex;
    flex-direction: row;
    align-items: center;
/*    width: 100%;*/
    max-width: 1500px;
    margin-inline: auto;
    padding-inline: 30px;
}

/*****************
 * TEMP STYLES
*****************/
.wp-block-media-text {
    padding-top: 60px;
    padding-bottom: 60px;
}
.wp-block-media-text a {
    justify-content: center;
}

/* ─── PRE-HEADER ─────────────────────────────────────────────────────────── */

.preheader {
    background-color: var(--color-preheader);
    color: var(--color-white);
}

.preheader .inner-container {
    justify-content: flex-end;
    padding-top: 10px;
    padding-bottom: 10px;
    gap: 0;
    align-items: center;
}

/* Phone number */
.preheader .tel-link {
    font-weight: 700;
    font-size: var(--font-size-base);
    margin-right: 15px;
    background-color: transparent;
    color: var(--color-white) !important;
    text-decoration: none;
    white-space: nowrap;
    border: none;
    cursor: pointer;
    transition: all 0.25s ease-out;
}

/* Pre-header nav */
.menu-preheader-nav-container ul {
    display: flex;
    flex-direction: row;
    list-style: none;
    padding: 0;
    margin: 0;
    margin-left: 10px;
}

.menu-preheader-nav-container li {
    padding: 5px 15px;
    margin-bottom: 0;
    border-right: 1px solid var(--color-white);
}
.menu-preheader-nav-container li:hover {
    background-color: var(--color-white);
}

.menu-preheader-nav-container a {
    color: var(--color-white);
    font-size: var(--font-size-xxs);
    display: block;
    text-decoration: none;
    transition: all 0.25s ease-out;
    text-transform: uppercase;
}

.menu-preheader-nav-container li:hover a {
    color: var(--color-preheader);
}

/* Search toggle */
#search-toggle {
    border: none;
    color: var(--color-white);
    font-weight: 700;
    font-size: var(--font-size-xs);
    margin-right: 15px;
    background-color: transparent;
    background-color: transparent;
    padding: 0 15px;
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: all 0.25s ease-out;
}

#search-toggle:hover,
#search-toggle:active,
#search-toggle:focus {
    background-color: transparent;
    border: none;
    outline: none;
    opacity: 0.75;
    font-size: var(--font-size-xs);
}

/* Join / membership CTA button */
.preheader a.btn-primary,
.preheader .btn-primary {
    border-radius: 5px;
    border: 2px solid var(--color-white);
    font-size: var(--font-size-xxs);
    padding: 7px 20px;
    text-transform: uppercase;
    font-weight: 600;
    background-color: var(--color-cta);
    color: var(--color-white);
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.25s ease-out;
}

.preheader a.btn-primary:hover,
.preheader .btn-primary:hover {
    background-color: var(--color-white);
    color: var(--color-cta);
    transform: scale(1.05);
}
.preheader .btn-cta {
    margin-left: 10px;
}
.preheader a.btn-ghost:hover {
    color: var(--color-white);
}


/* ─── GLOBAL SEARCH MODAL ────────────────────────────────────────────────── */

[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
    appearance: none;
}

#global-search-form {
    text-align: right;
    display: block;
    transition: all 0.25s ease-out;
}

#global-search-form .global-search-form-container {
    transition: all 0.25s ease-out;
    overflow: hidden;
    opacity: 0;
    transform: scale(0);
    display: flex;
    align-items: center;
    position: fixed;
    z-index: 1000000;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    height: 100vh;
    padding: 0 15%;
    background-color: rgba(0, 0, 0, 0.8);
}

#global-search-form.is-open .global-search-form-container {
    opacity: 1;
    transform: scale(1);
}

#global-search-form .global-search-form-container input[type="search"] {
    flex: 1;
    border-radius: 0;
    font-size: var(--font-size-xl);
    text-align: left;
    border: 1px solid var(--color-white);
    line-height: 1.5;
    color: var(--color-white);
    background-color: transparent;
    outline: none;
    padding: 15px 10px;
    font-family: 'Open Sans', sans-serif;
}

#global-search-form .global-search-form-container input[type="search"]::placeholder {
    font-weight: normal;
    opacity: 0.75;
    color: var(--color-white);
}

#global-search-form .global-search-form-container button[type="submit"] {
    color: var(--color-nav-border);
    border: 2px solid transparent;
    background-color: var(--color-white);
    font-size: var(--font-size-xl);
    outline: none;
    border-radius: 0;
    padding: 0.5rem 1rem;
    cursor: pointer;
    transition: all 0.25s ease-out;
    height: 77px;
}

#global-search-form .global-search-form-container button[type="submit"]:hover,
#global-search-form .global-search-form-container button[type="submit"]:active {
    border-color: var(--color-white);
    color: var(--color-white);
    background-color: var(--color-nav-border);
}

#global-search-form .global-search-form-container .dialog-close-button {
    font-size: var(--font-size-xl);
    color: var(--color-white);
    top: 30px;
    right: 30px;
    opacity: 1;
    cursor: pointer;
    position: absolute;
    z-index: 2;
    display: flex;
    margin: 0;
    background-color: transparent;
    border: none;
    outline: none;
    padding: 0.5rem 1rem;
    transition: all 0.25s ease-out;
}

#global-search-form .global-search-form-container .dialog-close-button:hover,
#global-search-form .global-search-form-container .dialog-close-button:active {
    opacity: 0.5;
}

/* ─── PRIMARY NAV WRAPPER ────────────────────────────────────────────────── */

.nav-wrapper {
    background-color: var(--color-nav);
    border-bottom: 1px solid var(--color-gray-medium);
}

.nav-wrapper .inner-container {
    justify-content: space-between;
    align-items: center;
    padding-top: 0;
    padding-bottom: 0;
    min-height: 100px;
}

/* ─── LOGO ───────────────────────────────────────────────────────────────── */

.logo-wrapper {
    display: flex;
    align-items: center;
    height: 85px;
    width: auto;
    margin: 0;
    text-decoration: none;
    flex-shrink: 0;
}

.logo-wrapper .logo {
    width: 100%;
    max-width: 500px;
    min-width: 100px;
    height: 100%;
    object-fit: contain;
    object-position: left center;
}

/* ─── HAMBURGER (mobile only) ────────────────────────────────────────────── */

#toggle-nav {
    display: none;
    border: none;
    font-size: var(--font-size-xl);
    color: var(--color-cta);
    background-color: transparent;
    padding: 0;
    cursor: pointer;
    transition: all 0.25s ease-out;
}

#toggle-nav:hover,
#toggle-nav:active,
#toggle-nav:focus {
    border: none;
    outline: none;
    opacity: 0.5;
}

/* ─── PRIMARY NAV ────────────────────────────────────────────────────────── */

#primary-nav {
    position: relative;
}

#primary-nav #btn-close-nav {
    display: none;
}

#primary-nav-menu {
    display: flex;
    flex-direction: row;
    list-style: none;
    padding: 0;
    margin: 0 0 0 25px;
    height: 100px;
}

#primary-nav-menu > li {
    display: flex;
    flex-direction: column;
    padding: 25px 0 0;
    margin-bottom: 0;
    border-bottom: 10px solid transparent;
    transition: all 0.25s ease-out;
/*  height: 100%;*/
    color: var(--color-primary);
    white-space: normal;
    max-width: 195px;
    font-size: var(--font-size-sm);
    line-height: 100%;
    text-align: center;
}

#primary-nav-menu > li:last-of-type {
    padding-right: 0;
}

#primary-nav-menu > li > a {
    color: var(--color-primary);
    text-transform: uppercase;
    text-align: center;
    border: none;
    padding: 0 15px;
    font-weight: normal;
/*    font-size: 18px;*/
    display: flex;
    align-items: center;
    justify-content: center;
    height: 50px;
    text-decoration: none;
    transition: all 0.25s ease-out;
}

#primary-nav-menu > li:hover,
#primary-nav-menu > li:focus-within {
    position: relative;
    background-color: var(--color-white);
    border-bottom-color: var(--color-nav-border);
}

#primary-nav-menu > li:hover > a,
#primary-nav-menu > li:focus-within > a {
    color: var(--color-nav-border);
}

/* ─── DROPDOWN SUB-MENU ──────────────────────────────────────────────────── */

#primary-nav-menu .sub-menu {
    display: none;
    background-color: var(--color-white);
    list-style: none;
    padding: 30px 15px;
    margin: 0;
    position: absolute;
    top: 100px;
    left: 0;
    min-width: 200px;
/*    width: 100%;*/
    width: 300px;
/*    min-height: 200px;*/
    border: 2px solid #5f6680;
    z-index: 10;
}

#primary-nav-menu > li:hover .sub-menu,
#primary-nav-menu > li:focus-within .sub-menu {
    display: grid;
}

#primary-nav-menu .sub-menu li {
    border-left: none;
    text-align: left;
    padding-left: 15px;
    max-width: none;
    height: auto;
    margin: 0 0 20px;
    font-size: var(--font-size-sm);
    font-weight: 700;
    color: var(--color-nav-border);
}

#primary-nav-menu .sub-menu a {
    color: var(--color-nav-border);
    text-align: left;
    border-bottom: 2px solid transparent;
    display: inline-block;
    border-left: 0;
    padding: 0;
    font-weight: 600;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 0.25s ease-out;
}

#primary-nav-menu .sub-menu a:hover,
#primary-nav-menu .sub-menu a:active {
    border-bottom-color: var(--color-cta);
    color: var(--color-cta);
}
#primary-nav-menu > li:last-of-type .sub-menu {
    right: 0;
    left: auto;
}

/* Third level */
#primary-nav .sub-menu .sub-menu {
    margin: 10px 0 0;
    gap: 0;
    grid-template-columns: none !important;
    position: relative;
    top: auto;
    left: auto;
    min-height: auto;
    border: 0;
    padding: 0 0 0 10px;
    display: block;
}

#primary-nav-menu .sub-menu li.menu-item-has-children li {
    margin: 0 0 10px;
    padding-left: 10px;
    font-size: var(--font-size-xs);
}

#primary-nav .sub-menu .sub-menu a {
    font-weight: normal;
}

/* Nav overlay */
.nav-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 9999;
}

.nav-overlay.is-open {
    display: block;
}

/* ─── RESPONSIVE ─────────────────────────────────────────────────────────── */

@media (max-width: 1199px) {

    .nav-wrapper .inner-container {
        justify-content: space-between;
    }

    .logo-wrapper {
        max-width: 350px;
        height: auto;
    }

    #primary-nav-menu {
        margin-left: 15px;
    }

    #primary-nav-menu > li > a {
        padding-left: 10px;
        padding-right: 10px;
        height: 50px;
    }
}

@media (max-width: 991px) {
    #primary-nav .display-mobile,
    #primary-nav .mobile-only {
        display: block!important;
    }
    .nav-wrapper,
    #primary-nav-menu {
        height: auto;
    }


    .nav-wrapper .inner-container {
        padding: 15px;
        min-height: auto;
    }

    .logo-wrapper {
        margin-bottom: 0;
        margin-right: 25px;
        max-width: 350px;
        width: 100%;
        margin-top: 0;
        height: auto;
    }

    .preheader .inner-container {
        justify-content: space-between;
    }

    #search-toggle {
        margin-right: 0;
        padding-right: 0;
    }

    /* Show hamburger */
    #toggle-nav {
        display: block;
    }

    /* Hide pre-header nav on tablet/mobile */
    .menu-preheader-nav-container,
    .preheader .social-links {
        display: none;
    }

    /* Mobile nav panel */
    #primary-nav {
        flex-direction: column;
        width: 350px;
        max-width: 75%;
        z-index: 100000;
        position: fixed;
        top: 0;
        right: -400px;
        height: 100vh;
        transition: all 0.35s ease-out;
        background-color: var(--color-primary-light);
        border: 2px solid var(--color-nav-border);
        overflow-y: auto;
    }

    #primary-nav.is-open {
        right: 0;
    }

    #primary-nav #btn-close-nav {
        display: inline-block;
        font-size: var(--font-size-sm);
        font-weight: 700;
        color: var(--color-white);
        border: none;
        padding: 0;
        outline: none;
        background-color: transparent;
        position: absolute;
        left: 20px;
        top: 10px;
        width: 40px;
        height: 40px;
        z-index: 1;
        cursor: pointer;
        transition: opacity 0.25s ease-out;
    }

    #primary-nav #btn-close-nav:hover {
        opacity: 0.5;
    }

    #primary-nav-menu {
        flex-direction: column;
        padding: 40px 30px 50px;
        justify-content: flex-start;
        align-items: flex-end;
        height: auto;
        margin-left: 0;
        min-height: 100%;
    }

    #primary-nav-menu > li {
        display: block;
        background-color: transparent;
        padding: 10px 0 20px;
        border-left: 0;
        border-bottom: 1px solid var(--color-gray-medium);
        border-bottom-width: 1px !important;
        width: 100%;
        max-width: 100%;
        height: auto;
        font-size: var(--font-size-xs);
        margin-bottom: 10px;
    }

    #primary-nav-menu > li:hover,
    #primary-nav-menu > li:focus-within {
        background-color: transparent;
        border-color: var(--color-gray-medium);
    }
    #primary-nav-menu > li > a {
        display: inline-block;
        height: auto;
        padding: 0;
        text-align: right;
        color: var(--color-white);
        border-bottom: 2px solid transparent;
    }

    #primary-nav-menu a:hover,
    #primary-nav-menu .sub-menu a:hover,
    #primary-nav-menu a:active,
    #primary-nav-menu .sub-menu a:active {
        border-bottom-color: var(--color-cta);
        color: var(--color-white);
    }

    /* Mobile sub-menu — always visible, indented */
    #primary-nav #primary-nav-menu .sub-menu {
        flex-direction: column;
        grid-template-columns: auto;
        background-color: transparent;
        display: block;
        margin: 10px 0 0;
        padding: 0 0 0 10px;
        top: auto;
        left: auto;
        min-height: auto;
        position: relative;
        border: 0;
        min-width: auto;
        width: auto;
    }

    #primary-nav #primary-nav-menu li,
    #primary-nav #primary-nav-menu a {
        text-align: right;
        color: var(--color-white);
    }
    #primary-nav #primary-nav-menu > li > a {
        font-size: var(--font-size-sm);
        font-weight: 600;
    }

    #primary-nav #primary-nav-menu .sub-menu li {
        margin: 0 0 10px;
        padding-left: 0;
        font-size: var(--font-size-xs);
        color: var(--color-white);
    }

    #primary-nav #primary-nav-menu .sub-menu a {
        font-size: var(--font-size-xs);
        color: var(--color-white);
    }

    #primary-nav #primary-nav-menu .sub-menu li:last-of-type {
        margin-bottom: 0;
    }
}

@media (max-width: 767px) {
    .display-mobile,
    .mobile-only {
        display: block!important;
    }
    .mobile-hide {
        display: none!important;
    }

    .logo-wrapper {
        margin-top: 0;
    }

    .logo-wrapper .logo {
        max-width: 300px;
    }

    .preheader .tel-link {
        font-size: var(--font-size-xs) !important;
    }

    #search-toggle {
        font-size: var(--font-size-sm) !important;
    }

    .preheader .btn {
        font-size: var(--font-size-xs) !important;
    }

    #global-search-form .global-search-form-container {
        padding: 0 5%;
    }

    #global-search-form .global-search-form-container input[type="search"],
    #global-search-form .global-search-form-container button[type="submit"] {
        font-size: var(--font-size-base);
    }

    #global-search-form .global-search-form-container .dialog-close-button {
        font-size: var(--font-size-base);
        top: 15px;
        right: 15px;
    }
}
@media(max-width: 550px) {
	.logo-wrapper,
	.logo-wrapper .logo {
		max-width: 200px;
	}
}

/* ─── ICON CARDS SECTION ─────────────────────────────────────────────────── */

.section-icon-cards { 
    padding: var(--space-60) 0; 
    margin-top: 0;
}
.section-icon-cards .inner-container { max-width: var(--wide-size); margin-inline: auto; padding-inline: var(--space-30); text-align: center; }
.section-icon-cards h2 { 
	margin-block: var(--space-20);
	color: var(--color-primary-light);  
}
.section-divider { border: none; width: 100%; border-top: 2px solid var(--color-gray-medium); margin-block: var(--space-20); }
.section-subtext { max-width: 800px; margin-inline: auto; margin-block-end: var(--space-50); color: var(--color-text); }
.icon-cards-wrapper.icon-cards-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-40); margin-block-start: var(--space-40); }
@media (max-width: 768px) { .icon-cards-wrapper.icon-cards-3 { grid-template-columns: 1fr; } }
@media (min-width: 769px) and (max-width: 1024px) { .icon-cards-wrapper.icon-cards-3 { grid-template-columns: repeat(2, 1fr); } }
.icon-info-card { 
	display: flex; 
	flex-direction: column; 
	align-items: center; 
	text-align: center; 
	padding: 0;
	background-color: var(--color-white); 
	border: 2px solid var(--color-gray-light);
	border-top: 10px solid var(--color-cta);
}
.icon-info-card .card-content-wrapper {
    padding: var(--space-40); 
}
.icon-info-card .icon-card-top-image img {
    max-width: 100%;
}
.icon-card-icon { margin-block-end: var(--space-20); }
.icon-card-icon img { width: 100px; height: auto; display: block; margin-inline: auto; }
.icon-card-heading h4 { 
	color: var(--color-primary-light); 
	margin-block: var(--space-10) var(--space-20); 
}
.icon-card-content { flex: 1; color: var(--color-text); font-size: var(--font-size-base); line-height: 1.6; margin-block-end: var(--space-20); }
.text-link-btn { margin-block-start: auto; }
.btn-text-link { 
	display: inline-flex; 
	align-items: center; 
	gap: 0.4em; 
	color: var(--color-primary-light); 
	font-weight: 600; 
    font-size: var(--font-size-md); 
	text-decoration: none; 
	text-transform: uppercase; 
	letter-spacing: 1px; 
	transition: all 0.25s ease; 
}
.btn-text-link:hover { 
	color: var(--color-primary-light); 
	transform: scale(1.1);
}
.section-icon-cards.bg-gray-light { background-color: var(--color-gray-light); }
.section-icon-cards.bg-primary-dark { background-color: var(--color-primary-dark); color: var(--color-white); }
.section-icon-cards.bg-primary-dark h2, .section-icon-cards.bg-primary-dark h4, .section-icon-cards.bg-primary-dark .icon-card-content { color: var(--color-white); }
.section-icon-cards.bg-primary { background-color: var(--color-primary); color: var(--color-white); }
.section-icon-cards.bg-primary h2, .section-icon-cards.bg-primary h4, .section-icon-cards.bg-primary .icon-card-content { color: var(--color-white); }

/* ─── TEXT + IMAGE SECTION ───────────────────────────────────────────────── */

.section-text-image { 
    display: flex; 
    flex-direction: column; 
    margin-top: 0;
}
.section-text-image.full-width .section-text-image__inner { display: flex; flex-direction: row; min-height: 480px; }
.section-text-image.width-boxed .section-text-image__inner { 
	display: flex; 
	flex-direction: row; 
	max-width: var(--wide-size); 
	margin-inline: auto; 
	padding-inline: var(--space-30); 
/*	gap: var(--space-50); */
	padding-block: var(--space-60); 
	align-items: center; }
.section-text-image__heading { 
	max-width: var(--wide-size); 
	margin-inline: auto; 
	padding-inline: var(--space-30); 
	text-align: center; 
	color: var(--color-primary-light);
}
.section-text-image__heading h2 {
	font-weight: 600;
}
.section-text-image__heading h2,
.section-text-image h3 {
	color: var(--color-primary-light);
}
.section-text-image.width-boxed .section-text-image__heading {
	margin-top: 6rem;
	margin-bottom: 3rem;
}
.section-text-image.width-boxed .section-text-image__heading + .section-text-image__inner {
	padding-top: 0;
	margin-top: 0;
}
.section-text-image.width-boxed + .section-text-image.width-boxed {
	margin-top: 0;
	padding-top: 0;
	margin-bottom: 0;
	padding-bottom: 0;
}
/*.section-text-image.width-boxed + section:not(.width-boxed) {
	margin-top: 60px;
}*/
.section-text-image.width-boxed .section-text-image__inner {
	padding: 0;
}
.text-image__content-col, 
.text-image__image-col { 
	flex: 1; 
	min-width: 0; 
}
.section-text-image.img-right .text-image__content-col {
	display: flex;
	justify-content: flex-end;
}
.section-bg-primary-light .text-image__content-col a,
.section-bg-primary-dark .text-image__content-col a,
.section-bg-primary .text-image__content-col a,
.section-bg-primary-red .text-image__content-col a,
.section-bg-primary-red-dark .text-image__content-col a {
    color: var(--color-white);
    font-weight: bold;
}
.content-col-inner { 
	display: flex; 
	max-width: 700px;
	flex-direction: column; 
	justify-content: center; 
	height: 100%; 
	padding: var(--space-60) var(--space-50); 
	gap: var(--space-20); 
}

.text-image__image-col { position: relative; overflow: hidden; }
.text-image__img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.width-boxed .text-image__image-col { min-height: 400px; }
.content-col__icon { margin-block-end: var(--space-10); }
.content-col__icon img { max-width: 120px; height: auto; }
.content-bg-white { background-color: var(--color-white); }
.content-bg-gray-light { background-color: var(--color-gray-light); }
.content-bg-primary-dark { background-color: var(--color-primary-dark); color: var(--color-white); }
.content-bg-primary-dark h2, .content-bg-primary-dark h3, .content-bg-primary-dark h4, .content-bg-primary-dark p { color: var(--color-white); }
.content-bg-primary { background-color: var(--color-primary); color: var(--color-white); }
.content-bg-primary h2, 
.content-bg-primary h3, 
.content-bg-primary h4, 
.content-bg-primary p { 
	color: var(--color-white); 
}
.section-text-image.width-boxed .content-col-wrapper h3 {
	font-weight: 600;
	color: var(--color-primary-light);
}
.section-text-image.width-boxed .content-col-wrapper.content-bg-primary h3,
.section-text-image.width-boxed .content-col-wrapper.content-bg-primary-dark h3,
.section-text-image.width-boxed .content-col-wrapper.content-bg-gray-dark h3 {
	color: var(--color-white);
}

.section-text-image.full-width .video-col {
    min-height: 400px;
}
 
.section-text-image.full-width .video-col .text-image__video-wrapper {
    position: absolute;
    inset: 0;
    padding-bottom: 0;
    height: 100%;
    width: 100%;
}
 
.section-text-image.full-width .video-col .text-image__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

@media (max-width: 768px) {
    .section-text-image.full-width .section-text-image__inner, .section-text-image.width-boxed .section-text-image__inner { flex-direction: column; }
    .section-text-image.img-right .section-text-image__inner { flex-direction: column-reverse; }
    .text-image__image-col { min-height: 280px; width: 100%; }
    .text-image__content-col { width: 100%; }
    .content-col-inner { padding: var(--space-40) var(--space-30); }

    .width-boxed .text-image__image-col {
    	max-height: 400px;
    	min-height: auto;
    }

    .section-text-image.full-width .video-col {
        min-height: 0;
    }
    .section-text-image.full-width .video-col .text-image__video-wrapper {
        position: relative;
        padding-bottom: 56.25%;
        height: 0;
    }
}



/* ─── SHARED CTA BANNER BASE ─────────────────────────────────────────────────── */

.section-banner-quote, 
.section-banner-cta { 
    position: relative; 
    width: 100%; 
    overflow: hidden; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    min-height: 360px; 
    padding-block: var(--space-70); 
    text-align: center; 
    margin-top: 0;
}
.banner-bg-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; z-index: 0; }
.banner-overlay { position: absolute; inset: 0; z-index: 1; }
.banner-inner { position: relative; z-index: 2; width: 100%; max-width: var(--wide-size); margin-inline: auto; padding-inline: var(--space-50); color: var(--color-white); }
.quote-banner__content { display: flex; align-items: flex-start; justify-content: center; gap: var(--space-40); max-width: 900px; margin-inline: auto; }
.quote-banner__text { flex: 1; margin: 0; padding: 0; border: none; color: var(--color-white); font-size: var(--font-size-xl); font-style: italic; line-height: 1.5; text-align: center; }
.quote-banner__text p { margin: 0; }
.quote-banner__attribution { display: block; margin-block-start: var(--space-20); font-size: var(--font-size-sm); font-style: normal; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--wp--preset--color--light-blue); opacity: 0.85; }
.section-banner-quote .quote-mark { 
    font-size: var(--font-size-7xl); 
    color: var(--color-white); 
    opacity: 0.7; 
    flex-shrink: 0; 
    line-height: 1; 
    margin-block-start: 0.2em; 
}
.cta-banner__heading { 
    color: var(--color-white); 
/*    font-size: var(--font-size-4xl); */
    font-weight: 700; 
    margin-block-end: var(--space-30); 
    line-height: 1.2; 
}

.cta-banner__body { 
	color: var(--color-white); 
	font-size: var(--font-size-lg); 
	max-width: 70%; 
	margin-inline: auto; 
	margin-block-end: var(--space-40); 
	line-height: 1.6; 
}
.cta-banner__body p,
.quote-banner__text p { 
	color: inherit; 
    font-weight: 500;
    line-height: 1.35;
}
.cta-banner__body p {
    font-size: var(--font-size-lg);
}
.quote-banner__text p {
    font-size: var(--font-size-3xl);
}
.cta-banner__body p:last-of-type,
.quote-banner__text p:last-of-type {
    margin-bottom: 0;
}
.cta-banner__buttons { display: flex; flex-wrap: wrap; gap: var(--space-20); justify-content: center; align-items: center; }
.cta-banner__btn { 
	display: inline-flex; 
	align-items: center; 
	gap: 0.5em;
}
.section-banner-quote .btn,
.section-banner-cta .btn {
	max-width: 350px;
    margin: auto;
}

.cta-banner__btn.btn--outline { background-color: transparent; color: var(--color-white); border-color: var(--color-white); }
.cta-banner__btn.btn--outline:hover { background-color: var(--color-white); color: var(--color-primary-dark); }
.cta-banner__btn.btn--text { background-color: transparent; color: var(--color-white); border-color: transparent; padding-inline: 0; text-decoration: underline; text-underline-offset: 3px; }
.cta-banner__btn.btn--text:hover { color: var(--wp--preset--color--light-blue); }

@media (max-width: 768px) {

    .section-banner-quote, .section-banner-cta { min-height: 280px; padding-block: var(--space-50); }
    .quote-banner__content { flex-direction: column; align-items: center; gap: var(--space-20); }
    .quote-banner__text p {
        font-size: var(--font-size-base);
    }
    .cta-banner__heading { font-size: var(--font-size-3xl); }
    .cta-banner__buttons { flex-direction: column; align-items: stretch; }
    .cta-banner__btn { justify-content: center; width: 100%; }
    .banner-inner { padding-inline: var(--space-30); }
    .section-banner-quote .quote-mark {
		font-size: var(--font-size-4xl);
	}
}
@media (max-width: 550px) {
	.section-banner-quote .quote-mark {
		font-size: var(--font-size-4xl);
	}
}

/* ─── HIGHLIGHT CARDS ────────────────────────────────────────────────────── */

.section-highlight-cards { 
    padding-block: var(--space-60); 
    margin-top: 0;
}
.section-highlight-cards .inner-container { max-width: var(--wide-size); margin-inline: auto; padding-inline: var(--space-30); }
.section-highlight-cards.section-bg-white { background-color: var(--color-white); }
.section-highlight-cards.section-bg-gray-light { background-color: var(--color-gray-light); }
.section-highlight-cards.section-bg-primary-dark { background-color: var(--color-primary-dark); }
.section-highlight-cards.section-bg-primary-dark h3, .section-highlight-cards.section-bg-primary-dark h5, .section-highlight-cards.section-bg-primary-dark p { color: var(--color-white); }
.section-highlight-cards.section-bg-primary { background-color: var(--color-primary); }
.section-highlight-cards.section-bg-primary h3, .section-highlight-cards.section-bg-primary h5, .section-highlight-cards.section-bg-primary p { color: var(--color-white); }
.section-highlight-cards h3 {
	text-transform: none;
	font-size: var(--font-size-4xl);
	color: var(--color-primary-light);
	padding-bottom: 30px;
}
.highlight-cards__header { margin-block-end: var(--space-40); }
.highlight-cards__heading { 
	font-size: var(--font-size-2xl); 
	font-weight: 700;  
	margin-block-end: var(--space-20); 
	color: var(--color-primary-light);
}
.highlight-cards__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-40); align-items: start; }
.highlight-card { display: flex; flex-direction: column; align-items: flex-start; }
.highlight-card__icon { margin-block-end: var(--space-20); }
.highlight-card__icon img { width: 100px; height: auto; display: block; }
.highlight-card__icon a { display: block; line-height: 0; }
.highlight-card__content { display: flex; flex-direction: column; flex: 1; gap: var(--space-10); }
.highlight-card__heading { font-size: var(--font-size-lg); font-weight: 700; color: var(--color-primary-dark); margin: 0; }
.highlight-card__heading a { 
	color: var(--color-primary-light)!important; 
	text-decoration: none; 
}
.highlight-card__heading a:hover { 
	color: var(--color-primary-light)!important; 
}
.highlight-card__body { color: var(--color-text); font-size: var(--font-size-base); line-height: 1.6; margin: 0; }
.highlight-card__body p { margin: 0; }
.highlight-card__link { margin-block-start: var(--space-10); }
.highlight-cards__cta { margin-block-start: var(--space-50); text-align: center; }
@media (max-width: 1024px) { .highlight-cards__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px) { 
	.highlight-cards__grid { grid-template-columns: repeat(2, 1fr); } 
	.section-highlight-cards h3 {
		padding-bottom: 15px;
	}
}
@media (max-width: 480px) { .highlight-cards__grid { grid-template-columns: 1fr; } .highlight-card { align-items: center; text-align: center; } .highlight-card__link { width: 100%; text-align: center; } }

/* ─── NEWSLETTER SIGNUP ──────────────────────────────────────────────────── */

.section-newsletter-signup { 
    width: 100%; 
    overflow: hidden; 
    margin-top: 0;
    margin-bottom: 0;
}
.newsletter-signup__inner { display: flex; flex-direction: row; min-height: 480px; }
.newsletter-signup__image-col, .newsletter-signup__content-col { flex: 1; min-width: 0; }
.newsletter-signup__image-col { position: relative; overflow: hidden; }
.newsletter-signup__img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.newsletter-signup__content-col { display: flex; align-items: center; }
.newsletter-signup__content-inner { width: 100%; padding: var(--space-60) var(--space-50); display: flex; flex-direction: column; gap: var(--space-20); }
.newsletter-signup__content-col.content-bg-white { background-color: var(--color-white); }
.newsletter-signup__content-col.content-bg-gray-light { background-color: var(--color-gray-light); }
.newsletter-signup__content-col.content-bg-primary-dark { background-color: var(--color-primary-dark); }
.newsletter-signup__content-col.content-bg-primary-dark h3, .newsletter-signup__content-col.content-bg-primary-dark p, .newsletter-signup__content-col.content-bg-primary-dark label { color: var(--color-white); }
.newsletter-signup__content-col.content-bg-primary { background-color: var(--color-primary); }
.newsletter-signup__content-col.content-bg-primary h3, .newsletter-signup__content-col.content-bg-primary p, .newsletter-signup__content-col.content-bg-primary label { color: var(--color-white); }
.newsletter-signup__heading { font-size: var(--font-size-2xl); font-weight: 700; color: var(--color-primary-dark); margin: 0; }
.newsletter-signup__body p { margin: 0; line-height: 1.6; }
.newsletter-signup__form .gform_wrapper { margin: 0; }
.newsletter-signup__form .gform_fields { 
	display: grid!important; 
	grid-template-columns: 1fr 1fr!important; 
	gap: var(--space-20); 
}
.newsletter-signup__form .gfield--width-full, 
.newsletter-signup__form .gfield_recaptcha, 
.newsletter-signup__form .gform_footer, 
.newsletter-signup__form .gform_page_footer { 
	grid-column: 1 / -1!important; 
}
.newsletter-signup__form .gfield_label { font-size: var(--font-size-sm); font-weight: 600; margin-block-end: 0.3em; }
.newsletter-signup__form .ginput_container input, .newsletter-signup__form .ginput_container select, .newsletter-signup__form .ginput_container textarea { width: 100%; padding: 0.5rem 0.75rem; border: 1px solid var(--color-gray-medium); border-radius: 3px; font-family: var(--wp--preset--font-family--primary); font-size: var(--font-size-base); background-color: var(--color-white); color: var(--color-text); transition: border-color 0.25s ease; }
.newsletter-signup__form .ginput_container input:focus, .newsletter-signup__form .ginput_container select:focus, .newsletter-signup__form .ginput_container textarea:focus { outline: none; border-color: var(--color-primary); }
.newsletter-signup__form .gform_button { 
	display: inline-flex; 
	align-items: center; 
	gap: 0.5em; 
	background-color: var(--color-cta)!important; 
	color: var(--color-white); 
	border: 2px solid var(--color-cta)!important; 
	min-width: 200px!important;
	max-width: 350px!important;
	border-radius: 5px!important; 
	padding: 2rem 2.5rem!important; 
	font-family: var(--font-family-primary)!important; 
	font-size: var(--font-size-base)!important; 
	font-weight: 700!important; 
	text-transform: uppercase!important; 
	letter-spacing: 1px; 
	cursor: pointer; 
	transition: all 0.25s ease; 
}
.newsletter-signup__form .gform_button:hover { 
	background-color: var(--color-cta)!important; 
	color: var(--color-white)!important; 
	transform: scale(1.1);
}
@media (max-width: 768px) {
    .newsletter-signup__inner { flex-direction: column; min-height: unset; }
    .newsletter-signup__image-col { min-height: 260px; width: 100%; }
    .newsletter-signup__content-inner { padding: var(--space-40) var(--space-30); }
    .newsletter-signup__form .gform_fields { grid-template-columns: 1fr; }
    .newsletter-signup__form .gfield--width-full { grid-column: 1; }

    .newsletter-signup__form input.gform_button,
	form input.gform_button {
		padding: 1rem 2rem!important;
		font-size: var(--font-size-base)!important;
	}
}

/* ─── HERO ───────────────────────────────────────────────────────────────── */

/* Full-width breakout — escapes FSE content wrapper */
.section-hero {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    height: var(--hero-height, 80vh);
    overflow: hidden;
}

/* Slide-up fade-in keyframe */
@keyframes heroSlideUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.hero-swiper, .hero-swiper .swiper-wrapper, .hero-swiper .swiper-slide { height: 100%; }
.hero-slide { position: relative; width: 100%; height: 100%; overflow: hidden; }
.hero-slide__bg-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; z-index: 0; }
.hero-slide__overlay { position: absolute; inset: 0; z-index: 1; }
.hero-slide__inner { 
	position: absolute;
	max-width: 1400px;
    margin: auto; 
	inset: 0; 
	z-index: 2; 
	display: flex; 
	align-items: flex-end; 
	justify-content: flex-start; 
	text-decoration: none; 
	cursor: default; 
}
a.hero-slide__inner { 
	cursor: pointer; 
	padding-left: 50px;
	padding-right: 50px;
}

.hero-slide__contents {
    padding: 100px 30px 80px 30px;
    display: flex;
    flex-direction: column;
    gap: var(--space-20);
    max-width: 75%;
}

/* Animate contents on load */
.hero-slide__heading,
.hero-slide__subtext,
.hero-slide__button {
    animation: heroSlideUp 0.7s ease-out both;
}
.hero-slide__heading { animation-delay: 0.1s; }
.hero-slide__subtext { animation-delay: 0.25s; }
.hero-slide__button  { animation-delay: 0.4s; }

.hero-slide__heading {
    color: var(--color-white);
    font-size: var(--font-size-10xl); /* 100px */
    font-weight: 700;
    line-height: 0.9;
    text-transform: none;
    text-shadow: 0 2px 8px rgba(0,0,0,0.35);
    margin: 0 0 20px;
}
.hero-slide__subtext {
    color: var(--color-white);
    font-size: var(--font-size-lg);
    font-weight: 600;
    line-height: 1.1;
    text-shadow: 0 1px 4px rgba(0,0,0,0.3);
    margin: 0 0 25px;
}
.hero-slide__subtext p { color: inherit; margin: 0; }

.hero-slide__button {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    background-color: var(--color-highlight);
    color: var(--color-white);
    border: 2px solid var(--color-highlight);
    border-radius: 5px;
    padding: 1.8rem 2.5rem; /* 18px 25px */
    font-family: var(--wp--preset--font-family--primary);
    font-size: var(--font-size-lg);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    align-self: flex-start;
    line-height: 1em;
    text-decoration: none;
    transition: transform 0.25s ease-out, background-color 0.25s ease, color 0.25s ease;
}
.hero-slide__button:hover { transform: scale(1.1); }

.hero-swiper__pagination { position: absolute; bottom: 30px !important; left: 0; right: 0; z-index: 3; display: flex; justify-content: center; align-items: center; gap: 0.5rem; }
.hero-swiper__pagination .swiper-pagination-bullet { width: 10px; height: 10px; background-color: rgba(255,255,255,0.5); border-radius: 50%; opacity: 1; transition: background-color 0.25s ease, transform 0.25s ease; cursor: pointer; }
.hero-swiper__pagination .swiper-pagination-bullet-active { width: 13px; height: 13px; background-color: var(--color-highlight); }

@media (max-width: 768px) {
    .section-hero { 
    	height: max(40vh, 320px); 
    }
    .hero-slide__contents { 
    	padding: 6rem 3rem 5rem 3rem; 
    	max-width: 100%; 
    	gap: 10px;
    }
    .hero-slide__heading { 
    	font-size: var(--font-size-4xl);
    	margin-bottom: 10px;
    }
    .hero-slide__subtext { 
    	font-size: var(--font-size-sm); 
    	margin-bottom: 10px;
    }
    .hero-slide__button { 
    	font-size: var(--font-size-xs); 
    	padding: 1.2rem; 
    }
    a.hero-slide__inner { 
		cursor: pointer; 
		padding-left: 15px;
		padding-right: 15px;
	}
}
@media (max-width: 480px) {
    .hero-slide__heading { font-size: var(--font-size-3xl); } /* 36px */
}

/* ── Hero Video Background ───────────────────────────── */
/* Video starts hidden — image shows through */
.hero-slide__video {
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

/* JS adds this class once video is ready */
.hero-slide__video--playing {
    opacity: 1;
}

/* Video wrap sizing — unchanged */
.hero-slide__video-wrap {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 0;
    pointer-events: none;
}

/* YT builds the iframe into the target div — style it here */
.hero-slide__video-wrap iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 177.78vh;
    min-width: 100%;
    height: 56.25vw;
    min-height: 100%;
    transform: translate(-50%, -50%);
    border: 0;
    pointer-events: none;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

/* Fallback image — visible by default, fades out via JS */
.hero-slide__bg-img--video-fallback {
    transition: opacity 0.8s ease-in-out;
}

/* Mobile — hide video wrap entirely */
@media ( max-width: 768px ) {
    .hero-slide--has-video .hero-slide__video-wrap {
        display: none;
    }
    .hero-slide--has-video .hero-slide__bg-img--video-fallback {
        display: block;
        opacity: 1 !important;
    }
}

/* ─── PAGE INTRO ─────────────────────────────────────────────────────────── */

.section-intro { 
    padding-block: var(--space-60); 
    margin-top: 0;
}
.section-intro .inner-container { max-width: var(--content-size); margin-inline: auto; padding-inline: var(--space-30); }
.section-intro.section-bg-white { background-color: var(--color-white); }
.section-intro.section-bg-gray-light { background-color: var(--color-gray-light); }
.section-intro.section-bg-primary-dark { background-color: var(--color-primary-dark); }
.section-intro.section-bg-primary-dark h2, .section-intro.section-bg-primary-dark p { color: var(--color-white); }
.section-intro.section-bg-primary { 
    background-color: var(--color-primary); 
}
.section-intro.section-bg-primary h2, 
.section-intro.section-bg-primary p { 
    color: var(--color-white); 
}
.section-intro__heading-row { margin-block-end: var(--space-30); }
.section-intro__heading-row.has-cta { display: flex; align-items: center; justify-content: space-between; gap: var(--space-30); flex-wrap: wrap; }
.section-intro__heading-row .heading-outer { flex: 1; min-width: 0; }
.section-intro__heading-row h2.heading-inner { 
	margin: 0; 
	font-size: var(--font-size-5xl); 
	font-weight: 700; 
	color: var(--color-primary-light); 
	line-height: 1.2; 
}
.section-hero + .section-intro h2 {
    font-size: var(--font-size-6xl);
    border-bottom: 2px solid var(--color-gray-medium);
    padding-bottom: 3rem;
}
.section-intro__heading-row .heading-cta-wrapper { flex-shrink: 0; }
.section-intro .content-inner p { font-size: var(--font-size-md); line-height: 1.7; color: var(--color-text); margin-block-end: var(--space-20); }
.section-intro .content-inner p:last-child { margin-block-end: 0; }
.section-intro .content-inner strong { color: var(--color-primary-dark); }
.section-intro .content-inner a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 2px; transition: all 0.25s ease; }
.section-intro .content-inner a:hover { color: var(--color-primary-dark); }
@media (max-width: 768px) {
    .section-intro__heading-row.has-cta { flex-direction: column; align-items: flex-start; }
    .section-intro__heading-row h2.heading-inner { font-size: var(--font-size-2xl); }
    .heading-cta-wrapper .btn { width: 100%; justify-content: center; }
}

/* ─── ACCORDION ──────────────────────────────────────────────────────────── */

.section-accordion { 
    padding-block: var(--space-60); 
    margin-top: 0;
}
.section-accordion .inner-container { max-width: var(--content-size); margin-inline: auto; padding-inline: var(--space-30); }
.section-accordion.section-bg-white { background-color: var(--color-white); }
.section-accordion.section-bg-gray-light { background-color: var(--color-gray-light); }
.section-accordion.section-bg-primary-dark { background-color: var(--color-primary-dark); }
.section-accordion.section-bg-primary-dark .accordion__heading, .section-accordion.section-bg-primary-dark .accordion__title { color: var(--color-white); }
.section-accordion.section-bg-primary { background-color: var(--color-primary); }
.section-accordion.section-bg-primary .accordion__heading, .section-accordion.section-bg-primary .accordion__title { color: var(--color-white); }
.accordion__header { 
	margin-block-end: var(--space-30); 
	text-align: center;
}
.accordion__heading { 
	font-weight: 700; 
	color: var(--color-primary-light); 
	margin-block-end: var(--space-20); 
}
.accordion__list { display: flex; flex-direction: column; border-top: 1px solid var(--color-gray-medium); }
.accordion__item { border-bottom: 1px solid var(--color-gray-medium); }
.accordion__trigger { display: flex; align-items: center; justify-content: space-between; flex-direction: row-reverse; gap: var(--space-20); padding-block: var(--space-30); padding-inline: var(--space-10); cursor: pointer; user-select: none; transition: background-color 0.15s ease; }
.accordion__trigger:hover { background-color: rgba(0,0,0,0.02); }
.accordion__trigger:focus-visible { outline: 2px solid var(--color-primary); outline-offset: -2px; border-radius: 2px; }
.accordion__title { 
	flex: 1; 
	font-size: var(--font-size-lg); 
	font-weight: 600; 
	color: var(--color-primary); 
	line-height: 1.4; 
	transition: all 0.15s ease; 
}
.accordion__trigger:hover .accordion__title, 
.accordion__trigger.is-active .accordion__title { 
	color: var(--color-primary-light); 
}
.accordion__icon { 
	display: flex; 
	align-items: center; 
	flex-shrink: 0; 
	color: var(--color-primary); 
	font-size: var(--font-size-base); 
	transition: all 0.15s ease; 
}
.accordion__icon-opened { display: none; }
.accordion__icon-closed { display: flex; }
.accordion__trigger.is-active .accordion__icon-opened { display: flex; }
.accordion__trigger.is-active .accordion__icon-closed { display: none; }
/* ── Accordion Panel ─────────────────────────────────── */
.accordion__panel {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s ease;
}

.accordion__panel:not([hidden]) {
    grid-template-rows: 1fr;
}

/* Required — inner wrapper must have overflow hidden */
.accordion__panel-inner {
    overflow: hidden;
    min-height: 0;
}
/*.accordion__panel-inner { padding-block: var(--space-20) var(--space-30); padding-inline: var(--space-10); }*/
.accordion__panel-inner p { font-size: var(--font-size-base); line-height: 1.7; color: var(--color-text); margin-block-end: var(--space-20); }
.accordion__panel-inner p:last-child { margin-block-end: 0; }
.accordion__panel-inner a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 2px; transition: all 0.25s ease; }
.accordion__panel-inner a:hover { color: var(--color-primary-dark); }


.accordion-item .accordion-panel {
    padding: 10px;
}

.accordion-news__category-group {
    margin-bottom: 0px;
}
.accordion-news__category-group .accordion-news__category-heading {
    background-color: #1374ac;
    padding: 20px;
    margin: 0;
    color: #fff;
}
@media (max-width: 768px) {
    .accordion__trigger { padding-block: var(--space-20); }
    .accordion__title { 
    	font-size: var(--font-size-md); 
    }
    .accordion__icon {  
		font-size: var(--font-size-md);; 
	}
    .accordion__panel-inner p {
        font-size: var(--font-size-sm);
    }
}
@media (max-width: 550px) {
    .accordion__title { 
    	font-size: var(--font-size-base); 
    }
    .accordion__icon {  
		font-size: var(--font-size-base);; 
	}
}

.section-accordion-news .accordion-news__category-group .accordion-list {
    border-bottom: 0;
}
.section-accordion-news .accordion-news__outer-list > .accordion-news__outer-item {
    border-bottom: 0;
}
.accordion-news__cat-panel .accordion__trigger.is-active {
    background-color: var(--color-gray-extra-light);
}
.accordion-news__cat-panel .accordion__trigger.is-active + .accordion__panel {
    padding: 20px;
    border: 1px solid var(--color-gray-extra-light);
}
.accordion-news__cat-trigger.is-active + .accordion-news__cat-panel .accordion__panel-inner {
    padding-top: 0;
    padding-bottom: 0;
}
/* ── Accordion News Filter ───────────────────────────────── */

.accordion-news__filter-wrap {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 2rem;
}

.accordion-news__filter-label {
    font-weight: 600;
    white-space: nowrap;
    color: var(--color-text);
}

.accordion-news__filter-select {
    padding: 0.5rem 1rem;
    border: 2px solid var(--color-primary);
    border-radius: 4px;
    font-size: var(--font-size-base);
    color: var(--color-text);
    background-color: var(--color-white);
    cursor: pointer;
    min-width: 220px;

}

/* ── Category group spacing ──────────────────────────────── */
.accordion-news__category-group .accordion-news__cat-trigger {
    background-color: var(--color-primary-light);
}
.accordion-news__category-group .accordion-news__cat-trigger .accordion__title,
.accordion-news__category-group .accordion-news__cat-trigger .accordion__icon-closed,
.accordion-news__category-group .accordion-news__cat-trigger .accordion__icon-opened {
    color: #fff;
}
.accordion-news__category-heading {
    margin-bottom: 1rem;
    color: var(--color-primary-dark);
}

/* ─── THE EVENTS CALENDAR — RESETS ──────────────────────────────────── */
/* Reset all theme interference inside TEC containers */
.tribe-common *,
.tribe-events * {
    box-sizing: border-box;
    font-family: 'Open Sans', Helvetica, Arial, sans-serif;
}

/* Fix SVG loader dots being blown up */
.tribe-common-c-loader svg,
.tribe-common-c-svgicon {
    width: 1em;
    height: 1em;
    max-width: 100%;
    border-radius: 0 !important;
    background: none !important;
}

/* Font base reset — prevent 10px cascade */
.tribe-common {
    font-size: var(--font-size-sm);
    font-family: 'Open Sans', Helvetica, Arial, sans-serif;
}

/* Container padding */
.tribe-events-l-container {
    max-width: var(--content-size) !important;
    margin-inline: auto !important;
    padding: 4rem 3rem !important;
}

/* Find Events button → CTA orange */
.tribe-events-c-search__button,
.tribe-common-c-btn {
    background-color: var(--color-cta) !important;
    border-color: var(--color-cta) !important;
    color: var(--color-white) !important;
    font-family: 'Open Sans', Helvetica, Arial, sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    border-radius: 5px !important;
    transform: none !important;
}

.tribe-events-c-search__button:hover,
.tribe-common-c-btn:hover {
    background-color: var(--color-white) !important;
    color: var(--color-cta) !important;
    transform: none !important;
}

/* Active view tab underline → CTA orange */
.tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link,
.tribe-events-c-view-selector__button {
    color: var(--color-cta) !important;
}

/* Event title links → primary blue */
.tribe-events-calendar-list__event-title-link,
.tribe-events-calendar-list__event-title a {
    color: var(--color-cta) !important;
    text-decoration: none !important;
    font-weight: 700 !important;
    text-transform: none !important;
}

.tribe-events-calendar-list__event-title-link:hover {
    color: var(--color-cta) !important;
}

/* Month view event links */
.tribe-events-calendar-month__calendar-event-title-link {
    color: var(--color-cta) !important;
    text-transform: none !important;
    font-size: var(--font-size-xs) !important;
}

/* Date tag numbers */
.tribe-events-calendar-list__event-date-tag-daynum {
    color: var(--color-primary-dark) !important;
    font-weight: 900 !important;
}

/* Date tag weekday abbreviation (MON, TUE, ...) */
.tribe-events-calendar-list__event-date-tag-weekday {
    font-size: var(--font-size-xs) !important;
}

/* Event date/time line */
.tribe-events-calendar-list__event-datetime-wrapper,
.tribe-events-calendar-list__event-datetime {
    font-size: var(--font-size-sm) !important;
}

/* Event excerpt */
.tribe-events-calendar-list__event-description {
    font-size: var(--font-size-sm) !important;
}

/* Event venue/address */
.tribe-events-calendar-list__event-venue {
    font-size: var(--font-size-sm) !important;
}

/* Month/year heading */
.tribe-events-c-top-bar__datepicker-button,
.tribe-events-calendar-month__header-column-title {
    color: var(--color-primary-dark) !important;
    text-transform: none !important;
    font-weight: 700 !important;
}

/* Navigation buttons */
.tribe-common-c-btn-icon {
    transform: none !important;
}

/* Today button */
.tribe-events-c-top-bar__today-button,
.tribe-events-c-nav__today {
    border-color: var(--color-primary) !important;
    color: var(--color-primary) !important;
    border-radius: 5px !important;
}

/* Subscribe to calendar button */
.tribe-common-c-btn-border,
.tribe-events-c-subscribe-dropdown__button {
    border-color: var(--color-primary) !important;
    color: var(--color-primary) !important;
    border-radius: 5px !important;
    transform: none !important;
}

/* Heading resets */
.tribe-common h1,
.tribe-common h2,
.tribe-common h3,
.tribe-common h4,
.tribe-common h5,
.tribe-common h6 {
    text-transform: none !important;
    line-height: 1.3 !important;
}

/* Search input */
.tribe-common-form-control-text__input {
    font-family: 'Open Sans', Helvetica, Arial, sans-serif !important;
    font-size: var(--font-size-xs) !important;
    border-color: var(--color-medium-gray) !important;
    border-radius: 3px !important;
}

/* Month calendar grid */
.tribe-events-calendar-month__body {
    border-color: var(--color-light-gray) !important;
}

/* SVG icon fills → brand colors */
.tribe-common-c-svgicon__svg-fill {
    fill: currentColor !important;
}

/* TEC Month View Event Popover */
.tribe-events-calendar-month__calendar-event-tooltip-description,
.tribe-events-calendar-month__calendar-event-tooltip p,
.tribe-events-calendar-month-grid-cell__events-more-tooltip p {
    font-size: var(--font-size-xs) !important;
    line-height: 1.5 !important;
}

/* Also reduce the overall tooltip font base */
.tribe-events-calendar-month__calendar-event-tooltip {
    font-size: var(--font-size-xs) !important;
}

/* ─── THE EVENTS CALENDAR — SINGLE EVENT ────────────────────────────────── */

/* Single event container */
.tribe-events-single {
    max-width: var(--content-size);
    margin-inline: auto;
    padding: 3rem;
    font-family: 'Open Sans', Helvetica, Arial, sans-serif;
    font-size: var(--font-size-base);
}

/* Event title */
.tribe-events-single h1.tribe-events-single-event-title {
    font-size: var(--font-size-5xl);
    font-weight: 900;
    color: var(--color-cta);
    text-transform: uppercase;
    margin-block-end: 1rem;
    line-height: 1.1;
}

/* Date/time line below title — RSVP button sits inline to the right */
.tribe-events-schedule {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.5rem;
    font-size: var(--font-size-base);
    color: var(--color-dark-gray);
    margin-block-end: 1.5rem;
    padding-block-end: 1rem;
    border-bottom: 2px solid var(--color-light-gray);
}

.tribe-events-schedule abbr {
    text-decoration: none;
    border: none;
}

/* Event description body */
.tribe-events-content {
    font-size: var(--font-size-base);
    line-height: 1.6;
    color: var(--color-text);
    margin-block-end: 2rem;
}

.tribe-events-content p {
    font-size: var(--font-size-base);
    margin-bottom: 2rem;
}

/* Row holding the "Add to calendar" widget + RSVP button, side by side */
.tribe-events-cta-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-block-start: 1rem;
}

/* Add to calendar button */
.tribe-events-c-subscribe-dropdown__button,
.tribe-block__buy-tickets a,
.tribe-common-c-btn-border {
    border: 2px solid var(--color-primary) !important;
    color: var(--color-primary) !important;
    border-radius: 5px !important;
    font-weight: 700 !important;
    font-family: 'Open Sans', Helvetica, Arial, sans-serif !important;
    transform: none !important;
    transition: all 0.25s ease-out !important;
}

.tribe-events-c-subscribe-dropdown__button:hover {
    background-color: var(--color-primary) !important;
    color: var(--color-white) !important;
}

/* Scoped to the single-event page's calendar row only */
.tribe-events-cta-row .tribe-events-c-subscribe-dropdown__button,
.tribe-events-cta-row .tribe-events-c-subscribe-dropdown__button-text {
    font-size: var(--font-size-base) !important;
}

/* ── Meta section — Details / Organizer / Venue ──────────────────────────── */

.tribe-events-single .tribe-events-single-section {
    margin-block-end: 1.5rem;
}

/* Meta grid — 2-up (Details/Organizer in the primary row, Venue/Map in the secondary row) */
.tribe-events-single-section.tribe-events-event-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: start;
    gap: 1.5rem;
    background-color: var(--color-light-gray);
    border-radius: 6px;
    padding: 1.75rem;
    margin-block-start: 1rem;
}

/* Anchor each column to its own edge of the row so the space is used evenly.
   TEC's own CSS puts a fixed width + margin-right on .tribe-events-meta-group
   (left over from its old float-based column layout) that fills the grid
   track and leaves no free space to align within — reset it so the box can
   shrink to its content and justify-self can actually move it. */
.tribe-events-single-section.tribe-events-event-meta > * {
    width: auto;
    margin-right: 0;
}

.tribe-events-single-section.tribe-events-event-meta > *:first-child:not(:only-child) {
    justify-self: start;
}

.tribe-events-single-section.tribe-events-event-meta > *:last-child:not(:only-child) {
    justify-self: end;
}

.tribe-events-meta-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.tribe-events-meta-item {
    margin-block-end: 0.7rem;
}

.tribe-events-meta-item:last-child {
    margin-block-end: 0;
}

/* Meta column headings — DETAILS, ORGANIZER, VENUE */
.tribe-events-meta-group h2.tribe-events-single-section-title {
    font-size: var(--font-size-lg) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: var(--color-cta) !important;
    margin-block-end: 0.6rem !important;
    padding-block-end: 0.3rem !important;
    border-bottom: 2px solid var(--color-cta) !important;
}

/* Meta labels — Date:, Time:, Cost:, Phone, etc. — sit inline with their
   value on the same line (e.g. "Phone: (612) 515-7326"), wrapping as needed */
.tribe-events-meta-group .tribe-events-meta-label {
    display: inline;
    font-weight: 700;
    color: var(--color-primary-dark);
    font-size: var(--font-size-base);
    margin-inline-end: 0.4rem;
}

/* Some labels (Phone, Email, Website) don't include a trailing colon by
   default — add one so every label reads consistently */
.tribe-organizer-tel-label::after,
.tribe-organizer-email-label::after,
.tribe-venue-tel-label::after,
.tribe-organizer-url-label::after,
.tribe-venue-url-label::after {
    content: ":";
    /* TEC's markup leaves whitespace before the closing tag, which renders as
       a collapsed space — pull the colon back so it reads "Phone:" not "Phone :" */
    margin-inline-start: -0.3em;
}

/* Venue address — keep street/city/state/zip/country flowing on one wrapping line */
.tribe-address {
    display: inline;
}

.tribe-address abbr.tribe-events-abbr {
    display: inline;
    text-decoration: none;
    border: none;
}

/* "+ Google Map" link — its own line below the address */
.tribe-events-gmap {
    display: block;
    margin-block-start: 0.4rem;
}

/* Meta values */
.tribe-events-meta-group .tribe-events-meta-value,
.tribe-events-meta-group p {
    display: inline;
    font-size: var(--font-size-base);
    color: var(--color-text);
    line-height: 1.5;
}

/* The "Website" row holds a full-width RSVP button — keep it on its own line */
.tribe-events-meta-group .tribe-events-event-url {
    display: block;
}

/* Links inside meta (excluding RSVP buttons, styled separately) */
.tribe-events-meta-group a:not(.tribe-events-rsvp__button) {
    color: var(--color-primary) !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}

.tribe-events-meta-group a:not(.tribe-events-rsvp__button):hover {
    color: var(--color-cta) !important;
}

/* Venue map */
.tribe-events-venue-map {
    border-radius: 6px;
    overflow: hidden;
    margin-block-start: 0.7rem;
}

.tribe-events-venue-map iframe {
    width: 100% !important;
    height: 260px !important;
    display: block;
}

/* Navigation between events */
.tribe-events-nav-pagination {
    border-top: 2px solid var(--color-light-gray);
    padding-block-start: 1rem;
    margin-block-start: 1rem;
    margin-block-end: 0.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.tribe-events-nav-pagination a {
    color: var(--color-primary) !important;
    font-weight: 700;
    font-size: var(--font-size-base);
    text-decoration: none;
    transition: color 0.2s ease;
}

.tribe-events-nav-pagination a:hover {
    color: var(--color-cta) !important;
}

/* Back to events link */
.tribe-events-back a {
    color: var(--color-primary) !important;
    font-size: var(--font-size-base);
    font-weight: 600;
    text-decoration: none;
}

.tribe-events-back a:hover {
    color: var(--color-cta) !important;
}

/* Cost display */
.tribe-events-cost {
    font-weight: 700;
    color: var(--color-primary-dark);
}

/* RSVP buttons (shown wherever the event has a Website URL) — text styling
   matches the site's standard .btn CTA exactly, for consistency across the page */
.tribe-events-rsvp__button {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    background-color: var(--color-cta) !important;
    color: var(--color-white) !important;
    font-family: 'Open Sans', Helvetica, Arial, sans-serif;
    font-weight: 700;
    font-size: var(--font-size-base);
    text-transform: uppercase;
    text-decoration: none !important;
    border: 2px solid var(--color-cta);
    border-radius: 5px;
    padding: 2rem 2.5rem;
    line-height: 1;
    white-space: nowrap;
    transition: all 0.25s ease-out;
}

.tribe-events-rsvp__button i {
    font-size: 0.8em;
}

.tribe-events-rsvp__button:hover {
    transform: scale(1.1);
    background-color: var(--color-cta) !important;
    color: var(--color-white) !important;
}

/* Inline, next to the date/time line */
.tribe-events-rsvp__button--inline {
    margin-inline-start: auto;
}

/* Next to the Add to calendar button — mirrors its width/padding for this pairing only */
.tribe-events-rsvp__button--calendar {
    box-sizing: border-box;
    width: 298px;
    padding: 15px 12px;
    justify-content: center;
}

/* Replacing the "Website" row inside Details — spans the full column */
.tribe-events-rsvp__button--meta {
    width: 100%;
    box-sizing: border-box;
    justify-content: center;
}

@media (max-width: 768px) {
    .tribe-events-single {
        padding: 3rem 2rem;
    }
    .tribe-events-single h1.tribe-events-single-event-title {
        font-size: var(--font-size-3xl)
    }
    .tribe-events-schedule {
        flex-direction: column;
        align-items: flex-start;
    }
    .tribe-events-rsvp__button--inline {
        margin-inline-start: 0;
    }
    .tribe-events-rsvp__button {
        padding: 1rem 2rem;
    }
    .tribe-events-single-section.tribe-events-event-meta > *:first-child,
    .tribe-events-single-section.tribe-events-event-meta > *:last-child {
        justify-self: stretch !important;
    }
    /* TEC's own CSS sets order:-1 on the map (pushing it above the venue
       name/address) and order:1 on the venue group — force the reverse so
       the map always comes after the venue details on mobile. */
    .tribe-events-single-section.tribe-events-event-meta .tribe-events-meta-group-venue {
        order: 1 !important;
    }
    .tribe-events-single-section.tribe-events-event-meta .tribe-events-venue-map {
        order: 2 !important;
    }
    /* Flat, boxless layout on mobile — no card background/border to create a seam */
    .tribe-events-single-section.tribe-events-event-meta {
        grid-template-columns: 1fr;
        gap: 30px;
        padding: 0;
        background-color: transparent;
        border-radius: 0;
    }
    /* Margins between the two grid sections don't collapse, so zero the
       primary's own bottom margin and let the secondary's top margin be the
       sole 30px gap between Organizer and Venue. */
    .tribe-events-single-section.tribe-events-event-meta.primary {
        margin-block-end: 0 !important;
        margin-top: 30px;
    }
    .tribe-events-single-section.tribe-events-event-meta.secondary {
        margin-block-start: 30px !important;
    }
    .tribe-events-rsvp__button--calendar {
        width: 100%;
    }
    .tribe-events-event-meta:before, .tribe-events-event-meta~div:not(.tribe-events-event-meta,.event-tickets) {
        border-top: 0;
    }
}

/* ─── MAP EMBED ──────────────────────────────────────────────────────────── */

.section-map-embed {
    margin-top:0;
    margin-bottom:0;
    width: 100%;
    overflow: hidden;
    line-height: 0; /* removes bottom gap under iframe */
}

.map-embed__wrapper {
    width: 100%;
    position: relative;
}

.map-embed__iframe {
    width: 100%;
    height: 100%;
    border: none;
    display: block;
    filter: grayscale(100%);
}

.section-map-embed--placeholder {
    background-color: var(--color-light-gray);
    padding: 4rem;
    text-align: center;
    color: var(--color-dark-gray);
    font-size: var(--font-size-sm);
}

@media (max-width: 768px) {
    .map-embed__wrapper {
        height: 300px !important; /* override inline height on mobile */
    }
}

/* ─── CONTACT CARDS ──────────────────────────────────────────────────────── */

.section-contact-cards { 
    margin-top:0;
    margin-bottom:0;
    padding-block: 6rem; 
}

.section-contact-cards .inner-container {
    max-width: var(--content-size);
    margin-inline: auto;
    padding-inline: 3rem;
}

/* Section header */
.contact-cards__header {
    text-align: center;
    margin-block-end: 4rem;
}

.contact-cards__heading {
    margin-block: var(--space-20);
    color: var(--color-primary-light);
}

/* Grid */
.contact-cards__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
}

/* Card */
.contact-card {
    background-color: var(--color-white);
    border-top: 10px solid var(--color-primary-light);
    padding: 3rem 2.5rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 1rem;
    align-items: center;
}

/* Icon */
.contact-card__icon {
    font-size: var(--font-size-6xl);
    color: var(--color-primary-light);
    margin-block-end: 0.5rem;
    line-height: 1;
}

/* Heading */
.contact-card__heading {
    font-size: var(--font-size-3xl);
    font-weight: 700;
    color: var(--color-text);
    text-transform: none;
    margin: 0;
}

/* Content */
.contact-card__content {
    font-size: var(--font-size-base);
    line-height: 1.5;
    color: var(--color-text);
}

.contact-card .contact-card__content a,
.contact-card .contact-card__content .tel-link,
.contact-card .contact-card__content .email-link {
    color: var(--color-cta)!important;
    text-decoration: none;
    transition: color 0.2s ease;
    text-align: center;
    display: block;
}

.contact-card__content a:hover,
.contact-card__content .tel-link:hover,
.contact-card__content .email-link:hover {
    color: var(--color-cta);
}

.contact-card__content address {
    font-style: normal;
    font-size: var(--font-size-sm);
    line-height: 1.6;
    margin: 0;
}

/* Dark background variants */
.section-contact-cards.section-bg-primary-dark .contact-cards__heading,
.section-contact-cards.section-bg-primary .contact-cards__heading {
    color: var(--color-white);
}

/* Responsive */
@media (max-width: 768px) {
    .contact-cards__grid {
        grid-template-columns: 1fr;
        max-width: 480px;
        margin-inline: auto;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .contact-cards__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .contact-cards__grid .contact-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
        max-width: 50%;
        margin-inline: auto;
    }
}
@media (max-width: 550px) {
    .contact-card__icon {
        font-size: var(--font-size-3xl);
    }
    .contact-card__heading {
        font-size: var(--font-size-base);
    }
    .contact-card__content {
        font-size: var(--font-size-xs);
    }
}
/* ─── LOCAL UNIT CARDS ──────────────────────────────────────────────────────── */
.section-local-units .local-units__division {
    margin-bottom: 30px;
    padding-bottom: 30px;
    border-bottom: 2px solid var(--color-gray-dark);
}
.section-local-units .local-unit-card .contact-card__heading {
    font-size: var(--font-size-xl);
    margin-bottom: 20px;
}
.section-local-units .local-unit-card a {
    border-bottom: 0;
    text-decoration: none;
}
.section-local-units .local-unit-card p {
    display: flex;
    flex-direction: row;
    gap: 5px;
    align-items: center;
    margin-bottom: 0;
}
.section-local-units .local-unit-card__contact {
    margin-bottom: 15px;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--color-gray-light);
}
.section-local-units .local-units__division:last-of-type,
.section-local-units .local-unit-card__contact:last-of-type {
    margin-bottom: 0px;
    padding-bottom: 0px;
    border-bottom: 0px;
}
/* ─── SOCIAL LINKS ───────────────────────────────────────────────────────── */

.section-social-links { 
    margin-top: 0;
    padding-top: var(--space-60);
    padding-bottom: var(--space-60);
    text-align: center; 
}

.section-social-links .inner-container {
    max-width: var(--content-size);
    margin-left: auto;
    margin-right: auto;
}

/* Section header */

.social-links-block__heading {
    color: var(--color-primary-light);
}

.section-social-links.section-bg-primary-dark .social-links-block__heading,
.section-social-links.section-bg-primary .social-links-block__heading {
    color: var(--color-white);
}

/* Grid */
.social-links-block__grid {
    margin-top: var(--space-60);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    gap: 3rem 5rem;
}

/* Individual item */
.social-link-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}

/* Circle icon button */
.social-link-item__icon-link {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2.5rem;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    background-color: var(--color-primary-light);
    color: var(--color-white);
    font-size: var(--font-size-5xl);
    text-decoration: none;
    transition: all 0.25s ease-out;
}
.social-link-item__icon-link:hover,
.social-link-item__label:hover {
    transform: scale(1.1);
}
.social-link-item__icon-link:hover {
    background-color: var(--color-primary-light);
    color: var(--color-white);
}

/* Platform name text link */
.social-link-item__label {
    font-size: var(--font-size-base);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-primary-light);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    transition: all 0.25s ease-out;
}
.social-link-item__label .fa-long-arrow-alt-right {
    font-size: var(--font-size-sm);
    color: var(--color-primary-light);
}
.social-link-item__label:hover {
    opacity: 0.75;
    color: var(--color-primary-light)
}

/* Dark bg label color overrides */
.section-social-links.section-bg-primary-dark .social-link-item__label,
.section-social-links.section-bg-primary .social-link-item__label {
    color: var(--color-white);
}

@media (max-width: 550px) {
    .social-links-block__grid { 
        gap: 2.5rem 3rem; 
        justify-content: center;
    }

    .social-link-item__icon-link { width: 65px; height: 65px; font-size: var(--font-size-md); }
    .social-link-item {
        min-width: 40%;
    }
    .social-link-item__label {
        font-size: var(--font-size-sm);
    }
    .social-link-item__label .fa-long-arrow-alt-right {
        font-size: var(--font-size-xs);
    }
}
/* ─── MEMBERSHIP PRICING ───────────────────────────────────────────────── */

.section-membership-pricing {
    padding-block: var(--space-60);
}

.section-membership-pricing .inner-container {
    max-width: var(--wide-size);
    margin-inline: auto;
    padding-inline: var(--space-30);
}

.section-membership-pricing.section-bg-primary-dark .membership-pricing-heading,
.section-membership-pricing.section-bg-primary-dark .membership-pricing-intro,
.section-membership-pricing.section-bg-primary-dark .membership-pricing-intro p,
.section-membership-pricing.section-bg-primary .membership-pricing-heading,
.section-membership-pricing.section-bg-primary .membership-pricing-intro,
.section-membership-pricing.section-bg-primary .membership-pricing-intro p,
.section-membership-pricing.section-bg-primary-light .membership-pricing-heading,
.section-membership-pricing.section-bg-primary-light .membership-pricing-intro,
.section-membership-pricing.section-bg-primary-light .membership-pricing-intro p,
.section-membership-pricing.section-bg-gray-dark .membership-pricing-heading,
.section-membership-pricing.section-bg-gray-dark .membership-pricing-intro,
.section-membership-pricing.section-bg-gray-dark .membership-pricing-intro p,
.section-membership-pricing.section-bg-black .membership-pricing-heading,
.section-membership-pricing.section-bg-black .membership-pricing-intro,
.section-membership-pricing.section-bg-black .membership-pricing-intro p {
    color: var(--color-white);
}

.membership-pricing-header {
    margin-block-end: var(--space-40);
}

.membership-pricing-heading {
    color: var(--color-primary-light);
    margin: 0 0 var(--space-20);
}

.membership-pricing-intro p {
    font-size: var(--font-size-md);
    line-height: 1.6;
    color: var(--color-text);
    margin-bottom: 0;
}

.membership-pricing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--space-30);
}

.membership-pricing-card {
    background-color: var(--color-white);
    border-top: 10px solid var(--color-primary);
    padding: var(--space-30);
    min-width: 0;
}

.section-membership-pricing .membership-pricing-price {
    color: var(--color-cta)!important;
    margin: 0 0 var(--space-20);
    font-size: var(--font-size-4xl);
    font-weight: 700;
    line-height: 1.1;
}

.membership-pricing-content {
    color: var(--color-text);
}

.membership-pricing-content p,
.membership-pricing-content ul,
.membership-pricing-content ol,
.membership-pricing-content li {
    font-size: var(--font-size-md);
    line-height: 1.6;
}

.membership-pricing-content p {
    margin-bottom: var(--space-20);
}

.membership-pricing-content ul,
.membership-pricing-content ol {
    margin: 0 0 0 2rem;
    padding-left: 2rem;
}

.membership-pricing-content li {
    margin-bottom: 1.2rem;
}

.membership-pricing-content > *:last-child {
    margin-bottom: 0;
}

@media (max-width: 1024px) {
    .membership-pricing-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .membership-pricing-grid {
        grid-template-columns: 1fr;
    }

    .membership-pricing-card {
        padding: var(--space-20);
    }

    .membership-pricing-price {
        font-size: var(--font-size-3xl);
    }
}

/* ─── REGION LINKS ─────────────────────────────────────────────────────── */

.hotspots-container {
    max-width: 1400px;
    margin: auto;
}

.section-region-links {
    padding-block: var(--space-60);
}

.section-region-links .inner-container {
    max-width: var(--wide-size);
    margin-inline: auto;
    padding-inline: var(--space-30);
}

.region-links__header {
    margin-block-end: var(--space-30);
}

.region-links__heading {
    font-size: var(--font-size-xl);
    color: var(--color-primary-light);
    margin-bottom: var(--space-20);
}

.region-links__list {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}

.region-link-row {
    display: grid;
    grid-template-columns: 260px 1fr 44px;
    gap: var(--space-30);
    align-items: center;
    text-decoration: none;
    padding: 2rem 1.5rem;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.region-link-row:hover {
    transform: translateY(-1px);
    opacity: 0.95;
}

.region-link-row__title-text {
    display: inline-block;
    color: var(--color-white);
    font-size: var(--font-size-xl);
    font-weight: 700;
    text-transform: uppercase;
    border-bottom: 2px solid var(--color-white);
    line-height: 1.15;
    padding-bottom: 0.4rem;
}

.region-link-row__districts p {
    margin: 0;
    color: var(--color-white);
    font-size: var(--font-size-lg);
    line-height: 1.4;
}

.region-link-row__icon {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    color: var(--color-white);
    font-size: var(--font-size-6xl);
    line-height: 1;
}

.region-link-row--primary-light {
    background-color: var(--color-primary-light);
}

.region-link-row--primary {
    background-color: var(--color-primary);
}

.region-link-row--primary-dark {
    background-color: var(--color-primary-dark);
}

.region-link-row--cta {
    background-color: var(--color-cta);
}

.region-link-row--gray-dark {
    background-color: var(--color-gray-dark);
}

.region-link-row--black {
    background-color: #000000;
}

@media (max-width: 991px) {
    .region-link-row {
        grid-template-columns: 220px 1fr 34px;
        gap: var(--space-20);
    }

    .region-link-row__title-text {
        font-size: var(--font-size-lg);
    }

    .region-link-row__districts p {
        font-size: var(--font-size-base);
    }

    .region-link-row__icon {
        font-size: var(--font-size-5xl)
    }
}

@media (max-width: 767px) {
    .region-link-row {
        grid-template-columns: 1fr 30px;
        gap: var(--space-10);
        padding: 1.6rem 1.2rem;
    }

    .region-link-row__title {
        grid-column: 1 / 2;
    }

    .region-link-row__districts {
        grid-column: 1 / 2;
    }

    .region-link-row__icon {
        grid-column: 2 / 3;
        grid-row: 1 / 3;
        align-self: center;
        font-size: var(--font-size-3xl);
    }

    .region-link-row__title-text {
        font-size: var(--font-size-md);
    }

    .region-link-row__districts p {
        font-size: var(--font-size-sm);
    }
}

/* ─── CHAPTER INTRO ───────────────────────────────────────────────────── */

.section-chapter-intro {
    padding-block: var(--space-50) var(--space-20);
}

.section-chapter-intro .inner-container {
    max-width: var(--wide-size);
    margin-inline: auto;
    padding-inline: var(--space-30);
}

.chapter-intro__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-30);
    padding-bottom: var(--space-20);
}

/* Heading */
.chapter-intro__heading h2 {
    margin: 0;
    color: var(--color-primary-light);
}

/* CTA */
.chapter-intro__cta {
    flex-shrink: 0;
}

/* Bottom border */
.section-chapter-intro::after {
    content: '';
    display: block;
    width: 100%;
    height: 8px;
    margin-top: var(--space-20);
}

/* Border colors */
.chapter-intro--border-cta::after {
    background-color: var(--color-cta);
}

.chapter-intro--border-primary::after {
    background-color: var(--color-primary);
}

.chapter-intro--border-primary-light::after {
    background-color: var(--color-primary-light);
}

.chapter-intro--border-primary-dark::after {
    background-color: var(--color-primary-dark);
}

.chapter-intro--border-highlight::after {
    background-color: var(--color-highlight);
}

.chapter-intro--border-gray-dark::after {
    background-color: var(--color-gray-dark);
}

.chapter-intro--border-black::after {
    background-color: #000;
}

/* Responsive */
@media (max-width: 768px) {
    .chapter-intro__inner {
        flex-direction: column;
        align-items: flex-start;
    }

    .chapter-intro__cta .btn {
        width: 100%;
        justify-content: center;
    }
}
/* ─── CHAPTER DETAILS ──────────────────────────────────────────────────── */

.section-chapter-details {
    padding-block: var(--space-40) var(--space-60);
}

.section-chapter-details .inner-container {
    max-width: var(--wide-size);
    margin-inline: auto;
    padding-inline: var(--space-30);
}

.chapter-details__grid {
    display: grid;
    grid-template-columns: minmax(320px, 1fr) minmax(320px, 1fr);
    gap: var(--space-50);
    align-items: start;
}

.chapter-details__left {
    display: flex;
    flex-direction: column;
    gap: var(--space-30);
}

.chapter-details__counties p,
.chapter-details__contact p,
.chapter-details__president p {
    margin: 0 0 1rem;
    font-size: var(--font-size-xl);
    line-height: 1.4;
}

.chapter-details__counties p:last-child,
.chapter-details__contact p:last-child,
.chapter-details__president p:last-child {
    margin-bottom: 0;
}

.chapter-details__counties strong,
.chapter-details__contact strong,
.chapter-details__president strong {
    color: var(--color-black, #000);
}

.chapter-details__contact a,
.chapter-details__president a {
    color: var(--color-cta);
    text-decoration: none;
}

.chapter-details__contact a:hover,
.chapter-details__president a:hover {
    color: var(--color-primary-dark);
}

.chapter-details__president {
    text-align: center;
    max-width: 300px;
}

.chapter-details__president-image {
    margin-bottom: var(--space-20);
}

.chapter-details__president-image img {
    width: 240px;
    height: 240px;
    object-fit: cover;
    object-position: center;
    border-radius: 50%;
    display: block;
    margin-inline: auto;
}

.chapter-details__president-name {
    color: var(--color-primary);
    margin: 0 0 1rem;
}

.chapter-details__president-title {
    margin-bottom: var(--space-20);
    font-weight: 600;
}

.chapter-details__right {
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.chapter-details__district-image img {
    display: block;
    width: 100%;
    max-width: 700px;
    height: auto;
}

@media (max-width: 991px) {
    .chapter-details__grid {
        grid-template-columns: 1fr;
        gap: var(--space-40);
    }

    .chapter-details__president {
        max-width: 100%;
    }

    .chapter-details__right {
        justify-content: flex-start;
    }

    .chapter-details__district-image img {
        max-width: 100%;
    }
}

@media (max-width: 767px) {
    .chapter-details__counties p,
    .chapter-details__contact p,
    .chapter-details__president p {
        font-size: var(--font-size-md);
    }

    .chapter-details__president-image img {
        width: 180px;
        height: 180px;
    }
}

/* ─── CUSTOM DATA TABLE ────────────────────────────────────────────────── */

.section-custom-data-table {
    padding-block: var(--space-60);
}

.section-custom-data-table .inner-container {
    max-width: var(--wide-size);
    margin-inline: auto;
    padding-inline: var(--space-30);
}

.custom-data-table__header {
    margin-block-end: var(--space-30);
}

.custom-data-table__heading {
    color: var(--color-primary-light);
    margin-bottom: var(--space-20);
}

.custom-data-table__wrapper {
    width: 100%;
    overflow-x: auto;
}

.custom-data-table__table {
    width: 100%;
    border-collapse: collapse;
    min-width: 760px;
    background-color: transparent;
}

.custom-data-table__table thead th {
    background-color: var(--color-cta);
    color: var(--color-white);
    font-size: var(--font-size-xl);
    font-weight: 700;
    text-align: center;
    padding: 1.6rem 1.2rem;
    border: 1px solid rgba(0,0,0,0.15);
}

.custom-data-table__table thead th:first-child {
    box-shadow: inset 8px 0 0 var(--color-primary-dark);
}

.custom-data-table__table tbody td {
    font-size: var(--font-size-xl);
    font-weight: 600;
    color: var(--color-primary-dark);
    padding: 1.4rem 1.2rem;
    border: 1px solid rgba(0,0,0,0.18);
    vertical-align: top;
    background-color: transparent;
}

.custom-data-table__table tbody tr:hover td {
    background-color: rgba(255,255,255,0.2);
}

.custom-data-table__link {
    color: var(--color-primary-dark);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.custom-data-table__link:hover {
    color: var(--color-primary);
}

@media (max-width: 767px) {
    .custom-data-table__table thead th,
    .custom-data-table__table tbody td {
        font-size: var(--font-size-base);
    }
}

/* ─── STAFF MEMBERS ────────────────────────────────────────────────────── */

.section-staff-members {
    padding-block: var(--space-60);
}

.section-staff-members .inner-container {
    max-width: var(--wide-size);
    margin-inline: auto;
    padding-inline: var(--space-30);
}

.staff-members__header {
    margin-block-end: var(--space-40);
}

.staff-members__heading {
    color: var(--color-primary-light);
    margin-bottom: var(--space-20);
}

.staff-members__intro {
    max-width: 900px;
}

.staff-members__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-20);
}

.staff-card {
    min-width: 0;
}

.staff-card__trigger,
.staff-card__trigger--static {
    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    padding: 0;
    text-align: inherit;
}

.staff-card__trigger {
    cursor: pointer;
}

.staff-card__inner {
    background-color: var(--color-white);
    padding: 3.5rem 2rem 5rem;
    text-align: center;
    min-height: 100%;
    transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.staff-card.has-modal .staff-card__trigger:hover .staff-card__inner,
.staff-card.has-modal .staff-card__trigger:focus-visible .staff-card__inner {
    box-shadow: 0 20px 40px rgba(0,0,0,0.12);
    transform: translateY(-2px);
}

.staff-card__image {
    margin-bottom: var(--space-30);
}

.staff-card__image img {
    width: 160px;
    height: 160px;
    object-fit: cover;
    object-position: center;
    border-radius: 50%;
    display: block;
    margin-inline: auto;
}

.section-staff-members .staff-card__name {
    margin: 0 0 0.5rem;
    color: var(--color-primary-light)!important;
    font-size: var(--font-size-xl);
    font-weight: 700;
    text-transform: uppercase;
}
.staff-card__title {
    color: var(--color-gray-medium);
    font-size: var(--font-size-base);
}
/**
 * TODO / HOTFIX : used !important to override text colors because i have earlier !important overrides for text when it is in certain colored BG sections so the text displays properly in those colored BGs....but i need to set those earlier overrides to specfic children not  ALL things within a colored BG section. Then come back and undo this - CC 04/08/2026
 * /
.section-bg-primary-dark .staff-card__name, 
.content-bg-primary-blue .staff-card__name, 
.section-bg-primary .staff-card__name, 
.content-bg-primary .staff-card__name, 
.section-bg-primary-light .staff-card__name, 
.content-bg-primary-light .staff-card__name,
.section-bg-primary-dark .staff-modal__name, 
.content-bg-primary-blue .staff-modal__name, 
.section-bg-primary .staff-modal__name, 
.content-bg-primary .staff-modal__name, 
.section-bg-primary-light .staff-modal__name, 
.content-bg-primary-light .staff-modal__name {
    color: var(--color-primary-light)!important;
}
.section-bg-primary-dark .staff-modal__info p, 
.content-bg-primary-blue .staff-modal__info p, 
.section-bg-primary .staff-modal__info p, 
.content-bg-primary .staff-modal__info p, 
.section-bg-primary-light .staff-modal__info p, 
.content-bg-primary-light .staff-modal__info p,
.section-bg-primary-dark .staff-modal__info strong,
.content-bg-primary-blue .staff-modal__info strong,
.section-bg-primary .staff-modal__info strong,
.content-bg-primary .staff-modal__info strong,
.section-bg-primary-light .staff-modal__info strong,
.content-bg-primary-light .staff-modal__info strong {
    color: var(--color-text)!important;
}

.staff-card__title {
    margin: 0;
    color: var(--color-gray-medium);
    font-size: var(--font-size-lg);
    line-height: 1.3;
}

/* Modal */
.staff-modal[hidden] {
    display: none !important;
}

.staff-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
}

.staff-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.6);
}

.staff-modal__dialog {
    position: relative;
    z-index: 2;
    width: min(920px, calc(100% - 3rem));
    max-height: calc(100vh - 4rem);
    overflow: auto;
    margin: 2rem auto;
    background: var(--color-white);
    box-shadow: 0 20px 60px rgba(0,0,0,0.25);
    padding: 4rem;
}

.staff-modal__close {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    border: 0;
    background: transparent;
    color: #666;
    font-size: var(--font-size-4xl);
    line-height: 1;
    cursor: pointer;
    padding: 0;
}
.staff-modal__close:hover {
    background: transparent;
    color: var(--color-red);
}

.staff-modal__content {
    display: block;
}

.staff-modal__content.has-image {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--space-30);
    align-items: start;
}

.staff-modal__image img {
    width: 100%;
    height: auto;
    display: block;
}

.staff-modal__name {
    margin: 0 0 0.8rem;
    color: var(--color-primary-light);
    font-size: var(--font-size-2xl);
    text-transform: uppercase;
}

.staff-modal__title {
    margin: 0 0 var(--space-30);
    color: var(--color-gray-medium);
    font-size: var(--font-size-xl);
}

.staff-modal__bio {
    margin-bottom: var(--space-30);
}

.staff-modal__bio p,
.staff-modal__bio li {
    font-size: var(--font-size-xl);
    line-height: 1.5;
}

.staff-modal__meta {
    border-top: 1px solid #e5e5e5;
}

.staff-modal__meta-row {
    display: flex;
    gap: 1.2rem;
    padding: 2rem 0;
    border-bottom: 1px solid #e5e5e5;
    font-size: var(--font-size-base);
}

.staff-modal__meta-row strong {
    min-width: 70px;
}

.staff-modal__meta-row a {
    color: var(--color-text);
    text-decoration: none;
}

.staff-modal__meta-row a:hover {
    color: var(--color-cta);
}

body.staff-modal-open {
    overflow: hidden;
}

@media (max-width: 1024px) {
    .staff-members__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .staff-members__grid {
        grid-template-columns: 1fr;
    }

    .staff-modal__dialog {
        padding: 2.5rem 2rem;
    }

    .staff-modal__content.has-image {
        grid-template-columns: 1fr;
    }

    .staff-modal__image {
        max-width: 280px;
    }

    .staff-card__image img {
        width: 130px;
        height: 130px;
    }

    .staff-card__name {
        font-size: var(--font-size-xl);
    }

    .staff-card__title,
    .staff-modal__meta-row,
    .staff-modal__bio p,
    .staff-modal__bio li {
        font-size: var(--font-size-base);
    }
}

/* ─── BENEFITS CARDS ───────────────────────────────────────────────────── */

.section-benefits-cards {
    padding-block: var(--space-60);
}

.section-benefits-cards .inner-container {
    max-width: var(--wide-size);
    margin-inline: auto;
    padding-inline: var(--space-30);
}

.benefits-cards__header {
    margin-block-end: var(--space-50);
}

.benefits-cards__heading {
    color: var(--color-primary-light);
    margin-bottom: var(--space-20);
}

.benefits-cards__intro {
    max-width: 100%;
}

.benefits-cards__intro p {
    font-size: var(--font-size-md);
    line-height: 1.45;
}

.benefits-cards__grid {
    display: grid;
    gap: var(--space-40) var(--space-30);
}

.benefits-cards--cols-2 .benefits-cards__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.benefits-cards--cols-3 .benefits-cards__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.benefits-cards--cols-4 .benefits-cards__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.benefit-card {
    min-width: 0;
}

.benefit-card__inner {
    height: 100%;
}

.benefit-card__top-line {
    height: 14px;
    background-color: var(--color-primary-light);
    margin-bottom: var(--space-30);
}

.benefit-card__icon {
    margin-bottom: var(--space-20);
}

.benefit-card__icon img {
    width: 100px;
    height: 100px;
    object-fit: contain;
    display: block;
}

.benefit-card__title {
    color: var(--color-primary-light);
    margin: 0 0 var(--space-20);
    font-size: var(--font-size-2xl);
    font-weight: 700;
    line-height: 1.1;
}

.benefit-card__cost {
    margin: 0 0 var(--space-20);
    color: var(--color-cta);
    font-size: var(--font-size-md);
    font-weight: 700;
}

.benefit-card__description {
    margin-bottom: var(--space-30);
}

.benefit-card__description p {
    margin: 0;
    font-size: var(--font-size-md);
    line-height: 1.5;
}

.benefit-card__links {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
}

.benefit-card__text-link {
    display: inline-flex;
    align-items: center;
    gap: 0.7em;
    color: var(--color-primary-dark);
    font-size: var(--font-size-base);
    font-weight: 700;
    text-transform: uppercase;
    text-decoration: none;
    line-height: 1.3;
}

.benefit-card__text-link span {
    border-bottom: 1px solid transparent;
}

.benefit-card__text-link:hover {
    color: var(--color-primary);
}

.benefit-card__text-link:hover span {
    border-bottom-color: currentColor;
}

.benefit-card__text-link--phone {
    gap: 0.5em;
}

@media (max-width: 1199px) {
    .benefits-cards--cols-4 .benefits-cards__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .benefits-cards--cols-2 .benefits-cards__grid,
    .benefits-cards--cols-3 .benefits-cards__grid,
    .benefits-cards--cols-4 .benefits-cards__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .benefit-card__title {
        font-size: var(--font-size-4xl);
    }
}

@media (max-width: 767px) {
    .benefits-cards--cols-2 .benefits-cards__grid,
    .benefits-cards--cols-3 .benefits-cards__grid,
    .benefits-cards--cols-4 .benefits-cards__grid {
        grid-template-columns: 1fr;
    }

    .benefit-card__title {
        font-size: var(--font-size-3xl);
    }

    .benefit-card__description p,
    .benefits-cards__intro p,
    .benefit-card__text-link {
        font-size: var(--font-size-base);
    }
}

/* ─── EVENTS PREVIEW ─────────────────────────────────────────────────────── */

.section-events-preview { padding-block: 6rem; }
.section-events-preview.section-bg-white      { background-color: var(--color-white); }
.section-events-preview.section-bg-gray-light { background-color: var(--color-light-gray); }
.section-events-preview.section-bg-primary-dark { background-color: var(--color-dark-blue); }
.section-events-preview.section-bg-primary    { background-color: var(--color-primary); }

.section-events-preview .inner-container {
    max-width: var(--content-size);
    margin-inline: auto;
    padding-inline: 3rem;
}

/* Header */
.events-preview__header { margin-block-end: 4rem; }
.events-preview__heading {
    color: var(--color-dark-blue);
    text-transform: uppercase;
    margin: 0 0 1rem;
    text-align: center;
}
.section-events-preview.section-bg-primary-dark .events-preview__heading,
.section-events-preview.section-bg-primary .events-preview__heading {
    color: var(--color-white);
}

/* Grid */
.events-preview__grid {
    display: grid;
/*    grid-template-columns: repeat(3, 1fr);*/
    grid-template-columns: repeat(auto-fit, minmax(350px, 33%));
    gap: 3rem;
    margin-block-end: 4rem;
    justify-content: center;
}

/* Card */
.event-card {
    background-color: var(--color-white);
    border-radius: 4px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
    transition: box-shadow 0.25s ease-out, transform 0.25s ease-out;
}

.event-card:hover {
    box-shadow: 0 6px 24px rgba(0,0,0,0.14);
    transform: translateY(-3px);
}

/* Image */
.event-card__img-link { display: block; text-decoration: none; }

.event-card__img-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%; /* 16:9 */
    overflow: hidden;
    background-color: var(--color-light-gray);
}

.event-card__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.3s ease-out;
}

.event-card:hover .event-card__img { transform: scale(1.04); }

.event-card__img-placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-4xl);
    color: var(--color-medium-gray);
}

/* Date badge overlay */
.event-card__date-badge {
    position: absolute;
    top: 1.5rem;
    left: 1.5rem;
    background-color: var(--color-cta);
    color: var(--color-white);
    border-radius: 4px;
    padding: 0.6rem 1rem;
    text-align: center;
    line-height: 1;
    min-width: 5rem;
}

.event-card__date-month {
    display: block;
    font-size: var(--font-size-xxs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.event-card__date-day {
    display: block;
    font-size: var(--font-size-md);
    font-weight: 900;
    line-height: 1.1;
}

/* Card body */
.event-card__body {
    padding: 2rem 2.5rem 2.5rem;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 0.8rem;
}

.event-card__date-text {
    font-size: var(--font-size-xs);
    color: var(--color-dark-gray);
    margin: 0;
    display: flex;
    align-items: center;
    gap: 0.6rem;
}

.event-card__date-text .fa-calendar {
    color: var(--color-cta);
    font-size: var(--font-size-xs);
}

.event-card__time {
    color: var(--color-dark-gray);
}

.event-card__title {
    font-size: var(--font-size-base);
    font-weight: 700;
    color: var(--color-dark-blue);
    margin: 0;
    text-transform: none;
    line-height: 1.3;
    flex: 1;
}

.event-card__title-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}

.event-card__title-link:hover { color: var(--color-cta); }

.event-card__cta {
    font-size: var(--font-size-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-primary);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: auto;
    padding-top: 1rem;
    transition: color 0.2s ease;
}

.event-card__cta:hover { color: var(--color-cta); }

/* Footer CTA */
.events-preview__footer { text-align: center; }

/* Empty state */
.events-preview--empty {
    padding: 4rem;
    text-align: center;
    background-color: var(--color-light-gray);
    border-radius: 4px;
    color: var(--color-dark-gray);
    font-size: 1.6rem;
}

/* Responsive */
@media (max-width: 900px) {
    .events-preview__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
    .events-preview__grid { grid-template-columns: 1fr; }
}

/* ─── BENEFITS GRID ──────────────────────────────────────────────────────── */
 
.benefits-grid { width: 100%; }
 
/* Empty state */
.benefits-grid--empty {
    padding: 4rem;
    text-align: center;
    background-color: var(--color-light-gray);
    color: var(--color-dark-gray);
}
 
/* Each benefit row — full width 50/50 split */
.benefit-row {
    display: flex;
    flex-direction: row;
    width: 100%;
    min-height: 480px;
}
 
.benefit-row--divider {
    border-top: 3px solid rgba(255,255,255,0.15);
}
 
/* Image column */
.benefit-row__image {
    flex: 1;
    min-width: 0;
    position: relative;
    overflow: hidden;
    min-height: 380px;
}
 
.benefit-row__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    position: absolute;
    inset: 0;
}
 
.benefit-row__img-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-light-gray);
    font-size: var(--font-size-6xl);
    color: var(--color-medium-gray);
    position: absolute;
    inset: 0;
}
 
/* Content column */
.benefit-row__content {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
}
 
/* Background variants */
.benefit-row__content.content-bg-white        { background-color: var(--color-white); }
.benefit-row__content.content-bg-gray-light   { background-color: var(--color-light-gray); }
.benefit-row__content.content-bg-primary      { background-color: var(--color-primary); }
.benefit-row__content.content-bg-primary-dark { background-color: var(--color-dark-blue); }
.benefit-row__content.content-bg-cta          { background-color: var(--color-cta); }
 
/* Content inner padding */
.benefit-content-inner {
    padding: 5rem 6rem;
    width: 100%;
}
 
/* Title */
.benefit-content__title {
    font-weight: 900;
    color: var(--color-white);
    text-transform: uppercase;
    margin: 0 0 2rem;
    line-height: 1.1;
}
 
.content-bg-white .benefit-content__title,
.content-bg-gray-light .benefit-content__title {
    color: var(--color-dark-blue);
}
 
/* Description */
.benefit-content__description {
    margin-block-end: 2.5rem;
}
 
.benefit-content__description p {
    line-height: 1.6;
    color: var(--color-white);
    margin-bottom: 1rem;
}
 
.content-bg-white .benefit-content__description p,
.content-bg-gray-light .benefit-content__description p {
    color: var(--color-text);
}
 
/* Phone */
.benefit-phone-link {
    font-weight: 600;
    color: var(--color-white);
    display: flex;
    align-items: center;
    gap: 0.8rem;
}
 
.content-bg-white .benefit-phone-link,
.content-bg-gray-light .benefit-phone-link {
    color: var(--color-dark-blue);
}

/* CTA buttons */
.benefit-content__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    align-items: center;
}
 
/* Primary CTA — white button on colored bg */
 
.content-bg-white .benefit-cta--primary,
.content-bg-gray-light .benefit-cta--primary {
    background-color: var(--color-cta) !important;
    color: var(--color-white) !important;
    border-color: var(--color-cta) !important;
}
 
.content-bg-white .benefit-cta--primary:hover,
.content-bg-gray-light .benefit-cta--primary:hover {
    background-color: var(--color-white) !important;
    color: var(--color-cta) !important;
}
 
/* Secondary CTA — outline style */
.benefit-cta--secondary {
    background-color: transparent !important;
    color: var(--color-white) !important;
    border: 2px solid rgba(255,255,255,0.7) !important;
}
 
.benefit-cta--secondary:hover {
    background-color: rgba(255,255,255,0.15) !important;
    border-color: var(--color-white) !important;
}
 
.content-bg-white .benefit-cta--secondary,
.content-bg-gray-light .benefit-cta--secondary {
    color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
}
 
.content-bg-white .benefit-cta--secondary:hover,
.content-bg-gray-light .benefit-cta--secondary:hover {
    background-color: var(--color-primary) !important;
    color: var(--color-white) !important;
}
 
/* ─── RESPONSIVE ─────────────────────────────────────────────────────────── */
 
@media (max-width: 900px) {
    .benefit-row {
        flex-direction: column !important;
        min-height: unset;
    }
 
    /* On mobile always show image first regardless of desktop order */
    .benefit-row.img-right { flex-direction: column !important; }
    .benefit-row.img-left  { flex-direction: column !important; }
 
    .benefit-row.img-right .benefit-row__content { order: 2; }
    .benefit-row.img-right .benefit-row__image   { order: 1; }
    .benefit-row.img-left  .benefit-row__image   { order: 1; }
    .benefit-row.img-left  .benefit-row__content { order: 2; }
 
    .benefit-row__image { min-height: 280px; }
 
    .benefit-content-inner { padding: 4rem 3rem; }
 
/*    .benefit-content__title { font-size: 2.8rem; }*/
}
 
@media (max-width: 480px) {
    .benefit-content-inner { padding: 3rem 2rem; }
/*    .benefit-content__title { font-size: 2.4rem; }*/
    .benefit-content__ctas { flex-direction: column; align-items: stretch; }
    .benefit-cta--primary,
    .benefit-cta--secondary { text-align: center; justify-content: center; width: 100%; }
}

/* ─── TRAVEL GRID ────────────────────────────────────────────────────────── */
 
.section-travel-grid { padding-block: 6rem; }
.section-travel-grid.section-bg-white      { background-color: #fff; }
.section-travel-grid.section-bg-gray-light { background-color: var(--color-light-gray); }
.section-travel-grid.section-bg-primary-dark { background-color: var(--color-dark-blue); }
.section-travel-grid.section-bg-primary    { background-color: var(--color-primary); }
 
.section-travel-grid .inner-container {
    max-width: var(--content-size);
    margin-inline: auto;
    padding-inline: 3rem;
}
 
/* Header */
.travel-grid__header { margin-block-end: 4rem; }
.travel-grid__heading {
    font-size: var(--font-size-3xl);
    font-weight: 900;
    color: var(--color-dark-blue);
    text-transform: uppercase;
    margin: 0 0 1rem;
}
 
/* Grid — 3 columns */
.travel-grid__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 3rem;
    margin-block-end: 4rem;
}
 
/* Trip card */
.trip-card {
    background-color: #fff;
    border-radius: 6px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
    transition: box-shadow 0.25s ease-out, transform 0.25s ease-out;
}
 
.trip-card:hover {
    box-shadow: 0 8px 28px rgba(0,0,0,0.14);
    transform: translateY(-4px);
}
 
/* Card image */
.trip-card__img-link { display: block; text-decoration: none; }
 
.trip-card__img-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 62%; /* slightly taller than 16:9 for travel feel */
    overflow: hidden;
    background-color: var(--color-light-gray);
}
 
.trip-card__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.4s ease-out;
}
 
.trip-card:hover .trip-card__img { transform: scale(1.06); }
 
.trip-card__img-placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-5xl);
    color: var(--color-medium-gray);
}
 
/* Date badge */
.trip-card__date-badge {
    position: absolute;
    top: 1.5rem;
    left: 1.5rem;
    background-color: var(--color-cta);
    color: #fff;
    border-radius: 4px;
    padding: 0.6rem 1.2rem;
    text-align: center;
    line-height: 1;
    min-width: 5.5rem;
}
 
.trip-card__date-month {
    display: block;
    font-size: var(--font-size-xxs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
 
.trip-card__date-day {
    display: block;
    font-size: var(--font-size-md);
    font-weight: 900;
    line-height: 1.1;
}
 
/* Card body */
.trip-card__body {
    padding: 2rem 2.5rem 2.5rem;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 1rem;
}
 
.trip-card__title {
    font-size: var(--font-size-md);
    font-weight: 900;
    color: var(--color-dark-blue);
    margin: 0;
    text-transform: uppercase;
    line-height: 1.2;
}
 
.trip-card__title-link {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s ease;
}
 
.trip-card__title-link:hover { color: var(--color-cta); }
 
/* Meta — date, duration, price */
.trip-card__meta {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
 
.trip-card__meta-item {
    font-size: var(--font-size-base);
    color: var(--color-dark-gray);
    display: flex;
    align-items: center;
    gap: 1.2rem;
}
 
.trip-card__meta-item .fas {
    color: var(--color-cta);
    font-size: var(--font-size-base);
    width: 1.4rem;
    text-align: center;
}
 
.trip-card__price {
    font-weight: 700;
    color: var(--color-dark-blue) !important;
    align-items: baseline;
}
.trip-card__price .price {
    font-size: var(--font-size-base);
    color: var(--color-red);
}
 
/* Short description */
.trip-card__desc {
    font-size: var(--font-size-base);
    color: var(--color-text);
    line-height: 1.5;
    margin: 0;
    flex: 1;
}
 
/* CTAs */
.trip-card__ctas {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    margin-top: auto;
    padding-top: 0.5rem;
    border-top: 1px solid var(--color-light-gray);
    flex-wrap: wrap;
}

.trip-card__cta.btn,
.trip-card__pdf-link {
    text-transform: uppercase;
    border-radius: 5px;
    padding: 1rem 1.5rem;
    font-weight: 700;
    font-size: var(--font-size-base);
    font-family: 'Open Sans', Helvetica, Arial, sans-serif;
    transition: all 0.25s ease-out;
    cursor: pointer;
    line-height: 1;
    background-color: var(--color-cta);
    color: var(--color-white);
    border: 2px solid var(--color-cta);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
    text-wrap: nowrap;
    justify-content: center;
    width: 100%;
}
.trip-card__cta.btn {
    order: 2;
}
.trip-card__pdf-link {
    color: var(--color-dark-gray);
    border: 2px solid var(--color-cta);
    background-color: var(--color-white);
    order: 1;
    font-size: var(--font-size-sm);
 }
.trip-card__pdf-link:hover { color: var(--color-cta); }
.trip-card__pdf-link .fa-file-pdf { color: #d32f2f; }
.trip-card__pdf-link:hover {
    transform: scale(1.1); 
}
/* Footer */
.travel-grid__footer { text-align: center; }
 
/* Empty state */
.travel-grid--empty {
    padding: 6rem 3rem;
    text-align: center;
    font-size: var(--font-size-base);
    color: var(--color-dark-gray);
}
 
/* ─── SINGLE TRIP PAGE ────────────────────────────────────────────────────── */
 
.single-trip { width: 100%; }
 
/* Hero — image with overlay title */
.single-trip__hero { width: 100%; }
 
.single-trip__img-wrapper {
    position: relative;
    width: 100%;
    height: 55vh;
    min-height: 380px;
    overflow: hidden;
}
 
.single-trip__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}
 
.single-trip__img-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.2) 60%, transparent 100%);
}
 
.single-trip__img-title-wrap {
    position: absolute;
    bottom: 4rem;
    left: 0;
    right: 0;
    padding-inline: 3rem;
    max-width: var(--content-size);
    margin-inline: auto;
}
 
.single-trip__img-title {
    color: #fff;
    font-size: var(--font-size-5xl);
    font-weight: 900;
    text-transform: uppercase;
    text-shadow: 0 2px 8px rgba(0,0,0,0.4);
    margin: 0;
    line-height: 1.1;
}
 
/* Video hero */
.single-trip__video-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 50%;
    height: 0;
    overflow: hidden;
    background-color: #000;
}
 
.single-trip__video-iframe,
.single-trip__video-file {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: none;
    display: block;
}
 
/* Content area */
.single-trip__content-wrap {
    padding-block: 5rem;
}
 
.single-trip__content-wrap .inner-container {
    max-width: var(--content-size);
    margin-inline: auto;
    padding-inline: 3rem;
}
 
/* Two-column layout — main content + sidebar */
.single-trip__layout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 5rem;
    align-items: start;
}
 
/* Main content */
.single-trip__title {
    font-size: var(--font-size-4xl);
    font-weight: 900;
    color: var(--color-dark-blue);
    text-transform: uppercase;
    margin: 0 0 2rem;
    line-height: 1.1;
}
 
.single-trip__short-desc {
    font-size: var(--font-size-base);
    font-weight: 600;
    color: var(--color-primary);
    margin: 0 0 2.5rem;
    line-height: 1.4;
}
 
.single-trip__description { font-size: var(--font-size-base); line-height: 1.7; }
.single-trip__description p { margin-bottom: 1.8rem; }
 
/* Sidebar card */
.single-trip__sidebar-card {
    background-color: var(--color-light-gray);
    border-radius: 6px;
    padding: 3rem 3rem 4rem;
    position: sticky;
    top: 120px; /* clears sticky header */
}
 
.single-trip__sidebar-item {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    margin-block-end: 2rem;
    padding-block-end: 2rem;
    border-bottom: 1px solid var(--color-medium-gray);
}
 
.single-trip__sidebar-label {
    font-size: var(--font-size-base);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-dark-gray);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}
 
.single-trip__sidebar-label .fas { color: var(--color-cta); }
 
.single-trip__sidebar-value {
    font-size: var(--font-size-base);
    font-weight: 600;
    color: var(--color-dark-blue);
}
 
.single-trip__price {
    font-size:  var(--font-size-md) !important;
    font-weight: 900 !important;
    color: var(--color-cta) !important;
}
 
.single-trip__sidebar-ctas {
    display: flex;
    flex-direction: column;
    gap: 1.2rem;
    margin-block-end: 2rem;
}
 
.single-trip__pdf-btn,
.single-trip__book-btn {
    width: 100%;
    justify-content: center;
    text-align: center;
}
.single-trip__pdf-btn {
    text-decoration: none;
    padding: 0;
    margin-bottom: 15px;
    text-align: left;
}
 
.single-trip__note {
    font-size: var(--font-size-sm);
    color: var(--color-dark-gray);
    line-height: 1.5;
    margin: 0;
    display: flex;
    gap: 0.6rem;
}
 
.single-trip__note .fa-plane { color: var(--color-cta); margin-top: 0.2rem; flex-shrink: 0; }
 
.single-trip__back-link {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    margin-block-start: 2rem;
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
    transition: color 0.2s ease;
    z-index: 1;
    position: relative;
}
 
.single-trip__back-link:hover { color: var(--color-cta); }
 
/* ─── RESPONSIVE ─────────────────────────────────────────────────────────── */
 
@media (max-width: 1024px) {
    .travel-grid__grid { grid-template-columns: repeat(2, 1fr); }
    .single-trip__layout { grid-template-columns: 1fr; }
    .single-trip__sidebar-card { position: static; }
}
 
@media (max-width: 600px) {
    .travel-grid__grid { grid-template-columns: 1fr; }
    .single-trip__img-wrapper { height: 40vh; }
    .single-trip__img-title { font-size: var(--font-size-2xl); }
    .single-trip__video-wrapper { padding-bottom: 56.25%; }
}

/* ─── FOOTER ─────────────────────────────────────────────────────────────── */

footer {
	margin: 0;
}
footer hr {
    border-color: var(--color-white);
    margin-left: 0;
}
footer address, 
footer a, 
footer li, 
footer p {
    font-size: var(--font-size-sm);
    font-weight: normal;
    line-height: 1.25;
}
footer address {
    margin-top: 0;
}
footer a { 
    color: var(--color-white); 
    text-decoration: none; 
    border-bottom: 1px solid var(--color-white);
}
footer a:hover { 
    text-decoration: none; 
    color: var(--color-white);
    border-color: transparent;
}
#primary-footer { 
    background-color: #121212; 
    color: var(--color-white); 
    padding-block-start: var(--space-50); 
}
#primary-footer .inner-container { 
    display: grid; 
    grid-template-columns: repeat(3, 1fr); 
    gap: var(--space-50); 
    max-width: var(--wide-size); 
    margin-inline: auto; 
    padding-inline: var(--space-30); 
    padding-block-end: var(--space-50); 
}
.footer-col { 
    display: flex; 
    flex-direction: column; 
}
.office-contact-info address { 
    font-weight: normal;
    font-style: normal; 
    color: var(--color-white); 
    line-height: 1.25; 
    margin-block-end: var(--space-20); 
    font-size: var(--font-size-sm); 
}
.office-contact-info address strong {
    text-transform: uppercase;
}

.office-contact-info .link-wrapper {margin-block: 0.25rem; color: var(--color-white); }


.office-contact-info .tel-link, 
.office-contact-info .email-link {
    border: 0;
}
.office-contact-info .tel-link:hover, 
.office-contact-info .email-link:hover { 
    color: var(--color-white);
}
.additional-footer-info-wrapper p, 
.additional-footer-info p { 
    color: var(--color-white); 
    line-height: 1.7; 
    margin-block: 0 var(--space-20); 
}
.additional-footer-info a:hover, 
.additional-footer-info-wrapper a:hover { 
    color: var(--color-white); 
}
.footer-menu { 
	margin-block-end: var(--space-30); 
	display: flex;
	gap: 10px;
	margin-top: 0;
}
.footer-menu li { margin-block: 0.35rem; }

.social-links { 
    display: flex; 
    flex-wrap: wrap; 
    gap: var(--space-20); 
    margin: 0; 
    padding: 0; 
}
.social-links li { 
    list-style: none; 
}
.social-link { 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    width: 30px; 
    height: 30px; 
    border-radius: 50%; 
    background-color: transparent; 
    color: var(--color-white); 
    text-decoration: none; 
    transition: background-color 0.25s ease, color 0.25s ease; 
    border: none;
}
.social-link:hover { 
    background-color: transparent; 
    color: var(--color-white); 
    opacity: 0.5;
}
.copyright-wrapper { 
    background-color: #121212; 
    text-align: left; 
    max-width: 1400px;
    padding: 0 30px 30px;
    margin: 20px auto 0;
}
.copyright { 
    color: var(--color-white); 
    margin-bottom: 0;

}
@media (max-width: 1024px) {
	.footer-menu { 
		flex-direction: column;
	}
}
@media (max-width: 768px) { 
    #primary-footer {
        padding-top: 30px;
        padding-bottom: 0;
    }
    #primary-footer .inner-container { 
        grid-template-columns: 1fr; 
        gap: var(--space-40); 
        padding: 0 15px;
    } 
    #primary-footer hr {
        display: none;
    }
    footer .footer-col {
        max-width: 100%;
        width: 100%;
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    footer .office-contact-info, 
    footer .additional-footer-info-wrapper,
    .copyright-wrapper {
        width: 100%;
        max-width: 350px;
    }
    .social-links { 
        gap: var(--space-10); 
    }
    .copyright-wrapper {
        text-align: center;
        padding-top: 0;
        margin-top: 10px;
    } 
    .copyright {
        font-size: var(--font-size-xs);
    }
}


/* TODO: need to incorporate these styles into proper places above. This is quick overwrites to move dev along */
/* ─── HOT FIXES & MOBILE FIXES — targeted additions ─────────────────────────────────── */

/* Icon cards — auto-fit so 1 or 2 cards fill available space correctly */
.icon-cards-wrapper.icon-cards-3 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 30%));
    justify-content: center;
    gap: var(--space-40);
    margin-block-start: var(--space-40);
}

/* Contact card email — prevent long addresses blowing out the grid */
.contact-card {
    min-width: 0;
    overflow: hidden;
}

.contact-card__content a[href^="mailto"] {
    word-break: break-all;
    overflow-wrap: break-word;
}

/* Hero banner — interior pages (50vh) need minimum height 
   to prevent heading disappearing behind sticky nav */
.section-hero[style*="50vh"] {
    min-height: clamp(420px, calc(50vh + 130px), 680px);
}

/* Interior hero — scale heading down on 50vh banners at mid screens */
@media (max-width: 1199px) {
    .section-hero[style*="50vh"] .hero-slide__heading {
        font-size: var(--font-size-7xl); /* 70px — actual variable */
    }
}

/* Section padding — reduce on mobile where base sizes
   make var(--space-60) = 60px feel very heavy on small screens */
@media (max-width: 767px) {

    .section-intro,
    .section-icon-cards,
    .section-highlight-cards,
    .section-accordion,
    .section-membership-pricing,
    .section-region-links,
    .section-contact-cards,
    .section-social-links,
    .section-staff-members,
    .section-benefits-cards,
    .section-chapter-details,
    .section-custom-data-table {
        padding-block: var(--space-40); /* 40px instead of 60px */
    }

    .icon-cards-wrapper.icon-cards-3 {
         grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    }
}

@media (max-width: 480px) {
    /* This catches anything missed at very small phones */
    .cta-banner__buttons {
        flex-direction: column;
        align-items: stretch;
    }

    .cta-banner__btn {
        justify-content: center;
        width: 100%;
    }
}

/* ─── CONTACT PAGE — GRAVITY FORMS ──────────────────────────────────────── */

/* Make all contact form fields uniform height and consistent appearance */
.section-newsletter-signup .gform_wrapper,
.section-newsletter-signup .gform_wrapper {
    width: 100%;
}


/* Uniform field sizing */
.section-newsletter-signup .ginput_container input,
.section-newsletter-signup .ginput_container textarea,
.section-newsletter-signup .ginput_container select {
    width: 100% !important;
    padding: 1.4rem 1.6rem !important;
    height: auto !important;
    min-height: 5.5rem !important;
    font-size: var(--font-size-base) !important;
    font-family: var(--font-family-primary) !important;
    border: 2px solid rgba(255, 255, 255, 0.6) !important;
    border-radius: 4px !important;
    background-color: var(--color-white) !important;
    color: var(--color-text) !important;
    box-sizing: border-box !important;
    transition: border-color 0.2s ease !important;
}

.section-newsletter-signup .ginput_container input:focus,
.section-newsletter-signup .ginput_container textarea:focus {
    outline: none !important;
    border-color: var(--color-white) !important;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.25) !important;
}

/* Textarea taller than inputs */
.section-newsletter-signup .ginput_container textarea {
    min-height: 16rem !important;
    resize: vertical !important;
}

/* 2-column layout for First + Last name row */
.section-newsletter-signup .gform_fields {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 1.6rem 2rem !important;
}

/* Full width fields — email, phone, message, submit */
.section-newsletter-signup .gfield--width-full,
.section-newsletter-signup .gfield:has(textarea),
.section-newsletter-signup .gfield_recaptcha,
.section-newsletter-signup .gform_footer,
.section-newsletter-signup .gform_page_footer {
    grid-column: 1 / -1 !important;
}

/* Hide labels — placeholders are sufficient */
.section-newsletter-signup .gfield_label {
    display: none !important;
}

/* Submit button */
.section-newsletter-signup .gform_button,
.section-newsletter-signup input[type="submit"] {
    background-color: var(--color-cta) !important;
    color: var(--color-white) !important;
    border: 2px solid var(--color-white) !important;
    border-radius: 5px !important;
    padding: 1.8rem 4rem !important;
    font-size: var(--font-size-base) !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    font-family: var(--font-family-primary) !important;
    cursor: pointer !important;
    transition: all 0.25s ease !important;
    width: auto !important;
    min-width: 200px !important;
}

.section-newsletter-signup .gform_button:hover {
    background-color: var(--color-white) !important;
    color: var(--color-cta) !important;
    transform: scale(1.05) !important;
}

/* Mobile — stack all fields single column */
@media (max-width: 600px) {
    .section-newsletter-signup .gform_fields {
        grid-template-columns: 1fr !important;
    }
}

/** DRAW ATTENTION PLUGIN OVERRIDES **/
.hotspots-placeholder {
    display: none; /* this hides image title and 'more info' text content, which isn't necessary for the average clickable Draw Attention images */
}