/*
 Theme Name:  Divi Child Theme
 Theme URI:    https://divilife.com
 Description:  Child Theme for Divi
 Author:       Tim Strifler
 Author URI:   https://divilife.com
 Template:     Divi
 Version:      1.0.0
*/

/***** Add any custom CSS below this line *****/

/* Do NOT restyle the WP admin toolbar */
#wpadminbar, #wpadminbar * {
  font-family: dashicons, inherit !important;
  font-weight: 400;
  font-style: normal;
}

/* Restore dashicons glyphs explicitly */
#wpadminbar .ab-icon:before,
#wpadminbar .ab-item:before,
.dashicons, .dashicons:before, .dashicons-before:before {
  font-family: dashicons !important;
  font-weight: 400;
  font-style: normal;
}
html, body {
  width: 100%;
  overflow-x: hidden;
  background-color: #0b1b2b !importnat;
}
#page-container {
  background-color: #0b1b2b !important;
}
/* Older iPhones may experience scrolling issues in fixed or overflow elements */
.et_mobile_menu {
    overflow-y: auto; /* Allow smooth vertical scrolling */
    -webkit-overflow-scrolling: touch; /* Enable momentum scrolling */
}

body {
    overscroll-behavior: contain; /* Prevent overscroll bounce */
}

/* === Make Divi Text Module toolbar sticky === */
/* In Visual Builder modal */
.et-fb-modal .mce-top-part,
.et-fb-modal .mce-toolbar-grp,
.et-fb-modal .wp-editor-tools {
  position: sticky !important;
  top: 0;                 /* sticks to top of modal */
  z-index: 9999;          /* ensure above editor body */
  background: #fff;       /* white background so it doesn’t overlap text */
  box-shadow: 0 1px 2px rgba(0,0,0,0.08);
}

/* In backend builder (classic mode) */
.et-db #et_pb_tiny_mce_buttons .mce-top-part,
.et-db #et_pb_tiny_mce_buttons .mce-toolbar-grp,
.et-db #et_pb_tiny_mce_buttons .wp-editor-tools {
  position: sticky !important;
  top: 32px;              /* accounts for WP admin bar */
  z-index: 9999;
  background: #fff;
}

/* =========================================
   MOOV Global Buttons
   Small + Large, Light + Dark
   No underline, arrow included, color swap
========================================= */

/* Reset link text-decoration */
.moov-btn,
.moov-btn:link,
.moov-btn:visited,
.moov-btn:hover,
.moov-btn:focus,
.moov-btn:active {
  text-decoration: none !important;
}

/* Base button */
.moov-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;                      /* space between label and arrow */
  height: 40px;
  padding: 0 16px;
  border-radius: 8px;
  border: 0;
  font-family: "CaseLocal", sans-serif !important;
  font-size: 16px;
  line-height: 1.45;              /* 145% */
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}

/* Large size */
.moov-btn.btn--lg {
  height: 56px;
  padding: 0 24px;
}

/* Light variant */
.moov-btn.btn--light {
  background: #00FFE1;
  color: #000D1A;
}
.moov-btn.btn--light:hover,
.moov-btn.btn--light:focus-visible {
  background: #000D1A;
  color: #00FFE1;
}

/* Dark variant */
.moov-btn.btn--dark {
  background: #000D1A;
  color: #00FFE1;
}
.moov-btn.btn--dark:hover,
.moov-btn.btn--dark:focus-visible {
  background: #00FFE1;
  color: #000D1A;
}

/* Arrow icon (inline SVG) */
.moov-btn__icon {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  display: inline-block;
}

/* Accessible focus ring */
.moov-btn:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* Fallback if mask isn’t supported */
@supports not ((mask: url("")) or (-webkit-mask: url(""))) {
  .moov-btn__icon {
    background: none;
    position: relative;
  }
  .moov-btn__icon::before {
    content: "›";
    font-size: 14px;
    line-height: 1;
  }
}

/* --- Carousel button support--- */
body.moov-v2 .moov-card-carousel .dsm_card_carousel_child_button p { margin: 0; }

/* Make the pasted HTML button win over plugin defaults */
body.moov-v2 .moov-card-carousel .dsm_card_carousel_child_button a.moov-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5em;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;              /* prevent icon wrapping */
}

/* Keep icon aligned and crisp */
body.moov-v2 .moov-card-carousel .moov-btn__icon { display: inline-flex; }
body.moov-v2 .moov-card-carousel .moov-btn__icon svg { display: block; }

/* If the plugin injects its own icon, hide it */
body.moov-v2 .moov-card-carousel .dsm_card_carousel_child_button a .et-pb-icon { display: none; }


/* --- Marketo submit: scoped, exact tokens, body type --- */
/* Normalize wrappers and provide positioning context for overlay arrow */
.mktoForm.mkto-moov .mktoButtonRow,
.mktoForm.mkto-moov .mktoButtonWrap{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  text-align:left !important;    /* left on desktop/tablet */
}
.mktoForm.mkto-moov .mktoButtonWrap{
  position:relative !important;  /* anchor for overlay arrow */
  color:#000D1A !important;      /* arrow follows currentColor */
}

/* Submit control: auto width by default (desktop/tablet) */
.mktoForm.mkto-moov button.mktoButton,
.mktoForm.mktoMoov input.mktoButton, /* graceful typo guard */
.mktoForm.mkto-moov input.mktoButton{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:16px !important;
  height:56px !important;              /* Large */
  padding:0 24px !important;           /* Large */
  box-sizing:border-box !important;
  border-radius:8px !important;
  border:0 !important;
  -webkit-appearance:none !important;

  /* Body typography (override .moov-btn default font/size) */
  font:var(--body-font, var(--body-w) var(--body-fs)/100% var(--body-family)) !important;

  background-color:#00FFE1 !important; /* Light default */
  color:#000D1A !important;
  background-image:none !important;     /* kill Marketo gradient */
}

/* Hover/focus palette on the control itself */
.mktoForm.mkto-moov button.mktoButton:hover,
.mktoForm.mkto-moov button.mktoButton:focus-visible,
.mktoForm.mkto-moov input.mktoButton:hover,
.mktoForm.mkto-moov input.mktoButton:focus-visible{
  background-color:#000D1A !important;
  color:#00FFE1 !important;
}

/* Wrapper-driven color for overlay arrow (no :has — use :focus-within) */
.mktoForm.mkto-moov .mktoButtonWrap:hover,
.mktoForm.mkto-moov .mktoButtonWrap:focus-within{
  color:#00FFE1 !important; /* overlay arrow stroke = currentColor */
}

/* BUTTONS: inline icon from JS must be 12×12 */
.mktoForm.mkto-moov button.mktoButton .moov-btn__icon{
  width:12px; height:12px; flex:0 0 12px; display:inline-block;
}

/* INPUTS: center text and create space for overlay arrow */
.mktoForm.mkto-moov input.mktoButton{
  text-align:center !important;
  padding-right:40px !important; /* room for overlay arrow */
}

/* Overlay arrow (for inputs; JS injects <span.moov-arrow-overlay><svg>…) */
.mktoForm.mkto-moov .moov-arrow-overlay{
  position:absolute; z-index:1; pointer-events:none;
  right:24px; top:50%; transform:translateY(-50%);
  width:12px; height:12px; display:block;
  color:currentColor; /* follows wrapper color */
}
.mktoForm.mkto-moov .moov-arrow-overlay svg{
  width:12px; height:12px; display:block;
}

/* Mobile only: full-width submit + tuck the arrow in */
@media (max-width:767px){
  .mktoForm.mkto-moov .mktoButtonWrap{ text-align:center !important; }
  .mktoForm.mkto-moov button.mktoButton,
  .mktoForm.mkto-moov input.mktoButton{ width:100% !important; }
  .mktoForm.mkto-moov .moov-arrow-overlay{ right:16px; }
}

/* Clamp the Marketo submit arrow to EXACTLY 12×12 on all breakpoints */
.mktoForm.mkto-moov button.mktoButton .moov-btn__icon{
  width:12px !important;
  height:12px !important;
  flex:0 0 12px !important;
  display:inline-block !important;
}

/* Ensure the inline SVG path keeps the square/miter 3px stroke */
.mktoForm.mkto-moov button.mktoButton svg.moov-btn__icon path{
  stroke-width:3 !important;
  stroke-linecap:square !important;
  stroke-linejoin:miter !important;
}

/* If you’re also using the input overlay arrow, lock that too */
.mktoForm.mkto-moov .moov-arrow-overlay svg{
  width:12px !important;
  height:12px !important;
  display:block !important;
}

/* Prevent the icon from being cropped on tiny viewports */
.mktoForm.mkto-moov button.mktoButton{ overflow:visible !important; }

/* Mobile (≤767px): remove arrow, re-center label, restore normal padding */
@media (max-width:767px){
  /* Hide any arrow variants */
  .mktoForm.mkto-moov .moov-arrow-overlay{ display:none !important; }           /* overlay for <input> */
  .mktoForm.mkto-moov button.mktoButton .moov-btn__icon{ display:none !important; } /* inline SVG in <button> */
  .mktoForm.mkto-moov input.mktoButton{ background-image:none !important; }     /* in case bg-image arrow exists */

  /* Put padding back to token value since no arrow space is needed */
  .mktoForm.mkto-moov button.mktoButton,
  .mktoForm.mkto-moov input.mktoButton{
    padding-right:24px !important;   /* same as left (0 24px) */
    justify-content:center !important;
    width:100% !important;           /* per your mobile full-width rule */
  }

  /* Center within the row */
  .mktoForm.mkto-moov .mktoButtonWrap{ text-align:center !important; }
}

/* Normalize inline SVG icon for normal .moov-btn (not just Marketo) */
.moov-btn .moov-btn__icon {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  display: inline-block;
}
.moov-btn .moov-btn__icon svg {
  width: 12px;
  height: 12px;
  display: block;           
}
.moov-btn .moov-btn__icon path {
  stroke-width: 2;          
  stroke-linecap: square;
  stroke-linejoin: miter;
}


/* ======================= */
/*  SITE-WIDE CONTAINERS   */
/* ======================= */

/* Desktop cap across site (normal rows only, not fullwidth specials) */
@media (min-width:1272px){
  .et_pb_section .et_pb_row:not(.et_pb_row_fullwidth):not(.et_pb_fullwidth_header):not(.et_pb_fullwidth_menu):not(.et_pb_fullwidth_portfolio){
    max-width:1272px !important;
    width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }
}

/* Desktop between 1271px-981px): full width with 84px gutters */
@media (max-width:1271px) and (min-width:981px){
  .et_pb_row{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:84px !important;
    padding-right:84px !important;
    box-sizing:border-box !important;
  }
}

/* Tablet (768px–980px): full width with 48px gutters */
@media (max-width:980px) and (min-width:768px){
  .et_pb_row{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:48px !important;
    padding-right:48px !important;
    box-sizing:border-box !important;
  }
}

/* Mobile (≤767px): full width with 16px gutters */
@media (max-width:767px){
  .et_pb_row{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:16px !important;
    padding-right:16px !important;
    box-sizing:border-box !important;
  }
}

/* ======================= */
/*   DESKTOP HEADER ONLY   */
/* ======================= */

@media (min-width:981px){
  /* Lock header container to 1272px and center it */
  .site-header .et_pb_row{
    max-width:1272px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    padding-left:0 !important;
    padding-right:0 !important;
    display:flex !important;
    align-items:center !important;
    gap:0 !important;
  }

  /* Stop Divi's default 50/50 columns + remove internal padding */
  .site-header .et_pb_row > .et_pb_column,
  .site-header .et_pb_row > .et_pb_column_1_2{
    float:none !important;
    width:auto !important;
    max-width:none !important;
    padding:0 !important;
    margin:0 !important;
  }

  /* Left column (logo) = shrink to content */
  .site-header .et_pb_row > .et_pb_column:first-child{
    flex:0 0 auto !important;
  }

  /* Right column = flush right inside the 1272px container */
  .site-header .et_pb_row > .et_pb_column.hdr-right{
    flex:1 1 auto !important;
    margin-left:auto !important;
    padding-right:0 !important; /* set to 16/24 if you want a gutter */
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:12px !important;
  }

  /* Kill hidden paddings/margins inside right cluster */
  .hdr-right .et_pb_module,
  .hdr-right .et_pb_button,
  .hdr-right .hdr-toggle{
    margin:0 !important;
    padding:0 !important;
  }

  /* Remove padding from Code modules (logo code block), if any */
  .site-header .et_pb_code .et_pb_code_inner{ padding:0 !important; }
}

/* ======================= */
/*   HEADER GUTTERS MATCH  */
/* ======================= */
/* Desktop (1271px–981px): header row with 84px gutters */
@media (max-width:980px) and (min-width:768px){
  .site-header .et_pb_row{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:84px !important;
    padding-right:84px !important;
    box-sizing:border-box !important;

    display:flex !important;
    justify-content:space-between !important;
    align-items:center !important;
  }
  .site-header .et_pb_row .et_pb_column{
    display:flex !important;
    align-items:center !important;
    margin:0 !important;
    padding:0 !important;
  }
  .site-header .et_pb_row > .et_pb_column:first-child{ flex:0 0 auto !important; }
  .hdr-right{ flex:1 1 auto !important; justify-content:flex-end !important; }
}

    /* Safety: if any module styles try to fight width/position in the desktop band */
    @media (min-width:981px) and (max-width:1271px){
      .hero-img img{
      max-width:100% !important;
      position:static !important;
      transform:none !important;
      left:auto !important; right:auto !important;
      }
    }

/* Tablet (768px–980px): header row with 48px gutters */
@media (max-width:980px) and (min-width:768px){
  .site-header .et_pb_row{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:48px !important;
    padding-right:48px !important;
    box-sizing:border-box !important;

    display:flex !important;
    justify-content:space-between !important;
    align-items:center !important;
  }
  .site-header .et_pb_row .et_pb_column{
    display:flex !important;
    align-items:center !important;
    margin:0 !important;
    padding:0 !important;
  }
  .site-header .et_pb_row > .et_pb_column:first-child{ flex:0 0 auto !important; }
  .hdr-right{ flex:1 1 auto !important; justify-content:flex-end !important; }
}

/* Mobile (≤767px): header row with 16px gutters */
@media (max-width:767px){
  .site-header .et_pb_row{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:16px !important;
    padding-right:16px !important;
    box-sizing:border-box !important;

    display:flex !important;
    justify-content:space-between !important;
    align-items:center !important;
  }
  .site-header .et_pb_row .et_pb_column{
    display:flex !important;
    align-items:center !important;
    margin:0 !important;
    padding:0 !important;
  }
  .site-header .et_pb_row > .et_pb_column:first-child{ flex:0 0 auto !important; }
  .hdr-right{ flex:1 1 auto !important; justify-content:flex-end !important; }
}

/* ========= FORCE HEADER GUTTERS ON DESKTOP BELOW 1272 ========= */
@media (max-width:1271px) and (min-width:981px){
  /* Hit the Theme Builder header wrapper + your site-header */
  .et-l--header .site-header .et_pb_row,
  .et-l--header .et_pb_section.site-header .et_pb_row,
  .site-header .et_pb_row{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:84px !important;
    padding-right:84px !important;
    box-sizing:border-box !important;

    display:flex !important;
    justify-content:space-between !important;
    align-items:center !important;
  }
  .site-header .et_pb_row .et_pb_column{
    display:flex !important;
    align-items:center !important;
    margin:0 !important;
    padding:0 !important;
  }
  .site-header .et_pb_row > .et_pb_column:first-child{ flex:0 0 auto !important; }
  .hdr-right{ flex:1 1 auto !important; justify-content:flex-end !important; }
}

/* ========= FORCE HEADER GUTTERS ON TABLET ========= */
@media (max-width:980px) and (min-width:768px){
  /* Hit the Theme Builder header wrapper + your site-header */
  .et-l--header .site-header .et_pb_row,
  .et-l--header .et_pb_section.site-header .et_pb_row,
  .site-header .et_pb_row{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:48px !important;
    padding-right:48px !important;
    box-sizing:border-box !important;

    display:flex !important;
    justify-content:space-between !important;
    align-items:center !important;
  }
  .site-header .et_pb_row .et_pb_column{
    display:flex !important;
    align-items:center !important;
    margin:0 !important;
    padding:0 !important;
  }
  .site-header .et_pb_row > .et_pb_column:first-child{ flex:0 0 auto !important; }
  .hdr-right{ flex:1 1 auto !important; justify-content:flex-end !important; }
}

/* ========= FORCE HEADER GUTTERS ON MOBILE ========= */
@media (max-width:767px){
  .et-l--header .site-header .et_pb_row,
  .et-l--header .et_pb_section.site-header .et_pb_row,
  .site-header .et_pb_row{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:16px !important;
    padding-right:16px !important;
    box-sizing:border-box !important;

    display:flex !important;
    justify-content:space-between !important;
    align-items:center !important;
  }
  .site-header .et_pb_row .et_pb_column{
    display:flex !important;
    align-items:center !important;
    margin:0 !important;
    padding:0 !important;
  }
  .site-header .et_pb_row > .et_pb_column:first-child{ flex:0 0 auto !important; }
  .hdr-right{ flex:1 1 auto !important; justify-content:flex-end !important; }
}

/* === Article Card Category Pills === */
/* Featured Article: pills inside the stretched-link container */
.hfa-terms {
  margin-top: 0px !important;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  pointer-events: none; /* keep whole section clickable, pills non-interactive for now */
}

@media (min-width:981px){ .hfa-terms{ margin-bottom: 32.5px } }

/* Container for all category pills */
.home-article-grid__terms {
  margin-top: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

/* Individual category pill */
.home-article-grid__term {
  color: #B4C0CC;
  display: flex;
  padding: 8px 16px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  border-radius: 4px;
  background: rgba(0, 255, 255, 0.10);
  text-align: center;
  font-size: var(--Label, 13px);
  font-style: normal;
  font-weight: 350;
  line-height: normal;
  white-space: nowrap;
}

/* Keep Up Next pills non-interactive for now so the whole card link works */
.up-next__terms { pointer-events: none; }

/* === Article Card Category Pills === */

/* --- v2 token enforcement (scoped to .moov-v2) --- */
.moov-v2 :where(h1,h2,h3,h4,h5,h6){ font-family: var(--font-sans) !important; }

.moov-v2 h1{ font-size: var(--h1-fs) !important; line-height: var(--h1-lh) !important; font-weight: var(--h1-w) !important; letter-spacing: var(--h1-trk) !important; }
.moov-v2 h2{ font-size: var(--h2-fs) !important; line-height: var(--h2-lh) !important; font-weight: var(--h2-w) !important; letter-spacing: var(--h2-trk) !important; }
.moov-v2 h3{ font-size: var(--h3-fs) !important; line-height: var(--h3-lh) !important; font-weight: var(--h3-w) !important; letter-spacing: var(--h3-trk) !important; }

.moov-v2 body,
.moov-v2 .et_pb_text,
.moov-v2 .et_pb_post_content{
  font-family: var(--font-sans) !important;
  font-size: var(--body-fs) !important;
  line-height: var(--body-lh) !important;
  letter-spacing: var(--body-trk) !important;
  font-weight: var(--body-w) !important;
}


/* BEGIN ==== LOCATION PAGES === */
/* BEGIN Location Services Cards */
/* Remove gutters for rows on mobile with this specific custom class */
/*
@media only screen and (max-width: 479px) {
  .custom-gutters-mobile.et_pb_gutters1 .et_pb_column {
      margin-bottom: 10px !important;
  }
}
*/






/* Remove gutters for rows on mobile with this specific custom class */
@media only screen and (max-width: 767px) {
  .custom-gutters-mobile.et_pb_gutters1 .et_pb_column {
      margin-top: 0px !important;
      margin-bottom: 20px !important;
      width: 100% !important;
  }
}

.services-accordion .dsm_card_wrapper {
    padding: 10px 20px 10px 20px;
}

.services-accordion .dsm_card_title {
    /* make it look like H3 */
    font-family: var(--font-sans);
    font-weight: var(--h3-w);
    font-size: var(--h3-fs);
    line-height: var(--h3-lh);
    letter-spacing: var(--h3-trk);
    color: var(--color-heading);
    margin: 0 0 0.25em 0;
}
.services-accordion .dsm_card_description {
    font-family: var(--font-sans);
    font-size: var(--body-fs);
    line-height: var(--body-lh);
    letter-spacing: var(--body-trk);
    font-weight: var(--body-w);
    color: #B4C0CC;
}

/* Card carousel description → use body tokens */
.moov-v2 .dsm_card_carousel_child_description,
.moov-v2 .dsm_card_carousel_child_description p {
  font-family: var(--font-sans) !important;
  font-size: var(--body-fs) !important;
  line-height: var(--body-lh) !important;
  letter-spacing: var(--body-trk) !important;
  font-weight: var(--body-w) !important;
  color: var(--color-body) !important;
}

/* END Location Services Cards */

/* FAQ paragraph copy */
.faq-p-text p {
    margin: 0 !important;
}

/* Remove left & right padding from the accordion item container */
.faq-accordion .et_pb_toggle {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Add right padding to content to match title padding */
.faq-accordion .et_pb_toggle_content {
    padding-right: 50px !important;
}

/* BEGIN - Locations Pages Accordion Services */
.services-accordion .service-shortcode-column .et_pb_module_inner {
  background-color: var(--color-moov-blue) !important;
}
.services-accordion .service-shortcode-container {
    display: flex !important;
    flex-wrap: nowrap !important; /* Prevents stacking */
    justify-content: space-between !important; /* Ensures columns spread evenly */
    gap: 20px;
    align-items: flex-start;
    width: 100% !important;
    margin-bottom: 24px;
}

.services-accordion .service-shortcode-column {
    width: 50% !important; /* Forces strict 50% width */
    box-sizing: border-box;
    display: flex !important; /* Ensures content stays in row */
    align-items: center;
    justify-content: center;
    border: 0px !important;
}

/* Force flat corners on service cards */
.services-accordion .dsm_card,
.services-accordion .service-shortcode-column .dsm_card {
  border-radius: 4px !important;
  background-color: #0b1b2b !important;
  border: 0px !important;
  /* overflow: visible !important; */
}

/* Force flat corners on service carousel */
/* Kill Divi’s 16px radius inside this specific module */
/* nukes many Divi defaults */
.moov-card-carousel {
  /*
  --et-border-radius: 40px !important; 
  overflow: visible !important;
  */
}
/*
.moov-card-carousel .et_pb_module_inner,
.moov-card-carousel .dsm_card_wrapper,
.moov-card-carousel .dsm_card_carousel_child {
  border-radius: 40px !important;
  overflow: visible;
}
*/

.services-accordion .service-shortcode-column-empty {
    width: 50% !important; /* Forces strict 50% width */
    box-sizing: border-box;
    display: flex !important; /* Ensures content stays in row */
    align-items: center;
    justify-content: center;
}

/* Ensure stacking only at smaller screens */
@media (max-width: 1271px) {
    .services-accordion .service-shortcode-container {
        flex-wrap: wrap !important; /* Allows stacking */
    }
    .services-accordion .service-shortcode-column {
        width: 100% !important; /* Forces full width when stacked */
    }
}

/* Add Close toggle to accordions */
.et_pb_accordion .et_pb_toggle_open .et_pb_toggle_title:before {
    display: block!important;
    content: "\4b" !important;
}

/* Default state */
.et_pb_toggle .et_pb_toggle_title:before {
    transition: transform 0.3s ease;
}

/* Rotate when expanded/contracted */
.et_pb_toggle.et_pb_toggle_open .et_pb_toggle_title:before {
    transform: rotate(180deg);
}

/* Remove left & right padding from the accordion item container */
.faq-accordion .et_pb_toggle {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Add right padding to content to match title padding */
.faq-accordion .et_pb_toggle_content {
    padding-right: 50px !important;
}

/* Closed state (module has class: services-accordion) */
.services-accordion .et_pb_toggle,
.services-accordion .et_pb_toggle .et_pb_toggle_title,
.services-accordion .et_pb_toggle .et_pb_toggle_content {
  background-color: var(--color-moov-blue);
  transition: background-color 0.25s ease;
}

/* Open state */
.services-accordion .et_pb_toggle.et_pb_toggle_open,
.services-accordion .et_pb_toggle.et_pb_toggle_open .et_pb_toggle_title,
.services-accordion .et_pb_toggle.et_pb_toggle_open .et_pb_toggle_content {
  background-color: var(--color-mastery-midnight);

}
/* END - Locations Pages Accordion Services */
/* END ==== LOCATION PAGES === */

.moov-v2 .h2-as-h1 {
  font-family: var(--font-sans) !important;
  font-size: var(--h1-fs) !important;
  line-height: var(--h1-lh) !important;
  font-weight: var(--h1-w) !important;
  letter-spacing: var(--h1-trk) !important;
  color: var(--color-heading) !important;
  font-variation-settings: "wght" var(--h1-w) !important;
}

/* === Tel links: match body text === */
a[href^="tel:"] {
  color: var(--color-body) !important;
  font-weight: var(--body-w) !important;
  text-decoration: none !important;
  cursor: pointer;
}

/* Hover/focus: subtle underline only */
a[href^="tel:"]:hover,
a[href^="tel:"]:focus-visible {
  color: var(--color-body) !important;
  text-decoration: underline !important;
}

/*===== BEGIN - Dr. Bio Cards ===== */
.dr-bio { 
  var(--body-font, inherit); 
  font-size:var(--body-fs);
  line-height:var(--body-lh);
  color:var(--color-body);
  font-weight:var(--body-w);
}

/* Desktop-only spacing for the bio */
@media (min-width: 981px) {
  .dr-bio {
    margin-top: 24px;
    margin-bottom: 24px;
  }
}

@media (max-width: 980px) {
  .dr-bio { display: none; }
  .is-open .dr-bio { display: block; }

  /* helpful */
  .dsm-card, .ds-card, .dsm_card { cursor: pointer; }

  /* IMPORTANT: some Supreme card skins add a full-card link overlay.
     Disable it on mobile so taps hit the card, not the link. */
  .dsm-card a.dsm_card_link,
  .ds-card a.dsm_card_link,
  .dsm_card a.dsm_card_link { pointer-events: none; }
}


@media (max-width: 980px) {
  /* allow absolute children */
  .dsm-card, .ds-card, .dsm_card { position: relative; }

  /* some skins add a full-card overlay link — disable so taps reach our handlers */
  .dsm-card a.dsm_card_link,
  .ds-card a.dsm_card_link,
  .dsm_card a.dsm_card_link { pointer-events: none; }

  /* toggle button */
  .dr-toggle {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 45px;
    height: 45px;
    border: none;
    border-radius: 50%;
    background: #102C49;   /* moov blue */
    color: #00FFE1;        /* CTA teal */
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 20;
    transition: background-color .25s ease, color .25s ease;
  }

  /* icons (SVG) */
  .dr-icon { position: absolute; width: 13px; height: 13px; pointer-events: none; transition: opacity .25s ease; }
  .dr-icon-x { opacity: 0; }

  /* open state */
  .is-open .dr-toggle { background: #00FFE1; color: #102C49; }
  .is-open .dr-icon-plus { opacity: 0; }
  .is-open .dr-icon-x    { opacity: 1; }

  /* hide bio on mobile; shown when .is-open is applied OR via JS slideDown */
  .dr-bio { display: none; }
  .is-open .dr-bio { display: block; }
}

@media (max-width:980px){
  /* if a skin adds a full-card overlay link, ignore it on mobile */
  .dsm-card a.dsm_card_link,
  .ds-card a.dsm_card_link,
  .dsm_card a.dsm_card_link { pointer-events: none; }

  /* reduce ghost double-taps on touch */
  .dsm-card, .ds-card, .dsm_card { touch-action: manipulation; }
}

/* Visibility control for the Vituity lockup */
/* Kill any default spacing */
.vituity-logo { display:block; width:160px; height:40px; margin:0 !important; }

/* Switch visibility by breakpoint */
@media (max-width:980px){
  .desktop-only { display:none !important; }
  .mobile-only  { display:block !important; margin-bottom:17px; }
}

@media (min-width:981px){
  .mobile-only  { display:none !important; }
  .desktop-only { display:block !important; margin-top:17px; }
}


/* BIO CARD — image area gradient + responsive fill */

/* 1) Scope to bio-card image area and provide a layer for the gradient */
.dsm_card.bio-card .dsm_card_image_wrapper {
  position: relative; /* stacking context for ::before / ::after */
}

/* 2) Gradient BEHIND the module-set image (always visible) */
.dsm_card.bio-card .dsm_card_image_wrapper::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 0;
  background: linear-gradient(
    180deg,
    rgba(11, 27, 43, 0.75) 3.51%,
    rgba(11, 27, 43, 0.00) 76.61%
  );
}

/* 3) Image pane itself (the module injects background-image here) */
.dsm_card.bio-card .dsm_card_image_background.dsm_card_img {
  position: relative;
  z-index: 1;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-color: transparent !important;
}

/* 4) Desktop → 981px: fill the 40% × 410px pane (allow crop) */
@media (min-width: 981px) {
  .dsm_card.bio-card .dsm_card_image_background.dsm_card_img {
    background-size: cover !important;
    background-position: var(--bio-pos, 25% 35%) !important;
  }
}

/* 5) ≤ 980px (stacked): show full image + new gradients */
@media (max-width: 980px) {
  /* existing gradient behind image */
  .dsm_card.bio-card .dsm_card_image_wrapper::before {
    background: linear-gradient(
      180deg,
      #0B1B2B 33.98%,
      #102C49 72.85%
    ),
    #102C49;
  }

  /* subtle BOTTOM-UP overlay gradient ON TOP of the image */
  .dsm_card.bio-card .dsm_card_image_wrapper::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 35%; /* adjust for how tall you want the fade */
    z-index: 2;  /* sits above the image */
    background: linear-gradient(
      0deg,
      #102C49 0%,
      rgba(16, 44, 73, 0) 100%
    );
    pointer-events: none; /* ensures clicks/taps pass through */
  }

  /* show full image without cropping */
  .dsm_card.bio-card .dsm_card_image_background.dsm_card_img {
    background-size: contain !important;
    background-position: center center !important;
    background-color: #102C49;
  }
}

/* Desktop only: gradient on the content column (not the image area) */
@media (min-width: 981px){
  .dsm_card.bio-card .dsm_card_wrapper{
    /* make sure it paints under the text area only */
    background: linear-gradient(
      0deg,
      rgba(11, 27, 43, 0.90) 14.94%,
      rgba(11, 27, 43, 0.00) 67.96%
    ), var(--color-moov-blue, #102C49) !important;

    /* let the content column match the image column’s height */
    align-self: stretch;
  }
}

/* Desktop: keep gradient AND vertically center the text content */
@media (min-width: 981px){
  /* make columns equal height */
  .dsm_card.bio-card { align-items: stretch; } /* parent is already flex */

  /* content column: fill height, then center its inner content */
  .dsm_card.bio-card .dsm_card_wrapper{
    align-self: stretch;             /* matches image column height */
    display: flex;                   /* enable vertical centering */
    flex-direction: column;
    justify-content: center;         /* <<< vertical centering */
    /* optional if needed to match the image column’s min height */
    min-height: 410px;               /* if your module sets this height */
  }
}



/* --- MOBILE FIXES --- */
@media (max-width: 980px){

  /* make sure our pseudo-elements are the topmost in this area */
  .dsm_card.bio-card .dsm_card_image_wrapper{
    position: relative;
    overflow: hidden;      /* no bleed */
    isolation: isolate;    /* <-- key: new stacking context so ::after wins */
    padding: 0 !important;
    margin: 0 !important;
  }

  /* keep the image visible but push it DOWN so the bottom gap doesn't balloon */
  .dsm_card.bio-card .dsm_card_image_background.dsm_card_img{
    background-size: contain !important;
    background-position: center bottom !important;  /* <-- anchor to bottom */
    background-color: #102C49;
  }

  /* bottom-up overlay ON TOP of the image (ensure it's really above) */
  .dsm_card.bio-card .dsm_card_image_wrapper::after{
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 28%;                 /* was 35%; adjust to taste */
    z-index: 50;                 /* stronger than any child stacking */
    pointer-events: none;
    background: linear-gradient(
      0deg,
      #102C49 0%,
      rgba(16, 44, 73, 0) 100%
    );
  }

  /* tidy: kill any bottom margin that some skins add to the figure */
  .dsm_card.bio-card .dsm_card_image_wrapper,
  .dsm_card.bio-card .dsm_card_image_background.dsm_card_img{
    margin-bottom: 0 !important;
  }
}
/*===== END - Dr. Bio Cards ===== */

/* ============================================================
   BODY COPY LINKS ONLY
   - Inherit color from surrounding text
   - Always underlined
   - Does NOT affect buttons or tel: links
============================================================ */

.moov-v2 .et_pb_text a:not(.moov-btn):not(.et_pb_button):not(.mktoButton):not(.dsm_card_link):not([href^="tel:"]),
.moov-v2 .et_pb_post_content a:not(.moov-btn):not(.et_pb_button):not(.mktoButton):not(.dsm_card_link):not([href^="tel:"]),
.moov-v2 .faq-accordion .et_pb_toggle_content a:not(.moov-btn):not(.et_pb_button):not(.mktoButton):not(.dsm_card_link):not([href^="tel:"]),
.moov-v2 .dr-bio a:not(.moov-btn):not(.et_pb_button):not(.mktoButton):not(.dsm_card_link):not([href^="tel:"]),
.moov-v2 .services-accordion .dsm_card_description a:not(.moov-btn):not(.et_pb_button):not(.mktoButton):not(.dsm_card_link):not([href^="tel:"]) {
  color: inherit !important;
  text-decoration: underline !important;
  text-underline-offset: 2px;
}

.moov-v2 .et_pb_text a:not(.moov-btn):not(.et_pb_button):not(.mktoButton):not(.dsm_card_link):not([href^="tel:"]):hover,
.moov-v2 .et_pb_post_content a:not(.moov-btn):not(.et_pb_button):not(.mktoButton):not(.dsm_card_link):not([href^="tel:"]):hover,
.moov-v2 .faq-accordion .et_pb_toggle_content a:not(.moov-btn):not(.et_pb_button):not(.mktoButton):not(.dsm_card_link):not([href^="tel:"]):hover,
.moov-v2 .dr-bio a:not(.moov-btn):not(.et_pb_button):not(.mktoButton):not(.dsm_card_link):not([href^="tel:"]):hover,
.moov-v2 .services-accordion .dsm_card_description a:not(.moov-btn):not(.et_pb_button):not(.mktoButton):not(.dsm_card_link):not([href^="tel:"]):hover {
  color: inherit !important;
  text-decoration: underline !important;
}