/* =========================================================
   SP — Global Footer (Astra) — FINAL (FOOTER-ONLY, SAFE)
   Goals:
   - Dark footer everywhere (no seams)
   - Footer always centered with equal L/R gutters at ALL widths
   - 3 columns top-aligned (HTML 1 not lower)
   - Footer menu vertical + always-underlined
   - No hover visual changes
   - Mobile: stacked + centered + not hugging edges
   - DOES NOT TOUCH HERO / CONTENT WRAPPERS
========================================================= */

/* ---------- 0) Vars ---------- */
:root{
    --sp-footer-bg: #1A1A1A;
    --sp-footer-text: rgba(255,255,255,.86);
    --sp-footer-underline: rgba(255,255,255,.55);
  
    /* gutters */
    --sp-footer-gutter-desktop: 48px;
    --sp-footer-gutter-small: 32px;
    --sp-footer-gutter-tablet: 22px;
    --sp-footer-gutter-mobile: 18px;
  
    /* padding */
    --sp-footer-pad-top: 28px;
    --sp-footer-pad-bottom: 28px;
    --sp-footer-copyright-pad: 18px;
  
    /* logo spacing */
    --sp-logo-gap: 32px;
  
    /* optional HTML1 lift */
    --sp-html1-lift: -62px; /* set to 0px if you don't want it lifted */
  }
  
  /* ---------- 1) Force footer background dark everywhere (FOOTER ONLY) ---------- */
  footer#colophon,
  footer#colophon *,
  .site-footer,
  .site-footer *{
    /* do NOT set background here; we only normalize box sizing */
    box-sizing: border-box;
  }
  
  footer#colophon,
  #colophon,
  .site-footer,
  .ast-footer-wrap,
  .site-primary-footer-wrap,
  .site-below-footer-wrap,
  .site-above-footer-wrap,
  .ast-footer-overlay,
  .footer-adv,
  .footer-adv-overlay,
  .ast-footer-widgets,
  .ast-small-footer,
  .ast-below-footer,
  .ast-above-footer,
  .site-primary-footer-wrap[data-section="section-primary-footer-builder"],
  .site-below-footer-wrap[data-section="section-below-footer-builder"],
  .site-above-footer-wrap[data-section="section-above-footer-builder"]{
    background: var(--sp-footer-bg) !important;
    background-color: var(--sp-footer-bg) !important;
    background-image: none !important;
  }
  
  /* remove seams / dividers / borders Astra may add (FOOTER ONLY) */
  .site-primary-footer-wrap,
  .site-below-footer-wrap,
  .site-above-footer-wrap,
  .ast-small-footer,
  .ast-footer-wrap,
  .site-footer{
    border: 0 !important;
    box-shadow: none !important;
  }
  
  .site-footer hr,
  .site-footer .ast-divider,
  .site-footer .ast-footer-divider,
  .site-footer .ast-builder-grid-row-divider{
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    border: 0 !important;
  }
  
  /* ---------- 2) TRUE gutter + centering (fixes “hugging left” on narrow desktop) ---------- */
  /* This is Astra's real inner wrapper (often padding:0) */
  footer#colophon .ast-builder-grid-row-container-inner,
  .site-footer .ast-builder-grid-row-container-inner{
    max-width: 1440px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: var(--sp-footer-gutter-desktop) !important;
    padding-right: var(--sp-footer-gutter-desktop) !important;
  }
  
  /* Responsive gutters */
  @media (max-width: 1440px){
    footer#colophon .ast-builder-grid-row-container-inner,
    .site-footer .ast-builder-grid-row-container-inner{
      padding-left: var(--sp-footer-gutter-small) !important;
      padding-right: var(--sp-footer-gutter-small) !important;
    }
  }
  @media (max-width: 921px){
    footer#colophon .ast-builder-grid-row-container-inner,
    .site-footer .ast-builder-grid-row-container-inner{
      padding-left: var(--sp-footer-gutter-tablet) !important;
      padding-right: var(--sp-footer-gutter-tablet) !important;
    }
  }
  @media (max-width: 480px){
    footer#colophon .ast-builder-grid-row-container-inner,
    .site-footer .ast-builder-grid-row-container-inner{
      padding-left: var(--sp-footer-gutter-mobile) !important;
      padding-right: var(--sp-footer-gutter-mobile) !important;
    }
  }
  
  /* Make sure footer internals don’t paint white */
  .site-footer .ast-builder-grid-row,
  .site-footer .ast-builder-grid-row-container,
  .site-footer .ast-builder-footer-grid-columns,
  .site-footer .ast-builder-layout-element{
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
  }
  
  /* ---------- 3) Footer padding (FOOTER ONLY) ---------- */
  .site-primary-footer-wrap[data-section="section-primary-footer-builder"]{
    padding-top: var(--sp-footer-pad-top) !important;
    padding-bottom: var(--sp-footer-pad-bottom) !important;
  }
  .site-below-footer-wrap[data-section="section-below-footer-builder"],
  .site-footer .ast-small-footer{
    padding-top: var(--sp-footer-copyright-pad) !important;
    padding-bottom: var(--sp-footer-copyright-pad) !important;
  }
  
  /* ---------- 4) Align columns to TOP (fix HTML 1 sitting lower) ---------- */
  .site-footer .ast-builder-grid-row,
  .site-footer .ast-builder-grid-row-container,
  .site-footer .ast-builder-footer-grid-columns{
    align-items: flex-start !important;
  }
  .site-footer .ast-builder-layout-element{
    align-self: flex-start !important;
  }
  
  /* ---------- 5) Typography + link behavior ---------- */
  .site-footer,
  .site-footer p,
  .site-footer li,
  .site-footer span,
  .site-footer div,
  .site-footer small,
  .site-footer .widget-title{
    color: var(--sp-footer-text) !important;
  }
  
  .site-footer a,
  .site-footer a:visited,
  .site-footer a:hover,
  .site-footer a:focus,
  .site-footer a:active{
    color: var(--sp-footer-text) !important;
    text-decoration: none !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
    outline: none !important;
  }
  
  /* Email link only clickable on text width */
  .site-footer .sp-footer-email a{
    display: inline-block !important;
  }
  
  /* ---------- 6) HTML 1 (left column) ---------- */
  .site-footer .sp-footer-left{
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    text-align: left !important;
  }
  
  /* remove empty spacer divs */
  .site-footer .sp-footer-left > div:empty{
    display: none !important;
  }
  
  /* logo spacing (THIS IS WHERE YOU CHANGE LOGO GAP) */
  .site-footer .sp-footer-left img{
    display: block !important;
    margin: 0 0 var(--sp-logo-gap) 0 !important;
  }
  
  /* address / phone */
  .site-footer .sp-footer-address{
    margin: 0 !important;
    line-height: 1.55 !important;
    font-size: 16px !important;
    text-align: left !important;
  }
  
  /* email spacing (tighten) */
  .site-footer .sp-footer-email{
    margin-top: 14px !important;
  }
  
  /* Lift ONLY HTML 1 (THIS IS WHERE YOU MOVE HTML 1 HIGHER/LOWER) */
  .site-footer .ast-footer-html-1{
    margin-top: var(--sp-html1-lift) !important;
  }
  
  /* ---------- 7) Social icons: no hover styling ---------- */
  .site-footer .ast-footer-social-wrap a,
  .site-footer .ast-footer-social-1-wrap a{
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
  }
  .site-footer .ast-footer-social-wrap a:hover,
  .site-footer .ast-footer-social-1-wrap a:hover{
    background: transparent !important;
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
  }
  
  /* ---------- 8) Footer menu: vertical + always-underlined ---------- */
  .site-footer .ast-footer-menu,
  .site-footer .footer-nav-wrap .ast-nav-menu,
  .site-footer .ast-builder-footer-menu .ast-nav-menu,
  .site-footer .ast-footer-menu .menu,
  .site-footer .ast-footer-menu nav ul,
  .site-footer .ast-footer-menu ul{
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 14px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }
  
  .site-footer .ast-footer-menu li,
  .site-footer .footer-nav-wrap li,
  .site-footer .ast-builder-footer-menu li{
    margin: 0 !important;
    padding: 0 !important;
    width: fit-content !important;
  }
  
  .site-footer .ast-footer-menu a,
  .site-footer .footer-nav-wrap a,
  .site-footer .ast-builder-footer-menu a{
    display: inline-block !important;
    padding: 0 0 2px 0 !important;
    border-bottom: 1px solid var(--sp-footer-underline) !important;
    line-height: 1.2 !important;
  }
  
  /* ---------- 9) Mobile stacking + centering ---------- */
  @media (max-width: 921px){
  
    .site-footer .ast-builder-grid-row,
    .site-footer .ast-builder-grid-row-container{
      justify-content: center !important;
    }
  
    /* center HTML 1 on mobile */
    .site-footer .sp-footer-left{
      align-items: center !important;
      text-align: center !important;
    }
    .site-footer .sp-footer-address{
      text-align: center !important;
    }
  
    /* center menu on mobile */
    .site-footer .ast-footer-menu,
    .site-footer .footer-nav-wrap .ast-nav-menu,
    .site-footer .ast-builder-footer-menu .ast-nav-menu{
      align-items: center !important;
    }
    .site-footer .ast-footer-menu li,
    .site-footer .footer-nav-wrap li,
    .site-footer .ast-builder-footer-menu li{
      width: auto !important;
    }
  
    /* remove lift on mobile */
    .site-footer .ast-footer-html-1{
      margin-top: 0 !important;
    }
  }
  /* Footer menu link size */
  .site-footer .ast-footer-menu a,
  .site-footer .footer-nav-wrap a,
  .site-footer .ast-builder-footer-menu a{
    font-size: 14px !important; /* <-- change this number */
  }