/* :root design tokens, page shell, transparent header + hero overlap, `s5-brand` buttons, `s5-brand-section` layout, skip-link. Loaded via root-widgets.css → s5-rebrand.css only. */
:root {
    --s5-nav-font-family: 'PT Sans', sans-serif;
    --s5-color-yellow: #fbc72f;
    --s5-color-white: #ffffff;
    --s5-color-black: #000000;
    --s5-color-gray-950: #111111;
    --s5-color-gray-900: #1f1f1f;
    --s5-color-gray-850: #282828;
    --s5-color-gray-800: #3a3a3a;
    --s5-color-gray-700: #5a5a5a;
    --s5-color-gray-600: #707070;
    --s5-color-gray-500: #8d8d8d;
    --s5-color-gray-400: #bebebe;
    --s5-color-gray-300: #d8d8d8;
    --s5-color-gray-250: #e4e4e4;
    --s5-color-gray-200: #eeeeee;
    --s5-color-gray-100: #f6f6f6;
    --s5-color-gray-50: #fbfbfb;
    --s5-color-yellow-hover: #e4b82b;
    --s5-color-yellow-active: #d5a925;
    --s5-color-ink: var(--s5-color-gray-900);
    --s5-color-outline: var(--s5-color-gray-950);
    --s5-focus-ring: #0b57d0;
    --s5-text-primary: var(--s5-color-gray-900);
    --s5-text-secondary: var(--s5-color-gray-700);
    --s5-text-muted: var(--s5-color-gray-600);
    --s5-text-on-dark: var(--s5-color-white);
    --s5-surface-primary: var(--s5-color-white);
    --s5-surface-muted: var(--s5-color-gray-100);
    --s5-surface-subtle: var(--s5-color-gray-50);
    --s5-surface-dark: var(--s5-color-gray-900);
    --s5-border-default: var(--s5-color-gray-300);
    --s5-border-strong: var(--s5-color-gray-500);
    --s5-btn-radius: 0.25rem;
    --s5-btn-padding-y: 0.75rem;
    --s5-btn-padding-x: 1.125rem;
    --s5-btn-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    /* Vertical padding tokens (parent Section class `s5-brand-section`, stats bar inner, etc.). */
    --s5-band-padding-y: 48px;
    --s5-band-padding-x: 20px;
    /* Space between multiple widgets inside one `s5-brand-section` column. */
    --s5-band-stack-gap: 48px;
  }
  
  @media (min-width: 768px) {
    :root {
      --s5-band-padding-y: 72px;
      --s5-band-padding-x: 40px;
    }
  }
  
  @media (min-width: 1024px) {
    :root {
      --s5-band-padding-y: 96px;
      --s5-band-padding-x: 48px;
      --s5-band-stack-gap: 72px;
    }
  }
  html {
    margin-top: 0 !important;
  }
  body.home {
    padding-top: 0;
  }

  /*
   * `s5-nav-header-transparent` on `<body>` (see `s5_nav_header_transparent` in `header-navigation-v2.php`).
   * Drives `--s5-hero-under-nav-pad` for the S5 hero under the nav, and (1024+ only) clears `#meganav`
   * paint so the hero shows through. Keep the first hero band full-bleed under the header to avoid
   * a white flash where the page shell would otherwise show.
   */
  body.s5-nav-header-transparent {
    --s5-hero-under-nav-pad: 96px;
  }

  /* body.s5-nav-header-transparent.admin-bar {
    --s5-hero-under-nav-pad: calc(96px + var(--wp-admin--admin-bar--height, 32px));
  } */

  @media (min-width: 1024px) {
    body.s5-nav-header-transparent {
      --s5-hero-under-nav-pad: 84px;
    }

    /* body.s5-nav-header-transparent.admin-bar {
      --s5-hero-under-nav-pad: calc(40px + var(--wp-admin--admin-bar--height, 32px));
    } */

    /* Clear chrome only at top; after scroll JS adds `is-s5-nav-scrolled` (see mega-nav.css). */
    body.s5-nav-header-transparent
      #meganav.s5-meganav:not(.is-s5-nav-mobile-open):not(.is-s5-nav-scrolled) {
      background-color: transparent;
      background-image: none;
    }
  }

  body.s5-nav-header-transparent #meganav.s5-meganav.is-s5-nav-mobile-open {
    background-color: var(--s5-color-black, #000000);
  }

  .s5-brand {
    --s5-btn-bg: var(--s5-color-yellow);
    --s5-btn-bg-hover: var(--s5-color-yellow-hover);
    --s5-btn-bg-active: var(--s5-color-yellow-active);
    --s5-btn-fg: var(--s5-color-ink);
    --s5-btn-border: var(--s5-color-yellow);
    --s5-btn-outline-bg: transparent;
    --s5-btn-outline-fg: var(--s5-color-white);
    --s5-btn-outline-border: var(--s5-color-white);
    color: var(--s5-text-on-dark);
    background-color: var(--s5-color-black);
  
    .s5-text-accent {
      color: var(--s5-color-yellow);
      font-weight: inherit;
    }
  
    a {
      color: var(--s5-text-on-dark);
  
      &:hover {
        color: var(--s5-color-yellow);
      }
    }
  
    .elementor-button,
    .btn,
    .all--btn .btn {
      min-height: 2.75rem;
      padding: var(--s5-btn-padding-y) var(--s5-btn-padding-x);
      border: 1px solid var(--s5-btn-border);
      border-radius: var(--s5-btn-radius);
      background-color: var(--s5-btn-bg);
      color: var(--s5-btn-fg);
      box-shadow: var(--s5-btn-shadow);
      text-decoration: none;
      transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
  
      &:hover {
        background-color: var(--s5-btn-bg-hover);
        border-color: var(--s5-btn-bg-hover);
        color: var(--s5-btn-fg);
        box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
        transform: translateY(-1px);
      }
  
      &:focus-visible {
        outline: 2px solid var(--s5-focus-ring);
        outline-offset: 2px;
        box-shadow: none;
      }
  
      &:active {
        background-color: var(--s5-btn-bg-active);
        border-color: var(--s5-btn-bg-active);
        transform: translateY(0);
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
      }
  
      &:disabled,
      &.disabled,
      &[aria-disabled="true"] {
        opacity: 0.55;
        cursor: not-allowed;
        box-shadow: none;
        transform: none;
        pointer-events: none;
      }
    }
  
    .s5-btn--secondary,
    .elementor-button.s5-btn--secondary,
    .btn.s5-btn--secondary {
      background-color: var(--s5-btn-outline-bg);
      color: var(--s5-btn-outline-fg);
      border-color: var(--s5-btn-outline-border);
      box-shadow: none;
  
      &:hover {
        background-color: rgba(255, 255, 255, 0.1);
        border-color: var(--s5-btn-outline-border);
        color: var(--s5-btn-outline-fg);
        transform: translateY(-1px);
      }
  
      &:active {
        background-color: rgba(255, 255, 255, 0.16);
        transform: translateY(0);
      }
    }
  
    .s5-btn--text,
    .elementor-button.s5-btn--text,
    .btn.s5-btn--text {
      background-color: transparent;
      border-color: transparent;
      color: var(--s5-btn-fg);
      box-shadow: none;
      padding-inline: 0.25rem;
  
      &:hover {
        color: var(--s5-color-outline);
        background-color: transparent;
        border-color: transparent;
        transform: none;
      }
    }
  }
  
  /* S5 brand section shell — add class `s5-brand-section` on the parent Elementor Section (Advanced → CSS Classes).
   * Half vertical padding top + bottom so two stacked sections = one full --s5-band-padding-y between content (not double). */
  .s5-brand-section {
    width: min(calc(100% - 28px), 1440px);
    margin-block: 0;
    margin-inline: auto;
    padding-block: calc(var(--s5-band-padding-y) * 0.5);
    padding-inline: var(--s5-band-padding-x);
    background-color: transparent !important;
    background-image: none;
    color: var(--s5-text-on-dark);
    border-radius: 0;
    overflow: visible;
    box-sizing: border-box;
  
    a {
      color: var(--s5-text-on-dark);
  
      &:hover {
        color: var(--s5-color-yellow);
      }
    }
  
    .elementor-heading-title {
      color: var(--s5-text-on-dark);
    }

    @media (max-width: 767.98px) {
      .elementor-widget-heading .elementor-heading-title {
        font-size: clamp(22px, 5.2vw, 32px) !important;
        line-height: 1.2;
      }
    }
  }
  
  /* Last brand section on the page: full bottom padding so the footer isn’t tight. */
  body.new--globals main.site-main .elementor-section.elementor-top-section.s5-brand-section:last-of-type {
    padding-block-end: var(--s5-band-padding-y);
  }
  
  /* Section after a brand section (e.g. “Proven…” block): match the same half-band step so the seam isn’t lopsided. */
  body.new--globals main.site-main .elementor-section.elementor-top-section.s5-brand-section + .elementor-section.elementor-top-section {
    padding-block-start: calc(var(--s5-band-padding-y) * 0.5) !important;
  }
  
  /* Hero: flush under header; no extra section margins (same as other S5 bands). */
  body.new--globals .elementor-section.elementor-top-section:has(.elementor-widget-im-s5-hero) {
    padding-top: 0 !important;
    margin-block: 0 !important;
  }
  
  /* Flexbox / container (Elementor): first parent container in main that includes the hero. */
  body.new--globals main.site-main .e-con.e-parent:first-of-type:has(.elementor-widget-im-s5-hero) {
    padding-block-start: 0 !important;
    margin-block: 0 !important;
  }

  /* Transparent header: extra top padding inside the video/card shell (matches widget breakpoints). */
  body.s5-nav-header-transparent .section--s5-hero-module .s5-hero-module__inner {
    padding-top: calc(64px + var(--s5-hero-under-nav-pad));
  }

  /*
   * Transparent header over the hero: drop the legacy 146px `.header--anchor` spacer
   * (functions.php adds `s5-front-no-header-anchor` on the front page for exactly this)
   * so the black hero section (its 30px top pad = the video's top border, matching the
   * black side borders) starts at y=0 behind the fixed, clear `#meganav`.
   * Inner pages without the transparent header keep the spacer.
   */
body.s5-front-no-header-anchor .header--anchor {
	display: none;
}

/*
 * Product page anchor jump targets: reserve space for the v2 header (~87px)
 * plus the sticky submenu bar (~94px) so section headings aren't hidden
 * behind the fixed chrome when navigating via anchor links.
 */
.single-products section[id],
.post-type-archive-products section[id] {
	scroll-margin-top: 200px;
}

  @media (max-width: 1200px) {
    body.s5-nav-header-transparent .section--s5-hero-module .s5-hero-module__inner {
      padding-top: calc(48px + var(--s5-hero-under-nav-pad));
    }
  }

  @media (max-width: 1024px) {
    body.s5-nav-header-transparent .section--s5-hero-module .s5-hero-module__inner {
      padding-top: calc(40px + var(--s5-hero-under-nav-pad));
    }
  }

  @media (max-width: 767px) {
    body.s5-nav-header-transparent .section--s5-hero-module .s5-hero-module__inner {
      padding-top: calc(28px + var(--s5-hero-under-nav-pad));
    }
  }

  /* Ensure Elementor inner wrappers don't paint a different background */
  .s5-brand-section .elementor-container,
  .s5-brand-section .elementor-column-wrap,
  .s5-brand-section .elementor-widget-wrap,
  .s5-brand-section .e-con-inner {
    background: transparent !important;
  }
  
  /* Optional: constrain copy/columns to 1200px inside a full-width brand section. */
  .s5-brand-section__inner {
    width: 100%;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
  }
  
  /* Vertical rhythm between multiple widgets inside one brand-section column */
  .s5-brand-section .elementor-widget-wrap {
    display: flex;
    flex-direction: column;
    gap: var(--s5-band-stack-gap);
    margin: 0 !important;
    padding: 0 !important;
    width: 100%;
  }
  
  /* Inner blocks (widgets render this root; spacing handled by widget-wrap gap above) */
  .s5-brand-section__block {
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
  }
  /*
   * Skip link: out of document flow so #meganav can sit flush under <body> (overrides legacy
   * body.new--globals rules that reserve space / animate transform on the same element).
   */
  .skip-to-content-link {
      position: absolute;
      left: -10000px;
      top: 0;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: 0;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      clip-path: inset(50%);
      border: 0;
      white-space: nowrap;
      transform: none;
      transition: none;
      z-index: 1;
      background: transparent;
  }
  
  .skip-to-content-link:focus,
  .skip-to-content-link:focus-visible {
      left: max(12px, env(safe-area-inset-left));
      top: max(12px, env(safe-area-inset-top));
      width: auto;
      height: auto;
      padding: 12px 18px;
      margin: 0;
      overflow: visible;
      clip: auto;
      clip-path: none;
      white-space: normal;
      position: fixed;
      transform: none;
      z-index: 999999;
      background: #fff;
      color: #111;
      font-weight: 700;
      text-decoration: none;
      border-radius: 8px;
      box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
  }
  
  /* body.admin-bar .skip-to-content-link:focus,
  body.admin-bar .skip-to-content-link:focus-visible {
      top: max(12px, calc(env(safe-area-inset-top, 0px) + var(--wp-admin--admin-bar--height, 32px)));
  } */
  
  /* Same as .skip-to-content-link but wins over legacy `body.new--globals` skip styles. */
  body.new--globals .skip-to-content-link {
      position: absolute;
      left: -10000px;
      top: 0;
      right: auto;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: 0;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      clip-path: inset(50%);
      border: 0;
      white-space: nowrap;
      transform: none;
      transition: none;
      z-index: 1;
      background: transparent;
  }
  
  body.new--globals .skip-to-content-link:focus,
  body.new--globals .skip-to-content-link:focus-visible {
      z-index: 999999;
      transform: none;
  }
  
