/*
Theme Name: Hello AMBA
Theme URI:
Author: Your Name
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-xs:   1.4rem;  /* 14px */
    --font-size-sm:   1.6rem;  /* 16px */
    --font-size-base: 1.8rem;  /* 18px */
    --font-size-md:   2rem;  /* 20px */
    --font-size-lg:   2.4rem;    /* 24px */
    --font-size-xl:   2.8rem;  /* 28px */
    --font-size-2xl:  3rem;    /* 30px */
    --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 */

    /* ── 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:    	#518996;
    --color-primary-dark:  	#1a4e64;
    --color-primary-light: 	#8cb7c1;
    --color-cta:        	#e09607;
    --color-highlight:  	#e09607;
    --color-error:     		#e6001d;
    --color-red:        	#e6001d;
    --color-red-dark: 		#ad0d0d;
    --color-preheader:  	#1a4e64;
    --color-nav:        	#518996;
    --color-nav-border: 	#283451;
    --color-text:       	#333333;
    --color-gray-light: 	#dddddd;
    --color-gray-dark: 		#4c4c4c;
    --color-gray-medium:	#999999;
    --color-white:			#ffffff;
}
section {
    margin-top: 0!important;
    margin-bottom: 0;
}
.section-bg-white { background-color: #ffffff; }
.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-gray-light h2,
.section-bg-gray-light h3 {
    color: var(--color-primary-dark)!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);
}

.pt-30 {
    padding-top: 30px!important;
}
.pb-30 {
    padding-bottom: 30px!important;
}
*, *::before, *::after { box-sizing: border-box; }

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

body {
    font-family: var(--font-family-primary);
    font-size: 1.8rem; /* 18px */
    line-height: 1.35;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
    color: #333;
}
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: 10rem;  font-weight: 900; } /* 100px */
h2 { font-size: 5.5rem; font-weight: 700; } /* 55px  */
h3 { font-size: 4rem;   font-weight: 700; } /* 40px  */
h4 { font-size: 3rem;   font-weight: 700; } /* 30px  */
h5 { font-size: 2.5rem; font-weight: 700; } /* 25px  */
h6 { font-size: 2rem;   font-weight: 700; } /* 20px  */

/* Paragraph-level elements */
p, ul, ol, li, address { font-size: 1.8rem; } /* 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: 2rem; /* 20px */
    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: #fff;
    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: #fff;
}
.btn-primary,
button.primary, 
.wp-element-button,
form input.gform_button,
a.btn {
    background-color: var(--color-cta);
    color: #fff;
    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); 
}
.btn-white,
button.white {
    background-color: var(--color-white);
    color: var(--color-cta);
    border-color: var(--color-white);
}
.btn-white:hover,
button.white:hover {
    background-color: var(--color-cta);
    color: var(--color-white);
    border-color: var(--color-cta);
}
.btn-white.btn-ghost,
button.btn-ghost.white {
    background-color: var(--color-transparent);
    color: var(--color-white);
    border-color: var(--color-white);
}
.btn-white.btn-ghost:hover,
button.btn-ghost.white:hover,
.menu-preheader-nav-container li.btn-white.btn-ghost:hover a {
    background-color: var(--color-white);
    color: var(--color-cta);
    border-color: var(--color-white);
}
@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: 2.5rem !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; }

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.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: 7rem; }  /* 70px */
    h2 { font-size: 4.5rem; } /* 45px */
    h3 { font-size: 3.2rem; } /* 32px */
    h4 { font-size: 2.6rem; } /* 26px */
}
@media (max-width: 767px) {
    h1 { font-size: 5rem; }  /* 50px */
    h2 { font-size: 3.6rem; } /* 36px */
    h3 { font-size: 2.8rem; } /* 28px */
    h4 { font-size: 2.2rem; } /* 22px */
    p, ul, ol, li, address { font-size: 1.6rem; } /* 16px on mobile */
}

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

#primary-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
}
#primary-header.logo-overlap .nav-wrapper .inner-container {
    position: relative;
}
#primary-header.logo-overlap .logo-wrapper {
    position: absolute;
    left: 30px;
    height: 100%;
    min-height: 135px;
    bottom: 10px;
}

/*.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: 1400px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
}

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

.preheader {
    background-color: rgb(58, 122, 158);
    color: #fff;
}

.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: 20px;
    margin-right: 15px;
    background-color: transparent;
    color: #fff !important;
    text-decoration: none;
    white-space: nowrap;
    border: none;
    cursor: pointer;
    transition: all 0.25s ease-out;
    display: inline-flex;
    align-items: center;
}

.preheader .tel-link .tel-link__icon {
    display: none;
}

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

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

.menu-preheader-nav-container a {
    color: #fff;
    font-size: 14px;
    display: block;
    text-decoration: none;
    transition: all 0.25s ease-out;
    text-transform: uppercase;
}

.menu-preheader-nav-container li:hover a {
    color: rgb(58, 122, 158);
}

/* Search toggle */
#search-toggle {
    border: none;
    color: #fff;
    font-weight: 700;
    font-size: 18px;
/*    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: 1.25;
}

/* PREHEADER CTA Buttons (Join / membership CTA / Donate buttons) */
.preheader .btn {
    margin-left: 15px;
}
.preheader a.btn-primary,
.preheader .btn.btn-primary,
.preheader .btn-white {
    border-radius: 5px;
    border: 2px solid #fff;
    font-size: 15px;
    padding: 7px 20px;
    text-transform: uppercase;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.25s ease-out;
}
.preheader a.btn-primary,
.preheader .btn.btn-primary {
    background-color: var(--color-highlight);
    color: #fff;
}

.preheader a.btn-primary:hover,
.preheader .btn.btn-primary:hover {
    background-color: #fff;
    color: var(--color-highlight);
    transform: scale(1.05);
}

/* ─── 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: 3rem;
    text-align: left;
    border: 1px solid #fff;
    line-height: 1.5;
    color: #fff;
    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: #fff;
}

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

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

#global-search-form .global-search-form-container .dialog-close-button {
    font-size: 3rem;
    color: #fff;
    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: rgb(35,76,99);
    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;
}
#primary-header.logo-overlap .nav-wrapper .inner-container {
    justify-content: flex-end;
}

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

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

.logo-wrapper .logo {
    width: auto;
    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: 3rem;
    color: #fff;
    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-white);
    white-space: normal;
    max-width: 195px;
    font-size: 18px;
    line-height: 100%;
    text-align: center;
}

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

#primary-nav-menu > li > a {
    color: #fff;
    text-transform: uppercase;
    text-align: center;
    border: none;
    padding: 0 15px;
    font-weight: 600;
/*    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: #fff;
    list-style: none;
    padding: 30px 15px;
    margin: 0;
    position: absolute;
    top: 100px;
    left: -15px;
    min-width: 250px;
    width: 100%;
/*    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;
}

@media(min-width: 998px) {
    #primary-nav-menu > li:last-of-type .sub-menu {
        left: -155px;
    }
}

#primary-nav-menu .sub-menu li {
    border-left: none;
    text-align: left;
    padding-left: 0 15px;
    max-width: none;
    height: auto;
    margin: 0 0 20px;
    font-size: 16px;
    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-highlight);
    color: var(--color-highlight);
}

/* 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: 1.4rem;
}

#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;
    }
    #primary-header.logo-overlap .logo-wrapper {
        min-height: 95px;
        left: 15px;
    }
    .logo-wrapper {
        margin-bottom: 0;
        margin-right: 25px;
        max-width: 350px;
        width: auto;
        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-nav);
        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: 1.6rem;
        font-weight: 700;
        color: #fff;
        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: 1.6rem;
        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: #fff;
        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-highlight);
        color: #fff;
    }

    /* 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: #fff;
    }

    #primary-nav #primary-nav-menu .sub-menu li {
        margin: 0 0 10px;
        padding-left: 0;
        font-size: 1.4rem;
        color: #fff;
    }

    #primary-nav #primary-nav-menu .sub-menu a {
        font-size: 1.2rem;
        color: #fff;
    }

    #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;
    }

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

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

    .preheader .tel-link {
        font-size: 1.4rem !important;
    }
}

@media (max-width: 600px) {
    .preheader a.btn-primary,
    .preheader .btn.btn-primary,
    .preheader .btn-white {
        margin-left: 5px;
        padding: 7px 10px;
    } 
    .preheader .tel-link {
        margin-right: 0;
    }

    .preheader .tel-link .tel-link__icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 1.8rem;
        min-width: 25px;
        min-height: 25px;
    }

    .preheader .tel-link .tel-link__text {
        display: none;
    }
}

@media (max-width: 767px) {
    #search-toggle {
        font-size: 1.6rem !important;
    }

    .preheader .btn {
        font-size: 1.2rem !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: 2rem;
    }

    #global-search-form .global-search-form-container .dialog-close-button {
        font-size: 2rem;
        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: var(--space-40); 
	background-color: #fff; 
	border: 2px solid var(--color-gray-light);
	border-top: 10px solid var(--color-cta);
}
.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;
    width: 100%;
    min-height: 480px;
    max-width: var(--wide-size);
    margin-inline: auto;
}
.section-text-image.width-boxed .section-text-image__inner {
	display: flex;
	flex-direction: row;
	width: 100%;
	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: var(--space-60) var(--space-30) 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.section-bg-primary .section-text-image__heading h2,
.section-text-image.section-bg-primary-dark .section-text-image__heading h2,
.section-text-image.section-bg-primary-light .section-text-image__heading h2,
.section-text-image.section-bg-primary h3,
.section-text-image.section-bg-primary-dark h3,
.section-text-image.section-bg-primary-light h3 {
    color: var(--color-white);
}
.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;
}
.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; }
.text-image__shortcode { width: 100%; height: 100%; }
.text-image__shortcode 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: #ffffff; }
.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;
    }
}

/* ─── CURRENT NEWSLETTER ISSUE ───────────────────────────────────────────── */

.current-newsletter__list-label {
    font-weight: 700;
    color: var(--color-primary-dark);
    margin: 0 0 0.5rem;
}

.current-newsletter__list {
    margin: 0;
    padding-left: 1.8rem;
}

.current-newsletter__list li {
    font-size: var(--font-size-base);
    line-height: 1.6;
    color: var(--color-text);
    margin-bottom: 0.6rem;
}

.current-newsletter__list li:last-child {
    margin-bottom: 0;
}

.content-bg-primary .current-newsletter__list-label,
.content-bg-primary-light .current-newsletter__list-label,
.content-bg-primary-dark .current-newsletter__list-label,
.content-bg-primary .current-newsletter__list li,
.content-bg-primary-light .current-newsletter__list li,
.content-bg-primary-dark .current-newsletter__list li {
    color: var(--color-white);
}

/* ─── 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: #fff; }
.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: #fff; 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: 5rem; color: var(--color-white); opacity: 0.7; flex-shrink: 0; line-height: 1; margin-block-start: 0.2em; }
.cta-banner__heading { color: #fff; font-size: var(--font-size-4xl); font-weight: 700; margin-block-end: var(--space-30); line-height: 1.2; }
.cta-banner__body { 
	color: #fff; 
	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-size: 2.5rem;
    font-weight: 500;
    line-height: 1.35;
}
.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: #fff; border-color: #fff; }
.cta-banner__btn.btn--outline:hover { background-color: #fff; color: var(--color-primary-dark); }
.cta-banner__btn.btn--text { background-color: transparent; color: #fff; 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 { font-size: var(--font-size-lg); }
    .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: 4rem;
	}
}
@media (max-width: 550px) {
	.section-banner-quote .quote-mark {
		font-size: 4rem;
	}
}

/* ─── 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: #ffffff; }
.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: #fff; }
.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: #fff; }
.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: #ffffff; }
.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: #fff; }
.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: #fff; }
.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: #fff; 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-lg)!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; container-type: size; }
.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__bg-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; z-index: 0; }
.hero-slide__bg-video-wrap { position: absolute; inset: 0; width: 100%; height: 100%; overflow: hidden; z-index: 0; }
.hero-slide__bg-video-embed {
    position: absolute;
    top: 50%;
    left: 50%;
    width: max(100cqw, 177.78cqh);
    height: max(56.25cqw, 100cqh);
    transform: translate(-50%, -50%) scale(1.02); /* slight overscan guards against subpixel rounding gaps at the crop edges */
    border: 0;
    pointer-events: none;
}
.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: #fff;
    font-size: 7rem; /* 70px */
    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;
}
@media (max-width: 1099px) {
    .hero-slide__heading {
        font-size: 5rem; /* 50px */
    }
}
.hero-slide__subtext {
    color: #fff;
    font-size: 1.8rem; /* 18px */
    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: #fff;
    border: 2px solid var(--color-highlight);
    border-radius: 5px;
    padding: 1.5rem 2.5rem; /* 15px 25px */
    font-family: var(--wp--preset--font-family--primary);
    font-size: 2rem; /* 20px */
    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: 4rem; 
    	margin-bottom: 10px;
    }
    .hero-slide__subtext { 
    	font-size: 1.6rem; 
    	margin-bottom: 10px;
    }
    .hero-slide__button { 
    	font-size: 1.4rem; 
    	padding: 1.2rem; 
    }
    a.hero-slide__inner { 
		cursor: pointer; 
		padding-left: 15px;
		padding-right: 15px;
	}
}
@media (max-width: 480px) {
    .hero-slide__heading { font-size: 3.6rem; } /* 36px */
}

/* ─── 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: #ffffff; }
.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: #fff; }
.section-intro.section-bg-primary { 
    background-color: var(--color-primary); 
}
.section-intro.section-bg-primary h2, 
.section-intro.section-bg-primary p { 
    color: #fff; 
}
.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: 6rem;
    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-lg); 
    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: #ffffff; }
.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: #fff; }
.section-accordion.section-bg-primary { background-color: var(--color-primary); }
.section-accordion.section-bg-primary .accordion__heading, 
.section-accordion.section-bg-primary .accordion__title,
.section-accordion.section-bg-primary-light .accordion__heading,
.section-accordion.section-bg-primary-light .accordion__title,
.section-accordion.section-bg-primary-dark .accordion__heading,
.section-accordion.section-bg-primary-dark .accordion__title { 
    color: #fff; 
}

.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__intro {
	max-width: 900px;
	margin-inline: auto;
	margin-block-end: var(--space-30);
}
.accordion__intro p,
.accordion__intro a,
.accordion__intro li {
    font-size: var(--font-size-lg);
}
.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,
.accordion__trigger.is-active { 
    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); 
}
.section-accordion.section-bg-primary .accordion__trigger:hover .accordion__title,
.section-accordion.section-bg-primary .accordion__trigger.is-active .accordion__title,
.section-accordion.section-bg-primary-light .accordion__trigger:hover .accordion__title,
.section-accordion.section-bg-primary-light .accordion__trigger.is-active .accordion__title,
.section-accordion.section-bg-primary-dark .accordion__trigger:hover .accordion__title,
.section-accordion.section-bg-primary-dark .accordion__trigger.is-active .accordion__title {
    color: var(--color-primary-white); 
}
.accordion__icon { 
	display: flex; 
	align-items: center; 
	flex-shrink: 0; 
	color: var(--color-primary); 
	font-size: 2rem; 
	transition: all 0.15s ease; 
}
.section-accordion.section-bg-primary .accordion__icon,
.section-accordion.section-bg-primary-light .accordion__icon,
.section-accordion.section-bg-primary-dark .accordion__icon {
    color: var(--color--white);
}
.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 { overflow: hidden; max-height: 0; transition: max-height 0.3s ease; }
.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); }

.section-accordion.section-bg-primary .accordion__panel-inner p,
.section-accordion.section-bg-primary-light .accordion__panel-inner p,
.section-accordion.section-bg-primary-dark .accordion__panel-inner p,
.section-accordion.section-bg-primary .accordion__panel-inner a,
.section-accordion.section-bg-primary-light .accordion__panel-inner a,
.section-accordion.section-bg-primary-dark .accordion__panel-inner a {
    color: var(--color-white);
}
@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);; 
	}
}
@media (max-width: 550px) {
    .accordion__title {
    	font-size: var(--font-size-base);
    }
    .accordion__icon {
		font-size: var(--font-size-base);;
	}
}

/* ─── NEWSLETTER ARCHIVE ─────────────────────────────────────────────────── */

.newsletter-archive__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.newsletter-archive__list li {
    font-size: var(--font-size-base);
}

/* ─── TEXT BLOCK ─────────────────────────────────────────────────────────── */

.section-text-block {
    padding-block: var(--space-60);
    margin-top: 0;
}
.section-text-block .inner-container { max-width: var(--content-size); margin-inline: auto; padding-inline: var(--space-30); }
.section-text-block.section-bg-white { background-color: #ffffff; }
.section-text-block.section-bg-gray-light { background-color: var(--color-gray-light); }
.section-text-block.section-bg-primary,
.section-text-block.section-bg-primary-light,
.section-text-block.section-bg-primary-dark {
    background-color: var(--color-primary);
}
.section-text-block.section-bg-primary-light { background-color: var(--color-primary-light); }
.section-text-block.section-bg-primary-dark { background-color: var(--color-primary-dark); }
.section-text-block.section-bg-primary .text-block__heading,
.section-text-block.section-bg-primary-light .text-block__heading,
.section-text-block.section-bg-primary-dark .text-block__heading,
.section-text-block.section-bg-primary .text-block__content p,
.section-text-block.section-bg-primary-light .text-block__content p,
.section-text-block.section-bg-primary-dark .text-block__content p,
.section-text-block.section-bg-primary .text-block__content a,
.section-text-block.section-bg-primary-light .text-block__content a,
.section-text-block.section-bg-primary-dark .text-block__content a {
    color: #fff;
}

.text-block__list {
    display: flex;
    flex-direction: column;
    gap: var(--space-40);
}
.text-block__heading {
    font-weight: 700;
    color: var(--color-primary-light);
    margin-block-end: var(--space-20);
}
.text-block__content p { font-size: var(--font-size-base); line-height: 1.7; color: var(--color-text); margin-block-end: var(--space-20); }
.text-block__content p:last-child { margin-block-end: 0; }
.text-block__content strong { color: var(--color-primary-dark); }
.text-block__content a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 2px; transition: all 0.25s ease; }
.text-block__content a:hover { color: var(--color-primary-dark); }

/* ─── FORM EMBED ─────────────────────────────────────────────────────────── */

.section-form-embed {
    padding-block: var(--space-60);
    margin-top: 0;
}
.section-form-embed .inner-container { max-width: var(--content-size); margin-inline: auto; padding-inline: var(--space-30); }
.section-form-embed.section-bg-white { background-color: #ffffff; }
.section-form-embed.section-bg-gray-light { background-color: var(--color-gray-light); }
.section-form-embed.section-bg-primary,
.section-form-embed.section-bg-primary-light,
.section-form-embed.section-bg-primary-dark {
    background-color: var(--color-primary);
}
.section-form-embed.section-bg-primary-light { background-color: var(--color-primary-light); }
.section-form-embed.section-bg-primary-dark { background-color: var(--color-primary-dark); }
.section-form-embed.section-bg-primary .form-embed__heading,
.section-form-embed.section-bg-primary-light .form-embed__heading,
.section-form-embed.section-bg-primary-dark .form-embed__heading,
.section-form-embed.section-bg-primary .form-embed__content p,
.section-form-embed.section-bg-primary-light .form-embed__content p,
.section-form-embed.section-bg-primary-dark .form-embed__content p,
.section-form-embed.section-bg-primary .form-embed__content a,
.section-form-embed.section-bg-primary-light .form-embed__content a,
.section-form-embed.section-bg-primary-dark .form-embed__content a {
    color: #fff;
}

.form-embed__header {
    max-width: 900px;
    margin-inline: auto;
    margin-block-end: var(--space-40);
    text-align: center;
}
.form-embed__heading {
    font-weight: 700;
    color: var(--color-primary-light);
    margin-block-end: var(--space-20);
}
.form-embed__content p { font-size: var(--font-size-base); line-height: 1.7; color: var(--color-text); margin-block-end: var(--space-20); }
.form-embed__content p:last-child { margin-block-end: 0; }
.form-embed__content strong { color: var(--color-primary-dark); }
.form-embed__content a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 2px; transition: all 0.25s ease; }
.form-embed__content a:hover { color: var(--color-primary-dark); }

.form-embed__form {
    max-width: 900px;
    margin-inline: auto;
}

/* ─── 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: 16px;
    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: #fff !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: #fff !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: 1.3rem !important;
}

/* Date tag numbers */
.tribe-events-calendar-list__event-date-tag-daynum {
    color: var(--color-primary-dark) !important;
    font-weight: 900 !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: 1.6rem !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: 1.4rem !important;
    line-height: 1.5 !important;
}

/* Also reduce the overall tooltip font base */
.tribe-events-calendar-month__calendar-event-tooltip {
    font-size: 1.4rem !important;
}

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

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

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

/* Date/time line below title */
.tribe-events-schedule {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.5rem;
    font-size: 2.2rem;
    color: var(--color-gray-dark);
    margin-block-end: 3rem;
    padding-block-end: 2rem;
    border-bottom: 2px solid var(--color-gray-light);
}

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

/* Event description body */
.tribe-events-single-section.tribe-events-event-meta + .tribe-events-single-section,
.tribe-events-content {
    font-size: 2.2rem;
    line-height: 1.6;
    color: var(--color-text);
    margin-block-end: 4rem;
}

.tribe-events-content p {
    font-size: 2.2rem;
    margin-bottom: 2rem;
}

/* 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: #fff !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;
    width: 100% !important;
    padding-block: 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: 2.8rem !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: 2.2rem;
    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: 2.2rem;
    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 — on events with no Organizer, the map group ends up as the
   grid's last child, which the edge-anchoring rule above would otherwise
   shrink to content width and pin to the column's end edge. Force it to
   fill its grid area instead. */
.tribe-events-meta-group-gmap {
    justify-self: stretch !important;
    width: 100% !important;
}

.tribe-events-venue-map {
    width: 100% !important;
    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-gray-light);
    padding-block-start: 3rem;
    margin-block-start: 4rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.tribe-events-nav-pagination a {
    color: var(--color-primary) !important;
    font-weight: 700;
    font-size: 2.2rem;
    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: 2.2rem;
    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);
}

/* 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;
}

/* 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: 2.2rem !important;
}

/* RSVP buttons (shown wherever the event has a Website URL) — text styling
   matches the site's standard CTA buttons 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: 2.2rem;
    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: 3.6rem;
    }
    .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;
    }
    .tribe-events-single-section.tribe-events-event-meta {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    /* 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%;
    }
}

/* ─── 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: 1.6rem;
}

@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: #fff;
    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: 5.5rem;
    color: var(--color-primary-light);
    margin-block-end: 0.5rem;
    line-height: 1;
}

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

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

.contact-card__content a,
.contact-card__content .tel-link,
.contact-card__content .email-link {
    color: var(--color-primary-dark);
    text-decoration: none;
    transition: color 0.2s ease;
    text-align: center;
    display: block;
    font-weight: bold;
}

.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: 1.6rem;
    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: #fff;
}

/* 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: 3rem;
    }
    .contact-card__heading {
        font-size: 2.2rem;
    }
    .contact-card__content {
        font-size: 1.4rem;
    }
}
/* ─── 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-between;
    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: 5rem;
    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: 1.8rem;
    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: 1.6rem;
    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: #fff;
}

@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: 2.4rem; }
    .social-link-item {
        min-width: 40%;
    }
    .social-link-item__label {
        font-size: 1.4rem;
    }
    .social-link-item__label .fa-long-arrow-alt-right {
        font-size: 1.2rem;
    }
}
/* ─── 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;
}

.membership-pricing-price {
    color: var(--color-cta);
    margin: 0 0 var(--space-20);
    font-size: 4rem;
    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: 3rem;
    }
}

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

.hotspots-container {
    max-width: 1400px;
    margin: auto;
}
.hotspots-container .hotspots-placeholder {
    display: none;
}
.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: 3rem;
    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: 6rem;
    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: 4.5rem;
    }
}

@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: 3.6rem;
    }

    .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__role-label {
    margin: 0 0 0.6rem;
    font-size: var(--font-size-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-gray-medium);
}

.chapter-details__staff-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-40);
    margin-block-start: var(--space-20);
}

.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;
    }
}

/* ─── DISTRICT ARCHIVE ─────────────────────────────────────────────────── */

.section-district-archive {
    padding-block: var(--space-60);
}

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

.district-archive__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-30);
    margin-block-end: var(--space-20);
}

.district-archive__heading {
    color: var(--color-primary-light);
    margin: 0;
}

.district-archive__all-link {
    flex-shrink: 0;
}

.district-details-wrapper {
    margin-block: var(--space-40);
}

.district-archive__empty {
    color: var(--color-gray-medium);
}

@media (max-width: 600px) {
    .district-archive__header {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ─── SINGLE CHAPTER ───────────────────────────────────────────────────── */
.single-chapter .section-single-chapter,
.single-chapter .section-chapter-meetings {
    padding-bottom: 0;
}
.single-chapter main section:last-of-type {
    margin-bottom: var(--space-60);
}

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

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

.single-chapter__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-30);
    margin-block-end: var(--space-20);
}

.single-chapter__heading {
    color: var(--color-primary-light);
    margin: 0;
    font-size: var(--font-size-7xl);
}

.single-chapter__back-link {
    flex-shrink: 0;
}

.single-chapter__cta-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: var(--space-20);
}

.single-chapter__newsletter-link,
.single-chapter__website-link {
    align-self: flex-start;
    width: fit-content;
    max-width: 100%;
    white-space: nowrap;
}

.single-chapter__intro {
    margin-block-end: var(--space-30);
}

.single-chapter__intro p {
    font-size: var(--font-size-md);
    line-height: 1.7;
    margin-block-end: var(--space-20);
}

.single-chapter__intro p:last-child {
    margin-block-end: 0;
}

.section-single-chapter .chapter-details__grid,
.section-single-chapter .chapter-details__left--stacked {
    margin-block-start: var(--space-40);
}

.chapter-details__chapter-number {
    font-size: var(--font-size-xl);
}

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

.chapter-details__staff--two-col {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.chapter-details__staff-member {
    padding: 3.5rem 2rem;
    background-color: var(--color-primary-light);
    text-align: center;
}

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

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

.chapter-details__staff-title {
    font-size: var(--font-size-lg);
    font-weight: 700;
    text-transform: uppercase;
    color: #fff;
    margin: 0 0 1.5rem;
}

.chapter-details__staff-name {
    font-size: var(--font-size-md);
    font-weight: 400;
    color: #fff;
    margin: 0 0 0.4rem;
}

.chapter-details__staff-email,
.chapter-details__staff-phone {
    font-size: var(--font-size-md);
    color: #fff;
    margin: 0 0 0.4rem;
}

.chapter-details__staff-phone {
    margin-bottom: 0;
}

.chapter-details__staff-name,
.chapter-details__staff-email,
.chapter-details__staff-phone {
    display: flex;
    align-items: center;
    justify-content: center;
}

.chapter-details__staff-name i,
.chapter-details__staff-email i,
.chapter-details__staff-phone i {
    width: 1.6rem;
    margin-inline-end: 10px;
    text-align: center;
    flex-shrink: 0;
}

.chapter-details__staff-name i,
.chapter-details__staff-email i,
.chapter-details__staff-phone i {
    color: #fff;
}

.chapter-details__staff-email a,
.chapter-details__staff-phone a {
    color: #fff;
    text-decoration: none;
}

.chapter-details__staff-email a:hover,
.chapter-details__staff-phone a:hover {
    text-decoration: underline;
}

@media (max-width: 600px) {
    .single-chapter__header {
        flex-direction: column;
        align-items: flex-start;
    }
}

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

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

.single-chapter__meetings-heading,
.single-chapter__staff-heading {
    margin-block-end: var(--space-20);
    color: var(--color-primary-light);
}

.single-chapter__meetings-intro {
    max-width: 800px;
    margin-block-end: var(--space-30);
    color: var(--color-text);
}

.single-chapter__meetings-intro p:last-child {
    margin-bottom: 0;
}

.chapter-meetings__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-10);
}

.chapter-meetings__link {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-size: var(--font-size-lg);
    color: var(--color-primary-dark);
}

@media (max-width: 767px) {
    .chapter-meetings__link {
        font-size: var(--font-size-sm);
    }
}
.section-chapter-staff {
    padding-block: var(--space-60);
}

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

.chapter-meetings__link i {
    color: var(--color-cta);
}

/* ─── CHAPTER ZIP SEARCH ──────────────────────────────────────────────── */

.section-chapter-zip-search {
    padding-block: var(--space-60);
    margin-top: 0;
}

.section-chapter-zip-search .inner-container {
    max-width: var(--wide-size);
    margin-inline: auto;
    padding-inline: var(--space-30);
    text-align: center;
}

.chapter-zip-search__heading {
    margin: 0 0 var(--space-10);
}

.chapter-zip-search__intro {
    max-width: 640px;
    margin-inline: auto;
    margin-block-end: var(--space-20);
    color: var(--color-text);
}

.chapter-zip-search__intro p:last-child {
    margin-bottom: 0;
}

.chapter-zip-search__form {
    max-width: 480px;
    margin-inline: auto;
}

.chapter-zip-search__field {
    display: flex;
    gap: var(--space-10);
    align-items: stretch;
}

.chapter-zip-search__field input[type="text"] {
    flex: 1;
    min-width: 0;
    padding: 0.8rem 1.2rem;
    font-size: var(--font-size-base);
    font-family: var(--wp--preset--font-family--primary);
    color: var(--color-text);
    border: 1px solid var(--color-gray-medium);
    border-radius: 5px;
    background-color: #fff;
}

.chapter-zip-search__field input[type="text"]:focus {
    outline: none;
    border-color: var(--color-primary-dark);
}

.chapter-zip-search__submit {
    flex-shrink: 0;
    border: none;
    cursor: pointer;
}

@media (max-width: 480px) {
    .chapter-zip-search__field {
        flex-direction: column;
    }
}

.chapter-zip-search__results {
    max-width: 800px;
    margin-inline: auto;
    margin-block-start: var(--space-30);
    text-align: left;
}

.chapter-zip-search__message {
    text-align: center;
    color: var(--color-gray-medium);
    margin-block-end: var(--space-20);
}

.chapter-zip-search__message--fallback {
    color: var(--color-white);
    font-weight: 700;
    font-size: var(--font-size-lg);
}

.chapter-zip-results {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--space-20);
}

.chapter-zip-result {
    padding: var(--space-30);
    border: 1px solid var(--color-gray-light);
    border-radius: 5px;
    background-color: var(--color-gray-light);
}

.chapter-zip-result__distance {
    margin: 0 0 0.4rem;
    font-size: var(--font-size-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-gray-medium);
}

.chapter-zip-result__name {
    margin: 0 0 0.6rem;
}

.chapter-zip-result__name a {
    color: var(--color-primary-dark)!important;
    text-decoration: none;
}

.chapter-zip-result__name a:hover {
    text-decoration: underline;
}

.chapter-zip-result__district,
.chapter-zip-result__president {
    margin: 0 0 0.4rem;
    font-size: var(--font-size-base);
    color: var(--color-text);
}

.chapter-zip-result__district a {
    color: var(--color-primary-dark);
    text-decoration: none;
}

.chapter-zip-result__district a:hover {
    text-decoration: underline;
}

.chapter-zip-result__link {
    margin-block-start: var(--space-10);
}

/* ─── 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);
    }
}

/* ─── BLOG ARCHIVE ─────────────────────────────────────────────────────── */

.section-blog-archive {
    padding-block: var(--space-60);
}

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

.blog-archive__header {
    margin-block-end: var(--space-40);
}

.blog-archive__heading {
    color: var(--color-primary-light);
    margin: 0 0 var(--space-20);
}
h1.blog-archive__heading {
    font-size: var(--font-size-6xl);
}

.blog-archive__main {
    min-width: 0;
}

.blog-archive__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-40);
    align-items: stretch;
}

.blog-archive__grid .image-card {
    height: 100%;
}

.image-card__heading a {
    color: inherit;
    text-decoration: none;
}

.image-card__heading a:hover {
    color: var(--color-cta);
}

.blog-card__date {
    display: block;
    color: var(--color-gray-medium);
    font-size: var(--font-size-sm);
    margin-block-end: 0.4rem;
}

.blog-archive__empty {
    color: var(--color-gray-medium);
}

.blog-archive__search-again {
    max-width: 450px;
    margin-block-start: var(--space-20);
}
.blog-archive__search-again .wp-block-search__label {
    font-weight: 700;
    color: var(--color-primary-dark);
    margin-block-end: 0.6rem;
}
.blog-archive__search-again .wp-block-search__inside-wrapper {
    border: 2px solid var(--color-gray-light);
    border-radius: 4px;
    overflow: hidden;
}
.blog-archive__search-again .wp-block-search__input {
    border: none;
    font-family: var(--font-family-primary);
    font-size: var(--font-size-base);
    padding: 1rem 1.4rem;
}
.blog-archive__search-again .wp-block-search__input:focus { outline: none; }
.blog-archive__search-again .wp-block-search__button {
    background-color: var(--color-cta);
    color: var(--color-white);
    border: none;
    font-weight: 700;
    text-transform: uppercase;
    padding: 1rem 1.8rem;
    cursor: pointer;
    transition: background-color 0.2s ease;
}
.blog-archive__search-again .wp-block-search__button:hover {
    background-color: var(--color-primary-dark);
}

.blog-archive__pagination {
    margin-block-start: var(--space-40);
    display: flex;
    gap: var(--space-20);
    flex-wrap: wrap;
}

.blog-archive__pagination .wp-block-query-pagination-numbers a,
.blog-archive__pagination .wp-block-query-pagination-numbers > span,
.blog-archive__pagination a {
    color: var(--color-primary-light);
    text-decoration: none;
    font-weight: 600;
}

.blog-archive__pagination .wp-block-query-pagination-numbers .current {
    color: var(--color-cta);
    text-decoration: underline;
}

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

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

/* ─── SINGLE BLOG POST ─────────────────────────────────────────────────── */

.section-single-post {
    padding-block-end: var(--space-60);
}

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

.single-post__header {
    padding-block-start: var(--space-50);
}

.single-post__title {
    color: var(--color-primary-light);
    margin: 0 0 var(--space-20);
    font-size: var(--font-size-6xl);
}

.single-post__meta {
    gap: var(--space-20);
    margin-block-end: var(--space-20);
    color: var(--color-gray-medium);
    font-size: var(--font-size-base);
}

.single-post__categories {
    display: flex;
    gap: 0.5em;
}

.single-post__categories a {
    color: var(--color-cta);
    text-decoration: none;
}

.single-post__categories a:hover {
    text-decoration: underline;
}

.single-post__featured-image {
    margin-block: var(--space-40);
    max-width: var(--wide-size);
    padding: 0 30px;
}

.single-post__featured-image img {
    width: 100%;
    max-height: 480px;
    object-fit: cover;
    display: block;
}

.single-post__body {
    padding-block-start: var(--space-20);
}

.single-post__body .wp-block-post-content > * + * {
    margin-block-start: 1.4rem;
}

.single-post__footer-divider {
    margin-block: var(--space-40);
}
.single-post__back-link {
    margin-top: 40px;
}
.single-post__back-link a {
    cursor: pointer;
}

/* ─── 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: flex;
    flex-direction: column;
    height: 100%;
    width: 100%;
    border: 0;
    background: transparent;
    padding: 0;
    text-align: inherit;
}

button.staff-card__trigger {
    cursor: pointer;
}

.staff-card__inner {
    width: 100%;
    background-color: var(--color-white);
    padding: 3.5rem 2rem 5rem;
    text-align: center;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    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;
}

.staff-card__name {
    margin: 0 0 0.5rem;
    color: var(--color-primary-light);
    font-size: var(--font-size-2xl);
    font-weight: 700;
    text-transform: uppercase;
}

.staff-card__title {
    margin: 0;
    color: #8a8a8a;
    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__dialog button:hover,
.staff-modal__dialog button:active {
    background-color: transparent;
    opacity: 0.75;
    color: #666;
}
.staff-modal__close {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    border: 0;
    background: transparent;
    color: #666;
    font-size: 4rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}
.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: #8a8a8a;
    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-lg);
}

.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);
    }
}

/* ─── VIDEOS GRID ──────────────────────────────────────────────────────── */

.section-videos-grid {
    padding-block: var(--space-60);
}

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

.videos-grid__header {
    margin-block-end: var(--space-40);
}

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

.videos-grid__subtext {
    max-width: 900px;
}

.videos-grid__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-30);
}

.video-card {
    display: block;
    width: 100%;
    border: 0;
    background: transparent;
    padding: 0;
    text-align: left;
    cursor: pointer;
}

.video-card__thumb {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
    background-color: var(--color-gray-dark, #121212);
    overflow: hidden;
}

.video-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.35s ease;
}

.video-card:hover .video-card__thumb img,
.video-card:focus-visible .video-card__thumb img {
    transform: scale(1.05);
}

.video-card__play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 6rem;
    height: 6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, 0.55);
    color: var(--color-white);
    font-size: var(--font-size-xl);
    transition: background-color 0.25s ease, transform 0.25s ease;
}

.video-card__play i {
    margin-left: 3px; /* optically center the play triangle */
}

.video-card:hover .video-card__play,
.video-card:focus-visible .video-card__play {
    background-color: transparent;
    transform: translate(-50%, -50%) scale(1.08);
}
.video-card:hover {
    background-color: transparent;
}

.video-card__caption {
    display: block;
    margin-top: var(--space-10);
    color: var(--color-primary);
    font-size: var(--font-size-base);
    font-weight: 600;
    line-height: 1.4;
}

/* Lightbox — hidden by both [hidden] and [aria-hidden="true"] (kept in sync
   by video-grid.js on open/close). The block editor's live preview for ACF
   blocks strips the bare `hidden` attribute from server-rendered markup, so
   without the aria-hidden fallback here the modal renders fully visible
   and full-screen over the whole editor on page load. */
.video-lightbox[hidden],
.video-lightbox[aria-hidden="true"] {
    display: none !important;
}

.video-lightbox {
    position: fixed;
    inset: 0;
    z-index: 100000;
}

.video-lightbox__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.85);
}

.video-lightbox__dialog {
    position: relative;
    z-index: 2;
    width: min(1100px, calc(100% - 4rem));
    margin: 4rem auto;
}

.video-lightbox__close {
    position: absolute;
    top: -4.5rem;
    right: 0;
    border: 0;
    background: transparent;
    color: var(--color-white);
    font-size: 4rem;
    line-height: 1;
    cursor: pointer;
    padding: 0;
}

.video-lightbox__stage {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    background-color: #000;
}

.video-lightbox__iframe,
.video-lightbox__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

body.video-lightbox-open {
    overflow: hidden;
}

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

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

    .video-lightbox__dialog {
        width: calc(100% - 2rem);
        margin: 6rem auto 0;
    }

    .video-lightbox__close {
        top: -4rem;
        right: 0.5rem;
    }
}

/* ─── IMAGE CARDS ──────────────────────────────────────────────────────── */

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

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

.image-cards__header {
    margin-block-end: var(--space-40);
}

.image-cards__heading {
    /*font-size: var(--font-size-2xl);
    font-weight: 700;*/
    margin-block-end: var(--space-20);
    color: var(--color-primary-light);
}

.image-cards__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-40);
    align-items: stretch;
}

.image-card {
    display: flex;
    flex-direction: column;
    background-color: var(--color-white);
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    height: 100%;
}

.image-card__image {
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.image-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.image-card__content {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: var(--space-10);
    padding: var(--space-30);
}

.image-card__heading {
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: var(--color-primary-dark);
    margin: 0;
}

.image-card__body {
    color: var(--color-text);
    font-size: var(--font-size-base);
    line-height: 1.6;
    margin: 0;
    flex: 1;
}

.image-card__body p {
    margin: 0;
}

.image-card__link {
    margin-block-start: var(--space-20);
}

.image-card__link .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
}

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

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

/* ─── TESTIMONIALS ───────────────────────────────────────────────────────── */

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

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

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

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

.testimonials__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-40);
    align-items: stretch;
}

.testimonials--cols-2 .testimonials__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.testimonials--cols-4 .testimonials__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.testimonial-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    background-color: var(--color-white);
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    height: 100%;
}

.testimonial-card__image {
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.testimonial-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}

.testimonial-card__image--video iframe,
.testimonial-card__image--video video {
    width: 100%;
    height: 100%;
    display: block;
    border: 0;
}

.testimonial-card__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    width: 100%;
    gap: var(--space-20);
    padding: var(--space-30);
}

.testimonial-card__heading {
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: var(--color-primary-dark);
    margin: 0;
}
.testimonial-card__subtitle {
    font-size: var(--font-size-base);
    color: var(--color-gray-medium);
    margin: 0;
    text-transform: uppercase;
}
.testimonial-card__link {
    margin-block-start: auto;
}

.testimonial-card__link .btn {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
}

.testimonial-modal__post-title {
    margin: 0 0 0.4rem;
    color: var(--color-gray-medium);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: var(--font-size-sm);
    font-weight: 700;
}

.testimonial-modal__quote {
    font-style: italic;
}

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

@media (max-width: 600px) {
    .testimonials__grid,
    .testimonials--cols-2 .testimonials__grid,
    .testimonials--cols-4 .testimonials__grid {
        grid-template-columns: 1fr;
    }
}

/* ─── 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: 2rem;
    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: 4rem;
    }
}

@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: 3.6rem;
    }

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

/* ─── BENEFITS GRID ──────────────────────────────────────────────────────── */

.benefits-grid { width: 100%; }

/* Empty state */
.benefits-grid--empty {
    padding: 4rem;
    text-align: center;
    background-color: var(--color-gray-light);
    color: var(--color-gray-dark);
}

/* 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-gray-light);
    font-size: var(--font-size-6xl);
    color: var(--color-gray-medium);
    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-gray-light); }
.benefit-row__content.content-bg-primary      { background-color: var(--color-primary); }
.benefit-row__content.content-bg-primary-dark { background-color: var(--color-primary-dark); }
.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-primary-dark);
}

/* 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-primary-dark);
}

/* 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; }
}

@media (max-width: 480px) {
    .benefit-content-inner { padding: 3rem 2rem; }
    .benefit-content__ctas { flex-direction: column; align-items: stretch; }
    .benefit-cta--primary,
    .benefit-cta--secondary { text-align: center; justify-content: center; width: 100%; }
}

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

footer {
	margin: 0;
}
footer hr {
    border-color: #fff;
    margin-left: 0;
}
footer address, 
footer a, 
footer li, 
footer p {
    font-size: 1.5rem;
    font-weight: normal;
    line-height: 1.25;
}
footer address {
    margin-top: 0;
}
footer a { 
    color: #fff; 
    text-decoration: none; 
    border-bottom: 1px solid #fff;
    transition: all 0.25s ease-out;
}
footer a:hover { 
    text-decoration: none; 
    color: #fff;
    border-color: transparent;
}
#primary-footer { 
    background-color: #121212; 
    color: #fff; 
    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: #fff; 
    line-height: 1.25; 
    margin-block-end: var(--space-20); 
    font-size: 1.5rem; 
}
.office-contact-info address strong {
    text-transform: uppercase;
}

.office-contact-info .link-wrapper {
    margin-block: 0.25rem;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.office-contact-info .link-wrapper__icon {
    width: 1em;
    text-align: center;
    color: #fff;
    padding-bottom: 2px;
}


.office-contact-info .tel-link, 
.office-contact-info .email-link {
    margin-bottom: 3px;
    display: inline-block;
    border-bottom: 2px solid transparent;
}
.office-contact-info .tel-link:hover, 
.office-contact-info .email-link:hover { 
    color: #fff;
    border-bottom: 2px solid #fff;
}
.additional-footer-info-wrapper p, 
.additional-footer-info p { 
    color: #fff; 
    line-height: 1.7; 
    margin-block: 0 var(--space-20); 
}
.additional-footer-info a:hover, 
.additional-footer-info-wrapper a:hover { 
    color: #fff; 
}
.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: #fff; 
    text-decoration: none; 
    transition: all 0.25s ease; 
    border: none;
}
.social-link:hover { 
    background-color: transparent; 
    color: #fff; 
    opacity: 0.5;
}
footer .social-link {
    font-size: 2.8rem;
}
.copyright-wrapper { 
    background-color: #121212; 
    text-align: left; 
    max-width: 1400px;
    padding: 0 30px 30px;
    margin: 20px auto 0;
}
.copyright { 
    color: #fff; 
    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: 1.4rem;
    }
}



