/*
Theme Name: RPEurope
Theme URI: https://www.reliableplant.com/events/reliable-plant-europe
Author: James Swearengin
Author URI: https://swearenginweb.design/
Description: Block theme scaffold for Reliable Plant Europe (RPEurope).
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 8.2
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rpe26
*/

/* ==========================================================================
   RPEurope theme stylesheet — organization
   ==========================================================================
   1. Custom properties (:root)
   2. Utilities (fill, color)
   3. Global (scrollbar, body, links, editor)
   4. Header (.wrapper-header)
   5. Navigation
   6. Core blocks (images, buttons)
   7. Components (back-to-top, image hover)
   8. RPE homepage (hero, accents, co-host pill)
   9. RPE layout (sections, containers, grids, forms)
  10. RPE components (cards, footer, forms, urgency)
  11. Animations (@keyframes)
  12. Media queries (all breakpoints — last)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Custom properties
   -------------------------------------------------------------------------- */

:root {
  /* Header / scroll */
  --scroll-margin-top: 132px;
  --rpe-header-overlay-offset: 94px;
  /* Co-host pill */
  --rpe-cohost-pill-sticky-top: 1.25rem;
  /* Layout */
  --rpe-card-radius: 1.25rem;
  /* Hero golden-ratio accents */
  --rpe-phi: 1.618033988749895;
  --rpe-accent-s0: 25rem;
  --rpe-accent-s1: calc(var(--rpe-accent-s0) / var(--rpe-phi));
  --rpe-accent-s2: calc(var(--rpe-accent-s0) / var(--rpe-phi) / var(--rpe-phi));
  --rpe-accent-s3: calc(var(--rpe-accent-s0) / var(--rpe-phi) / var(--rpe-phi) / var(--rpe-phi));
}

/* --------------------------------------------------------------------------
   2. Utilities
   -------------------------------------------------------------------------- */

.balance-text {
  text-wrap: balance;
}

/* Fill utility classes */
.fill-midnight {
  fill: var(--wp--preset--color--midnight);
}

.fill-maintenance-blue {
  fill: var(--wp--preset--color--maintenance-blue);
}

.fill-hot-iron {
  fill: var(--wp--preset--color--hot-iron);
}

.fill-safety-yellow {
  fill: var(--wp--preset--color--safety-yellow);
}

.fill-rpe-green {
  fill: var(--wp--preset--color--rpe-green);
}

.fill-gray {
  fill: var(--wp--preset--color--gray);
}

.fill-gray-light {
  fill: var(--wp--preset--color--gray-light);
}

.fill-white {
  fill: var(--wp--preset--color--white);
}

/* Color utility classes */
.color-midnight {
  color: var(--wp--preset--color--midnight);
}

.color-maintenance-blue {
  color: var(--wp--preset--color--maintenance-blue);
}

.color-hot-iron {
  color: var(--wp--preset--color--hot-iron);
}

.color-safety-yellow {
  color: var(--wp--preset--color--safety-yellow);
}

.color-rpe-green {
  color: var(--wp--preset--color--rpe-green);
}

.color-gray {
  color: var(--wp--preset--color--gray);
}

.color-gray-light {
  color: var(--wp--preset--color--gray-light);
}

.color-white {
  color: var(--wp--preset--color--white);
}

/* --------------------------------------------------------------------------
   3. Global
   -------------------------------------------------------------------------- */

/* Scrollbar */

html,
body {
  scrollbar-width: auto;
  -webkit-scrollbar-width: 1rem;
  /* Firefox: only 'auto', 'thin', or 'none' */
  scrollbar-color: var(--wp--preset--color--maintenance-blue) var(--wp--preset--color--white);
  /* Firefox: thumb, track */
}

/* Webkit browsers (Chrome, Edge, Safari) */

::-webkit-scrollbar {
  width: 1rem;
}

::-webkit-scrollbar-thumb {
  background: var(--wp--preset--color--maintenance-blue);
  border-radius: 1rem;
  -webkit-transition: background 0.5s;
  transition: background 0.5s;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--wp--preset--color--maintenance-blue);
}

::-webkit-scrollbar-track {
  background: var(--wp--preset--color--gray);
  border-radius: 1rem;
}

/* Entry content gutters: keep constrained content off the screen edges on
   small viewports. Alignfull sections are excluded so full-width bands
   (homepage covers/groups) still span edge-to-edge with no white sides. */
.wp-block-post-content> :not(.alignfull) {
  padding-left: var(--wp--preset--spacing--50);
  padding-right: var(--wp--preset--spacing--50);
}

/* Long unbreakable strings (URLs in legal copy) must wrap, otherwise they set
   a min-content width wider than small screens and overflow the viewport. */
.wp-block-post-content> :not(.alignfull) p,
.wp-block-post-content> :not(.alignfull) li {
  overflow-wrap: anywhere;
}

/* --------------------------------------------------------------------------
   4. Header
   -------------------------------------------------------------------------- */

/* Sticky compact header — desktop only (no sticky shrink on mobile ≤1080px) */
@media (min-width: 1081px) {
  body.header-is-sticky {
    --scroll-margin-top: 108px;
    padding-top: 66px;
  }
}

/* Apply scroll-margin-top to anchor targets for fixed header */
section[id],
div[id],
article[id] {
  scroll-margin-top: var(--scroll-margin-top);
}

.wrapper-header {
  position: relative;
  width: 100%;
  z-index: 10;
  -webkit-transition: box-shadow 0.3s ease, background-color 0.3s ease, padding 0.35s ease;
  transition: box-shadow 0.3s ease, background-color 0.3s ease, padding 0.35s ease;
}

@media (min-width: 1081px) {
  .wrapper-header {
    left: 0;
    position: fixed;
    top: 0;
    z-index: 9999;
  }

  body.home .wrapper-header {
    -webkit-backdrop-filter: blur(15px) saturate(100%);
    backdrop-filter: blur(15px) saturate(100%);
    background-color: rgba(8, 31, 62, 0.52) !important;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08) inset;
  }

  body.home .wrapper-header.has-midnight-background-color,
  body.home .wrapper-header.has-background {
    background-color: rgba(8, 31, 62, 0.52) !important;
  }

  body.home .wrapper-header::after {
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0.25) 10%, rgba(255, 255, 255, 0) 100%);
    bottom: 0;
    content: '';
    display: block;
    height: 1px;
    left: 0;
    position: absolute;
    width: 100%;
    z-index: 9999;
  }

  body:not(.home) .wrapper-header,
  body:not(.home) .wrapper-header.has-midnight-background-color,
  body:not(.home) .wrapper-header.has-gray-background-color,
  body:not(.home) .wrapper-header.has-background {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background-color: var(--wp--preset--color--gray) !important;
    box-shadow: none;
  }

  body:not(.home) .wrapper-header::after {
    content: none;
    display: none;
  }
}


@media (min-width: 1081px) {

  .wrapper-header.header-sticky,
  .wrapper-header.header-sticky.has-midnight-background-color,
  .wrapper-header.header-sticky.has-background {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
    /* Must include transform — shorthand above was overriding hide/reveal slide */
    -webkit-transition: -webkit-transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease-out, padding 0.35s ease;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease-out, padding 0.35s ease;
  }

  body.home .wrapper-header.header-sticky,
  body.home .wrapper-header.header-sticky.has-midnight-background-color,
  body.home .wrapper-header.header-sticky.has-background {
    background-color: #10264ae3 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  }

  body.home .wrapper-header.header-sticky:hover {
    background-color: var(--wp--preset--color--midnight) !important;
    -webkit-transition: -webkit-transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease-in, padding 0.35s ease;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease-in, padding 0.35s ease;
  }

  body:not(.home) .wrapper-header.header-sticky,
  body:not(.home) .wrapper-header.header-sticky.has-midnight-background-color,
  body:not(.home) .wrapper-header.header-sticky.has-gray-background-color,
  body:not(.home) .wrapper-header.header-sticky.has-background {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    background-color: var(--wp--preset--color--gray) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  }

  body:not(.home) .wrapper-header.header-sticky:hover {
    background-color: var(--wp--preset--color--midnight) !important;
    -webkit-transition: -webkit-transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease-in, padding 0.35s ease;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease-in, padding 0.35s ease;
  }
}

/* Smooth transitions for compact state changes */
.wrapper-header .wp-block-group.has-midnight-background-color,
.wrapper-header .wp-block-group.has-hot-iron-background-color,
.wrapper-header .wp-block-group[style*="min-height:192px"],
.wrapper-header .wp-block-group[style*="min-height: 192px"],
.wrapper-header .wp-block-group[style*="min-height:120px"],
.wrapper-header .wp-block-group[style*="min-height: 120px"],
.wrapper-header .wp-block-group:first-of-type .wp-block-group {
  -webkit-transition: min-height 0.35s ease;
  transition: min-height 0.35s ease;
}

.wrapper-header #logo-rpeurope,
.wrapper-header .wp-block-custom-svg-icon-block-svg-icon svg {
  -webkit-transition: width 0.35s ease, height 0.35s ease, max-height 0.35s ease;
  transition: width 0.35s ease, height 0.35s ease, max-height 0.35s ease;
}

/* Custom SVG logo blocks (HTML anchor): hover opacity */
.wrapper-header #logo-rp,
.wrapper-header #logo-noria {
  -webkit-transition: opacity 0.25s ease;
  transition: opacity 0.25s ease;
}

.wrapper-header #logo-rp svg,
.wrapper-header #logo-noria svg {
  -webkit-transition: height 0.35s ease, max-height 0.35s ease;
  transition: height 0.35s ease, max-height 0.35s ease;
}

.wrapper-header #logo-rp:hover,
.wrapper-header #logo-noria:hover {
  opacity: 0.666;
}

.wrapper-header .wp-block-image img,
.wrapper-header .wp-block-image a img {
  max-height: 64px;
  width: auto;
  -webkit-transition: max-height 0.35s ease;
  transition: max-height 0.35s ease;
}

/* Primary header row: nav may shrink so logos can keep intrinsic width. */
.wrapper-header .wp-block-group.is-layout-flex>.wp-block-navigation {
  flex: 1 1 auto;
  min-width: 0;
}

/* Base transitions for elements that downsize when sticky */
.wrapper-header nav.wp-block-navigation a:not(.wp-block-button__link),
.wrapper-header .wp-block-navigation a:not(.wp-block-button__link) {
  -webkit-transition: font-size 0.35s ease, color 0.2s ease;
  transition: font-size 0.35s ease, color 0.2s ease;
}

.wrapper-header .wp-block-group p:last-child {
  -webkit-transition: font-size 0.35s ease;
  transition: font-size 0.35s ease;
}

.wrapper-header .wp-block-group.is-layout-flex.is-vertical {
  -webkit-transition: gap 0.35s ease;
  transition: gap 0.35s ease;
}

.wrapper-header .wp-block-buttons .wp-block-button__link,
.wrapper-header .wp-block-buttons a.wp-block-button__link {
  -webkit-transition: font-size 0.35s ease, min-height 0.35s ease, padding 0.35s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  transition: font-size 0.35s ease, min-height 0.35s ease, padding 0.35s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* Compact styles when sticky (reduced bar + logos + type) — desktop only */
@media (min-width: 1081px) {

  .wrapper-header.header-sticky.wp-block-group.has-midnight-background-color,
  .wrapper-header.header-sticky.wp-block-group.has-hot-iron-background-color,
  .wrapper-header.header-sticky .wp-block-group.has-midnight-background-color,
  .wrapper-header.header-sticky .wp-block-group.has-hot-iron-background-color {
    min-height: 0 !important;
  }

  .wrapper-header.header-sticky .wp-block-group[style*="min-height:192px"] {
    min-height: 56px !important;
  }

  .wrapper-header.header-sticky .wp-block-group[style*="min-height: 192px"] {
    min-height: 56px !important;
  }

  .wrapper-header.header-sticky .wp-block-group[style*="min-height:120px"],
  .wrapper-header.header-sticky .wp-block-group[style*="min-height: 120px"] {
    min-height: 56px !important;
  }

  /* Inner logo row: let height follow scaled logos (was 56px floor). */
  .wrapper-header.header-sticky .wp-block-group:first-of-type .wp-block-group {
    min-height: 0 !important;
  }

  .wrapper-header.header-sticky #logo-rpeurope,
  .wrapper-header.header-sticky .wp-block-custom-svg-icon-block-svg-icon svg {
    width: auto !important;
    height: auto !important;
    max-height: 42px;
  }

  .wrapper-header.header-sticky .wp-block-image img,
  .wrapper-header.header-sticky .wp-block-image a img {
    max-height: 36px;
  }

  .wrapper-header.header-sticky .wp-block-group p:last-child {
    font-size: 11px !important;
  }

  /* Reduce gap between Europe and date in sticky header */
  .wrapper-header.header-sticky .wp-block-group.is-layout-flex.is-vertical {
    gap: 0.05rem !important;
  }

  .wrapper-header.header-sticky nav.wp-block-navigation a:not(.wp-block-button__link),
  .wrapper-header.header-sticky .wp-block-navigation a:not(.wp-block-button__link) {
    font-size: 0.8125rem !important;
  }

  /* Custom SVG logos: smaller while sticky (overrides inline --custom-svg-logo-max-h).
     IDs are reliable; the flex > :first-child path can miss real markup. */
  .wrapper-header.header-sticky #logo-rp.has-custom-svg-logo-max-height,
  .wrapper-header.header-sticky .wp-block-group.is-layout-flex>.wp-block-custom-svg-logo:first-child .wp-block-custom-svg-logo-logo.has-custom-svg-logo-max-height {
    --custom-svg-logo-max-h: 46px !important;
  }

  .wrapper-header.header-sticky #logo-noria.has-custom-svg-logo-max-height,
  .wrapper-header.header-sticky .rpe-header-sponsor-stack .wp-block-custom-svg-logo .wp-block-custom-svg-logo-logo.has-custom-svg-logo-max-height {
    --custom-svg-logo-max-h: 28px !important;
  }

  .wrapper-header.header-sticky .wp-block-buttons .wp-block-button__link,
  .wrapper-header.header-sticky .wp-block-buttons a.wp-block-button__link {
    font-size: 1rem !important;
    min-height: 0 !important;
    padding-block: 0.5rem !important;
    -webkit-transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, padding 0.35s ease;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, padding 0.35s ease;
  }
}

/* Body padding to prevent content from going under fixed header (desktop only) */
body {
  padding-top: 0;
  -webkit-transition: padding-top 0.35s ease;
  transition: padding-top 0.35s ease;
}

@media (min-width: 1081px) {
  body:not(.home) {
    padding-top: var(--scroll-margin-top);
  }

  body:not(.home).header-is-sticky {
    padding-top: 66px;
  }
}

body.home,
body.home.header-is-sticky {
  padding-top: 0;
}

body.home .rpe-hero {
  padding-top: calc(var(--wp--preset--spacing--80) + var(--rpe-header-overlay-offset)) !important;
}

/*
 * Block / Site Editor canvas only: body padding-top offsets the fixed header on the
 * live site; the iframe editor body is not “under” that header, so drop the gap.
 * These classes are not used on the front-end document body.
 */
body.block-editor-iframe__body.editor-styles-wrapper {
  padding-top: 0 !important;
}

body.block-editor-iframe__body.editor-styles-wrapper.header-is-sticky {
  padding-top: 0 !important;
}

/* Links */

a:hover {
  color: var(--wp--preset--color--rpe-green);
}

/* --------------------------------------------------------------------------
   5. Navigation
   -------------------------------------------------------------------------- */
nav.wp-block-navigation {
  width: 100%;
}

nav.wp-block-navigation a:hover {
  color: var(--wp--preset--color--safety-yellow) !important;
}

/* Desktop: hide mobile-only controls */
@media (min-width: 1081px) {

  .wrapper-header .rpe-mobile-nav-toggle {
    display: none !important;
    height: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    position: absolute !important;
    visibility: hidden !important;
    width: 0 !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-close,
  button.wp-block-navigation__responsive-container-close,
  .wrapper-header .wp-block-navigation__responsive-container-close,
  .wrapper-header button.wp-block-navigation__responsive-container-close {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
    left: -9999px !important;
    width: 0 !important;
    height: 0 !important;
    overflow: hidden !important;
  }
}

/* Mobile nav at 1080px — overrides WordPress core navigation breakpoint (600px) */
@media (max-width: 1080px) {
  :root {
    --rpe-header-overlay-offset: 0px;
    --scroll-margin-top: 80px;
  }

  /* Header scrolls with the page on mobile (fixed only while menu overlay is open) */
  .wrapper-header,
  .wrapper-header.has-midnight-background-color,
  .wrapper-header.has-gray-background-color,
  .wrapper-header.has-background {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    background-color: var(--wp--preset--color--midnight) !important;
    box-shadow: none;
    left: auto !important;
    position: relative !important;
    top: auto !important;
    z-index: 10 !important;
  }

  body,
  body:not(.home),
  body.header-is-sticky,
  body.header-is-sticky:not(.home) {
    padding-top: 0 !important;
  }

  body.home .rpe-hero {
    padding-top: var(--wp--preset--spacing--50) !important;
  }

  /* Show hamburger; hide horizontal desktop menu */
  .wp-block-navigation__responsive-container-open:not(.always-shown) {
    display: flex !important;
  }

  .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open):not(.has-modal-open) {
    display: none !important;
  }

  @keyframes rpe-nav-close-fade-in {
    from {
      opacity: 0;
    }

    to {
      opacity: 1;
    }
  }

  /* Header sits above the full-screen overlay while menu is open */
  .wrapper-header:has(.wp-block-navigation__responsive-container.is-menu-open),
  .wrapper-header:has(.wp-block-navigation__responsive-container.has-modal-open) {
    box-shadow: none !important;
    position: fixed !important;
    z-index: 100000 !important;
  }

  .wrapper-header:has(.wp-block-navigation__responsive-container.is-menu-open)::after,
  .wrapper-header:has(.wp-block-navigation__responsive-container.has-modal-open)::after {
    content: none !important;
    display: none !important;
  }

  /* Hide native WP toggles in header; scripts.js triggers them programmatically */
  .wrapper-header .rpe-nav-native-toggle,
  .wrapper-header .wp-block-navigation__responsive-container-close {
    display: none !important;
    height: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    position: absolute !important;
    visibility: hidden !important;
    width: 0 !important;
  }

  /* Custom header toggle — 32px icons, same position as native open button */
  .wrapper-header .rpe-mobile-nav-toggle {
    -webkit-tap-highlight-color: transparent;
    align-items: center !important;
    background: transparent !important;
    border: none !important;
    border-radius: 2px !important;
    color: inherit !important;
    cursor: pointer !important;
    display: flex !important;
    flex-shrink: 0 !important;
    font: inherit !important;
    height: 32px !important;
    justify-content: flex-end !important;
    margin: 0 !important;
    margin-left: auto !important;
    min-height: 32px !important;
    min-width: 32px !important;
    outline: 2px solid transparent !important;
    outline-offset: 3px !important;
    padding: 0 var(--wp--preset--spacing--40) 0 0 !important;
    position: relative !important;
    transition: outline-color 0.15s ease, box-shadow 0.15s ease !important;
    width: auto !important;
    z-index: 2 !important;
  }

  .wrapper-header .rpe-mobile-nav-toggle:focus-visible,
  .wrapper-header .rpe-mobile-nav-toggle:active,
  .wrapper-header .rpe-mobile-nav-toggle.is-pressed {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--safety-yellow) 35%, transparent) !important;
    outline-color: var(--wp--preset--color--safety-yellow) !important;
  }

  .wrapper-header .rpe-mobile-nav-toggle svg {
    display: block !important;
    flex-shrink: 0 !important;
    height: 32px !important;
    width: 55.65px !important;
  }

  .wrapper-header .rpe-mobile-nav-toggle svg,
  .wrapper-header .rpe-mobile-nav-toggle svg path {
    fill: var(--wp--preset--color--white) !important;
  }

  .wrapper-header .rpe-mobile-nav-toggle:hover svg,
  .wrapper-header .rpe-mobile-nav-toggle:hover svg path {
    fill: var(--wp--preset--color--safety-yellow) !important;
  }

  .wrapper-header .rpe-mobile-nav-toggle.is-menu-open svg {
    animation: rpe-nav-close-fade-in 0.2s ease !important;
  }

  .wrapper-header .rpe-mobile-nav-toggle.is-menu-open svg,
  .wrapper-header .rpe-mobile-nav-toggle.is-menu-open svg path {
    fill: var(--wp--preset--color--safety-yellow) !important;
  }

  /* Close only when overlay menu is open (non-header nav, if any) */
  .wp-block-navigation__responsive-container-close {
    display: none !important;
    opacity: 0 !important;
    pointer-events: none !important;
    visibility: hidden !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close,
  .wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation__responsive-container-close,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog .wp-block-navigation__responsive-container-close,
  .wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation__responsive-dialog .wp-block-navigation__responsive-container-close {
    display: block !important;
    pointer-events: auto !important;
    visibility: visible !important;
  }

  /* Full-screen overlay */
  #modal-1.wp-block-navigation__responsive-container.is-menu-open,
  #modal-1.wp-block-navigation__responsive-container.has-modal-open,
  #modal-2.wp-block-navigation__responsive-container.is-menu-open,
  #modal-2.wp-block-navigation__responsive-container.has-modal-open,
  .wp-block-navigation__responsive-container.is-menu-open,
  .wp-block-navigation__responsive-container.has-modal-open {
    background-color: var(--wp--preset--color--midnight) !important;
    background-image: none !important;
    display: block !important;
    height: 100vh !important;
    left: 0 !important;
    max-height: 100vh !important;
    overflow-y: auto !important;
    position: fixed !important;
    right: 0 !important;
    top: 0 !important;
    z-index: 1 !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
  .wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation__responsive-container-content,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
  .wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation__container {
    display: block !important;
    visibility: visible !important;
  }

  #modal-1-content,
  .wp-block-navigation__responsive-container-content {
    background-color: var(--wp--preset--color--midnight) !important;
    max-width: 80% !important;
    padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40) !important;
  }

  .wp-block-navigation__container {
    align-items: flex-start !important;
    gap: 0 !important;
    justify-content: flex-start !important;
    text-align: left !important;
    width: 100% !important;
  }

  .wp-block-navigation__container.items-justified-right,
  .wp-block-navigation__container[class*="items-justified-right"] {
    justify-content: flex-start !important;
    text-align: left !important;
  }

  .wp-block-navigation__container li {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    display: block !important;
    justify-content: flex-start !important;
    text-align: left !important;
    width: 100% !important;
  }

  .wp-block-navigation__container .wp-block-navigation-item,
  .wp-block-navigation__container>li {
    justify-content: flex-start !important;
    max-width: 100% !important;
    text-align: left !important;
    width: 100% !important;
  }

  .wp-block-navigation__container a,
  .wp-block-navigation__container .wp-block-navigation-item__content,
  .wp-block-navigation__container .wp-block-navigation-item__label,
  .wp-block-navigation__container li a {
    color: var(--wp--preset--color--white) !important;
    display: block !important;
    font-size: var(--wp--preset--font-size--normal) !important;
    justify-content: flex-start !important;
    line-height: 1.5 !important;
    padding: var(--wp--preset--spacing--30) 0 !important;
    text-align: left !important;
    width: 100% !important;
  }

  .wp-block-navigation__container a:hover,
  .wp-block-navigation__container .wp-block-navigation-item__content:hover,
  .wp-block-navigation__container li a:hover {
    color: var(--wp--preset--color--safety-yellow) !important;
  }

  /* Tap/focus outline — matches .rpe-mobile-nav-toggle */
  .wp-block-navigation__responsive-container .wp-block-navigation__container a,
  .wp-block-navigation__responsive-container .wp-block-navigation__container .wp-block-navigation-item__content,
  .wp-block-navigation__responsive-container .wp-block-navigation__container li a,
  .wp-block-navigation__responsive-container .wp-block-button__link {
    -webkit-tap-highlight-color: transparent;
    border-radius: 2px;
    outline: 2px solid transparent !important;
    outline-offset: 3px !important;
    transition: outline-color 0.15s ease, box-shadow 0.15s ease !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__container a:focus-visible,
  .wp-block-navigation__responsive-container .wp-block-navigation__container .wp-block-navigation-item__content:focus-visible,
  .wp-block-navigation__responsive-container .wp-block-navigation__container li a:focus-visible,
  .wp-block-navigation__responsive-container .wp-block-navigation__container a:active,
  .wp-block-navigation__responsive-container .wp-block-navigation__container .wp-block-navigation-item__content:active,
  .wp-block-navigation__responsive-container .wp-block-navigation__container li a:active,
  .wp-block-navigation__responsive-container .wp-block-navigation__container a.is-pressed,
  .wp-block-navigation__responsive-container .wp-block-navigation__container .wp-block-navigation-item__content.is-pressed,
  .wp-block-navigation__responsive-container .wp-block-navigation__container li a.is-pressed,
  .wp-block-navigation__responsive-container .wp-block-button__link:focus-visible,
  .wp-block-navigation__responsive-container .wp-block-button__link:active,
  .wp-block-navigation__responsive-container .wp-block-button__link.is-pressed {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--safety-yellow) 35%, transparent) !important;
    outline-color: var(--wp--preset--color--safety-yellow) !important;
  }

  .wp-block-navigation__container li:last-child {
    border-bottom: none !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
  .wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation__responsive-close,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog,
  .wp-block-navigation__responsive-container.has-modal-open .wp-block-navigation__responsive-dialog {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .wp-block-navigation__responsive-container-open:not(.rpe-nav-native-toggle) {
    align-items: center !important;
    display: flex !important;
    height: 32px !important;
    justify-content: flex-end !important;
    padding-right: var(--wp--preset--spacing--40) !important;
    width: auto !important;
  }

  .wp-block-navigation__responsive-container-open:not(.rpe-nav-native-toggle) svg {
    display: block !important;
    flex-shrink: 0 !important;
    height: 32px !important;
    width: 55.65px !important;
  }

  .wp-block-navigation__responsive-container-open:not(.rpe-nav-native-toggle) svg,
  .wp-block-navigation__responsive-container-open:not(.rpe-nav-native-toggle) svg path {
    fill: var(--wp--preset--color--white) !important;
  }

  /* Left-align CTA button with nav links (overrides is-content-justification-center) */
  .wp-block-navigation__responsive-container-content .wp-block-buttons,
  .wp-block-navigation__responsive-container-content .button-header,
  .wp-block-navigation__responsive-container-content .wp-block-buttons.is-content-justification-center,
  .wp-block-navigation__responsive-container-content .wp-block-buttons.is-content-justification-right,
  .wp-block-navigation__responsive-container-content [class*="wp-container-core-buttons-is-layout"] {
    justify-content: flex-start !important;
    text-align: left !important;
    width: 100% !important;
  }

  .wp-block-navigation__responsive-container-content .wp-block-button,
  .wp-block-navigation__responsive-container-content .button-header .wp-block-button {
    margin-left: 0 !important;
    margin-right: auto !important;
    width: auto !important;
  }
}

/* --------------------------------------------------------------------------
   6. Core blocks
   -------------------------------------------------------------------------- */

/* Image hover utility */
.image-hover a,
.image-hover img,
.svg-hover svg {
  display: inline-block;
  transition: opacity 0.25s ease-out;
}

.image-hover:hover a,
.image-hover:hover img,
.svg-hover:hover svg {
  opacity: 0.666;
  transition: opacity 0.25s ease-in;
}

.wp-block-image img {
  vertical-align: middle !important;
}

/* Images */
.wp-block-image.is-style-full-width {
  width: 100%;
}

.wp-block-image.is-style-full-width img,
.wp-block-image.is-style-full-width a,
.wp-block-image.is-style-full-width a img {
  width: 100%;
  height: auto;
}

/* Buttons */
.wp-block-button .wp-block-button__link,
.wp-block-button a.wp-block-button__link {
  box-sizing: border-box;
  font-size: var(--wp--preset--font-size--medium);
  min-height: 64px;
  padding-block: var(--wp--preset--spacing--40);
  padding-inline: var(--wp--preset--spacing--60);
  -webkit-transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* Default / Primary Yellow (safety yellow + midnight text) */
.wp-block-button:not(.is-style-outline-button):not(.is-style-blue-button):not(.is-style-red-button):not(.is-style-green-button) .wp-block-button__link,
.wp-block-button:not(.is-style-outline-button):not(.is-style-blue-button):not(.is-style-red-button):not(.is-style-green-button) a.wp-block-button__link,
.wp-block-button.is-style-yellow-button .wp-block-button__link,
.wp-block-button.is-style-yellow-button a.wp-block-button__link {
  background-color: var(--wp--preset--color--safety-yellow);
  color: var(--wp--preset--color--midnight);
}

.wp-block-button:not(.is-style-outline-button):not(.is-style-blue-button):not(.is-style-red-button):not(.is-style-green-button) .wp-block-button__link:hover,
.wp-block-button:not(.is-style-outline-button):not(.is-style-blue-button):not(.is-style-red-button):not(.is-style-green-button) a.wp-block-button__link:hover,
.wp-block-button.is-style-yellow-button .wp-block-button__link:hover,
.wp-block-button.is-style-yellow-button a.wp-block-button__link:hover {
  background-color: var(--wp--preset--color--rpe-green);
  color: var(--wp--preset--color--white);
}

/* Keyboard focus — outline only; does not change button dimensions */
.wp-block-button .wp-block-button__link:focus-visible,
.wp-block-button a.wp-block-button__link:focus-visible {
  outline: 2px solid var(--wp--preset--color--safety-yellow);
  outline-offset: 2px;
}

/* Button with chevron arrow: add class "has-arrow-icon" to the button block (Advanced > Additional CSS class) */
.wp-block-button.has-arrow-icon .wp-block-button__link,
.wp-block-button.has-arrow-icon a.wp-block-button__link {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 0.5rem;
}

.wp-block-button.has-arrow-icon .wp-block-button__link::after,
.wp-block-button.has-arrow-icon a.wp-block-button__link::after {
  content: "";
  display: inline-block;
  width: 1.0625em;
  height: 1em;
  -ms-flex-negative: 0;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 32'%3E%3Cpolygon fill='white' points='22.21 15.79 8.9 32 0 32 13.31 15.79 4.82 0 13.72 0 22.21 15.79'/%3E%3Cpolygon fill='white' points='34 15.79 20.69 32 11.79 32 25.1 15.79 16.61 0 25.51 0 34 15.79'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 32'%3E%3Cpolygon fill='white' points='22.21 15.79 8.9 32 0 32 13.31 15.79 4.82 0 13.72 0 22.21 15.79'/%3E%3Cpolygon fill='white' points='34 15.79 20.69 32 11.79 32 25.1 15.79 16.61 0 25.51 0 34 15.79'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

/* Block style: Green Button (RPE green + white text) */
.wp-block-button.is-style-green-button .wp-block-button__link,
.wp-block-button.is-style-green-button a.wp-block-button__link {
  background-color: var(--wp--preset--color--rpe-green);
  color: var(--wp--preset--color--white);
}

.wp-block-button.is-style-green-button .wp-block-button__link:hover,
.wp-block-button.is-style-green-button a.wp-block-button__link:hover {
  background-color: var(--wp--preset--color--midnight);
  color: var(--wp--preset--color--white);
}

/* Block style: Blue Button (maintenance blue + white text) */
.wp-block-button.is-style-blue-button .wp-block-button__link,
.wp-block-button.is-style-blue-button a.wp-block-button__link {
  background-color: var(--wp--preset--color--maintenance-blue);
  color: var(--wp--preset--color--white);
  border: 0 solid transparent;
}

.wp-block-button.is-style-blue-button .wp-block-button__link:hover,
.wp-block-button.is-style-blue-button a.wp-block-button__link:hover {
  background-color: var(--wp--preset--color--midnight);
  color: var(--wp--preset--color--safety-yellow);
}

/* Block style: Red Button (hot iron + white text) */
.wp-block-button.is-style-red-button .wp-block-button__link,
.wp-block-button.is-style-red-button a.wp-block-button__link {
  background-color: var(--wp--preset--color--hot-iron);
  color: var(--wp--preset--color--white);
}

.wp-block-button.is-style-red-button .wp-block-button__link:hover,
.wp-block-button.is-style-red-button a.wp-block-button__link:hover {
  background-color: var(--wp--preset--color--midnight);
  color: var(--wp--preset--color--white);
}

/* Block style: Outline */
.wp-block-button.is-style-outline-button .wp-block-button__link,
.wp-block-button.is-style-outline-button a.wp-block-button__link {
  background-color: transparent;
  color: var(--wp--preset--color--midnight);
  border: 2px solid var(--wp--preset--color--midnight);
}

.wp-block-button.is-style-outline-button .wp-block-button__link:hover,
.wp-block-button.is-style-outline-button a.wp-block-button__link:hover {
  background-color: var(--wp--preset--color--midnight);
  color: var(--wp--preset--color--white);
  border-color: var(--wp--preset--color--midnight);
}

/* Block style: Red Button with Dark Hover (for use on dark backgrounds) */
.wp-block-button.is-style-red-button.dark-hover .wp-block-button__link:hover,
.wp-block-button.is-style-red-button.dark-hover a.wp-block-button__link:hover {
  background-color: var(--wp--preset--color--safety-yellow);
  color: var(--wp--preset--color--midnight);
}

/* Navy sections: light hover so buttons stay visible on midnight backgrounds */
.rpe-section--navy .wp-block-button.is-style-green-button .wp-block-button__link:hover,
.rpe-section--navy .wp-block-button.is-style-green-button a.wp-block-button__link:hover,
.rpe-section--navy .wp-block-button.is-style-blue-button .wp-block-button__link:hover,
.rpe-section--navy .wp-block-button.is-style-blue-button a.wp-block-button__link:hover,
.rpe-section--navy .wp-block-button.is-style-red-button .wp-block-button__link:hover,
.rpe-section--navy .wp-block-button.is-style-red-button a.wp-block-button__link:hover,
.rpe-section--navy .wp-block-button.is-style-outline-button .wp-block-button__link:hover,
.rpe-section--navy .wp-block-button.is-style-outline-button a.wp-block-button__link:hover {
  background-color: var(--wp--preset--color--safety-yellow);
  color: var(--wp--preset--color--midnight);
}

.rpe-section--navy .wp-block-button.is-style-outline-button .wp-block-button__link:hover,
.rpe-section--navy .wp-block-button.is-style-outline-button a.wp-block-button__link:hover {
  border-color: var(--wp--preset--color--safety-yellow);
}

/* --------------------------------------------------------------------------
   7. Components
   -------------------------------------------------------------------------- */

/* Back to top */

.to-top-link {
  --fill-percentage: 0%;
  -webkit-backdrop-filter: blur(1px) saturate(100%);
  -webkit-transition: all 0.3s ease-out;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  backdrop-filter: blur(1px) saturate(100%);
  background: color-mix(in srgb, var(--wp--preset--color--white) 80%, transparent);
  border-radius: 50%;
  border: 3px solid var(--wp--preset--color--maintenance-blue);
  bottom: 115px;
  box-sizing: border-box;
  cursor: pointer;
  display: none;
  height: 58px;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  padding: 0;
  position: fixed;
  right: var(--wp--preset--spacing--60);
  text-align: center;
  transition: all 0.3s ease-out;
  width: 58px;
  z-index: 9999;
}

.to-top-link::before {
  background: conic-gradient(from 0deg,
      var(--wp--preset--color--rpe-green) 0%,
      var(--wp--preset--color--rpe-green) var(--fill-percentage),
      transparent var(--fill-percentage),
      transparent 100%);
  border-radius: 50%;
  content: "";
  height: 100%;
  left: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  -webkit-transition: background 0.15s linear;
  transition: background 0.15s linear;
  width: 100%;
  z-index: -1;
  mask: radial-gradient(circle at center,
      transparent calc(50% - 3.5px),
      black calc(50% - 3.5px),
      black 50%,
      transparent 50%);
  -webkit-mask: -webkit-radial-gradient(center circle,
      transparent calc(50% - 3.5px),
      black calc(50% - 3.5px),
      black 50%,
      transparent 50%);
}

.to-top-link:hover {
  background-color: var(--wp--preset--color--maintenance-blue);
}

.to-top-link:hover svg path {
  fill: var(--wp--preset--color--rpe-green);
  -webkit-transition: fill 0.2s ease-out;
  transition: fill 0.2s ease-out;
}

.to-top-link svg {
  display: block;
  height: auto;
  left: 50%;
  max-width: 100%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 16px;
  -webkit-transform: translate(-50%, -50%);
}

.to-top-link svg path {
  fill: var(--wp--preset--color--maintenance-blue);
  -webkit-transition: fill 0.2s ease-in;
  transition: fill 0.2s ease-in;
}

.to-top-link>svg:hover {
  opacity: 1;
  -webkit-transition: opacity 1s ease-out 0s;
  transition: opacity 1s ease-out 0s;
}

@media (max-width: 960px) {
  .to-top-link {
    bottom: 1.25rem;
    right: var(--wp--preset--spacing--40);
    width: 44px;
    height: 44px;
    border-width: 2px;
  }

  .to-top-link svg {
    width: 12px;
  }
}

/* Header nav hover (brand) */

.wrapper-header .wp-block-navigation a:hover {
  color: var(--wp--preset--color--rpe-green) !important;
}

/* --------------------------------------------------------------------------
   8. RPE homepage
   -------------------------------------------------------------------------- */

.rpe-hero {
  position: relative;
  /* clip decorative layers without breaking position:sticky (unlike overflow:hidden) */
  overflow: clip;
}

/* Wrapper: positioning + GSAP ScrollTrigger layer (avoid transform clash with inner rotate) */
.rpe-hero-accent-wrap {
  position: absolute;
  /* Below all hero typography (inner container stacking context sits above). */
  z-index: 1;
  pointer-events: none;
}

/* Inner tile: rotation + GSAP float (translate only touches this layer) */
.rpe-hero-accent {
  width: 100%;
  height: 100%;
  opacity: 0.123;
  border-radius: 2px;
  will-change: transform;
}

.rpe-hero-accent-wrap--yellow {
  bottom: -5.25rem;
  height: var(--rpe-accent-s0);
  right: calc(-1 * var(--rpe-accent-s0));
  width: var(--rpe-accent-s0);
}

.rpe-hero-accent--yellow {
  background: var(--wp--preset--color--safety-yellow);
  transform: rotate(22deg);
}

.rpe-hero-accent-wrap--blue {
  left: 93%;
  top: 18%;
  width: var(--rpe-accent-s2);
  height: var(--rpe-accent-s2);
}

.rpe-hero-accent--blue {
  background: var(--wp--preset--color--maintenance-blue);
  transform: rotate(12deg);
}

.rpe-hero-accent-wrap--red {
  left: -12%;
  top: 33.33333%;
  width: var(--rpe-accent-s3);
  height: var(--rpe-accent-s3);
}

.rpe-hero-accent--red {
  background: var(--wp--preset--color--hot-iron);
  transform: rotate(-18deg);
}

.rpe-hero-accent-wrap--green {
  left: -20%;
  bottom: 0%;
  width: var(--rpe-accent-s1);
  height: var(--rpe-accent-s1);
}

.rpe-hero-accent--green {
  background: var(--wp--preset--color--rpe-green);
  transform: rotate(-10deg);
}

/* Hero cover stacking (dim < accents < foreground; video overrides) */
.rpe-hero .wp-block-cover__background {
  z-index: 0;
}

.rpe-hero .wp-block-cover__inner-container {
  max-width: 1200px;
  width: min(100% - clamp(2rem, 6vw, 5rem), 1200px);
  margin-inline: auto;
  position: relative;
  /* Must stay above accent wraps (z-index 1); isolate keeps copy painted above decorative layers. */
  z-index: 10;
  isolation: isolate;
}

.rpe-hero:has(#bg-hero-video) {
  isolation: isolate;
}

.rpe-hero:has(#bg-hero-video) .wp-block-cover__inner-container {
  position: static;
  z-index: auto;
  isolation: auto;
}

.rpe-hero:has(#bg-hero-video) .wp-block-cover__inner-container> :not(#bg-hero-video):not(.rpe-hero-accent-wrap) {
  position: relative;
  z-index: 6;
}

.rpe-hero:has(#bg-hero-video) .wp-block-cover__background {
  z-index: 1;
}

.rpe-hero:has(#bg-hero-video) .rpe-hero-accent-wrap {
  z-index: 4;
}

.rpe-hero:has(#bg-hero-video) .rpe-hero-accent {
  opacity: 0.123;
}

.rpe-hero:has(#bg-hero-video) .rpe-hero-accent-wrap--red {
  left: clamp(1rem, 4vw, 4rem);
}

.rpe-hero:has(#bg-hero-video) .rpe-hero-accent-wrap--green {
  left: clamp(2rem, 8vw, 7rem);
}

.rpe-hero:has(#bg-hero-video) .rpe-hero-accent-wrap--blue {
  left: auto;
  right: clamp(2rem, 6vw, 5rem);
}

.rpe-hero:has(#bg-hero-video) .rpe-hero-accent-wrap--yellow {
  right: clamp(1rem, 5vw, 4rem);
}

#bg-hero-video {
  height: 100%;
  inset: 0;
  margin: 0 !important;
  max-width: none !important;
  overflow: hidden;
  padding: 0;
  pointer-events: none;
  position: absolute;
  width: 100%;
  z-index: 0;
}

#bg-hero-video::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg,
      color-mix(in srgb, var(--wp--preset--color--midnight) 86%, transparent),
      color-mix(in srgb, var(--wp--preset--color--maintenance-blue) 62%, transparent)),
    color-mix(in srgb, var(--wp--preset--color--midnight) 64%, transparent);
  mix-blend-mode: multiply;
}

#bg-hero-video video {
  display: block;
  position: relative;
  z-index: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  opacity: 0.33;
  object-fit: cover;
  object-position: center;
}

/* Stack hero content above accent parallax — apply class on foreground blocks/groups in the editor. */
.rpe-hero-foreground {
  position: relative;
  z-index: 2;
}

a.rpe-cohost-pill {
  align-items: center;
  backdrop-filter: blur(5px) saturate(100%);
  background: rgba(16, 38, 74, 0.5);
  -webkit-backdrop-filter: blur(5px) saturate(100%);
  border-radius: 0.5rem;
  color: var(--wp--preset--color--gray-light);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  justify-content: center;
  margin: 0;
  padding: var(--wp--preset--spacing--60);
  text-decoration: none;
  transition: background 0.2s ease-out;
  width: fit-content;
}

a.rpe-cohost-pill:hover {
  background: #10264ae5;
  transition: background 0.2s ease-in;
}

a.rpe-cohost-pill:focus-visible {
  outline: 2px solid var(--wp--preset--color--safety-yellow);
  outline-offset: 2px;
}

a.rpe-cohost-pill p {
  margin: 0;
  text-align: center;
  font-size: 10px;
  font-style: normal;
  font-weight: 300;
  line-height: 1.4;
}

/* Co-host pill sticky offset (uses --scroll-margin-top from :root) */

body {
  --rpe-cohost-pill-sticky-top: var(--scroll-margin-top, 132px);
}

@media (min-width: 1081px) {
  body.header-is-sticky {
    --rpe-cohost-pill-sticky-top: var(--scroll-margin-top, 108px);
  }
}

/* Co-host pill: stick within any cover section (desktop columns only) */
@media (min-width: 901px) {
  .wp-block-cover:has(.rpe-cohost-pill) {
    overflow: clip;
  }

  .wp-block-cover:has(.rpe-cohost-pill):not(.rpe-hero) .wp-block-cover__inner-container {
    max-width: 1200px;
    margin-inline: auto;
  }

  .wp-block-cover:has(.rpe-cohost-pill) .wp-block-columns {
    align-items: stretch;
  }

  .wp-block-cover:has(.rpe-cohost-pill) .wp-block-column:has(.rpe-cohost-pill) {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
  }

  .rpe-cohost-pill-sticky {
    position: sticky;
    top: var(--rpe-cohost-pill-sticky-top);
    z-index: 20;
    align-self: flex-start;
    margin-left: auto;
    width: fit-content;
  }
}

.rpe-mobius-mark {
  display: block;
  max-height: 64px;
  width: auto;
  height: auto;
  transition: opacity 0.25s ease;
}

/* --------------------------------------------------------------------------
   9. RPE layout
   -------------------------------------------------------------------------- */

/*
 * One-page sections stack flush. WP global styles add margin-block-start on
 * .wp-site-blocks direct children (from theme/user blockGap); section rhythm
 * uses .rpe-section padding and per-block Block Spacing instead.
 */
.wp-site-blocks>* {
  margin-block: 0 !important;
}

.wp-site-blocks>.alignfull.rpe-section,
.wp-site-blocks>.wp-block-group.alignfull.rpe-section,
.wp-site-blocks>.wp-block-cover.alignfull.rpe-section {
  max-width: none !important;
  width: 100% !important;
  margin-block: 0 !important;
}

.rpe-section {
  padding-block: clamp(4rem, 7vw, 7rem);
}

.rpe-section--compact {
  padding-block: clamp(3rem, 5vw, 5rem);
}

.rpe-section--large {
  padding-block: clamp(5rem, 9vw, 9rem);
}

.rpe-section--after-features {
  padding-top: clamp(5rem, 8vw, 8rem);
}

.rpe-container {
  width: min(100% - clamp(2rem, 6vw, 5rem), var(--wp--style--global--content-size, 1200px));
  max-width: var(--wp--style--global--content-size, 1200px);
  margin-inline: auto;
}

.rpe-container--narrow,
.rpe-section-intro--center {
  margin-inline: auto;
}

.rpe-section-intro--center {
  text-align: center;
}

.rpe-section-intro--left {
  max-width: 760px;
}

/*
 * Stack / hero groups: use Layout → Flex → Vertical in the editor so Block Spacing
 * maps to gap natively (same in Site Editor and front end). No theme gap overrides.
 * Only reset constrained-layout horizontal auto-margins and child margins that
 * would stack on top of flex gap (e.g. inline margin:0 on animated blocks).
 */
/*
 * WP maps vertical flex + content justification "left" to align-items: flex-start,
 * which shrink-wraps children and shifts centered sections left. Hero stays
 * left-aligned; section stacks and containers stretch children full width.
 */
.rpe-hero-inner.is-layout-flex.is-vertical {
  align-items: flex-start;
}

.rpe-stack-lg.is-layout-flex.is-vertical:not(.rpe-hero-inner),
.rpe-container.is-layout-flex.is-vertical {
  align-items: stretch;
}

.rpe-past-exhibitors>.wp-block-group.is-layout-flex.is-vertical {
  align-items: stretch;
  width: min(100% - clamp(2rem, 6vw, 5rem), var(--wp--style--global--content-size, 1200px));
  max-width: var(--wp--style--global--content-size, 1200px);
  margin-inline: auto;
}

.rpe-stack-lg.is-layout-flex>*,
.rpe-hero-inner.is-layout-flex>* {
  margin-block: 0 !important;
  margin-inline: 0 !important;
  max-width: 100%;
}

.rpe-grid-2,
.wp-block-columns.rpe-grid-2 {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
}

.wp-block-columns.rpe-grid-2>.wp-block-column {
  width: auto !important;
  flex-basis: auto !important;
}

.rpe-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
}

.rpe-form-grid .rpe-field--full,
.rpe-form-grid .full,
.rpe-form-grid>label:last-child {
  grid-column: 1 / -1;
}

.rpe-form-grid label,
.rpe-field label {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  font-weight: 700;
  color: var(--wp--preset--color--midnight);
}

.rpe-form-grid input,
.rpe-form-grid select,
.rpe-form-grid textarea,
.hbspt-form .hs-input:not([type="submit"]):not([type="button"]) {
  width: 100%;
  min-height: 3rem;
  padding: 0.75rem 1rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--midnight) 20%, transparent);
  border-radius: 0.75rem;
  background: var(--wp--preset--color--white);
  color: var(--wp--preset--color--midnight);
  font: inherit;
}

.rpe-form-grid textarea,
.hbspt-form textarea.hs-input {
  min-height: 8.125rem;
  height: auto;
  resize: vertical;
}

.rpe-consent-preview,
.hbspt-form .legal-consent-container {
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.5;
  color: color-mix(in srgb, var(--wp--preset--color--midnight) 82%, transparent);
}

.rpe-form-note {
  font-size: var(--wp--preset--font-size--small);
  line-height: 1.55;
  text-align: center;
}

.rpe-logo-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 5.5rem;
  margin-bottom: 0.75rem;
  border: 1px dashed color-mix(in srgb, var(--wp--preset--color--maintenance-blue) 35%, transparent);
  border-radius: 0.875rem;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--wp--preset--color--midnight) 55%, transparent);
}

/* --------------------------------------------------------------------------
  10. RPE components
   -------------------------------------------------------------------------- */

/* Button hover stability (dimensions/colors from theme.json) */
.wp-block-button__link:hover,
.hs-button:hover,
.rpe-form-card button:hover,
.rpe-form-card input[type="submit"]:hover,
.rpe-form-placeholder button:hover,
.rpe-form-placeholder input[type="submit"]:hover,
.rpe-hubspot-form .hsfc-Button:hover,
.rpe-hubspot-form button.hsfc-Button:hover,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-Button:not([disabled]):hover,
.rpe-hubspot-form [data-hsfc-id="Renderer"] button.hsfc-Button:not([disabled]):hover {
  transform: none !important;
  translate: none !important;
  top: auto;
}

/* 3) HubSpot + block yellow: match theme type scale (padding from preset spacing above) */
.hbspt-form .hs_submit .hs-button,
.hbspt-form .hs-submit .hs-button,
.hbspt-form input.hs-button,
form.hs-form .hs_submit .hs-button,
form.hs-form .hs-submit .hs-button,
form.hs-form input.hs-button {
  font-size: var(--wp--preset--font-size--medium, 1.125rem) !important;
  background-color: var(--wp--preset--color--safety-yellow) !important;
  color: var(--wp--preset--color--midnight) !important;
  transition: background-color 0.28s ease, color 0.28s ease, border-color 0.28s ease !important;
}

.wp-block-button.is-style-yellow-button .wp-block-button__link:hover,
.wp-block-button.is-style-yellow-button a.wp-block-button__link:hover,
.hbspt-form .hs_submit .hs-button:hover,
.hbspt-form .hs-submit .hs-button:hover,
.hbspt-form input.hs-button:hover,
form.hs-form .hs_submit .hs-button:hover,
form.hs-form .hs-submit .hs-button:hover,
form.hs-form input.hs-button:hover {
  background-color: var(--wp--preset--color--rpe-green) !important;
  color: var(--wp--preset--color--white) !important;
}

/* Keep HubSpot submit buttons centered in all forms */
.hbspt-form .hs_submit,
.hbspt-form .hs-submit,
form.hs-form .hs_submit,
form.hs-form .hs-submit,
.hbspt-form .actions,
form.hs-form .actions {
  display: flex;
  justify-content: center;
}

/* Header nav CTA should not inherit global top margin */
.wrapper-header .wp-block-button,
.wrapper-header .wp-block-button__link,
.wrapper-header .wp-block-buttons {
  margin-top: 0 !important;
}

/* Header CTA: match sticky downsizing transitions (nav link rule must not override transition). */
.button-header .wp-block-button__link,
.button-header a.wp-block-button__link {
  min-height: 64px;
  -webkit-transition: font-size 0.35s ease, min-height 0.35s ease, padding 0.35s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  transition: font-size 0.35s ease, min-height 0.35s ease, padding 0.35s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.wrapper-header .button-header .wp-block-button__link:hover,
.wrapper-header .button-header a.wp-block-button__link:hover {
  background-color: var(--wp--preset--color--rpe-green) !important;
  color: var(--wp--preset--color--white) !important;
  border-color: transparent !important;
}

.rpe-form-card,
.rpe-form-card.rpe-form-placeholder {
  border: 1px solid rgba(16, 38, 74, 0.12);
  border-radius: 0.875rem;
  background: #fff;
  padding: clamp(1rem, 2vw, 1.35rem);
}

.rpe-form-card--registration,
#rpe-registration-interest-form {
  max-width: 920px;
  margin-inline: auto;
}

.rpe-form-card--topic,
#rpe-topic-interest-form {
  max-width: 960px;
  margin-inline: auto;
}

.rpe-form-card--speaker,
#rpe-speaker-interest-form {
  max-width: 920px;
  margin-inline: auto;
}

/* HubSpot embeds (scoped — do not hide consent, errors, or required fields) */

/* New forms editor (hs-form-html / hsfc-*): tighten via official --hsf-* variables */
.rpe-hubspot-form,
.rpe-hubspot-form [data-hsfc-id="Renderer"],
.rpe-hubspot-form .hs-form-html {
  --hsf-global__font-family: var(--wp--preset--font-family--montserrat), Montserrat, sans-serif;
  --hsf-global__font-size: 1rem;
  --hsf-global__color: var(--wp--preset--color--midnight);
  --hsf-global-error__color: var(--wp--preset--color--hot-iron);
  --hsf-erroralert__color: var(--wp--preset--color--hot-iron);
  --hsf-background__padding: 0;
  --hsf-background__border-width: 0;
  --hsf-background__border-radius: 0;
  --hsf-background__background-color: transparent;
  --rpe-hs-field-height: 60px;
  --hsf-row__vertical-spacing: 1.25rem;
  --hsf-row__horizontal-spacing: 0.65rem;
  --hsf-module__vertical-spacing: 0.35rem;
  --hsf-field-label__font-size: 0.875rem;
  --hsf-field-label__color: var(--wp--preset--color--midnight);
  --rpe-hs-field-font-size: var(--hsf-field-label__font-size, 0.875rem);
  --rpe-hs-placeholder-font-size: var(--rpe-hs-field-font-size);
  --rpe-hs-placeholder-color: color-mix(in srgb, var(--wp--preset--color--midnight) 48%, transparent);
  --hsf-field-input__font-size: var(--rpe-hs-field-font-size);
  --hsf-field-textarea__font-size: var(--rpe-hs-field-font-size);
  --rpe-hs-field-bg: color-mix(in srgb, var(--wp--preset--color--white) 94%, var(--wp--preset--color--maintenance-blue));
  --rpe-hs-field-bg-hover: color-mix(in srgb, var(--wp--preset--color--white) 86%, var(--wp--preset--color--maintenance-blue));
  --rpe-hs-field-text-color: var(--wp--preset--color--midnight);
  --hsf-field-input__color: var(--rpe-hs-field-text-color);
  --hsf-field-textarea__color: var(--rpe-hs-field-text-color);
  --rpe-hs-field-focus-color: var(--wp--preset--color--rpe-green);
  --rpe-hs-field-focus-ring: 0 0 0 3px color-mix(in srgb, var(--rpe-hs-field-focus-color) 38%, transparent);
  --hsf-field-input__background-color: var(--rpe-hs-field-bg);
  --hsf-field-textarea__background-color: var(--rpe-hs-field-bg);
  --hsf-field-input__padding: 0.5rem 0.75rem;
  --hsf-field-input__border-radius: 0.75rem;
  --hsf-field-input__border-color: color-mix(in srgb, var(--wp--preset--color--midnight) 20%, transparent);
  --hsf-field-textarea__padding: 0.5rem 0.75rem;
  --hsf-field-textarea__border-radius: 0.75rem;
  --hsf-field-checkbox__padding: 0.125rem;
  --hsf-field-checkbox__border-width: 2px;
  --hsf-field-checkbox__border-color: var(--wp--preset--color--midnight);
  --hsf-field-checkbox__background-color: var(--wp--preset--color--white);
  --hsf-richtext__font-size: 0.8125rem;
  --hsf-richtext__color: color-mix(in srgb, var(--wp--preset--color--midnight) 78%, transparent);
  --rpe-hs-legal-font-size: 0.8125rem;
  --rpe-hs-legal-line-height: 1.45;
  --rpe-hs-legal-color: color-mix(in srgb, var(--wp--preset--color--midnight) 78%, transparent);
  --hsf-erroralert__font-size: var(--rpe-hs-legal-font-size);
  --hsf-erroralert__line-height: var(--rpe-hs-legal-line-height);
  --hsf-button__font-family: var(--wp--preset--font-family--montserrat), Montserrat, sans-serif;
  --hsf-button__font-size: 1rem;
  --hsf-button__color: var(--wp--preset--color--midnight);
  --hsf-button__background-color: var(--wp--preset--color--safety-yellow);
  --hsf-button__border-radius: 14px;
  --hsf-button__padding: 0.65rem 1.75rem;
  --hsf-button__width: 100%;
}

/* HubSpot on dark backgrounds (navy sections, Get Event Alerts cover / #get-alerts) */
.has-midnight-background-color .rpe-hubspot-form,
.has-midnight-background-color .rpe-hubspot-form [data-hsfc-id="Renderer"],
.has-midnight-background-color .rpe-hubspot-form .hs-form-html,
#get-alerts .rpe-hubspot-form,
#get-alerts .rpe-hubspot-form [data-hsfc-id="Renderer"],
#get-alerts .rpe-hubspot-form .hs-form-html,
.rpe-alerts-cta .rpe-hubspot-form,
.rpe-alerts-cta .rpe-hubspot-form [data-hsfc-id="Renderer"],
.rpe-alerts-cta .rpe-hubspot-form .hs-form-html {
  --rpe-hs-field-bg: color-mix(in srgb, var(--wp--preset--color--white) 96%, var(--wp--preset--color--maintenance-blue));
  --rpe-hs-field-bg-hover: var(--wp--preset--color--white);
  --rpe-hs-field-text-color: var(--wp--preset--color--midnight);
  --hsf-field-input__color: var(--rpe-hs-field-text-color);
  --hsf-field-textarea__color: var(--rpe-hs-field-text-color);
  --hsf-field-input__background-color: var(--rpe-hs-field-bg);
  --hsf-field-textarea__background-color: var(--rpe-hs-field-bg);
  --hsf-field-input__border-color: color-mix(in srgb, var(--wp--preset--color--white) 32%, transparent);
  --hsf-global__color: var(--wp--preset--color--white);
  --hsf-field-label__color: var(--wp--preset--color--white);
  --hsf-richtext__color: color-mix(in srgb, var(--wp--preset--color--white) 88%, transparent);
  --hsf-richtext__font-size: 0.8125rem;
  --hsf-field-checkbox__border-color: color-mix(in srgb, var(--wp--preset--color--white) 75%, transparent);
  --hsf-field-checkbox__background-color: var(--wp--preset--color--white);
  --rpe-hs-legal-font-size: 0.8125rem;
  --rpe-hs-legal-line-height: 1.45;
  --rpe-hs-legal-color: color-mix(in srgb, var(--wp--preset--color--white) 92%, transparent);
}

.has-midnight-background-color .rpe-hubspot-form .hsfc-FieldLabel,
#get-alerts .rpe-hubspot-form .hsfc-FieldLabel,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-FieldLabel,
.has-midnight-background-color .rpe-hubspot-form .hs-form-field>label,
#get-alerts .rpe-hubspot-form .hs-form-field>label,
.rpe-alerts-cta .rpe-hubspot-form .hs-form-field>label,
.has-midnight-background-color .rpe-hubspot-form .hs-form .field>label,
#get-alerts .rpe-hubspot-form .hs-form .field>label,
.rpe-alerts-cta .rpe-hubspot-form .hs-form .field>label {
  color: var(--wp--preset--color--white) !important;
}

.has-midnight-background-color .rpe-hubspot-form label.hsfc-FieldLabel:hover,
#get-alerts .rpe-hubspot-form label.hsfc-FieldLabel:hover,
.rpe-alerts-cta .rpe-hubspot-form label.hsfc-FieldLabel:hover,
.has-midnight-background-color .rpe-hubspot-form label.hsfc-FieldLabel:hover>span,
#get-alerts .rpe-hubspot-form label.hsfc-FieldLabel:hover>span,
.rpe-alerts-cta .rpe-hubspot-form label.hsfc-FieldLabel:hover>span,
.has-midnight-background-color .rpe-hubspot-form .hsfc-FieldLabel:hover,
#get-alerts .rpe-hubspot-form .hsfc-FieldLabel:hover,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-FieldLabel:hover,
.has-midnight-background-color .rpe-hubspot-form .hsfc-FieldLabel:hover>span,
#get-alerts .rpe-hubspot-form .hsfc-FieldLabel:hover>span,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-FieldLabel:hover>span,
.has-midnight-background-color .rpe-hubspot-form .hs-form-field>label:hover,
#get-alerts .rpe-hubspot-form .hs-form-field>label:hover,
.rpe-alerts-cta .rpe-hubspot-form .hs-form-field>label:hover,
.has-midnight-background-color .rpe-hubspot-form .hs-form .field>label:hover,
#get-alerts .rpe-hubspot-form .hs-form .field>label:hover,
.rpe-alerts-cta .rpe-hubspot-form .hs-form .field>label:hover {
  color: var(--wp--preset--color--safety-yellow) !important;
  cursor: pointer;
}

/* Cohesive GDPR disclaimer, checkbox consent, and unsubscribe copy */
.has-midnight-background-color .rpe-hubspot-form .hsfc-RichText,
#get-alerts .rpe-hubspot-form .hsfc-RichText,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-RichText,
.has-midnight-background-color .rpe-hubspot-form .hsfc-RichText p,
#get-alerts .rpe-hubspot-form .hsfc-RichText p,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-RichText p,
.has-midnight-background-color .rpe-hubspot-form .hsfc-RichText span,
#get-alerts .rpe-hubspot-form .hsfc-RichText span,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-RichText span,
.has-midnight-background-color .rpe-hubspot-form .legal-consent-container,
#get-alerts .rpe-hubspot-form .legal-consent-container,
.rpe-alerts-cta .rpe-hubspot-form .legal-consent-container,
.has-midnight-background-color .rpe-hubspot-form .legal-consent-container p,
#get-alerts .rpe-hubspot-form .legal-consent-container p,
.rpe-alerts-cta .rpe-hubspot-form .legal-consent-container p,
.has-midnight-background-color .rpe-hubspot-form .legal-consent-container span,
#get-alerts .rpe-hubspot-form .legal-consent-container span,
.rpe-alerts-cta .rpe-hubspot-form .legal-consent-container span,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText,
#get-alerts .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText p,
#get-alerts .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText p,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText p,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText span,
#get-alerts .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText span,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText span,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacy"] span,
#get-alerts .rpe-hubspot-form [id*="DataPrivacy"] span,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacy"] span,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText,
#get-alerts .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText p,
#get-alerts .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText p,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText p,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText span,
#get-alerts .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText span,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText span,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacyField"] span,
#get-alerts .rpe-hubspot-form [id*="DataPrivacyField"] span,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacyField"] span,
.has-midnight-background-color .rpe-hubspot-form .hs-form-booleancheckbox,
#get-alerts .rpe-hubspot-form .hs-form-booleancheckbox,
.rpe-alerts-cta .rpe-hubspot-form .hs-form-booleancheckbox,
.has-midnight-background-color .rpe-hubspot-form .hs-form-booleancheckbox label,
#get-alerts .rpe-hubspot-form .hs-form-booleancheckbox label,
.rpe-alerts-cta .rpe-hubspot-form .hs-form-booleancheckbox label,
.has-midnight-background-color .rpe-hubspot-form .hsfc-CheckboxField label,
#get-alerts .rpe-hubspot-form .hsfc-CheckboxField label,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-CheckboxField label,
.has-midnight-background-color .rpe-hubspot-form .hsfc-BooleanCheckboxField label,
#get-alerts .rpe-hubspot-form .hsfc-BooleanCheckboxField label,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-BooleanCheckboxField label,
.has-midnight-background-color .rpe-hubspot-form .hsfc-CheckboxFieldGroup label,
#get-alerts .rpe-hubspot-form .hsfc-CheckboxFieldGroup label,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-CheckboxFieldGroup label,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacy"] label,
#get-alerts .rpe-hubspot-form [id*="DataPrivacy"] label,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacy"] label,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacyField"] label,
#get-alerts .rpe-hubspot-form [id*="DataPrivacyField"] label,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacyField"] label,
.has-midnight-background-color .rpe-hubspot-form .hsfc-CheckboxField label span,
#get-alerts .rpe-hubspot-form .hsfc-CheckboxField label span,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-CheckboxField label span,
.has-midnight-background-color .rpe-hubspot-form .hsfc-CheckboxField label>span,
#get-alerts .rpe-hubspot-form .hsfc-CheckboxField label>span,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-CheckboxField label>span,
.has-midnight-background-color .rpe-hubspot-form .hsfc-BooleanCheckboxField label span,
#get-alerts .rpe-hubspot-form .hsfc-BooleanCheckboxField label span,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-BooleanCheckboxField label span,
.has-midnight-background-color .rpe-hubspot-form .hsfc-BooleanCheckboxField label>span,
#get-alerts .rpe-hubspot-form .hsfc-BooleanCheckboxField label>span,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-BooleanCheckboxField label>span,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacy"] label span,
#get-alerts .rpe-hubspot-form [id*="DataPrivacy"] label span,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacy"] label span,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacyField"] label span,
#get-alerts .rpe-hubspot-form [id*="DataPrivacyField"] label span,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacyField"] label span {
  font-size: var(--rpe-hs-legal-font-size) !important;
  line-height: var(--rpe-hs-legal-line-height) !important;
  font-weight: 400 !important;
  color: var(--rpe-hs-legal-color) !important;
}

/* HubSpot injects inline #444 on disclaimer/GDPR copy */
.has-midnight-background-color .rpe-hubspot-form .hsfc-RichText span[style],
#get-alerts .rpe-hubspot-form .hsfc-RichText span[style],
.rpe-alerts-cta .rpe-hubspot-form .hsfc-RichText span[style],
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacy"] span[style],
#get-alerts .rpe-hubspot-form [id*="DataPrivacy"] span[style],
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacy"] span[style],
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacyField"] span[style],
#get-alerts .rpe-hubspot-form [id*="DataPrivacyField"] span[style],
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacyField"] span[style],
.has-midnight-background-color .rpe-hubspot-form .hs-main-font-element,
#get-alerts .rpe-hubspot-form .hs-main-font-element,
.rpe-alerts-cta .rpe-hubspot-form .hs-main-font-element {
  color: var(--rpe-hs-legal-color) !important;
}

.has-midnight-background-color .rpe-hubspot-form .hsfc-ErrorAlert,
#get-alerts .rpe-hubspot-form .hsfc-ErrorAlert,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-ErrorAlert,
.has-midnight-background-color .rpe-hubspot-form .hsfc-FieldError,
#get-alerts .rpe-hubspot-form .hsfc-FieldError,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-FieldError,
.has-midnight-background-color .rpe-hubspot-form [data-hsfc-id="ErrorAlert"],
#get-alerts .rpe-hubspot-form [data-hsfc-id="ErrorAlert"],
.rpe-alerts-cta .rpe-hubspot-form [data-hsfc-id="ErrorAlert"],
.has-midnight-background-color .rpe-hubspot-form .hs-error-msgs,
#get-alerts .rpe-hubspot-form .hs-error-msgs,
.rpe-alerts-cta .rpe-hubspot-form .hs-error-msgs,
.has-midnight-background-color .rpe-hubspot-form .hs-error-msgs label,
#get-alerts .rpe-hubspot-form .hs-error-msgs label,
.rpe-alerts-cta .rpe-hubspot-form .hs-error-msgs label {
  font-size: var(--rpe-hs-legal-font-size) !important;
  line-height: var(--rpe-hs-legal-line-height) !important;
}

.has-midnight-background-color .rpe-hubspot-form .hsfc-RichText,
#get-alerts .rpe-hubspot-form .hsfc-RichText,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-RichText,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText,
#get-alerts .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText,
#get-alerts .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText,
.has-midnight-background-color .rpe-hubspot-form .legal-consent-container,
#get-alerts .rpe-hubspot-form .legal-consent-container,
.rpe-alerts-cta .rpe-hubspot-form .legal-consent-container {
  margin: 0 !important;
  padding: 0 !important;
}

.has-midnight-background-color .rpe-hubspot-form .hsfc-RichText p,
#get-alerts .rpe-hubspot-form .hsfc-RichText p,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-RichText p,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText p,
#get-alerts .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText p,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText p,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText p,
#get-alerts .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText p,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText p,
.has-midnight-background-color .rpe-hubspot-form .legal-consent-container p,
#get-alerts .rpe-hubspot-form .legal-consent-container p,
.rpe-alerts-cta .rpe-hubspot-form .legal-consent-container p {
  margin: 0 0 0.35rem !important;
  padding: 0 !important;
}

.has-midnight-background-color .rpe-hubspot-form .hsfc-RichText p:last-child,
#get-alerts .rpe-hubspot-form .hsfc-RichText p:last-child,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-RichText p:last-child,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText p:last-child,
#get-alerts .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText p:last-child,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText p:last-child,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText p:last-child,
#get-alerts .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText p:last-child,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-RichText p:last-child {
  margin-bottom: 0 !important;
}

.has-midnight-background-color .rpe-hubspot-form .hsfc-CheckboxField,
#get-alerts .rpe-hubspot-form .hsfc-CheckboxField,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-CheckboxField,
.has-midnight-background-color .rpe-hubspot-form .hsfc-BooleanCheckboxField,
#get-alerts .rpe-hubspot-form .hsfc-BooleanCheckboxField,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-BooleanCheckboxField {
  margin: 10px 0 !important;
}

.has-midnight-background-color .rpe-hubspot-form .hsfc-DataPrivacyField>.hsfc-Row,
#get-alerts .rpe-hubspot-form .hsfc-DataPrivacyField>.hsfc-Row,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-DataPrivacyField>.hsfc-Row,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-Row,
#get-alerts .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-Row,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-Row,
.has-midnight-background-color .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-Row,
#get-alerts .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-Row,
.rpe-alerts-cta .rpe-hubspot-form [id*="DataPrivacy"] .hsfc-Row {
  margin-bottom: 0 !important;
}

.has-midnight-background-color .rpe-hubspot-form .hsfc-CheckboxField label,
#get-alerts .rpe-hubspot-form .hsfc-CheckboxField label,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-CheckboxField label,
.has-midnight-background-color .rpe-hubspot-form .hsfc-BooleanCheckboxField label,
#get-alerts .rpe-hubspot-form .hsfc-BooleanCheckboxField label,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-BooleanCheckboxField label {
  line-height: var(--rpe-hs-legal-line-height) !important;
  margin: 0 !important;
}

.has-midnight-background-color .rpe-hubspot-form .hsfc-CheckboxField label>span,
#get-alerts .rpe-hubspot-form .hsfc-CheckboxField label>span,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-CheckboxField label>span,
.has-midnight-background-color .rpe-hubspot-form .hsfc-BooleanCheckboxField label>span,
#get-alerts .rpe-hubspot-form .hsfc-BooleanCheckboxField label>span,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-BooleanCheckboxField label>span {
  line-height: var(--rpe-hs-legal-line-height) !important;
}

.has-midnight-background-color .rpe-hubspot-form .hsfc-RichText a,
#get-alerts .rpe-hubspot-form .hsfc-RichText a,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-RichText a,
.has-midnight-background-color .rpe-hubspot-form .legal-consent-container a,
#get-alerts .rpe-hubspot-form .legal-consent-container a,
.rpe-alerts-cta .rpe-hubspot-form .legal-consent-container a,
.has-midnight-background-color .rpe-hubspot-form .hsfc-CheckboxField label a,
#get-alerts .rpe-hubspot-form .hsfc-CheckboxField label a,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-CheckboxField label a,
.has-midnight-background-color .rpe-hubspot-form .hsfc-BooleanCheckboxField label a,
#get-alerts .rpe-hubspot-form .hsfc-BooleanCheckboxField label a,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-BooleanCheckboxField label a {
  color: var(--wp--preset--color--safety-yellow) !important;
  text-decoration: underline;
  text-underline-offset: 0.12em;
}

.has-midnight-background-color .rpe-hubspot-form .hsfc-RichText a:hover,
#get-alerts .rpe-hubspot-form .hsfc-RichText a:hover,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-RichText a:hover,
.has-midnight-background-color .rpe-hubspot-form .legal-consent-container a:hover,
#get-alerts .rpe-hubspot-form .legal-consent-container a:hover,
.rpe-alerts-cta .rpe-hubspot-form .legal-consent-container a:hover,
.has-midnight-background-color .rpe-hubspot-form .hsfc-CheckboxField label a:hover,
#get-alerts .rpe-hubspot-form .hsfc-CheckboxField label a:hover,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-CheckboxField label a:hover,
.has-midnight-background-color .rpe-hubspot-form .hsfc-BooleanCheckboxField label a:hover,
#get-alerts .rpe-hubspot-form .hsfc-BooleanCheckboxField label a:hover,
.rpe-alerts-cta .rpe-hubspot-form .hsfc-BooleanCheckboxField label a:hover {
  color: var(--wp--preset--color--white) !important;
}

.rpe-hubspot-form {
  /* Prevent scroll jumps when HubSpot injects/expands form markup above the viewport */
  overflow-anchor: none;
  min-height: 6rem;
}

.rpe-hubspot-form:has(.hs-form),
.rpe-hubspot-form:has(form.hs-form),
.rpe-hubspot-form:has([data-hsfc-id="Renderer"]) {
  min-height: 0;
}

/* New renderer: collapse default 40px step padding and row gaps */
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-Step__Content,
.rpe-hubspot-form .hsfc-Step__Content {
  box-sizing: border-box;
  width: 100%;
  padding: 0 !important;
}

.rpe-hubspot-form .hsfc-Step,
.rpe-hubspot-form .hsfc-Form {
  margin: 0;
  padding: 0;
}

.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-Row,
.rpe-hubspot-form .hsfc-Row {
  margin-top: 0;
  margin-bottom: var(--hsf-row__vertical-spacing, 1.25rem);
  gap: var(--hsf-row__horizontal-spacing, 0.65rem);
}

.rpe-hubspot-form label.hsfc-FieldLabel,
.rpe-hubspot-form .hsfc-FieldLabel,
.rpe-hubspot-form .hs-form-field>label,
.rpe-hubspot-form .hs-form .field>label {
  margin-bottom: 0.35rem;
  font-weight: 700;
  line-height: 1.25;
  cursor: pointer;
  transition: color 0.2s ease;
}

.rpe-hubspot-form label.hsfc-FieldLabel:hover,
.rpe-hubspot-form label.hsfc-FieldLabel:hover>span,
.rpe-hubspot-form .hsfc-FieldLabel:hover,
.rpe-hubspot-form .hsfc-FieldLabel:hover>span,
.rpe-hubspot-form .hs-form-field>label:hover,
.rpe-hubspot-form .hs-form .field>label:hover {
  color: var(--wp--preset--color--rpe-green);
  cursor: pointer;
}

.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-TextInput,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-SelectInput,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-PhoneInput input,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-EmailInput input,
.rpe-hubspot-form .hsfc-TextInput,
.rpe-hubspot-form .hsfc-SelectInput,
.rpe-hubspot-form .hsfc-PhoneInput input,
.rpe-hubspot-form .hsfc-EmailInput input {
  box-sizing: border-box;
  min-height: var(--rpe-hs-field-height, 60px) !important;
  height: var(--rpe-hs-field-height, 60px) !important;
  font-family: inherit;
  font-size: var(--rpe-hs-field-font-size, 0.875rem) !important;
  font-weight: 400;
  line-height: 1.25;
  color: var(--rpe-hs-field-text-color, var(--wp--preset--color--midnight)) !important;
  -webkit-text-fill-color: var(--rpe-hs-field-text-color, var(--wp--preset--color--midnight));
  background-color: var(--rpe-hs-field-bg) !important;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-TextInput:not(:disabled):hover,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-SelectInput:not(:disabled):hover,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-PhoneInput input:not(:disabled):hover,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-EmailInput input:not(:disabled):hover,
.rpe-hubspot-form .hsfc-TextInput:not(:disabled):hover,
.rpe-hubspot-form .hsfc-SelectInput:not(:disabled):hover,
.rpe-hubspot-form .hsfc-PhoneInput input:not(:disabled):hover,
.rpe-hubspot-form .hsfc-EmailInput input:not(:disabled):hover {
  background-color: var(--rpe-hs-field-bg-hover) !important;
}

.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-TextInput:not(:disabled):focus,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-SelectInput:not(:disabled):focus,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-PhoneInput input:not(:disabled):focus,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-EmailInput input:not(:disabled):focus,
.rpe-hubspot-form .hsfc-TextInput:not(:disabled):focus,
.rpe-hubspot-form .hsfc-SelectInput:not(:disabled):focus,
.rpe-hubspot-form .hsfc-PhoneInput input:not(:disabled):focus,
.rpe-hubspot-form .hsfc-EmailInput input:not(:disabled):focus {
  background-color: var(--rpe-hs-field-bg-hover) !important;
  border-color: var(--rpe-hs-field-focus-color) !important;
  outline: 2px solid var(--rpe-hs-field-focus-color) !important;
  outline-offset: 2px;
  box-shadow: var(--rpe-hs-field-focus-ring) !important;
}

/* Placeholders: same size/weight as entered field text */
.rpe-hubspot-form .hsfc-TextInput::placeholder,
.rpe-hubspot-form .hsfc-TextareaInput::placeholder,
.rpe-hubspot-form .hsfc-PhoneInput input::placeholder,
.rpe-hubspot-form .hsfc-EmailInput input::placeholder,
.rpe-hubspot-form .hs-input::placeholder,
.rpe-hubspot-form textarea.hs-input::placeholder {
  font-family: inherit;
  font-size: var(--rpe-hs-field-font-size, 0.875rem) !important;
  font-weight: 400 !important;
  line-height: 1.25;
  color: var(--rpe-hs-placeholder-color) !important;
  opacity: 1;
}

.rpe-hubspot-form .hsfc-TextInput::-webkit-input-placeholder,
.rpe-hubspot-form .hsfc-TextareaInput::-webkit-input-placeholder,
.rpe-hubspot-form .hsfc-PhoneInput input::-webkit-input-placeholder,
.rpe-hubspot-form .hsfc-EmailInput input::-webkit-input-placeholder,
.rpe-hubspot-form .hs-input::-webkit-input-placeholder,
.rpe-hubspot-form textarea.hs-input::-webkit-input-placeholder {
  font-family: inherit;
  font-size: var(--rpe-hs-field-font-size, 0.875rem);
  font-weight: 400;
  line-height: 1.25;
  color: var(--rpe-hs-placeholder-color);
  opacity: 1;
}

.has-midnight-background-color .rpe-hubspot-form,
#get-alerts .rpe-hubspot-form,
.rpe-alerts-cta .rpe-hubspot-form {
  --rpe-hs-placeholder-color: color-mix(in srgb, var(--wp--preset--color--midnight) 55%, transparent);
}

.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-TextareaInput,
.rpe-hubspot-form .hsfc-TextareaInput,
.rpe-hubspot-form textarea.hs-input {
  box-sizing: border-box;
  min-height: 5.5rem !important;
  height: auto !important;
  max-height: none !important;
  overflow: auto !important;
  resize: vertical !important;
  font-family: inherit;
  font-size: var(--rpe-hs-field-font-size, 0.875rem) !important;
  font-weight: 400;
  line-height: 1.25;
  color: var(--rpe-hs-field-text-color, var(--wp--preset--color--midnight)) !important;
  -webkit-text-fill-color: var(--rpe-hs-field-text-color, var(--wp--preset--color--midnight));
  background-color: var(--rpe-hs-field-bg) !important;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-TextareaInput:not(:disabled):hover,
.rpe-hubspot-form .hsfc-TextareaInput:not(:disabled):hover,
.rpe-hubspot-form textarea.hs-input:not(:disabled):hover {
  background-color: var(--rpe-hs-field-bg-hover) !important;
}

.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-TextareaInput:not(:disabled):focus,
.rpe-hubspot-form .hsfc-TextareaInput:not(:disabled):focus,
.rpe-hubspot-form textarea.hs-input:not(:disabled):focus {
  background-color: var(--rpe-hs-field-bg-hover) !important;
  border-color: var(--rpe-hs-field-focus-color) !important;
  outline: 2px solid var(--rpe-hs-field-focus-color) !important;
  outline-offset: 2px;
  box-shadow: var(--rpe-hs-field-focus-ring) !important;
}

.rpe-hubspot-form .hsfc-RichText,
.rpe-hubspot-form .legal-consent-container,
.rpe-hubspot-form .legal-consent-container p,
.rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText {
  margin: 0.15rem 0 !important;
  padding: 0 !important;
  font-size: var(--rpe-hs-legal-font-size, 0.8125rem) !important;
  line-height: var(--rpe-hs-legal-line-height, 1.45) !important;
  text-wrap: balance;
}

.rpe-hubspot-form .hsfc-RichText p {
  margin: 0 0 0.2rem;
  padding: 0;
  line-height: 1.3;
  text-wrap: balance;
}

.rpe-hubspot-form .hsfc-RichText p:last-child {
  margin-bottom: 0;
}

.rpe-hubspot-form .hsfc-RichText span,
.rpe-hubspot-form .hsfc-RichText a {
  font-size: inherit !important;
  line-height: inherit !important;
}

/* Topic / multi-select checklists — inline, wrapped */
.rpe-hubspot-form .hsfc-CheckboxFieldGroup {
  margin: 0.15rem 0;
}

/* Group field label (e.g. Topics to cover) — space before option checkboxes */
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-CheckboxFieldGroup>label.hsfc-FieldLabel,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-CheckboxFieldGroup>.hsfc-FieldLabel,
.rpe-hubspot-form .hsfc-CheckboxFieldGroup>label.hsfc-FieldLabel,
.rpe-hubspot-form .hsfc-CheckboxFieldGroup>.hsfc-FieldLabel {
  display: block;
  margin-bottom: 1rem !important;
}

.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.5rem 1.25rem;
  margin: 0;
  padding: 0;
}

/* One wrapper per option; conditional fields (e.g. Other) stack below the label */
.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options>* {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  align-self: flex-start;
  flex: 0 1 auto;
  margin: 0;
  padding: 0;
}

/* Hidden conditional inputs must not reserve height (fixes Other vs row alignment) */
.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options>*>[hidden],
.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options>*> :not(label)[aria-hidden="true"],
.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options>*> :not(label):empty {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  height: 0 !important;
  overflow: hidden;
}

.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options .hsfc-TextInput[hidden] {
  display: none !important;
  min-height: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

/* Collapsed conditional wrapper (e.g. Other specify before click) */
.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options>*> :not(label):has(> .hsfc-TextInput[hidden]):not(:has(> .hsfc-TextInput:not([hidden]))) {
  display: none !important;
  margin: 0 !important;
  min-height: 0 !important;
  height: 0 !important;
  overflow: hidden;
}

/* Visible conditional follow-up (e.g. Other specify) — full width under its checkbox */
.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options>*> :not(label):not([hidden]):not([aria-hidden="true"]) {
  box-sizing: border-box;
  width: 100%;
  min-width: min(100%, 18rem);
  margin-top: 0.35rem;
}

.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options>*:has(> :not(label):not([hidden]):not([aria-hidden="true"])) {
  flex: 1 1 100%;
  width: 100%;
  max-width: 100%;
}

/* Topic / multi-select options only (not the group field label above) */
.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options label,
.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options label.hsfc-FieldLabel,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-CheckboxFieldGroup__Options label {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem;
  margin: 0;
  font-size: 0.875rem;
  font-weight: 400 !important;
  line-height: 1.25;
  white-space: nowrap;
  cursor: pointer;
}

.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options input[type="checkbox"],
.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options .hsfc-CheckboxInput {
  flex-shrink: 0;
  margin: 0;
  align-self: center;
}

.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options label.hsfc-FieldLabel:hover,
.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options label:hover {
  color: var(--wp--preset--color--rpe-green);
}

.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options label.hsfc-FieldLabel:hover>span,
.rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options label:hover>span {
  color: inherit;
}

.rpe-hubspot-form .hsfc-CheckboxField,
.rpe-hubspot-form .hsfc-BooleanCheckboxField {
  margin: 0.15rem 0;
}

.rpe-hubspot-form .hsfc-CheckboxField label,
.rpe-hubspot-form .hsfc-BooleanCheckboxField label {
  display: grid;
  grid-template-columns: 1.125rem minmax(0, 1fr);
  column-gap: 0.65rem;
  align-items: start;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.3;
  margin: 0.5rem 0;
  text-wrap: balance;
  color: color-mix(in srgb, var(--wp--preset--color--midnight) 82%, transparent);
  cursor: pointer;
}

.rpe-hubspot-form .hsfc-CheckboxField label>span,
.rpe-hubspot-form .hsfc-BooleanCheckboxField label>span {
  grid-column: 2;
  display: block;
  min-width: 0;
  max-width: 100%;
  text-wrap: balance;
}

.rpe-hubspot-form .hsfc-CheckboxField label>span+span,
.rpe-hubspot-form .hsfc-BooleanCheckboxField label>span+span {
  margin-top: 0.25rem;
}

/* GDPR / consent checkbox — HubSpot draws the box on input::after; do not zero out size */
.rpe-hubspot-form input.hsfc-CheckboxInput[type="checkbox"],
.rpe-hubspot-form [id*="DataPrivacy"] input[type="checkbox"],
.rpe-hubspot-form [id*="DataPrivacyField"] input[type="checkbox"] {
  grid-column: 1;
  grid-row: 1 / -1;
  align-self: start;
  flex: 0 0 1.125rem;
  width: 1.125rem !important;
  height: 1.125rem !important;
  min-width: 1.125rem;
  min-height: 1.125rem;
  max-width: 1.125rem;
  max-height: 1.125rem;
  margin: 0.15rem 0 0;
  opacity: 1 !important;
  visibility: visible !important;
  padding: 0 !important;
  box-sizing: border-box;
  border: 0;
  background: transparent;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  position: relative;
  overflow: visible;
}

.rpe-hubspot-form input.hsfc-CheckboxInput[type="checkbox"]::after {
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  width: 1.125rem !important;
  height: 1.125rem !important;
  min-width: 1.125rem;
  min-height: 1.125rem;
  box-sizing: border-box;
  border: 2px solid var(--wp--preset--color--midnight);
  border-radius: 0.25rem;
  background-color: var(--wp--preset--color--white);
  pointer-events: none;
}

.rpe-hubspot-form input.hsfc-CheckboxInput[type="checkbox"]:checked {
  accent-color: var(--wp--preset--color--rpe-green);
}

.rpe-hubspot-form input.hsfc-CheckboxInput[type="checkbox"]:checked::after {
  background-color: var(--wp--preset--color--rpe-green);
  border-color: var(--wp--preset--color--rpe-green);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' d='M1 5l3 3 7-7'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0.65rem 0.55rem;
}

.rpe-hubspot-form input.hsfc-CheckboxInput[type="checkbox"]:focus-visible::after {
  outline: 2px solid var(--wp--preset--color--rpe-green);
  outline-offset: 2px;
}

.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-NavigationRow,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-ButtonRow,
.rpe-hubspot-form .hsfc-NavigationRow,
.rpe-hubspot-form .hsfc-ButtonRow {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 0 !important;
  margin-bottom: 0;
  padding: 0;
  width: 100%;
}

.rpe-hubspot-form .hsfc-NavigationRow__Buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin: 0;
  padding: 0;
}

.rpe-hubspot-form .hsfc-Button,
.rpe-hubspot-form button.hsfc-Button,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-Button:not([disabled]),
.rpe-hubspot-form [data-hsfc-id="Renderer"] button.hsfc-Button:not([disabled]) {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100%;
  margin-inline: auto;
  min-height: 60px;
  font-weight: 700;
  cursor: pointer;
  transform: none !important;
  translate: none !important;
  transition: background-color 0.2s ease, color 0.2s ease !important;
}

.rpe-hubspot-form .hsfc-Button:hover,
.rpe-hubspot-form button.hsfc-Button:hover,
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-Button:not([disabled]):hover,
.rpe-hubspot-form [data-hsfc-id="Renderer"] button.hsfc-Button:not([disabled]):hover {
  background-color: var(--wp--preset--color--rpe-green) !important;
  color: var(--wp--preset--color--white) !important;
  transform: none !important;
  translate: none !important;
}

.rpe-hubspot-form .hsfc-ErrorAlert,
.rpe-hubspot-form .hsfc-FieldError,
.rpe-hubspot-form [data-hsfc-id="ErrorAlert"],
.rpe-hubspot-form .hs-error-msgs,
.rpe-hubspot-form .hs-error-msgs label {
  margin-top: 0.25rem;
  font-size: var(--rpe-hs-legal-font-size, 0.8125rem) !important;
  line-height: var(--rpe-hs-legal-line-height, 1.45) !important;
  color: var(--wp--preset--color--hot-iron) !important;
}

/* Data privacy block: remove HubSpot row gap between disclaimer + consent rows */
.rpe-hubspot-form [data-hsfc-id="Renderer"] .hsfc-DataPrivacyField> :not(:last-child),
.rpe-hubspot-form .hsfc-DataPrivacyField> :not(:last-child),
.rpe-hubspot-form .hsfc-DataPrivacyField>.hsfc-Row,
.rpe-hubspot-form [id*="DataPrivacy"] .hsfc-Row,
.rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-Row,
.rpe-hubspot-form [id*="DataPrivacyField"] {
  margin-bottom: 0 !important;
  padding: 0;
}

/* Privacy rows: avoid grid squashing the checkbox into a zero-width column */
.rpe-hubspot-form [id*="DataPrivacy"] .hsfc-Row:has(.hsfc-CheckboxField, .hsfc-BooleanCheckboxField),
.rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-Row:has(.hsfc-CheckboxField, .hsfc-BooleanCheckboxField) {
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  gap: 0.25rem;
}

.rpe-hubspot-form [id*="DataPrivacy"] .hsfc-Row:has(.hsfc-CheckboxField, .hsfc-BooleanCheckboxField) .hsfc-CheckboxField,
.rpe-hubspot-form [id*="DataPrivacy"] .hsfc-Row:has(.hsfc-CheckboxField, .hsfc-BooleanCheckboxField) .hsfc-BooleanCheckboxField,
.rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-Row:has(.hsfc-CheckboxField, .hsfc-BooleanCheckboxField) .hsfc-CheckboxField,
.rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-Row:has(.hsfc-CheckboxField, .hsfc-BooleanCheckboxField) .hsfc-BooleanCheckboxField {
  width: 100%;
}

/* Follow-up disclaimer copy in the same privacy block (no checkbox in HubSpot — align with consent text) */
.rpe-hubspot-form [id*="DataPrivacy"] .hsfc-CheckboxField+.hsfc-RichText,
.rpe-hubspot-form [id*="DataPrivacy"] .hsfc-BooleanCheckboxField+.hsfc-RichText,
.rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-CheckboxField+.hsfc-RichText,
.rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-BooleanCheckboxField+.hsfc-RichText,
.rpe-hubspot-form [id*="DataPrivacy"] .hsfc-Row:has(.hsfc-CheckboxField, .hsfc-BooleanCheckboxField) .hsfc-RichText,
.rpe-hubspot-form [id*="DataPrivacyField"] .hsfc-Row:has(.hsfc-CheckboxField, .hsfc-BooleanCheckboxField) .hsfc-RichText {
  margin-block: 0 !important;
  padding-left: calc(1.125rem + 0.65rem);
  text-wrap: balance;
}

.rpe-hubspot-form [id*="DataPrivacy"] .hsfc-RichText,
.rpe-hubspot-form .hsfc-DataPrivacyField .hsfc-RichText {
  margin-block: 0 !important;
  text-wrap: balance;
}

/* If HubSpot wraps the renderer in an iframe, pull it flush with the card */
.rpe-hubspot-form iframe {
  display: block;
  width: 100% !important;
  max-width: 100%;
  margin: 0;
  border: 0;
}

/* Legacy HubSpot forms (v2 / .hs-form) */
.rpe-hubspot-form .hs-form {
  width: 100%;
}

.rpe-hubspot-form .hs-form-field {
  margin-bottom: 0.65rem;
}

.rpe-hubspot-form .hs-form label {
  display: block;
  margin-bottom: 0.35rem;
  font-weight: 700;
  color: var(--wp--preset--color--midnight);
}

.rpe-hubspot-form .hs-input,
.rpe-hubspot-form select.hs-input {
  box-sizing: border-box;
  width: 100%;
  min-height: var(--rpe-hs-field-height, 60px);
  height: var(--rpe-hs-field-height, 60px);
  padding: 0.5rem 0.75rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--midnight) 20%, transparent);
  border-radius: 0.75rem;
  background: var(--rpe-hs-field-bg, var(--wp--preset--color--white));
  color: var(--rpe-hs-field-text-color, var(--wp--preset--color--midnight)) !important;
  -webkit-text-fill-color: var(--rpe-hs-field-text-color, var(--wp--preset--color--midnight));
  font-family: inherit;
  font-size: var(--rpe-hs-field-font-size, 0.875rem);
  font-weight: 400;
  line-height: 1.25;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.rpe-hubspot-form .hs-input:not(:disabled):hover,
.rpe-hubspot-form select.hs-input:not(:disabled):hover {
  background-color: var(--rpe-hs-field-bg-hover, var(--wp--preset--color--white));
}

.rpe-hubspot-form textarea.hs-input {
  box-sizing: border-box;
  width: 100%;
  padding: 0.5rem 0.75rem;
  border: 1px solid color-mix(in srgb, var(--wp--preset--color--midnight) 20%, transparent);
  border-radius: 0.75rem;
  background: var(--rpe-hs-field-bg, var(--wp--preset--color--white));
  color: var(--rpe-hs-field-text-color, var(--wp--preset--color--midnight)) !important;
  -webkit-text-fill-color: var(--rpe-hs-field-text-color, var(--wp--preset--color--midnight));
  font-family: inherit;
  font-size: var(--rpe-hs-field-font-size, 0.875rem);
  font-weight: 400;
  line-height: 1.25;
}

.rpe-hubspot-form .hs-input:focus,
.rpe-hubspot-form textarea.hs-input:focus,
.rpe-hubspot-form select.hs-input:focus {
  background-color: var(--rpe-hs-field-bg-hover, var(--wp--preset--color--white));
  outline: 2px solid var(--rpe-hs-field-focus-color, var(--wp--preset--color--rpe-green));
  outline-offset: 2px;
  border-color: var(--rpe-hs-field-focus-color, var(--wp--preset--color--rpe-green));
  box-shadow: var(--rpe-hs-field-focus-ring, 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--rpe-green) 38%, transparent));
}

.rpe-hubspot-form .legal-consent-container,
.rpe-hubspot-form .hs-form-booleancheckbox,
.rpe-hubspot-form .hs-form-booleancheckbox label {
  margin: 0.15rem 0;
  padding: 0;
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.3;
  text-wrap: balance;
  color: color-mix(in srgb, var(--wp--preset--color--midnight) 82%, transparent);
}

.rpe-hubspot-form .hs-form-booleancheckbox label {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0;
}

.rpe-hubspot-form .hs-form-booleancheckbox input[type="checkbox"] {
  width: auto;
  min-height: 0;
  margin-top: 0.15rem;
  flex-shrink: 0;
}

.rpe-hubspot-form .hs-error-msgs {
  margin: 0.35rem 0 0;
  padding: 0;
  list-style: none;
  font-weight: 600;
  color: var(--wp--preset--color--hot-iron);
}

.rpe-hubspot-form .hs-error-msgs label {
  font-weight: 600;
  color: var(--wp--preset--color--hot-iron);
}

.rpe-hubspot-form .hs-submit,
.rpe-hubspot-form .hs_submit {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 0 !important;
  margin-bottom: 0;
  padding: 0;
  width: 100%;
}

.rpe-hubspot-form .hs-button {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100%;
  margin-inline: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0.65rem 1.75rem;
  border: 0;
  border-radius: 14px;
  background: var(--wp--preset--color--safety-yellow) !important;
  color: var(--wp--preset--color--midnight) !important;
  font-family: var(--wp--preset--font-family--montserrat), sans-serif;
  font-size: var(--wp--preset--font-size--medium, 1.125rem) !important;
  font-weight: 700;
  cursor: pointer;
  transform: none !important;
  translate: none !important;
  transition: background-color 0.2s ease, color 0.2s ease !important;
}

.rpe-hubspot-form .hs-button:hover {
  background: var(--wp--preset--color--rpe-green) !important;
  color: var(--wp--preset--color--white) !important;
  transform: none !important;
  translate: none !important;
}

.rpe-hubspot-form .hs-button:focus-visible {
  outline: 2px solid var(--wp--preset--color--midnight);
  outline-offset: 2px;
}

@media (max-width: 640px) {

  /* Stack multi-column HubSpot rows; full-width inputs */
  .rpe-hubspot-form .hsfc-Row {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: var(--hsf-row__horizontal-spacing, 0.65rem);
  }

  .rpe-hubspot-form .hsfc-Row>* {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .rpe-hubspot-form .hsfc-TextInput,
  .rpe-hubspot-form .hsfc-TextareaInput,
  .rpe-hubspot-form .hsfc-SelectInput,
  .rpe-hubspot-form .hsfc-PhoneInput input,
  .rpe-hubspot-form .hsfc-EmailInput input,
  .rpe-hubspot-form .hs-input,
  .rpe-hubspot-form textarea.hs-input,
  .rpe-hubspot-form select.hs-input {
    width: 100% !important;
  }

  .rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options {
    gap: 0.4rem 0.85rem;
  }

  .rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options label,
  .rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options label.hsfc-FieldLabel {
    white-space: normal;
  }

  /* Legacy two-column fields stack on small screens */
  .rpe-hubspot-form .hs-form fieldset.form-columns-2 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }
}

@media (min-width: 640px) {
  .rpe-hubspot-form .hs-form fieldset.form-columns-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
  }

  .rpe-hubspot-form .hs-form fieldset.form-columns-2>.hs-form-field {
    margin-bottom: 0;
  }

  .rpe-hubspot-form .hs-form fieldset.form-columns-2 .hs-form-field.hs-form-field {
    width: 100%;
  }
}

.rpe-form-card .rpe-btn-submit,
.rpe-form-placeholder .rpe-btn-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 0.85rem 2rem;
  border: 0;
  border-radius: 14px;
  background: var(--wp--preset--color--safety-yellow);
  color: var(--wp--preset--color--midnight);
  font-family: var(--wp--preset--font-family--montserrat), sans-serif;
  font-size: var(--wp--preset--font-size--medium);
  font-weight: 700;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.rpe-form-card .rpe-btn-submit:hover,
.rpe-form-placeholder .rpe-btn-submit:hover {
  background: var(--wp--preset--color--midnight);
  color: var(--wp--preset--color--safety-yellow);
}

.rpe-topic-fieldset {
  border: 0;
  margin: 0;
  padding: 0;
  grid-column: 1 / -1;
}

.rpe-topic-fieldset legend {
  font-weight: 700;
  color: var(--wp--preset--color--midnight);
  margin-bottom: 0.5rem;
}

.rpe-topic-checkboxes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 1.25rem;
}

.rpe-topic-checkboxes label {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.5rem;
  font-weight: 500;
  font-size: 0.9375rem;
  line-height: 1.4;
}

.rpe-topic-checkboxes input[type="checkbox"] {
  width: auto;
  height: auto;
  min-height: 0;
  margin-top: 0.15rem;
  flex-shrink: 0;
}

.rpe-urgency-note {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-inline: auto;
  padding: clamp(1rem, 2vw, 1.25rem) clamp(1.25rem, 2.5vw, 1.5rem);
  border-left: 6px solid var(--wp--preset--color--hot-iron);
  background: rgba(240, 82, 77, 0.06);
  border-radius: 0 12px 12px 0;
}

.rpe-urgency-indicator {
  flex-shrink: 0;
  width: 0.65rem;
  height: 0.65rem;
  margin-top: 0.45rem;
  border-radius: 50%;
  background: var(--wp--preset--color--hot-iron);
  animation: rpe-urgency-pulse 1.6s ease-in-out infinite;
}

/* --------------------------------------------------------------------------
  11. Animations
   -------------------------------------------------------------------------- */

@keyframes rpe-urgency-pulse {

  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: 0.45;
    transform: scale(1.15);
  }
}

.rpe-speaker-guide-card {
  display: flex;
  align-items: flex-start;
  gap: clamp(1rem, 2vw, 1.5rem);
  max-width: 720px;
  margin-inline: auto;
  padding: clamp(1.5rem, 2.6vw, 2.5rem);
  border: 1px solid rgba(16, 38, 74, 0.12);
  border-radius: var(--rpe-card-radius, 20px);
  background: #fff;
  box-shadow: 0 8px 24px rgba(16, 38, 74, 0.08);
  color: inherit;
  text-decoration: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.rpe-speaker-guide-card:hover,
.rpe-speaker-guide-card:focus-visible {
  border-color: var(--wp--preset--color--maintenance-blue);
  box-shadow: 0 12px 28px rgba(16, 38, 74, 0.14);
  transform: translateY(-2px);
  outline: 3px solid rgba(255, 211, 90, 0.45);
  outline-offset: 2px;
}

.rpe-speaker-guide-card__body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.rpe-speaker-guide-card__cta {
  font-weight: 700;
  color: var(--wp--preset--color--maintenance-blue);
}

.rpe-speaker-guide-card:hover .rpe-speaker-guide-card__cta,
.rpe-speaker-guide-card:focus-visible .rpe-speaker-guide-card__cta {
  color: var(--wp--preset--color--midnight);
}

.rpe-card__media img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: calc(var(--rpe-card-radius, 20px) - 4px);
  aspect-ratio: 16 / 10;
  object-fit: cover;
}

.rpe-card--venue .rpe-card__media img {
  aspect-ratio: 4 / 3;
}

.rpe-card__title {
  display: block;
  font-size: 1.125rem;
  line-height: 1.3;
}

.rpe-card__text {
  display: block;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: rgba(16, 38, 74, 0.82);
}

.rpe-lockup-card {
  border-color: rgba(255, 255, 255, 0.2);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: none;
}

.rpe-lockup-card p {
  color: rgba(255, 255, 255, 0.85);
}

.rpe-footer__links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.rpe-footer__links li+li {
  margin-top: 0.65rem;
}

.rpe-footer__links a {
  font-weight: 600;
  text-decoration: none;
}

.rpe-footer__links a:hover,
.rpe-footer__links a:focus-visible {
  color: var(--wp--preset--color--safety-yellow);
}

.rpe-family-events svg,
.rpe-family-events .wp-block-image img {
  margin: 0 auto;
  max-height: 64px;
  max-width: 75% !important;
}

.rpe-family-events .wp-block-image a {
  align-items: center;
  display: flex;
  justify-content: center;
}

#footer-logos a {
  color: inherit;
  text-decoration: none;
}

#footer-logos a:hover {
  color: var(--wp--preset--color--maintenance-blue);
}

/* --------------------------------------------------------------------------
  12. Media queries (max-width: wide → narrow)
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   12. Mobile responsive refinements
   -------------------------------------------------------------------------- */

/* --- 1400px: feature row titles — stack icon above heading when columns are narrow (not single-col) --- */
@media (max-width: 1400px) and (min-width: 901px) {
  .wp-block-columns.alignfull:has(> .wp-block-column.is-vertically-aligned-stretch:is([style*="flex-basis:25%"], [style*="flex-basis: 25%"])):not(.rpe-family-events)>.wp-block-column>.wp-block-group:first-child {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  .wp-block-columns.alignfull:has(> .wp-block-column.is-vertically-aligned-stretch:is([style*="flex-basis:25%"], [style*="flex-basis: 25%"])):not(.rpe-family-events)>.wp-block-column h2.wp-block-heading.balance-text {
    line-height: 1.2 !important;
    text-wrap: pretty;
  }
}

/* --- 1200px: tune layout tokens + feature row 4 → 2 --- */
@media (max-width: 1200px) {
  :root {
    --scroll-margin-top: 120px;
    --rpe-header-overlay-offset: 88px;
    --rpe-accent-s0: 20rem;
  }

  body.header-is-sticky {
    --scroll-margin-top: 100px;
  }

  .wp-block-columns.alignfull:has(> .wp-block-column.is-vertically-aligned-stretch:is([style*="flex-basis:25%"], [style*="flex-basis: 25%"])):not(.rpe-family-events) {
    flex-wrap: wrap !important;
    width: 100% !important;
  }

  .wp-block-columns.alignfull:has(> .wp-block-column.is-vertically-aligned-stretch:is([style*="flex-basis:25%"], [style*="flex-basis: 25%"])):not(.rpe-family-events)>.wp-block-column {
    box-sizing: border-box !important;
    flex: 0 0 50% !important;
    max-width: 50% !important;
    min-width: 0;
    padding: clamp(1rem, 3vw, var(--wp--preset--spacing--50)) !important;
    width: 50% !important;
  }

  .wp-block-columns.alignfull:has(> .wp-block-column.is-vertically-aligned-stretch:is([style*="flex-basis:25%"], [style*="flex-basis: 25%"])):not(.rpe-family-events)>.wp-block-column h2.wp-block-heading.balance-text {
    line-height: 1.2 !important;
    text-wrap: pretty;
  }

  .wp-block-columns.alignfull:has(> .wp-block-column.is-vertically-aligned-stretch:is([style*="flex-basis:25%"], [style*="flex-basis: 25%"])):not(.rpe-family-events)>.wp-block-column .wp-block-custom-svg-icon-block-svg-icon svg {
    height: 40px;
    width: 40px;
  }

  .wp-block-columns.alignfull:has(> .wp-block-column.is-vertically-aligned-stretch:is([style*="flex-basis:25%"], [style*="flex-basis: 25%"])):not(.rpe-family-events)>.wp-block-column .wp-block-image img {
    max-width: 100%;
    height: auto;
  }

  /*
   * Hero still uses side-by-side columns above 900px. The 25% column is narrower than
   * the co-host pill, so flex-end alignment + overflow:clip was clipping the right edge.
   * Give the pill column intrinsic width and let the copy column shrink instead.
   */
  @media (min-width: 901px) {
    .rpe-hero .wp-block-columns>.wp-block-column:first-child {
      flex: 1 1 0% !important;
      flex-basis: 0 !important;
      min-width: 0;
    }

    .rpe-hero .wp-block-column:has(.rpe-cohost-pill) {
      flex: 0 0 auto !important;
      flex-basis: auto !important;
      width: auto !important;
      max-width: min(20rem, 42%);
      min-width: 0;
    }

    a.rpe-cohost-pill,
    .rpe-cohost-pill-sticky {
      max-width: 100%;
      box-sizing: border-box;
    }

    a.rpe-cohost-pill svg {
      display: block;
      width: 100%;
      max-width: 13.375rem;
      height: auto;
    }

    a.rpe-cohost-pill {
      padding: clamp(1rem, 2.5vw, var(--wp--preset--spacing--60));
    }
  }
}

/* --- 1024px: header + feature cards (2-up) --- */
@media (max-width: 1024px) {
  :root {
    --scroll-margin-top: 112px;
    --rpe-header-overlay-offset: 80px;
    --rpe-accent-s0: 17rem;
  }

  .wrapper-header {
    padding-inline: clamp(1rem, 3vw, var(--wp--preset--spacing--60)) !important;
  }

  .wrapper-header #logo-rp.has-custom-svg-logo-max-height,
  .wrapper-header .wp-block-group.is-layout-flex>.wp-block-custom-svg-logo:first-child .wp-block-custom-svg-logo-logo.has-custom-svg-logo-max-height {
    --custom-svg-logo-max-h: 52px !important;
  }

  .wrapper-header #logo-noria.has-custom-svg-logo-max-height,
  .wrapper-header .rpe-header-sponsor-stack .wp-block-custom-svg-logo .wp-block-custom-svg-logo-logo.has-custom-svg-logo-max-height {
    --custom-svg-logo-max-h: 32px !important;
  }

  .wrapper-header .wp-block-image img,
  .wrapper-header .wp-block-image a img {
    max-height: 52px;
  }

  .wrapper-header nav.wp-block-navigation a:not(.wp-block-button__link),
  .wrapper-header .wp-block-navigation a:not(.wp-block-button__link) {
    font-size: 0.9375rem !important;
  }

  .button-header .wp-block-button__link,
  .button-header a.wp-block-button__link {
    font-size: var(--wp--preset--font-size--normal) !important;
    min-height: unset;
    padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40) !important;
  }

  .wrapper-header .wp-block-navigation {
    --navigation-layout-justification-setting: flex-end;
  }

}

/* --- 900px: hero stack, grids, cohost card --- */
@media (max-width: 900px) {
  :root {
    --scroll-margin-top: 104px;
    --rpe-header-overlay-offset: 72px;
    --rpe-accent-s0: 14rem;
    --rpe-accent-s1: calc(var(--rpe-accent-s0) / var(--rpe-phi));
    --rpe-accent-s2: calc(var(--rpe-accent-s0) / var(--rpe-phi) / var(--rpe-phi));
    --rpe-accent-s3: calc(var(--rpe-accent-s0) / var(--rpe-phi) / var(--rpe-phi) / var(--rpe-phi));
    --rpe-section-gutter: var(--wp--preset--spacing--60);
  }

  body.home .rpe-hero {
    padding-top: var(--wp--preset--spacing--50) !important;
    padding-bottom: clamp(2.5rem, 8vw, 4rem) !important;
  }

  /* One consistent edge gutter for every full-width section (matches the
     hero's spacing--60 inline padding). !important beats per-block inline
     padding saved in post content. */
  .wp-block-cover.alignfull,
  .wp-block-group.alignfull.rpe-section,
  .wp-block-group.alignfull.rpe-past-exhibitors {
    padding-inline: var(--rpe-section-gutter) !important;
  }

  /* Sections nested inside an alignfull cover: the cover already provides
     the gutter, so don't double it. */
  .wp-block-cover.alignfull .wp-block-group.alignfull.rpe-section {
    padding-inline: 0 !important;
  }

  /* Containers span the full section width; the section owns the gutter.
     !important: .rpe-get-involved .rpe-container sets padding later in the
     stylesheet. */
  .rpe-container,
  .rpe-get-involved .rpe-container,
  .wp-block-cover__inner-container,
  .rpe-hero .wp-block-cover__inner-container {
    width: 100%;
    padding-inline: 0 !important;
  }

  .rpe-hero .wp-block-columns {
    flex-direction: column !important;
  }

  .rpe-hero .wp-block-columns>.wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
    min-width: 0;
  }

  .rpe-hero .wp-block-column:has(.rpe-cohost-pill),
  .wp-block-cover:has(.rpe-cohost-pill) .wp-block-column:has(.rpe-cohost-pill) {
    display: flex;
    flex-direction: column;
    align-items: flex-start !important;
    justify-content: flex-start;
  }

  .rpe-cohost-pill-sticky {
    position: static !important;
    top: auto !important;
    z-index: auto;
    align-self: flex-start !important;
    margin-left: 0 !important;
    margin-inline: 0;
    width: fit-content;
    max-width: 100%;
  }

  a.rpe-cohost-pill {
    flex-direction: row;
    align-items: center;
    margin-inline: 0;
    padding: var(--wp--preset--spacing--40);
    width: fit-content;
    max-width: 100%;
  }

  a.rpe-cohost-pill svg,
  a.rpe-cohost-pill .rpe-mobius-mark {
    display: block;
    flex-shrink: 0;
    width: auto;
    height: auto;
    max-height: 32px;
    max-width: none;
  }

  a.rpe-cohost-pill p {
    text-align: left;
  }

  .rpe-hero .wp-block-group.is-layout-flex {
    flex-wrap: wrap !important;
  }

  .rpe-grid-2,
  .wp-block-columns.rpe-grid-2 {
    grid-template-columns: 1fr !important;
  }

  .rpe-form-grid {
    grid-template-columns: 1fr;
  }

  /* Homepage feature row: 2 → 1 */
  .wp-block-columns.alignfull:has(> .wp-block-column.is-vertically-aligned-stretch:is([style*="flex-basis:25%"], [style*="flex-basis: 25%"])):not(.rpe-family-events)>.wp-block-column {
    box-sizing: border-box !important;
    flex: 0 0 100% !important;
    max-width: 100% !important;
    min-width: 0;
    padding: clamp(1.25rem, 4vw, var(--wp--preset--spacing--60)) var(--rpe-section-gutter) !important;
    width: 100% !important;
  }

  .wp-block-columns.alignfull:has(> .wp-block-column.is-vertically-aligned-stretch:is([style*="flex-basis:25%"], [style*="flex-basis: 25%"])):not(.rpe-family-events)>.wp-block-column h2.wp-block-heading.balance-text {
    text-wrap: pretty;
  }

  /* Full-width single column: icon + heading side by side like desktop */
  .wp-block-columns.alignfull:has(> .wp-block-column.is-vertically-aligned-stretch:is([style*="flex-basis:25%"], [style*="flex-basis: 25%"])):not(.rpe-family-events)>.wp-block-column>.wp-block-group:first-child {
    align-items: stretch !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
  }

  /* Co-located / about cover columns: stack */
  .wp-block-cover:has(.rpe-cohost-pill) .wp-block-columns {
    flex-direction: column !important;
  }

  .wp-block-cover:has(.rpe-cohost-pill) .wp-block-columns>.wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
    min-width: 0;
  }
}

/* --- 781px (core columns stack point): footer bands — stack + center --- */
@media (max-width: 781px) {

  .rpe-footer-main .wp-block-columns,
  .wp-block-group:has(> .rpe-back-to-top) .wp-block-columns {
    flex-direction: column !important;
    gap: var(--wp--preset--spacing--50);
  }

  .rpe-footer-main .wp-block-column,
  .wp-block-group:has(> .rpe-back-to-top) .wp-block-column {
    flex-basis: 100% !important;
    width: 100%;
    text-align: center;
  }

  /* Beat the has-text-align-left/right utility classes on paragraphs */
  .rpe-footer-main .wp-block-column p,
  .wp-block-group:has(> .rpe-back-to-top) .wp-block-column p {
    text-align: center;
  }

  /* Center flex rows (e.g. Noria logo + "Presented by" caption) */
  .rpe-footer-main .wp-block-column .wp-block-group.is-layout-flex,
  #presented-by {
    justify-content: center !important;
  }

  /* Center the footer nav links (right-justified on desktop; the 1080px
     mobile-menu block forces left alignment on all nav containers) */
  .rpe-footer-nav,
  .rpe-footer-nav .wp-block-navigation__container,
  .rpe-footer-nav .wp-block-navigation__container li,
  .rpe-footer-nav .wp-block-navigation__container .wp-block-navigation-item,
  .rpe-footer-nav .wp-block-navigation__container a,
  .rpe-footer-nav .wp-block-navigation__container .wp-block-navigation-item__content,
  .rpe-footer-nav .wp-block-navigation__container .wp-block-navigation-item__label {
    justify-content: center !important;
    text-align: center !important;
  }

  /* Stack the Noria logo above its "Presented by" caption */
  #presented-by {
    flex-direction: column !important;
    align-items: center;
  }

  /* Center standalone logo blocks */
  .rpe-footer-main .wp-block-column>.wp-block-custom-svg-logo-logo,
  .wp-block-group:has(> .rpe-back-to-top) .wp-block-column>.wp-block-custom-svg-logo-logo {
    margin-inline: auto;
  }
}

/* --- 768px: typography, sections, header nav, forms, footer --- */
@media (max-width: 768px) {
  :root {
    --scroll-margin-top: 96px;
    --rpe-header-overlay-offset: 68px;
    --rpe-accent-s0: 11rem;
  }

  .rpe-section {
    padding-block: clamp(3rem, 10vw, 5rem);
  }

  .rpe-section--compact {
    padding-block: clamp(2.25rem, 8vw, 4rem);
  }

  .rpe-section--large {
    padding-block: clamp(4rem, 12vw, 6rem);
  }

  .rpe-section--after-features {
    padding-top: clamp(3rem, 10vw, 5rem);
  }

  .rpe-hero .rpe-hero-inner p,
  .rpe-hero .has-medium-font-size {
    line-height: 1.55;
  }

  .wrapper-header>.wp-block-group {
    flex-wrap: nowrap;
    min-width: 0;
  }

  .wrapper-header>.wp-block-group>.wp-block-group:first-child {
    flex: 1 1 auto;
    min-width: 0;
  }

  .wrapper-header #logo-rp.has-custom-svg-logo-max-height,
  .wrapper-header .wp-block-group.is-layout-flex>.wp-block-custom-svg-logo:first-child .wp-block-custom-svg-logo-logo.has-custom-svg-logo-max-height {
    --custom-svg-logo-max-h: 44px !important;
  }

  .button-header .wp-block-button__link,
  .button-header a.wp-block-button__link {
    min-height: 44px;
    padding-block: 0.5rem !important;
    font-size: 0.9375rem !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__container a,
  .wp-block-navigation__responsive-container .wp-block-navigation__container .wp-block-navigation-item__content,
  .wp-block-navigation__responsive-container .wp-block-navigation__container .wp-block-navigation-item__label,
  .wp-block-navigation__responsive-container .wp-block-navigation__container li a {
    font-size: 0.9375rem !important;
  }

  .rpe-differentiator-strip.rpe-grid--3,
  .wp-block-columns.rpe-differentiator-strip.rpe-grid--3 {
    flex-direction: column !important;
  }

  .rpe-differentiator-strip.rpe-grid--3>.wp-block-column,
  .wp-block-columns.rpe-differentiator-strip.rpe-grid--3>.wp-block-column {
    flex-basis: 100% !important;
    min-width: 0;
  }

  .rpe-footer__grid,
  .wp-block-group.has-midnight-background-color>.wp-block-columns:first-of-type {
    flex-direction: column !important;
  }

  .rpe-footer__grid>.wp-block-column,
  .wp-block-group.has-midnight-background-color>.wp-block-columns:first-of-type>.wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
  }

  .rpe-footer__links a {
    display: inline-block;
    padding-block: 0.35rem;
  }

  .rpe-family-events {
    flex-wrap: wrap !important;
  }

  .rpe-family-events>.wp-block-column {
    flex-basis: calc(50% - 0.5rem) !important;
    min-width: min(100%, 10rem);
  }

  /* HubSpot: stack all rows from tablet down */
  .rpe-hubspot-form .hsfc-Row {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: var(--hsf-row__horizontal-spacing, 0.65rem);
  }

  .rpe-hubspot-form .hsfc-Row>* {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
  }

  .rpe-hubspot-form .hsfc-TextInput,
  .rpe-hubspot-form .hsfc-TextareaInput,
  .rpe-hubspot-form .hsfc-SelectInput,
  .rpe-hubspot-form .hsfc-PhoneInput input,
  .rpe-hubspot-form .hsfc-EmailInput input,
  .rpe-hubspot-form .hs-input,
  .rpe-hubspot-form textarea.hs-input,
  .rpe-hubspot-form select.hs-input {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
  }

  .rpe-hubspot-form .hsfc-TextareaInput,
  .rpe-hubspot-form textarea.hs-input {
    width: 100% !important;
  }

  .rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
  }

  .rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options label,
  .rpe-hubspot-form .hsfc-CheckboxFieldGroup__Options label.hsfc-FieldLabel {
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .rpe-hubspot-form .hs-form fieldset.form-columns-2 {
    grid-template-columns: 1fr;
  }

  .rpe-topic-checkboxes {
    grid-template-columns: 1fr;
  }

  .rpe-hero-accent-wrap--yellow {
    right: -35%;
  }
}

/* --- 640px: hero accents, feature cards 1-up, hero CTA --- */
@media (max-width: 640px) {
  :root {
    --rpe-accent-s0: 8rem;
    --rpe-accent-s1: 5rem;
    --rpe-accent-s2: 3.25rem;
    --rpe-accent-s3: 2rem;
  }

  .rpe-hero-accent-wrap--yellow {
    opacity: 0.35;
    right: -25%;
    bottom: -3rem;
  }

  .rpe-hero-accent-wrap--green {
    left: -30%;
    opacity: 0.5;
  }

  .rpe-hero-accent-wrap--blue {
    display: none;
  }

  /* Date above CTA: DOM is buttons → paragraph; reorder for stacked mobile layout */
  .rpe-hero .wp-block-group.is-layout-flex:has(> .wp-block-buttons) {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .rpe-hero .wp-block-group.is-layout-flex>p.has-medium-font-size {
    order: 1;
    flex: 0 0 auto;
    width: 100%;
    margin-top: 0;
    margin-bottom: 0;
  }

  .rpe-hero .wp-block-group.is-layout-flex>.wp-block-buttons {
    order: 2;
    width: 100%;
  }

  .rpe-hero .wp-block-buttons .wp-block-button {
    width: 100%;
  }

  .rpe-hero .wp-block-buttons .wp-block-button__link {
    width: 100%;
    justify-content: center;
  }
}

/* --- 480px: compact header, containers, forms, footer --- */
@media (max-width: 480px) {
  :root {
    --scroll-margin-top: 88px;
    --rpe-header-overlay-offset: 60px;
    --rpe-accent-s0: 6rem;
    --rpe-accent-s1: 3.5rem;
    --rpe-accent-s2: 2rem;
    --rpe-accent-s3: 0;
  }

  .rpe-cohost-pill-sticky,
  a.rpe-cohost-pill {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    min-width: 0;
  }

  a.rpe-cohost-pill p {
    flex: 1 1 0;
    min-width: 0;
    max-width: 100%;
    text-wrap: balance;
    text-align: left;
  }

  .wrapper-header {
    padding-block: var(--wp--preset--spacing--30) !important;
    padding-inline: clamp(0.75rem, 4vw, 1rem) !important;
  }

  /* Sponsor stack: keep visible, scaled below the RPE logo (38px) */
  .wrapper-header #logo-noria.has-custom-svg-logo-max-height,
  .wrapper-header .rpe-header-sponsor-stack .wp-block-custom-svg-logo .wp-block-custom-svg-logo-logo.has-custom-svg-logo-max-height {
    --custom-svg-logo-max-h: 20px !important;
  }

  /* Tighter gap between the RPE logo and the sponsor stack */
  .wrapper-header .wp-block-group.is-layout-flex:has(> .wp-block-custom-svg-logo #logo-rp) {
    gap: var(--wp--preset--spacing--40);
  }

  .wrapper-header #logo-rp.has-custom-svg-logo-max-height,
  .wrapper-header .wp-block-group.is-layout-flex>.wp-block-custom-svg-logo:first-child .wp-block-custom-svg-logo-logo.has-custom-svg-logo-max-height {
    --custom-svg-logo-max-h: 38px !important;
  }

  .wrapper-header .wp-block-group.is-layout-flex>.wp-block-navigation {
    flex: 0 1 auto;
  }

  .rpe-form-card,
  .rpe-form-card.rpe-form-placeholder {
    padding: clamp(1rem, 5vw, 1.5rem);
  }

  .rpe-hubspot-form .hsfc-TextInput,
  .rpe-hubspot-form .hsfc-SelectInput,
  .rpe-hubspot-form .hsfc-PhoneInput input,
  .rpe-hubspot-form .hsfc-EmailInput input,
  .rpe-hubspot-form .hs-input,
  .rpe-hubspot-form select.hs-input,
  .rpe-hubspot-form .hs-button,
  .rpe-form-card .rpe-btn-submit {
    min-height: var(--rpe-hs-field-height, 60px);
    height: var(--rpe-hs-field-height, 60px);
  }

  .rpe-hubspot-form .hsfc-TextareaInput,
  .rpe-hubspot-form textarea.hs-input {
    min-height: 5.5rem;
    height: auto !important;
    resize: vertical !important;
    overflow: auto !important;
  }

  .rpe-family-events>.wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
  }

  .rpe-family-events svg,
  .rpe-family-events .wp-block-image img {
    max-width: 100% !important;
  }

  #footer-logos .wp-block-group {
    text-align: left;
  }

  .rpe-hero-accent-wrap--yellow,
  .rpe-hero-accent-wrap--green {
    display: none;
  }

  .rpe-hero-accent-wrap--red {
    left: clamp(0.5rem, 2vw, 1rem);
    opacity: 0.4;
  }
}

/* --- 390px: overflow safety + smallest screens --- */
@media (max-width: 390px) {
  :root {
    --rpe-header-overlay-offset: 56px;
    --rpe-accent-s0: 0;
    --rpe-accent-s1: 0;
    --rpe-accent-s2: 0;
    --rpe-accent-s3: 0;
  }

  html {
    overflow-x: clip;
  }

  .wp-site-blocks,
  .rpe-hero,
  .rpe-hero-accent-wrap,
  .rpe-hubspot-form,
  .rpe-form-card,
  .wrapper-header {
    box-sizing: border-box;
    max-width: 100%;
  }

  .wp-block-image img,
  .rpe-mobius-mark,
  .wrapper-header svg,
  .rpe-family-events svg {
    max-width: 100%;
    height: auto;
  }

  .rpe-hero-accent-wrap--red {
    display: none;
  }

  a.rpe-cohost-pill {
    width: 100%;
    max-width: 100%;
    padding: var(--wp--preset--spacing--40);
  }

  .rpe-cohost-pill-sticky {
    width: 100%;
    max-width: 100%;
  }
}

/* Overflow fixes (all mobile breakpoints) */
@media (max-width: 900px) {

  .wp-site-blocks>.wp-block-columns,
  .rpe-hero .wp-block-columns,
  .rpe-grid-2,
  .wp-block-columns.rpe-grid-2,
  .rpe-hubspot-form,
  .rpe-form-card {
    min-width: 0;
    max-width: 100%;
  }

  .rpe-hero-accent-wrap {
    max-width: 100vw;
  }

  .rpe-hero-accent {
    max-width: 100%;
  }
}

/* Get Involved tabbed forms (homepage) */
.rpe-get-involved {
  padding-block: var(--wp--preset--spacing--80);
  color: var(--wp--preset--color--midnight);
}

.rpe-get-involved .rpe-container {
  max-width: 1200px;
  margin-inline: auto;
  padding-inline: var(--wp--preset--spacing--50);
}

.rpe-get-involved .rpe-section-intro {
  margin-bottom: var(--wp--preset--spacing--60);
}

.rpe-get-involved .rpe-section-intro h2 {
  font-size: var(--wp--preset--font-size--x-large);
  font-weight: 900;
  line-height: 1.5;
  text-align: center;
}

.rpe-get-involved .rpe-section-intro>p,
.rpe-get-involved .rpe-section-intro .wp-block-paragraph {
  font-size: var(--wp--preset--font-size--medium);
  margin-inline: auto;
  text-align: center;
}

.rpe-tabs {
  max-width: 960px;
  margin-inline: auto;
  width: 100%;
}

/* WP flex layout zeroes direct child margins; restore centering for tabbed forms. */
.is-layout-flex.is-vertical>.rpe-tabs,
.is-layout-flex.is-vertical>.wp-block-html:has(.rpe-tabs) {
  margin-inline: auto !important;
  max-width: 960px;
  width: 100%;
}

.rpe-tabs__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--wp--preset--spacing--30);
  justify-content: center;
  margin-bottom: var(--wp--preset--spacing--60);
}

.rpe-tabs__tab {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.75rem 1.25rem;
  border: 1px solid rgba(16, 38, 74, 0.15);
  border-radius: 0.5rem;
  background: #fff;
  color: var(--wp--preset--color--midnight);
  font-family: inherit;
  font-size: 1rem;
  font-weight: 700;
  height: 60px;
  line-height: 1.3;
  text-align: center;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.rpe-tabs__tab:hover {
  border-color: var(--wp--preset--color--midnight);
}

.rpe-tabs__tab.is-active {
  background: var(--wp--preset--color--safety-yellow);
  border-color: var(--wp--preset--color--safety-yellow);
  color: var(--wp--preset--color--midnight);
  cursor: not-allowed;
}

.rpe-tabs__tab:focus-visible {
  outline: 2px solid var(--wp--preset--color--maintenance-blue);
  outline-offset: 2px;
}

.rpe-tabs__panels {
  position: relative;
}

.rpe-tabs__panel {
  width: 100%;
}

.rpe-tabs__panel:not(.is-active) {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  z-index: 0;
}

.rpe-tabs__panel.is-active {
  position: relative;
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  z-index: 1;
}

.rpe-tab-panel__intro {
  text-align: center;
  margin-inline: auto;
  margin-bottom: var(--wp--preset--spacing--50);
}

.rpe-tab-panel__intro h3 {
  font-weight: 900;
  line-height: 1.4;
  margin-bottom: var(--wp--preset--spacing--40);
}

.rpe-tab-panel__intro p {
  font-size: var(--wp--preset--font-size--medium);
  margin: 0;
}

.rpe-get-involved .rpe-form-card {
  max-width: 920px;
  margin-inline: auto;
}

@media (max-width: 600px) {
  .rpe-tabs__list {
    flex-direction: column;
    align-items: stretch;
  }

  .rpe-tabs__tab {
    width: 100%;
    flex: none;
  }
}

/* --------------------------------------------------------------------------
   Get Event Alerts CTA band (footer template part, site-wide)
   Layout + HubSpot only — spacing/colors via block + .rpe-section in editor
   -------------------------------------------------------------------------- */

.rpe-alerts-cta {
  overflow-x: clip;
}

.wp-block-columns.rpe-alerts-cta__columns {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
}

.rpe-alerts-cta__form-column {
  min-width: 0;
}

.rpe-alerts-cta__eyebrow {
  margin: 0;
}

.rpe-alerts-cta__note {
  opacity: 0.85;
}

/* Footer: hide duplicate nav CTA (dedicated #get-alerts band sits above footer) */
.rpe-footer-nav .button-header,
.rpe-footer-main .button-header {
  display: none !important;
}

/* Footer: non-functional mobile hamburger overlay — hide the toggle (the
   closed overlay is already hidden by core below 600px); the header menu
   carries the same links. */
.rpe-footer-nav .wp-block-navigation__responsive-container-open {
  display: none !important;
}

/* Minimal alerts HubSpot form — compact layout only */
.rpe-hubspot-form--minimal-alerts {
  --hsf-global__font-size: 0.9375rem;
  --rpe-hs-field-font-size: 0.875rem;
  --hsf-module__vertical-spacing: 0.65rem;
}

.rpe-hubspot-form--minimal-alerts .hsfc-Step__Content,
.rpe-hubspot-form--minimal-alerts .hsfc-Form {
  gap: 0.65rem;
}

.rpe-hubspot-form--minimal-alerts .hsfc-Row {
  margin-bottom: var(--hsf-row__vertical-spacing, 1.25rem);
}

.rpe-hubspot-form--minimal-alerts .hsfc-FieldLabel {
  font-size: 0.875rem;
  margin-bottom: 0.35rem;
}

.rpe-hubspot-form--minimal-alerts .hsfc-TextInput,
.rpe-hubspot-form--minimal-alerts .hsfc-TextareaInput,
.rpe-hubspot-form--minimal-alerts .hsfc-SelectInput,
.rpe-hubspot-form--minimal-alerts .hsfc-PhoneInput input,
.rpe-hubspot-form--minimal-alerts .hsfc-EmailInput input,
.rpe-hubspot-form--minimal-alerts .hs-input,
.rpe-hubspot-form--minimal-alerts textarea.hs-input,
.rpe-hubspot-form--minimal-alerts select.hs-input {
  width: 100%;
  max-width: 100%;
}

.rpe-hubspot-form--minimal-alerts .hsfc-NavigationRow,
.rpe-hubspot-form--minimal-alerts .hsfc-ButtonRow,
.rpe-hubspot-form--minimal-alerts .hs-submit,
.rpe-hubspot-form--minimal-alerts .hs_submit {
  margin-top: 0 !important;
}

.rpe-hubspot-form--minimal-alerts .hsfc-Button,
.rpe-hubspot-form--minimal-alerts button.hsfc-Button,
.rpe-hubspot-form--minimal-alerts .hs-button {
  width: 100%;
  max-width: 100%;
}

@media (max-width: 781px) {
  .wp-block-columns.rpe-alerts-cta__columns {
    grid-template-columns: 1fr;
  }
}

/* Reduced motion: keep accents from animating off-screen */
@media (prefers-reduced-motion: reduce) {

  .rpe-hero-accent,
  .rpe-hero-accent-wrap {
    transform: none !important;
    animation: none !important;
  }

  .rpe-urgency-indicator {
    animation: none;
  }

  html.js .fade-in-on-load,
  html.js .fade-in-on-scroll,
  html.js .fade-in-rise-on-load,
  html.js .fade-in-rise-on-scroll,
  html.js .header-animate-on-scroll,
  html.js .header-animate-on-scroll-right,
  html.js .header-animate-on-load-left,
  html.js .header-animate-on-load-right,
  html.js .header-animate-on-load {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Mobile header in document flow — must follow later breakpoint :root tokens */
@media (max-width: 1080px) {
  :root {
    --rpe-header-overlay-offset: 0px;
    --scroll-margin-top: 80px;
  }

  .wrapper-header,
  .wrapper-header.has-midnight-background-color,
  .wrapper-header.has-gray-background-color,
  .wrapper-header.has-background {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    background-color: var(--wp--preset--color--midnight) !important;
    box-shadow: none;
    left: auto !important;
    position: relative !important;
    top: auto !important;
    z-index: 10 !important;
  }

  .wrapper-header:has(.wp-block-navigation__responsive-container.is-menu-open),
  .wrapper-header:has(.wp-block-navigation__responsive-container.has-modal-open) {
    box-shadow: none !important;
    left: 0 !important;
    position: fixed !important;
    top: 0 !important;
    width: 100% !important;
    z-index: 100000 !important;
  }

  .wrapper-header:has(.wp-block-navigation__responsive-container.is-menu-open)::after,
  .wrapper-header:has(.wp-block-navigation__responsive-container.has-modal-open)::after {
    content: none !important;
    display: none !important;
  }

  body,
  body:not(.home),
  body.header-is-sticky,
  body.header-is-sticky:not(.home) {
    padding-top: 0 !important;
  }

  body.home .rpe-hero {
    padding-top: var(--wp--preset--spacing--50) !important;
  }
}

/* Very narrow screens: hide the header sponsor stack */
@media (max-width: 339px) {
  .wrapper-header .rpe-header-sponsor-stack {
    display: none;
  }
}