/**
 * Theme Name:     Divi Child
 * Author:         Elegant Themes
 * Template:       Divi
 * Text Domain:    divi-child
 * Version:        2.4.4
 * Description:    Smart. Flexible. Beautiful. Divi is the most powerful theme in our collection.
 */

/* divi sitewide rules */
.et_pb_text h1,
.et_pb_module h1 {
	font-weight: 700;
}

.et_pb_text h2,
.et_pb_module h2 {
	font-weight: 700;
}

/* Divi's base CSS applies overflow-wrap: break-word broadly, which lets
   the browser split a word mid-character when it's too wide for a narrow
   column (e.g. "Recommended" becoming "Recommende" / "d by" on mobile).
   Headings should wrap at word boundaries only — never mid-word. */
.et_pb_module h1,
.et_pb_module h2,
.et_pb_module h3,
.et_pb_module h4,
.et_pb_module h5,
.et_pb_module h6 {
	overflow-wrap: normal !important;
	word-break: normal !important;
	hyphens: none !important;
}

/* Give the mobile hamburger menu icon 20px of breathing room from the
   right edge. Divi's own dynamic CSS sets margin: 0 6px on this element
   inside the same max-width: 980px breakpoint and loads after this
   stylesheet, so !important is needed for this to win. */
@media (max-width: 980px) {
	.et_pb_menu .et_mobile_nav_menu {
		margin-right: 40px !important;
	}
}

.et_pb_text h3,
.et_pb_module h3 {
	font-weight: 700;
}

/* Divi 5 Gallery lightbox (Magnific Popup) — the prev/next arrows are an
   icon-font glyph (Divi's ETmodules font, via `content` on :after), with
   `color` set directly on that ::after pseudo-element by Divi's own
   dynamic CSS (currently white) — not a CSS border-triangle inheriting
   currentColor from the button, so the override has to target :after
   itself. !important since Divi's dynamic per-module CSS loads after this
   stylesheet. */
.mfp-arrow-left:after,
.mfp-arrow-right:after {
	color: #c99600 !important;
}

/* Muted-color image variants — add one of these in the module's Advanced
   tab > CSS ID & Classes > CSS Class field (or via a custom "class"
   Attribute) on any Divi Image/Blurb module, OR on a Slider module:
     sqsa-muted-image     (default, ~0.4 saturation)
     sqsa-muted-image-0   saturate 0.0 (full grayscale)
     sqsa-muted-image-1   saturate 0.1
     sqsa-muted-image-2   saturate 0.2
     sqsa-muted-image-3   saturate 0.3
     sqsa-muted-image-4   saturate 0.4
     sqsa-muted-image-5   saturate 0.5
     sqsa-muted-image-6   saturate 0.6
     sqsa-muted-image-7   saturate 0.7
     sqsa-muted-image-8   saturate 0.8
     sqsa-muted-image-9   saturate 0.9
     sqsa-muted-image-10  saturate 1.0 (original color)
   Only one variant should be used per image — they all target the same
   element(s), so combining more than one just means the last one in the
   stylesheet wins, not a blend of both.
   Two target types are covered: an actual <img> element (Image/Blurb
   modules), and .et_pb_slide (Slider module slides, which paint their photo
   as a CSS background-image with no <img> tag at all — so filtering the
   slide element itself is the only way to mute it). */
[class*="sqsa-muted-image"] img,
[class*="sqsa-muted-image"] .et_pb_slide,
img[class*="sqsa-muted-image"],
/* The Events Calendar's native List/Month/Day/single-event views build
   their <img> tags directly instead of going through WordPress's
   get_the_post_thumbnail(), so sqsa_mute_event_thumbnails() in functions.php
   (hooked to the post_thumbnail_html filter) never sees them. Targeting
   TEC's own image class names here gets the identical muted look on those
   native views without needing to override TEC's template files. */
.tribe-events [class*="event-featured-image"],
.tribe-events [class*="event-image"] img {
	--sqsa-muted-saturate: 0.4;
	filter: saturate(var(--sqsa-muted-saturate)) contrast(0.95) brightness(1.02);
	transition: filter 0.3s ease;
}

.sqsa-muted-image-0 img, .sqsa-muted-image-0 .et_pb_slide { --sqsa-muted-saturate: 0.0; }
.sqsa-muted-image-1 img, .sqsa-muted-image-1 .et_pb_slide { --sqsa-muted-saturate: 0.1; }
.sqsa-muted-image-2 img, .sqsa-muted-image-2 .et_pb_slide { --sqsa-muted-saturate: 0.2; }
.sqsa-muted-image-3 img, .sqsa-muted-image-3 .et_pb_slide { --sqsa-muted-saturate: 0.3; }
.sqsa-muted-image-4 img, .sqsa-muted-image-4 .et_pb_slide { --sqsa-muted-saturate: 0.4; }
.sqsa-muted-image-5 img, .sqsa-muted-image-5 .et_pb_slide { --sqsa-muted-saturate: 0.5; }
.sqsa-muted-image-6 img, .sqsa-muted-image-6 .et_pb_slide { --sqsa-muted-saturate: 0.6; }
.sqsa-muted-image-7 img, .sqsa-muted-image-7 .et_pb_slide { --sqsa-muted-saturate: 0.7; }
.sqsa-muted-image-8 img, .sqsa-muted-image-8 .et_pb_slide { --sqsa-muted-saturate: 0.8; }
.sqsa-muted-image-9 img, .sqsa-muted-image-9 .et_pb_slide { --sqsa-muted-saturate: 0.9; }
.sqsa-muted-image-10 img, .sqsa-muted-image-10 .et_pb_slide { --sqsa-muted-saturate: 1.0; }

/* Reusable helper class for 2-column rows (text column first, image column
   second in the Divi builder's layer order — the common "About/description
   text + photo" row pattern used across the site). Add "sqsa-mobile-image-
   first" to the Row's Advanced tab > CSS ID & Classes > CSS Class field.
   Desktop side-by-side layout is untouched; only once Divi stacks the
   columns at the phone breakpoint does this flip the visual order so the
   image appears above the text instead of below it. */
@media (max-width: 767px) {
	.et_pb_row.sqsa-mobile-image-first {
		display: flex;
		flex-direction: column-reverse;
	}
}

/* Reusable helper class for card-style columns (e.g. "Private Lessons",
   "SQSA Member" cards) that have an explicit fixed Desktop width — like
   30% for a 3-up row — saved directly on the column in the builder, with
   no separate Phone-only width override. Divi then applies that same fixed
   width at every breakpoint instead of stacking to full width on phones,
   producing a narrow, squished card. Add class "sqsa-mobile-full-width" to
   the Column's Advanced tab > CSS ID & Classes > CSS Class field to force
   it back to 100% width once stacked on phones — Desktop/Tablet widths are
   untouched. !important is needed because the column's saved width rule
   (e.g. ".et_pb_column_8, .et_pb_column_10 { width: 30% }") isn't scoped
   to any breakpoint, so it otherwise wins the cascade at every screen size.
*/
@media (max-width: 767px) {
	.et_pb_column.sqsa-mobile-full-width {
		width: 100% !important;
		max-width: 100% !important;
	}
}

/* Desktop footer: show desktop, hide <=1024 */
@media (max-width: 1024px) {
  .et_pb_section_0_tb_footer {
    display: none !important;
  }
}

/* Mobile/tablet footer: hide desktop, show <=1024 */
@media (min-width: 1025px) {
  .et_pb_section_1_tb_footer {
    display: none !important;
  }
}

/* ecwid styling */
#dynamic-ec-store-container, #static-ec-store-container {
  padding-top: 40px;
  background-color: #ffffff;
}

.sqsa-checkout-menu-item {
  display: none;
}

.sqsa-checkout-menu-item.sqsa-cart-has-items {
  display: block;
}

/* Hidden by default */
.hide-if-logged-out {
	display: none !important;
}

/* Show only when logged in */
.logged-in .hide-if-logged-out {
	display: block !important;
}

.ec-minicart.ec-minicart--pill  {
  z-index: 9999 !important;
}
/* hide the header on non home page if the acf is selected */ 
body.hide-non-home-header-row .conditional-page-header-row {
	display: none !important;
}

/* hide the header on non home page if the acf is selected */ 
body.hide-common-cta .conditional-common-cta {
	display: none !important;
}

/* Force dropdown top border color */
.et_pb_menu .et-menu-nav .sub-menu,
#top-menu .sub-menu,
#main-header .sub-menu,
.nav li ul.sub-menu {
  border-top: 3px solid #A67600 !important;
  width: 250px;
}

/* move downarrow to the right */
.et-menu .menu-item-has-children > a:first-child:after {
    right: 2px !important;
}

/* Also force any generic border-color Divi is applying */
#main-header .nav li ul,
#main-header .et-menu-nav li ul,
.nav li ul {
  border-color: #A67600 !important;
}
/* Remove any shadow/overlay line and replace with gold border only */
#main-header .nav li ul {
  box-shadow: none !important;
}

/* mobile menu changes */ 
@media (max-width: 980px) {
  html body.logged-in .mob-menu-header-holder {
		top: 46px !important;
	}

  .et-l--header .et_mobile_nav_menu {
    position: relative !important;
  }

  .et-l--header ul.et_mobile_menu {
    position: absolute !important;
    right: 0 !important;
    left: auto !important;
    width: 360px !important;
  }
  
  /* default: closed */
  .et-l--header .et_mobile_menu .sub-menu {
    display: none !important;
    visibility: hidden !important;
  }

  /* open when Divi toggles */
  .et-l--header .et_mobile_menu .menu-item-has-children.is-open > .sub-menu {
    display: block !important;
    visibility: visible !important;
  }

  .et-l--header .et_mobile_menu li.menu-item-has-children {
    position: relative !important;
  }

  .et-l--header .et_mobile_menu li.menu-item-has-children > a {
    padding-right: 56px !important;
  }

  .et-l--header .et_mobile_menu li.menu-item-has-children > .submenu-toggle {
    position: absolute !important;
    top: 0 !important;
    right: 12px !important;
    left: auto !important;
    width: 44px !important;
    height: 56px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    z-index: 10 !important;
    cursor: pointer;
  }

  .et-l--header .et_mobile_menu li.menu-item-has-children > .submenu-toggle::before {
    content: "▾";
    display: block;
    line-height: 56px;
    text-align: center;
    font-size: 18px;
    color: #A67600;
  }

  .et-l--header .et_mobile_menu li.menu-item-has-children.is-open > .submenu-toggle::before {
    transform: rotate(180deg);
  }
}

/* Force footer menu to stay inline */
footer .et_pb_menu__menu {
  display: block !important;
}

footer .et_mobile_nav_menu {
  display: none !important;
}

footer .et-menu {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0 20px;
}

footer .et-menu > li {
  padding: 0 !important;
}

.et-l--header .et_pb_section {
margin-top: -10px !important;		
padding-top: 10px !important;
padding-bottom: 10px !important;
}

/* Tablet/phone header padding */
@media (max-width: 1024px) {	
  .et-l--header .et_pb_section {
    padding-top: 8px !important;
    padding-bottom: 8px !important;
  }
}

/* Shrinking header effect */
.et-fixed-header img {
  transition: all 0.3s ease-in-out;
  transform: scale(0.7);
}

/* Smooth initial size */
.et-fixed-header {
  transition: all 0.3s ease-in-out;
}

/* Keep original size before scroll */
.et_pb_section {
  transition: all 0.3s ease-in-out;
}

/* Base sizing via CSS variables so it’s easy to tune */
.header-section{
  /* initial (not scrolled) */
  --padY: 26px;          /* section vertical padding */
  --logoH: 86px;         /* logo height */
  --linkPadY: 16px;      /* menu link vertical padding */

  position: sticky;      /* or keep your Fixed setting if you prefer */
  top: 0;
  z-index: 9999;
  padding-block: var(--padY);
  background: rgba(255,255,255,0.92);
  backdrop-filter: saturate(160%) blur(6px);
  transition: padding .25s ease, background .25s ease, box-shadow .25s ease;
}

/* WordPress admin bar offset */
.admin-bar .header-section{ top: 32px; }

/* Logo sizing */
.header-section .header-logo img{
  height: var(--logoH);
  width: auto;
  transition: height .25s ease, transform .25s ease;
}

/* Menu link spacing */
.header-section .header-menu .menu-item > a {
  padding-block: var(--linkPadY);
  transition: padding .25s ease;
}

/* SHRUNK state — applied by the JS above */
.header-section.is-shrunk{
  --padY: 8px;      /* less top/bottom padding for the section */
  --logoH: 60px;    /* smaller logo */
  --linkPadY: 8px;  /* tighter menu links */
  box-shadow: 0 8px 28px rgba(0,0,0,.08);
}

@media screen and (max-width: 1024px) {
body.admin-bar .mobmenu, body.admin-bar .mobmenu-panel, .show-nav-left.admin-bar .mobmenu-overlay, .show-nav-right.admin-bar .mobmenu-overlay {
  top: 0px !important;
}
.mob-menu-logo-holder {
  margin-top: 7px;
  text-align: left;
  margin-left: 10%;
}
.mobmenur-container {
  right: 5%;
  margin-top: 7px;	
}
}

#footer-link-id a {
color: white;
margin-right:2rem;	
}
#footer-link-id a:hover {
color: lightgray;
}

/* Footer current-page link style */
.footer-current-link {
  color: #C99600 !important;
}

/* Home page calendar dispay */
/* Flexbox (not grid) so that fewer than 3 cards center in the row instead
   of hugging the left — grid's empty trailing column(s) can't be centered
   this way, but flex items with a bounded max-width and justify-content:
   center can. */
.sqsa-featured-events-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
	border: unset;
	box-shadow: none !important;
}

.sqsa-featured-events-grid .sqsa-event-card {
  flex: 0 1 calc((100% - 60px) / 3);
  max-width: calc((100% - 60px) / 3);
}

@media (max-width: 980px) {
  .sqsa-featured-events-grid {
    border: unset;
    box-shadow: none !important;
  }

  .sqsa-featured-events-grid .sqsa-event-card {
    flex: 1 1 100%;
    max-width: 100%;
  }
}

.sqsa-event-card {
    background: #fff;
    border-radius: 18px;
    padding: 20px;
    box-shadow: 0 10px 35px rgba(0,0,0,0.08);
}


.sqsa-event-card:hover {
    background: #f6f6f6;
}

.sqsa-event-image {
    display: block;
    width: 100%;
    aspect-ratio: 400 / 300;
    overflow: hidden;
    border-radius: 14px;
    /* margin, not padding — Safari doesn't reliably reserve space for
       padding on a border-box element that also has aspect-ratio and
       overflow: hidden, so the gap silently disappeared there. Margin
       sits outside the box entirely and isn't affected by either of
       those, so it renders consistently across browsers. */
    margin-bottom: 1rem;
}

.sqsa-event-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 14px;
    display: block;
}

.sqsa-event-date {
    font-weight: 600;
    color: #444;
    margin: 5px 0 10px;
}

.sqsa-event-excerpt {
    color: #555;
}

/* phone footer */
@media (max-width: 767px) {
  #footer-link-id a {	
  margin-right:.9rem;		
  font-size: smaller;	
  }
}

.sqsa-centered-list,
.text-center{
  text-align: center;
}

.sqsa-button-row {
	display: flex;
	justify-content: center;
	gap: 20px;
	flex-wrap: wrap;
	margin-top: 20px;
}

.sqsa-centered-list div {
  font-size: 1.05rem;
}

.sqsa-centered-list .bullet {
  color: #A67600;
  font-size: 2.4rem;
  font-weight: 700;
  vertical-align: middle;
  margin: 0 10px;
}

.sqsa-step-card {
  display: flex;
  flex-direction: column;
  min-height: 420px; /* adjust as needed */
}

.sqsa-step-card .et_pb_button_module_wrapper {
  margin-top: auto;
}

.sqsa-step-card .et_pb_image_wrap img {
    max-height: 140px !important;
    width: auto;
}

/* =========================================
   SQSA Hover Lift Cards
   Add class: sqsa-hover-card
========================================= */

.sqsa-hover-card {
    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        border-color 0.25s ease,
        background-color 0.25s ease;

    transform: translateY(0);

    border: 2px solid #d8d8d8;

    box-shadow:
        0 6px 18px rgba(0,0,0,0.12);

    cursor: pointer;
}

/* Hover state */
.sqsa-hover-card:hover {
    transform: translateY(-8px);

    border-color: #A67600;

    box-shadow:
        0 14px 32px rgba(0,0,0,0.20);
}

/* Optional: slightly animate icons/images inside */
.sqsa-hover-card img,
.sqsa-hover-card svg {
    transition: transform 0.25s ease;
}

.sqsa-hover-card:hover img,
.sqsa-hover-card:hover svg {
    transform: translateY(-2px) scale(1.05);
}

/* Button Styles */
.et_pb_button {
   box-shadow: none !important;           
}

.et_pb_button:after {
   position: relative;
   top: 13px;             
}

.et_pb_button:after {
    transition: all .25s ease;
}

.et_pb_button:hover:after {
    margin-left: 44px;   
}

/* Primary Button */
.sqsa-btn--primary {
  display: inline-block;
  background-color: var(--gcid-primary-color) !important;
  font-family: 'Roboto', Helvetica, Arial, Lucida, sans-serif;
  font-weight: 700;
  color: #ffffff !important;
  font-size: 1.2rem !important;
  letter-spacing: 0.5px !important;
  border: 3px solid var(--gcid-primary-color) !important;
  border-radius: 4px;
  padding: 12px 2px 12px 24px !important;
  line-height: 1.2 !important;
  transition: all 300ms ease;
  text-decoration: none !important;
}

/* Arrow */
.sqsa-btn--primary::after {
  content: "$";
  font-family: "ETmodules";
  font-weight: 400 !important;
  font-size: inherit !important;
  display: inline-block;
  margin-left: 0.3em;
  opacity: 0;
  transition: all 300ms ease;
  color: #ffffff !important;
}

/* Hover */
.sqsa-btn--primary:hover {
  background-color: #c99700 !important; /* optional slightly darker gold */
  border-color: #c99700 !important;
  color: #ffffff !important;
  letter-spacing: 0 !important;
  padding-right: 15px !important;
}

/* Hover arrow */
.sqsa-btn--primary:hover::after {
  opacity: 1;
  margin-left: 0.6em;
}

/* Secondary Button - copy rules from the secondary preset */
.sqsa-btn--secondary {
  display: inline-block;
  background-color: transparent !important;
  font-family: 'Roboto', Helvetica, Arial, Lucida, sans-serif;
  font-weight: 700;
  color: var(--gcid-primary-color) !important;
  font-size: 1.2rem !important;
  letter-spacing: 0.5px !important;
  border: 3px solid var(--gcid-primary-color) !important;
  border-radius: 4px;
  padding: 12px 2px 12px 24px !important;
  line-height: 1.2 !important;
  transition: all 300ms ease;
}

/* Arrow lives inline like Divi */
.sqsa-btn--secondary::after {
  content: "$";
  font-family: "ETmodules";
  font-weight: 400 !important;
  font-size: inherit !important;
  display: inline-block;
  margin-left: 0.3em;
  opacity: 0;
  transition: all 300ms ease;
}

.sqsa-btn--secondary:hover {
  letter-spacing: 0 !important;
  background-color: transparent !important;
  color: var(--gcid-primary-color) !important;
  border-color: var(--gcid-primary-color) !important;
  padding-right: 15px !important;
}

/* Hover */
.sqsa-btn--secondary:hover::after {
  opacity: 1;
  margin-left: 0.6em;
}

 /* --- make Divi column stretch items --- */
.coach-col{
  display:flex;
}

/* make the card fill the column */
.coach-col .coach-card{
  display:flex;
  flex-direction:column;
  height:100%;
}

/* push email/button to bottom */
.coach-col .coach-card .coach-email{
  margin-top:auto;
}

/* Scrolling List Box */
.scrolling-list-box {
    max-height: 300px; /* approx 15 visible rows */
    overflow-y: auto;
    overflow-x: hidden;
    border: 1px solid #ddd;
    padding: 20px;
    background: #fff;
}

.scrolling-list-box h4 {
    margin: 20px 0 10px;
    font-size: 18px;
    font-weight: 700;
}

.scrolling-list-box h4:first-child {
    margin-top: 0;
}

.scrolling-list-box ul {
    margin: 0 0 20px 0;
    padding-left: 20px;
}

.scrolling-list-box li {
    margin-bottom: 8px;
    line-height: 1.5;
}

.hover-grow {
  transition: all 0.25s ease;
}
.hover-grow:hover {
  transform: scale(1.03) translateX(3px);
}




#starlight_slider .et_pb_slide {
  transition: opacity 0.6s ease;
  position: absolute;
  width: 100%;
}

#starlight_slider .et_pb_slides {
  position: relative;
}

/* Accordian class - if the accordian item has a "important" class - 
 * mark it as important with Star icon + bold title */
/* Bold title */
.et_pb_toggle.important .et_pb_toggle_title {
  font-weight: 700;
}

.et_pb_toggle.important .et_pb_toggle_title::after {
  content: "★";
  display: inline-block;
  margin-left: 8px;
  color: #000000;
}

/* Featured Program — default/icon version */
.sqsa-featured-program {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 20px;
  padding: 36px;

  /* NEW: container styling */
  max-width: 900px;
  margin: 40px auto;
  background: #ffffff;
  border: 1px solid rgba(0,0,0,0.06);
  border-radius: 12px;
  box-shadow: 0 10px 28px rgba(0,0,0,0.08);
}

/* stack content vertically instead of side-by-side */
.sqsa-featured-program {
  flex-direction: column;
}

.sqsa-featured-program__image {
  flex: none;
}

.sqsa-featured-program__image img {
  width: 80px;
  height: 80px;
  object-fit: contain;
  display: block;
  margin: 0 auto 8px;
}

.sqsa-featured-program__label {
  margin-bottom: 6px;
  margin-top: -1rem;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  color: #A67600;
  letter-spacing: .06em;
}

.sqsa-featured-program__title {
  margin-bottom: 10px;
  font-weight: 700;
}

.sqsa-featured-program__description {
  margin-bottom: 20px;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

/* subtle hover lift (optional but nice) */
.sqsa-featured-program:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(0,0,0,0.12);
  transition: all .25s ease;
}


/* Featured Program — homepage version */
.sqsa-featured-program.home-featured-program {
  gap: 20px;
  padding: 48px;

  /* slightly more prominent */
  box-shadow: 0 14px 40px rgba(0,0,0,0.12);
}

/* keep image small here too (since you're using icon style now) */
.sqsa-featured-program.home-featured-program .sqsa-featured-program__image {
  flex: none;
}

.sqsa-featured-program.home-featured-program .sqsa-featured-program__image img {
  width: 100%;
  height: auto;
  max-height: none;
}


/* Mobile */
@media (max-width: 767px) {
  .sqsa-featured-program,
  .sqsa-featured-program.home-featured-program {
    display: block;
    padding: 28px 20px;
    margin: 24px auto;
  }

  .sqsa-featured-program__image {
    margin-bottom: 12px;
  }
}

/* Force blurb title + text color when linked */
.sqsa-program-card .et_pb_blurb_content a,
.sqsa-program-card .et_pb_blurb_content a .et_pb_module_header,
.sqsa-program-card .et_pb_blurb_content a .et_pb_blurb_description {
  color:#c89b00 !important;
}

/* Optional: keep gold on hover */
.sqsa-program-card:hover .et_pb_module_header {
  color: #c89b00 !important;
}

/* Hover = lift */
.sqsa-program-card:hover {
  /* transform: translateY(-6px); */
  box-shadow: 0 12px 28px rgba(0,0,0,0.18);
}

.sqsa-program-card {
  border-radius: 12px;
  /* Clip the image (and anything else inside) to the rounded corners —
     without this, the image's square corners peek past the rounded
     outline, showing a small gap of the card's own background at each
     corner. box-shadow (used below for the hover "border") isn't affected
     by overflow: hidden on the same element, so the hover effect still
     paints outside the box as expected. */
  overflow: hidden;
}

/* stronger hover edge */
.sqsa-program-card:hover {
  box-shadow:
    0 12px 28px rgba(0,0,0,0.18),
    0 0 0 2px #c89b00;
}

/* Divi's "Image Width: 100%" builder setting only generates max-width:100%
   (prevents overflow, doesn't force the image to fill the space). The img's
   own width="500"/height="300" HTML attributes make it render at ~500px
   regardless of the wrapper's actual (often slightly wider) rendered width,
   and with text-align:center on the container that difference splits into
   a small visible gap on each side. Forcing width:100% (not just max-width)
   makes it always fill the wrapper exactly, at any size. display:block also
   drops the small baseline gap inline images get by default. */
.sqsa-program-card .et_pb_main_blurb_image img {
  width: 100% !important;
  height: auto !important;
  display: block;
}

.sqsa-program-card img {
  transition: transform .25s ease;
}

.sqsa-program-card:hover img {
  transform: scale(1.03);
}

/* Equal-height program cards (Explore Programs row) — the row itself is a
   Divi flex row so columns already stretch to match the tallest one, but
   the visible card (this .sqsa-program-card border/box, drawn on the Blurb
   module) doesn't fill that stretched column height on its own. This makes
   the card itself fill the column, and pins the button to the bottom
   regardless of how much description text each card has. */
.sqsa-program-card {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.sqsa-program-card .et_pb_blurb_content {
  height: 100%;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.sqsa-program-card .et_pb_blurb_container {
  flex: 1 1 auto;
}

.sqsa-program-card .et_pb_button_module_wrapper {
  margin-top: auto;
}

/* Force blurb title + text color when linked */
/* Make all event cards equal height */
.sqsa-events-card {
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* Make Divi blurb fill full height */
.sqsa-events-card .et_pb_blurb_content {
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* Stretch body area */
.sqsa-events-card .et_pb_blurb_container {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

/* Push button to bottom */
.sqsa-events-card .sqsa-btn--primary {
    margin-top: auto;
}

/* Optional: make columns equal height too */
.et_pb_row {
    align-items: stretch;
}

.et_pb_column {
    display: flex;
}

/* =========================================
   SQSA Events Cards
========================================= */

.sqsa-events-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: 12px;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.sqsa-events-card .et_pb_blurb_content {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.sqsa-events-card .et_pb_blurb_container {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.sqsa-events-card .et_pb_blurb_description {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  height: 100%;
}

.sqsa-events-card .et_pb_blurb_description > div {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.sqsa-events-card .et_pb_blurb_description p {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

.sqsa-events-card .et_pb_blurb_content a,
.sqsa-events-card .et_pb_blurb_content a .et_pb_module_header,
.sqsa-events-card .et_pb_blurb_content a .et_pb_blurb_description,
.sqsa-events-card:hover .et_pb_module_header {
  color: #000000 !important;
}

.sqsa-events-card .sqsa-btn--primary {
  margin-top: auto;
  align-self: center;
}

.sqsa-events-card .sqsa-btn--primary,
.sqsa-events-card .sqsa-btn--primary:link,
.sqsa-events-card .sqsa-btn--primary:visited,
.sqsa-events-card .sqsa-btn--primary:hover,
.sqsa-events-card .sqsa-btn--primary:active {
  color: #ffffff !important;
}

.sqsa-events-card:hover {
  transform: translateY(-6px);
  box-shadow:
    0 12px 28px rgba(0, 0, 0, 0.18),
    0 0 0 2px #c89b00;
}

.sqsa-events-card img {
  transition: transform 0.25s ease;
}

.sqsa-events-card:hover img {
  transform: scale(1.03);
}

/* Iframe for entryeeze system */
.sqsa-iframe-wrap {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

.sqsa-iframe-wrap iframe {
  width: 100%;
  height: 1000px;
  border: 0;
}

@media (max-width: 767px) {
  .sqsa-iframe-wrap iframe {
    height: 1100px;
  }
}

/* sqsa schedules */

.sqsa-schedule {
    border: 2px solid #000;
    border-radius: 8px;
    padding: 1.4rem;
    background: #fff;
    height: 100%;
    box-sizing: border-box;  
    box-shadow: 0 8px 28px rgba(0,0,0,.08);
}

.sqsa-schedule__title {
    font-weight: bold!important;
    text-align: center!important;
}

.sqsa-schedule__title--print-only {
    display: none;
}

.sqsa-schedule__columns {
    display: grid;
    grid-template-columns: repeat(var(--sqsa-columns), minmax(0, 1fr));
    gap: 30px;
    align-items: stretch;
}

.sqsa-schedule__day,
.sqsa-schedule__notes {
    border: 2px solid #dadada;
    border-radius: 8px;
    box-shadow: 0 8px 28px rgba(0,0,0,.08);
    padding: 20px;
    background-color: var(--gcid-qcr4j87ku8);
    height: 100%;
    box-sizing: border-box;
}

.sqsa-schedule__notes-row {
    margin-top: 30px;
}

.sqsa-schedule__notes--span-remaining {
    grid-column: span var(--sqsa-notes-span, 1);
}

.sqsa-schedule__day h3,
.sqsa-schedule__notes h3 {
    margin-top: 0;
    padding-bottom: 1rem;
    text-align: center;
    font-weight: bold
}

.sqsa-schedule__session {
    margin-bottom: 14px;
}

.sqsa-schedule__session strong {
    display: block;
}

.sqsa-schedule .sqsa-print-button {
	margin-top: 24px;
}

body.sqsa-schedule-print-view #wpadminbar,
body.sqsa-schedule-print-view header,
body.sqsa-schedule-print-view footer,
body.sqsa-schedule-print-view .et-l--header,
body.sqsa-schedule-print-view .et-l--footer,
body.sqsa-schedule-print-view .print-hide,
body.sqsa-schedule-print-view .sqsa-print-button {
    display: none !important;
}

body.sqsa-schedule-print-view {
    background: #fff !important;
}

body.sqsa-schedule-print-view .sqsa-schedule {
    max-width: none;
    margin: 0 auto;
}

@media print {
    @page {
      margin: 0.35in;
    }

    #wpadminbar,
    header,
    footer,
    .et-l--header,
    .et-l--footer,
    .print-hide,
    .sqsa-print-button {
        display: none !important;
    }

    body {
        background: #fff !important;
    }

    .sqsa-schedule {
        font-size: var(--sqsa-print-base-font, 12px);
    }

    .sqsa-schedule__title {
        font-size: var(--sqsa-print-heading-font, 28px);
        line-height: 1.15;
        margin: 0 0 var(--sqsa-print-spacing, 12px);
        font-weight: bold!important;
        text-align: center!important;
    }

    .sqsa-schedule__title--print-only {
        display: block !important;
    }

    .sqsa-schedule__dates {
        margin: 0 0 var(--sqsa-print-spacing, 12px);
    }

    .sqsa-schedule__columns {
        gap: var(--sqsa-print-spacing, 12px);
    }

    .sqsa-schedule__day,
    .sqsa-schedule__notes {
        padding: var(--sqsa-print-spacing, 12px);
        break-inside: avoid;
    }

    .sqsa-schedule__notes-row {
        margin-top: var(--sqsa-print-spacing, 12px);
    }

    .sqsa-schedule__day h3,
    .sqsa-schedule__notes h3 {
        font-size: var(--sqsa-print-day-font, 18px);
        line-height: 1.15;
        padding-bottom: calc(var(--sqsa-print-spacing, 12px) * .5);
    }

    .sqsa-schedule__session {
        font-size: var(--sqsa-print-session-font, 14px);
        line-height: 1.25;
        margin-bottom: calc(var(--sqsa-print-spacing, 12px) * .75);
    }
}

/* Tablet: force exactly 2 equal-width columns, regardless of the desktop
   column count (--sqsa-columns, set per-schedule in ACF and often 3 or 4).
   Using a plain "repeat(2, minmax(0, 1fr))" here — instead of leaving the
   desktop repeat(var(--sqsa-columns), ...) value in place — is what
   actually guarantees 2 even tracks; letting the desktop column count
   carry through to a narrower tablet width is what produced the uneven
   columns. !important guards against Divi's own dynamically generated
   per-module CSS, which tends to load after this stylesheet and can win
   the cascade tie-break otherwise. */
@media (max-width: 980px) and (min-width: 768px) {
    .sqsa-schedule__columns {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Phone: stack every day/notes card in one full-width column. */
@media (max-width: 767px) {
    .sqsa-schedule__columns {
        grid-template-columns: 1fr !important;
    }
}

/* The "Notes" section can be set (per-schedule, via the ACF "make notes
   occupy remaining width" option) to span a fixed number of columns, e.g.
   --sqsa-notes-span:2 for a 4-column desktop layout. At tablet (2 columns)
   or phone (1 column) that fixed span can ask for MORE columns than
   actually exist, which forces the grid to silently create an extra
   auto-sized implicit column just to satisfy it — this is what was
   producing the two uneven, overflowing tracks instead of the intended
   single/2-equal-column stack. "grid-column: 1 / -1" always spans from the
   first to the last column line, so it automatically fills the full width
   of however many columns exist at the current breakpoint (1 on phone, 2
   on tablet) instead of a fixed, breakpoint-unaware count. */
@media (max-width: 980px) {
    .sqsa-schedule__notes--span-remaining {
        grid-column: 1 / -1 !important;
    }
}

/* sqsa rates table */
.sqsa-rates-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #ffffff;
  border: 1px solid #d8e0e4;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
  overflow: hidden;
}

.sqsa-rates-table td {
  padding: 14px 24px;
  /* border-bottom: 1px solid #d8e0e4; */
  font-size: 1rem;
  line-height: 1.4;
  padding: 8px 24px;
}

.sqsa-rates-table td:first-child {
  font-weight: 700;
}

.sqsa-rates-table td:last-child {
  text-align: right;
  white-space: nowrap;
}

.sqsa-rates-table tr:last-child td {
  border-bottom: none;
}

/* Entire FAQ/Accordion container */
.sqsa-toggle-container .et_pb_toggle {
  border: none;
  border-bottom: 1px solid #d8d8d8;
  margin-bottom: 0 !important;
  background: transparent;
}

/* Toggle header */
.sqsa-toggle-container .et_pb_toggle_title {
  font-family: 'Roboto', Helvetica, Arial, Lucida, sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.4;
  padding: 24px 50px 24px 0;
  color: #111;
  transition: all 200ms ease;
}

/* Gold title when toggle is open */
.sqsa-toggle-container .et_pb_toggle_open .et_pb_toggle_title {
  color: var(--gcid-primary-color) !important;
  padding-bottom: 1.5em;
  font-size: larger;
}

/* Toggle content */
.sqsa-toggle-container .et_pb_toggle_content {
  padding: 0;
  line-height: 1.75;
  font-size: 1rem;
  color: #333;
}

/* Content paragraphs */
.sqsa-toggle-container .et_pb_toggle_content p:last-child {
  margin-bottom: 0;
}

/* Lists */
.sqsa-toggle-container .et_pb_toggle_content ul {
  margin: 12px 0 0 0;
  padding-left: 2.5em;
  padding-bottom: 0;
}

.sqsa-toggle-container .et_pb_toggle_content li {
  margin-bottom: 8px;
}

/* Open state */
.sqsa-toggle-container .et_pb_toggle_open {
  background: #fafafa;
}

/* Plus/minus icon */
.sqsa-toggle-container .et_pb_toggle_title:before {
  color: var(--gcid-primary-color);
  font-size: 26px;
  right: 0;
  transition: all 200ms ease;
}

/* Hover */
.sqsa-toggle-container .et_pb_toggle_title:hover {
  color: var(--gcid-primary-color);
}

/* Remove Divi default padding weirdness */
.sqsa-toggle-container .et_pb_toggle_content.clearfix {
  padding-top: 0;
}


/* =========================================
   Forminator / SQSA Styling
========================================= */

/* =========================================================
   FORMINATOR COLUMN WIDTH HELPERS
   Add these classes to fields:
   
   two-thirds
   one-third
   three-quarters
   one-quarter
========================================================= */

@media (min-width: 768px) {

    /* 2/3 width */
    .forminator-row .two-thirds {
        width: 66.666% !important;
        max-width: 66.666% !important;
        flex: 0 0 66.666% !important;
    }

    /* 1/3 width */
    .forminator-row .one-third {
        width: 33.333% !important;
        max-width: 33.333% !important;
        flex: 0 0 33.333% !important;
    }

    /* 3/4 width */
    .forminator-row .three-quarters {
        width: 75% !important;
        max-width: 75% !important;
        flex: 0 0 75% !important;
    }

    /* 1/4 width */
    .forminator-row .one-quarter {
        width: 25% !important;
        max-width: 25% !important;
        flex: 0 0 25% !important;
    }

}


.forminator-ui {
  font-family: inherit;
}

/* Labels */
.forminator-ui .forminator-label {
  display: block;
  margin-bottom: 6px;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #1f2b3a;
}

/* Field descriptions */
.forminator-ui .forminator-description {
  font-size: 14px;
  line-height: 1.1;
  color: #666;
}

/* Inputs + textareas */
.forminator-ui .forminator-input,
.forminator-ui .forminator-textarea,
.forminator-ui input,
.forminator-ui textarea,
.forminator-ui select {
  border: 1px solid #d6dbe3;
  border-radius: 4px;
  background: #fff;
  color: #1f2b3a;
  font-family: inherit;
  font-size: 16px;
  box-shadow: none;
}

.forminator-ui .forminator-input,
.forminator-ui .forminator-textarea {
  width: 100%;
  min-height: 54px;
  padding: 14px 16px;
  line-height: 1.4;
}

.forminator-ui .forminator-textarea {
  min-height: 160px;
}

/* Radios + checkboxes */
.forminator-ui input[type="radio"],
.forminator-ui input[type="checkbox"] {
  accent-color: #A67600 !important;
}

.forminator-ui .forminator-checkbox-label,
.forminator-ui label {
  font-size: 1rem !important;
  line-height: 1.5 !important;
}

/* Select wrapper */
.forminator-ui .forminator-select {
  width: 100% !important;
}

/* Select text */
.forminator-ui .select2-selection__placeholder,
.forminator-ui .select2-selection__rendered,
.forminator-ui .select2-results__option {
  font-size: 1rem !important;
}

.forminator-ui .select2-selection__placeholder,
.forminator-ui .select2-selection__rendered {
  font-weight: 700;
}

/* Select base, arrow, and open/focus states */
.forminator-ui .select2-selection--single,
.forminator-ui .select2-selection__arrow,
.forminator-ui .select2-selection__rendered,
.forminator-ui .select2-container--open .select2-selection--single,
.forminator-ui .select2-container--focus .select2-selection--single,
.forminator-ui .select2-container--open .select2-selection__arrow,
.forminator-ui .select2-container--focus .select2-selection__arrow {
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  box-shadow: none !important;
}

/* Select focus/open border */
.forminator-ui .select2-container--open .select2-selection,
.forminator-ui .select2-container--focus .select2-selection,
.forminator-ui .select2-selection:focus {
  border-color: #A67600 !important;
  outline: none !important;
  box-shadow: none !important;
}

/* Dropdown arrow */
.forminator-ui .select2-selection__arrow,
.forminator-ui .forminator-icon-chevron-down:before,
.forminator-ui .forminator-icon-chevron-up:before {
  color: #A67600 !important;
  border: none !important;
}

/* Remove arrow overlay effects */
.forminator-ui .select2-selection__arrow::before,
.forminator-ui .select2-selection__arrow::after,
.forminator-ui .select2-container--open .select2-selection__arrow::before,
.forminator-ui .select2-container--open .select2-selection__arrow::after {
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

/* Remove dropdown outlines */
.forminator-select-dropdown-container--open .select2-results__option {
  outline: none !important;
}

/* Dropdown selected option */
.forminator-select-dropdown-container--open .select2-results__option[aria-selected="true"],
.forminator-select-dropdown-container--open .select2-results__option.select2-results__option--selected {
  background: #A67600 !important;
  background-color: #A67600 !important;
  color: #fff !important;
}

/* Dropdown hovered option */
.forminator-select-dropdown-container--open .select2-results__option--highlighted,
.forminator-select-dropdown-container--open .select2-results__option.select2-results__option--highlighted {
  background: #f8efd1 !important;
  background-color: #f8efd1 !important;
  color: #111 !important;
}

/* Selected + hovered option */
.forminator-select-dropdown-container--open .select2-results__option--selected.select2-results__option--highlighted {
  background: #f8efd1 !important;
  background-color: #f8efd1 !important;
  color: #111 !important;
}

/* Remove select outer glow */
.forminator-ui .select2-container--open,
.forminator-ui .select2-container--focus {
  outline: none !important;
  box-shadow: none !important;
}

/* Submit button */
.forminator-ui .forminator-button-submit {
  position: relative;
  display: inline-block;
  padding: 0.3em 1em !important;
  background-color: var(--gcid-5co3hho28j) !important;
  border: 2px solid var(--gcid-5co3hho28j) !important;
  border-radius: 3px !important;
  color: #ffffff !important;
  font-family: 'Inter', Helvetica, Arial, Lucida, sans-serif;
  font-size: 20px !important;
  font-weight: 700;
  line-height: 1.7em !important;
  cursor: pointer;
  transition: all 0.25s ease;
}

/* Submit button arrow */
.forminator-ui .forminator-button-submit::after {
  content: '$';
  font-family: 'ETmodules';
  position: absolute;
  top: 50%;
  right: 0.6em;
  transform: translateY(-50%);
  opacity: 0;
  margin-left: -10px;
  transition: all 0.25s ease;
}

.forminator-ui .forminator-button-submit:hover {
  padding-right: 2em !important;
  background-color: var(--gcid-5acuenga5j) !important;
  border-color: var(--gcid-5acuenga5j) !important;
  color: #fff !important;
}

.forminator-ui .forminator-button-submit:hover::after {
  opacity: 1;
  margin-left: 0;
}


/* =========================================
   Forminator Registration Form Extras
========================================= */

/* Full Class Styling */
.forminator-sqsa-option-full {
  opacity: 0.55;
  cursor: not-allowed;
}

.forminator-sqsa-option-full .forminator-checkbox-box {
  background: #eee !important;
  border-color: #ccc !important;
  opacity: 0.5 !important;
}

.forminator-sqsa-option-full .forminator-checkbox-label {
  cursor: not-allowed;
  color: #999 !important;
}

.forminator-sqsa-option-waitlist .forminator-checkbox-label {
  color: #1a6134;
}

/* Waiver block */
.forminator-ui .sqsa-forminator-waiver {
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 12px 16px;
  margin-bottom: 20px;
  background: #fff;
}

.forminator-ui .sqsa-forminator-waiver summary {
  cursor: pointer;
  font-weight: 700;
}

.forminator-ui .sqsa-forminator-waiver-content {
  margin-top: 12px;
  font-size: 14px;
  line-height: 1.5;
}


/* =========================================
   Learn to skate schedule css
========================================= */

.sqsa-lts-schedule {
  max-width: 1200px;
  margin: 0 auto;
}

.sqsa-lts-schedule__title {
  text-align: center;
  margin-bottom: 28px;
  font-weight: 700;
}

.sqsa-lts-schedule__day {
  margin-bottom: 36px;
}

.sqsa-lts-schedule__day-title {
  text-align: center;
  margin-bottom: 22px;
  font-weight: 700;
}

.sqsa-lts-schedule__time-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.sqsa-lts-schedule__time-card {
  overflow: hidden;
  background: #eef3f7;
  border: 1px solid #d6dbe3;
  border-radius: 8px;
}

.sqsa-lts-schedule__time {
  padding: 24px 18px 14px;
  font-size: 1.45rem;
  font-weight: 700;
  text-align: center;
}

.sqsa-lts-schedule__table-header {
  display: grid;
  grid-template-columns: 1fr 56px;
  gap: 12px;
  padding: 10px 18px;
  background: rgba(0,0,0,0.08);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #222;
}

.sqsa-lts-schedule__table-header span:last-child {
  text-align: right;
}

.sqsa-lts-schedule__classes {
  background: rgba(0,0,0,0.08);
  padding: 0 12px 12px;
}

.sqsa-lts-schedule__class {
  padding: 12px;
  border-radius: 6px;
}

.sqsa-lts-schedule__class:nth-child(odd) {
  background: rgba(255,255,255,0.55);
}

.sqsa-lts-schedule__class:nth-child(even) {
  background: rgba(0,0,0,0.035);
}

.sqsa-lts-schedule__class + .sqsa-lts-schedule__class {
  margin-top: 8px;
}

.sqsa-lts-schedule__class-main {
  display: grid;
  grid-template-columns: 1fr 56px;
  gap: 12px;
  align-items: start;
}

.sqsa-lts-schedule__class-name {
  display: block;
  font-size: 0.74rem;
  line-height: 1.3;
  font-weight: 500;
  letter-spacing: 0.01em;
}

.sqsa-lts-schedule__code {
  font-size: 0.74rem;
  line-height: 1.3;
  font-weight: 500;
  text-align: right;
}

.sqsa-lts-schedule__meta {
  margin-top: 2px;
  font-size: 0.74rem;
  line-height: 1.3;
  font-weight: 400;
  color: #555;
}

.sqsa-lts-schedule__parents {
  display: block;
  font-style: normal;
}

.sqsa-lts-schedule__status {
	display: block;
	margin-top: 4px;
	font-size: 0.85em;
}

.sqsa-lts-schedule__status--full,
.sqsa-lts-schedule__status--closed {
	color: #888;
}

.sqsa-lts-schedule__status--full strong,
.sqsa-lts-schedule__status--closed strong {
	color: #b42318;
}

.sqsa-lts-schedule__status--wait {
	color: #1a6134;
}

.sqsa-lts-schedule__status--wait strong {
	color: #1a6134;
}

.sqsa-lts-schedule__print {
    display: inline-block;
    margin-top: 24px;
}

.sqsa-lts-schedule__actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 24px;
	flex-wrap: wrap;
	gap: 12px;
}

.sqsa-lts-schedule__actions .sqsa-btn--primary {
	padding: 12px 24px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	line-height: 1.2 !important;
	box-sizing: border-box !important;
	vertical-align: middle !important;
}

.sqsa-lts-schedule__actions .sqsa-btn--primary::after {
	display: none !important;
}

/* Standalone button style for LTS schedule actions — not inheriting Divi sqsa-btn--primary */
.sqsa-lts-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--gcid-primary-color, #b8950a);
	color: #ffffff;
	font-family: 'Roboto', Helvetica, Arial, sans-serif;
	font-weight: 700;
	font-size: 1.2rem;
	letter-spacing: 0.5px;
	border: 3px solid var(--gcid-primary-color, #b8950a);
	border-radius: 4px;
	padding: 12px 24px;
	line-height: 1.2;
	cursor: pointer;
	text-decoration: none;
	box-sizing: border-box;
	transition: background-color 300ms ease, border-color 300ms ease;
}

.sqsa-lts-btn:hover {
	background-color: #c99700;
	border-color: #c99700;
	color: #ffffff;
}

.sqsa-lts-schedule__details {
	margin-top: 6px;
	padding-top: 6px;
	border-top: 1px solid rgba(0,0,0,0.08);
}

.sqsa-lts-schedule__details-meta {
	display: block;
	font-size: 0.8em;
	font-weight: 500;
	margin-bottom: 4px;
}

.sqsa-lts-schedule__details-desc {
	margin: 0;
	font-size: 0.75em;
	line-height: 1.4;
	color: #555;
}

@media (max-width: 980px) {
  .sqsa-lts-schedule__time-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .sqsa-lts-schedule__time-grid {
    grid-template-columns: 1fr;
  }
}

/* =============================================================================
   SQSA Schedule Form Admin — Frontend Editor Styles
   Add to theme style.css
   ============================================================================= */

.sqsa-schedule-form-admin {
	max-width: 960px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

.sqsa-admin-notice {
	padding: 12px 16px;
	margin-bottom: 20px;
	border-left: 4px solid #111;
	background: #f7f7f7;
}

.sqsa-admin-notice--success { border-left-color: #267a3d; }
.sqsa-admin-notice--error   { border-left-color: #b42318; }

.sqsa-field-grid,
.sqsa-meta-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(220px, 320px) !important;
	gap: 14px !important;
}

.sqsa-field-grid--selector {
	margin-bottom: 24px;
}

.sqsa-field-grid label span {
	display: block;
	font-weight: 700;
	margin-bottom: 6px;
}

.sqsa-field-grid input,
.sqsa-field-grid select,
.sqsa-field-grid textarea,
.sqsa-option-table input,
.sqsa-option-table select {
	width: 100%;
	box-sizing: border-box;
	padding: 8px;
}

.sqsa-field-grid textarea {
	min-height: 120px;
}

/* Class Level Summary Description — short, ~2-line field, deliberately
   much shorter than the full Class Level Description textarea above it. */
.sqsa-field-grid textarea.sqsa-field-textarea--short {
	min-height: 48px !important;
}

.sqsa-editor-card {
	padding: 16px !important;
	margin-bottom: 24px;
	border: 1px solid #ddd;
	background: #fff;
}

.sqsa-option-table-wrap {
	overflow-x: visible !important;
}

.sqsa-option-table {
	width: 100%;
	max-width: 860px !important;
	border-collapse: collapse;
	margin-bottom: 16px;
	table-layout: fixed !important;
}

.sqsa-option-table th,
.sqsa-option-table td {
	padding: 6px 8px !important;
	border-bottom: 1px solid #ddd;
	vertical-align: top;
}

.sqsa-option-table th { text-align: left; }

.sqsa-option-table th:nth-child(1),
.sqsa-option-table td:nth-child(1) { width: 13% !important; }

.sqsa-option-table th:nth-child(2),
.sqsa-option-table td:nth-child(2),
.sqsa-option-table th:nth-child(3),
.sqsa-option-table td:nth-child(3) { width: 12% !important; }

.sqsa-option-table th:nth-child(4),
.sqsa-option-table td:nth-child(4),
.sqsa-option-table th:nth-child(5),
.sqsa-option-table td:nth-child(5) { width: 14% !important; }

.sqsa-option-table th:nth-child(6),
.sqsa-option-table td:nth-child(6) {
	width: 10% !important;
	text-align: center !important;
}

.sqsa-option-table input,
.sqsa-option-table select          { max-width: 100% !important; }
.sqsa-option-table td:nth-child(1) input  { max-width: 110px !important; }
.sqsa-option-table td:nth-child(2) select,
.sqsa-option-table td:nth-child(3) select { max-width: 110px !important; }
.sqsa-option-table td:nth-child(4) input,
.sqsa-option-table td:nth-child(5) input  { max-width: 120px !important; }

.sqsa-remove-cell {
	white-space: nowrap !important;
	text-align: center !important;
}

.sqsa-icon-btn {
	background: none !important;
	border: none !important;
	padding: 4px 6px !important;
	cursor: pointer !important;
	font-size: 16px !important;
	line-height: 1 !important;
	border-radius: 3px !important;
	opacity: 0.7;
	transition: opacity 0.15s, background 0.15s;
}

.sqsa-duplicate-row {
	font-size: 20px !important;
}

.sqsa-icon-btn:hover {
	opacity: 1;
	background: #f0f0f0 !important;
}

.sqsa-delete-row:hover {
	background: #fdecea !important;
}

.sqsa-duplicate-row:hover {
	background: #e8f5e9 !important;
}

.sqsa-no-option-rows td {
	padding: 14px 8px !important;
	color: #666;
	font-style: italic;
	text-align: left !important;
}

.sqsa-editor-actions {
	margin-top: 24px;
}

.sqsa-editor-actions--right {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 12px;
}

/* Space above Available For Parents fieldset */
.sqsa-fieldset--parents {
	margin-top: 20px;
}

.sqsa-fieldset--parents legend {
	font-weight: 700;
}

/* Space above the meta row (Price, Duration, Sort Order — Ecwid Product
   moved up next to Class Type in the type-product row) */
.sqsa-field-grid--meta4 {
	margin-top: 20px;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

/* Row 1: Class Name, full width — kept on its own row/grid so a conditional
   sibling item (the rename warning notice) can't shift later grid items into
   the wrong column via auto-placement. */
.sqsa-field-grid--name-only {
	grid-template-columns: 1fr !important;
}

/* Row 2: Class Type (start) | Ecwid Product (right half) — equal halves;
   Ecwid Product's "Name (ID)" value can run long, so it gets a full 50% of
   the row rather than a narrow fixed column. */
.sqsa-field-grid--type-product {
	margin-top: 20px;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
}

/* Full-width description row */
.sqsa-field-grid--full {
	grid-template-columns: 1fr !important;
}

/* Normalise all input/select/textarea borders inside the editor card */
.sqsa-class-admin-editor input,
.sqsa-class-admin-editor select,
.sqsa-class-admin-editor textarea {
	border: 1px solid #8c8f94;
	border-radius: 3px;
}

.sqsa-new-class-heading {
	margin-bottom: 16px;
}

.sqsa-new-class-label {
	font-weight: 700;
	font-size: 1em;
	margin: 0;
}

.sqsa-field-label--class-type > span {
	font-weight: 700;
}

.sqsa-field-row--class-type {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 20px;
	margin-top: 6px;
}

.sqsa-radio-label {
	display: flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
	white-space: nowrap;
}

.sqsa-sync-actions {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 10px;
	padding-top: 18px;
	border-top: 1px solid #ddd;
}

/* Shown on both the Class Admin and Class Options Editor pages whenever
   Sync 2 hasn't been run since the last change (sqsa_is_sync2_pending()) —
   deliberately loud so it isn't mistaken for a routine "everything's fine"
   action button. */
.sqsa-sync-actions--pending {
	border-top-color: #c9982a;
	background: #fef9ed;
	padding: 14px;
	border-radius: 6px;
	border-top-width: 2px;
}

.sqsa-sync-actions--pending .sqsa-btn--primary {
	background: #c9982a;
	border-color: #c9982a;
}

.sqsa-sync-actions--pending .sqsa-btn--primary:hover {
	background: #ad8324;
	border-color: #ad8324;
}

.sqsa-sync-pending-text {
	font-weight: 600;
	color: #92660a;
}

.sqsa-sync-status {
	font-weight: 600;
}

.sqsa-sync-status.is-success { color: #267a3d; }
.sqsa-sync-status.is-error   { color: #b42318; }

.sqsa-sync-warning-notice {
	font-weight: 600;
	color: #92660a;
	background: #fef9ed;
	border-left: 4px solid #c9982a;
	padding: 10px 14px;
	margin: 0;
}

.sqsa-sync-error-notice {
	font-weight: 600;
	color: #b42318;
	background: #fdf0ee;
	border-left: 4px solid #b42318;
	padding: 10px 14px;
	margin: 8px 0 0;
}

/* Class editor card layout */
.sqsa-editor-card .sqsa-meta-grid {
	display: grid !important;
	grid-template-columns: minmax(0, 3fr) minmax(0, 1fr) !important;
	gap: 12px 28px !important;
	align-items: start !important;
}

.sqsa-editor-card .sqsa-meta-grid p {
	margin: 0 !important;
	padding-bottom: 0;
}

.sqsa-editor-card .sqsa-meta-grid .sqsa-meta-grid-full {
	grid-column: 1 / -1 !important;
}

/* Class Options summary row (Form / Type / Ecwid Product) — Ecwid Product's
   "Name (ID)" value can run long, so this instance gets a much wider second
   column than the default 3fr/1fr split used elsewhere (e.g. Form Name/Form ID). */
.sqsa-editor-card .sqsa-meta-grid--class-summary {
	grid-template-columns: minmax(0, 1fr) minmax(280px, 480px) !important;
}

.sqsa-field-grid--class-details {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 16px 20px !important;
}

.sqsa-field-grid--class-details .sqsa-field-full {
	grid-column: 1 / -1 !important;
}

.sqsa-field-grid--class-details textarea {
	width: 100% !important;
	min-height: 140px !important;
}

@media (max-width: 760px) {
	.sqsa-field-grid,
	.sqsa-meta-grid,
	.sqsa-editor-card .sqsa-meta-grid,
	.sqsa-editor-card .sqsa-meta-grid--class-summary,
	.sqsa-field-grid--class-details {
		grid-template-columns: 1fr !important;
	}
}

/* =========================================
   SQSA Read Only Admin Fields
========================================= */

.sqsa-readonly-fields {
  margin-top: 20px;
}

.sqsa-readonly-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* Duration, Price, Sort Order — Ecwid Product moved up next to Type */
  gap: 24px;
  margin-top: 24px;
}

.sqsa-readonly-field strong {
  display: block;
  margin-bottom: 8px;
  font-size: 0.95rem;
  font-weight: 700;
  color: #222;
}

.sqsa-readonly-field p {
  margin: 0;
  padding: 14px 16px;
  border: 1px solid #d6dbe3;
  background: #f7f8fa;
  border-radius: 4px;
  font-size: 1rem;
  line-height: 1.5;
  color: #444;
}

.sqsa-readonly-field p:empty::before {
  content: "—";
  color: #999;
}

@media (max-width: 980px) {
  .sqsa-readonly-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .sqsa-readonly-grid {
    grid-template-columns: 1fr;
  }
}
/* =============================================================================
   LTS Class List [sqsa_lts_class_list]
   ============================================================================= */

.sqsa-lts-class-list {
	margin: 0;
	/* Overridable per-placement via the shortcode's "spacing" attribute
	   (rendered as an inline custom property on this element) — this
	   value is just the fallback used when that attribute is omitted. */
	--sqsa-lts-class-list-gap: 0.9em;
}

.sqsa-lts-class-list__item {
	margin: 0 0 var(--sqsa-lts-class-list-gap);
	/* Divi's base stylesheet puts padding-bottom: 1em on every <p> — without
	   this override that 1em shows up as extra gap no matter what the
	   "spacing" attribute (and the margin above) is set to. */
	padding-bottom: 0;
	line-height: 1.5;
	color: #444;
}

.sqsa-lts-class-list__item strong {
	color: #1a1a1a;
}

.sqsa-lts-class-list__item:last-child {
	margin-bottom: 0;
}

/* =============================================================================
   sqsa-competition-grid
   ============================================================================= */
.sqsa-comp-tbl {
  --sqsa-comp-col-1: 2.6fr;
  --sqsa-comp-col-2: 1.15fr;
  --sqsa-comp-col-3: 2.4fr;
  --sqsa-comp-col-4: 1.55fr;

  --sqsa-comp-grid-color: #c89b00;
  --sqsa-comp-heading-bg: #c89b00;
  --sqsa-comp-border-width: 1px;
  --sqsa-comp-radius: 8px;
}

.sqsa-comp-tbl .sqsa-competition-table {
  width: 100%;
  border: var(--sqsa-comp-border-width) solid var(--sqsa-comp-grid-color);
  border-radius: var(--sqsa-comp-radius);
  overflow: hidden;
  margin-top: 40px;
}

.sqsa-comp-tbl .sqsa-comp-row {
  display: grid;
  grid-template-columns:
    var(--sqsa-comp-col-1)
    var(--sqsa-comp-col-2)
    var(--sqsa-comp-col-3)
    var(--sqsa-comp-col-4);
  border-bottom: var(--sqsa-comp-border-width) solid var(--sqsa-comp-grid-color);
  background: #fff;
}

.sqsa-comp-tbl .sqsa-comp-row:last-child {
  border-bottom: none;
}

.sqsa-comp-tbl .sqsa-comp-row > div {
  padding: 18px 20px;
  border-right: var(--sqsa-comp-border-width) solid var(--sqsa-comp-grid-color);
}

.sqsa-comp-tbl .sqsa-comp-row > div:last-child {
  border-right: none;
}

.sqsa-comp-tbl .sqsa-comp-header {
  background: var(--sqsa-comp-heading-bg);
  color: #ffffff;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.9rem;
}

.sqsa-comp-tbl .sqsa-comp-header > div {
  color: #ffffff;
  text-align: center;
}

.sqsa-comp-tbl .sqsa-comp-row:not(.sqsa-comp-header) > div:first-child {
  display: flex;
  align-items: flex-start;
  gap: 1px;
}

.sqsa-comp-tbl .sqsa-comp-number {
  flex: 0 0 28px;
  font-weight: 700;
  line-height: 1.4;
}

.sqsa-comp-tbl .sqsa-comp-name {
  flex: 1 1 auto;
  min-width: 0;
  line-height: 1.4;
}

.sqsa-comp-tbl .sqsa-comp-row:nth-child(even):not(.sqsa-comp-header) {
  background: #fffaf0;
}

.sqsa-comp-tbl .sqsa-comp-row strong {
  color: #000;
}

.sqsa-comp-tbl .closed {
  color: #777;
  font-weight: 700;
}

.sqsa-comp-tbl .tbd {
  color: #c89b00;
  font-weight: 700;
}

@media (max-width: 980px) {
  .sqsa-comp-tbl .sqsa-comp-header {
    display: none;
  }

  .sqsa-comp-tbl .sqsa-comp-row {
    grid-template-columns: 1fr;
  }

  .sqsa-comp-tbl .sqsa-comp-row > div {
    border-right: none;
    border-bottom: var(--sqsa-comp-border-width) solid var(--sqsa-comp-grid-color);
  }

  .sqsa-comp-tbl .sqsa-comp-row > div:last-child {
    border-bottom: none;
  }
}

.team-featured-coaches-carousel .coach-title {
    min-height: 90px;
}

/* =============================================================================
   SQSA Notification Email Routing [sqsa_notification_email_routing]
   Rita-facing editor: Descriptor + placeholder address are read-only
   reference text (set by the "critical" user in ACF), the Actual Email
   Address input is the only editable field.
   ============================================================================= */

.sqsa-field-hint {
	margin: 4px 0 0;
	font-size: 0.85em;
	color: #666;
}

.sqsa-notification-routing-table {
	width: 100%;
	max-width: 900px;
	border-collapse: collapse;
	margin-bottom: 16px;
	table-layout: fixed;
}

.sqsa-notification-routing-table th,
.sqsa-notification-routing-table td {
	padding: 12px 14px;
	border-bottom: 1px solid #ddd;
	vertical-align: top;
	text-align: left;
}

.sqsa-notification-routing-table th {
	font-weight: 700;
}

.sqsa-notification-routing-table th:first-child,
.sqsa-notification-routing-table td:first-child,
.sqsa-notification-routing-table th:last-child,
.sqsa-notification-routing-table td:last-child {
	width: 50%;
}

/* =============================================================================
   The Events Calendar — datepicker "current" (today) contrast fix
   ============================================================================= */

/*
 * The Events Calendar Customizer's "Accent Color" (Appearance > Customize >
 * The Events Calendar > Global Elements) only sets --tec-color-accent-primary,
 * which this datepicker "current month/day/year" indicator uses for BOTH its
 * background (via a separate pale-tint variable that falls back to this same
 * full-strength value when unset) and its text color. Result: text and
 * background both end up the same solid gold, so the label disappears.
 *
 * Lightening just the background wasn't enough on its own — full-strength
 * gold text still doesn't have enough contrast against a pale gold wash.
 * So this also redefines --tec-color-accent-primary itself to a darker
 * shade, but scoped only to these "current" elements (and their ::before
 * border, which uses the same variable) rather than :root — CSS custom
 * properties cascade to descendants of whatever selector sets them, so this
 * doesn't touch the Find Events button, tab underlines, or anything else
 * on the page that also references --tec-color-accent-primary.
 */
.tribe-events .datepicker .day.current,
.tribe-events .datepicker .month.current,
.tribe-events .datepicker .year.current {
	--tec-color-accent-primary-background-datepicker: rgba(201, 151, 0, 0.28);
	--tec-color-accent-primary: #5c4400;
}

/* =============================================================================
   Single category event detail [sqsa_category_event]
   ============================================================================= */

/* When [sqsa_category_event] renders more than one event (limit="3" or
   limit="all"), each .sqsa-category-event block stacks inside this wrapper.
   A divider line + top spacing on every event after the first keeps them
   visually separated instead of running together. */
.sqsa-category-event-list .sqsa-category-event + .sqsa-category-event {
	margin-top: 3em;
	padding-top: 3em;
	border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.sqsa-category-event {
	max-width: 1100px;
	margin: 0 auto;
	text-align: left;
	display: flex;
	align-items: center;
	gap: 2.5em;
}

.sqsa-category-event__image-link {
	display: block;
	flex: 0 0 42%;
	max-width: 420px;
}

.sqsa-category-event__image-link img {
	width: 100%;
	border-radius: 6px;
	display: block;
}

.sqsa-category-event__content {
	flex: 1 1 auto;
	min-width: 0;
}

@media (max-width: 767px) {
	.sqsa-category-event {
		flex-direction: column;
		gap: 1.2em;
	}

	.sqsa-category-event__image-link {
		flex: 0 0 auto;
		max-width: 100%;
	}
}

.sqsa-category-event__title {
	margin: 0 0 0.4em;
	text-align: center;
}

.sqsa-category-event__title a {
	color: inherit;
	text-decoration: none;
}

.sqsa-category-event__schedule {
	font-weight: 700;
	color: #c99700;
	margin: 0 0 0.6em;
}

.sqsa-category-event__venue {
	margin: 0 0 1em;
	color: #444;
	line-height: 1.5;
}

.sqsa-category-event__description {
	margin: 0 0 1.2em;
	line-height: 1.6;
	color: #333;
}

.sqsa-category-event__link a {
	display: inline-block;
	padding: 10px 22px;
	background-color: #c99700;
	color: #fff;
	text-decoration: none;
	border-radius: 4px;
	font-weight: 700;
}

.sqsa-category-event__link a:hover {
	background-color: #a67600;
}

.sqsa-category-event__empty {
	text-align: center;
	color: #666;
}

.sqsa-notification-routing-table textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 8px;
	border: 1px solid #8c8f94;
	border-radius: 3px;
	min-height: 90px;
	font-family: inherit;
	font-size: inherit;
	resize: vertical;
}
/* Coach card hover -- homepage "Leadership Team" carousel and the
   /coaches/ page's Divi Loop.

   The "sqsa-coach-card" class is added via Divi's own "CSS Class" field
   (Advanced tab) to each loop's outer element -- a Group module on the
   homepage carousel, a full Column on the /coaches/ page grid. That outer
   element is much bigger than the coach's photo (on /coaches/ it's the
   whole column, photo + name + bio text), so the hover effect below is
   scoped to the ".sqsa-muted-image" photo inside it -- not the card's own
   ::after -- otherwise hovering anywhere in that column shades the entire
   thing instead of just the picture.

   Hovering anywhere on the card triggers it (the card stays the click
   target), but only the photo darkens and shows a "View Profile" button
   styled to match the site's own buttons (see .et_pb_button in the Divi
   parent stylesheet: #c99600 background, white text, 600 weight, 4px
   radius). */
.sqsa-coach-card {
	cursor: pointer;
}

.sqsa-coach-card .sqsa-muted-image {
	position: relative;
	overflow: hidden;
}

.sqsa-coach-card .sqsa-muted-image::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(201, 150, 0, 0.35);
	opacity: 0;
	transition: opacity 0.2s ease;
	pointer-events: none;
	z-index: 2;
}

.sqsa-coach-card .sqsa-muted-image::before {
	content: "View Profile";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background-color: #c99600;
	color: #ffffff;
	font-family: Inter, Helvetica, Arial, Lucida, sans-serif;
	font-weight: 600;
	font-size: 16px;
	letter-spacing: 0.5px;
	padding: 16px 28px;
	border-radius: 4px;
	white-space: nowrap;
	opacity: 0;
	transition: opacity 0.2s ease;
	pointer-events: none;
	z-index: 3;
}

.sqsa-coach-card:hover .sqsa-muted-image::after,
.sqsa-coach-card:hover .sqsa-muted-image::before {
	opacity: 1;
}

/* Divi back-to-top button */
.et_pb_scroll_top.et-pb-icon {
    right: 24px;
    bottom: 24px;

    width: 48px;
    height: 48px;
    padding: 0;

    color: var(--gcid-secondary-color) !important;
    background-color: #f8efd1 !important;

    font-size: 28px;
    line-height: 48px;
    text-align: center;

    border: none;
    border-radius: 5px;

    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);

    transition:
        opacity 0.2s ease,
        transform 0.2s ease,
        filter 0.2s ease,
        box-shadow 0.2s ease;

    z-index: 9999;
}

/* Hidden near the top */
.et_pb_scroll_top.et-pb-icon.et-hidden {
    opacity: 0 !important;
    pointer-events: none;
}

/* Visible after Divi's scroll threshold */
.et_pb_scroll_top.et-pb-icon.et-visible {
    opacity: 0.8 !important;
    pointer-events: auto;
}

/* Hover */
.et_pb_scroll_top.et-pb-icon.et-visible:hover {
    color: var(--gcid-secondary-color) !important;
    background-color: #f8efd1 !important;

    opacity: 1 !important;
    transform: translateY(-3px);
    filter: brightness(1.12);

    box-shadow: 0 7px 18px rgba(0, 0, 0, 0.35);
}

/* Phone */
@media (max-width: 767px) {
    .et_pb_scroll_top.et-pb-icon {
        right: 14px;
        bottom: 14px;

        width: 42px;
        height: 42px;

        font-size: 24px;
        line-height: 42px;
    }
}