/*
 Theme Name: WMA Child Theme
 Theme URI: https://www.elegantthemes.com/gallery/divi/
 Description: Divi Child Theme created by Walker Media Agency
 Author: Walker Media Agency
 Author URI: https://www.elegantthemes.com
 Template: Divi
 Version: 2.0.0
*/
 
/* =Theme customization starts here
------------------------------------------------------- */

/*======================================================================
  TABLE OF CONTENTS
  ----------------------------------------------------------------------
  1. Reset
  2. Global Variables
  3. Typography
  4. Layout & Grid
  5. Header
  6. Navigation
  7. Hero / Banner
  8. Content
  9. Sidebar
  10. Footer
  11. Buttons & Forms
  12. Modules & Components
  13. Utilities & Helpers
======================================================================*/


/*======================================================================
  1. RESET
======================================================================*/

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

html, body {
  height: 100%;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

input,
button,
textarea,
select {
  font: inherit;
}

/* Reset - Divi puts 10px padding under every headline for no reason */
h1, h2, h3, h4, h5, h6 {
	padding-bottom: 0;
}

/*======================================================================
  2. GLOBAL VARIABLES
======================================================================*/
/* Global CSS variables on body */


/*======================================================================
  3. TYPOGRAPHY
======================================================================*/



/*======================================================================
  4. LAYOUT & GRID
======================================================================*/


/*======================================================================
  5. HEADER
======================================================================*/

/* Styles for Divi’s header / logo / top bar go here */
header.et-l--header {
	position: relative;
	z-index: 8;
}
.et-db #et-boc header.et-l.et-l--header .et_builder_inner_content.has_et_pb_sticky {
	z-index: 5000;
}
.et_pb_section_0_tb_header {
	z-index: 1;
}
/*
header .et_pb_section { 
	background-color: rgba(255,255,255, 1);
	transition: all .3ms ease-in!important;
}
*/
@keyframes shrinkHeader {
    from {
        max-height: 100px; /* starting height */
    }
    to {
        max-height: 40px !important; /* final height */
    }
}
header {
	   box-shadow: 
        /* main subtle shadow underneath center */
        0 4px 12px rgba(0, 0, 0, 0.12),
        /* left curve */
        -50px 6px 50px rgba(0, 0, 0, 0.08),
        /* right curve */
        50px 6px 50px rgba(0, 0, 0, 0.08);
}
header .et_pb_section_0_tb_header .et_pb_row_0_tb_header {
	height: 100%!important;
	align-items: center;
}
header .et_pb_row_0_tb_header,
header .et_pb_row_0_tb_header .et_pb_image {
	height: 100%!important;
	transition: all .3ms ease-in!important;
}
header .et_pb_row_0_tb_header .et_pb_image img {
	transition: max-height 0.2s ease-in-out;
    max-height: 100px;
}
header .et_builder_inner_content.has_et_pb_sticky .et_pb_row_0_tb_header .et_pb_image img {
    max-height: 40px;
}

header .et_builder_inner_content.has_et_pb_sticky .et_pb_section_0_tb_header.et_pb_section.et_pb_sticky {
	 box-shadow: 
        -10px 0px 13px -7px #009DDC,   /* left edge */
        10px 0px 13px -7px #009DDC,    /* right edge */
        5px 7px 24px 0px rgba(0, 157, 220, 0.0016); /* soft center lift */
}


/*======================================================================
  6. NAVIGATION
======================================================================*/

/* Primary menu, mobile menu tweaks */
#menu-main-menu-global {
    
}
@media (max-width: 980px) {
  header.et-l.et-l--header .et_pb_menu_0_tb_header.et_pb_menu ul li.current-menu-item>a {
   color: var(--gcid-primary-color)!important; /* set a color for current active link for mobile dropdown */
	  font-weight: bold;
  }
}

#menu-main-menu-global .menu-item {
	/*border: 2px solid #000;*/
}

#menu-main-menu-global > .menu-item.current_page_item,
#menu-main-menu-global > .menu-item.current_page_ancestor,
#menu-main-menu-global > .menu-item.current_page_parent {
	background-color: #003459;
	margin-inline: 1rem;
}
.et_pb_menu_0_tb_header.et_pb_menu .nav#menu-main-menu-global li ul.sub-menu {
	border-bottom-left-radius: 18px;
	border-bottom-right-radius: 18px;
}
.et_pb_menu_0_tb_header.et_pb_menu .nav#menu-main-menu-global li ul.sub-menu .menu-item {
	padding-inline: 0;
	width: 100%;
	display: flex;
}
.et_pb_menu_0_tb_header.et_pb_menu .nav#menu-main-menu-global li ul.sub-menu .menu-item a {
	width: 100%;
	color: #003459!important;
}
#menu-main-menu-global .menu-item.current_page_parent:not(.current_page_ancestor) a {
	color: #003459!important;
}


.et_pb_menu--without-logo .et_pb_menu__menu>nav>ul>li {
    margin-top: 0!important;
	 padding-inline: .75rem;
	 border-radius: 8px;
	 display: flex;
	 align-items: center;
	 justify-content: center;
	 height: 41px;
}
.et_pb_menu--without-logo .et_pb_menu__menu>nav>ul>li>a {
    padding-bottom: 0!important;
}
header .et_builder_inner_content.has_et_pb_sticky .et_pb_row_0_tb_header .et_pb_menu--without-logo .et_pb_menu__menu>nav>ul>li {
    max-height: 30px;
}
header .et_builder_inner_content.has_et_pb_sticky .et_pb_row_0_tb_header .et_pb_column_0_tb_header {
	max-width: 50px;
}
@media (max-width: 1200px) {
	header .et_builder_inner_content.has_et_pb_sticky .et_pb_row_0_tb_header .et_pb_column_1_tb_header {
		max-width: 25%;
	}
}


/*======================================================================
  7. HERO / BANNER
======================================================================*/

/* Landing hero, page banners, etc. */
header.et-l--header {
  min-height: 100px;
}
header.et-l--header .et_pb_section,
header.et-l--header .et_pb_row {
  opacity: 0;
  animation: headerFade 0.3s ease forwards;
}

/* Hero row with video */
.home-bg-video {
  aspect-ratio: 16 / 9; /* adjust to match video */
  overflow: hidden;
}
.home-bg-video video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@keyframes headerFade {
  to { opacity: 1; }
}


/*======================================================================
  8. CONTENT
======================================================================*/

/* Blog posts, general page content */


.home-masthead,
.home-bg-video {
	min-height: 600px;
}

.body-middle-grey-bg,
.body-middle-grey-bg .et_pb_row {
	position: relative;
	z-index: 1;
}

.body-middle-grey-bg:after {
	content: '';
	width: 100%;
	height: 320px;
	background-color: #f0f2f3;
	left: 0;
	top: 0;
	z-index: 0;
	position: absolute;
}

.body-middle-grey-bg.shallow-water:after {
	height: 162px;
}

.body-middle-grey-bg.very-shallow-water:after {
	height: 80px;
}


/*======================================================================
  9. SIDEBAR
======================================================================*/
/*--- Classes detail page sticky sidebar 'scrollspy' anchor links  ---*/
.sidebar-link-list a.active {
  font-weight: bold;
}

.sidebar-link-list p {
	/*text-align: right;*/
}

.sidebar-link-list a.active:after {
	content: '';
	width: 4px;
	height: 100%;
	position:absolute;
	right: -1rem;
	top: 0;
	background-color: #012540;
}

@media (max-width: 766px) {
	.sidebar-link-list a.active:after {
		width: 100%;
		height: 4px;
		left: 0;
		right: auto;
		top: auto;
		bottom: -.5rem;
	}
}
/*======================================================================
  10. FOOTER
======================================================================*/


/*======================================================================
  11. BUTTONS & FORMS
======================================================================*/
body #page-container .et_pb_section .right-icon-btn.et_pb_button_0_tb_footer:after, body #page-container .et_pb_section .right-icon-btn.et_pb_button_0_tb_footer:hover:after {
	font-size: 1rem!important;
}

body #page-container .et_pb_section .et_pb_button_0_tb_footer.donate-heartbeat {
    position: relative;
	display: inline-flex!important;
	column-gap: .5rem;
    min-height: 35px;
}
body #page-container .et_pb_section .et_pb_button_0_tb_footer.donate-heartbeat:after {
    display: inline-block!important; /* force visibility */
	position: relative!important; 
    transform: translate(13px, 0px) scale(1); 
}
body #page-container .et_pb_section .et_pb_button_0_tb_footer.donate-heartbeat:hover:after {
   animation: pulse 1s ease-in-out infinite;
}

@keyframes pulse {
  0% { transform: translate(13px, 0px) scale(1);  }       /* start */
  20% { transform: translate(13px, 0px) scale(1.2);  }    /* peak of pulse */
  40% { transform: translate(13px, 0px) scale(1);  }      /* return to normal */
  100% { transform: translate(13px, 0px) scale(1);  }     /* hold at normal until next pulse */
}


body #page-container .et_pb_section .et_pb_button,
.et_button {
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: left;
  text-wrap: pretty;
  line-height: 1.2rem!important;
}
body #page-container .et_pb_section .et_pb_button,
body #page-container .et_pb_section .et_pb_button.right-icon-btn,
body #page-container .et_pb_section .et_pb_button.right-arrow-btn {
	position: relative;
	display: inline-flex!important;
	column-gap: .5rem;
	flex-direction: row;
}
body #page-container .et_pb_section .et_pb_button.right-icon-btn::after {
    display: inline-block!important; /* force visibility */
	position: relative!important; /* reset from Divi using absolute. We're using flex so we want it relative */
    right: 0!important;
    transform: translate(13px, 0px)!important; 
}
body #page-container .et_pb_section .et_pb_button.right-arrow-btn.white-btn:after,
body #page-container .et_pb_section .et_pb_button.right-arrow-btn.white-arrow:after {
	background-image: url('/wp-content/uploads/2025/10/white-right-arrow.svg') !important;
}
body #page-container .et_pb_section .et_pb_button.right-arrow-btn::after {
    content: '' !important; /* clear Divi's default icon */
    display: inline-block; /* force visibility */
    transform: translate(13px, 0px)!important;
    background-image: url('/wp-content/uploads/2025/10/deep-blue-right-arrow.svg') !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;    
    width: 21px;
    height: 13px;
	position: relative!important /* reset from Divi using absolute. We're using flex so we want it relative */;

}
body #page-container .et_pb_section .et_pb_button.directions-btn::after {
    content: '' !important; /* clear Divi's default icon */
    display: inline-block; /* force visibility */
    top: 50%;
    background-image: url('/wp-content/uploads/2025/12/noun-location-pin-7734963-FFFFFF.svg') !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
    transform: translate(13px, 0px)!important; /* moves the icon slightly to the right */
    width: 29px;
    height: 32px;
	position: relative;
}

body #page-container .et_pb_section .et_pb_button.right-arrow-btn:hover:after {
    transform: translate(20px, 0px)!important; /* moves the icon slightly to the right */
}

body #page-container .et_pb_section .et_pb_button:hover, .et_pb_module .et_pb_button:hover {
    border: 2px solid inherit!important;
   /* padding-right: 2.5rem!important; */
}


/* Modal form container */
#gf-container {
  max-width: 100%;
  margin: 0 auto;
  min-height: 800px;
}

.et_pb_code_0_tb_footer.et_pb_code.et_pb_module .modal-close {
  position: absolute;
     top: -3rem;
    right: -1rem;
  z-index: 10;
  background: none;
  border: none;
  font-size: 24px;
  cursor: pointer;
}


/* Make the code module scrollable */

/* Optional: smooth scrolling */
/* Make the Code Module scrollable with momentum on touch */

#class-signup-modal .modal-content {
  max-height: 77vh;   /* limits scrollable height */
  overflow-y: auto;
  padding-right: 8px; /* avoids scrollbar overlapping content */
}



/* Firefox */
.et_pb_code_0_tb_footer.et_pb_code.et_pb_module {
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,0.3) transparent;
  scrollbar-gutter: stable both-edges; /* optional, prevents layout shift */
 
}
#class-signup-modal { display: none; position: fixed; inset: 0; z-index: 100000; }
#class-signup-modal.is-active { display: block; }
#class-signup-modal .modal-content {}
.modal-close {
	position: absolute;
    top: -3rem;
    right: -1rem;
}
/* Prevents scrolling */
body.modal-open {
  overflow: hidden;
  height: 100vh; /* Optional: ensures no weird elastic scrolling on mobile */
}

/* 1. The Spinner Container (Centers everything) */
.modal-loader {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 200px; /* Ensures it stays centered in the box */
}

/* 2. The Actual Spinner */
.spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #f3f3f3;
    border-top: 4px solid #007bff; /* Change to your brand color */
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin-bottom: 10px;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* 3. The Fade-In Effect */
.gf-fade-in {
    animation: fadeIn 0.4s ease-in forwards;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/*======================================================================
  12. MODULES & COMPONENTS
======================================================================*/

/* Divi modules like sliders, blurbs, testimonials */
.resources-box a.external-link {
	position: relative;
	display: inline-flex;
	align-items: flex-start;
	gap: .25rem;
	transition: opacity .18s linear;
}

.resources-box a.external-link:after {
	content: '';
	transition: all .18s linear;
	width: 16px;
	height: 16px;
	background-image: url(https://okaucheedev.wpenginepowered.com/wp-content/uploads/2025/10/external-link-icon.svg);
	background-size: contain;
	background-repeat: no-repeat;		
	flex-shrink: 0;
	transform: translateY(5px);
}

.resources-box a.external-link:hover {
	opacity: .69;
}

.resources-box a.external-link:hover:after {
	transform: translateY(6px);
}
	
.info-table {
 
  border-collapse: collapse;
  background: #F2FAFB;
  border-radius: 18px;
  overflow: hidden;
  font-family: 'Inter', sans-serif;
  color: #012540;
}

.info-table tr:nth-child(even) {
  background: rgba(217, 217, 217, 0.23);
}

.info-table th,
.entry-content .info-table tr td {
  padding: 18px .5rem;
  color: #012540;
  border-top: 0;
  border-bottom: 0;
}

.info-table th {
  width: clamp(30%, 25vw, 145px);
  font-weight: 800;
  text-align: left;
  vertical-align: middle;
  color: #012540!important;
}

.info-table td {
  width: 82%;
  font-weight: 500;
}



.info-box ul {
	padding-top: 1.5rem;
}

.info-box p + ul {
	padding-top: 0;
}

@media (min-width: 768px) {
	.resources-box p,
    .resources-box ul li,
	.info-box p,
	.info-box ul li {
		max-width: 86%;
		margin-bottom: 1rem;
	}
	
	.et_pb_module ul li {
		line-height: normal;
	}

	.info-box.para-full p {
		max-width: 100%;
	}
	
}

.custom-class-accordion {
}

.custom-class-accordion .et_pb_accordion_item {
	padding-inline: 1rem;
	border-radius: 18px;
	min-height: 80px;
}

.et_pb_accordion.et_pb_module.custom-class-accordion .et_pb_accordion_item .et_pb_toggle_title {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-right: 1rem;
}
.et_pb_accordion.et_pb_module.custom-class-accordion .et_pb_accordion_item .et_pb_toggle_title:before {
	display: none!important;
}
.et_pb_accordion.et_pb_module.custom-class-accordion .et_pb_accordion_item .et_pb_toggle_title:after {   
	position: relative!important;
    content: '' !important;
    width: clamp(30px, 10vw, 45px);
    height: clamp(30px, 10vw, 45px);
    background-size: contain; 
	background-position: right center;
	background-repeat: no-repeat;
	background-image: url(https://okaucheedev.wpenginepowered.com/wp-content/uploads/2025/10/icon-open-accordion-item.svg);
}

.image-col-cover .et_pb_image {
	height: 100%!important;
}
.image-col-cover picture {
	
}

.image-col-cover picture img {
	height: 100%;
	width: 100%;
	object-fit: cover;
}

.timeline-group-circle-img-wrapper {
	
}

.timeline-group-circle-img-wrapper .et_pb_image {
	height: 100%!important;
}
.timeline-group-circle-img-wrapper .et_pb_image .et_pb_image_wrap {
	display: flex;
	height: 100%;
}

.timeline-group-circle-img-wrapper .et_pb_image .et_pb_image_wrap picture {
	display: flex;
}

.timeline-group-circle-img-wrapper .et_pb_image .et_pb_image_wrap picture img {
	object-fit: cover;
}

.timeline-item-copy {
	flex: 0 1 100%;
}

.timeline-group-circle-img-wrapper .et_pb_image .et_pb_image_wrap picture img {
	object-fit: cover;
}
.timeline-group-circle-img-wrapper .et_pb_image {
	height: 100%;
	width: 100%;
	object-fit: cover;
}

.custom-blurb-hdr {
	flex: 0 1 196;
	overflow: visible!important;
}
.custom-blurb-body {
	flex: 1;
}
.custom-blurb-hdr > .et_pb_image.et_pb_module {
	max-height: 196px!important;
}
.custom-blurb-hdr .et_pb_image_wrap {
	height: 100%;
	justify-content: center;
}
.custom-blurb-hdr picture {
	display: flex;
}
.custom-blurb-hdr img {
	min-height: 100%;
	object-fit: cover;
}

.custom-blurb-hdr .custom-blurb-icon-circle {
	width: 100%;
}

.et_clickable .et_pb_module + .et_pb_image {
	transition: transform .18s linear;
}
.et_clickable .et_pb_module.et_pb_text .et_pb_text_inner p {
	transition: opacity .22s ease-in;    
    line-height: 1.4;
}
.et_clickable .et_pb_module.et_pb_text:hover .et_pb_text_inner p {
	opacity: .69;
}
.et_clickable .et_pb_module:hover + .et_pb_image {
	transform: translateY(-1px);
}

/*======================================================================
  13. UTILITIES & HELPERS
======================================================================*/
.mb-headline {
	margin-bottom: 1.5rem;
}
.p-flex {
	display: inline-flex;
	justify-content: flex-start;
	gap: .35rem;
}

.p-flex span {
	flex-shrink: 0;
}

.p-flex a {
	flex-shrink: 0;
}
.overflow-hidden {
	overflow: hidden;
}
.et_pb_divider + .et_pb_image .et_pb_image_wrap {
	transform: translateY(-2px);
}
/* image-cover helper: adding .image-cover to an image module will make it behave no matter size of header */
.image-cover .et_pb_image {
	height: 100%;
	width: 100%;
}
.image-cover picture img {
	min-height: 100%!important;
	object-fit: cover!important;
}
.text-wrap-pretty,
.text-wrap-pretty .et_pb_module_header,
.text-wrap-pretty .et_pb_text_inner > * {
	text-wrap: pretty;
}

.group-photo-cover {
  display: flex;
  align-items: center; /* vertical center */
  justify-content: center; /* horizontal center (optional) */
  overflow: hidden;     /* keep the crop */
  max-height: 320px;        /* your fixed height */
}
.group-photo-cover .et_pb_image_wrap {
	height: 100%;
}
.group-photo-cover img {
	object-fit: cover;
	min-height: 100%;
}

.et_pb_text_inner {
	max-width: 1250px!important;
}

.fleet-portrait-column .et_pb_image_wrap {
	display: flex;
	background-color: #ffffff!important;
	padding: clamp(2rem, 13vw, 50px) clamp(2rem, 13vw, 50px);
	align-items: center;
}
.fleet-portrait-column .et_pb_image_wrap img {
	object-fit: contain;	
}

