/*
Theme Name: We Pyro It Gutenberg
Theme URI: https://wepyroit.com/
Author: Taha Anwar
Author URI: https://ableswebworks.com/
Description: Editable Gutenberg landing page theme built specifically for the We Pyro It landing page with Gutenberg preview and easy page content fields.
Version: 1.0.256
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: we-pyro-it
*/

@import url("https://api.fontshare.com/v2/css?f[]=clash-display@400,500,600,700&display=swap");

html {
  font-size: clamp(11px, 0.95vw, 17px) !important;
}

@media (max-width: 767px) {
  
}

/* ========================================================================== 
   v1.0.243 FINAL: full-width tablet header, complete hamburger, white CTA
   ========================================================================== */
@media (max-width: 1100px) {
  html body .site-header.wpi-global-header,
  html body .site-header.wpi-global-header.container-wide {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    border-radius: 0 !important;
  }

  html body .site-header.wpi-global-header .mobile-menu-toggle span {
    position: relative !important;
    display: block !important;
    width: 1.55rem !important;
    height: 2px !important;
    background: #fff !important;
    color: #fff !important;
  }

  html body .site-header.wpi-global-header .mobile-menu-toggle span::before,
  html body .site-header.wpi-global-header .mobile-menu-toggle span::after {
    content: "" !important;
    position: absolute !important;
    display: block !important;
    left: 0 !important;
    width: 1.55rem !important;
    height: 2px !important;
    background: #fff !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    transition: top .2s ease, transform .2s ease !important;
  }

  html body .site-header.wpi-global-header .mobile-menu-toggle span::before {
    top: -.5rem !important;
  }

  html body .site-header.wpi-global-header .mobile-menu-toggle span::after {
    top: .5rem !important;
  }

  html body.menu-open .site-header.wpi-global-header .mobile-menu-toggle span,
  html body.wpi-menu-open .site-header.wpi-global-header .mobile-menu-toggle span {
    background: transparent !important;
  }

  html body.menu-open .site-header.wpi-global-header .mobile-menu-toggle span::before,
  html body.wpi-menu-open .site-header.wpi-global-header .mobile-menu-toggle span::before {
    top: 0 !important;
    transform: rotate(45deg) !important;
  }

  html body.menu-open .site-header.wpi-global-header .mobile-menu-toggle span::after,
  html body.wpi-menu-open .site-header.wpi-global-header .mobile-menu-toggle span::after {
    top: 0 !important;
    transform: rotate(-45deg) !important;
  }
}

@media (max-width: 767px) {
  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta:link,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta:visited,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta:hover,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta:focus,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta:active {
    border: 1px solid #fff !important;
    background: transparent !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    opacity: 1 !important;
  }
}

/* ========================================================================== 
   v1.0.248 LIVE-SCREEN HEADER AUTHORITY
   Activated by the explicit JS viewport mode classes.
   ========================================================================== */
@media (min-width: 1025px) and (max-width: 1180px) {
  html body.wpi-desktop-nav-mode .site-header.wpi-global-header,
  html body.wpi-desktop-nav-mode .site-header.wpi-global-header.container-wide {
    position: relative !important;
    inset: auto !important;
    width: min(calc(100% - 3rem), 108rem) !important;
    max-width: 108rem !important;
    height: auto !important;
    min-height: clamp(6.2rem, 7vw, 9.65rem) !important;
    max-height: none !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: 13.5rem minmax(0, 1fr) 13.5rem !important;
    align-items: center !important;
    gap: 1rem !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    transform: none !important;
  }

  html body.wpi-desktop-nav-mode .site-header.wpi-global-header .mobile-menu-toggle,
  html body.wpi-desktop-nav-mode .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  html body.wpi-desktop-nav-mode .site-header.wpi-global-header .mobile-nav-contact,
  html body.wpi-desktop-nav-mode > .wpi-mobile-menu-portal {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  html body.wpi-desktop-nav-mode .site-header.wpi-global-header .wpi-header-actions {
    grid-column: 3 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    justify-self: end !important;
  }

  html body.wpi-desktop-nav-mode .site-header.wpi-global-header > .main-nav,
  html body.wpi-desktop-nav-mode.menu-open .site-header.wpi-global-header > .main-nav,
  html body.wpi-desktop-nav-mode.wpi-menu-open .site-header.wpi-global-header > .main-nav {
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: center !important;
    justify-self: center !important;
    gap: .9rem !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #fff !important;
    font-size: .82rem !important;
    line-height: 2.93rem !important;
    letter-spacing: .045rem !important;
    text-align: center !important;
    white-space: nowrap !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
  }

  html body.wpi-desktop-nav-mode .site-header.wpi-global-header > .main-nav > a {
    position: static !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #fff !important;
    text-align: center !important;
    white-space: nowrap !important;
    transform: none !important;
  }

  html body.wpi-desktop-nav-mode .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown,
  html body.wpi-desktop-nav-mode .site-header.wpi-global-header .wpi-nav-dropdown-row {
    position: relative !important;
    display: inline-flex !important;
    grid-template-columns: none !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    gap: .2rem !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
  }

  html body.wpi-desktop-nav-mode .site-header.wpi-global-header .wpi-nav-dropdown-label {
    position: static !important;
    display: inline-flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    grid-column: auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #fff !important;
    text-align: center !important;
    white-space: nowrap !important;
    transform: none !important;
  }

  html body.wpi-desktop-nav-mode .site-header.wpi-global-header .wpi-nav-dropdown-caret {
    position: static !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 .75rem !important;
    grid-column: auto !important;
    width: .75rem !important;
    min-width: .75rem !important;
    height: .75rem !important;
    min-height: .75rem !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #fff !important;
    font-size: .58rem !important;
    line-height: 1 !important;
    opacity: .9 !important;
    transform: none !important;
  }

  html body.wpi-desktop-nav-mode .site-header.wpi-global-header .wpi-nav-dropdown-menu {
    position: absolute !important;
    top: calc(100% + .5rem) !important;
    right: auto !important;
    bottom: auto !important;
    left: 50% !important;
    z-index: 100520 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .45rem !important;
    width: min(34rem, calc(100vw - 2rem)) !important;
    max-width: calc(100vw - 2rem) !important;
    height: auto !important;
    max-height: calc(100vh - 8rem) !important;
    margin: 0 !important;
    padding: .85rem !important;
    overflow-y: auto !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    border-radius: 1.05rem !important;
    background: rgba(5,5,5,.98) !important;
    box-shadow: 0 1.4rem 3.2rem rgba(0,0,0,.48) !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translateX(-50%) translateY(.3rem) !important;
  }

  html body.wpi-desktop-nav-mode .site-header.wpi-global-header .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  html body.wpi-desktop-nav-mode .site-header.wpi-global-header .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  html body.wpi-desktop-nav-mode .site-header.wpi-global-header .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) !important;
  }
}

@media (max-width: 1024px) {
  html body.wpi-mobile-nav-mode .wpi-mobile-header-structured,
  html body.wpi-mobile-nav-mode .wpi-mobile-header-structured > .site-header.wpi-global-header + section {
    background-color: #000 !important;
  }

  html body.wpi-mobile-nav-mode .wpi-mobile-header-structured > .announcement {
    margin: 0 !important;
  }

  html body.wpi-mobile-nav-mode .site-header.wpi-global-header,
  html body.wpi-mobile-nav-mode .site-header.wpi-global-header.container-wide {
    box-sizing: border-box !important;
    position: sticky !important;
    top: 0 !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 2147482500 !important;
    width: 100vw !important;
    min-width: 100vw !important;
    max-width: 100vw !important;
    margin-top: 0 !important;
    margin-right: calc(50% - 50vw) !important;
    margin-left: calc(50% - 50vw) !important;
    padding-right: max(1.25rem, env(safe-area-inset-right)) !important;
    padding-left: max(1.25rem, env(safe-area-inset-left)) !important;
    display: grid !important;
    grid-template-columns: minmax(8.75rem, 1fr) auto !important;
    align-items: center !important;
    gap: 1rem !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    transform: none !important;
  }

  html body.wpi-mobile-nav-mode .site-header.wpi-global-header > .main-nav,
  html body.wpi-mobile-nav-mode > .wpi-mobile-menu-portal {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  html body :is(
    .hero-section > .hero-content,
    .about-hero-page > .about-page-hero-content,
    .wpi-sp-hero > .wpi-sp-hero-content,
    .wpi-isvc-hero .wpi-isvc-hero-copy,
    .wpi-gallery-hero > .wpi-gallery-hero-copy,
    .wpi-quote-hero > .wpi-quote-hero-copy,
    .wpi-event-hero > .wpi-event-hero-copy,
    .wpi-shop-hero > .wpi-shop-hero-copy,
    .wpi-cart-hero > .wpi-cart-hero-copy,
    .wpi-checkout-hero > .wpi-checkout-hero-copy,
    .wpi-thankyou-hero > .wpi-thankyou-hero-copy,
    .wpi-standard-hero > .container-narrow
  ) {
    box-sizing: border-box !important;
    border-top: 6rem solid transparent !important;
  }

  html body.wpi-mobile-nav-mode .site-header.wpi-global-header .wpi-mobile-drawer-nav {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  html body.wpi-mobile-nav-mode.menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  html body.wpi-mobile-nav-mode.wpi-menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav {
    display: flex !important;
    flex-direction: column !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  html body.wpi-mobile-nav-mode .site-header.wpi-global-header .wpi-header-actions .header-contact,
  html body.wpi-mobile-nav-mode .site-header.wpi-global-header .wpi-header-actions .header-contact:link,
  html body.wpi-mobile-nav-mode .site-header.wpi-global-header .wpi-header-actions .header-contact:visited,
  html body.wpi-mobile-nav-mode .site-header.wpi-global-header .wpi-header-actions .header-contact:hover,
  html body.wpi-mobile-nav-mode .site-header.wpi-global-header .wpi-header-actions .header-contact:focus,
  html body.wpi-mobile-nav-mode .site-header.wpi-global-header .wpi-header-actions .header-contact:active,
  html body.wpi-mobile-nav-mode .site-header.wpi-global-header .wpi-mobile-drawer-cta,
  html body.wpi-mobile-nav-mode .site-header.wpi-global-header .wpi-mobile-drawer-cta:link,
  html body.wpi-mobile-nav-mode .site-header.wpi-global-header .wpi-mobile-drawer-cta:visited,
  html body.wpi-mobile-nav-mode .site-header.wpi-global-header .wpi-mobile-drawer-cta:hover,
  html body.wpi-mobile-nav-mode .site-header.wpi-global-header .wpi-mobile-drawer-cta:focus,
  html body.wpi-mobile-nav-mode .site-header.wpi-global-header .wpi-mobile-drawer-cta:active,
  html body.wpi-mobile-nav-mode .site-header.wpi-global-header .wpi-mobile-drawer-cta * {
    border: 1px solid #fff !important;
    background: transparent !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    text-shadow: none !important;
    opacity: 1 !important;
  }
}

/* ========================================================================== 
   v1.0.242 — compact tablet header and dedicated drawer only
   ========================================================================== */
@media (max-width: 1100px) {
  html body .site-header.wpi-global-header,
  html body .site-header.wpi-global-header.container-wide {
    height: 6.5rem !important;
    min-height: 6.5rem !important;
    max-height: 6.5rem !important;
    grid-template-columns: minmax(8.75rem, 1fr) auto !important;
    align-items: center !important;
    align-content: center !important;
    gap: 1rem !important;
    overflow: visible !important;
  }

  /* Never allow the old desktop/portal menu to reopen in hamburger mode. */
  html body .site-header.wpi-global-header > .main-nav,
  html body.menu-open .site-header.wpi-global-header > .main-nav,
  html body.wpi-menu-open .site-header.wpi-global-header > .main-nav,
  html body.home.menu-open .site-header.wpi-global-header > .main-nav,
  html body.home.wpi-menu-open .site-header.wpi-global-header > .main-nav,
  html body.front-page.menu-open .site-header.wpi-global-header > .main-nav,
  html body.front-page.wpi-menu-open .site-header.wpi-global-header > .main-nav,
  html body > .wpi-mobile-menu-portal,
  html body.menu-open > .wpi-mobile-menu-portal,
  html body.wpi-menu-open > .wpi-mobile-menu-portal {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 0 !important;
    height: 0 !important;
    max-width: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
  }

  html body .site-header.wpi-global-header .wpi-mobile-drawer-nav {
    position: absolute !important;
    top: calc(100% + .55rem) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 8rem) !important;
    gap: .45rem !important;
    padding: .75rem !important;
    overflow-y: auto !important;
  }

  html body .site-header.wpi-global-header .wpi-mobile-drawer-nav > a,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-services,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-services-toggle {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 3.1rem !important;
    margin: 0 !important;
    transform: none !important;
  }

  html body .site-header.wpi-global-header .wpi-mobile-drawer-services {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
  }

  html body .site-header.wpi-global-header .wpi-mobile-drawer-services:not(.is-open) .wpi-mobile-drawer-submenu,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-submenu[hidden] {
    display: none !important;
  }
}

@media (max-width: 767px) {
  html body .site-header.wpi-global-header,
  html body .site-header.wpi-global-header.container-wide {
    height: 6rem !important;
    min-height: 6rem !important;
    max-height: 6rem !important;
  }

  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta {
    border: 1px solid #fff !important;
    background: transparent !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    box-shadow: none !important;
  }
}

@media (max-width: 340px) {
  html { font-size: 9px !important; }
}

:root {
  --black: #050505;
  --white: #fff;
  --off: #f4f4f4;
  --red: #dd222f;
  --bright-red: #ff0707;
  --dark-red: #7b0508;
  --text: #1f1e1e;
  --soft-text: #333b36;
  --navy: #031332;
  --display: "Clash Display", "Arial Black", sans-serif;
  --body: "Red Hat Display", "Inter", sans-serif;
  --inter: "Inter", sans-serif;
  --dm: "DM Sans", sans-serif;
  --count: "Gafata", sans-serif;
  --unbounded: "Unbounded", sans-serif;
  --container: 100rem;
  --page-pad: 4rem;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  background: #fff;
  color: var(--text);
  font-family: var(--body);
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font: inherit; }

.container-wide {
  width: min(calc(100% - var(--page-pad)), var(--container));
  margin-inline: auto;
}
.container-narrow {
  width: min(calc(100% - var(--page-pad)), 64.7rem);
  margin-inline: auto;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 4.1rem;
  padding: 1.45rem 3.1rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-family: var(--body);
  font-size: 0.84rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.045rem;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.btn:hover { transform: translateY(-0.08rem); }
.btn-dark { background: #0c0000; color: #fff; }
.btn-outline-light { color: #fff; border-color: rgba(255,255,255,.9); }
.btn-outline-light:hover { background:#fff; color:#0b0b0b; }
.btn-red { background: var(--bright-red); color:#fff; border-color: var(--bright-red); }
.btn-outline-dark {
  min-width: 20.65rem;
  min-height: 3.72rem;
  padding: 1rem 2.6rem;
  color: #000;
  border-color: #000;
  font-family: var(--inter);
  font-size: 1.22rem;
  font-weight: 400;
  line-height: 1.6rem;
  letter-spacing: 0;
  text-transform: lowercase;
}
.btn-light-wide { width: 27.88rem; background: #fff; color: #000; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.12rem;
  padding: 0.58rem 1.65rem;
  border: 1px solid #000;
  border-radius: 999px;
  font-family: var(--body);
  font-size: 0.84rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.045rem;
  text-transform: uppercase;
}
.eyebrow-light { color:#fff; border-color:#fff; }
.eyebrow.filled, .eyebrow-light.filled { background: rgba(0,0,0,.22); }

.section-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.3rem;
  text-align: center;
}
.section-heading h2 {
  margin: 0;
  font-family: var(--display);
  font-size: 4.05rem;
  font-weight: 700;
  line-height: .94;
  letter-spacing: .08rem;
  text-transform: uppercase;
}
.section-heading h2 span { color: var(--red); }
.section-heading p {
  margin: 0;
  max-width: 52rem;
  font-size: 1.34rem;
  line-height: 2.01rem;
}
.section-heading-light, .section-heading-light p { color:#fff; }

/* HERO */
.hero-section {
  position: relative;
  min-height: 65.65rem;
  color: #fff;
  overflow: hidden;
  background:
    linear-gradient(to top, rgba(0,0,0,.14) 24.5%, rgba(71,72,74,.9)),
    var(--wpi-hero-image) center 8% / cover no-repeat;
}
.hero-section::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background: radial-gradient(circle at 66% 20%, rgba(189,255,127,.22), transparent 10rem);
}
.hero-section > * { position: relative; z-index: 2; }
.announcement {
  min-height: 4.7rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.59rem;
  padding: 1.05rem 4.7rem;
  background: #000;
}
.announcement p {
  width: 29.75rem;
  margin: 0;
  font-family: var(--display);
  font-size: 1.35rem;
  line-height: 1.25;
  letter-spacing: .04rem;
  text-shadow: 0 .06rem .06rem rgba(0,0,0,.25);
}
.announcement p strong { font-weight: 600; }
.countdown {
  display: grid;
  grid-auto-flow: column;
  align-items: start;
  gap: 1.02rem;
  min-width: 17rem;
  color: var(--bright-red);
  font-family: var(--count);
  border-bottom: 1px solid rgba(255,7,7,.8);
  padding-bottom: .25rem;
}
.countdown span { display: grid; justify-items: center; gap: .2rem; }
.countdown strong { font-size: 1.995rem; font-weight:400; line-height: 1; letter-spacing:.14rem; }
.countdown small { font-size: .75rem; line-height: 1; letter-spacing:.05rem; }
.countdown i { padding-top: .45rem; font-size: 1rem; font-style: normal; line-height: 1; }
.site-header {
  min-height: 9.65rem;
  display: grid;
  grid-template-columns: 16.43rem 1fr 16.43rem;
  align-items: center;
  gap: 2rem;
}
.site-logo { justify-self: start; display: inline-flex; }
.site-logo img { width: 16.43rem; height: 5.73rem; object-fit: contain; }
.main-nav {
  justify-self: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.35rem;
  margin: 0;
  padding: 0;
  font-family: var(--inter);
  font-size: 1.135rem;
  font-weight: 700;
  line-height: 2.93rem;
  letter-spacing: .073rem;
  text-transform: uppercase;
  white-space: nowrap;
}
.main-nav a { display: inline-flex; align-items: center; }
.header-contact {
  justify-self: end;
  font-family: var(--inter);
  font-size: 1.135rem;
  font-weight: 700;
  line-height: 2.93rem;
  letter-spacing: .073rem;
  text-transform: uppercase;
}
.mobile-menu-toggle, .mobile-nav-contact { display: none !important; }
.hero-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.12rem;
  margin-top: 1.55rem;
  text-align: center;
}
.hero-content h1 {
  width: 64.35rem;
  max-width: 100%;
  margin: 0;
  font-family: var(--display);
  font-size: 4.98rem;
  font-weight: 700;
  line-height: 1.13;
  text-transform: uppercase;
}
.hero-line { display: block; color: #fff; }
.hero-red { color: var(--red); }
.hero-content p {
  width: 32.13rem;
  max-width: 100%;
  margin: 0;
  font-size: 1.295rem;
  line-height: 1.94rem;
}
.hero-actions { display: flex; align-items: center; justify-content: center; gap: 1.82rem; }

/* ABOUT */
.about-section {
  position: relative;
  min-height: 63.82rem;
  background: #f5f5f5;
  overflow: hidden;
}
.about-section::before {
  content:"";
  position: absolute;
  top: 0;
  left: 22.5%;
  width: 31rem;
  height: 35rem;
  background: linear-gradient(135deg, rgba(0,0,0,.06), rgba(255,255,255,0) 72%);
  clip-path: polygon(0 0, 100% 0, 42% 100%, 0 100%);
  pointer-events: none;
}
.about-image-bg { display: none; }
.about-grid {
  position: relative;
  z-index: 1;
  min-height: 63.82rem;
  display: grid;
  grid-template-columns: 37.41rem 34.53rem;
  align-items: end;
  justify-content: center;
  column-gap: 16rem;
  padding-top: 22.8rem;
}
.about-visual {
  position: relative;
  width: 37.41rem;
  height: 30.29rem;
  overflow: hidden;
  background: transparent;
}
.about-visual img {
  position: absolute;
  width: 236%;
  height: 208%;
  left: -16%;
  top: -11%;
  max-width: none;
  object-fit: cover;
  object-position: left center;
}
.about-copy {
  width: 34.53rem;
  padding-bottom: 4.9rem;
}
.about-copy h2 {
  position: absolute;
  top: 3.05rem;
  left: 50%;
  transform: translateX(-50%);
  width: 46.8rem;
  margin: 0;
  font-family: var(--display);
  font-size: 4.68rem;
  font-weight: 700;
  line-height: .94;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 0;
  color: transparent;
  background-image: linear-gradient(rgba(18,37,30,.9), rgba(18,37,30,.9)), var(--wpi-heading-texture);
  background-size: cover;
  background-position: center center;
  -webkit-background-clip: text;
  background-clip: text;
}
.about-copy h2 span { display: block; }
.about-copy p {
  margin: 0 0 1.15rem;
  color: #1f1e1e;
  font-size: 1.341rem;
  line-height: 2.011rem;
}
.about-copy .red-line {
  margin: 1.65rem 0 1.5rem;
  color: var(--red);
  font-weight: 700;
  text-transform: uppercase;
}
.about-copy .btn { margin-top: 1.55rem; }
.keyword-strip {
  min-height: 4.24rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #111;
  color: #fff;
  overflow: hidden;
}
.keyword-strip p {
  margin: 0;
  font-family: var(--display);
  font-size: 2.04rem;
  line-height: 3.06rem;
  white-space: nowrap;
}

/* SERVICES */
.services-section {
  position: relative;
  min-height: 96rem;
  padding: 7.3rem 0 8.8rem;
  color: #fff;
  overflow: hidden;
  background:
    radial-gradient(circle at 52% 0, rgba(255,255,255,.22), transparent 17rem),
    linear-gradient(180deg, #fb0709 0%, #b20b10 30%, #170606 78%, rgba(255,255,255,.35) 100%);
}
.services-bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 98%, rgba(255,255,255,.7), transparent 18rem);
  pointer-events:none;
}
.services-section .section-heading { position: relative; z-index: 1; }
.services-section h2 {
  font-size: 9.1rem;
  line-height: .85;
  color: #fff;
  letter-spacing: .12rem;
}
.services-section .section-heading p { max-width: 44rem; }
.services-list {
  position: relative;
  z-index: 1;
  width: min(calc(100% - 4rem), 100.35rem);
  margin: 3.2rem auto 0;
  padding-top: 5.47rem;
}
.services-float-img {
  position: absolute;
  top: 0;
  right: 22.58rem;
  width: 18.77rem;
  height: 21.71rem;
  object-fit: cover;
}
.service-row {
  min-height: 9.1rem;
  display: grid;
  grid-template-columns: 29.88rem 24.2rem 1fr;
  align-items: center;
  gap: 0;
  padding-left: 2.24rem;
  border-bottom: 1px solid rgba(255,255,255,.45);
}
.service-row.active { background: #fff; color:#111; }
.service-row h3 {
  width: 24rem;
  margin: 0;
  font-family: var(--display);
  font-size: 1.45rem;
  font-weight: 600;
  line-height: 1.9rem;
}
.service-row p {
  margin: 0;
  width: 24.2rem;
  font-family: var(--inter);
  font-size: .95rem;
  line-height: 1.35rem;
}
.service-row a {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15.57rem;
  min-height: 4.4rem;
  margin-right: 5.3rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-family: var(--inter);
  font-size: 1.2rem;
  text-transform: lowercase;
}

/* WHY */
.why-section {
  position: relative;
  min-height: 79.6rem;
  padding-top: 4rem;
  background: var(--off);
  overflow: hidden;
}
.why-section .section-heading h2 { width: 45.25rem; }
.why-section .section-heading p { width: 45.25rem; }
.why-image {
  position: absolute;
  left: 50%;
  bottom: 4.1rem;
  width: 116.94rem;
  height: 48.53rem;
  transform: translateX(-50%);
  overflow: hidden;
}
.why-image img {
  width:100%;
  height:100%;
  object-fit: cover;
  object-position: center 62%;
}
.why-caption {
  position: absolute;
  left: 50%;
  bottom: 3.05rem;
  transform: translateX(-50%);
  width: min(calc(100% - 4rem), 100.76rem);
  margin: 0;
  padding: .7rem 1.2rem;
  background: rgba(78,78,78,.82);
  color: #fff;
  font-size: 1.16rem;
  line-height: 1.4rem;
  text-align: center;
  z-index: 2;
}
.why-cards {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 27.85rem;
  transform: translateX(-50%);
  width: min(calc(100% - 4rem), 100.76rem);
  min-height: 23.05rem;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2.8rem;
  padding: 4.55rem 4.7rem;
  background: rgba(0,0,0,.82);
  color: #fff;
}
.why-cards h3 { margin: 0 0 1.35rem; font-size: 1.82rem; line-height: 1.12; }
.why-cards p { margin: 0; font-family: var(--dm); font-size: 1.03rem; line-height: 1.72rem; }

/* PORTFOLIO */
.portfolio-section { padding: 4.2rem 0 5.3rem; background: var(--off); text-align:center; }
.portfolio-section .section-heading p { max-width: 50rem; }
.portfolio-gallery { position: relative; width: min(calc(100% - 4rem), 93rem); height: 31rem; margin: 4rem auto 0; }
.portfolio-gallery figure { position: absolute; width: 25.98rem; height: 29.51rem; margin: 0; overflow: hidden; border: .31rem solid #fff; background:#111; }
.portfolio-gallery img { width:100%; height:100%; object-fit: cover; }
.tilt-one { left:0; top:1.7rem; transform: rotate(-4.59deg); }
.tilt-two { left:21.76rem; top:2.88rem; transform: rotate(-1.46deg); }
.tilt-three { left:47.74rem; top:1rem; transform: rotate(-1.76deg); }
.tilt-four { right:0; top:0; transform: rotate(3.76deg); }
.portfolio-btn { width: 27.88rem; margin-top: 1.8rem; }

/* PROCESS */
.process-section { position: relative; min-height: 65rem; padding: 5.35rem 0 5.4rem; background:#000; color:#fff; overflow:hidden; }
.process-section::after { content:""; position:absolute; left:0; right:0; bottom:0; height:4rem; background:linear-gradient(to top, rgba(221,34,47,.75), transparent); pointer-events:none; }
.process-steps { position: relative; z-index:1; display:grid; grid-template-columns: repeat(4, 1fr); gap:2.95rem; width:min(calc(100% - 4rem), 95.76rem); margin:9.5rem auto 0; padding-top:2.9rem; border-top:1px solid rgba(255,255,255,.65); }
.process-steps article { position:relative; }
.process-steps article::before { content:""; position:absolute; top:-3.15rem; left:0; width:.7rem; height:.7rem; border-radius:50%; background:#fff; }
.process-steps strong { display:block; margin-bottom:1.1rem; font-family:var(--unbounded); font-size:3.3rem; line-height:1; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.5); }
.process-steps article:first-child strong { color:var(--red); -webkit-text-stroke:0; }
.process-steps h3 { margin:0 0 1rem; font-size:1.18rem; line-height:1.3; }
.process-steps p { margin:0; font-family:var(--dm); font-size:.92rem; line-height:1.42rem; }
.process-btn { position:relative; z-index:1; left:50%; transform:translateX(-50%); width:27.88rem; margin-top:3rem; }

/* REVIEWS */
.reviews-section { position:relative; padding:4.6rem 0 5rem; background:linear-gradient(180deg,#050505 0%,#080808 56%,#7e0d0f 100%); color:#fff; overflow:hidden; }
.reviews-section::before, .reviews-section::after { content:""; position:absolute; width:17rem; height:17rem; background:rgba(221,34,47,.35); filter:blur(.2rem); border-radius:48% 52% 44% 56%; bottom:-5rem; }
.reviews-section::before { left:-4rem; }
.reviews-section::after { right:-3rem; }
.review-slider { position:relative; z-index:1; width:min(calc(100% - 4rem), 99.76rem); margin:4rem auto 0; }
.reviews-track { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:1.7rem; }
.review-card { min-height:20rem; padding:2.8rem 2.3rem 2.2rem; background:#fff; color:#2c3135; border-radius:2.1rem; box-shadow:0 .28rem 6rem rgba(228,220,208,.32); }
.review-card h3 { margin:0 0 1.5rem; color:#171717; font-size:1.35rem; line-height:1.25; }
.review-card p { margin:0 0 1.5rem; font-size:1rem; line-height:1.65rem; }
.review-bottom { display:flex; align-items:center; gap:1rem; padding-top:1.5rem; border-top:1px solid #d2d2d2; }
.stars { display:inline-flex; padding:.65rem 1rem; border:1px solid #171717; border-radius:999px; background:#f7f5f2; color:#ffb422; font-size:.8rem; letter-spacing:.06rem; }
.review-bottom strong { display:block; font-family:var(--unbounded); font-size:.9rem; line-height:1.2; text-transform:uppercase; }
.review-bottom small { display:block; margin-top:.2rem; font-family:var(--dm); font-size:.8rem; }
.slider-arrow { position:absolute; top:50%; transform:translateY(-50%); width:4rem; height:4rem; border:0; background:transparent; color:#fff; font-size:4rem; line-height:1; cursor:pointer; }
.slider-prev { left:-4rem; } .slider-next { right:-4rem; }

/* EVENTS */
.events-section { padding:5rem 0; background:var(--off); }
.events-card { position:relative; width:min(calc(100% - 4rem), 98.24rem); min-height:34rem; margin:auto; overflow:hidden; border-radius:1.6rem; background:var(--navy); color:#fff; }
.events-copy { position:relative; z-index:1; width:47.2rem; padding:7rem 0 4rem 5.2rem; }
.events-copy h2 { width:44.35rem; margin:1.2rem 0 1.2rem; font-family:var(--display); font-size:3.77rem; line-height:1; text-transform:uppercase; }
.events-copy p { width:47.18rem; margin:0 0 1rem; font-size:1.2rem; line-height:1.8rem; }
.events-copy p strong { font-weight:900; }
.event-shape { position:absolute; pointer-events:none; }
.event-shape-one { right:2rem; bottom:-6rem; width:24rem; }
.event-shape-two { right:8rem; top:2rem; width:12rem; }
.event-shape-three { right:22rem; top:2rem; width:11rem; }

/* SHOP */
.shop-section { padding:4.5rem 0 5rem; background:var(--off); text-align:center; }
.shop-slider { display:grid; grid-template-columns:3rem repeat(3, minmax(0, 30.16rem)) 3rem; justify-content:center; align-items:center; gap:.8rem; width:min(calc(100% - 4rem), 100rem); margin:4rem auto 0; }
.shop-arrow { border:0; background:transparent; color:rgba(0,0,0,.45); font-size:4rem; cursor:pointer; }
.product-card { text-align:left; }
.product-image { position:relative; display:flex; align-items:center; justify-content:center; height:20.78rem; border-radius:2rem 2rem 0 0; background:#f6f6f8; overflow:hidden; }
.featured .product-image { border:1px solid #171717; border-radius:2rem; }
.product-image img { width:58%; height:88%; object-fit:contain; }
.product-image a { position:absolute; left:1.65rem; right:1.65rem; bottom:1.35rem; min-height:4.45rem; display:flex; align-items:center; justify-content:space-between; padding:0 1.95rem; border-radius:999px; background:#171717; color:#fff; font-size:1rem; font-weight:500; text-transform:uppercase; }
.product-image a span { display:inline-grid; place-items:center; width:2.85rem; height:2.85rem; border-radius:50%; background:#fff; color:#000; }
.product-info { padding:.75rem 1rem 0; }
.product-info h3, .product-info p { margin:0; font-size:1.2rem; line-height:1.5rem; }
.product-info strong { display:block; margin-top:.45rem; font-family:var(--display); font-size:1.1rem; }
.shop-btn { width:27.88rem; margin-top:2.6rem; }

/* FAQ */
.faq-section { padding:4.5rem 0 5rem; background:var(--off); }
.faq-panel { display:grid; grid-template-columns:37rem 1fr; align-items:center; gap:3.8rem; width:min(calc(100% - 4rem),104.24rem); margin:auto; padding:3.2rem 6.6rem; border-radius:1.5rem; background:#fff; }
.faq-art img { width:34rem; object-fit:contain; }
.faq-content h2 { width:41.59rem; margin:0 0 2.2rem; font-family:var(--display); font-size:3.69rem; line-height:1.05; text-transform:uppercase; }
.faq-content h2 span { color:var(--red); }
.faq-list { display:flex; flex-direction:column; gap:.75rem; }
.faq-item { overflow:hidden; border-radius:1.27rem; background:rgba(0,0,0,.06); }
.faq-item button { width:100%; min-height:4.82rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:1.85rem 1.5rem; border:0; background:transparent; color:#000; font-size:1.27rem; font-weight:500; text-align:left; cursor:pointer; }
.faq-item button span { position:relative; width:.84rem; height:.84rem; flex:0 0 auto; }
.faq-item button span::before, .faq-item button span::after { content:""; position:absolute; top:50%; left:0; width:100%; height:2px; background:#000; transform:translateY(-50%); }
.faq-item button span::after { transform:translateY(-50%) rotate(90deg); }
.faq-item.is-open button span::after { display:none; }
.faq-item p { display:none; margin:0; padding:0 1.5rem 1.5rem; font-size:1.1rem; line-height:1.6rem; }
.faq-item.is-open p { display:block; }

/* FOOTER */
.footer-section { position:relative; padding:3.8rem 0 2.5rem; background:#000; color:#fff; overflow:hidden; }
.footer-section::after { content:""; position:absolute; left:0; right:0; bottom:0; height:7rem; background:radial-gradient(circle at center top, rgba(221,34,47,.5), transparent 70%); pointer-events:none; }
.footer-inner { position:relative; z-index:1; }
.footer-top { display:grid; grid-template-columns:38.82rem 35.24rem; justify-content:space-between; gap:5rem; }
.footer-top span { display:block; margin-bottom:1rem; font-family:var(--inter); font-size:.9rem; text-transform:uppercase; }
.footer-top h2 { width:38.47rem; margin:0; font-family:var(--display); font-size:3.5rem; line-height:.96; text-transform:uppercase; }
.footer-copy p { margin:0 0 1rem; font-family:var(--inter); font-size:1.15rem; line-height:1.7rem; }
.contact-pill { display:flex; align-items:stretch; gap:.5rem; width:max-content; margin-top:1.4rem; padding:.55rem; background:rgba(255,255,255,.16); border-radius:.3rem; }
.contact-pill > div { padding:.75rem .8rem; background:rgba(255,255,255,.1); }
.contact-pill p { display:flex; justify-content:space-between; gap:2rem; width:19rem; margin:0; font-size:.75rem; line-height:1.35rem; }
.contact-pill strong { text-transform:uppercase; }
.footer-divider { height:1px; margin-top:4rem; background:rgba(255,255,255,.18); }
.footer-logo { width:24.1rem; height:8.41rem; object-fit:contain; margin:3rem auto 2rem; }
.footer-nav { display:flex; justify-content:center; flex-wrap:wrap; gap:1rem 2rem; font-family:var(--inter); font-size:.9rem; font-weight:700; text-transform:uppercase; letter-spacing:.05rem; }
.socials { display:flex; justify-content:center; gap:1rem; margin-top:2rem; font-size:1rem; text-transform:uppercase; }
.copyright { margin:1.8rem 0 0; text-align:center; font-size:.9rem; }

/* TABLET: keep desktop structure but scale down */
@media (min-width: 768px) and (max-width: 1199px) {
  :root { --page-pad: 3rem; }
  .site-header { grid-template-columns: 13.5rem 1fr 13.5rem; gap: 1rem; }
  .site-logo img { width:13.5rem; height:auto; }
  .main-nav { gap: 1rem; font-size:.82rem; letter-spacing:.045rem; }
  .header-contact { font-size:.82rem; letter-spacing:.045rem; }
  .hero-content h1 { font-size:4.2rem; width:58rem; }
  .about-grid { grid-template-columns:32rem 31rem; gap:6rem; }
  .about-visual { width:32rem; }
  .about-copy h2 { width:46rem; font-size:4.1rem; }
  .services-section h2 { font-size:7.4rem; }
  .service-row { grid-template-columns:23rem 23rem 1fr; }
  .service-row a { margin-right:1.5rem; }
  .services-float-img { right:15rem; width:15rem; height:18rem; }
  .why-cards { gap:1rem; padding-inline:2rem; }
  .portfolio-gallery figure { width:22rem; height:26rem; }
  .tilt-two { left:18rem; } .tilt-three { left:38rem; }
  .process-steps { gap:1.2rem; }
  .events-copy { padding-left:3rem; }
  .faq-panel { grid-template-columns:30rem 1fr; padding-inline:3rem; }
  .faq-art img { width:28rem; }
  .footer-top { grid-template-columns:1fr 34rem; }
}

/* MOBILE */
@media (max-width: 767px) {
  :root { --page-pad: 4rem; }
  body { overflow-x:hidden; }
  .container-wide, .container-narrow { width: calc(100% - var(--page-pad)); }
  .btn { width:100%; min-height:4.6rem; padding:1.3rem 1.8rem; font-size:1rem; }
  .eyebrow { min-height:2.4rem; padding:.65rem 1.3rem; font-size:.92rem; }
  .section-heading { width:calc(100% - var(--page-pad)); margin-inline:auto; gap:1.25rem; }
  .section-heading h2, .faq-content h2, .about-copy h2, .events-copy h2, .footer-top h2 { width:100% !important; max-width:100%; font-size:clamp(3.1rem, 10.5vw, 4.5rem) !important; line-height:.98 !important; }
  .section-heading p, .hero-content p, .about-copy p, .events-copy p { width:100% !important; max-width:100%; font-size:1.3rem; line-height:1.9rem; }

  .announcement { min-height:0; flex-direction:column; gap:.75rem; padding:1rem 2rem; }
  .announcement p { width:100%; font-size:1.08rem; text-align:center; }
  .countdown { min-width:0; width:100%; justify-content:center; gap:.55rem; }
  .countdown strong { font-size:1.45rem; }
  .countdown small, .countdown i { font-size:.7rem; }
  .hero-section { min-height:auto; padding-bottom:4.6rem; background-position:center top; }
  .site-header { min-height:7.2rem; grid-template-columns:1fr auto; gap:1rem; }
  .site-logo img { width:8.4rem; height:auto; }
  .header-contact { display:none; }
  .mobile-menu-toggle { display:inline-flex !important; align-items:center; justify-content:center; width:4.4rem; height:4.4rem; border:1px solid rgba(255,255,255,.75); border-radius:50%; background:rgba(0,0,0,.35); color:#fff; cursor:pointer; }
  .mobile-menu-toggle span { position:relative; display:block; width:1.8rem; height:2px; background:currentColor; }
  .mobile-menu-toggle span::before, .mobile-menu-toggle span::after { content:""; position:absolute; left:0; width:1.8rem; height:2px; background:currentColor; transition:.2s ease; }
  .mobile-menu-toggle span::before { top:-.6rem; }
  .mobile-menu-toggle span::after { top:.6rem; }
  body.menu-open .mobile-menu-toggle span { background:transparent; }
  body.menu-open .mobile-menu-toggle span::before { top:0; transform:rotate(45deg); }
  body.menu-open .mobile-menu-toggle span::after { top:0; transform:rotate(-45deg); }
  .main-nav { position:absolute; top:calc(100% - .4rem); left:0; right:0; z-index:30; display:none; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:0; padding:1rem; border:1px solid rgba(255,255,255,.16); border-radius:1.5rem; background:rgba(0,0,0,.95); box-shadow:0 1.5rem 3rem rgba(0,0,0,.35); }
  body.menu-open .main-nav { display:flex; }
  .main-nav a { width:100%; padding:1.15rem 1rem; border-bottom:1px solid rgba(255,255,255,.12); font-size:1.12rem; line-height:1.2; text-align:left; }
  .main-nav a:last-child { border-bottom:0; }
  .main-nav .mobile-nav-contact { display:flex !important; justify-content:center; margin-top:.8rem; border:1px solid rgba(255,255,255,.75) !important; border-radius:999px; text-align:center; }
  .hero-content { width:calc(100% - var(--page-pad)); gap:1.45rem; margin-top:3.2rem; }
  .hero-content h1 { width:100%; font-size:clamp(3.3rem, 10vw, 4.5rem); line-height:1.02; }
  .hero-actions { width:100%; flex-direction:column; gap:1rem; }

  .about-section { min-height:0; padding:0 0 4.8rem; }
  .about-section::before { left:35%; width:24rem; height:18rem; }
  .about-grid { display:block; min-height:0; padding-top:15.8rem; }
  .about-copy h2 { top:3.1rem; left:2rem; right:2rem; transform:none; text-align:center; background-position:center; font-size:clamp(3rem, 10.3vw, 4.3rem) !important; }
  .about-visual { width:100%; height:24rem; margin-bottom:2rem; }
  .about-copy { width:100%; padding-bottom:0; }
  .about-copy .red-line { font-size:1.05rem; line-height:1.55rem; }
  .keyword-strip { min-height:3rem; justify-content:flex-start; padding-inline:2rem; }
  .keyword-strip p { font-size:1rem; animation:ticker 18s linear infinite; }
  @keyframes ticker { from{transform:translateX(0)} to{transform:translateX(-55%)} }

  .services-section { min-height:0; padding:4.8rem 0 5.5rem; }
  .services-section h2 { font-size:clamp(4.4rem, 15vw, 6.2rem); }
  .services-section .section-heading p { font-size:1.05rem; line-height:1.55rem; }
  .services-list { width:calc(100% - var(--page-pad)); margin-top:2.4rem; padding-top:15rem; }
  .services-float-img { top:0; left:0; right:auto; width:100%; height:13rem; border-radius:1.3rem; }
  .service-row { grid-template-columns:1fr; min-height:0; gap:.9rem; padding:1.45rem; }
  .service-row h3, .service-row p { width:100%; }
  .service-row h3 { font-size:1.35rem; line-height:1.65rem; }
  .service-row p { font-size:1rem; line-height:1.5rem; }
  .service-row a { justify-self:stretch; width:100%; min-height:4.2rem; margin:0; font-size:1.05rem; }

  .why-section { min-height:0; padding:4.5rem 0 4rem; }
  .why-image { position:relative; left:auto; bottom:auto; width:calc(100% - var(--page-pad)); height:25rem; margin:2.4rem auto 0; transform:none; }
  .why-caption { position:relative; left:auto; bottom:auto; transform:none; width:calc(100% - var(--page-pad)); margin:-1.2rem auto 0; font-size:.95rem; line-height:1.3rem; padding:.7rem 1rem; }
  .why-cards { position:relative; top:auto; left:auto; transform:none; width:calc(100% - var(--page-pad)); grid-template-columns:1fr; min-height:0; gap:1rem; margin:1rem auto 0; padding:1.3rem; border-radius:1.4rem; }
  .why-cards article { padding:1rem; border:1px solid rgba(255,255,255,.12); }
  .why-cards h3 { margin-bottom:.6rem; font-size:1.3rem; }
  .why-cards p { font-size:1rem; line-height:1.45rem; }

  .portfolio-section { padding:4.6rem 0; }
  .portfolio-gallery { width:calc(100% - var(--page-pad)); height:auto; display:grid; grid-template-columns:1fr; gap:1.2rem; margin-top:2.4rem; }
  .portfolio-gallery figure { position:relative; left:auto !important; right:auto !important; top:auto !important; width:100%; height:23rem; }
  .tilt-one { transform:rotate(-2.5deg); } .tilt-two { transform:rotate(1.5deg); } .tilt-three { transform:rotate(-1deg); } .tilt-four { transform:rotate(2deg); }
  .portfolio-btn, .process-btn, .shop-btn { width:calc(100% - var(--page-pad)); min-height:4.6rem; }

  .process-section { min-height:0; padding:4.8rem 0 5.5rem; }
  .process-steps { width:calc(100% - var(--page-pad)); grid-template-columns:1fr; gap:1rem; margin-top:2.4rem; padding-top:0; border-top:0; }
  .process-steps article { padding:1.3rem; border:1px solid rgba(255,255,255,.14); border-radius:1.3rem; }
  .process-steps article::before { display:none; }
  .process-steps strong { font-size:2.7rem; }
  .process-steps h3 { font-size:1.2rem; }
  .process-steps p { font-size:1rem; line-height:1.45rem; }

  .reviews-section { padding:4.8rem 0; }
  .review-slider { width:calc(100% - var(--page-pad)); margin-top:2.4rem; }
  .reviews-track { grid-template-columns:1fr; gap:1rem; }
  .review-card { min-height:0; padding:1.55rem; border-radius:1.4rem; }
  .review-card h3 { font-size:1.25rem; }
  .review-card p { font-size:1rem; line-height:1.5rem; }
  .review-bottom { flex-direction:column; align-items:flex-start; gap:.8rem; }
  .slider-arrow { display:none; }

  .events-section { padding:4.6rem 0; }
  .events-card { width:calc(100% - var(--page-pad)); min-height:24rem; border-radius:1.2rem; }
  .events-copy { width:100%; padding:2rem 1.6rem 12rem; }
  .events-copy h2 { width:100%; }
  .events-copy .btn { width:100%; min-height:4.4rem; }
  .event-shape-one { width:13rem; right:-1rem; bottom:-1rem; }
  .event-shape-two { width:4rem; right:1.2rem; top:1rem; }
  .event-shape-three { width:7rem; right:7rem; top:.7rem; }

  .shop-section { padding:4.6rem 0; }
  .shop-slider { width:calc(100% - var(--page-pad)); grid-template-columns:1fr; gap:1.4rem; margin-top:2.4rem; }
  .shop-arrow { display:none; }
  .product-image { height:21rem; }
  .product-info h3, .product-info p, .product-info strong { font-size:1.05rem; line-height:1.5rem; }

  .faq-section { padding:4.6rem 0; }
  .faq-panel { width:calc(100% - var(--page-pad)); grid-template-columns:1fr; gap:1.4rem; padding:1.6rem; border-radius:1.2rem; }
  .faq-art { display:flex; justify-content:center; }
  .faq-art img { width:11rem; }
  .faq-item button { min-height:4.6rem; padding:1.15rem 1rem; font-size:1.05rem; line-height:1.45rem; }
  .faq-item p { font-size:.95rem; line-height:1.45rem; }

  .footer-section { padding:4rem 0 2.4rem; }
  .footer-top { grid-template-columns:1fr; gap:2rem; }
  .footer-top h2 { width:100%; }
  .footer-copy p { font-size:1rem; line-height:1.55rem; }
  .contact-pill { width:100%; flex-direction:column; gap:.8rem; }
  .contact-pill > div { width:100%; }
  .contact-pill p { width:100%; font-size:.9rem; flex-wrap:wrap; }
  .contact-pill .btn { width:100%; }
  .footer-logo { width:8.5rem; height:auto; margin:2rem auto; }
  .footer-nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; font-size:.82rem; text-align:center; }
  .footer-nav a { padding:.9rem .7rem; border:1px solid rgba(255,255,255,.14); border-radius:999px; }
  .socials { flex-wrap:wrap; font-size:.95rem; }
}

@media (max-width: 390px) {
  :root { --page-pad: 3.2rem; }
  .footer-nav { grid-template-columns:1fr; }
}

/* ========================================================================== 
   v1.0.233 — 1024px navigation and scroll-driven process progress
   ========================================================================== */
@media (max-width: 1024px) {
  html body .site-header.wpi-global-header,
  html body .site-header.wpi-global-header.container-wide {
    position: sticky !important;
    top: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(8.5rem, 1fr) auto !important;
    align-items: center !important;
    width: min(calc(100% - 2rem), var(--container)) !important;
    min-height: 6.5rem !important;
    gap: 1rem !important;
    overflow: visible !important;
    z-index: 2147482500 !important;
  }

  html body .site-header.wpi-global-header .main-nav,
  html body .site-header.wpi-global-header > .main-nav,
  html body > .wpi-mobile-menu-portal {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  html body .site-header.wpi-global-header .wpi-header-actions {
    grid-column: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: .55rem !important;
    min-width: 0 !important;
  }

  html body .site-header.wpi-global-header .mobile-menu-toggle,
  html body .site-header.wpi-global-header .wpi-header-actions .mobile-menu-toggle {
    position: relative !important;
    inset: auto !important;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    margin: 0 !important;
  }

  html body .site-header.wpi-global-header .wpi-mobile-drawer-nav {
    position: fixed !important;
    top: var(--wpi-mobile-menu-top, 7.5rem) !important;
    bottom: auto !important;
    transform: none !important;
  }
}

/* The line fills from left to right as the section is scrolled. */
@media (min-width: 768px) {
  .process-section .process-steps {
    --wpi-process-progress: 0;
    border-top-color: rgba(255,255,255,.24) !important;
  }

  .process-section .process-steps::before {
    content: "";
    position: absolute;
    z-index: 1;
    top: -1px;
    left: 0;
    width: 100%;
    height: 2px;
    background: var(--red);
    width: var(--wpi-process-progress-percent, 0%);
    transform: none;
    will-change: width;
  }
}

.process-section .process-steps article::before {
  z-index: 2;
  border: 2px solid rgba(255,255,255,.82);
  background: #000;
  transition: background-color .25s ease, border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.process-section .process-steps article strong {
  transition: color .3s ease, -webkit-text-stroke-color .3s ease, transform .3s ease;
}

.process-section .process-steps article.is-process-active::before {
  border-color: var(--red);
  background: var(--red);
  box-shadow: 0 0 0 .38rem rgba(221,34,47,.18);
  transform: scale(1.08);
}

.process-section .process-steps article.is-process-active strong {
  color: var(--red);
  -webkit-text-stroke-color: transparent;
  transform: translateY(-.12rem);
}

.process-section .process-gift {
  transition: opacity .25s ease !important;
}

.process-section .process-gift.is-gift-waiting {
  opacity: 0 !important;
}

.process-section .process-gift.is-gift-playing {
  opacity: 1 !important;
}

@media (prefers-reduced-motion: reduce) {
  .process-section .process-steps::before,
  .process-section .process-steps article::before,
  .process-section .process-steps article strong {
    transition: none !important;
  }
}



/* =========================================================
   FULL FINAL QA — Figma aligned cleanup
   This block is intentionally the only override after base.css.
   ========================================================= */
:root { --off: #fff; --hover-ease: 220ms ease; }
html { scroll-behavior: smooth; }
body { background:#fff !important; }

/* General hover polish */
a, button, .service-row, .review-card, .product-card, .faq-item, .portfolio-gallery figure {
  transition: transform var(--hover-ease), box-shadow var(--hover-ease), background-color var(--hover-ease), color var(--hover-ease), border-color var(--hover-ease), opacity var(--hover-ease);
}
.btn:hover { transform: translateY(-2px); box-shadow: 0 .85rem 1.8rem rgba(0,0,0,.18); }
.main-nav a:hover, .header-contact:hover, .footer-nav a:hover { color:#fff; opacity:.84; }
.service-row:hover { background: rgba(255,255,255,.045); }
.service-row:hover a { background:#fff; color:#111; }
.review-card:hover, .faq-item:hover, .product-card:hover { transform: translateY(-3px); box-shadow: 0 1rem 2.2rem rgba(0,0,0,.13); }
.portfolio-gallery figure:hover { transform: translateY(-4px) rotate(0deg) !important; }

/* HERO: smoother bottom blend */
.hero-section {
  background:
    linear-gradient(to bottom, rgba(71,72,74,.93) 0%, rgba(30,31,31,.48) 36%, rgba(0,0,0,.25) 72%, rgba(22,0,0,.42) 100%),
    var(--wpi-hero-image) center center/cover no-repeat !important;
}
.hero-section::after {
  background:
    radial-gradient(circle at 67% 21%, rgba(190,255,139,.22), transparent 11rem),
    linear-gradient(to top, rgba(221,34,47,.22), rgba(0,0,0,0) 16rem) !important;
}
.hero-content h1 { max-width: 64.5rem; }

/* BUILT SECTION: exact Figma-style layout */
.about-section,
section.about-section {
  position: relative !important;
  height: 58.95rem !important;
  min-height: 58.95rem !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  overflow: hidden !important;
}
.about-image-bg,
.about-section::after { display:none !important; content:none !important; }
.about-section::before {
  content:"" !important;
  display:block !important;
  position:absolute !important;
  z-index:0 !important;
  top:0 !important;
  left:21.1% !important;
  width:29.5rem !important;
  height:32.7rem !important;
  background: linear-gradient(132deg, rgba(0,0,0,.045) 0%, rgba(0,0,0,.025) 36%, rgba(255,255,255,0) 70%) !important;
  clip-path: polygon(0 0, 100% 0, 43% 100%, 0 100%) !important;
  pointer-events:none !important;
}
.about-title,
section.about-section .about-title {
  position:absolute !important;
  z-index:3 !important;
  top:5.9rem !important;
  left:calc(50% + 7.95rem) !important;
  transform:translateX(-50%) !important;
  display:block !important;
  width:45.8rem !important;
  max-width:45.8rem !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
  white-space:normal !important;
  font-family:var(--display) !important;
  font-size:4.24rem !important;
  font-weight:700 !important;
  line-height:.98 !important;
  letter-spacing:.015rem !important;
  text-align:left !important;
  text-transform:uppercase !important;
  color:transparent !important;
  background-image:linear-gradient(rgba(14,28,23,.72), rgba(14,28,23,.72)), var(--wpi-heading-texture) !important;
  background-size:62rem auto !important;
  background-position:center 8% !important;
  background-repeat:no-repeat !important;
  -webkit-background-clip:text !important;
  background-clip:text !important;
  -webkit-text-fill-color:transparent !important;
  opacity:1 !important;
  pointer-events:none !important;
}
.about-title span { display:block !important; }
.about-grid.container-wide,
.about-grid {
  position:relative !important;
  z-index:2 !important;
  display:block !important;
  width:100% !important;
  max-width:none !important;
  height:58.95rem !important;
  min-height:58.95rem !important;
  margin:0 !important;
  padding:0 !important;
}
.about-visual {
  position:absolute !important;
  z-index:2 !important;
  left:calc(50% - 51.15rem) !important;
  top:31.0rem !important;
  width:36.7rem !important;
  height:29.9rem !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  background:transparent !important;
}
.about-visual img {
  position:absolute !important;
  display:block !important;
  width:272.66% !important;
  height:224.48% !important;
  left:-49.07% !important;
  top:-9.95% !important;
  max-width:none !important;
  object-fit:fill !important;
  transform:none !important;
}
.about-copy {
  position:absolute !important;
  z-index:3 !important;
  left:calc(50% + .45rem) !important;
  top:23.3rem !important;
  width:34.9rem !important;
  max-width:34.9rem !important;
  margin:0 !important;
  padding:0 !important;
}
.about-copy p {
  width:100% !important;
  margin:0 0 1.12rem !important;
  color:#1f1e1e !important;
  font-family:var(--body) !important;
  font-size:1.23rem !important;
  font-weight:400 !important;
  line-height:1.55 !important;
}
.about-copy .red-line {
  margin:1.25rem 0 1.25rem !important;
  color:#dd222f !important;
  font-size:1.18rem !important;
  font-weight:700 !important;
  line-height:1.35 !important;
  text-transform:uppercase !important;
}
.about-copy .btn,
.about-copy .btn.btn-outline-dark {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:18.2rem !important;
  min-width:18.2rem !important;
  max-width:18.2rem !important;
  height:3.35rem !important;
  min-height:3.35rem !important;
  margin:1.05rem 0 0 !important;
  padding:0 1.55rem !important;
  border:.075rem solid #000 !important;
  border-radius:4.45rem !important;
  background:transparent !important;
  color:#000 !important;
  font-family:var(--inter) !important;
  font-size:1.08rem !important;
  font-weight:400 !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  text-transform:lowercase !important;
  box-shadow:none !important;
}
.about-copy .btn:hover { background:#000 !important; color:#fff !important; }

/* Ticker */
.keyword-strip { min-height:3.15rem !important; background:#111 !important; overflow:hidden !important; justify-content:flex-start !important; }
.keyword-strip p {
  display:inline-flex !important;
  align-items:center !important;
  gap:1.5rem !important;
  padding-inline:2rem !important;
  font-size:1.08rem !important;
  line-height:1 !important;
  animation: finalTicker 18s linear infinite !important;
  will-change:transform !important;
}
.keyword-strip p::after { content:" Firework shows • Fireworks display services • Fireworks for weddings • Gender reveal fireworks • City fireworks displays • Custom fireworks shows • Fourth of July shows"; }
@keyframes finalTicker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.keyword-strip:hover p { animation-play-state:paused !important; }

/* Why/No Pyro section */
.why-section { background:#fff !important; min-height:78rem !important; padding-top:4.0rem !important; }
.why-section .section-heading h2 { max-width:48rem !important; }
.why-image {
  position:absolute !important;
  left:50% !important;
  bottom:4.3rem !important;
  width:100vw !important;
  max-width:121rem !important;
  height:42rem !important;
  transform:translateX(-50%) !important;
  overflow:hidden !important;
  background:transparent !important;
}
.why-image img { width:100% !important; height:100% !important; object-fit:cover !important; object-position:center 60% !important; background:transparent !important; }
.why-cards {
  z-index:3 !important;
  top:27.0rem !important;
  width:min(calc(100% - 4rem), 100rem) !important;
  min-height:22.5rem !important;
  background:rgba(42,42,42,.88) !important;
}
.why-caption { z-index:3 !important; bottom:3.4rem !important; width:min(calc(100% - 4rem), 100rem) !important; }

/* Process */
.process-section { min-height:61rem !important; padding-top:5rem !important; }
.process-gift {
  position:absolute !important;
  z-index:2 !important;
  top:11.3rem !important;
  right:max(4rem, calc((100vw - 100rem)/2 + 1rem)) !important;
  width:8.6rem !important;
  max-width:8.6rem !important;
  height:auto !important;
  pointer-events:none !important;
}
.process-steps { margin-top:7.8rem !important; }

/* Events card Figma-style background */
.events-section { background:#fff !important; }
.events-card {
  width:min(calc(100% - 4rem), 98.25rem) !important;
  min-height:38.75rem !important;
  border:0 !important;
  border-radius:1.6rem !important;
  background:#031332 !important;
  overflow:hidden !important;
}
.events-card::before { content:""; position:absolute; inset:0; border:.88rem solid #fff; border-radius:2.1rem; pointer-events:none; z-index:5; }
.event-shape { position:absolute !important; display:block !important; height:auto !important; object-fit:contain !important; pointer-events:none !important; }
.event-shape-one { right:8.6rem !important; bottom:-12.3rem !important; width:31rem !important; transform:rotate(0deg) !important; }
.event-shape-two { right:10.6rem !important; top:1.15rem !important; width:14.85rem !important; }
.event-shape-three { right:31.1rem !important; top:17rem !important; width:8.8rem !important; }
.event-shape-four { right:1.4rem !important; top:14.4rem !important; width:10.5rem !important; }
.event-shape-five { right:31.2rem !important; top:4.8rem !important; width:13.2rem !important; }
.event-shape-six { left:52.7rem !important; bottom:-2.6rem !important; width:29rem !important; transform:scaleY(-1) rotate(157deg) !important; }
.event-shape-seven { right:1.0rem !important; bottom:-.8rem !important; width:7.75rem !important; }
.events-copy { position:relative !important; z-index:6 !important; padding:11.8rem 0 0 5.2rem !important; width:44.5rem !important; }
.events-copy h2 { font-size:3.78rem !important; line-height:1.02 !important; letter-spacing:.07rem !important; }
.events-copy p { font-size:1.28rem !important; line-height:1.9rem !important; }
.events-copy .btn { margin-top:1.35rem !important; }

/* Merch hover: hidden until hover, featured visible */
.product-image { position:relative !important; overflow:hidden !important; }
.product-image img { transition:transform var(--hover-ease) !important; }
.product-card:hover .product-image img { transform:scale(1.04) !important; }
.product-image a { opacity:0 !important; transform:translateY(.5rem) !important; pointer-events:none !important; }
.product-card:hover .product-image a,
.product-card:focus-within .product-image a,
.product-card.featured .product-image a { opacity:1 !important; transform:translateY(0) !important; pointer-events:auto !important; }

/* FAQ + Footer */
.faq-section, .shop-section, .portfolio-section { background:#fff !important; }
.footer-section {
  background:radial-gradient(ellipse at 50% 100%, rgba(221,34,47,.24), rgba(0,0,0,0) 35rem), #000 !important;
}
.footer-section::after { height:12rem !important; background:linear-gradient(to top, rgba(221,34,47,.25), rgba(0,0,0,0)) !important; }

/* Tablet */
@media (min-width:768px) and (max-width:1199px) {
  .about-section, section.about-section { height:62rem !important; min-height:62rem !important; }
  .about-title { left:50% !important; top:4.5rem !important; width:min(calc(100% - 4rem), 44rem) !important; max-width:44rem !important; font-size:clamp(3.3rem, 5vw, 4.1rem) !important; text-align:center !important; }
  .about-copy { left:52% !important; top:23rem !important; width:31.5rem !important; max-width:31.5rem !important; }
  .about-copy p { font-size:1.08rem !important; line-height:1.6 !important; }
  .about-copy .red-line { font-size:1rem !important; }
  .about-visual { left:-3rem !important; top:32.4rem !important; width:35rem !important; height:29rem !important; }
}

/* Mobile QA */
@media (max-width:767px) {
  
  :root { --page-pad:3.4rem; }
  .container-wide, .container-narrow { width:calc(100% - var(--page-pad)) !important; }
  .section-heading h2, .faq-content h2, .events-copy h2, .footer-top h2 { font-size:clamp(2.55rem, 8.5vw, 3.55rem) !important; line-height:1 !important; }
  .section-heading p, .hero-content p, .events-copy p, .footer-copy p { font-size:1.05rem !important; line-height:1.55rem !important; }
  .btn { min-height:3.65rem !important; padding:1rem 1.25rem !important; font-size:.86rem !important; }
  .eyebrow { min-height:2.15rem !important; padding:.55rem 1.15rem !important; font-size:.78rem !important; }

  .announcement { padding:.75rem 1rem !important; gap:.45rem !important; }
  .announcement p { font-size:.86rem !important; }
  .countdown strong { font-size:1.05rem !important; }
  .countdown small, .countdown i { font-size:.55rem !important; }
  .site-header { min-height:5.7rem !important; }
  .site-logo img { width:6.8rem !important; }
  .mobile-menu-toggle { width:3.25rem !important; height:3.25rem !important; }
  .mobile-menu-toggle span, .mobile-menu-toggle span::before, .mobile-menu-toggle span::after { width:1.35rem !important; }
  .main-nav { padding:.6rem !important; border-radius:1rem !important; }
  .main-nav a { padding:.8rem .9rem !important; font-size:.9rem !important; line-height:1.2 !important; }
  .hero-section { min-height:auto !important; padding-bottom:3.3rem !important; }
  .hero-content { margin-top:1.7rem !important; gap:1rem !important; }
  .hero-content h1 { font-size:clamp(2.65rem, 8.6vw, 3.55rem) !important; line-height:1 !important; }
  .hero-actions { gap:.75rem !important; }

  .about-section, section.about-section { height:auto !important; min-height:0 !important; padding:3.4rem 0 3.2rem !important; background:#fff !important; overflow:hidden !important; }
  .about-section::before { top:0 !important; left:50% !important; transform:translateX(-50%) !important; width:13rem !important; height:10rem !important; opacity:.65 !important; }
  .about-title, section.about-section .about-title {
    position:relative !important;
    top:auto !important;
    left:auto !important;
    transform:none !important;
    width:calc(100% - var(--page-pad)) !important;
    max-width:none !important;
    margin:0 auto 1.55rem !important;
    font-size:clamp(2.35rem, 8.2vw, 3.05rem) !important;
    line-height:.98 !important;
    text-align:center !important;
    background-size:cover !important;
    background-position:center 8% !important;
  }
  .about-grid, .about-grid.container-wide { display:flex !important; flex-direction:column !important; height:auto !important; min-height:0 !important; width:calc(100% - var(--page-pad)) !important; margin:0 auto !important; padding:0 !important; }
  .about-visual { order:1 !important; position:relative !important; left:auto !important; top:auto !important; width:100% !important; height:15.4rem !important; margin:0 0 1.55rem !important; }
  .about-visual img { width:222% !important; height:205% !important; left:-22% !important; top:-12% !important; }
  .about-copy { order:2 !important; position:relative !important; left:auto !important; top:auto !important; width:100% !important; max-width:none !important; }
  .about-copy p { font-size:1.05rem !important; line-height:1.56rem !important; margin-bottom:.82rem !important; }
  .about-copy .red-line { font-size:.92rem !important; line-height:1.25rem !important; margin:.95rem 0 .82rem !important; }
  .about-copy .btn { width:100% !important; min-width:0 !important; max-width:100% !important; height:3.45rem !important; min-height:3.45rem !important; font-size:.92rem !important; }

  .keyword-strip { min-height:2.35rem !important; }
  .keyword-strip p { font-size:.78rem !important; animation-duration:12s !important; }
  .services-section { padding:3.5rem 0 4.2rem !important; }
  .services-section h2 { font-size:clamp(3.65rem, 13vw, 5rem) !important; }
  .services-list { padding-top:11.5rem !important; }
  .services-float-img { height:10.3rem !important; }
  .service-row { padding:1.1rem !important; }
  .service-row h3 { font-size:1.08rem !important; line-height:1.3rem !important; }
  .service-row p { font-size:.88rem !important; line-height:1.32rem !important; }
  .service-row a { min-height:3.4rem !important; font-size:.84rem !important; }

  .why-section { min-height:0 !important; padding:3.6rem 0 3.2rem !important; }
  .why-image { position:relative !important; left:auto !important; bottom:auto !important; width:100% !important; max-width:none !important; height:17rem !important; margin:1.6rem 0 0 !important; transform:none !important; }
  .why-cards { position:relative !important; top:auto !important; left:auto !important; transform:none !important; width:calc(100% - var(--page-pad)) !important; grid-template-columns:1fr !important; min-height:0 !important; margin:.9rem auto 0 !important; padding:1rem !important; gap:.85rem !important; }
  .why-caption { position:relative !important; left:auto !important; bottom:auto !important; transform:none !important; width:calc(100% - var(--page-pad)) !important; margin:-.6rem auto 0 !important; font-size:.78rem !important; line-height:1.15rem !important; }
  .why-cards h3, .process-steps h3, .review-card h3 { font-size:1.05rem !important; line-height:1.25rem !important; }
  .why-cards p, .process-steps p, .review-card p, .product-info h3, .product-info p, .product-info strong, .faq-item button { font-size:.86rem !important; line-height:1.3rem !important; }

  .process-section { min-height:0 !important; padding:3.8rem 0 4.2rem !important; }
  .process-gift { width:4.3rem !important; max-width:4.3rem !important; top:7.4rem !important; right:1.25rem !important; }
  .process-steps { margin-top:2rem !important; }

  .events-card { width:calc(100% - var(--page-pad)) !important; min-height:22rem !important; border-radius:1.1rem !important; }
  .events-card::before { border:.45rem solid #fff !important; border-radius:1.35rem !important; }
  .events-copy { width:100% !important; padding:1.8rem 1.3rem 9.3rem !important; }
  .events-copy h2 { font-size:clamp(2.35rem, 8.2vw, 3.15rem) !important; }
  .events-copy p { font-size:.96rem !important; line-height:1.42rem !important; }
  .event-shape-one { width:12rem !important; right:-.9rem !important; bottom:-1rem !important; }
  .event-shape-two { width:3.8rem !important; right:1rem !important; top:.8rem !important; }
  .event-shape-three { width:4.6rem !important; right:4.8rem !important; top:.8rem !important; }
  .event-shape-four { width:4.8rem !important; right:.5rem !important; top:7rem !important; }
  .event-shape-five { width:4.8rem !important; right:7rem !important; top:1.3rem !important; }
  .event-shape-six { width:9rem !important; left:auto !important; right:6rem !important; bottom:-1.8rem !important; }
  .event-shape-seven { width:5rem !important; right:.2rem !important; bottom:-.4rem !important; }

  .product-image a { opacity:1 !important; transform:none !important; pointer-events:auto !important; left:1rem !important; right:1rem !important; bottom:1rem !important; min-height:3.25rem !important; font-size:.78rem !important; padding:0 .95rem !important; }
  .footer-section { padding:3.5rem 0 2.2rem !important; }
}


/* FINAL STABLE SYSTEM RULES - visual layout preserved */
:root {
  --page-pad: 10rem !important;
}

.container-wide,
.container-narrow {
  width: min(calc(100% - var(--page-pad)), var(--container)) !important;
}

/* 1) ticker closer to figma */
.keyword-strip {
  min-height: 3.7rem !important;
}
.keyword-strip p {
  font-size: 1.24rem !important;
  line-height: 1 !important;
  gap: 1.7rem !important;
  animation-duration: 16s !important;
}

/* 2) safety-first caption text larger */
.why-caption {
  font-size: 1.28rem !important;
  line-height: 1.55rem !important;
  padding: .85rem 1.35rem !important;
}

/* 3) From Idea to Ignition equal top and bottom padding */
.process-section {
  padding-top: 5rem !important;
  padding-bottom: 5rem !important;
}

/* 4) Countdown card bottom padding + less stretched artwork */
.events-card {
  width: min(calc(100% - var(--page-pad)), 98.25rem) !important;
  min-height: 39rem !important;
}
.events-copy {
  padding: 11.8rem 0 5.4rem 5.2rem !important;
}
.event-shape {
  object-fit: contain !important;
}
.event-shape-one { width: 27rem !important; right: 7.4rem !important; bottom: -10.3rem !important; }
.event-shape-six { width: 23rem !important; left: 56.2rem !important; bottom: -1.6rem !important; transform: scaleY(-1) rotate(156deg) !important; }
.event-shape-seven { width: 6.5rem !important; right: .9rem !important; bottom: -.3rem !important; }

/* 5) merch hover only on hover, no default middle button, no hover box shadow */
.product-card:hover {
  box-shadow: none !important;
  transform: none !important;
}
.product-card.featured .product-image a {
  opacity: 0 !important;
  transform: translateY(.5rem) !important;
  pointer-events: none !important;
}
.product-card.featured:hover .product-image a,
.product-card.featured:focus-within .product-image a {
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

/* 6) faq outer grey, inner white like figma */
.faq-section {
  background: #efefef !important;
}
.faq-panel {
  background: #ffffff !important;
}

/* 7) footer blend and larger side gutter */
.footer-section {
  background: radial-gradient(ellipse at 50% 102%, rgba(221,34,47,.18), rgba(0,0,0,0) 31rem), #000 !important;
}
.footer-section::after {
  background: linear-gradient(to top, rgba(221,34,47,.14), rgba(0,0,0,0)) !important;
}

@media (min-width: 768px) and (max-width: 1199px) {
  :root { --page-pad: 7rem !important; }
  .events-copy {
    padding: 8rem 2.2rem 4.4rem 3.2rem !important;
    width: 38rem !important;
  }
}

@media (max-width: 767px) {
  :root { --page-pad: 4rem !important; }
  .container-wide,
  .container-narrow { width: calc(100% - var(--page-pad)) !important; }

  .section-heading h2,
  .faq-content h2,
  .events-copy h2,
  .footer-top h2 {
    font-size: clamp(2.25rem, 7.6vw, 3.2rem) !important;
    line-height: 1.02 !important;
  }
  .section-heading p,
  .hero-content p,
  .events-copy p,
  .footer-copy p,
  .about-copy p {
    font-size: 1rem !important;
    line-height: 1.52rem !important;
  }

  .about-title,
  section.about-section .about-title {
    font-size: clamp(2.7rem, 9vw, 3.45rem) !important;
    line-height: .96 !important;
    margin-bottom: 1.35rem !important;
  }
  .about-copy p { margin-bottom: .9rem !important; }
  .about-copy .red-line { font-size: .95rem !important; }

  .keyword-strip {
    min-height: 2.7rem !important;
  }
  .keyword-strip p {
    font-size: .92rem !important;
    animation-duration: 10s !important;
  }

  .why-caption {
    font-size: .92rem !important;
    line-height: 1.3rem !important;
    padding: .7rem .9rem !important;
  }

  .process-section {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
  }

  .events-card {
    width: calc(100% - var(--page-pad)) !important;
    min-height: 23.5rem !important;
  }
  .events-copy {
    width: 100% !important;
    padding: 1.8rem 1.3rem 5rem !important;
  }
  .event-shape-one { width: 10.5rem !important; right: -.4rem !important; bottom: -.8rem !important; }
  .event-shape-six { width: 7rem !important; right: 5.2rem !important; bottom: -1rem !important; left: auto !important; }
  .event-shape-seven { width: 4.1rem !important; right: .1rem !important; bottom: -.2rem !important; }

  .product-card:hover {
    box-shadow: none !important;
    transform: none !important;
  }
  .product-image a {
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  html body .site-header.wpi-global-header .header-contact {
    display: none !important;
  }

  html body .site-header.wpi-global-header .site-logo,
  html body .site-header.wpi-global-header .site-logo img {
    width: clamp(8.75rem, 18vw, 11.5rem) !important;
    max-width: clamp(8.75rem, 18vw, 11.5rem) !important;
    height: auto !important;
    max-height: 4.5rem !important;
  }
  .product-card.featured .product-image a {
    opacity: 0 !important;
    transform: translateY(.5rem) !important;
    pointer-events: none !important;
  }
  .product-card.featured:hover .product-image a,
  .product-card.featured:focus-within .product-image a {
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  .faq-section {
    background: #efefef !important;
  }
  .faq-panel {
    background: #fff !important;
  }
}


/* MICRO QA FIXES - ticker / safety caption / process spacing / event card */
/* 1) Bigger ticker like Figma */
.keyword-strip {
  min-height: 4.3rem !important;
}
.keyword-strip p {
  font-size: 1.55rem !important;
  line-height: 1.15 !important;
  gap: 2rem !important;
  letter-spacing: .01em !important;
}

/* 2) Bigger safety-first caption */
.why-caption {
  font-size: 1.62rem !important;
  line-height: 2rem !important;
  padding: 1rem 1.5rem !important;
  font-weight: 500 !important;
}

/* 3/5) From Idea to Ignition equal top and bottom spacing */
.process-section {
  min-height: auto !important;
  padding-top: 5.4rem !important;
  padding-bottom: 5.4rem !important;
}
.process-section .section-heading {
  margin-top: 0 !important;
}
.process-steps {
  margin-top: 6rem !important;
}
.process-btn {
  margin-top: 3rem !important;
  margin-bottom: 0 !important;
}

/* 4) Countdown card: remove weird corner/border overlay and fix full-box feel */
.events-card::before,
.events-card::after {
  display: none !important;
  content: none !important;
}
.events-card {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  border-radius: 1.65rem !important;
  background: #031332 !important;
  min-height: 38.6rem !important;
  padding-bottom: 0 !important;
}
.events-copy {
  padding: 10.9rem 0 5.8rem 5.2rem !important;
}
.event-shape-one { width: 24rem !important; right: 6.4rem !important; bottom: -8.8rem !important; }
.event-shape-two { width: 12.8rem !important; right: 10.6rem !important; top: 1.3rem !important; }
.event-shape-three { width: 7.8rem !important; right: 30.6rem !important; top: 16.4rem !important; }
.event-shape-four { width: 9.3rem !important; right: 1.2rem !important; top: 14rem !important; }
.event-shape-five { width: 11.8rem !important; right: 30.2rem !important; top: 4.8rem !important; }
.event-shape-six { width: 21rem !important; left: 56.5rem !important; bottom: -1.1rem !important; }
.event-shape-seven { width: 6rem !important; right: .8rem !important; bottom: -.2rem !important; }

@media (max-width: 767px) {
  .keyword-strip {
    min-height: 3.05rem !important;
  }
  .keyword-strip p {
    font-size: 1.05rem !important;
    line-height: 1.15 !important;
    gap: 1.25rem !important;
  }
  .why-caption {
    font-size: 1.05rem !important;
    line-height: 1.45rem !important;
    padding: .82rem 1rem !important;
  }
  .process-section {
    min-height: auto !important;
    padding-top: 4.2rem !important;
    padding-bottom: 4.2rem !important;
  }
  .process-steps {
    margin-top: 2.8rem !important;
  }
  .process-btn {
    margin-top: 2.4rem !important;
  }
  .events-card::before,
  .events-card::after {
    display: none !important;
    content: none !important;
  }
  .events-card {
    min-height: 24rem !important;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 1.15rem !important;
    box-shadow: none !important;
  }
  .events-copy {
    padding: 1.8rem 1.3rem 5.8rem !important;
  }
  .event-shape-one { width: 9.5rem !important; right: -.1rem !important; bottom: -.35rem !important; }
  .event-shape-six { width: 6.2rem !important; right: 5.1rem !important; bottom: -.55rem !important; left: auto !important; }
  .event-shape-seven { width: 3.8rem !important; right: .15rem !important; bottom: 0 !important; }
}


/* STABLE SCALE GUARD
   Keeps the previous approved sizing. Do not globally shrink the whole site.
   Future edits should be made inside the main section blocks above, not by adding
   new global scale transforms or root font-size reductions.
*/
html {
  font-size: 16px;
}

body {
  background: #fff;
}

@media (max-width: 767px) {
  html {
    font-size: 16px;
  }
}

/* BUILT SECTION WHITE BACKGROUND FIX */
.about-section,
section.about-section,
.about-section .container-wide,
.about-grid,
.about-copy {
  background: #ffffff !important;
}
.about-section::before,
section.about-section::before {
  background: transparent !important;
  opacity: 0 !important;
}

/* FINAL MOBILE/TABLET BALANCE QA */
/* Tablet FAQ: prevent overflow while keeping the Figma grey outer / white inner panel */
@media (min-width: 768px) and (max-width: 1199px) {
  .faq-section {
    overflow: hidden !important;
    padding: 4.4rem 0 !important;
    background: #efefef !important;
  }
  .faq-panel,
  .faq-panel.container-wide {
    width: calc(100% - 4rem) !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    grid-template-columns: minmax(10rem, 0.58fr) minmax(0, 1fr) !important;
    gap: 1.8rem !important;
    padding: 2.25rem !important;
    overflow: hidden !important;
    background: #fff !important;
  }
  .faq-art {
    min-width: 0 !important;
    display: flex !important;
    justify-content: center !important;
  }
  .faq-art img {
    width: min(100%, 16.5rem) !important;
    max-width: 100% !important;
    height: auto !important;
  }
  .faq-content {
    min-width: 0 !important;
    width: 100% !important;
  }
  .faq-content h2 {
    width: 100% !important;
    max-width: 100% !important;
    font-size: clamp(2.65rem, 4.4vw, 3.25rem) !important;
    line-height: 1.02 !important;
  }
  .faq-item button {
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
  }
}

@media (max-width: 767px) {
  /* Keep the mobile heading sizes the same, only balance body and h3 text */
  .hero-content p,
  .section-heading p,
  .about-copy p,
  .services-section .section-heading p,
  .service-row p,
  .why-cards p,
  .portfolio-section .section-heading p,
  .process-section .section-heading p,
  .process-steps p,
  .reviews-section .section-heading p,
  .review-card p,
  .events-copy p,
  .shop-section .section-heading p,
  .product-info p,
  .faq-item p,
  .footer-copy p {
    font-size: 1.12rem !important;
    line-height: 1.72rem !important;
  }

  .service-row h3,
  .why-cards h3,
  .process-steps h3,
  .review-card h3,
  .product-info h3 {
    font-size: 1.22rem !important;
    line-height: 1.42rem !important;
  }

  /* Built section mobile: more breathing room and cleaner flow */
  .about-section,
  section.about-section {
    padding-top: 4.9rem !important;
    padding-bottom: 5.1rem !important;
  }
  .about-title,
  section.about-section .about-title {
    margin-bottom: 1.35rem !important;
  }
  .about-grid,
  .about-grid.container-wide {
    gap: 0 !important;
  }
  .about-copy {
    order: 1 !important;
  }
  .about-visual {
    order: 2 !important;
    height: 18rem !important;
    margin: 1.8rem 0 0 !important;
    overflow: hidden !important;
  }
  .about-visual img {
    width: 190% !important;
    height: 178% !important;
    left: -28% !important;
    top: -18% !important;
    object-fit: cover !important;
  }
  .about-copy .red-line {
    font-size: 1rem !important;
    line-height: 1.35rem !important;
    margin: 1.05rem 0 .95rem !important;
  }
  .about-copy .btn,
  .about-copy .btn.btn-outline-dark {
    margin-top: 1.1rem !important;
    height: 3.8rem !important;
    min-height: 3.8rem !important;
    font-size: 1rem !important;
  }
}

/* FINAL QA: MOBILE MENU WIDTH + STACKING FIX */
@media (max-width: 767px) {
  .hero-section {
    overflow: visible !important;
  }

  .site-header,
  .site-header.container-wide {
    position: relative !important;
    z-index: 99999 !important;
    width: calc(100% - 1.5rem) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .mobile-menu-toggle {
    position: relative !important;
    z-index: 100001 !important;
  }

  .main-nav {
    position: absolute !important;
    top: calc(100% + .55rem) !important;
    left: 50% !important;
    right: auto !important;
    z-index: 100000 !important;
    width: calc(100vw - 1.5rem) !important;
    max-width: none !important;
    transform: translateX(-50%) !important;
    box-sizing: border-box !important;
    padding: 1rem !important;
    border-radius: 1.15rem !important;
    background: rgba(0,0,0,.97) !important;
    box-shadow: 0 1.5rem 3.5rem rgba(0,0,0,.5) !important;
  }

  body.menu-open .main-nav {
    display: flex !important;
  }

  .main-nav a {
    font-size: 1.05rem !important;
    line-height: 1.25 !important;
    padding: 1rem 1.15rem !important;
  }

  body.menu-open .hero-content {
    position: relative !important;
    z-index: 1 !important;
  }
}

/* FINAL RESPONSIVE QA FIXES - stable layout preserved */
/* Services hover image now belongs to each row, not one fixed global position */
.services-float-img {
  display: none !important;
}
.service-row {
  position: relative !important;
  overflow: hidden !important;
}
.service-row::after {
  content: "" !important;
  position: absolute !important;
  z-index: 2 !important;
  right: 12.8rem !important;
  top: 50% !important;
  width: 13.2rem !important;
  height: 15.6rem !important;
  border-radius: 1.15rem !important;
  background-image: var(--wpi-service-image) !important;
  background-size: cover !important;
  background-position: center !important;
  opacity: 0 !important;
  transform: translateY(-50%) scale(.96) rotate(-3deg) !important;
  transition: opacity .28s ease, transform .28s ease !important;
  pointer-events: none !important;
  box-shadow: none !important;
}
.service-row.active::after,
.service-row:hover::after,
.service-row:focus-within::after {
  opacity: 1 !important;
  transform: translateY(-50%) scale(1) rotate(-3deg) !important;
}
.service-row h3,
.service-row p,
.service-row a {
  position: relative !important;
  z-index: 3 !important;
}

@media (min-width: 768px) and (max-width: 1199px) {
  /* Tablet header logo reduced */
  .site-header,
  .site-header.container-wide {
    grid-template-columns: 10.8rem 1fr 10.8rem !important;
    gap: .8rem !important;
  }
  .site-logo img {
    width: 10.8rem !important;
    height: auto !important;
  }

  .service-row::after {
    right: 8.2rem !important;
    width: 10.2rem !important;
    height: 12.4rem !important;
  }

  /* Tablet footer cutting fix */
  .footer-section {
    overflow: visible !important;
    padding-bottom: 4.6rem !important;
  }
  .footer-inner,
  .footer-inner.container-wide {
    width: calc(100% - 4rem) !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .footer-top {
    grid-template-columns: minmax(0, 1fr) minmax(0, 30rem) !important;
    gap: 2.2rem !important;
  }
  .footer-top h2 {
    max-width: 100% !important;
    font-size: clamp(2.8rem, 4.3vw, 3.35rem) !important;
  }
  .footer-copy,
  .footer-copy p {
    max-width: 100% !important;
  }
  .contact-pill {
    max-width: 100% !important;
    flex-wrap: wrap !important;
  }
  .contact-pill p {
    width: auto !important;
    max-width: 100% !important;
  }
  .footer-logo {
    width: 16.5rem !important;
    max-width: 80% !important;
    height: auto !important;
  }
  .footer-nav {
    gap: .75rem 1.1rem !important;
  }
}

@media (max-width: 767px) {
  /* 1) More breathing room in mobile hero */
  .hero-section {
    padding-top: 1rem !important;
    padding-bottom: 5rem !important;
    overflow: visible !important;
  }
  .hero-content {
    width: calc(100% - 4.6rem) !important;
    margin-top: 2.45rem !important;
    gap: 1.25rem !important;
  }
  .hero-actions {
    margin-top: .3rem !important;
  }

  /* 2/3) Built section mobile: left heading and cleaner image placement */
  .about-section,
  section.about-section {
    padding-top: 5.15rem !important;
    padding-bottom: 5.25rem !important;
  }
  .about-title,
  section.about-section .about-title {
    text-align: left !important;
    width: calc(100% - 4.6rem) !important;
    margin: 0 auto 1.55rem !important;
  }
  .about-grid,
  .about-grid.container-wide {
    width: calc(100% - 4.6rem) !important;
  }
  .about-visual {
    order: 1 !important;
    width: 100% !important;
    height: 20.5rem !important;
    margin: 0 0 1.75rem !important;
    border-radius: 1.25rem !important;
    overflow: hidden !important;
  }
  .about-visual img {
    width: 100% !important;
    height: 100% !important;
    left: 0 !important;
    top: 0 !important;
    object-fit: cover !important;
    object-position: center center !important;
  }
  .about-copy {
    order: 2 !important;
  }

  /* 4) Services image hover should not appear as a fixed image on mobile */
  .service-row::after,
  .service-row.active::after,
  .service-row:hover::after,
  .service-row:focus-within::after {
    display: none !important;
    content: none !important;
  }

  /* 5) Mobile button font balance */
  .btn,
  .about-copy .btn,
  .events-copy .btn,
  .portfolio-btn,
  .process-btn,
  .shop-btn,
  .service-row a {
    font-size: 1.07rem !important;
    line-height: 1.2 !important;
    letter-spacing: .03em !important;
  }

  /* 6) Fourth of July timer bigger on mobile */
  .countdown {
    gap: .7rem !important;
  }
  .countdown strong {
    font-size: 1.28rem !important;
    line-height: 1 !important;
  }
  .countdown small,
  .countdown i {
    font-size: .68rem !important;
    line-height: 1 !important;
  }

  /* 7) FAQ titles bigger on mobile */
  .faq-item button {
    min-height: 5rem !important;
    font-size: 1.18rem !important;
    line-height: 1.45rem !important;
    padding: 1.25rem 1.05rem !important;
  }
}


/* FINAL MOBILE CREATIVE + SERVICES ANIMATION QA
   Keeps stable layout, only fixes mobile H2 scale, built mobile treatment,
   and per-card services preview behavior. */

@keyframes builtHeadingMotion {
  0% { background-position: 8% 12%; }
  50% { background-position: 62% 22%; }
  100% { background-position: 20% 36%; }
}

/* Services preview belongs to each row and must not be clipped */
.services-list {
  overflow: visible !important;
}
.service-row {
  overflow: visible !important;
  isolation: isolate !important;
}
.service-row::after {
  display: block !important;
  content: "" !important;
  position: absolute !important;
  z-index: 2 !important;
  right: 11.4rem !important;
  top: 50% !important;
  width: 14.4rem !important;
  height: 17rem !important;
  border-radius: 1.2rem !important;
  background-image: var(--wpi-service-image) !important;
  background-size: cover !important;
  background-position: center !important;
  opacity: 0 !important;
  transform: translateY(-50%) translateX(.85rem) scale(.94) rotate(-3deg) !important;
  transition: opacity .32s ease, transform .32s ease !important;
  pointer-events: none !important;
  box-shadow: none !important;
}
.service-row.active::after,
.service-row:hover::after,
.service-row:focus-within::after,
.service-row.is-preview::after {
  opacity: 1 !important;
  transform: translateY(-50%) translateX(0) scale(1) rotate(-3deg) !important;
}
.service-row:nth-child(2)::after { transform: translateY(-50%) translateX(.85rem) scale(.94) rotate(2deg) !important; }
.service-row:nth-child(2):hover::after,
.service-row:nth-child(2):focus-within::after,
.service-row:nth-child(2).is-preview::after { transform: translateY(-50%) translateX(0) scale(1) rotate(2deg) !important; }
.service-row:nth-child(3)::after { transform: translateY(-50%) translateX(.85rem) scale(.94) rotate(-1deg) !important; }
.service-row:nth-child(3):hover::after,
.service-row:nth-child(3):focus-within::after,
.service-row:nth-child(3).is-preview::after { transform: translateY(-50%) translateX(0) scale(1) rotate(-1deg) !important; }
.service-row:nth-child(4)::after { transform: translateY(-50%) translateX(.85rem) scale(.94) rotate(3deg) !important; }
.service-row:nth-child(4):hover::after,
.service-row:nth-child(4):focus-within::after,
.service-row:nth-child(4).is-preview::after { transform: translateY(-50%) translateX(0) scale(1) rotate(3deg) !important; }

@media (max-width: 767px) {
  /* 1) Only mobile H2 headings increased by 1.05x */
  .section-heading h2,
  .faq-content h2,
  .events-copy h2,
  .footer-top h2 {
    font-size: clamp(2.36rem, 7.98vw, 3.36rem) !important;
    line-height: 1.02 !important;
  }
  .services-section h2 {
    font-size: clamp(3.84rem, 13.65vw, 5.25rem) !important;
    line-height: .9 !important;
  }

  /* Built mobile: creative masked/moving heading like desktop, not plain text/logo */
  .about-section,
  section.about-section {
    position: relative !important;
    padding-top: 5.5rem !important;
    padding-bottom: 5.7rem !important;
    overflow: hidden !important;
    background: #fff !important;
  }
  .about-section::before,
  section.about-section::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    z-index: 0 !important;
    right: -7.5rem !important;
    top: 1.5rem !important;
    left: auto !important;
    width: 20rem !important;
    height: 18rem !important;
    opacity: .12 !important;
    transform: rotate(-8deg) !important;
    background-image: var(--wpi-heading-texture) !important;
    background-size: cover !important;
    background-position: center !important;
    clip-path: polygon(16% 0, 100% 0, 78% 100%, 0 100%) !important;
    pointer-events: none !important;
  }
  .about-title,
  section.about-section .about-title {
    position: relative !important;
    z-index: 2 !important;
    text-align: left !important;
    width: calc(100% - 4.6rem) !important;
    margin: 0 auto 1.55rem !important;
    font-size: clamp(3.05rem, 10.05vw, 3.95rem) !important;
    line-height: .94 !important;
    letter-spacing: .015rem !important;
    color: transparent !important;
    background-image:
      linear-gradient(rgba(12,25,21,.48), rgba(12,25,21,.48)),
      var(--wpi-heading-texture) !important;
    background-size: 220% auto !important;
    background-position: 8% 12% !important;
    background-repeat: no-repeat !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    animation: builtHeadingMotion 9s ease-in-out infinite alternate !important;
    filter: contrast(1.08) saturate(1.06) !important;
  }
  .about-grid,
  .about-grid.container-wide {
    position: relative !important;
    z-index: 2 !important;
    width: calc(100% - 4.6rem) !important;
    display: flex !important;
    flex-direction: column !important;
  }
  .about-visual {
    order: 1 !important;
    position: relative !important;
    width: 100% !important;
    height: 18.75rem !important;
    margin: 0 0 1.8rem !important;
    border-radius: 1.35rem !important;
    overflow: hidden !important;
    background: #fff !important;
    box-shadow: none !important;
  }
  .about-visual::after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(90deg, rgba(255,255,255,.25), rgba(255,255,255,0) 42%, rgba(255,255,255,.12)) !important;
    pointer-events: none !important;
  }
  .about-visual img {
    width: 235% !important;
    height: 205% !important;
    max-width: none !important;
    left: -55% !important;
    top: -28% !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
  }
  .about-copy {
    order: 2 !important;
    position: relative !important;
    z-index: 2 !important;
  }

  /* Services mobile: image preview now shows inside each tapped/hovered card */
  .services-list {
    overflow: visible !important;
  }
  .service-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    overflow: hidden !important;
    position: relative !important;
  }
  .service-row::after,
  .service-row.active::after,
  .service-row:hover::after,
  .service-row:focus-within::after,
  .service-row.is-preview::after {
    content: "" !important;
    display: block !important;
    position: relative !important;
    right: auto !important;
    top: auto !important;
    width: 100% !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    border-radius: 1.05rem !important;
    background-image: var(--wpi-service-image) !important;
    background-size: cover !important;
    background-position: center 52% !important;
    opacity: 0 !important;
    transform: translateY(.6rem) scale(.98) !important;
    transition: opacity .28s ease, transform .28s ease, height .28s ease, max-height .28s ease, margin .28s ease !important;
    pointer-events: none !important;
    order: 3 !important;
    box-shadow: none !important;
  }
  .service-row.active::after,
  .service-row:hover::after,
  .service-row:focus-within::after,
  .service-row.is-preview::after {
    height: 12.5rem !important;
    max-height: 12.5rem !important;
    margin: .95rem 0 .3rem !important;
    opacity: 1 !important;
    transform: translateY(0) scale(1) !important;
  }
  .service-row h3 { order: 1 !important; }
  .service-row p { order: 2 !important; }
  .service-row a { order: 4 !important; margin-top: .8rem !important; }
}


/* FINAL REQUEST: SERVICES POSITION + BUILT MOBILE ARRANGEMENT
   Only adjusts the services preview spacing/position and mobile built visual flow.
*/

/* Services: reduce the gap from heading text to service rows */
.services-list {
  margin-top: 5.8rem !important;
}

/* Desktop services preview image: move more left into the middle of the row */
@media (min-width: 1200px) {
  .services-float-img {
    display: none !important;
  }

  .service-row {
    position: relative !important;
    overflow: visible !important;
    isolation: isolate !important;
  }

  .service-row::after {
    display: block !important;
    content: "" !important;
    position: absolute !important;
    z-index: 2 !important;
    left: 44.5rem !important;
    right: auto !important;
    top: 50% !important;
    width: 14.6rem !important;
    height: 17.1rem !important;
    border-radius: 1.2rem !important;
    background-image: var(--wpi-service-image) !important;
    background-size: cover !important;
    background-position: center 52% !important;
    opacity: 0 !important;
    transform: translateY(-50%) translateX(.7rem) scale(.96) rotate(-3deg) !important;
    transition: opacity .32s ease, transform .32s ease !important;
    pointer-events: none !important;
    box-shadow: none !important;
  }

  .service-row.active::after,
  .service-row:hover::after,
  .service-row:focus-within::after,
  .service-row.is-preview::after {
    opacity: 1 !important;
    transform: translateY(-50%) translateX(0) scale(1) rotate(-3deg) !important;
  }

  .service-row h3,
  .service-row p,
  .service-row a {
    position: relative !important;
    z-index: 3 !important;
  }
}

/* Tablet services: same behavior but scaled */
@media (min-width: 768px) and (max-width: 1199px) {
  .services-list {
    margin-top: 4.2rem !important;
  }

  .service-row::after {
    left: 35rem !important;
    right: auto !important;
    width: 10.8rem !important;
    height: 13rem !important;
    background-position: center 52% !important;
  }
}

/* Mobile services: keep the first-card image behavior and apply it to every card */
@media (max-width: 767px) {
  .services-list {
    margin-top: 1.7rem !important;
    padding-top: 0 !important;
    overflow: visible !important;
  }

  .service-row {
    display: grid !important;
    grid-template-columns: 1fr !important;
    position: relative !important;
    overflow: hidden !important;
    isolation: isolate !important;
  }

  .service-row::after,
  .service-row.active::after,
  .service-row:hover::after,
  .service-row:focus-within::after,
  .service-row.is-preview::after {
    content: "" !important;
    display: block !important;
    position: relative !important;
    right: auto !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    order: 3 !important;
    border-radius: 1.05rem !important;
    background-image: var(--wpi-service-image) !important;
    background-size: cover !important;
    background-position: center 52% !important;
    opacity: 0 !important;
    transform: translateY(.55rem) scale(.98) !important;
    transition: opacity .28s ease, transform .28s ease, height .28s ease, max-height .28s ease, margin .28s ease !important;
    pointer-events: none !important;
    box-shadow: none !important;
  }

  .service-row.active::after,
  .service-row:hover::after,
  .service-row:focus-within::after,
  .service-row.is-preview::after {
    height: 12.5rem !important;
    max-height: 12.5rem !important;
    margin: .95rem 0 .25rem !important;
    opacity: 1 !important;
    transform: translateY(0) scale(1) !important;
  }

  .service-row h3 { order: 1 !important; }
  .service-row p { order: 2 !important; }
  .service-row a { order: 4 !important; margin-top: .75rem !important; }

  /* Built mobile: heading, then text, then the cropped icon/flame image below text */
  .about-section,
  section.about-section {
    padding-top: 5rem !important;
    padding-bottom: 0 !important;
    background: #fff !important;
    overflow: hidden !important;
  }

  .about-title,
  section.about-section .about-title {
    text-align: left !important;
    width: calc(100% - 4.6rem) !important;
    margin: 0 auto 1.45rem !important;
    animation: builtHeadingMotion 9s ease-in-out infinite alternate !important;
  }

  .about-grid,
  .about-grid.container-wide {
    width: calc(100% - 4.6rem) !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
  }

  .about-copy {
    order: 1 !important;
    position: relative !important;
    z-index: 3 !important;
    margin-bottom: 1.2rem !important;
  }

  .about-copy .btn {
    margin-top: 1.1rem !important;
  }

  .about-visual {
    order: 2 !important;
    position: relative !important;
    width: calc(100% + 4.6rem) !important;
    height: 15rem !important;
    margin: .15rem -2.3rem 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .about-visual::after {
    display: none !important;
    content: none !important;
  }

  .about-visual img {
    position: absolute !important;
    display: block !important;
    width: 205% !important;
    height: 205% !important;
    max-width: none !important;
    left: -47% !important;
    top: -45% !important;
    object-fit: cover !important;
    object-position: center top !important;
    transform: none !important;
  }
}

/* FINAL SERVICES + BUILT + TABLET HEADER FIX V3
   These rules only fix the requested responsive details. */

/* Services: reduce heading-to-list gap globally */
.services-list {
  margin-top: 2.65rem !important;
  padding-top: 1.2rem !important;
}

@media (min-width: 1200px) {
  /* Hide old floating preview and use row-based preview only */
  .services-float-img {
    display: none !important;
  }

  .service-row {
    position: relative !important;
    overflow: visible !important;
    isolation: isolate !important;
  }

  /* Preview sits straight between the text and the button */
  .service-row::after,
  .service-row:nth-child(2)::after,
  .service-row:nth-child(3)::after,
  .service-row:nth-child(4)::after,
  .service-row:nth-child(5)::after,
  .service-row:nth-child(6)::after,
  .service-row:nth-child(7)::after {
    display: block !important;
    content: "" !important;
    position: absolute !important;
    z-index: 2 !important;
    left: 56.25rem !important;
    right: auto !important;
    top: 50% !important;
    width: 16.85rem !important;
    height: 19.55rem !important;
    border-radius: 1.25rem !important;
    background-image: var(--wpi-service-image) !important;
    background-size: cover !important;
    background-position: center 52% !important;
    opacity: 0 !important;
    transform: translateY(-50%) translateX(.45rem) scale(.96) rotate(0deg) !important;
    transition: opacity .3s ease, transform .3s ease !important;
    pointer-events: none !important;
    box-shadow: none !important;
  }

  .service-row.active::after,
  .service-row:hover::after,
  .service-row:focus-within::after,
  .service-row.is-preview::after,
  .service-row:nth-child(2):hover::after,
  .service-row:nth-child(2):focus-within::after,
  .service-row:nth-child(2).is-preview::after,
  .service-row:nth-child(3):hover::after,
  .service-row:nth-child(3):focus-within::after,
  .service-row:nth-child(3).is-preview::after,
  .service-row:nth-child(4):hover::after,
  .service-row:nth-child(4):focus-within::after,
  .service-row:nth-child(4).is-preview::after,
  .service-row:nth-child(5):hover::after,
  .service-row:nth-child(5):focus-within::after,
  .service-row:nth-child(5).is-preview::after,
  .service-row:nth-child(6):hover::after,
  .service-row:nth-child(6):focus-within::after,
  .service-row:nth-child(6).is-preview::after,
  .service-row:nth-child(7):hover::after,
  .service-row:nth-child(7):focus-within::after,
  .service-row:nth-child(7).is-preview::after {
    opacity: 1 !important;
    transform: translateY(-50%) translateX(0) scale(1) rotate(0deg) !important;
  }

  .service-row h3,
  .service-row p,
  .service-row a {
    position: relative !important;
    z-index: 3 !important;
  }
}

@media (min-width: 768px) and (max-width: 1199px) {
  /* Tablet logo was still too large */
  .site-header,
  .site-header.container-wide {
    grid-template-columns: 8.9rem 1fr 9.2rem !important;
    gap: .65rem !important;
  }
  .site-logo img {
    width: 8.9rem !important;
    max-width: 8.9rem !important;
    height: auto !important;
  }

  .services-list {
    margin-top: 2.4rem !important;
    padding-top: 1rem !important;
  }

  .service-row::after,
  .service-row:nth-child(2)::after,
  .service-row:nth-child(3)::after,
  .service-row:nth-child(4)::after,
  .service-row:nth-child(5)::after,
  .service-row:nth-child(6)::after,
  .service-row:nth-child(7)::after {
    left: 45.5rem !important;
    right: auto !important;
    width: 12.4rem !important;
    height: 14.6rem !important;
    transform: translateY(-50%) translateX(.35rem) scale(.96) rotate(0deg) !important;
  }
  .service-row.active::after,
  .service-row:hover::after,
  .service-row:focus-within::after,
  .service-row.is-preview::after,
  .service-row:nth-child(2):hover::after,
  .service-row:nth-child(2):focus-within::after,
  .service-row:nth-child(2).is-preview::after,
  .service-row:nth-child(3):hover::after,
  .service-row:nth-child(3):focus-within::after,
  .service-row:nth-child(3).is-preview::after,
  .service-row:nth-child(4):hover::after,
  .service-row:nth-child(4):focus-within::after,
  .service-row:nth-child(4).is-preview::after,
  .service-row:nth-child(5):hover::after,
  .service-row:nth-child(5):focus-within::after,
  .service-row:nth-child(5).is-preview::after,
  .service-row:nth-child(6):hover::after,
  .service-row:nth-child(6):focus-within::after,
  .service-row:nth-child(6).is-preview::after,
  .service-row:nth-child(7):hover::after,
  .service-row:nth-child(7):focus-within::after,
  .service-row:nth-child(7).is-preview::after {
    transform: translateY(-50%) translateX(0) scale(1) rotate(0deg) !important;
  }
}

@media (max-width: 767px) {
  /* Mobile services: same preview treatment on every card, straight and slightly larger */
  .services-list {
    margin-top: 1.35rem !important;
    padding-top: 0 !important;
  }

  .service-row::after,
  .service-row.active::after,
  .service-row:hover::after,
  .service-row:focus-within::after,
  .service-row.is-preview::after,
  .service-row:nth-child(2)::after,
  .service-row:nth-child(3)::after,
  .service-row:nth-child(4)::after,
  .service-row:nth-child(5)::after,
  .service-row:nth-child(6)::after,
  .service-row:nth-child(7)::after {
    content: "" !important;
    display: block !important;
    position: relative !important;
    right: auto !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    order: 3 !important;
    border-radius: 1.12rem !important;
    background-image: var(--wpi-service-image) !important;
    background-size: cover !important;
    background-position: center 52% !important;
    opacity: 0 !important;
    transform: translateY(.45rem) scale(.985) rotate(0deg) !important;
    transition: opacity .28s ease, transform .28s ease, height .28s ease, max-height .28s ease, margin .28s ease !important;
    pointer-events: none !important;
    box-shadow: none !important;
  }

  .service-row.active::after,
  .service-row:hover::after,
  .service-row:focus-within::after,
  .service-row.is-preview::after,
  .service-row:nth-child(2):hover::after,
  .service-row:nth-child(2):focus-within::after,
  .service-row:nth-child(2).is-preview::after,
  .service-row:nth-child(3):hover::after,
  .service-row:nth-child(3):focus-within::after,
  .service-row:nth-child(3).is-preview::after,
  .service-row:nth-child(4):hover::after,
  .service-row:nth-child(4):focus-within::after,
  .service-row:nth-child(4).is-preview::after,
  .service-row:nth-child(5):hover::after,
  .service-row:nth-child(5):focus-within::after,
  .service-row:nth-child(5).is-preview::after,
  .service-row:nth-child(6):hover::after,
  .service-row:nth-child(6):focus-within::after,
  .service-row:nth-child(6).is-preview::after,
  .service-row:nth-child(7):hover::after,
  .service-row:nth-child(7):focus-within::after,
  .service-row:nth-child(7).is-preview::after {
    height: 14.15rem !important;
    max-height: 14.15rem !important;
    margin: .95rem 0 .25rem !important;
    opacity: 1 !important;
    transform: translateY(0) scale(1) rotate(0deg) !important;
  }

  /* Built mobile: keep moving texture clipped only inside the heading text */
  .about-section::before,
  section.about-section::before,
  .about-image-bg {
    display: none !important;
    content: none !important;
    background: none !important;
  }

  .about-title,
  section.about-section .about-title {
    overflow: hidden !important;
    background-clip: text !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-size: 210% auto !important;
    background-position: 8% 12% !important;
  }

  /* Built mobile icon/flame: show only the icon-style crop under the text, no extra bottom gap */
  .about-section,
  section.about-section {
    padding-bottom: 0 !important;
  }

  .about-visual {
    order: 2 !important;
    width: 10.8rem !important;
    height: 10.8rem !important;
    margin: .25rem 0 0 2.3rem !important;
    padding: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .about-visual::after {
    display: none !important;
    content: none !important;
  }

  .about-visual img {
    width: 310% !important;
    height: 310% !important;
    max-width: none !important;
    left: -104% !important;
    top: -74% !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
  }
}


/* EASY EDIT MEDIA SUPPORT - final architecture layer
   Supports Media Library image/video fields without changing the approved visual layout. */
.hero-section { position: relative; }
.hero-bg-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  pointer-events: none;
}
.hero-section > *:not(.hero-bg-video) { position: relative; z-index: 2; }
.about-visual video,
.why-image video,
.portfolio-gallery video,
.product-image video,
.faq-art video,
.process-gift {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.product-image video { width: 58%; height: 88%; object-fit: contain; }
.faq-art video { width: 34rem; height: auto; object-fit: contain; }
.portfolio-gallery video { width: 100%; height: 100%; object-fit: cover; }
.why-image video { width: 100%; height: 100%; object-fit: cover; object-position: center 60%; }
.about-visual video { position: absolute; width: 272.66%; height: 224.48%; left: -49.07%; top: -9.95%; max-width: none; object-fit: cover; }

/* Service previews are real editable media now, not locked pseudo-images. */
.services-float-img { display: none !important; }
.service-row::after { display: none !important; content: none !important; }
.service-preview-media {
  position: absolute;
  z-index: 2;
  left: 44.5rem;
  top: 50%;
  width: 15.5rem;
  height: 18.25rem;
  border-radius: 1.2rem;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-50%) translateX(.5rem) scale(.97);
  transition: opacity .32s ease, transform .32s ease;
  pointer-events: none;
  box-shadow: none;
}
.service-preview-media img,
.service-preview-media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 52%;
}
.service-row.active .service-preview-media,
.service-row:hover .service-preview-media,
.service-row:focus-within .service-preview-media,
.service-row.is-preview .service-preview-media {
  opacity: 1;
  transform: translateY(-50%) translateX(0) scale(1);
}
.service-row h3,
.service-row p,
.service-row a { position: relative; z-index: 3; }

@media (min-width: 768px) and (max-width: 1199px) {
  .site-logo img { width: 9.2rem !important; }
  .service-preview-media { left: 34rem; width: 11.5rem; height: 13.75rem; }
  .faq-art video { width: 28rem; }
}

@media (max-width: 767px) {
  .service-preview-media {
    position: relative;
    left: auto;
    top: auto;
    order: 3;
    width: 100%;
    height: 0;
    max-height: 0;
    margin: 0;
    opacity: 0;
    transform: translateY(.55rem) scale(.98);
    border-radius: 1.05rem;
    transition: opacity .28s ease, transform .28s ease, height .28s ease, max-height .28s ease, margin .28s ease;
  }
  .service-row.active .service-preview-media,
  .service-row:hover .service-preview-media,
  .service-row:focus-within .service-preview-media,
  .service-row.is-preview .service-preview-media {
    height: 13.25rem;
    max-height: 13.25rem;
    margin: .95rem 0 .25rem;
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  .about-visual video { width: 205%; height: 205%; left: -47%; top: -45%; object-fit: cover; }
  .faq-art video { width: 11rem; height: auto; object-fit: contain; }
}

/* FINAL WP EDITABILITY + QA PATCH
   - Single service preview source: the editable .service-preview-media inside each row.
   - No pseudo-image and no floating duplicate image.
   - Events card supports a full uploaded background image/video from the Gutenberg fields.
   - Ticker slowed down and balanced on mobile.
*/
.services-float-img,
.service-row::after {
  display: none !important;
  content: none !important;
}

.services-list {
  margin-top: 5.2rem !important;
  padding-top: 0 !important;
  overflow: visible !important;
}

.service-row {
  position: relative !important;
  overflow: visible !important;
  grid-template-columns: minmax(18rem, 25.5rem) minmax(17rem, 24.5rem) 17.5rem minmax(9rem, 1fr) !important;
  column-gap: 1.7rem !important;
}

.service-preview-media {
  position: relative !important;
  z-index: 2 !important;
  width: 17.5rem !important;
  height: 20.2rem !important;
  margin: -5.2rem 0 -5.2rem !important;
  border-radius: 1.2rem !important;
  overflow: hidden !important;
  opacity: 0 !important;
  transform: translateX(.65rem) scale(.98) !important;
  transition: opacity .28s ease, transform .28s ease !important;
  pointer-events: none !important;
  box-shadow: none !important;
}

.service-preview-media img,
.service-preview-media video {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: none !important;
}

.service-row.active .service-preview-media,
.service-row:hover .service-preview-media,
.service-row:focus-within .service-preview-media,
.service-row.is-preview .service-preview-media {
  opacity: 1 !important;
  transform: translateX(0) scale(1) !important;
}

.service-row h3,
.service-row p,
.service-row a {
  position: relative !important;
  z-index: 3 !important;
}

.keyword-strip p {
  animation-duration: 30s !important;
}

.events-card {
  isolation: isolate !important;
}
.events-bg-media {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  overflow: hidden !important;
  border-radius: inherit !important;
  pointer-events: none !important;
}
.events-bg-media img,
.events-bg-media video {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
}
.events-bg-media + .event-shape,
.event-shape {
  z-index: 2 !important;
}
.events-copy {
  z-index: 6 !important;
}
.events-card:has(.events-bg-media) .event-shape {
  display: none !important;
}

/* Built mobile: clip heading texture strictly inside text and crop image to icon-style area */
@media (max-width: 767px) {
  .keyword-strip {
    min-height: 3.25rem !important;
  }
  .keyword-strip p {
    font-size: 1.14rem !important;
    line-height: 1.2 !important;
    animation-duration: 24s !important;
  }

  .services-section {
    padding-top: 3.8rem !important;
  }
  .services-section .section-heading {
    margin-bottom: 0 !important;
  }
  .services-list {
    margin-top: 1.45rem !important;
    padding-top: 0 !important;
    overflow: visible !important;
  }
  .service-row {
    grid-template-columns: 1fr !important;
    row-gap: .75rem !important;
    overflow: hidden !important;
  }
  .service-preview-media {
    order: 3 !important;
    width: 100% !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    opacity: 0 !important;
    transform: translateY(.5rem) scale(.99) !important;
    border-radius: 1.05rem !important;
    transition: opacity .28s ease, transform .28s ease, height .28s ease, max-height .28s ease, margin .28s ease !important;
  }
  .service-row.active .service-preview-media,
  .service-row:hover .service-preview-media,
  .service-row:focus-within .service-preview-media,
  .service-row.is-preview .service-preview-media {
    height: 13.25rem !important;
    max-height: 13.25rem !important;
    margin: .8rem 0 .15rem !important;
    opacity: 1 !important;
    transform: translateY(0) scale(1) !important;
  }
  .service-row h3 { order: 1 !important; }
  .service-row p { order: 2 !important; }
  .service-row a { order: 4 !important; }

  .about-section::before,
  section.about-section::before,
  .about-title::before,
  .about-title::after {
    display: none !important;
    content: none !important;
  }
  .about-title,
  section.about-section .about-title {
    overflow: hidden !important;
    display: block !important;
    contain: paint !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
  }
  .about-visual {
    order: 2 !important;
    width: calc(100% + 4.6rem) !important;
    height: 14.25rem !important;
    margin: .2rem -2.3rem 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    background: transparent !important;
  }
  .about-visual img,
  .about-visual video {
    position: absolute !important;
    display: block !important;
    width: 235% !important;
    height: 230% !important;
    max-width: none !important;
    left: -62% !important;
    top: -55% !important;
    object-fit: cover !important;
    object-position: center top !important;
  }
}

@media (min-width: 768px) and (max-width: 1199px) {
  .site-logo img {
    width: 8.8rem !important;
    max-width: 8.8rem !important;
  }
  .site-header,
  .site-header.container-wide {
    grid-template-columns: 8.8rem minmax(0, 1fr) 9.5rem !important;
  }
  .services-list {
    margin-top: 3.4rem !important;
  }
  .service-row {
    grid-template-columns: minmax(12rem, 20rem) minmax(13rem, 20rem) 12rem minmax(7rem, 1fr) !important;
    column-gap: 1rem !important;
  }
  .service-preview-media {
    width: 12rem !important;
    height: 14rem !important;
    margin: -3.5rem 0 !important;
  }
}

/* FINAL SERVICE DUPLICATE IMAGE FIX
   Services now use ONLY the editable .service-preview-media element.
   All old pseudo/floating image systems are fully disabled, including active/hover/nth-child states. */
.services-float-img,
.service-row::before,
.service-row::after,
.service-row.active::before,
.service-row.active::after,
.service-row:hover::before,
.service-row:hover::after,
.service-row:focus-within::before,
.service-row:focus-within::after,
.service-row.is-preview::before,
.service-row.is-preview::after,
.service-row:nth-child(1)::before,
.service-row:nth-child(1)::after,
.service-row:nth-child(2)::before,
.service-row:nth-child(2)::after,
.service-row:nth-child(3)::before,
.service-row:nth-child(3)::after,
.service-row:nth-child(4)::before,
.service-row:nth-child(4)::after,
.service-row:nth-child(5)::before,
.service-row:nth-child(5)::after,
.service-row:nth-child(6)::before,
.service-row:nth-child(6)::after,
.service-row:nth-child(7)::before,
.service-row:nth-child(7)::after {
  display: none !important;
  content: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  background-image: none !important;
}

.service-preview-media {
  display: block !important;
}

/* When hovering another service on desktop/tablet, hide the default first active preview so only one image is visible. */
@media (hover: hover) and (pointer: fine) {
  .services-list:hover .service-row.active:not(:hover):not(:focus-within) .service-preview-media {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateX(.65rem) scale(.98) !important;
  }
  .services-list:hover .service-row.active:not(:hover):not(:focus-within) {
    background: transparent !important;
    color: #fff !important;
  }
}

/* FINAL VISUAL ALIGNMENT FIXES
   - service preview media alignment/crop
   - footer contact pill height
   - why/process gradient cleanup
*/

/* Services: preview media sits between copy and button, straight, bigger, and more left */
.services-list {
  margin-top: 4.3rem !important;
  padding-top: 0 !important;
}
.service-row {
  grid-template-columns: minmax(17rem, 23rem) minmax(16rem, 21.5rem) 19.5rem minmax(9rem, 1fr) !important;
  column-gap: 1.35rem !important;
  align-items: center !important;
}
.service-preview-media {
  width: 19.5rem !important;
  height: 22.1rem !important;
  margin: -6.2rem 0 -6.2rem !important;
  transform: translateX(0) scale(.98) rotate(0deg) !important;
  border-radius: 1.2rem !important;
  overflow: hidden !important;
}
.service-row.active .service-preview-media,
.service-row:hover .service-preview-media,
.service-row:focus-within .service-preview-media,
.service-row.is-preview .service-preview-media {
  transform: translateX(0) scale(1) rotate(0deg) !important;
}
.service-preview-media img,
.service-preview-media video {
  object-fit: cover !important;
  object-position: center 18% !important;
  transform: none !important;
}

/* Footer contact box: reduce unnecessary height/padding so the button is not oversized */
.footer-section {
  padding-bottom: 1.8rem !important;
}
.contact-pill {
  align-items: center !important;
  padding: .38rem !important;
  gap: .42rem !important;
}
.contact-pill > div {
  padding: .52rem .7rem !important;
}
.contact-pill p {
  line-height: 1.18rem !important;
}
.contact-pill .btn,
.footer-copy .contact-pill .btn {
  min-height: 3.05rem !important;
  height: auto !important;
  padding: .72rem 1.35rem !important;
  font-size: .82rem !important;
  line-height: 1.15 !important;
}

/* Why section: pull it up into the previous fade and make the transition softer */
.why-section {
  position: relative !important;
  z-index: 2 !important;
  margin-top: -3.1rem !important;
  padding-top: 7.2rem !important;
  background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,.82) 2.8rem, #fff 7.4rem, #fff 100%) !important;
}
.why-section::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  height: 9rem !important;
  background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 78%) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
.why-section .section-heading,
.why-image,
.why-caption,
.why-cards {
  position: relative !important;
  z-index: 1 !important;
}

/* From Idea to Ignition: remove red bottom gradient completely */
.process-section::after {
  display: none !important;
  content: none !important;
  background: none !important;
}
.process-section {
  background: #000 !important;
}

@media (min-width: 768px) and (max-width: 1199px) {
  .site-logo img {
    width: 7.4rem !important;
    max-width: 7.4rem !important;
  }
  .site-header,
  .site-header.container-wide {
    grid-template-columns: 7.4rem minmax(0, 1fr) 9rem !important;
    gap: .7rem !important;
  }
  .services-list {
    margin-top: 2.9rem !important;
  }
  .service-row {
    grid-template-columns: minmax(11rem, 17.5rem) minmax(11rem, 17.5rem) 13.8rem minmax(7rem, 1fr) !important;
    column-gap: .9rem !important;
  }
  .service-preview-media {
    width: 13.8rem !important;
    height: 15.9rem !important;
    margin: -4.15rem 0 !important;
    transform: translateX(0) scale(.98) rotate(0deg) !important;
  }
  .service-row.active .service-preview-media,
  .service-row:hover .service-preview-media,
  .service-row:focus-within .service-preview-media,
  .service-row.is-preview .service-preview-media {
    transform: translateX(0) scale(1) rotate(0deg) !important;
  }
  .why-section {
    margin-top: -2.2rem !important;
    padding-top: 5.8rem !important;
  }
  .contact-pill .btn,
  .footer-copy .contact-pill .btn {
    min-height: 2.9rem !important;
  }
}

@media (max-width: 767px) {
  .services-section {
    padding-bottom: 4.4rem !important;
  }
  .services-list {
    margin-top: 1.65rem !important;
    padding-top: 0 !important;
  }
  .service-row {
    grid-template-columns: 1fr !important;
    row-gap: .78rem !important;
  }
  .service-preview-media {
    width: 100% !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    transform: translateY(.45rem) scale(.99) rotate(0deg) !important;
  }
  .service-row.active .service-preview-media,
  .service-row:hover .service-preview-media,
  .service-row:focus-within .service-preview-media,
  .service-row.is-preview .service-preview-media {
    height: 13.9rem !important;
    max-height: 13.9rem !important;
    margin: .85rem 0 .15rem !important;
    transform: translateY(0) scale(1) rotate(0deg) !important;
  }
  .service-preview-media img,
  .service-preview-media video {
    object-position: center 14% !important;
  }
  .why-section {
    margin-top: -1.65rem !important;
    padding-top: 4.7rem !important;
    background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, #fff 4.6rem, #fff 100%) !important;
  }
  .process-section::after {
    display: none !important;
    content: none !important;
  }
  .footer-section {
    padding-bottom: 1.7rem !important;
  }
  .contact-pill {
    gap: .55rem !important;
    padding: .42rem !important;
  }
  .contact-pill > div {
    padding: .65rem .75rem !important;
  }
  .contact-pill .btn,
  .footer-copy .contact-pill .btn {
    min-height: 3.25rem !important;
    padding: .78rem 1rem !important;
    font-size: .9rem !important;
  }
}

/* =========================================================
   WE PYRO IT THEME v1.0.2 — AUTHORITATIVE VISUAL FIXES
   These rules intentionally sit last so WordPress/browser cache cannot keep
   showing older theme styling after the version bump.
   ========================================================= */

/* Services: only the editable media element is used — never pseudo/floating duplicates. */
.services-float-img,
.service-row::before,
.service-row::after,
.service-row.active::before,
.service-row.active::after,
.service-row:hover::before,
.service-row:hover::after,
.service-row:focus-within::before,
.service-row:focus-within::after,
.service-row.is-preview::before,
.service-row.is-preview::after {
  display: none !important;
  content: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  background: none !important;
  background-image: none !important;
}

.services-section {
  position: relative !important;
  overflow: hidden !important;
  padding-bottom: 5.6rem !important;
}
.services-section::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 13rem !important;
  background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,.86) 68%, #fff 100%) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
.services-section .section-heading,
.services-list {
  position: relative !important;
  z-index: 2 !important;
}
.services-list {
  margin-top: 4.1rem !important;
  padding-top: 0 !important;
  overflow: visible !important;
}
.service-row {
  display: grid !important;
  grid-template-columns: minmax(17rem, 23rem) minmax(16rem, 22rem) 20.75rem minmax(8.5rem, 1fr) !important;
  column-gap: 1.15rem !important;
  align-items: center !important;
  position: relative !important;
  overflow: visible !important;
  isolation: isolate !important;
}
.service-row h3 { grid-column: 1 !important; }
.service-row p { grid-column: 2 !important; }
.service-row a { grid-column: 4 !important; justify-self: end !important; }
.service-preview-media {
  display: block !important;
  grid-column: 3 !important;
  grid-row: 1 !important;
  justify-self: start !important;
  align-self: center !important;
  position: relative !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  z-index: 2 !important;
  width: 20.75rem !important;
  height: 23.4rem !important;
  margin: -6.5rem 0 -6.5rem !important;
  border-radius: 1.22rem !important;
  overflow: hidden !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateX(.4rem) scale(.985) rotate(0deg) !important;
  transition: opacity .28s ease, visibility .28s ease, transform .28s ease !important;
  pointer-events: none !important;
  box-shadow: none !important;
}
.service-row.active .service-preview-media,
.service-row:hover .service-preview-media,
.service-row:focus-within .service-preview-media,
.service-row.is-preview .service-preview-media {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateX(0) scale(1) rotate(0deg) !important;
}
.service-preview-media img,
.service-preview-media video {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 16% !important;
  transform: none !important;
}
@media (hover: hover) and (pointer: fine) {
  .services-list:hover .service-row.active:not(:hover):not(:focus-within) .service-preview-media {
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateX(.4rem) scale(.985) rotate(0deg) !important;
  }
  .services-list:hover .service-row.active:not(:hover):not(:focus-within) {
    background: transparent !important;
    color: #fff !important;
  }
}

/* Built section: heading texture stays clipped inside text. Built visual crop shows higher image content. */
.about-title,
section.about-section .about-title {
  overflow: hidden !important;
  contain: paint !important;
  background-image: linear-gradient(rgba(14,28,23,.72), rgba(14,28,23,.72)), var(--wpi-heading-texture) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
.about-title::before,
.about-title::after,
section.about-section .about-title::before,
section.about-section .about-title::after {
  display: none !important;
  content: none !important;
}
@media (min-width: 768px) {
  .about-visual img,
  .about-visual video {
    width: 258% !important;
    height: 212% !important;
    left: -43% !important;
    top: -3.5% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center 10% !important;
  }
}

/* Footer contact pill: compact height; button not oversized. */
.footer-section {
  padding-bottom: 1.55rem !important;
}
.contact-pill {
  align-items: center !important;
  padding: .25rem !important;
  gap: .35rem !important;
}
.contact-pill > div {
  padding: .42rem .62rem !important;
}
.contact-pill p {
  line-height: 1.08rem !important;
  margin: 0 !important;
}
.contact-pill .btn,
.footer-copy .contact-pill .btn {
  min-height: 2.62rem !important;
  height: auto !important;
  padding: .52rem 1.05rem !important;
  font-size: .78rem !important;
  line-height: 1.1 !important;
}

/* Why Choose Us: pull it upward into a smoother white fade from Services. */
.why-section {
  position: relative !important;
  z-index: 3 !important;
  margin-top: -5.6rem !important;
  padding-top: 9rem !important;
  background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,.82) 3.8rem, #fff 8.6rem, #fff 100%) !important;
}
.why-section::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 0 auto !important;
  height: 11rem !important;
  background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 82%) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
.why-section .section-heading,
.why-image,
.why-caption,
.why-cards {
  position: relative !important;
  z-index: 1 !important;
}

/* From Idea to Ignition: remove the red gradient at the bottom completely. */
.process-section,
section.process-section {
  background: #000 !important;
}
.process-section::after,
section.process-section::after {
  display: none !important;
  content: none !important;
  background: none !important;
}

@media (min-width: 768px) and (max-width: 1199px) {
  .site-logo img {
    width: 6.6rem !important;
    max-width: 6.6rem !important;
    height: auto !important;
  }
  .site-header,
  .site-header.container-wide {
    grid-template-columns: 6.6rem minmax(0, 1fr) 8.7rem !important;
    gap: .65rem !important;
  }
  .services-list {
    margin-top: 2.7rem !important;
  }
  .service-row {
    grid-template-columns: minmax(10rem, 16rem) minmax(10rem, 16.5rem) 14.5rem minmax(7rem, 1fr) !important;
    column-gap: .8rem !important;
  }
  .service-preview-media {
    width: 14.5rem !important;
    height: 16.5rem !important;
    margin: -4.4rem 0 !important;
    transform: translateX(.25rem) scale(.985) rotate(0deg) !important;
  }
  .service-row.active .service-preview-media,
  .service-row:hover .service-preview-media,
  .service-row:focus-within .service-preview-media,
  .service-row.is-preview .service-preview-media {
    transform: translateX(0) scale(1) rotate(0deg) !important;
  }
  .why-section {
    margin-top: -4.2rem !important;
    padding-top: 7rem !important;
  }
  .contact-pill .btn,
  .footer-copy .contact-pill .btn {
    min-height: 2.55rem !important;
  }
}

@media (max-width: 767px) {
  .services-section {
    padding-bottom: 4.1rem !important;
  }
  .services-list {
    margin-top: 1.55rem !important;
    padding-top: 0 !important;
    overflow: visible !important;
  }
  .service-row {
    grid-template-columns: 1fr !important;
    row-gap: .78rem !important;
    overflow: hidden !important;
  }
  .service-row h3 { grid-column: auto !important; order: 1 !important; }
  .service-row p { grid-column: auto !important; order: 2 !important; }
  .service-row a { grid-column: auto !important; order: 4 !important; justify-self: stretch !important; }
  .service-preview-media {
    grid-column: auto !important;
    order: 3 !important;
    width: 100% !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transform: translateY(.45rem) scale(.99) rotate(0deg) !important;
    border-radius: 1.05rem !important;
    transition: opacity .28s ease, visibility .28s ease, transform .28s ease, height .28s ease, max-height .28s ease, margin .28s ease !important;
  }
  .service-row.active .service-preview-media,
  .service-row:hover .service-preview-media,
  .service-row:focus-within .service-preview-media,
  .service-row.is-preview .service-preview-media {
    height: 14.4rem !important;
    max-height: 14.4rem !important;
    margin: .82rem 0 .12rem !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(0) scale(1) rotate(0deg) !important;
  }
  .service-preview-media img,
  .service-preview-media video {
    object-position: center 14% !important;
  }

  .about-section,
  section.about-section {
    padding-bottom: 0 !important;
  }
  .about-title,
  section.about-section .about-title {
    overflow: hidden !important;
    contain: paint !important;
    background-image: linear-gradient(rgba(12,25,21,.48), rgba(12,25,21,.48)), var(--wpi-heading-texture) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
  }
  .about-title::before,
  .about-title::after,
  section.about-section .about-title::before,
  section.about-section .about-title::after {
    display: none !important;
    content: none !important;
  }
  .about-copy {
    order: 1 !important;
    margin-bottom: .85rem !important;
  }
  .about-visual {
        order: 2 !important;
        width: 18.2rem !important;
        height: 16.2rem !important;
        margin: .1rem 0 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
  }
  .about-visual::before,
  .about-visual::after {
    display: none !important;
    content: none !important;
  }
  .about-visual img,
  .about-visual video {
        position: absolute !important;
        display: block !important;
        width: 220% !important;
        height: 220% !important;
        max-width: none !important;
        left: -60% !important;
        top: 0% !important;
        object-fit: cover !important;
        object-position: left top !important;
        transform: none !important;
  }
  .why-section {
    margin-top: -3.2rem !important;
    padding-top: 5.9rem !important;
    background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, #fff 5.2rem, #fff 100%) !important;
  }
  .process-section::after,
  section.process-section::after {
    display: none !important;
    content: none !important;
  }
  .footer-section {
    padding-bottom: 1.35rem !important;
  }
  .contact-pill {
    padding: .28rem !important;
  }
  .contact-pill > div {
    padding: .48rem .65rem !important;
  }
  .contact-pill .btn,
  .footer-copy .contact-pill .btn {
    min-height: 2.85rem !important;
    padding: .6rem .88rem !important;
    font-size: .84rem !important;
  }
}


/* V1.0.6 STABLE SECTION GUARD
   This version restores the Why Choose Us / reviews visual layout from the stable v1 theme.
   Do not add layout overrides for these sections here; edit the main section rules only.
*/

/* =========================================================
   WE PYRO IT v1.0.7 — WHY CHOOSE US FIGMA RESTORE
   Restores this section to the Figma-style layout shown in the reference:
   eyebrow + two-line heading + paragraph + overlay cards + hero image + caption.
   ========================================================= */
.why-section,
section.why-section {
  position: relative !important;
  z-index: 2 !important;
  min-height: 79.4rem !important;
  margin-top: -2.2rem !important;
  padding: 4.1rem 0 0 !important;
  background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, #fff 4.2rem, #fff 100%) !important;
  overflow: hidden !important;
  text-align: center !important;
}
.why-section::before,
section.why-section::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  height: 7rem !important;
  background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 78%) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
.why-section .section-heading,
section.why-section .section-heading {
  position: relative !important;
  z-index: 6 !important;
  width: min(calc(100% - 10rem), 54rem) !important;
  max-width: 54rem !important;
  margin: 0 auto !important;
  padding: 0 !important;
  gap: 1.1rem !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
}
.why-section .eyebrow,
section.why-section .eyebrow {
  margin: 0 auto .55rem !important;
}
.why-section .section-heading h2,
section.why-section .section-heading h2 {
  display: block !important;
  width: min(100%, 43.5rem) !important;
  max-width: 43.5rem !important;
  margin: 0 auto !important;
  font-size: clamp(3.05rem, 3.9vw, 4.05rem) !important;
  line-height: .93 !important;
  letter-spacing: .04rem !important;
  text-align: center !important;
  color: #1f1e1e !important;
}
.why-section .section-heading h2 span,
section.why-section .section-heading h2 span {
  display: block !important;
  color: var(--red) !important;
}
.why-section .section-heading p,
section.why-section .section-heading p {
  display: block !important;
  width: min(100%, 35rem) !important;
  max-width: 35rem !important;
  margin: .25rem auto 0 !important;
  font-size: 1.02rem !important;
  line-height: 1.55rem !important;
  color: #1f1e1e !important;
  opacity: 1 !important;
}
.why-image,
section.why-section .why-image {
  position: absolute !important;
  z-index: 1 !important;
  left: 50% !important;
  top: 22.6rem !important;
  bottom: auto !important;
  width: 100vw !important;
  max-width: 121rem !important;
  height: 49rem !important;
  margin: 0 !important;
  transform: translateX(-50%) !important;
  overflow: hidden !important;
  background: #fff !important;
}
.why-image img,
.why-image video,
section.why-section .why-image img,
section.why-section .why-image video {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 56% !important;
  max-width: none !important;
  background: #fff !important;
}
.why-cards,
section.why-section .why-cards {
  position: absolute !important;
  z-index: 5 !important;
  left: 50% !important;
  top: 24.1rem !important;
  bottom: auto !important;
  transform: translateX(-50%) !important;
  width: min(calc(100% - 10rem), 100.8rem) !important;
  max-width: 100.8rem !important;
  min-height: 14.9rem !important;
  margin: 0 !important;
  padding: 2.9rem 3.2rem !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 2.7rem !important;
  border-radius: .25rem !important;
  background: rgba(0,0,0,.82) !important;
  color: #fff !important;
  text-align: left !important;
}
.why-cards article,
section.why-section .why-cards article {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.why-cards h3,
section.why-section .why-cards h3 {
  margin: 0 0 1.2rem !important;
  font-size: 1.55rem !important;
  line-height: 1.2 !important;
  color: #fff !important;
}
.why-cards p,
section.why-section .why-cards p {
  margin: 0 !important;
  font-size: .92rem !important;
  line-height: 1.5rem !important;
  color: #fff !important;
}
.why-caption,
section.why-section .why-caption {
  position: absolute !important;
  z-index: 6 !important;
  left: 50% !important;
  bottom: 5.6rem !important;
  top: auto !important;
  transform: translateX(-50%) !important;
  width: min(calc(100% - 10rem), 95rem) !important;
  margin: 0 !important;
  padding: .72rem 1.2rem !important;
  background: rgba(78,78,78,.9) !important;
  color: #fff !important;
  font-size: 1.12rem !important;
  line-height: 1.35rem !important;
  text-align: center !important;
}

@media (min-width: 768px) and (max-width: 1199px) {
  .why-section,
  section.why-section {
    min-height: 65rem !important;
    margin-top: -1.8rem !important;
    padding-top: 3.8rem !important;
  }
  .why-section .section-heading,
  section.why-section .section-heading {
    width: calc(100% - 6rem) !important;
  }
  .why-section .section-heading h2,
  section.why-section .section-heading h2 {
    width: min(100%, 38rem) !important;
    max-width: 38rem !important;
    font-size: clamp(2.85rem, 5vw, 3.6rem) !important;
  }
  .why-section .section-heading p,
  section.why-section .section-heading p {
    width: min(100%, 33rem) !important;
    font-size: .98rem !important;
    line-height: 1.48rem !important;
  }
  .why-image,
  section.why-section .why-image {
    top: 20.4rem !important;
    height: 37rem !important;
    width: 112vw !important;
  }
  .why-cards,
  section.why-section .why-cards {
    top: 22.4rem !important;
    width: calc(100% - 4rem) !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 1.35rem !important;
    min-height: 13rem !important;
    padding: 2.1rem 2rem !important;
  }
  .why-cards h3,
  section.why-section .why-cards h3 {
    font-size: 1.12rem !important;
    line-height: 1.2 !important;
    margin-bottom: .8rem !important;
  }
  .why-cards p,
  section.why-section .why-cards p {
    font-size: .78rem !important;
    line-height: 1.25rem !important;
  }
  .why-caption,
  section.why-section .why-caption {
    bottom: 4.2rem !important;
    width: calc(100% - 4rem) !important;
    font-size: .98rem !important;
  }
}

@media (max-width: 767px) {
  .why-section,
  section.why-section {
    min-height: 0 !important;
    margin-top: 0 !important;
    padding: 3.8rem 0 3.6rem !important;
    background: #fff !important;
    overflow: hidden !important;
  }
  .why-section::before,
  section.why-section::before {
    display: none !important;
    content: none !important;
  }
  .why-section .section-heading,
  section.why-section .section-heading {
    width: calc(100% - 4rem) !important;
    gap: 1rem !important;
  }
  .why-section .section-heading h2,
  section.why-section .section-heading h2 {
    width: 100% !important;
    font-size: clamp(2.55rem, 8.6vw, 3.55rem) !important;
    line-height: .96 !important;
  }
  .why-section .section-heading p,
  section.why-section .section-heading p {
    width: 100% !important;
    font-size: 1rem !important;
    line-height: 1.5rem !important;
  }
  .why-image,
  section.why-section .why-image {
    position: relative !important;
    left: 50% !important;
    top: auto !important;
    width: 112vw !important;
    height: 20rem !important;
    margin: 2rem 0 0 !important;
    transform: translateX(-50%) !important;
  }
  .why-image img,
  .why-image video,
  section.why-section .why-image img,
  section.why-section .why-image video {
    object-position: center 58% !important;
  }
  .why-cards,
  section.why-section .why-cards {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: calc(100% - 4rem) !important;
    min-height: 0 !important;
    margin: -1.4rem auto 0 !important;
    transform: none !important;
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
    padding: 1.35rem !important;
    border-radius: 1.25rem !important;
  }
  .why-cards h3,
  section.why-section .why-cards h3 {
    font-size: 1.18rem !important;
    margin-bottom: .45rem !important;
  }
  .why-cards p,
  section.why-section .why-cards p {
    font-size: .95rem !important;
    line-height: 1.38rem !important;
  }
  .why-caption,
  section.why-section .why-caption {
    position: relative !important;
    left: auto !important;
    bottom: auto !important;
    width: calc(100% - 4rem) !important;
    margin: 1rem auto 0 !important;
    transform: none !important;
    font-size: .95rem !important;
    line-height: 1.3rem !important;
  }
}

/* =========================================================
   WE PYRO IT v1.0.8 — WHY SECTION RESTORED FROM APPROVED HTML
   Uses the older approved static HTML/CSS structure for this section.
   Editable Gutenberg fields are still kept, but the front-end layout matches
   the provided approved section: heading, paragraph, overlay cards, image, caption.
   ========================================================= */
.why-section-old-html,
section.why-section-old-html {
  position: relative !important;
  z-index: 2 !important;
  min-height: 79.6rem !important;
  margin-top: 0 !important;
  padding: 4rem 0 0 !important;
  background: var(--off) !important;
  overflow: hidden !important;
  text-align: center !important;
}
.why-section-old-html::before,
section.why-section-old-html::before {
  display: none !important;
  content: none !important;
}
.why-section-old-html .section-heading,
section.why-section-old-html .section-heading {
  position: relative !important;
  z-index: 4 !important;
  width: min(calc(100% - var(--page-pad)), 64.7rem) !important;
  max-width: 64.7rem !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1rem !important;
  text-align: center !important;
}
.why-section-old-html .eyebrow,
section.why-section-old-html .eyebrow {
  margin: 0 auto .4rem !important;
}
.why-section-old-html .section-heading h2,
section.why-section-old-html .section-heading h2 {
  width: 45.25rem !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  font-family: var(--display) !important;
  font-size: 4.72rem !important;
  font-weight: 700 !important;
  line-height: .95 !important;
  letter-spacing: .04rem !important;
  text-transform: uppercase !important;
  color: #1f1e1e !important;
  text-align: center !important;
}
.why-section-old-html .section-heading h2 span,
section.why-section-old-html .section-heading h2 span {
  display: block !important;
  color: var(--red) !important;
}
.why-section-old-html .section-heading p,
section.why-section-old-html .section-heading p {
  display: block !important;
  width: 45.25rem !important;
  max-width: 100% !important;
  margin: .45rem auto 0 !important;
  font-family: var(--body) !important;
  font-size: 1rem !important;
  line-height: 1.5rem !important;
  color: #1f1e1e !important;
  opacity: 1 !important;
  text-align: center !important;
}
.why-section-old-html .why-image,
section.why-section-old-html .why-image {
  position: absolute !important;
  z-index: 1 !important;
  left: 50% !important;
  right: auto !important;
  top: auto !important;
  bottom: 4.1rem !important;
  width: 116.94rem !important;
  max-width: 116.94rem !important;
  height: 48.53rem !important;
  margin: 0 !important;
  transform: translateX(-50%) !important;
  overflow: hidden !important;
  background: transparent !important;
}
.why-section-old-html .why-image img,
.why-section-old-html .why-image video,
section.why-section-old-html .why-image img,
section.why-section-old-html .why-image video {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center 62% !important;
  background: transparent !important;
}
.why-section-old-html .why-caption,
section.why-section-old-html .why-caption {
  position: absolute !important;
  z-index: 2 !important;
  left: 50% !important;
  right: auto !important;
  top: auto !important;
  bottom: 3.05rem !important;
  transform: translateX(-50%) !important;
  width: min(calc(100% - 4rem), 100.76rem) !important;
  margin: 0 !important;
  padding: .7rem 1.2rem !important;
  background: rgba(78,78,78,.82) !important;
  color: #fff !important;
  font-family: var(--display) !important;
  font-size: 1.16rem !important;
  line-height: 1.4rem !important;
  font-weight: 500 !important;
  text-align: center !important;
}
.why-section-old-html .why-cards,
section.why-section-old-html .why-cards {
  position: absolute !important;
  z-index: 3 !important;
  left: 50% !important;
  right: auto !important;
  top: 27.85rem !important;
  bottom: auto !important;
  transform: translateX(-50%) !important;
  width: min(calc(100% - 4rem), 100.76rem) !important;
  max-width: 100.76rem !important;
  min-height: 23.05rem !important;
  margin: 0 !important;
  padding: 4.55rem 4.7rem !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 2.8rem !important;
  border: 0 !important;
  border-radius: .25rem !important;
  background: rgba(0,0,0,.82) !important;
  color: #fff !important;
  text-align: left !important;
}
.why-section-old-html .why-cards article,
section.why-section-old-html .why-cards article {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}
.why-section-old-html .why-cards h3,
section.why-section-old-html .why-cards h3 {
  margin: 0 0 1.35rem !important;
  padding: 0 !important;
  font-family: var(--body) !important;
  font-size: 1.82rem !important;
  font-weight: 700 !important;
  line-height: 1.12 !important;
  color: #fff !important;
}
.why-section-old-html .why-cards p,
section.why-section-old-html .why-cards p {
  margin: 0 !important;
  padding: 0 !important;
  font-family: var(--dm) !important;
  font-size: 1.03rem !important;
  line-height: 1.72rem !important;
  color: #fff !important;
}

@media (min-width: 768px) and (max-width: 1199px) {
  .why-section-old-html,
  section.why-section-old-html {
    min-height: 66rem !important;
    padding-top: 3.8rem !important;
  }
  .why-section-old-html .section-heading,
  section.why-section-old-html .section-heading {
    width: calc(100% - 5rem) !important;
  }
  .why-section-old-html .section-heading h2,
  section.why-section-old-html .section-heading h2 {
    width: 39rem !important;
    font-size: clamp(3.1rem, 5.2vw, 3.95rem) !important;
  }
  .why-section-old-html .section-heading p,
  section.why-section-old-html .section-heading p {
    width: 38rem !important;
  }
  .why-section-old-html .why-image,
  section.why-section-old-html .why-image {
    width: 112vw !important;
    height: 38rem !important;
    bottom: 4.1rem !important;
  }
  .why-section-old-html .why-cards,
  section.why-section-old-html .why-cards {
    top: 24rem !important;
    width: calc(100% - 4rem) !important;
    min-height: 15rem !important;
    padding: 2.4rem 2rem !important;
    gap: 1.25rem !important;
  }
  .why-section-old-html .why-cards h3,
  section.why-section-old-html .why-cards h3 {
    font-size: 1.15rem !important;
    line-height: 1.22 !important;
    margin-bottom: .75rem !important;
  }
  .why-section-old-html .why-cards p,
  section.why-section-old-html .why-cards p {
    font-size: .82rem !important;
    line-height: 1.32rem !important;
  }
  .why-section-old-html .why-caption,
  section.why-section-old-html .why-caption {
    width: calc(100% - 4rem) !important;
    font-size: 1rem !important;
  }
}

@media (max-width: 767px) {
  .why-section-old-html,
  section.why-section-old-html {
    min-height: 0 !important;
    padding: 3.6rem 0 3.4rem !important;
    background: var(--off) !important;
  }
  .why-section-old-html .section-heading,
  section.why-section-old-html .section-heading {
    width: calc(100% - var(--page-pad)) !important;
  }
  .why-section-old-html .section-heading h2,
  section.why-section-old-html .section-heading h2 {
    width: 100% !important;
    font-size: clamp(2.55rem, 8.55vw, 3.55rem) !important;
    line-height: .96 !important;
  }
  .why-section-old-html .section-heading p,
  section.why-section-old-html .section-heading p {
    width: 100% !important;
    font-size: 1rem !important;
    line-height: 1.5rem !important;
  }
  .why-section-old-html .why-image,
  section.why-section-old-html .why-image {
    position: relative !important;
    left: 50% !important;
    top: auto !important;
    bottom: auto !important;
    width: 112vw !important;
    max-width: none !important;
    height: 18rem !important;
    margin: 1.9rem 0 0 !important;
    transform: translateX(-50%) !important;
  }
  .why-section-old-html .why-cards,
  section.why-section-old-html .why-cards {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: calc(100% - var(--page-pad)) !important;
    min-height: 0 !important;
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
    margin: -1.05rem auto 0 !important;
    padding: 1.35rem !important;
    border-radius: 1.2rem !important;
  }
  .why-section-old-html .why-cards h3,
  section.why-section-old-html .why-cards h3 {
    font-size: 1.22rem !important;
    line-height: 1.25 !important;
    margin-bottom: .45rem !important;
  }
  .why-section-old-html .why-cards p,
  section.why-section-old-html .why-cards p {
    font-size: .96rem !important;
    line-height: 1.38rem !important;
  }
  .why-section-old-html .why-caption,
  section.why-section-old-html .why-caption {
    position: relative !important;
    left: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: calc(100% - var(--page-pad)) !important;
    margin: 1rem auto 0 !important;
    font-size: .95rem !important;
    line-height: 1.3rem !important;
  }
}

/* =========================================================
   v1.0.14 QA FIXES — requested edits, text-safe
   ========================================================= */

/* Services bottom: closer to Figma gradient and position */
.services-section {
  min-height: 0 !important;
  padding-top: 7rem !important;
  padding-bottom: 4.75rem !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.24), rgba(255,255,255,0) 18rem),
    linear-gradient(180deg, #ff080a 0%, #b5090f 34%, #2a0708 67%, #7f7f7f 86%, #ffffff 100%) !important;
  overflow: hidden !important;
}
.services-bg {
  background: radial-gradient(circle at 50% 101%, rgba(255,255,255,.86), rgba(255,255,255,.12) 16rem, rgba(255,255,255,0) 28rem) !important;
}
.services-list {
  margin-bottom: 0 !important;
}

/* Why section: Figma-style spacing, two-line heading, no overlap */
.why-section,
.why-section-old-html {
  position: relative !important;
  min-height: 84.6rem !important;
  padding: 3.6rem 0 0 !important;
  margin: 0 !important;
  background: #fff !important;
  overflow: hidden !important;
}
.why-section .section-heading,
.why-section-old-html .section-heading {
  position: relative !important;
  z-index: 6 !important;
  width: min(calc(100% - 4rem), 50rem) !important;
  max-width: 50rem !important;
  margin: 0 auto !important;
  text-align: center !important;
}
.why-section .section-heading h2,
.why-section-old-html .section-heading h2 {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 1.25rem 0 0 !important;
  font-family: var(--display) !important;
  font-size: clamp(3.65rem, 4.15vw, 4.45rem) !important;
  line-height: .94 !important;
  letter-spacing: .045rem !important;
  text-align: center !important;
  text-transform: uppercase !important;
  color: #171717 !important;
}
.why-section .section-heading h2 .why-title-line,
.why-section-old-html .section-heading h2 .why-title-line,
.why-section .section-heading h2 span,
.why-section-old-html .section-heading h2 span {
  display: block !important;
}
.why-section .section-heading h2 .why-title-red,
.why-section-old-html .section-heading h2 .why-title-red,
.why-section .section-heading h2 span,
.why-section-old-html .section-heading h2 span {
  color: #d20404 !important;
}
.why-section .section-heading p,
.why-section-old-html .section-heading p {
  width: min(100%, 49rem) !important;
  max-width: 49rem !important;
  margin: 1.35rem auto 0 !important;
  font-size: 1.25rem !important;
  line-height: 1.86rem !important;
  color: #171717 !important;
}
.why-image {
  position: absolute !important;
  z-index: 1 !important;
  left: 50% !important;
  top: 29.1rem !important;
  bottom: auto !important;
  width: 100vw !important;
  max-width: 124.25rem !important;
  height: 51.55rem !important;
  margin: 0 !important;
  transform: translateX(-50%) !important;
  overflow: hidden !important;
  background: transparent !important;
}
.why-image img,
.why-image video {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 43% !important;
}
.why-cards {
  position: absolute !important;
  z-index: 4 !important;
  left: 50% !important;
  top: 29.2rem !important;
  transform: translateX(-50%) !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  gap: 3rem !important;
  width: min(calc(100% - 4rem), 107rem) !important;
  min-height: 14.2rem !important;
  margin: 0 !important;
  padding: 3.4rem 3.6rem !important;
  border-radius: .55rem !important;
  background: rgba(0,0,0,.82) !important;
  color: #fff !important;
}
.why-cards article {
  padding: 0 !important;
  border: 0 !important;
  color: #fff !important;
}
.why-cards h3 {
  margin: 0 0 2.25rem !important;
  font-size: 1.9rem !important;
  line-height: 1.18 !important;
  color: #fff !important;
}
.why-cards p {
  margin: 0 !important;
  font-size: 1.08rem !important;
  line-height: 1.68rem !important;
  color: #fff !important;
}
.why-caption {
  position: absolute !important;
  z-index: 5 !important;
  left: 50% !important;
  right: auto !important;
  bottom: 2.65rem !important;
  top: auto !important;
  width: min(calc(100% - 4rem), 109.4rem) !important;
  height: 4.5rem !important;
  margin: 0 !important;
  padding: .6rem 1.25rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transform: translateX(-50%) !important;
  background: #505050 !important;
  color: #fff !important;
  font-family: var(--display) !important;
  font-size: 1.85rem !important;
  line-height: 1.15 !important;
  text-align: center !important;
  white-space: nowrap !important;
}

/* Reviews: black from top, reduced top padding, real slider */
.reviews-section {
  padding-top: 3.25rem !important;
  padding-bottom: 5rem !important;
  background: linear-gradient(180deg, #000 0%, #000 62%, #430606 86%, #9a1014 100%) !important;
  color: #fff !important;
  overflow: hidden !important;
}
.reviews-section .section-heading {
  margin-top: 0 !important;
}
.review-slider {
  position: relative !important;
  width: min(calc(100% - 4rem), 99.8rem) !important;
  margin: 3rem auto 0 !important;
  overflow: visible !important;
}
.reviews-track {
  display: flex !important;
  grid-template-columns: none !important;
  gap: 1.7rem !important;
  overflow-x: auto !important;
  scroll-snap-type: x mandatory !important;
  scroll-behavior: smooth !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
  padding: .25rem 0 1.2rem !important;
}
.reviews-track::-webkit-scrollbar { display: none !important; }
.review-card {
  flex: 0 0 calc((100% - 3.4rem) / 3) !important;
  min-width: 0 !important;
  scroll-snap-align: start !important;
}
.slider-arrow {
  z-index: 8 !important;
}

/* Footer contact box: equal top and bottom padding */
.contact-pill {
  align-items: center !important;
  padding: .48rem !important;
  gap: .55rem !important;
}
.contact-pill > div {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  padding: .58rem .78rem !important;
}
.contact-pill p {
  align-items: center !important;
  margin: 0 !important;
  min-height: 1.55rem !important;
  line-height: 1.25rem !important;
}
.contact-pill .btn,
.contact-pill .btn-red {
  min-height: 3.2rem !important;
  height: auto !important;
  padding: .85rem 1.65rem !important;
  line-height: 1 !important;
}

@media (min-width: 768px) and (max-width: 1199px) {
  .why-section,
  .why-section-old-html {
    min-height: 76rem !important;
  }
  .why-section .section-heading h2,
  .why-section-old-html .section-heading h2 {
    font-size: clamp(3rem, 5.2vw, 4rem) !important;
  }
  .why-image {
    top: 27.5rem !important;
    height: 43rem !important;
  }
  .why-cards {
    top: 27.4rem !important;
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 2rem !important;
    padding: 2.4rem !important;
  }
  .why-caption {
    height: auto !important;
    min-height: 3.8rem !important;
    font-size: 1.25rem !important;
    white-space: normal !important;
  }
}

@media (max-width: 767px) {
  .services-section {
    padding-top: 3.8rem !important;
    padding-bottom: 3.6rem !important;
    background: linear-gradient(180deg, #ff080a 0%, #b5090f 35%, #210607 70%, #747474 88%, #fff 100%) !important;
  }
  .services-list {
    margin-top: 1.8rem !important;
    padding-top: 0 !important;
  }

  .why-section,
  .why-section-old-html {
    min-height: 0 !important;
    padding: 3.5rem 0 3.4rem !important;
    overflow: hidden !important;
  }
  .why-section .section-heading,
  .why-section-old-html .section-heading {
    width: calc(100% - 3.2rem) !important;
  }
  .why-section .section-heading h2,
  .why-section-old-html .section-heading h2 {
    font-size: clamp(2.75rem, 11.8vw, 4.2rem) !important;
    line-height: .94 !important;
    margin-top: 1rem !important;
  }
  .why-section .section-heading p,
  .why-section-old-html .section-heading p {
    font-size: 1.05rem !important;
    line-height: 1.55rem !important;
    margin-top: 1.1rem !important;
  }
  .why-image {
    position: relative !important;
    top: auto !important;
    left: 50% !important;
    width: 100vw !important;
    max-width: none !important;
    height: 18.5rem !important;
    margin: 1.7rem 0 0 !important;
    transform: translateX(-50%) !important;
  }
  .why-image img,
  .why-image video {
    object-position: center 47% !important;
  }
  .why-caption {
    position: relative !important;
    left: auto !important;
    bottom: auto !important;
    width: calc(100% - 3.2rem) !important;
    height: auto !important;
    min-height: 3.3rem !important;
    margin: -.25rem auto 0 !important;
    padding: .55rem .9rem !important;
    transform: none !important;
    font-size: .92rem !important;
    line-height: 1.25rem !important;
    white-space: normal !important;
  }
  .why-cards {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    width: calc(100% - 3.2rem) !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    min-height: 0 !important;
    margin: 0 auto !important;
    padding: 1.25rem 1.15rem !important;
    transform: none !important;
    border-radius: 0 0 1.2rem 1.2rem !important;
  }
  .why-cards article {
    padding: .4rem 0 .75rem !important;
  }
  .why-cards h3 {
    margin: 0 0 .5rem !important;
    font-size: 1.2rem !important;
    line-height: 1.3rem !important;
  }
  .why-cards p {
    font-size: .98rem !important;
    line-height: 1.45rem !important;
  }

  .reviews-section {
    padding-top: 3.2rem !important;
  }
  .review-slider {
    width: calc(100% - 3.2rem) !important;
    margin-top: 2.3rem !important;
  }
  .reviews-track {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 1rem !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
  }
  .review-card {
    flex: 0 0 100% !important;
    scroll-snap-align: start !important;
  }

  .contact-pill {
    padding: .5rem !important;
  }
  .contact-pill > div {
    padding: .7rem .8rem !important;
  }
  .contact-pill .btn,
  .contact-pill .btn-red {
    min-height: 3.35rem !important;
    padding: .95rem 1.1rem !important;
  }
}

/* =========================================================
   v1.0.15 REAL QA LOCKS
   Base: text-restored stable theme. These rules only target
   the requested broken areas: services bottom fade, why cards,
   testimonials, and footer contact pill.
   ========================================================= */

/* 7) Services bottom: closer Figma fade and tighter position before Why */
.services-section {
  position: relative !important;
  padding-bottom: 8.6rem !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.22) 0, rgba(255,255,255,0) 18rem),
    linear-gradient(180deg,
      #ff0709 0%,
      #b60b10 31%,
      #250707 68%,
      #4d4d4d 84%,
      #f8f8f8 100%) !important;
}
.services-section::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 11rem !important;
  background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 78%) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
.services-section .section-heading,
.services-section .services-list {
  position: relative !important;
  z-index: 2 !important;
}
.services-list {
  margin-bottom: 0 !important;
}

/* 1/2/6) Why Choose Us: exact readable two-line title and no overlap */
.why-section-old-html,
section.why-section-old-html {
  position: relative !important;
  z-index: 3 !important;
  min-height: 84rem !important;
  margin-top: -5.8rem !important;
  padding: 8.8rem 0 0 !important;
  background: linear-gradient(to bottom, rgba(255,255,255,0) 0, #fff 6.8rem, #fff 100%) !important;
  overflow: hidden !important;
}
.why-section-old-html .section-heading,
section.why-section-old-html .section-heading {
  position: relative !important;
  z-index: 6 !important;
  width: min(calc(100% - 5rem), 68rem) !important;
  max-width: 68rem !important;
  margin: 0 auto !important;
  gap: 1.05rem !important;
}
.why-section-old-html .section-heading h2,
section.why-section-old-html .section-heading h2 {
  display: block !important;
  width: min(64rem, 100%) !important;
  max-width: 64rem !important;
  margin: .45rem auto 0 !important;
  font-size: clamp(3.55rem, 4.25vw, 4.8rem) !important;
  line-height: .95 !important;
  letter-spacing: .035rem !important;
  text-align: center !important;
  text-transform: uppercase !important;
  color: #1f1e1e !important;
}
.why-section-old-html .section-heading h2 .why-title-line,
section.why-section-old-html .section-heading h2 .why-title-line,
.why-section-old-html .section-heading h2 span,
section.why-section-old-html .section-heading h2 span {
  display: block !important;
  width: 100% !important;
  white-space: nowrap !important;
}
.why-section-old-html .section-heading h2 .why-title-main,
section.why-section-old-html .section-heading h2 .why-title-main {
  color: #1f1e1e !important;
}
.why-section-old-html .section-heading h2 .why-title-red,
section.why-section-old-html .section-heading h2 .why-title-red,
.why-section-old-html .section-heading h2 span:not(.why-title-main),
section.why-section-old-html .section-heading h2 span:not(.why-title-main) {
  color: #d20404 !important;
}
.why-section-old-html .section-heading p,
section.why-section-old-html .section-heading p {
  position: relative !important;
  z-index: 7 !important;
  display: block !important;
  width: min(52rem, 100%) !important;
  margin: 1.25rem auto 0 !important;
  font-size: 1.13rem !important;
  line-height: 1.72rem !important;
  color: #1f1e1e !important;
  opacity: 1 !important;
  text-align: center !important;
}
.why-section-old-html .why-image,
section.why-section-old-html .why-image {
  position: absolute !important;
  z-index: 1 !important;
  left: 50% !important;
  top: 31.5rem !important;
  bottom: auto !important;
  width: 112rem !important;
  max-width: 112rem !important;
  height: 45.5rem !important;
  transform: translateX(-50%) !important;
  overflow: hidden !important;
}
.why-section-old-html .why-image img,
.why-section-old-html .why-image video,
section.why-section-old-html .why-image img,
section.why-section-old-html .why-image video {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center 58% !important;
}
.why-section-old-html .why-cards,
section.why-section-old-html .why-cards {
  position: absolute !important;
  z-index: 4 !important;
  left: 50% !important;
  top: 31.4rem !important;
  bottom: auto !important;
  transform: translateX(-50%) !important;
  width: min(calc(100% - 5rem), 104rem) !important;
  min-height: 21.6rem !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 2.8rem !important;
  padding: 3.35rem 4.15rem !important;
  background: rgba(0,0,0,.82) !important;
  border-radius: .35rem !important;
  color: #fff !important;
  text-align: left !important;
}
.why-section-old-html .why-cards h3,
section.why-section-old-html .why-cards h3 {
  margin: 0 0 1.45rem !important;
  font-family: var(--body) !important;
  font-size: clamp(1.45rem, 1.55vw, 2rem) !important;
  line-height: 1.16 !important;
  color: #fff !important;
}
.why-section-old-html .why-cards p,
section.why-section-old-html .why-cards p {
  margin: 0 !important;
  font-family: var(--dm) !important;
  font-size: 1.05rem !important;
  line-height: 1.68rem !important;
  color: #fff !important;
}
.why-section-old-html .why-caption,
section.why-section-old-html .why-caption {
  position: absolute !important;
  z-index: 5 !important;
  left: 50% !important;
  bottom: 5.7rem !important;
  top: auto !important;
  transform: translateX(-50%) !important;
  width: min(calc(100% - 5rem), 104rem) !important;
  min-height: 4.05rem !important;
  padding: .72rem 1.35rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #505050 !important;
  color: #fff !important;
  font-size: clamp(1.35rem, 1.6vw, 1.75rem) !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
  text-align: center !important;
}

/* 3/4) Reviews: black at top, reduced top padding, real horizontal slider */
.reviews-section,
section.reviews-section {
  position: relative !important;
  padding-top: 2.6rem !important;
  padding-bottom: 5.2rem !important;
  background: linear-gradient(180deg, #000 0%, #000 70%, #350505 88%, #9a1014 100%) !important;
  color: #fff !important;
  overflow: hidden !important;
}
.reviews-section .section-heading,
section.reviews-section .section-heading {
  margin-top: 0 !important;
}
.review-slider {
  position: relative !important;
  width: min(calc(100% - 5rem), 101rem) !important;
  margin: 2.6rem auto 0 !important;
  overflow: visible !important;
}
.reviews-track,
.review-slider [data-review-track] {
  display: flex !important;
  grid-template-columns: none !important;
  gap: 1.75rem !important;
  width: 100% !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  scroll-snap-type: x mandatory !important;
  scroll-behavior: smooth !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
  padding: .35rem 0 1.25rem !important;
}
.reviews-track::-webkit-scrollbar { display: none !important; }
.review-card {
  flex: 0 0 calc((100% - 3.5rem) / 3) !important;
  width: calc((100% - 3.5rem) / 3) !important;
  min-width: 0 !important;
  scroll-snap-align: start !important;
}
.slider-arrow {
  z-index: 15 !important;
}

/* 5) Footer contact box equal top/bottom and compact button */
.contact-pill {
  align-items: center !important;
  padding: .42rem !important;
  gap: .5rem !important;
}
.contact-pill > div {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: .25rem !important;
  padding: .56rem .75rem !important;
}
.contact-pill p {
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  min-height: 1.38rem !important;
  line-height: 1.2rem !important;
}
.contact-pill .btn,
.contact-pill .btn-red,
.footer-copy .contact-pill .btn {
  min-height: 3.05rem !important;
  height: 3.05rem !important;
  padding: .7rem 1.42rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

@media (min-width: 768px) and (max-width: 1199px) {
  .why-section-old-html,
  section.why-section-old-html {
    min-height: 76rem !important;
    margin-top: -4.2rem !important;
    padding-top: 7.4rem !important;
  }
  .why-section-old-html .section-heading h2,
  section.why-section-old-html .section-heading h2 {
    width: min(48rem, 100%) !important;
    font-size: clamp(3rem, 5.1vw, 4rem) !important;
  }
  .why-section-old-html .section-heading p,
  section.why-section-old-html .section-heading p {
    width: min(42rem, 100%) !important;
    font-size: 1rem !important;
  }
  .why-section-old-html .why-image,
  section.why-section-old-html .why-image {
    top: 28rem !important;
    width: 112vw !important;
    height: 40rem !important;
  }
  .why-section-old-html .why-cards,
  section.why-section-old-html .why-cards {
    top: 28.1rem !important;
    width: calc(100% - 4rem) !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1.7rem 2rem !important;
    min-height: 20rem !important;
    padding: 2.4rem !important;
  }
  .why-section-old-html .why-caption,
  section.why-section-old-html .why-caption {
    width: calc(100% - 4rem) !important;
    bottom: 5rem !important;
    white-space: normal !important;
    font-size: 1.15rem !important;
  }
  .review-card {
    flex-basis: calc((100% - 1.75rem) / 2) !important;
    width: calc((100% - 1.75rem) / 2) !important;
  }
}

@media (max-width: 767px) {
  .services-section {
    padding-bottom: 4.8rem !important;
    background: linear-gradient(180deg, #ff0709 0%, #b60b10 34%, #240707 67%, #5d5d5d 87%, #fff 100%) !important;
  }
  .services-section::after {
    height: 6rem !important;
  }

  .why-section-old-html,
  section.why-section-old-html {
    min-height: 0 !important;
    margin-top: -2.2rem !important;
    padding: 4.2rem 0 3.6rem !important;
    background: linear-gradient(to bottom, rgba(255,255,255,0), #fff 3rem, #fff 100%) !important;
  }
  .why-section-old-html .section-heading,
  section.why-section-old-html .section-heading {
    width: calc(100% - 3.2rem) !important;
  }
  .why-section-old-html .section-heading h2,
  section.why-section-old-html .section-heading h2 {
    width: 100% !important;
    font-size: clamp(2rem, 9vw, 3rem) !important;
    line-height: .98 !important;
    margin-top: .55rem !important;
  }
  .why-section-old-html .section-heading h2 .why-title-line,
  section.why-section-old-html .section-heading h2 .why-title-line,
  .why-section-old-html .section-heading h2 span,
  section.why-section-old-html .section-heading h2 span {
    white-space: normal !important;
  }
  .why-section-old-html .section-heading p,
  section.why-section-old-html .section-heading p {
    width: 100% !important;
    font-size: 1.02rem !important;
    line-height: 1.55rem !important;
    margin-top: .95rem !important;
  }
  .why-section-old-html .why-image,
  section.why-section-old-html .why-image {
    position: relative !important;
    z-index: 1 !important;
    left: 50% !important;
    top: auto !important;
    bottom: auto !important;
    width: 104vw !important;
    height: 17.6rem !important;
    margin: 1.5rem 0 0 !important;
    transform: translateX(-50%) !important;
  }
  .why-section-old-html .why-caption,
  section.why-section-old-html .why-caption {
    position: relative !important;
    z-index: 3 !important;
    left: auto !important;
    bottom: auto !important;
    top: auto !important;
    transform: none !important;
    width: calc(100% - 3.2rem) !important;
    min-height: 3.25rem !important;
    margin: -.15rem auto 0 !important;
    padding: .58rem .9rem !important;
    font-size: .9rem !important;
    line-height: 1.18rem !important;
    white-space: normal !important;
  }
  .why-section-old-html .why-cards,
  section.why-section-old-html .why-cards {
    position: relative !important;
    z-index: 4 !important;
    left: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: calc(100% - 3.2rem) !important;
    min-height: 0 !important;
    grid-template-columns: 1fr !important;
    gap: .45rem !important;
    margin: 0 auto !important;
    padding: 1.3rem 1.25rem !important;
    border-radius: 0 0 1.2rem 1.2rem !important;
  }
  .why-section-old-html .why-cards h3,
  section.why-section-old-html .why-cards h3 {
    font-size: 1.2rem !important;
    line-height: 1.28rem !important;
    margin-bottom: .45rem !important;
  }
  .why-section-old-html .why-cards p,
  section.why-section-old-html .why-cards p {
    font-size: .96rem !important;
    line-height: 1.4rem !important;
  }

  .reviews-section,
  section.reviews-section {
    padding-top: 2.6rem !important;
    padding-bottom: 4.5rem !important;
  }
  .review-slider {
    width: calc(100% - 3.2rem) !important;
    margin-top: 2rem !important;
  }
  .reviews-track,
  .review-slider [data-review-track] {
    gap: 1rem !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    padding-bottom: 1rem !important;
  }
  .review-card {
    flex: 0 0 100% !important;
    width: 100% !important;
    scroll-snap-align: start !important;
  }
  .slider-arrow {
    width: 2.8rem !important;
    height: 2.8rem !important;
  }

  .contact-pill {
    align-items: stretch !important;
    padding: .48rem !important;
  }
  .contact-pill > div {
    padding: .68rem .78rem !important;
  }
  .contact-pill .btn,
  .contact-pill .btn-red,
  .footer-copy .contact-pill .btn {
    height: 3.25rem !important;
    min-height: 3.25rem !important;
    padding: .82rem 1.1rem !important;
  }
}

/* =========================================================
   v1.0.16 MOBILE WHY + TESTIMONIAL QA LOCKS
   - Keeps all page text safe/restored.
   - Balances mobile h2 sizing.
   - Fixes the bad mobile Why card/caption stack.
   - Removes any white background from testimonial slider wrapper.
   ========================================================= */

/* Testimonials must sit on black/red section only; no white slider wrapper */
.reviews-section,
section.reviews-section {
  background: linear-gradient(180deg, #000 0%, #000 68%, #330506 88%, #9a1014 100%) !important;
  color: #fff !important;
}
.review-slider,
.review-slider.container-wide,
.reviews-track,
.review-slider [data-review-track] {
  background: transparent !important;
  box-shadow: none !important;
}
.review-card {
  background: #fff !important;
  color: #2c3135 !important;
}
.review-card h3 {
  color: #171717 !important;
}

@media (max-width: 767px) {
  /* All normal mobile section H2 headings use the same scale.
     Services stays intentionally larger because it is a special display word in Figma. */
  .about-title,
  .portfolio-section .section-heading h2,
  .process-section .section-heading h2,
  .reviews-section .section-heading h2,
  .shop-section .section-heading h2,
  .faq-content h2,
  .footer-top h2,
  .events-copy h2,
  .why-section-old-html .section-heading h2,
  section.why-section-old-html .section-heading h2 {
    font-size: clamp(2.65rem, 9.6vw, 3.55rem) !important;
    line-height: .98 !important;
    letter-spacing: .02rem !important;
  }

  /* Why section mobile layout: clean sequence with no caption/card collision */
  .why-section-old-html,
  section.why-section-old-html {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    margin-top: -2.6rem !important;
    padding: 4.2rem 0 3.7rem !important;
    background: linear-gradient(to bottom, rgba(255,255,255,0) 0, #fff 4.2rem, #fff 100%) !important;
    overflow: hidden !important;
  }

  .why-section-old-html .section-heading,
  section.why-section-old-html .section-heading {
    order: 1 !important;
    width: calc(100% - 3.2rem) !important;
    max-width: none !important;
    gap: .8rem !important;
    margin: 0 auto !important;
  }

  .why-section-old-html .section-heading h2,
  section.why-section-old-html .section-heading h2 {
    width: 100% !important;
    max-width: 100% !important;
    margin: .65rem auto 0 !important;
  }

  .why-section-old-html .section-heading h2 .why-title-line,
  section.why-section-old-html .section-heading h2 .why-title-line,
  .why-section-old-html .section-heading h2 span,
  section.why-section-old-html .section-heading h2 span {
    display: block !important;
    white-space: normal !important;
  }

  .why-section-old-html .section-heading p,
  section.why-section-old-html .section-heading p {
    width: 100% !important;
    max-width: 100% !important;
    margin: .95rem auto 0 !important;
    font-size: 1.02rem !important;
    line-height: 1.55rem !important;
  }

  .why-section-old-html .why-image,
  section.why-section-old-html .why-image {
    order: 2 !important;
    position: relative !important;
    z-index: 1 !important;
    left: 50% !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: 102vw !important;
    max-width: none !important;
    height: 17.8rem !important;
    margin: 1.45rem 0 0 !important;
    transform: translateX(-50%) !important;
    overflow: hidden !important;
  }

  .why-section-old-html .why-image img,
  .why-section-old-html .why-image video,
  section.why-section-old-html .why-image img,
  section.why-section-old-html .why-image video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center 48% !important;
  }

  .why-section-old-html .why-cards,
  section.why-section-old-html .why-cards {
    order: 3 !important;
    position: relative !important;
    z-index: 3 !important;
    left: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .85rem !important;
    width: calc(100% - 3.2rem) !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 1rem auto 0 !important;
    padding: 1.35rem 1.25rem 1.45rem !important;
    border-radius: 1.2rem !important;
    background: #2b2b2b !important;
    color: #fff !important;
    text-align: left !important;
  }

  .why-section-old-html .why-cards article,
  section.why-section-old-html .why-cards article {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
  }

  .why-section-old-html .why-cards h3,
  section.why-section-old-html .why-cards h3 {
    font-size: 1.22rem !important;
    line-height: 1.32rem !important;
    margin: 0 0 .35rem !important;
    font-weight: 700 !important;
    color: #fff !important;
  }

  .why-section-old-html .why-cards p,
  section.why-section-old-html .why-cards p {
    font-size: .98rem !important;
    line-height: 1.42rem !important;
    margin: 0 !important;
    color: #fff !important;
  }

  .why-section-old-html .why-caption,
  section.why-section-old-html .why-caption {
    order: 4 !important;
    position: relative !important;
    z-index: 2 !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: calc(100% - 3.2rem) !important;
    max-width: none !important;
    min-height: 0 !important;
    height: auto !important;
    margin: .85rem auto 0 !important;
    padding: .7rem .9rem !important;
    border-radius: .4rem !important;
    background: #505050 !important;
    color: #fff !important;
    font-size: .9rem !important;
    line-height: 1.25rem !important;
    white-space: normal !important;
    text-align: center !important;
  }

  /* Reviews slider: black section behind the white cards on mobile */
  .reviews-section,
  section.reviews-section {
    padding-top: 2.9rem !important;
    background: linear-gradient(180deg, #000 0%, #000 72%, #3d0607 90%, #9a1014 100%) !important;
  }

  .review-slider,
  .review-slider.container-wide,
  .reviews-track,
  .review-slider [data-review-track] {
    background: transparent !important;
  }

  .reviews-track,
  .review-slider [data-review-track] {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 1rem !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    padding: .2rem 0 1rem !important;
  }

  .review-card {
    flex: 0 0 100% !important;
    width: 100% !important;
    scroll-snap-align: start !important;
  }
}


/* =========================================================
   v1.0.17 EVENT BACKGROUND + TESTIMONIAL SHADOW FIX
   ========================================================= */

/* Testimonials: keep the cards white but make the glow/shadow black, not white. */
.review-card,
.review-card:hover,
.reviews-section .review-card,
section.reviews-section .review-card {
  box-shadow: 0 .35rem 3.2rem rgba(0, 0, 0, .42) !important;
}

/* Event card: when the full background image/video field is used, it becomes
   the single whole-card background. No separate decorative shape images or
   extra border overlay should sit above it. */
.events-card.has-events-full-bg {
  background: #031332 !important;
  isolation: isolate !important;
}
.events-card.has-events-full-bg::before {
  content: none !important;
  display: none !important;
}
.events-card.has-events-full-bg .events-bg-media {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border-radius: inherit !important;
  overflow: hidden !important;
  pointer-events: none !important;
}
.events-card.has-events-full-bg .events-bg-media img,
.events-card.has-events-full-bg .events-bg-media video {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}
.events-card.has-events-full-bg .event-shape {
  display: none !important;
}
.events-card.has-events-full-bg .events-copy {
  position: relative !important;
  z-index: 2 !important;
}

@media (max-width: 767px) {
  .review-card,
  .review-card:hover,
  .reviews-section .review-card,
  section.reviews-section .review-card {
    box-shadow: 0 .3rem 2.2rem rgba(0, 0, 0, .48) !important;
  }
  .events-card.has-events-full-bg .events-bg-media img,
  .events-card.has-events-full-bg .events-bg-media video {
    object-fit: cover !important;
    object-position: center center !important;
  }
}

/* =========================================================
   v1.0.18 BACKGROUND + TESTIMONIAL FINAL FIXES
   ========================================================= */

/* 1) Testimonials: no visible shadow/glow at all. */
.review-card,
.review-card:hover,
.reviews-section .review-card,
section.reviews-section .review-card,
.review-slider .review-card,
.review-slider .review-card:hover {
  box-shadow: none !important;
  filter: none !important;
}
.review-card::before,
.review-card::after {
  box-shadow: none !important;
  filter: none !important;
}

/* 2) Optional full testimonial section background from Gutenberg. */
.reviews-section.has-reviews-bg,
section.reviews-section.has-reviews-bg {
  position: relative !important;
  overflow: hidden !important;
  background: #000 !important;
  isolation: isolate !important;
}
.reviews-section.has-reviews-bg::before,
.reviews-section.has-reviews-bg::after,
section.reviews-section.has-reviews-bg::before,
section.reviews-section.has-reviews-bg::after {
  content: none !important;
  display: none !important;
}
.reviews-bg-media {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
  pointer-events: none !important;
}
.reviews-bg-media img,
.reviews-bg-media video {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center center !important;
}
.reviews-section.has-reviews-bg .section-heading,
.reviews-section.has-reviews-bg .review-slider,
section.reviews-section.has-reviews-bg .section-heading,
section.reviews-section.has-reviews-bg .review-slider {
  position: relative !important;
  z-index: 2 !important;
}
.reviews-section.has-reviews-bg .review-slider,
.reviews-section.has-reviews-bg .reviews-track,
section.reviews-section.has-reviews-bg .review-slider,
section.reviews-section.has-reviews-bg .reviews-track {
  background: transparent !important;
}

/* 3) Events full background must cover the entire card, not render as a small corner image. */
.events-card.has-events-full-bg,
section.events-section .events-card.has-events-full-bg {
  position: relative !important;
  overflow: hidden !important;
  background: #031332 !important;
  isolation: isolate !important;
}
.events-card.has-events-full-bg::before,
.events-card.has-events-full-bg::after,
section.events-section .events-card.has-events-full-bg::before,
section.events-section .events-card.has-events-full-bg::after {
  content: none !important;
  display: none !important;
}
.events-card.has-events-full-bg > .events-bg-media,
section.events-section .events-card.has-events-full-bg > .events-bg-media {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  transform: none !important;
  border-radius: inherit !important;
  overflow: hidden !important;
  pointer-events: none !important;
}
.events-card.has-events-full-bg > .events-bg-media img,
.events-card.has-events-full-bg > .events-bg-media video,
section.events-section .events-card.has-events-full-bg > .events-bg-media img,
section.events-section .events-card.has-events-full-bg > .events-bg-media video {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  transform: none !important;
  object-fit: cover !important;
  object-position: center center !important;
}
.events-card.has-events-full-bg .event-shape,
section.events-section .events-card.has-events-full-bg .event-shape {
  display: none !important;
}
.events-card.has-events-full-bg .events-copy,
section.events-section .events-card.has-events-full-bg .events-copy {
  position: relative !important;
  z-index: 3 !important;
}

@media (max-width: 767px) {
  .review-card,
  .review-card:hover,
  .reviews-section .review-card,
  section.reviews-section .review-card,
  .review-slider .review-card,
  .review-slider .review-card:hover {
    box-shadow: none !important;
    filter: none !important;
  }
  .events-card.has-events-full-bg > .events-bg-media img,
  .events-card.has-events-full-bg > .events-bg-media video {
    object-fit: cover !important;
    object-position: center center !important;
  }
}


/* =========================================================
   v1.0.19 VERIFIED FIXES
   These are intentionally at the very end so they win over all older theme rules.
   ========================================================= */

/* 1) Testimonials: absolutely no card shadow/glow/filter from any earlier rule. */
.reviews-section .review-card,
.reviews-section .review-card:hover,
.reviews-section .review-card:focus,
.reviews-section .review-card:focus-within,
.review-slider .review-card,
.review-slider .review-card:hover,
.review-card,
.review-card:hover {
  box-shadow: none !important;
  filter: none !important;
  text-shadow: none !important;
  outline: none !important;
}
.reviews-section .review-card::before,
.reviews-section .review-card::after,
.review-slider .review-card::before,
.review-slider .review-card::after,
.review-card::before,
.review-card::after {
  content: none !important;
  display: none !important;
  box-shadow: none !important;
  filter: none !important;
}
.reviews-section .review-slider,
.reviews-section .reviews-track,
.review-slider,
.reviews-track {
  box-shadow: none !important;
  filter: none !important;
}

/* 2) Testimonials custom background: full-section cover when uploaded in Gutenberg. */
.reviews-section.has-reviews-bg {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  background-color: #000 !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
.reviews-section.has-reviews-bg::before,
.reviews-section.has-reviews-bg::after {
  display: none !important;
  content: none !important;
}
.reviews-section.has-reviews-bg .reviews-bg-media {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
  pointer-events: none !important;
}
.reviews-section.has-reviews-bg .reviews-bg-media img,
.reviews-section.has-reviews-bg .reviews-bg-media video {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: none !important;
}
.reviews-section.has-reviews-bg .section-heading,
.reviews-section.has-reviews-bg .review-slider {
  position: relative !important;
  z-index: 2 !important;
}

/* 3) Events uploaded full-card background: always cover entire card. */
.events-card.has-events-full-bg,
.events-card.has-events-full-bg.container-wide,
section.events-section .events-card.has-events-full-bg {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  background-color: #031332 !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
.events-card.has-events-full-bg::before,
.events-card.has-events-full-bg::after {
  display: none !important;
  content: none !important;
}
.events-card.has-events-full-bg .events-bg-media {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  border-radius: inherit !important;
  overflow: hidden !important;
  transform: none !important;
  pointer-events: none !important;
}
.events-card.has-events-full-bg .events-bg-media img,
.events-card.has-events-full-bg .events-bg-media video {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: none !important;
}
.events-card.has-events-full-bg .event-shape {
  display: none !important;
}
.events-card.has-events-full-bg .events-copy {
  position: relative !important;
  z-index: 3 !important;
}

@media (max-width: 767px) {
  .reviews-section .review-card,
  .reviews-section .review-card:hover,
  .review-slider .review-card,
  .review-slider .review-card:hover,
  .review-card,
  .review-card:hover {
    box-shadow: none !important;
    filter: none !important;
  }
  .events-card.has-events-full-bg .events-bg-media,
  .events-card.has-events-full-bg .events-bg-media img,
  .events-card.has-events-full-bg .events-bg-media video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }
}

/* =========================================================
   v1.0.20 WHY CARD VERTICAL CENTER FIX
   Keeps the same Figma section layout, but centers the dark-card content
   vertically inside the overlay on desktop/tablet/mobile.
   ========================================================= */
.why-section .why-cards,
.why-section-old-html .why-cards,
section.why-section .why-cards,
section.why-section-old-html .why-cards {
  align-items: center !important;
}
.why-section .why-cards article,
.why-section-old-html .why-cards article,
section.why-section .why-cards article,
section.why-section-old-html .why-cards article {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-self: stretch !important;
  min-height: 100% !important;
}
.why-section .why-cards h3,
.why-section-old-html .why-cards h3,
section.why-section .why-cards h3,
section.why-section-old-html .why-cards h3 {
  margin-top: 0 !important;
}
@media (min-width: 768px) and (max-width: 1199px) {
  .why-section .why-cards,
  .why-section-old-html .why-cards,
  section.why-section .why-cards,
  section.why-section-old-html .why-cards {
    align-items: center !important;
  }
  .why-section .why-cards article,
  .why-section-old-html .why-cards article,
  section.why-section .why-cards article,
  section.why-section-old-html .why-cards article {
    justify-content: center !important;
    min-height: 100% !important;
  }
}
@media (max-width: 767px) {
  .why-section .why-cards,
  .why-section-old-html .why-cards,
  section.why-section .why-cards,
  section.why-section-old-html .why-cards {
    align-items: stretch !important;
  }
  .why-section .why-cards article,
  .why-section-old-html .why-cards article,
  section.why-section .why-cards article,
  section.why-section-old-html .why-cards article {
    justify-content: center !important;
    min-height: auto !important;
  }
}

/* =========================================================
   v1.0.21 GLOBAL PREMIUM BUTTON HOVER
   Applied to the uploaded current theme only.
   Adds a consistent fire-sweep + magnetic arrow hover to all main CTAs
   without changing page layout or Gutenberg fields.
   ========================================================= */
.btn,
.service-row a,
.product-image a,
.portfolio-btn,
.process-btn,
.shop-btn,
.events-copy .btn,
.about-copy .btn,
.footer-copy .btn,
.contact-pill .btn {
  position: relative !important;
  isolation: isolate !important;
  overflow: hidden !important;
  transition:
    transform .28s cubic-bezier(.2,.9,.2,1),
    color .28s ease,
    background-color .28s ease,
    border-color .28s ease,
    box-shadow .28s ease,
    letter-spacing .28s ease !important;
}

.btn::before,
.service-row a::before,
.product-image a::before,
.portfolio-btn::before,
.process-btn::before,
.shop-btn::before,
.events-copy .btn::before,
.about-copy .btn::before,
.footer-copy .btn::before,
.contact-pill .btn::before {
  content: "" !important;
  position: absolute !important;
  inset: -2px !important;
  z-index: -1 !important;
  pointer-events: none !important;
  background:
    radial-gradient(circle at 18% 50%, rgba(221,34,47,.48) 0%, rgba(221,34,47,0) 34%),
    linear-gradient(112deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.38) 38%, rgba(221,34,47,.58) 52%, rgba(255,255,255,0) 72%) !important;
  transform: translateX(-120%) skewX(-16deg) !important;
  opacity: 0 !important;
  transition: transform .58s cubic-bezier(.18,.86,.24,1), opacity .28s ease !important;
}

.btn::after,
.service-row a::after,
.portfolio-btn::after,
.process-btn::after,
.shop-btn::after,
.events-copy .btn::after,
.about-copy .btn::after,
.footer-copy .btn::after,
.contact-pill .btn::after {
  content: "" !important;
  position: absolute !important;
  z-index: 2 !important;
  right: 1.15rem !important;
  top: 50% !important;
  width: .46rem !important;
  height: .46rem !important;
  border-top: 2px solid currentColor !important;
  border-right: 2px solid currentColor !important;
  opacity: 0 !important;
  transform: translate(-.55rem,-50%) rotate(45deg) !important;
  transition: opacity .25s ease, transform .32s cubic-bezier(.2,.9,.2,1) !important;
  pointer-events: none !important;
}

.btn:hover,
.service-row a:hover,
.product-image a:hover,
.portfolio-btn:hover,
.shop-btn:hover,
.events-copy .btn:hover,
.about-copy .btn:hover,
.footer-copy .btn:hover,
.contact-pill .btn:hover {
  transform: translateY(-.12rem) !important;
  letter-spacing: .065rem !important;
  box-shadow: 0 .85rem 2rem rgba(0,0,0,.18), 0 0 0 1px rgba(221,34,47,.24) inset !important;
}

.process-btn:hover {
  transform: translateX(-50%) translateY(-.12rem) !important;
  letter-spacing: .065rem !important;
  box-shadow: 0 .85rem 2rem rgba(0,0,0,.18), 0 0 0 1px rgba(221,34,47,.24) inset !important;
}

.btn:hover::before,
.service-row a:hover::before,
.product-image a:hover::before,
.portfolio-btn:hover::before,
.process-btn:hover::before,
.shop-btn:hover::before,
.events-copy .btn:hover::before,
.about-copy .btn:hover::before,
.footer-copy .btn:hover::before,
.contact-pill .btn:hover::before {
  opacity: 1 !important;
  transform: translateX(118%) skewX(-16deg) !important;
}

.btn:hover::after,
.service-row a:hover::after,
.portfolio-btn:hover::after,
.process-btn:hover::after,
.shop-btn:hover::after,
.events-copy .btn:hover::after,
.about-copy .btn:hover::after,
.footer-copy .btn:hover::after,
.contact-pill .btn:hover::after {
  opacity: 1 !important;
  transform: translate(.05rem,-50%) rotate(45deg) !important;
}

.btn-dark:hover,
.portfolio-btn:hover {
  background: #d20404 !important;
  border-color: #d20404 !important;
  color: #fff !important;
}

.btn-red:hover,
.footer-copy .btn-red:hover,
.contact-pill .btn-red:hover,
.shop-btn:hover {
  background: #111 !important;
  border-color: #d20404 !important;
  color: #fff !important;
}

.btn-outline-light:hover,
.process-btn:hover,
.events-copy .btn:hover {
  background: #fff !important;
  border-color: #fff !important;
  color: #0b0b0b !important;
}

.btn-outline-dark:hover,
.about-copy .btn:hover,
.service-row a:hover {
  background: #0b0b0b !important;
  border-color: #0b0b0b !important;
  color: #fff !important;
}

/* Keep slider arrows, FAQ toggles, menu toggles, and shop arrows unchanged. */
.slider-arrow::before,
.slider-arrow::after,
.shop-arrow::before,
.shop-arrow::after,
.faq-item button::before,
.faq-item button::after,
.mobile-menu-toggle::before,
.mobile-menu-toggle::after {
  content: none !important;
  display: none !important;
}
.slider-arrow:hover,
.shop-arrow:hover,
.faq-item button:hover,
.mobile-menu-toggle:hover {
  transform: none !important;
  box-shadow: none !important;
  letter-spacing: inherit !important;
}

@media (max-width: 767px) {
  .btn::after,
  .service-row a::after,
  .portfolio-btn::after,
  .process-btn::after,
  .shop-btn::after,
  .events-copy .btn::after,
  .about-copy .btn::after,
  .footer-copy .btn::after,
  .contact-pill .btn::after {
    right: 1rem !important;
    width: .4rem !important;
    height: .4rem !important;
  }
  .btn:hover,
  .service-row a:hover,
  .portfolio-btn:hover,
  .shop-btn:hover,
  .events-copy .btn:hover,
  .about-copy .btn:hover,
  .footer-copy .btn:hover,
  .contact-pill .btn:hover {
    transform: translateY(-.08rem) !important;
    letter-spacing: .045rem !important;
  }
  .process-btn:hover {
    transform: translateX(-50%) translateY(-.08rem) !important;
    letter-spacing: .045rem !important;
  }
}

/* =========================================================
   v1.0.22 MERCH VIEW PRODUCT RESTORE
   Keeps the premium global hover on main CTA buttons, but removes it from
   the merch product overlay so the product image/layout stays exactly like before.
   ========================================================= */
.product-image a {
  position: absolute !important;
  left: 1.65rem !important;
  right: 1.65rem !important;
  bottom: 1.35rem !important;
  z-index: 4 !important;
  min-height: 4.45rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0 1.95rem !important;
  border-radius: 999px !important;
  background: #171717 !important;
  color: #fff !important;
  font-size: 1rem !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0 !important;
  isolation: auto !important;
  overflow: visible !important;
  box-shadow: none !important;
  opacity: 0 !important;
  transform: translateY(.5rem) !important;
  pointer-events: none !important;
  transition: opacity .28s ease, transform .28s ease, background-color .28s ease !important;
}

.product-image a::before,
.product-image a::after {
  content: none !important;
  display: none !important;
}

.product-image a:hover {
  background: #171717 !important;
  color: #fff !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
  transform: translateY(0) !important;
}

.product-card:hover .product-image a,
.product-card:focus-within .product-image a,
.product-card.featured:hover .product-image a,
.product-card.featured:focus-within .product-image a {
  opacity: 1 !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}

.product-image a span {
  display: inline-grid !important;
  place-items: center !important;
  width: 2.85rem !important;
  height: 2.85rem !important;
  border-radius: 50% !important;
  background: #fff !important;
  color: #000 !important;
  flex: 0 0 auto !important;
}

@media (max-width: 767px) {
  .product-image a {
    position: absolute !important;
    left: 1rem !important;
    right: 1rem !important;
    bottom: 1rem !important;
    min-height: 3.25rem !important;
    padding: 0 .95rem !important;
    font-size: .78rem !important;
    letter-spacing: 0 !important;
    opacity: 1 !important;
    transform: none !important;
    pointer-events: auto !important;
  }
  .product-image a:hover {
    transform: none !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
  }
}


/* =========================================================
   ABOUT PAGE SYSTEM — v1.0.23
   Built to reuse the same We Pyro It header, footer, buttons,
   typography, gutter scale, and mobile rules as the homepage.
   ========================================================= */

.about-page {
  --about-red: #d20404;
  --about-black: #000;
  --about-card: #242424;
  background: #000;
  color: #fff;
}

.about-hero-page {
  position: relative;
  min-height: 87.5rem;
  background-color: #111;
  background-size: cover;
  background-position: center top;
  overflow: hidden;
}
.about-hero-page::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to top, rgba(0,0,0,.14) 48%, rgba(48,48,48,.95) 93%),
    linear-gradient(90deg, rgba(0,0,0,.28), rgba(0,0,0,.04), rgba(0,0,0,.3));
  z-index: 0;
  pointer-events: none;
}
.about-hero-page > .announcement,
.about-hero-page > .site-header,
.about-page-hero-content,
.about-stats-wrap {
  position: relative;
  z-index: 2;
}
.about-page .site-header {
  background: transparent;
}
.about-page-hero-content {
  margin: 4.6rem auto 0;
  text-align: center;
  width: min(calc(100% - var(--page-pad)), 68.4rem);
}
.about-page-hero-content .eyebrow {
  margin-inline: auto;
}
.about-page-hero-content h1 {
  margin: 2.65rem 0 1.8rem;
  font-family: var(--display);
  font-size: clamp(4.1rem, 4.75vw, 4.95rem);
  line-height: 1.13;
  letter-spacing: .02em;
  text-transform: uppercase;
  color: #fff;
}
.about-page-hero-content h1 span {
  display: block;
}
.about-page-hero-content p {
  max-width: 47.6rem;
  margin: 0 auto;
  font-size: 1.375rem;
  line-height: 2.06rem;
  color: #fff;
}
.about-page-hero-content .hero-actions {
  margin-top: 2.25rem;
}
.about-stats-wrap {
  margin: 8.1rem auto 0;
  width: min(calc(100% - 0rem), 122.5rem);
  background: #fff;
  border-radius: .875rem;
  padding: 3.875rem 5.06rem;
}
.about-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.05rem;
}
.about-stat-card {
  min-height: 27.5rem;
  padding: 0 3.2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2.55rem;
  align-items: center;
  text-align: center;
  color: #fff;
  background: #242424;
  border: 1px solid rgba(0,0,0,.55);
  border-radius: .5rem;
}
.about-stat-card h3 {
  margin: 0;
  font-family: var(--body);
  font-size: 2.1rem;
  font-weight: 700;
  line-height: 1.1;
}
.about-stat-card p {
  margin: 0;
  max-width: 18.7rem;
  font-size: 1.095rem;
  line-height: 1.78rem;
  color: #fff;
}

.about-story-section {
  position: relative;
  background: #000;
  padding: 6.4rem 0 6rem;
  overflow: hidden;
}
.about-story {
  position: relative;
  min-height: 75.5rem;
}
.about-story-image {
  position: absolute;
  left: 5.9rem;
  top: 13.9rem;
  width: 55.5rem;
  height: 53.9rem;
  overflow: hidden;
  background: #111;
}
.about-story-image img,
.about-story-image video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.about-story-title-wrap {
  position: absolute;
  top: 0;
  left: 36.6rem;
  width: 56.75rem;
  z-index: 3;
}
.about-story-logo {
  width: 6rem;
  height: auto;
  display: block;
  margin-bottom: 1.4rem;
}
.about-story-title-wrap h2 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(3.5rem, 3.2vw, 3.6rem);
  line-height: 1.18;
  font-weight: 500;
  color: #fff;
}
.about-story-copy {
  position: absolute;
  right: 0;
  top: 51.4rem;
  width: 35.2rem;
  z-index: 3;
}
.about-story-copy p {
  margin: 0 0 1.25rem;
  font-size: 1.425rem;
  line-height: 2.14rem;
  color: #fff;
}
.about-story-badge {
  position: absolute;
  left: 1.3rem;
  bottom: 1.1rem;
  width: 18.15rem;
  height: 9.45rem;
  transform: rotate(-11.25deg);
  background: #fff;
  border: .94rem solid var(--about-red);
  border-radius: 1.75rem;
  box-shadow: 0 0 .45rem rgba(0,0,0,.25);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .9rem;
  z-index: 4;
}
.about-story-badge span {
  display: block;
  transform: rotate(-.35deg);
  font-family: var(--body);
  font-weight: 700;
  font-size: .97rem;
  line-height: 1.32rem;
  color: #000;
  text-align: center;
}

.about-services-section {
  position: relative;
  background:
    linear-gradient(to bottom, #000 0%, #000 2%, #100 18%, #1a0505 45%, #191919 68%, #1c1c1c 100%);
  padding: 3.6rem 0 7rem;
  overflow: hidden;
  color: #fff;
}
.about-services-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 16% 38%, rgba(210,4,4,.22), transparent 22rem),
    linear-gradient(to bottom, rgba(0,0,0,.0), rgba(250,250,250,.12));
  opacity: .95;
  pointer-events: none;
}
.about-services-heading {
  position: relative;
  z-index: 2;
  min-height: 18rem;
}
.about-services-heading h2 {
  position: absolute;
  right: 0;
  top: 1.7rem;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(8rem, 9.6vw, 12.7rem);
  line-height: .88;
  color: #faf9f5;
  text-transform: uppercase;
  letter-spacing: .02em;
}
.about-services-heading p {
  position: absolute;
  left: 4.8rem;
  top: 11rem;
  width: 35.4rem;
  margin: 0;
  font-size: 1.425rem;
  line-height: 2.14rem;
  color: #fff;
}
.about-services-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 49.6rem 1fr;
  gap: 5.8rem;
  align-items: start;
  margin-top: .7rem;
}
.about-service-tabs {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding-top: 1.3rem;
}
.about-service-tab {
  min-height: 6.75rem;
  margin-bottom: -1.93rem;
  padding: 1.75rem 2.2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 1.53rem;
  color: #fff;
  font-family: var(--display);
  font-weight: 600;
  font-size: 2.04rem;
  line-height: 1.34;
  letter-spacing: .01em;
  text-decoration: none;
  transition: background .22s ease, transform .22s ease, color .22s ease;
}
.about-service-tab:hover,
.about-service-tab:focus,
.about-service-tab.active {
  background: #dd222f;
  color: #fff;
  transform: translateX(.25rem);
}
.about-service-tab b {
  display: grid;
  place-items: center;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.75);
  font-family: var(--body);
  font-weight: 500;
}
.about-services-visual {
  width: 49.6rem;
  height: 49.75rem;
  border: 1px solid #fff;
  overflow: hidden;
  justify-self: end;
}
.about-services-visual img,
.about-services-visual video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.about-page-faq {
  background: #f4f4f4 !important;
  padding: 4.75rem 0 5.15rem !important;
}
.about-page .footer-section {
  margin-top: 0;
}

/* About page tablet QA */
@media (min-width: 768px) and (max-width: 1199px) {
  .about-hero-page {
    min-height: 76rem;
  }
  .about-page-hero-content {
    margin-top: 4rem;
  }
  .about-page-hero-content h1 {
    font-size: clamp(3.2rem, 5.3vw, 4.1rem);
  }
  .about-stats-wrap {
    margin-top: 5.5rem;
    width: calc(100% - 4rem);
    padding: 2rem;
  }
  .about-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .about-stat-card {
    min-height: 18rem;
  }
  .about-story {
    min-height: 74rem;
  }
  .about-story-title-wrap {
    left: 29rem;
    width: 44rem;
  }
  .about-story-image {
    left: 0;
    width: 44rem;
    height: 48rem;
  }
  .about-story-copy {
    right: 0;
    width: 30rem;
  }
  .about-services-grid {
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
  }
  .about-services-heading h2 {
    font-size: clamp(6rem, 10vw, 8rem);
  }
  .about-services-heading p {
    left: 0;
  }
  .about-services-visual {
    width: 100%;
    height: 38rem;
  }
  .about-service-tab {
    font-size: 1.55rem;
  }
}

/* About page mobile build */
@media (max-width: 767px) {
  .about-hero-page {
    min-height: 0;
    padding-bottom: 0;
    background-position: center top;
  }
  .about-page-hero-content {
    width: calc(100% - 3.4rem);
    margin-top: 2.7rem;
    padding-bottom: 2rem;
  }
  .about-page-hero-content h1 {
    font-size: clamp(2.7rem, 9.3vw, 4rem);
    line-height: 1.02;
    margin: 1.6rem 0 1.1rem;
  }
  .about-page-hero-content p {
    font-size: 1rem;
    line-height: 1.55rem;
  }
  .about-page-hero-content .hero-actions {
    flex-direction: column;
    width: 100%;
    gap: .8rem;
  }
  .about-page-hero-content .btn {
    width: 100%;
  }
  .about-stats-wrap {
    width: 100%;
    margin-top: 1.8rem;
    border-radius: 0;
    padding: 1.6rem 1.25rem;
  }
  .about-stats {
    grid-template-columns: 1fr;
    gap: .85rem;
  }
  .about-stat-card {
    min-height: 12.5rem;
    gap: 1.2rem;
    padding: 1.6rem 1.25rem;
  }
  .about-stat-card h3 {
    font-size: 1.45rem;
  }
  .about-stat-card p {
    font-size: .98rem;
    line-height: 1.45rem;
  }
  .about-story-section {
    padding: 3.5rem 0 4rem;
  }
  .about-story {
    width: calc(100% - 3.4rem);
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 1.55rem;
  }
  .about-story-title-wrap,
  .about-story-image,
  .about-story-copy,
  .about-story-badge {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    width: 100%;
  }
  .about-story-title-wrap {
    order: 1;
  }
  .about-story-logo {
    width: 5.8rem;
    margin-bottom: .9rem;
  }
  .about-story-title-wrap h2 {
    font-size: clamp(2rem, 6.9vw, 2.75rem);
    line-height: 1.12;
  }
  .about-story-image {
    order: 2;
    height: 24rem;
  }
  .about-story-copy {
    order: 3;
  }
  .about-story-copy p {
    font-size: 1rem;
    line-height: 1.56rem;
  }
  .about-story-badge {
    order: 4;
    max-width: 16rem;
    height: 6.8rem;
    margin: .4rem 0 0;
    transform: rotate(-7deg);
    border-width: .55rem;
  }
  .about-story-badge span {
    font-size: .78rem;
    line-height: 1.1rem;
  }
  .about-services-section {
    padding: 3rem 0 4rem;
  }
  .about-services-heading {
    min-height: 0;
    width: calc(100% - 3.4rem);
    display: flex;
    flex-direction: column-reverse;
    gap: 1.2rem;
  }
  .about-services-heading h2,
  .about-services-heading p {
    position: static;
    width: 100%;
  }
  .about-services-heading h2 {
    font-size: clamp(4.4rem, 17vw, 6.2rem);
    line-height: .88;
  }
  .about-services-heading p {
    font-size: 1rem;
    line-height: 1.55rem;
  }
  .about-services-grid {
    width: calc(100% - 3.4rem);
    grid-template-columns: 1fr;
    gap: 1.4rem;
    margin-top: 1.2rem;
  }
  .about-services-visual {
    order: 1;
    width: 100%;
    height: 21rem;
    justify-self: stretch;
  }
  .about-service-tabs {
    order: 2;
    padding-top: 0;
  }
  .about-service-tab {
    min-height: 4.25rem;
    margin-bottom: 0;
    padding: 1rem 1.15rem;
    border-bottom: 1px solid rgba(255,255,255,.35);
    border-radius: .8rem;
    font-size: 1.05rem;
  }
  .about-service-tab.active b {
    width: 2.35rem;
    height: 2.35rem;
  }
}

/* =========================================================
   ABOUT PAGE MOBILE + TABLET FINAL QA — v1.0.24
   Keeps the homepage global header/footer/button system.
   These rules only polish the new About page responsive flow.
   ========================================================= */
.about-page {
  overflow-x: hidden;
}
.about-page .hero-bg-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.about-page .hero-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

@media (min-width: 768px) and (max-width: 1199px) {
  .about-page .site-header .site-logo img,
  .about-page .site-logo img {
    max-width: 11.5rem !important;
    height: auto !important;
  }
  .about-hero-page {
    min-height: auto !important;
    padding-bottom: 3.2rem !important;
  }
  .about-page-hero-content {
    width: min(calc(100% - 4rem), 54rem) !important;
    margin-top: 4rem !important;
  }
  .about-page-hero-content h1 {
    font-size: clamp(3.2rem, 6vw, 4.8rem) !important;
    line-height: 1.04 !important;
  }
  .about-stats-wrap {
    width: calc(100% - 4rem) !important;
    margin-top: 4rem !important;
    padding: 2rem !important;
    border-radius: .95rem !important;
  }
  .about-stat-card {
    min-height: 17rem !important;
    padding: 2rem 1.5rem !important;
  }
  .about-story-section {
    padding: 5rem 0 5.2rem !important;
  }
  .about-story {
    width: calc(100% - 4rem) !important;
    min-height: 57rem !important;
  }
  .about-story-title-wrap {
    left: 28rem !important;
    width: calc(100% - 28rem) !important;
  }
  .about-story-title-wrap h2 {
    font-size: clamp(2.6rem, 4.2vw, 3.45rem) !important;
    line-height: 1.14 !important;
  }
  .about-story-logo {
    width: 8.8rem !important;
  }
  .about-story-image {
    left: 0 !important;
    top: 15rem !important;
    width: 44rem !important;
    height: 39rem !important;
  }
  .about-story-copy {
    top: 38rem !important;
    width: 28rem !important;
  }
  .about-story-copy p {
    font-size: 1.05rem !important;
    line-height: 1.65rem !important;
  }
  .about-services-section {
    padding: 4rem 0 5.5rem !important;
  }
  .about-services-heading {
    width: calc(100% - 4rem) !important;
    min-height: 15rem !important;
  }
  .about-services-heading h2 {
    font-size: clamp(6rem, 11vw, 9rem) !important;
  }
  .about-services-grid {
    width: calc(100% - 4rem) !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 2rem !important;
  }
  .about-services-visual {
    height: 36rem !important;
  }
  .about-page-faq .faq-panel {
    width: calc(100% - 4rem) !important;
    overflow: hidden !important;
  }
}

@media (max-width: 767px) {
  .about-page {
    background: #000 !important;
  }

  .about-hero-page {
    min-height: 0 !important;
    padding-bottom: 0 !important;
    background-position: center top !important;
  }
  .about-hero-page::before {
    background:
      linear-gradient(to bottom, rgba(0,0,0,.92) 0%, rgba(0,0,0,.42) 42%, rgba(0,0,0,.86) 100%),
      linear-gradient(90deg, rgba(0,0,0,.42), rgba(0,0,0,.08), rgba(0,0,0,.42)) !important;
  }
  .about-page .announcement {
    min-height: 3.4rem !important;
    padding: .45rem 1rem !important;
    gap: .7rem !important;
  }
  .about-page .announcement p {
    font-size: .78rem !important;
    line-height: 1.05rem !important;
    width: 11.5rem !important;
  }
  .about-page .countdown strong {
    font-size: 1.2rem !important;
    line-height: 1.1 !important;
  }
  .about-page .countdown small {
    font-size: .52rem !important;
  }

  .about-page .site-header {
    width: calc(100% - 2.2rem) !important;
    min-height: 4.8rem !important;
    padding-top: .8rem !important;
    padding-bottom: .8rem !important;
    z-index: 90 !important;
  }
  .about-page .site-logo img {
    max-width: 5.4rem !important;
    height: auto !important;
  }

  .about-page-hero-content {
    width: calc(100% - 2.8rem) !important;
    margin: 2rem auto 0 !important;
    padding: 0 0 1.7rem !important;
  }
  .about-page-hero-content .eyebrow {
    padding: .58rem .92rem !important;
    font-size: .68rem !important;
    line-height: .82rem !important;
    letter-spacing: .055em !important;
  }
  .about-page-hero-content h1 {
    max-width: 23rem !important;
    margin: 1.35rem auto 1rem !important;
    font-size: clamp(2.55rem, 9.7vw, 3.75rem) !important;
    line-height: 1.02 !important;
    letter-spacing: .018em !important;
  }
  .about-page-hero-content p {
    max-width: 22rem !important;
    font-size: 1.03rem !important;
    line-height: 1.58rem !important;
  }
  .about-page-hero-content .hero-actions {
    width: 100% !important;
    margin-top: 1.4rem !important;
    flex-direction: column !important;
    gap: .75rem !important;
  }
  .about-page-hero-content .btn {
    width: 100% !important;
    min-width: 0 !important;
    height: 3.55rem !important;
    min-height: 3.55rem !important;
    font-size: .86rem !important;
  }

  .about-stats-wrap {
    width: calc(100% - 2rem) !important;
    margin: 1.35rem auto 0 !important;
    padding: 1.05rem !important;
    border-radius: .9rem !important;
  }
  .about-stats {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .75rem !important;
  }
  .about-stat-card {
    min-height: 10.9rem !important;
    padding: 1.35rem 1.1rem !important;
    gap: .85rem !important;
    border-radius: .55rem !important;
  }
  .about-stat-card h3 {
    font-size: 1.42rem !important;
    line-height: 1.12 !important;
  }
  .about-stat-card p {
    max-width: 20.5rem !important;
    font-size: .98rem !important;
    line-height: 1.42rem !important;
  }

  .about-story-section {
    padding: 3.2rem 0 3.8rem !important;
    background: #000 !important;
  }
  .about-story {
    width: calc(100% - 2.8rem) !important;
    margin: 0 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 1.25rem !important;
  }
  .about-story-title-wrap,
  .about-story-image,
  .about-story-copy,
  .about-story-badge {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: 100% !important;
  }
  .about-story-title-wrap {
    order: 1 !important;
    z-index: 3 !important;
  }
  .about-story-logo {
    width: 5.4rem !important;
    margin: 0 0 .75rem !important;
  }
  .about-story-title-wrap h2 {
    font-size: clamp(2.02rem, 7.35vw, 2.85rem) !important;
    line-height: 1.09 !important;
    letter-spacing: -.01em !important;
  }
  .about-story-image {
    order: 2 !important;
    height: 24.2rem !important;
    margin-top: .45rem !important;
    overflow: hidden !important;
    border-radius: .2rem !important;
  }
  .about-story-image img,
  .about-story-image video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }
  .about-story-badge {
    order: 2 !important;
    z-index: 5 !important;
    width: 13.9rem !important;
    height: 6.15rem !important;
    margin: -6.45rem 0 1rem .2rem !important;
    transform: rotate(-8deg) !important;
    border-width: .5rem !important;
    border-radius: 1.15rem !important;
    padding: .5rem !important;
  }
  .about-story-badge span {
    font-size: .75rem !important;
    line-height: 1.05rem !important;
  }
  .about-story-copy {
    order: 3 !important;
    margin-top: .25rem !important;
  }
  .about-story-copy p {
    margin-bottom: 1rem !important;
    font-size: 1.03rem !important;
    line-height: 1.58rem !important;
  }

  .about-services-section {
    padding: 3.3rem 0 3.8rem !important;
    background:
      linear-gradient(to bottom, #000 0%, #0b0000 16%, #220808 45%, #1a1a1a 72%, #1c1c1c 100%) !important;
  }
  .about-services-heading {
    width: calc(100% - 2.8rem) !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 1rem !important;
  }
  .about-services-heading h2,
  .about-services-heading p {
    position: static !important;
    width: 100% !important;
  }
  .about-services-heading h2 {
    order: 1 !important;
    font-size: clamp(4.65rem, 18.5vw, 6.75rem) !important;
    line-height: .86 !important;
    letter-spacing: .012em !important;
  }
  .about-services-heading p {
    order: 2 !important;
    max-width: 23rem !important;
    font-size: 1.02rem !important;
    line-height: 1.58rem !important;
  }
  .about-services-grid {
    width: calc(100% - 2.8rem) !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.2rem !important;
    margin-top: 1.45rem !important;
  }
  .about-service-tabs {
    order: 1 !important;
    padding: 0 !important;
    gap: .08rem !important;
  }
  .about-service-tab {
    min-height: 3.8rem !important;
    margin: 0 !important;
    padding: .88rem 1rem !important;
    border-bottom: 1px solid rgba(255,255,255,.28) !important;
    border-radius: .65rem !important;
    font-size: 1rem !important;
    line-height: 1.22 !important;
  }
  .about-service-tab.active,
  .about-service-tab:hover,
  .about-service-tab:focus {
    transform: none !important;
  }
  .about-service-tab b {
    width: 2rem !important;
    height: 2rem !important;
    font-size: .9rem !important;
  }
  .about-services-visual {
    order: 2 !important;
    width: 100% !important;
    height: 21.2rem !important;
    border: 1px solid rgba(255,255,255,.72) !important;
  }

  .about-page-faq {
    padding: 3rem 0 3.5rem !important;
  }
  .about-page-faq .faq-panel {
    width: calc(100% - 2.8rem) !important;
    border-radius: 1rem !important;
    overflow: hidden !important;
  }
  .about-page-faq .faq-content h2 {
    font-size: clamp(2.05rem, 7.2vw, 2.85rem) !important;
    line-height: 1.04 !important;
  }
  .about-page-faq .faq-item button {
    font-size: 1rem !important;
    line-height: 1.22rem !important;
  }

  .about-page .footer-section {
    overflow: hidden !important;
  }
  .about-page .contact-pill {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ========================================================================== 
   v1.0.26 Services page rebuild from Figma node 126:1024
   Scoped so the homepage/About page CSS can stay untouched.
   ========================================================================== */
.wpi-services-page {
  --sp-black: #000;
  --sp-white: #fff;
  --sp-off: #fafafa;
  --sp-soft: #f4f4f4;
  --sp-red: #d20404;
  --sp-red-bright: #ff0707;
  --sp-text: #1f1e1e;
  --sp-card-dark: rgba(0, 0, 0, 0.82);
  --sp-container: 100rem;
  --sp-pad: 4rem;
  --sp-h2: clamp(3.35rem, 4.05vw, 4.05rem);
  background: var(--sp-off);
  color: var(--sp-text);
  font-family: var(--body);
  overflow: hidden;
}

.wpi-services-page .container-wide {
  width: min(calc(100% - var(--sp-pad)), var(--sp-container));
}

.wpi-services-page h1,
.wpi-services-page h2 {
  font-family: var(--display);
  font-weight: 700;
  text-transform: uppercase;
}

.wpi-services-page h2 {
  font-size: var(--sp-h2);
  line-height: 0.97;
  letter-spacing: 0.08rem;
}

.wpi-services-page h2 span {
  color: var(--sp-red);
}

/* Services page hero */
.wpi-sp-hero {
  position: relative;
  min-height: 50.7rem;
  color: var(--sp-white);
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.96) 0%, rgba(23,23,23,0.92) 38%, rgba(0,0,0,0.98) 100%),
    var(--wpi-sp-hero-image, var(--wpi-hero-image)) center top / cover no-repeat;
}

.wpi-sp-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(circle at 50% 23%, rgba(255,255,255,0.11), transparent 17rem),
    linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.24) 72%, rgba(0,0,0,1) 100%);
  pointer-events: none;
}

.wpi-sp-hero > * { position: relative; z-index: 2; }

.wpi-sp-hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.52;
  z-index: 0;
}

.wpi-sp-announcement {
  min-height: 4.6rem;
  padding-block: 1rem;
}

.wpi-sp-header.site-header {
  min-height: 9rem;
  grid-template-columns: 16.43rem 1fr 16.43rem;
}

.wpi-sp-header .site-logo img {
  width: 16.43rem;
  height: 5.73rem;
}

.wpi-sp-header .main-nav {
  gap: 2.35rem;
  font-size: 1.13rem;
}

.wpi-sp-header .header-contact {
  justify-self: end;
}

.wpi-sp-hero-content {
  margin-top: 1.8rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.7rem;
  text-align: center;
}

.wpi-sp-hero-content .eyebrow {
  min-height: 2.25rem;
  padding: 0.6rem 1.65rem;
}

.wpi-sp-hero-content h1 {
  width: min(100%, 64.4rem);
  margin: 0;
  font-size: clamp(3.6rem, 4.65vw, 4.05rem);
  line-height: 0.99;
  letter-spacing: 0.03rem;
}

.wpi-sp-hero-content h1 span {
  display: block;
}

.wpi-sp-hero-content p {
  width: min(100%, 44.75rem);
  margin: 0;
  color: rgba(255,255,255,0.96);
  font-size: 1.3rem;
  line-height: 1.95rem;
}

.wpi-sp-hero-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.82rem;
  margin-top: 0.2rem;
}

.wpi-sp-hero-actions .btn {
  min-height: 4.1rem;
  padding: 1.5rem 3.2rem;
}

/* White services body */
.wpi-sp-main-card {
  position: relative;
  z-index: 3;
  margin-top: 0;
  padding: 0 0 5.8rem;
  border-radius: 0.82rem 0.82rem 0 0;
  background: var(--sp-white);
}

.wpi-sp-intro {
  position: relative;
  min-height: 44rem;
  padding-top: 3.45rem;
}

.wpi-sp-intro-copy {
  position: relative;
  z-index: 2;
  width: 33rem;
}

.wpi-sp-intro-copy h2 {
  width: 61.5rem;
  margin: 0 0 2.8rem;
  color: var(--sp-black);
  font-size: clamp(3.1rem, 3.35vw, 3.16rem);
  line-height: 1.12;
  letter-spacing: 0;
}

.wpi-sp-feelings {
  position: relative;
  width: 28.8rem;
  margin-bottom: 1.3rem;
  padding-left: 2.05rem;
}

.wpi-sp-feelings p {
  position: relative;
  min-height: 2.62rem;
  display: flex;
  align-items: center;
  margin: 0.6rem 0;
  padding: 0 1.3rem;
  border-radius: 0 0.4rem 0.4rem 0;
  background: rgba(210,4,4,0.05);
  color: var(--sp-text);
  font-size: 1.23rem;
  line-height: 1.65rem;
}

.wpi-sp-feelings p::before {
  content: "";
  position: absolute;
  left: -2.05rem;
  top: 0.12rem;
  bottom: 0.12rem;
  width: 0.7rem;
  border-radius: 2rem;
  background: var(--sp-red);
}

.wpi-sp-intro-text {
  width: 26.7rem;
  margin: 2rem 0 0;
  color: var(--sp-text);
  font-size: 1.23rem;
  line-height: 1.84rem;
}

.wpi-sp-intro-art {
  position: absolute;
  z-index: 1;
  right: -6.3rem;
  top: 0;
  width: 69.7rem;
  height: 39.25rem;
  pointer-events: none;
}

.wpi-sp-intro-art img,
.wpi-sp-intro-art video {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.wpi-sp-ticker {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 4.25rem;
  height: 3.7rem;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #505050;
  color: var(--sp-white);
}

.wpi-sp-ticker p {
  margin: 0;
  font-family: var(--display);
  font-size: 1.41rem;
  font-weight: 500;
  line-height: 2.44rem;
  letter-spacing: 0.056rem;
  white-space: nowrap;
}

.wpi-sp-services {
  position: relative;
  margin-top: 0;
  padding: 2.6rem 0 0;
}

.wpi-sp-services > .container-wide {
  padding: 4.2rem 1.85rem 4.5rem;
  border-radius: 0.6rem;
  background: var(--sp-off);
}

.wpi-sp-services h2 {
  width: min(100%, 61.6rem);
  margin: 0 auto 4.05rem;
  color: var(--sp-black);
  text-align: center;
}

.wpi-sp-service-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4.2rem 1.75rem;
}

.wpi-sp-service-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.47rem;
}

.wpi-sp-service-media {
  height: 20.25rem;
  overflow: hidden;
  border-radius: 0.54rem;
  background: #111;
}

.wpi-sp-service-media img,
.wpi-sp-service-media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.wpi-sp-service-body {
  min-height: 13.9rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 2.05rem 1.6rem 1.55rem;
  border-radius: 0.54rem;
  background: var(--sp-white);
  text-align: center;
}

.wpi-sp-service-body h3 {
  margin: 0;
  color: var(--sp-black);
  font-size: 1.39rem;
  font-weight: 700;
  line-height: 1.22;
}

.wpi-sp-service-body p {
  width: min(100%, 18.95rem);
  min-height: 3.3rem;
  margin: 1.25rem 0 1.45rem;
  color: var(--sp-black);
  font-family: var(--dm);
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.34rem;
}

.wpi-sp-service-body a {
  width: 13.78rem;
  min-height: 2.34rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0.58px solid var(--sp-black);
  border-radius: 3.4rem;
  color: var(--sp-black);
  font-family: var(--inter);
  font-size: 0.94rem;
  line-height: 1.24rem;
  text-transform: lowercase;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}

.wpi-sp-service-body a:hover {
  background: var(--sp-black);
  color: var(--sp-white);
  transform: translateY(-0.08rem);
}

/* Black quote CTA */
.wpi-sp-quote-cta {
  padding: 0;
  background: var(--sp-black);
  border: 0.9rem solid var(--sp-white);
  color: var(--sp-white);
}

.wpi-sp-quote-inner {
  min-height: 41.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem 0 4rem;
  text-align: center;
}

.wpi-sp-quote-icon {
  width: 10.8rem;
  height: 13.75rem;
  margin-bottom: 2.05rem;
}

.wpi-sp-quote-icon img,
.wpi-sp-quote-icon video {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.wpi-sp-quote-inner h2 {
  width: min(100%, 49.65rem);
  margin: 0;
  color: var(--sp-white);
  font-size: clamp(3.15rem, 3.75vw, 3.21rem);
  line-height: 1.12;
}

.wpi-sp-quote-text {
  width: min(100%, 41.9rem);
  margin: 1.55rem 0 1.55rem;
  font-size: 1.3rem;
  line-height: 1.95rem;
}

.wpi-sp-quote-text p {
  margin: 0 0 0.8rem;
}

.wpi-sp-quote-inner .btn {
  width: auto;
  min-width: 23.75rem;
  min-height: 3.95rem;
  color: var(--sp-black);
}

/* Why choose services */
.wpi-sp-why {
  position: relative;
  padding: 4rem 0 4.25rem;
  background: var(--sp-off);
}

.wpi-sp-why .section-heading {
  gap: 1.5rem;
}

.wpi-sp-why .section-heading h2 {
  width: min(100%, 45.2rem);
  margin: 0;
  color: var(--sp-black);
  line-height: 0.94;
}

.wpi-sp-why .section-heading h2 span {
  display: block;
}

.wpi-sp-why .section-heading p {
  width: min(100%, 45.2rem);
  max-width: none;
  color: var(--sp-black);
  font-size: 1.34rem;
  line-height: 2.01rem;
}

.wpi-sp-why-cards {
  min-height: 25.65rem;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 3.1rem;
  margin-top: 5.2rem;
  padding: 4.65rem 4.75rem 3.8rem;
  border-radius: 0.45rem;
  background: var(--sp-card-dark);
  color: var(--sp-white);
}

.wpi-sp-why-cards article {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.wpi-sp-why-cards strong {
  display: block;
  margin-bottom: 3.18rem;
  color: transparent;
  -webkit-text-stroke: 1px rgba(255,255,255,0.45);
  font-family: var(--unbounded);
  font-size: 3.12rem;
  font-weight: 700;
  line-height: 1;
}

.wpi-sp-why-cards h3 {
  margin: 0 0 1.55rem;
  color: var(--sp-white);
  font-size: 1.79rem;
  font-weight: 700;
  line-height: 1.14;
}

.wpi-sp-why-cards p {
  margin: 0;
  color: var(--sp-white);
  font-family: var(--dm);
  font-size: 0.94rem;
  line-height: 1.52rem;
}

/* FAQ */
.wpi-sp-faq-section {
  padding: 4.15rem 0 3.8rem;
  background: var(--sp-off);
}

.wpi-sp-faq-panel {
  min-height: 39.05rem;
  display: grid;
  grid-template-columns: 38rem 1fr;
  align-items: center;
  gap: 4.8rem;
  padding: 3.1rem 6.6rem;
  border-radius: 1.5rem;
  background: var(--sp-white);
}

.wpi-sp-faq-art {
  align-self: end;
  width: 39.4rem;
  height: 22.6rem;
  transform: rotate(-1.07deg);
}

.wpi-sp-faq-art img,
.wpi-sp-faq-art video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.79;
}

.wpi-sp-faq-content h2 {
  width: min(100%, 41.6rem);
  margin: 0 0 2.35rem;
  color: #1b1919;
}

.wpi-sp-faq-list {
  width: 100%;
  gap: 0.74rem;
}

.wpi-sp-faq-list .faq-item {
  border-radius: 1.27rem;
}

.wpi-sp-faq-list .faq-item button {
  min-height: 4.82rem;
  padding: 1.6rem 1.49rem;
  font-size: 1.27rem;
}

/* Footer for services page */
.wpi-sp-footer {
  position: relative;
  min-height: 51.7rem;
  padding: 5.35rem 0 0;
  overflow: hidden;
  background: var(--sp-black);
  color: #f3f1e7;
}

.wpi-sp-footer::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8rem;
  width: 114.8rem;
  height: 18.7rem;
  transform: translateX(-50%);
  border-radius: 4.5rem 3.9rem 0 0;
  filter: blur(2px);
  background: linear-gradient(183deg, #000 18.8%, #8f0e0e 78.5%);
}

.wpi-sp-footer-inner { position: relative; z-index: 2; }

.wpi-sp-footer-top {
  display: grid;
  grid-template-columns: 39rem 1fr;
  gap: clamp(5rem, 19vw, 31rem);
}

.wpi-sp-footer-top > div:first-child > span {
  display: block;
  margin-bottom: 1.85rem;
  font-family: var(--inter);
  font-size: 0.96rem;
  letter-spacing: -0.01rem;
  text-transform: uppercase;
}

.wpi-sp-footer-top h2 {
  width: 38.5rem;
  margin: 0;
  color: var(--sp-white);
  font-size: 3.82rem;
  line-height: 0.96;
  letter-spacing: -0.03rem;
}

.wpi-sp-footer-copy {
  width: 35.25rem;
}

.wpi-sp-footer-copy p {
  margin: 0 0 1rem;
  font-family: var(--inter);
  font-size: 1.28rem;
  line-height: 1.92rem;
}

.wpi-sp-contact-pill {
  width: max-content;
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 1.6rem;
  padding: 0.56rem;
  border-radius: 0.24rem;
  background: rgba(255,255,255,0.19);
}

.wpi-sp-contact-pill > div {
  padding: 0.73rem 0.78rem;
  border-radius: 0.22rem;
  background: rgba(255,255,255,0.15);
}

.wpi-sp-contact-pill p {
  width: 19.4rem;
  display: flex;
  justify-content: space-between;
  gap: 2.6rem;
  margin: 0;
  font-family: var(--body);
  font-size: 0.77rem;
  font-weight: 600;
  line-height: 1.35rem;
  letter-spacing: 0.056rem;
}

.wpi-sp-contact-pill strong {
  font-weight: 600;
  text-transform: uppercase;
}

.wpi-sp-contact-pill .btn {
  min-height: 4.85rem;
  padding: 1.45rem 3.65rem;
  box-shadow: 0 0 0.56rem rgba(0,0,0,0.75);
}

.wpi-sp-footer-divider {
  height: 1px;
  margin-top: 5rem;
  background: rgba(163,163,163,0.4);
}

.wpi-sp-footer-logo {
  width: 24.1rem;
  height: 8.41rem;
  object-fit: contain;
  margin: 3.35rem auto 2.4rem;
}

.wpi-sp-footer-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem 2rem;
  font-family: var(--inter);
  font-size: 0.97rem;
  font-weight: 700;
  letter-spacing: 0.063rem;
  text-transform: uppercase;
}

.wpi-sp-socials {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin-top: 2.52rem;
  font-family: var(--inter);
  font-size: 1.17rem;
  text-transform: uppercase;
}

.wpi-sp-copyright {
  margin: 2.4rem 0 0;
  text-align: center;
  font-family: var(--inter);
  font-size: 1.13rem;
  line-height: 1.69rem;
}

@media (max-width: 1200px) {
  .wpi-services-page { --sp-pad: 2.6rem; }
  .wpi-sp-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wpi-sp-intro-art { right: -21rem; opacity: 0.85; }
  .wpi-sp-why-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wpi-sp-faq-panel { grid-template-columns: 1fr; }
  .wpi-sp-faq-art { margin-inline: auto; }
  .wpi-sp-footer-top { grid-template-columns: 1fr; gap: 3rem; }
}

@media (max-width: 767px) {
  .wpi-services-page {
    --sp-pad: 2.2rem;
    --sp-h2: clamp(2.45rem, 9vw, 3.2rem);
  }

  .wpi-sp-hero { min-height: auto; padding-bottom: 6.5rem; }
  .wpi-sp-announcement { min-height: 0; flex-direction: column; gap: 0.8rem; padding: 0.85rem 1rem 1rem; }
  .wpi-sp-announcement p { width: auto; text-align: center; font-size: 1.1rem; }
  .wpi-sp-announcement .countdown { transform: scale(0.82); transform-origin: center; }

  .wpi-sp-header.site-header {
    min-height: 7.4rem;
    grid-template-columns: 12rem 1fr auto;
  }
  .wpi-sp-header .site-logo img { width: 11.5rem; height: auto; }
  .wpi-sp-header .header-contact { display: none; }
  .wpi-services-page .mobile-menu-toggle { justify-self: end; }
  .wpi-services-page .main-nav {
    gap: 1rem;
    padding-top: 6rem;
  }

  .wpi-sp-hero-content { margin-top: 2.3rem; gap: 1.35rem; }
  .wpi-sp-hero-content h1 { font-size: clamp(2.9rem, 11vw, 4rem); line-height: 1.02; }
  .wpi-sp-hero-content p { font-size: 1.14rem; line-height: 1.7rem; }
  .wpi-sp-hero-actions { flex-direction: column; gap: 1rem; width: 100%; }
  .wpi-sp-hero-actions .btn { width: min(100%, 25rem); }

  .wpi-sp-main-card { padding-bottom: 3.5rem; }
  .wpi-sp-intro { min-height: 0; padding-top: 4rem; padding-bottom: 5.5rem; }
  .wpi-sp-intro-copy, .wpi-sp-intro-copy h2, .wpi-sp-intro-text, .wpi-sp-feelings { width: 100%; }
  .wpi-sp-intro-copy h2 { margin-bottom: 2rem; font-size: var(--sp-h2); }
  .wpi-sp-intro-art { position: relative; right: auto; top: auto; width: 100%; height: 18rem; margin: 1rem 0 0; opacity: 1; }
  .wpi-sp-feelings { padding-left: 1.4rem; }
  .wpi-sp-feelings p { font-size: 1.05rem; line-height: 1.5rem; }
  .wpi-sp-feelings p::before { left: -1.4rem; }
  .wpi-sp-intro-text { font-size: 1.08rem; line-height: 1.62rem; }
  .wpi-sp-ticker { bottom: 0; height: 3.1rem; }
  .wpi-sp-ticker p { font-size: 1rem; animation: none; }

  .wpi-sp-services > .container-wide { padding: 3.5rem 1.2rem; }
  .wpi-sp-services h2 { margin-bottom: 2.6rem; }
  .wpi-sp-service-grid { grid-template-columns: 1fr; gap: 2rem; }
  .wpi-sp-service-media { height: 17.5rem; }
  .wpi-sp-service-body { min-height: 12.5rem; }
  .wpi-sp-service-body h3 { font-size: 1.32rem; }
  .wpi-sp-service-body p { width: 100%; font-size: 0.95rem; line-height: 1.5rem; }

  .wpi-sp-quote-cta { border-width: 0.6rem; }
  .wpi-sp-quote-inner { min-height: auto; padding: 4rem 0; }
  .wpi-sp-quote-icon { width: 7.5rem; height: 9.5rem; margin-bottom: 1.5rem; }
  .wpi-sp-quote-inner h2 { font-size: var(--sp-h2); }
  .wpi-sp-quote-text { font-size: 1.06rem; line-height: 1.58rem; }
  .wpi-sp-quote-inner .btn { min-width: 0; width: min(100%, 24rem); white-space: normal; text-align: center; }

  .wpi-sp-why { padding: 3.8rem 0; }
  .wpi-sp-why .section-heading h2, .wpi-sp-why .section-heading p { width: 100%; }
  .wpi-sp-why .section-heading p { font-size: 1.08rem; line-height: 1.65rem; }
  .wpi-sp-why-cards { grid-template-columns: 1fr; gap: 2.2rem; margin-top: 3rem; padding: 2.5rem 1.6rem; }
  .wpi-sp-why-cards strong { margin-bottom: 1.3rem; font-size: 2.5rem; }

  .wpi-sp-faq-section { padding: 3.2rem 0; }
  .wpi-sp-faq-panel { min-height: 0; gap: 2rem; padding: 2rem 1.35rem; }
  .wpi-sp-faq-art { width: 100%; height: 13rem; }
  .wpi-sp-faq-content h2 { width: 100%; text-align: center; }
  .wpi-sp-faq-list .faq-item button { min-height: 4rem; font-size: 1rem; line-height: 1.25rem; align-items: center; }

  .wpi-sp-footer { min-height: auto; padding: 4rem 0 2.4rem; }
  .wpi-sp-footer-top h2, .wpi-sp-footer-copy { width: 100%; }
  .wpi-sp-footer-top h2 { font-size: var(--sp-h2); }
  .wpi-sp-footer-copy p { font-size: 1.05rem; line-height: 1.6rem; }
  .wpi-sp-contact-pill { width: 100%; flex-direction: column; align-items: stretch; }
  .wpi-sp-contact-pill > div, .wpi-sp-contact-pill p { width: 100%; }
  .wpi-sp-contact-pill p { flex-direction: column; gap: 0.1rem; }
  .wpi-sp-contact-pill .btn { width: 100%; min-height: 4rem; }
  .wpi-sp-footer-nav { gap: 0.25rem 1.1rem; font-size: 0.82rem; }
  .wpi-sp-socials { font-size: 1rem; }
}


/* ========================================================================== 
   v1.0.27 Services page requested fixes
   ========================================================================== */

/* 1) Services FAQ should inherit the homepage FAQ look exactly */
.wpi-sp-faq-section.faq-section,
.wpi-sp-faq-section {
  padding: 4.5rem 0 5rem !important;
  background: #efefef !important;
}

.wpi-sp-faq-panel.faq-panel,
.wpi-sp-faq-panel {
  width: min(calc(100% - 4rem), 104.24rem) !important;
  min-height: 39.05rem !important;
  display: grid !important;
  grid-template-columns: 37rem 1fr !important;
  align-items: center !important;
  gap: 3.8rem !important;
  margin-inline: auto !important;
  padding: 3.2rem 6.6rem !important;
  border-radius: 1.5rem !important;
  background: #fff !important;
  overflow: hidden !important;
}

.wpi-sp-faq-art.faq-art,
.wpi-sp-faq-art {
  width: auto !important;
  height: auto !important;
  align-self: center !important;
  transform: none !important;
  display: flex !important;
  justify-content: center !important;
}

.wpi-sp-faq-art img,
.wpi-sp-faq-art video {
  width: 34rem !important;
  height: auto !important;
  max-height: 26rem !important;
  object-fit: contain !important;
  opacity: .79 !important;
}

.wpi-sp-faq-content.faq-content h2,
.wpi-sp-faq-content h2 {
  width: 41.59rem !important;
  max-width: 100% !important;
  margin: 0 0 2.2rem !important;
  color: #1b1919 !important;
  font-family: var(--display) !important;
  font-size: 3.69rem !important;
  line-height: 1.05 !important;
  letter-spacing: .074rem !important;
  text-transform: uppercase !important;
}

.wpi-sp-faq-list.faq-list,
.wpi-sp-faq-list {
  display: flex !important;
  flex-direction: column !important;
  gap: .75rem !important;
}

.wpi-sp-faq-list .faq-item {
  overflow: hidden !important;
  border-radius: 1.27rem !important;
  background: rgba(0,0,0,.06) !important;
  box-shadow: none !important;
}

.wpi-sp-faq-list .faq-item button {
  width: 100% !important;
  min-height: 4.82rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 2rem !important;
  padding: 1.85rem 1.5rem !important;
  border: 0 !important;
  background: transparent !important;
  color: #000 !important;
  font-family: var(--body) !important;
  font-size: 1.27rem !important;
  font-weight: 500 !important;
  line-height: 1.45rem !important;
  text-align: left !important;
  cursor: pointer !important;
}

.wpi-sp-faq-list .faq-item p {
  display: none;
  margin: 0 !important;
  padding: 0 1.5rem 1.5rem !important;
  color: #000 !important;
  font-size: 1.1rem !important;
  line-height: 1.6rem !important;
}
.wpi-sp-faq-list .faq-item.is-open p { display: block !important; }

/* 2) Force Why heading to exactly two visual lines */
.wpi-sp-why .section-heading h2 {
  width: min(100%, 54rem) !important;
  max-width: 54rem !important;
  margin-inline: auto !important;
  text-align: center !important;
  white-space: normal !important;
}
.wpi-sp-why .section-heading h2 span {
  display: block !important;
  white-space: nowrap !important;
}

/* 3) CTA banner full width, no white side padding */
.wpi-sp-quote-cta {
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  border-width: .9rem 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  box-sizing: border-box !important;
}

/* 4) Ticker text should never cut */
.wpi-sp-ticker {
  min-height: 3.7rem !important;
  height: auto !important;
  padding: .55rem 1.25rem !important;
  overflow: visible !important;
  text-align: center !important;
}
.wpi-sp-ticker p {
  width: 100% !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow: visible !important;
  text-align: center !important;
  font-size: clamp(1rem, 1.25vw, 1.41rem) !important;
  line-height: 1.35 !important;
}

/* 5) Hero heading: keep it as two strong lines */
.wpi-sp-hero-content h1 {
  width: min(100%, 68rem) !important;
  max-width: 68rem !important;
  font-size: clamp(3.55rem, 4.65vw, 4.55rem) !important;
  line-height: 1.04 !important;
}
.wpi-sp-hero-content h1 span {
  display: block !important;
}

/* 6) More top padding and corrected point style for intro */
.wpi-sp-intro {
  min-height: 47.5rem !important;
  padding-top: 6rem !important;
}
.wpi-sp-intro-art {
  top: 1.9rem !important;
}
.wpi-sp-intro-copy h2 {
  margin-bottom: 3.05rem !important;
}
.wpi-sp-feelings {
  width: 30rem !important;
  display: flex !important;
  flex-direction: column !important;
  gap: .6rem !important;
  margin: 0 0 2.05rem !important;
  padding-left: 2.05rem !important;
}
.wpi-sp-feelings p {
  min-height: 2.62rem !important;
  margin: 0 !important;
  padding: .45rem 1.35rem !important;
  border-radius: 0 .4rem .4rem 0 !important;
  background: linear-gradient(90deg, rgba(210,4,4,.075) 0%, rgba(210,4,4,.045) 100%) !important;
  color: #1f1e1e !important;
  font-size: 1.23rem !important;
  line-height: 1.55rem !important;
}
.wpi-sp-feelings p::before {
  left: -2.05rem !important;
  top: .12rem !important;
  bottom: .12rem !important;
  width: .7rem !important;
  border-radius: 2rem !important;
  background: var(--sp-red) !important;
}
.wpi-sp-intro-text {
  margin-top: 2.15rem !important;
}

@media (min-width: 768px) and (max-width: 1200px) {
  .wpi-sp-faq-panel.faq-panel,
  .wpi-sp-faq-panel {
    width: calc(100% - 4rem) !important;
    grid-template-columns: minmax(14rem, .55fr) minmax(0, 1fr) !important;
    gap: 2rem !important;
    padding: 2.4rem !important;
  }
  .wpi-sp-faq-art img,
  .wpi-sp-faq-art video { width: min(100%, 24rem) !important; }
}

@media (max-width: 767px) {
  .wpi-sp-hero-content h1 {
    font-size: clamp(2.65rem, 10.2vw, 3.65rem) !important;
    line-height: 1.03 !important;
  }
  .wpi-sp-intro {
    padding-top: 4.8rem !important;
    padding-bottom: 6rem !important;
  }
  .wpi-sp-feelings {
    width: 100% !important;
    padding-left: 1.5rem !important;
    gap: .65rem !important;
  }
  .wpi-sp-feelings p {
    font-size: 1.05rem !important;
    line-height: 1.45rem !important;
  }
  .wpi-sp-feelings p::before { left: -1.5rem !important; }
  .wpi-sp-ticker {
    min-height: 3.5rem !important;
    padding: .65rem 1rem !important;
  }
  .wpi-sp-ticker p {
    font-size: .95rem !important;
    line-height: 1.35 !important;
  }
  .wpi-sp-quote-cta { border-width: .6rem 0 !important; }
  .wpi-sp-why .section-heading h2 {
    width: 100% !important;
    max-width: 100% !important;
  }
  .wpi-sp-why .section-heading h2 span {
    white-space: normal !important;
  }
  .wpi-sp-faq-section.faq-section,
  .wpi-sp-faq-section {
    padding: 4.6rem 0 !important;
  }
  .wpi-sp-faq-panel.faq-panel,
  .wpi-sp-faq-panel {
    width: calc(100% - var(--page-pad, 4rem)) !important;
    grid-template-columns: 1fr !important;
    gap: 1.4rem !important;
    padding: 1.6rem !important;
    border-radius: 1.2rem !important;
  }
  .wpi-sp-faq-art img,
  .wpi-sp-faq-art video {
    width: 11rem !important;
    max-height: none !important;
  }
  .wpi-sp-faq-content.faq-content h2,
  .wpi-sp-faq-content h2 {
    width: 100% !important;
    text-align: center !important;
    font-size: clamp(2.25rem, 7.6vw, 3.2rem) !important;
    line-height: 1.02 !important;
  }
  .wpi-sp-faq-list .faq-item button {
    min-height: 4.6rem !important;
    padding: 1.15rem 1rem !important;
    font-size: 1.05rem !important;
    line-height: 1.45rem !important;
  }
  .wpi-sp-faq-list .faq-item p {
    font-size: .95rem !important;
    line-height: 1.45rem !important;
  }
}


/* ========================================================================== 
   v1.0.29 Services hero title forced to three lines
   Final pass for the reported Services page issues: FAQ consistency, exact
   two-line headings, full-bleed CTA, non-cutting ticker, and intro point list.
   ========================================================================== */

/* Keep Services FAQ visually tied to the homepage FAQ, with no inherited hover drift. */
.wpi-services-page .wpi-sp-faq-section.faq-section {
  padding: 4.5rem 0 5rem !important;
  background: #efefef !important;
}

.wpi-services-page .wpi-sp-faq-panel.faq-panel {
  width: min(calc(100% - 4rem), 104.24rem) !important;
  min-height: 39.05rem !important;
  grid-template-columns: 37rem minmax(0, 1fr) !important;
  gap: 3.8rem !important;
  padding: 3.2rem 6.6rem !important;
  border-radius: 1.5rem !important;
  background: #fff !important;
}

.wpi-services-page .wpi-sp-faq-art.faq-art {
  align-self: center !important;
  justify-self: center !important;
  width: 34rem !important;
  height: auto !important;
  transform: none !important;
}

.wpi-services-page .wpi-sp-faq-art img,
.wpi-services-page .wpi-sp-faq-art video {
  width: 34rem !important;
  height: auto !important;
  max-height: 26rem !important;
  object-fit: contain !important;
  opacity: .79 !important;
}

.wpi-services-page .wpi-sp-faq-content.faq-content h2 {
  width: 41.59rem !important;
  max-width: 100% !important;
  margin: 0 0 2.2rem !important;
  color: #1b1919 !important;
  font-family: var(--display) !important;
  font-size: 3.69rem !important;
  line-height: 1.05 !important;
  letter-spacing: .074rem !important;
  text-align: left !important;
  text-transform: uppercase !important;
}

.wpi-services-page .wpi-sp-faq-list .faq-item,
.wpi-services-page .wpi-sp-faq-list .faq-item:hover {
  border-radius: 1.27rem !important;
  background: rgba(0,0,0,.06) !important;
  box-shadow: none !important;
  transform: none !important;
}

.wpi-services-page .wpi-sp-faq-list .faq-item button,
.wpi-services-page .wpi-sp-faq-list .faq-item button:hover {
  min-height: 4.82rem !important;
  padding: 1.85rem 1.5rem !important;
  color: #000 !important;
  background: transparent !important;
  font-size: 1.27rem !important;
  font-weight: 500 !important;
  line-height: 1.45rem !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Exact two-line hero title. */
.wpi-services-page .wpi-sp-hero-content h1 {
  width: min(100%, 62rem) !important;
  max-width: 62rem !important;
  margin-inline: auto !important;
  font-size: clamp(3.35rem, 4.45vw, 4.5rem) !important;
  line-height: 1.02 !important;
  letter-spacing: .03rem !important;
}

.wpi-services-page .wpi-sp-hero-content h1 span {
  display: block !important;
}

/* Exact two-line Why heading. */
.wpi-services-page .wpi-sp-why .section-heading h2 {
  width: min(100%, 54rem) !important;
  max-width: 54rem !important;
  margin-inline: auto !important;
  line-height: .98 !important;
  text-align: center !important;
}

.wpi-services-page .wpi-sp-why .section-heading h2 span {
  display: block !important;
}

/* Full-bleed CTA: black reaches the viewport edges; only top/bottom white stroke remains. */
.wpi-services-page .wpi-sp-quote-cta {
  position: relative !important;
  left: 50% !important;
  right: 50% !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  border-top: .9rem solid #fff !important;
  border-bottom: .9rem solid #fff !important;
  border-left: 0 !important;
  border-right: 0 !important;
  background: #000 !important;
}

.wpi-services-page .wpi-sp-quote-inner {
  width: min(calc(100% - 4rem), var(--sp-container)) !important;
  margin-inline: auto !important;
}

/* Ticker QA: keep it readable and never clipped by absolute positioning. */
.wpi-services-page .wpi-sp-intro {
  min-height: 49.5rem !important;
  padding-top: 7.2rem !important;
  padding-bottom: 7.4rem !important;
}

.wpi-services-page .wpi-sp-ticker {
  left: 0 !important;
  right: 0 !important;
  bottom: 3.8rem !important;
  min-height: 3.7rem !important;
  height: auto !important;
  padding: .55rem 1.25rem !important;
  overflow: hidden !important;
}

.wpi-services-page .wpi-sp-ticker p {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-align: center !important;
  font-size: clamp(1.02rem, 1.22vw, 1.41rem) !important;
  line-height: 1.35 !important;
}

/* Intro point list: red pill and soft red backing match the Figma point rows. */
.wpi-services-page .wpi-sp-intro-copy h2 {
  width: min(100%, 61.5rem) !important;
  margin-bottom: 3.05rem !important;
}

.wpi-services-page .wpi-sp-feelings {
  width: 30rem !important;
  display: flex !important;
  flex-direction: column !important;
  gap: .62rem !important;
  margin: 0 0 2.05rem !important;
  padding-left: 0 !important;
}

.wpi-services-page .wpi-sp-feelings p {
  position: relative !important;
  min-height: 2.62rem !important;
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: .45rem 1.35rem .45rem 2.2rem !important;
  border-radius: 0 .4rem .4rem 0 !important;
  background: linear-gradient(90deg, rgba(210,4,4,.08) 0%, rgba(210,4,4,.045) 100%) !important;
  color: #1f1e1e !important;
  font-size: 1.23rem !important;
  line-height: 1.55rem !important;
}

.wpi-services-page .wpi-sp-feelings p::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: .12rem !important;
  bottom: .12rem !important;
  width: .7rem !important;
  border-radius: 2rem !important;
  background: var(--sp-red) !important;
}

.wpi-services-page .wpi-sp-intro-text {
  margin-top: 2.15rem !important;
}

@media (max-width: 1200px) {
  .wpi-services-page .wpi-sp-ticker p {
    white-space: normal !important;
  }
}

@media (max-width: 767px) {
  .wpi-services-page {
    --sp-pad: 2.2rem;
    --sp-h2: clamp(2.45rem, 9vw, 3.2rem);
  }

  .wpi-services-page .wpi-sp-hero-content h1 {
    width: min(100%, 20rem) !important;
    font-size: clamp(2.4rem, 9.4vw, 3.3rem) !important;
    line-height: 1.03 !important;
  }

  .wpi-services-page .wpi-sp-intro {
    padding-top: 5.4rem !important;
    padding-bottom: 6.6rem !important;
  }

  .wpi-services-page .wpi-sp-intro-copy h2 {
    width: 100% !important;
  }

  .wpi-services-page .wpi-sp-feelings {
    width: 100% !important;
    gap: .65rem !important;
  }

  .wpi-services-page .wpi-sp-feelings p {
    padding: .55rem 1rem .55rem 1.75rem !important;
    font-size: 1.05rem !important;
    line-height: 1.45rem !important;
  }

  .wpi-services-page .wpi-sp-feelings p::before {
    width: .55rem !important;
  }

  .wpi-services-page .wpi-sp-ticker {
    bottom: 0 !important;
    min-height: 3.5rem !important;
    padding: .7rem 1rem !important;
  }

  .wpi-services-page .wpi-sp-ticker p {
    white-space: normal !important;
    font-size: .95rem !important;
  }

  .wpi-services-page .wpi-sp-quote-cta {
    border-top-width: .6rem !important;
    border-bottom-width: .6rem !important;
  }

  .wpi-services-page .wpi-sp-quote-inner {
    width: min(calc(100% - 2.2rem), var(--sp-container)) !important;
  }

  .wpi-services-page .wpi-sp-why .section-heading h2 {
    width: 100% !important;
    max-width: 100% !important;
  }

  .wpi-services-page .wpi-sp-faq-panel.faq-panel {
    width: calc(100% - var(--page-pad, 4rem)) !important;
    min-height: 0 !important;
    grid-template-columns: 1fr !important;
    gap: 1.4rem !important;
    padding: 1.6rem !important;
  }

  .wpi-services-page .wpi-sp-faq-art.faq-art,
  .wpi-services-page .wpi-sp-faq-art img,
  .wpi-services-page .wpi-sp-faq-art video {
    width: 11rem !important;
  }

  .wpi-services-page .wpi-sp-faq-content.faq-content h2 {
    width: 100% !important;
    text-align: center !important;
    font-size: clamp(2.25rem, 7.6vw, 3.2rem) !important;
  }
}


/* =========================================================
   v1.0.30 Global hero component polish
   - Services hero keeps exact 3 lines on desktop.
   - Mobile hero width is no longer too narrow.
   - About/mobile hero text uses the better Services mobile sizing.
   - Page heroes share the improved Services hero rhythm.
   ========================================================= */
@media (min-width: 768px) {
  .hero-section,
  .wpi-sp-hero {
    min-height: auto !important;
    padding-bottom: 7.8rem !important;
  }

  .about-hero-page {
    padding-bottom: 5.25rem !important;
  }

  .hero-content,
  .wpi-sp-hero-content,
  .about-page-hero-content {
    width: min(calc(100% - var(--page-pad, 4rem)), 86rem) !important;
    max-width: 86rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .hero-content h1,
  .wpi-sp-hero-content h1,
  .about-page-hero-content h1 {
    width: min(100%, 84rem) !important;
    max-width: 84rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: clamp(3.75rem, 4.35vw, 4.55rem) !important;
    line-height: 1.02 !important;
    letter-spacing: .02em !important;
  }

  .hero-content p,
  .wpi-sp-hero-content p,
  .about-page-hero-content p {
    width: min(100%, 47rem) !important;
    max-width: 47rem !important;
    font-size: 1.3rem !important;
    line-height: 1.95rem !important;
  }

  .wpi-services-page .wpi-sp-hero-content {
    margin-top: 1.9rem !important;
    gap: 1.55rem !important;
  }

  .wpi-services-page .wpi-sp-hero-content h1 {
    width: min(100%, 84rem) !important;
    max-width: 84rem !important;
    font-size: clamp(3.55rem, 4.15vw, 4.35rem) !important;
    line-height: 1.02 !important;
  }

  .wpi-services-page .wpi-sp-hero-content h1 span {
    display: block !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 767px) {
  .hero-section,
  .wpi-sp-hero,
  .about-hero-page {
    min-height: auto !important;
    padding-bottom: 5.7rem !important;
    overflow: hidden !important;
  }

  .hero-content,
  .wpi-sp-hero-content,
  .about-page-hero-content {
    width: calc(100% - 2.4rem) !important;
    max-width: 31rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    margin-top: 2.25rem !important;
    gap: 1.2rem !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .hero-content h1,
  .wpi-sp-hero-content h1,
  .about-page-hero-content h1,
  .wpi-services-page .wpi-sp-hero-content h1 {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: clamp(2.65rem, 10.25vw, 3.7rem) !important;
    line-height: 1.03 !important;
    letter-spacing: .015em !important;
  }

  .wpi-services-page .wpi-sp-hero-content h1 span {
    display: block !important;
    white-space: normal !important;
  }

  .hero-content p,
  .wpi-sp-hero-content p,
  .about-page-hero-content p {
    width: 100% !important;
    max-width: 29.5rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: 1.14rem !important;
    line-height: 1.72rem !important;
  }

  .about-page-hero-content p {
    font-size: 1.16rem !important;
    line-height: 1.76rem !important;
  }

  .hero-actions,
  .wpi-sp-hero-actions,
  .about-page-hero-content .hero-actions {
    width: 100% !important;
    max-width: 25rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    flex-direction: column !important;
    gap: .85rem !important;
  }
}


/* =========================================================
   v1.0.31 Global FAQ + footer alignment
   - About FAQ heading restored with homepage visual style.
   - Global footer now matches the Services page footer style.
   - Desktop footer has bottom breathing room.
   ========================================================= */

/* About FAQ: force homepage/services FAQ heading back in place. */
.about-page-faq.faq-section {
  background: #efefef !important;
  padding: 4.5rem 0 5rem !important;
}
.about-page-faq .faq-panel {
  width: min(calc(100% - 4rem), 104.24rem) !important;
  display: grid !important;
  grid-template-columns: 37rem minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 3.8rem !important;
  margin-inline: auto !important;
  padding: 3.2rem 6.6rem !important;
  border-radius: 1.5rem !important;
  background: #fff !important;
  overflow: hidden !important;
}
.about-page-faq .faq-art {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}
.about-page-faq .faq-art img,
.about-page-faq .faq-art video {
  width: 34rem !important;
  height: auto !important;
  max-height: 26rem !important;
  object-fit: contain !important;
  opacity: .79 !important;
}
.about-page-faq .faq-content h2 {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: 41.59rem !important;
  max-width: 100% !important;
  margin: 0 0 2.2rem !important;
  color: #1b1919 !important;
  font-family: var(--display) !important;
  font-size: 3.69rem !important;
  font-weight: 700 !important;
  line-height: 1.05 !important;
  letter-spacing: .074rem !important;
  text-align: left !important;
  text-transform: uppercase !important;
}
.about-page-faq .faq-content h2 span {
  color: var(--red) !important;
}
.about-page-faq .faq-item,
.about-page-faq .faq-item:hover {
  border-radius: 1.27rem !important;
  background: rgba(0,0,0,.06) !important;
  box-shadow: none !important;
  transform: none !important;
}
.about-page-faq .faq-item button {
  min-height: 4.82rem !important;
  padding: 1.85rem 1.5rem !important;
  color: #000 !important;
  background: transparent !important;
  font-size: 1.27rem !important;
  line-height: 1.45rem !important;
}

/* Global footer: make homepage/about footer match the preferred Services footer. */
.footer-section,
.wpi-sp-footer {
  position: relative !important;
  min-height: 49rem !important;
  padding: 5.35rem 0 2.75rem !important;
  overflow: hidden !important;
  background: #000 !important;
  color: #f3f1e7 !important;
}
.footer-section::after,
.wpi-sp-footer::after {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  right: auto !important;
  bottom: -6.4rem !important;
  width: min(120rem, 110vw) !important;
  height: 17.25rem !important;
  transform: translateX(-50%) !important;
  border-radius: 50% 50% 0 0 !important;
  filter: blur(8px) !important;
  opacity: .92 !important;
  background: radial-gradient(ellipse at center bottom, rgba(143,14,14,.88) 0%, rgba(92,5,5,.62) 42%, rgba(0,0,0,0) 76%) !important;
  pointer-events: none !important;
}
.footer-inner,
.wpi-sp-footer-inner {
  position: relative !important;
  z-index: 2 !important;
}
.footer-top,
.wpi-sp-footer-top {
  display: grid !important;
  grid-template-columns: 39rem 1fr !important;
  gap: clamp(5rem, 19vw, 31rem) !important;
  align-items: start !important;
}
.footer-top > div:first-child > span,
.wpi-sp-footer-top > div:first-child > span {
  display: block !important;
  margin-bottom: 1.85rem !important;
  color: #f3f1e7 !important;
  font-family: var(--inter) !important;
  font-size: .96rem !important;
  letter-spacing: -.01rem !important;
  text-transform: uppercase !important;
}
.footer-top h2,
.wpi-sp-footer-top h2 {
  width: 38.5rem !important;
  max-width: 100% !important;
  margin: 0 !important;
  color: #fff !important;
  font-family: var(--display) !important;
  font-size: 3.82rem !important;
  line-height: .96 !important;
  letter-spacing: -.03rem !important;
  text-transform: uppercase !important;
}
.footer-copy,
.wpi-sp-footer-copy {
  width: 35.25rem !important;
  max-width: 100% !important;
}
.footer-copy p,
.wpi-sp-footer-copy p {
  margin: 0 0 1rem !important;
  color: #f3f1e7 !important;
  font-family: var(--inter) !important;
  font-size: 1.28rem !important;
  line-height: 1.92rem !important;
}
.contact-pill,
.wpi-sp-contact-pill {
  width: max-content !important;
  display: flex !important;
  align-items: center !important;
  gap: .45rem !important;
  margin-top: 1.6rem !important;
  padding: .56rem !important;
  border-radius: .24rem !important;
  background: rgba(255,255,255,.19) !important;
}
.contact-pill > div,
.wpi-sp-contact-pill > div {
  padding: .73rem .78rem !important;
  border-radius: .22rem !important;
  background: rgba(255,255,255,.15) !important;
}
.contact-pill p,
.wpi-sp-contact-pill p {
  width: 19.4rem !important;
  display: flex !important;
  justify-content: space-between !important;
  gap: 2.6rem !important;
  margin: 0 !important;
  color: #fff !important;
  font-family: var(--body) !important;
  font-size: .77rem !important;
  font-weight: 600 !important;
  line-height: 1.35rem !important;
  letter-spacing: .056rem !important;
}
.contact-pill strong,
.wpi-sp-contact-pill strong {
  color: #fff !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
}
.contact-pill .btn,
.wpi-sp-contact-pill .btn {
  min-height: 4.85rem !important;
  padding: 1.45rem 3.65rem !important;
  box-shadow: 0 0 .56rem rgba(0,0,0,.75) !important;
}
.footer-divider,
.wpi-sp-footer-divider {
  height: 1px !important;
  margin-top: 5rem !important;
  background: rgba(163,163,163,.4) !important;
}
.footer-logo,
.wpi-sp-footer-logo {
  width: 24.1rem !important;
  height: 8.41rem !important;
  object-fit: contain !important;
  margin: 3.35rem auto 2.4rem !important;
}
.footer-nav,
.wpi-sp-footer-nav {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: .35rem 2rem !important;
  color: #fff !important;
  font-family: var(--inter) !important;
  font-size: .97rem !important;
  font-weight: 700 !important;
  letter-spacing: .063rem !important;
  text-transform: uppercase !important;
}
.socials,
.wpi-sp-socials {
  display: flex !important;
  justify-content: center !important;
  gap: 1rem !important;
  margin-top: 2.52rem !important;
  color: #f3f1e7 !important;
  font-family: var(--inter) !important;
  font-size: 1.17rem !important;
  text-transform: uppercase !important;
}
.copyright,
.wpi-sp-copyright {
  margin: 1.45rem 0 0 !important;
  color: #f3f1e7 !important;
  text-align: center !important;
  font-family: var(--inter) !important;
  font-size: 1.13rem !important;
  line-height: 1.69rem !important;
}

@media (min-width: 768px) and (max-width: 1200px) {
  .about-page-faq .faq-panel {
    width: calc(100% - 4rem) !important;
    grid-template-columns: minmax(14rem, .55fr) minmax(0, 1fr) !important;
    gap: 2rem !important;
    padding: 2.4rem !important;
  }
  .about-page-faq .faq-art img,
  .about-page-faq .faq-art video { width: min(100%, 24rem) !important; }
  .footer-top,
  .wpi-sp-footer-top { grid-template-columns: 1fr !important; gap: 3rem !important; }
  .footer-copy,
  .wpi-sp-footer-copy { width: min(100%, 40rem) !important; }
}

@media (max-width: 767px) {
  .about-page-faq.faq-section { padding: 4.6rem 0 !important; }
  .about-page-faq .faq-panel {
    width: calc(100% - var(--page-pad, 4rem)) !important;
    grid-template-columns: 1fr !important;
    gap: 1.4rem !important;
    padding: 1.6rem !important;
    border-radius: 1.2rem !important;
  }
  .about-page-faq .faq-art img,
  .about-page-faq .faq-art video { width: 11rem !important; max-height: none !important; }
  .about-page-faq .faq-content h2 {
    width: 100% !important;
    text-align: center !important;
    font-size: clamp(2.25rem, 7.6vw, 3.2rem) !important;
    line-height: 1.02 !important;
  }
  .about-page-faq .faq-item button {
    min-height: 4.6rem !important;
    padding: 1.15rem 1rem !important;
    font-size: 1.05rem !important;
    line-height: 1.45rem !important;
  }
  .footer-section,
  .wpi-sp-footer {
    min-height: auto !important;
    padding: 4rem 0 3rem !important;
  }
  .footer-top,
  .wpi-sp-footer-top { grid-template-columns: 1fr !important; gap: 3rem !important; }
  .footer-top h2,
  .wpi-sp-footer-top h2,
  .footer-copy,
  .wpi-sp-footer-copy { width: 100% !important; }
  .footer-top h2,
  .wpi-sp-footer-top h2 { font-size: var(--sp-h2, clamp(2.45rem, 9vw, 3.2rem)) !important; }
  .footer-copy p,
  .wpi-sp-footer-copy p { font-size: 1.05rem !important; line-height: 1.6rem !important; }
  .contact-pill,
  .wpi-sp-contact-pill { width: 100% !important; max-width: 100% !important; flex-direction: column !important; align-items: stretch !important; }
  .contact-pill > div,
  .wpi-sp-contact-pill > div { width: 100% !important; }
  .contact-pill p,
  .wpi-sp-contact-pill p { width: 100% !important; gap: 1rem !important; }
  .contact-pill .btn,
  .wpi-sp-contact-pill .btn { width: 100% !important; min-height: 4.3rem !important; }
  .footer-logo,
  .wpi-sp-footer-logo { width: 11.5rem !important; height: auto !important; margin: 3rem auto 2rem !important; }
  .footer-nav,
  .wpi-sp-footer-nav { gap: .25rem 1.1rem !important; font-size: .82rem !important; }
}


/* =========================================================
   v1.0.32 About image removal + footer blend polish
   - Removed the duplicate hero/story image from the middle of the About page.
   - Reduced desktop footer bottom padding.
   - Softened the footer red glow so it blends into black instead of forming a hard block.
   ========================================================= */
.about-page .about-story-image {
  display: none !important;
}
@media (min-width: 768px) {
  .about-page .about-story-section {
    padding: 6.2rem 0 6.4rem !important;
  }
  .about-page .about-story {
    min-height: auto !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(24rem, .62fr) !important;
    gap: clamp(3rem, 8vw, 11rem) !important;
    align-items: start !important;
  }
  .about-page .about-story-title-wrap,
  .about-page .about-story-copy,
  .about-page .about-story-badge {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: auto !important;
  }
  .about-page .about-story-title-wrap {
    grid-column: 1 / 2 !important;
    max-width: 55rem !important;
  }
  .about-page .about-story-copy {
    grid-column: 2 / 3 !important;
    max-width: 35rem !important;
    margin-top: 10rem !important;
  }
  .about-page .about-story-badge {
    display: none !important;
  }
  .footer-section,
  .wpi-sp-footer {
    min-height: 48rem !important;
    padding-bottom: 2.65rem !important;
  }
  .footer-section::after,
  .wpi-sp-footer::after {
    bottom: -6rem !important;
    height: 16.5rem !important;
    filter: blur(9px) !important;
    background: radial-gradient(ellipse at center bottom, rgba(143,14,14,.82) 0%, rgba(92,5,5,.55) 43%, rgba(0,0,0,0) 78%) !important;
  }
  .footer-logo,
  .wpi-sp-footer-logo {
    margin-bottom: 1.75rem !important;
  }
  .socials,
  .wpi-sp-socials {
    margin-top: 1.85rem !important;
  }
  .copyright,
  .wpi-sp-copyright {
    margin-top: 1.25rem !important;
  }
}
@media (max-width: 767px) {
  .about-page .about-story-badge {
    display: none !important;
  }
}


/* =========================================================
   v1.0.33 Global Services footer + About image correction
   - Homepage and About now use the exact Services footer classes/structure.
   - Restored the real About story image that was removed in v1.0.32.
   - Covers the leftover hero-background strip below the About stats cards only.
   ========================================================= */

/* Kill the hero image strip that was showing between the About stats and story area. */
.about-page .about-hero-page::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: -1px !important;
  height: 14rem !important;
  background: #000 !important;
  z-index: 1 !important;
  pointer-events: none !important;
}
.about-page .about-stats-wrap {
  z-index: 3 !important;
}

/* Restore the About story main image and original desktop composition. */
.about-page .about-story-image {
  display: block !important;
}
.about-page .about-story-image img,
.about-page .about-story-image video {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
@media (min-width: 768px) {
  .about-page .about-story-section {
    padding: 6.4rem 0 6rem !important;
    background: #000 !important;
  }
  .about-page .about-story {
    position: relative !important;
    display: block !important;
    min-height: 75.5rem !important;
  }
  .about-page .about-story-image {
    position: absolute !important;
    left: 5.9rem !important;
    top: 13.9rem !important;
    width: 55.5rem !important;
    height: 53.9rem !important;
    overflow: hidden !important;
    background: #111 !important;
    border-radius: 0 !important;
  }
  .about-page .about-story-title-wrap {
    position: absolute !important;
    top: 0 !important;
    left: 36.6rem !important;
    width: 56.75rem !important;
    max-width: none !important;
    z-index: 3 !important;
  }
  .about-page .about-story-copy {
    position: absolute !important;
    right: 0 !important;
    top: 51.4rem !important;
    width: 35.2rem !important;
    max-width: none !important;
    margin-top: 0 !important;
    z-index: 3 !important;
  }
  .about-page .about-story-badge {
    position: absolute !important;
    left: 1.3rem !important;
    right: auto !important;
    bottom: 1.1rem !important;
    top: auto !important;
    width: 18.15rem !important;
    height: 9.45rem !important;
    display: flex !important;
    transform: rotate(-11.25deg) !important;
    background: #fff !important;
    border: .94rem solid var(--about-red) !important;
    border-radius: 1.75rem !important;
    z-index: 4 !important;
  }
}

/* Exact Services footer as the global footer system. */
.wpi-sp-footer {
  --sp-black: #000;
  --sp-white: #fff;
  position: relative !important;
  min-height: 51.7rem !important;
  padding: 5.35rem 0 1.25rem !important;
  overflow: hidden !important;
  background: var(--sp-black) !important;
  color: #f3f1e7 !important;
}
.wpi-sp-footer::after {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  right: auto !important;
  bottom: -8rem !important;
  width: 114.8rem !important;
  height: 18.7rem !important;
  transform: translateX(-50%) !important;
  border-radius: 4.5rem 3.9rem 0 0 !important;
  filter: blur(2px) !important;
  opacity: 1 !important;
  background: linear-gradient(183deg, #000 18.8%, #8f0e0e 78.5%) !important;
  pointer-events: none !important;
}
.wpi-sp-footer-inner { position: relative !important; z-index: 2 !important; }
.wpi-sp-footer-top {
  display: grid !important;
  grid-template-columns: 39rem 1fr !important;
  gap: clamp(5rem, 19vw, 31rem) !important;
  align-items: start !important;
}
.wpi-sp-footer-top > div:first-child > span {
  display: block !important;
  margin-bottom: 1.85rem !important;
  color: #f3f1e7 !important;
  font-family: var(--inter) !important;
  font-size: .96rem !important;
  letter-spacing: -.01rem !important;
  text-transform: uppercase !important;
}
.wpi-sp-footer-top h2 {
  width: 38.5rem !important;
  max-width: 100% !important;
  margin: 0 !important;
  color: var(--sp-white) !important;
  font-family: var(--display) !important;
  font-size: 3.82rem !important;
  line-height: .96 !important;
  letter-spacing: -.03rem !important;
  text-transform: uppercase !important;
}
.wpi-sp-footer-copy { width: 35.25rem !important; max-width: 100% !important; }
.wpi-sp-footer-copy p {
  margin: 0 0 1rem !important;
  color: #f3f1e7 !important;
  font-family: var(--inter) !important;
  font-size: 1.28rem !important;
  line-height: 1.92rem !important;
}
.wpi-sp-contact-pill {
  width: max-content !important;
  display: flex !important;
  align-items: center !important;
  gap: .45rem !important;
  margin-top: 1.6rem !important;
  padding: .56rem !important;
  border-radius: .24rem !important;
  background: rgba(255,255,255,.19) !important;
}
.wpi-sp-contact-pill > div {
  padding: .73rem .78rem !important;
  border-radius: .22rem !important;
  background: rgba(255,255,255,.15) !important;
}
.wpi-sp-contact-pill p {
  width: 19.4rem !important;
  display: flex !important;
  justify-content: space-between !important;
  gap: 2.6rem !important;
  margin: 0 !important;
  color: #fff !important;
  font-family: var(--body) !important;
  font-size: .77rem !important;
  font-weight: 600 !important;
  line-height: 1.35rem !important;
  letter-spacing: .056rem !important;
}
.wpi-sp-contact-pill strong { color: #fff !important; font-weight: 600 !important; text-transform: uppercase !important; }
.wpi-sp-contact-pill .btn {
  min-height: 4.85rem !important;
  padding: 1.45rem 3.65rem !important;
  box-shadow: 0 0 .56rem rgba(0,0,0,.75) !important;
}
.wpi-sp-footer-divider { height: 1px !important; margin-top: 5rem !important; background: rgba(163,163,163,.4) !important; }
.wpi-sp-footer-logo { width: 24.1rem !important; height: 8.41rem !important; object-fit: contain !important; margin: 3.35rem auto 2.4rem !important; }
.wpi-sp-footer-nav {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: .35rem 2rem !important;
  color: #fff !important;
  font-family: var(--inter) !important;
  font-size: .97rem !important;
  font-weight: 700 !important;
  letter-spacing: .063rem !important;
  text-transform: uppercase !important;
}
.wpi-sp-socials {
  display: flex !important;
  justify-content: center !important;
  gap: 1rem !important;
  margin-top: 2.52rem !important;
  color: #f3f1e7 !important;
  font-family: var(--inter) !important;
  font-size: 1.17rem !important;
  text-transform: uppercase !important;
}
.wpi-sp-copyright { margin: 2.4rem 0 0 !important; color: #f3f1e7 !important; text-align: center !important; font-family: var(--inter) !important; font-size: 1.13rem !important; line-height: 1.69rem !important; }

@media (max-width: 1200px) and (min-width: 768px) {
  .wpi-sp-footer-top { grid-template-columns: 1fr !important; gap: 3rem !important; }
  .wpi-sp-footer-copy { width: min(100%, 40rem) !important; }
}
@media (max-width: 767px) {
  .about-page .about-hero-page::after { height: 5.5rem !important; }
  .wpi-sp-footer { min-height: auto !important; padding: 4rem 0 2.4rem !important; }
  .wpi-sp-footer-top { grid-template-columns: 1fr !important; gap: 3rem !important; }
  .wpi-sp-footer-top h2,
  .wpi-sp-footer-copy { width: 100% !important; }
  .wpi-sp-footer-top h2 { font-size: var(--sp-h2, clamp(2.45rem, 9vw, 3.2rem)) !important; }
  .wpi-sp-footer-copy p { font-size: 1.05rem !important; line-height: 1.6rem !important; }
  .wpi-sp-contact-pill { width: 100% !important; max-width: 100% !important; flex-direction: column !important; align-items: stretch !important; }
  .wpi-sp-contact-pill > div { width: 100% !important; }
  .wpi-sp-contact-pill p { width: 100% !important; gap: 1rem !important; }
  .wpi-sp-contact-pill .btn { width: 100% !important; min-height: 4.3rem !important; }
  .wpi-sp-footer-logo { width: 11.5rem !important; height: auto !important; margin: 3rem auto 2rem !important; }
  .wpi-sp-footer-nav { gap: .25rem 1.1rem !important; font-size: .82rem !important; }
}

/*
   v1.0.34 Footer desktop bottom padding
   - Adds a small bottom breathing space to the global Services footer on desktop only.
*/
@media (min-width: 768px) {
  .wpi-sp-footer {
    padding-bottom: 1.25rem !important;
  }
}

/*
   v1.0.35 Individual service page from Figma node 126:1282
   - Adds Custom Fireworks Shows page layout.
   - Reuses the global Services footer system.
*/
.wpi-individual-service-page {
  --isvc-red: #d20404;
  background: #fff;
  color: #111;
  overflow: hidden;
}
.wpi-isvc-hero {
  position: relative;
  min-height: 53.5rem;
  color: #fff;
  background: #050505;
  overflow: hidden;
}
.wpi-isvc-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(54,54,54,.72) 0%, rgba(0,0,0,.1) 30%, rgba(0,0,0,.92) 100%);
  z-index: 1;
  pointer-events: none;
}
.wpi-isvc-hero > * { position: relative; z-index: 3; }
.wpi-isvc-announcement { position: relative; z-index: 5; }
.wpi-isvc-header { position: relative; z-index: 5; }
.wpi-isvc-hero-inner {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(0, 52rem) minmax(30rem, 1fr);
  align-items: center;
  gap: 4rem;
  min-height: 38rem;
  padding: 4.4rem 0 6.5rem;
}
.wpi-isvc-hero-copy { max-width: 53rem; }
.wpi-isvc-hero-copy .eyebrow { min-width: 18rem; margin-bottom: 2.4rem; }
.wpi-isvc-hero-copy h1 {
  margin: 0 0 1.25rem;
  font-family: var(--display);
  font-size: clamp(3.6rem, 3.8vw, 5rem);
  line-height: 1.03;
  letter-spacing: .02rem;
  text-transform: uppercase;
}
.wpi-isvc-hero-copy h1 span { display: block; }
.wpi-isvc-hero-copy p {
  width: min(100%, 36.2rem);
  margin: 0 0 1.9rem;
  font-size: 1.17rem;
  line-height: 1.65;
}
.wpi-isvc-actions { display: flex; flex-wrap: wrap; gap: 1.7rem; align-items: center; }
.wpi-isvc-hero-media {
  position: relative;
  min-height: 29rem;
  border-radius: 0;
  overflow: hidden;
  filter: saturate(1.08) contrast(1.03);
}
.wpi-isvc-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 44% 48%, transparent 0 34%, rgba(0,0,0,.08) 48%, rgba(0,0,0,.55) 100%);
  pointer-events: none;
}
.wpi-isvc-hero-media img,
.wpi-isvc-hero-media video { width: 100%; height: 100%; min-height: 29rem; object-fit: cover; }

.wpi-isvc-intro {
  position: relative;
  z-index: 4;
  margin-top: -11.5rem;
  padding: 7rem 0 4.6rem;
  background: #fff;
  border-radius: .9rem .9rem 0 0;
}
.wpi-isvc-intro-grid {
  display: grid;
  grid-template-columns: minmax(25rem, 34rem) minmax(35rem, 1fr);
  gap: 8rem;
  align-items: center;
}
.wpi-isvc-intro-copy h2 {
  margin: 0 0 2rem;
  font-family: var(--display);
  font-size: clamp(2.9rem, 3.1vw, 3.7rem);
  line-height: 1.05;
  text-transform: none;
}
.wpi-isvc-intro-copy p {
  margin: 0;
  font-size: 1.36rem;
  line-height: 1.85;
  color: #1f1e1e;
}
.wpi-isvc-lead { margin-bottom: .5rem !important; }
.wpi-isvc-shape-lines {
  display: grid;
  gap: .55rem;
  margin: 1.8rem 0 2.2rem;
  max-width: 30rem;
}
.wpi-isvc-shape-lines p {
  position: relative;
  min-height: 2.7rem;
  display: flex;
  align-items: center;
  padding-left: 2.15rem;
  font-size: 1.28rem;
  line-height: 1.3;
  background: linear-gradient(90deg, rgba(210,4,4,.08), rgba(210,4,4,0));
  border-radius: 0 .5rem .5rem 0;
}
.wpi-isvc-shape-lines p::before {
  content: "";
  position: absolute;
  left: 0;
  top: .18rem;
  bottom: .18rem;
  width: .72rem;
  border-radius: 999px;
  background: var(--isvc-red);
}
.wpi-isvc-actions-dark { margin-top: 2.25rem; }
.wpi-isvc-actions-dark .btn-outline-dark {
  min-width: auto;
  font-family: var(--body);
  font-size: .84rem;
  font-weight: 800;
  letter-spacing: .045rem;
  text-transform: uppercase;
}
.wpi-isvc-gallery { overflow: hidden; }
.wpi-isvc-gallery-main,
.wpi-isvc-gallery > img,
.wpi-isvc-gallery > video {
  width: 100%;
  height: 32.6rem;
  object-fit: cover;
  border-radius: .4rem;
}
.wpi-isvc-thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: .72rem;
  margin-top: .75rem;
}
.wpi-isvc-thumbs figure { margin: 0; height: 7.1rem; overflow: hidden; border-radius: .35rem; }
.wpi-isvc-thumbs img,
.wpi-isvc-thumbs video { width: 100%; height: 100%; object-fit: cover; }
.wpi-isvc-ticker {
  margin-top: 4.9rem;
  min-height: 3.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(80,80,80,.14);
  overflow: hidden;
}
.wpi-isvc-ticker p {
  margin: 0;
  width: 100%;
  padding: 0 1rem;
  font-family: var(--display);
  font-size: clamp(1rem, 1.25vw, 1.42rem);
  line-height: 1.35;
  text-align: center;
  white-space: nowrap;
}

.wpi-isvc-unique {
  position: relative;
  padding: 3.6rem 0 7rem;
  background: #030303;
  color: #fff;
}
.wpi-isvc-unique h2 {
  margin: 0 0 3.8rem;
  font-family: var(--display);
  font-size: clamp(5.3rem, 8.55vw, 10rem);
  line-height: .88;
  letter-spacing: -.1rem;
  text-transform: uppercase;
}
.wpi-isvc-unique-grid {
  display: grid;
  grid-template-columns: minmax(26rem, 48rem) minmax(32rem, 1fr);
  gap: 7.5rem;
  align-items: end;
}
.wpi-isvc-unique-copy {
  width: min(100%, 41rem);
  margin: 0 0 4rem;
  font-size: 1.42rem;
  line-height: 1.65;
  color: #fff;
}
.wpi-isvc-unique-art {
  width: min(100%, 42rem);
  min-height: 25rem;
}
.wpi-isvc-unique-art img,
.wpi-isvc-unique-art video { width: 100%; height: 100%; min-height: 25rem; object-fit: contain; object-position: left bottom; }
.wpi-isvc-factor-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid rgba(255,255,255,.25);
  border-left: 1px solid rgba(255,255,255,.25);
}
.wpi-isvc-factor-grid article {
  min-height: 16rem;
  padding: 2rem 2.35rem;
  border-right: 1px solid rgba(255,255,255,.25);
  border-bottom: 1px solid rgba(255,255,255,.25);
}
.wpi-isvc-factor-grid strong {
  display: block;
  margin-bottom: 2rem;
  font-family: var(--unbounded);
  font-size: 3.65rem;
  line-height: 1;
  color: var(--isvc-red);
}
.wpi-isvc-factor-grid h3 {
  margin: 0 0 .9rem;
  font-size: 1.4rem;
  line-height: 1.2;
  color: #fff;
}
.wpi-isvc-factor-grid p {
  margin: 0;
  font-family: var(--dm);
  font-size: 1rem;
  line-height: 1.65;
  color: #cecece;
}

.wpi-isvc-best {
  padding: 4.8rem 0 5.8rem;
  background: #fff;
}
.wpi-isvc-best .section-heading h2 { font-size: clamp(4rem, 5.2vw, 6rem); }
.wpi-isvc-best-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin-top: 3.5rem;
}
.wpi-isvc-best-card {
  position: relative;
  min-height: 29.5rem;
  border: .32rem solid #fff;
  overflow: visible;
}
.wpi-isvc-best-card figure { margin: 0; height: 100%; overflow: hidden; background: #111; }
.wpi-isvc-best-card img,
.wpi-isvc-best-card video { width: 100%; height: 100%; object-fit: cover; }
.wpi-isvc-best-card span {
  position: absolute;
  left: 50%;
  bottom: -1.05rem;
  transform: translateX(-50%) rotate(-3deg);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: min(82%, 18rem);
  min-height: 3.2rem;
  padding: .6rem 1.1rem;
  border: .35rem solid #010101;
  border-radius: 2rem;
  background: #fff;
  box-shadow: 0 0 .45rem rgba(0,0,0,.25);
  font-family: var(--body);
  font-size: .98rem;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}

.wpi-isvc-why {
  padding: 5.2rem 0 0;
  background: #f7f7f7;
}
.wpi-isvc-why .section-heading h2 { max-width: 54rem; }
.wpi-isvc-why .section-heading h2 span { color: var(--isvc-red); }
.wpi-isvc-why-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin-top: 4.2rem;
  padding: 4.3rem 3.8rem 4.5rem;
  background: rgba(0,0,0,.82);
  color: #fff;
  border-radius: .5rem;
}
.wpi-isvc-why-cards article { padding: 0 1.75rem; }
.wpi-isvc-why-cards strong {
  display: block;
  margin-bottom: 3rem;
  font-family: var(--unbounded);
  font-size: 3.8rem;
  color: transparent;
  -webkit-text-stroke: 1px rgba(255,255,255,.7);
}
.wpi-isvc-why-cards h3 {
  margin: 0 0 1.45rem;
  font-size: 1.8rem;
  line-height: 1.16;
}
.wpi-isvc-why-cards p {
  margin: 0;
  font-family: var(--dm);
  font-size: 1rem;
  line-height: 1.62;
}

.wpi-isvc-faq {
  display: grid;
  grid-template-columns: minmax(20rem, 36rem) minmax(32rem, 1fr);
  gap: 5rem;
  align-items: center;
  margin-top: 4.8rem;
  margin-bottom: 5.6rem;
  padding: 4.2rem 6.2rem;
  background: #fff;
  border-radius: 1.6rem;
  box-shadow: 0 .8rem 2.8rem rgba(0,0,0,.04);
}
.wpi-isvc-faq-art img,
.wpi-isvc-faq-art video { width: 100%; height: 23rem; object-fit: contain; }
.wpi-isvc-faq-content h2 {
  margin: 0 0 2rem;
  font-family: var(--display);
  font-size: clamp(3rem, 3.6vw, 4.1rem);
  line-height: 1.05;
  text-transform: uppercase;
}
.wpi-isvc-faq-content h2 span { color: var(--isvc-red); }
.wpi-isvc-faq .faq-item {
  margin-bottom: .8rem;
  overflow: hidden;
  border-radius: 1.2rem;
  background: rgba(0,0,0,.06);
}
.wpi-isvc-faq .faq-item button {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1.6rem 1.8rem;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
  font-weight: 500;
  letter-spacing: .04rem;
}
.wpi-isvc-faq .faq-item strong { font-size: 1.2rem; }
.wpi-isvc-faq .faq-answer {
  display: none;
  padding: 0 1.8rem 1.5rem;
}
.wpi-isvc-faq .faq-item.is-open .faq-answer { display: block; }
.wpi-isvc-faq .faq-answer p { margin: 0; font-size: 1rem; line-height: 1.6; }

@media (max-width: 1100px) {
  .wpi-isvc-hero-inner,
  .wpi-isvc-intro-grid,
  .wpi-isvc-unique-grid,
  .wpi-isvc-faq { grid-template-columns: 1fr; }
  .wpi-isvc-hero-media { order: -1; min-height: 24rem; }
  .wpi-isvc-best-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 3.2rem; }
  .wpi-isvc-why-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem 0; }
}
@media (max-width: 767px) {
  .wpi-isvc-hero { min-height: auto; }
  .wpi-isvc-hero-inner { display: flex; flex-direction: column; gap: 2.4rem; padding: 3rem 0 8rem; min-height: auto; }
  .wpi-isvc-hero-media { width: 100%; min-height: 18rem; }
  .wpi-isvc-hero-media img,
  .wpi-isvc-hero-media video { min-height: 18rem; }
  .wpi-isvc-hero-copy h1 { font-size: clamp(2.7rem, 10vw, 4rem); line-height: 1.02; }
  .wpi-isvc-hero-copy p { font-size: 1.18rem; line-height: 1.65; }
  .wpi-isvc-actions { gap: .8rem; }
  .wpi-isvc-actions .btn { width: auto; min-height: 3.65rem; padding: 1.15rem 1.55rem; font-size: .76rem; }
  .wpi-isvc-intro { margin-top: -4rem; padding: 4.4rem 0 3.5rem; }
  .wpi-isvc-intro-grid { gap: 3rem; }
  .wpi-isvc-intro-copy h2 { font-size: clamp(2.35rem, 9vw, 3.3rem); }
  .wpi-isvc-gallery-main,
  .wpi-isvc-gallery > img,
  .wpi-isvc-gallery > video { height: 22rem; }
  .wpi-isvc-thumbs { grid-template-columns: repeat(2, 1fr); }
  .wpi-isvc-ticker p { white-space: normal; }
  .wpi-isvc-unique { padding: 4.2rem 0; }
  .wpi-isvc-unique h2 { font-size: clamp(4.2rem, 16vw, 6.4rem); }
  .wpi-isvc-factor-grid { grid-template-columns: 1fr; }
  .wpi-isvc-best { padding: 4rem 0; }
  .wpi-isvc-best-grid { grid-template-columns: 1fr; gap: 3.4rem; }
  .wpi-isvc-best-card { min-height: 25rem; }
  .wpi-isvc-why { padding-top: 4rem; }
  .wpi-isvc-why-cards { grid-template-columns: 1fr; padding: 3rem 2rem; }
  .wpi-isvc-why-cards article { padding: 0; }
  .wpi-isvc-why-cards strong { margin-bottom: 1.4rem; }
  .wpi-isvc-faq { margin-top: 3rem; padding: 3rem 1.35rem; gap: 2rem; }
  .wpi-isvc-faq-content h2 { font-size: clamp(2.35rem, 9vw, 3.2rem); text-align: center; }
}


/*
   v1.0.36 Individual service page QA + responsive mobile pass
   - Hardens the new Custom Fireworks Shows page across tablet and mobile.
   - Keeps the Services global footer system consistent.
*/
.wpi-individual-service-page .wpi-sp-contact-pill {
  width: max-content !important;
  display: flex !important;
  align-items: center !important;
  gap: .45rem !important;
  margin-top: 1.6rem !important;
  padding: .56rem !important;
  border-radius: .24rem !important;
  background: rgba(255,255,255,.19) !important;
}
.wpi-individual-service-page .wpi-sp-contact-pill > div {
  padding: .73rem .78rem !important;
  border-radius: .22rem !important;
  background: rgba(255,255,255,.15) !important;
}
.wpi-individual-service-page .wpi-sp-contact-pill p {
  width: 19.4rem !important;
  display: flex !important;
  justify-content: space-between !important;
  gap: 2.6rem !important;
  margin: 0 !important;
  color: #fff !important;
  font-family: var(--body) !important;
  font-size: .77rem !important;
  font-weight: 600 !important;
  line-height: 1.35rem !important;
  letter-spacing: .056rem !important;
}
.wpi-individual-service-page .wpi-sp-contact-pill strong {
  color: #fff !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
}
.wpi-individual-service-page .wpi-sp-contact-pill .btn {
  min-height: 4.85rem !important;
  padding: 1.45rem 3.65rem !important;
  box-shadow: 0 0 .56rem rgba(0,0,0,.75) !important;
}

@media (min-width: 768px) and (max-width: 1200px) {
  .wpi-individual-service-page .container-wide,
  .wpi-individual-service-page .container-narrow {
    width: calc(100% - 4.5rem) !important;
  }
  .wpi-isvc-hero { min-height: auto !important; }
  .wpi-isvc-header.site-header { grid-template-columns: 12.5rem 1fr 8rem !important; gap: 1.2rem !important; }
  .wpi-isvc-header .site-logo img { width: 12.5rem !important; height: auto !important; }
  .wpi-isvc-header .main-nav { gap: 1rem !important; font-size: .82rem !important; }
  .wpi-isvc-header .header-contact { font-size: .82rem !important; }
  .wpi-isvc-hero-inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 3rem !important;
    min-height: auto !important;
    padding: 3rem 0 8rem !important;
  }
  .wpi-isvc-hero-copy h1 { font-size: clamp(3rem, 5.8vw, 4.5rem) !important; line-height: 1.03 !important; }
  .wpi-isvc-hero-copy p { width: 100% !important; font-size: 1.08rem !important; }
  .wpi-isvc-hero-media { order: 0 !important; min-height: 24rem !important; }
  .wpi-isvc-hero-media img,
  .wpi-isvc-hero-media video { min-height: 24rem !important; }
  .wpi-isvc-intro { margin-top: -5rem !important; padding-top: 5.5rem !important; }
  .wpi-isvc-intro-grid,
  .wpi-isvc-unique-grid,
  .wpi-isvc-faq { grid-template-columns: 1fr !important; }
  .wpi-isvc-intro-grid { gap: 3.5rem !important; }
  .wpi-isvc-gallery-main,
  .wpi-isvc-gallery > img,
  .wpi-isvc-gallery > video { height: 28rem !important; }
  .wpi-isvc-unique h2 { font-size: clamp(6rem, 12vw, 8.5rem) !important; }
  .wpi-isvc-unique-grid { gap: 3.5rem !important; }
  .wpi-isvc-factor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .wpi-isvc-best-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 3.2rem 0 !important; }
  .wpi-isvc-best-card { min-height: 26rem !important; }
  .wpi-isvc-why-cards { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 3rem 0 !important; }
  .wpi-isvc-faq { padding: 3.4rem !important; gap: 2.5rem !important; }
}

@media (max-width: 767px) {
  .wpi-individual-service-page {
    overflow-x: hidden !important;
  }
  .wpi-individual-service-page .container-wide,
  .wpi-individual-service-page .container-narrow {
    width: calc(100% - 2.2rem) !important;
  }
  .wpi-isvc-announcement {
    flex-direction: column !important;
    gap: .65rem !important;
    padding: .85rem 1rem 1rem !important;
  }
  .wpi-isvc-announcement p {
    width: 100% !important;
    text-align: center !important;
    font-size: 1rem !important;
    line-height: 1.25 !important;
  }
  .wpi-isvc-announcement .countdown {
    width: auto !important;
    min-width: 0 !important;
    transform: scale(.82) !important;
    transform-origin: center !important;
  }
  .wpi-isvc-header.site-header {
    min-height: 6.9rem !important;
    grid-template-columns: 10.5rem 1fr auto !important;
    gap: 1rem !important;
  }
  .wpi-isvc-header .site-logo img {
    width: 10.5rem !important;
    height: auto !important;
  }
  .wpi-isvc-header .header-contact { display: none !important; }
  .wpi-individual-service-page .mobile-menu-toggle { justify-self: end !important; }
  .wpi-individual-service-page .main-nav {
    top: calc(100% - .35rem) !important;
    left: 0 !important;
    right: 0 !important;
    padding: 1rem !important;
  }
  .wpi-isvc-hero {
    min-height: auto !important;
    padding-bottom: 0 !important;
  }
  .wpi-isvc-hero-inner {
    display: flex !important;
    flex-direction: column !important;
    gap: 2rem !important;
    min-height: 0 !important;
    padding: 2.2rem 0 5rem !important;
  }
  .wpi-isvc-hero-copy {
    order: 1 !important;
    max-width: 100% !important;
  }
  .wpi-isvc-hero-copy .eyebrow {
    min-width: 0 !important;
    margin-bottom: 1.3rem !important;
  }
  .wpi-isvc-hero-copy h1 {
    max-width: 100% !important;
    margin-bottom: 1.1rem !important;
    font-size: clamp(2.72rem, 10.6vw, 3.8rem) !important;
    line-height: 1.02 !important;
    letter-spacing: .01rem !important;
  }
  .wpi-isvc-hero-copy p {
    width: 100% !important;
    margin-bottom: 1.55rem !important;
    font-size: 1.08rem !important;
    line-height: 1.58 !important;
  }
  .wpi-isvc-hero-media {
    order: 2 !important;
    width: 100% !important;
    min-height: 16.5rem !important;
    border-radius: .45rem !important;
  }
  .wpi-isvc-hero-media img,
  .wpi-isvc-hero-media video {
    min-height: 16.5rem !important;
  }
  .wpi-isvc-actions {
    width: 100% !important;
    gap: .8rem !important;
  }
  .wpi-isvc-actions .btn {
    width: min(100%, 24rem) !important;
    min-height: 3.75rem !important;
    padding: 1.12rem 1.45rem !important;
    font-size: .75rem !important;
    white-space: normal !important;
    text-align: center !important;
  }
  .wpi-isvc-intro {
    margin-top: 0 !important;
    padding: 4rem 0 3.6rem !important;
    border-radius: .9rem .9rem 0 0 !important;
  }
  .wpi-isvc-intro-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 2.6rem !important;
  }
  .wpi-isvc-intro-copy h2 {
    font-size: clamp(2.45rem, 9.5vw, 3.35rem) !important;
    line-height: 1.03 !important;
  }
  .wpi-isvc-intro-copy p {
    font-size: 1.06rem !important;
    line-height: 1.68 !important;
  }
  .wpi-isvc-shape-lines {
    margin: 1.4rem 0 1.7rem !important;
    gap: .5rem !important;
  }
  .wpi-isvc-shape-lines p {
    min-height: 2.55rem !important;
    padding-left: 1.85rem !important;
    font-size: 1.02rem !important;
  }
  .wpi-isvc-gallery-main,
  .wpi-isvc-gallery > img,
  .wpi-isvc-gallery > video {
    height: 20rem !important;
    border-radius: .45rem !important;
  }
  .wpi-isvc-thumbs {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .6rem !important;
  }
  .wpi-isvc-thumbs figure { height: 6.2rem !important; }
  .wpi-isvc-ticker {
    margin-top: 2.7rem !important;
    min-height: 3.6rem !important;
    padding: .45rem .5rem !important;
  }
  .wpi-isvc-ticker p {
    white-space: normal !important;
    font-size: .95rem !important;
    line-height: 1.32 !important;
  }
  .wpi-isvc-unique {
    padding: 3.9rem 0 4.5rem !important;
  }
  .wpi-isvc-unique h2 {
    margin-bottom: 2.4rem !important;
    font-size: clamp(3.8rem, 15.5vw, 5.7rem) !important;
    line-height: .9 !important;
    letter-spacing: -.05rem !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
  }
  .wpi-isvc-unique-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 2.5rem !important;
  }
  .wpi-isvc-unique-copy {
    margin-bottom: 2rem !important;
    font-size: 1.04rem !important;
    line-height: 1.62 !important;
  }
  .wpi-isvc-unique-art,
  .wpi-isvc-unique-art img,
  .wpi-isvc-unique-art video {
    width: 100% !important;
    min-height: 15rem !important;
    max-height: 19rem !important;
    object-position: center bottom !important;
  }
  .wpi-isvc-factor-grid {
    grid-template-columns: 1fr !important;
  }
  .wpi-isvc-factor-grid article {
    min-height: 0 !important;
    padding: 1.65rem 1.4rem !important;
  }
  .wpi-isvc-factor-grid strong {
    margin-bottom: 1.15rem !important;
    font-size: 2.65rem !important;
  }
  .wpi-isvc-best {
    padding: 4rem 0 4.8rem !important;
  }
  .wpi-isvc-best .section-heading h2 {
    font-size: clamp(3.4rem, 13vw, 4.8rem) !important;
  }
  .wpi-isvc-best .section-heading p {
    font-size: 1.05rem !important;
    line-height: 1.55 !important;
  }
  .wpi-isvc-best-grid {
    grid-template-columns: 1fr !important;
    gap: 3.25rem !important;
    margin-top: 2.5rem !important;
  }
  .wpi-isvc-best-card {
    min-height: 22rem !important;
    border-width: .25rem !important;
  }
  .wpi-isvc-best-card span {
    width: min(84%, 19rem) !important;
    min-height: 3rem !important;
    font-size: .95rem !important;
  }
  .wpi-isvc-why {
    padding: 4rem 0 0 !important;
  }
  .wpi-isvc-why .section-heading h2 {
    font-size: clamp(2.45rem, 9.5vw, 3.35rem) !important;
  }
  .wpi-isvc-why .section-heading p {
    font-size: 1.05rem !important;
    line-height: 1.6 !important;
  }
  .wpi-isvc-why-cards {
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    margin-top: 2.7rem !important;
    padding: 2.4rem 1.4rem !important;
  }
  .wpi-isvc-why-cards article { padding: 0 !important; }
  .wpi-isvc-why-cards strong {
    margin-bottom: 1rem !important;
    font-size: 2.8rem !important;
  }
  .wpi-isvc-why-cards h3 {
    font-size: 1.45rem !important;
  }
  .wpi-isvc-faq {
    grid-template-columns: 1fr !important;
    gap: 1.8rem !important;
    margin-top: 3.2rem !important;
    margin-bottom: 4rem !important;
    padding: 2.4rem 1.2rem !important;
    border-radius: 1.2rem !important;
  }
  .wpi-isvc-faq-art img,
  .wpi-isvc-faq-art video {
    height: 12rem !important;
  }
  .wpi-isvc-faq-content h2 {
    font-size: clamp(2.25rem, 8.8vw, 3rem) !important;
    line-height: 1.02 !important;
    text-align: center !important;
  }
  .wpi-isvc-faq .faq-item button {
    padding: 1.25rem 1.15rem !important;
    font-size: .95rem !important;
    line-height: 1.28 !important;
  }
  .wpi-isvc-faq .faq-answer { padding: 0 1.15rem 1.25rem !important; }
  .wpi-individual-service-page .wpi-sp-footer {
    min-height: auto !important;
    padding: 4rem 0 2.4rem !important;
  }
  .wpi-individual-service-page .wpi-sp-contact-pill {
    width: 100% !important;
    max-width: 100% !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }
  .wpi-individual-service-page .wpi-sp-contact-pill > div {
    width: 100% !important;
  }
  .wpi-individual-service-page .wpi-sp-contact-pill p {
    width: 100% !important;
    gap: 1rem !important;
    font-size: .9rem !important;
  }
  .wpi-individual-service-page .wpi-sp-contact-pill .btn {
    width: 100% !important;
    min-height: 4.2rem !important;
  }
}


/*
   v1.0.37 Final QA hardening
   - Prevents accidental horizontal overflow on the new individual service page.
   - Keeps mobile media/cards/forms inside the viewport.
   - Keeps the global Services footer desktop bottom breathing room.
*/
.wpi-individual-service-page,
.wpi-individual-service-page * {
  box-sizing: border-box;
}
.wpi-individual-service-page img,
.wpi-individual-service-page video {
  max-width: 100%;
}
@media (min-width: 768px) {
  .wpi-individual-service-page .wpi-sp-footer {
    padding-bottom: 1.25rem !important;
  }
}
@media (max-width: 767px) {
  .wpi-individual-service-page .wpi-isvc-gallery,
  .wpi-individual-service-page .wpi-isvc-best-card,
  .wpi-individual-service-page .wpi-isvc-faq,
  .wpi-individual-service-page .wpi-isvc-why-cards,
  .wpi-individual-service-page .wpi-sp-contact-pill {
    max-width: 100% !important;
  }
  .wpi-individual-service-page .wpi-isvc-header .main-nav a {
    font-size: 1.05rem !important;
    line-height: 1.2 !important;
    padding: 1rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-actions .btn {
    justify-content: center !important;
  }
}

/*
   v1.0.38 Individual service hero + FAQ polish
   - Brings the Custom Fireworks Shows hero closer to the Figma proportions.
   - Forces the individual service FAQ to use the same homepage/services FAQ system.
*/
.wpi-individual-service-page .wpi-isvc-hero-inner {
  grid-template-columns: minmax(0, 60.25rem) minmax(28rem, 1fr) !important;
  gap: 4rem !important;
  min-height: 38rem !important;
  padding-top: 3.25rem !important;
  padding-bottom: 6.25rem !important;
}
.wpi-individual-service-page .wpi-isvc-hero-copy {
  max-width: 60.25rem !important;
}
.wpi-individual-service-page .wpi-isvc-hero-copy .eyebrow {
  min-width: 18.95rem !important;
  margin-bottom: 2.35rem !important;
  padding: .55rem 1.55rem !important;
  font-size: .79rem !important;
  line-height: .85rem !important;
  letter-spacing: .042rem !important;
}
.wpi-individual-service-page .wpi-isvc-hero-copy h1 {
  width: min(100%, 56.6rem) !important;
  max-width: 56.6rem !important;
  margin: 0 0 1.55rem !important;
  font-size: clamp(3.05rem, 2.75vw, 3.38rem) !important;
  line-height: 1.19 !important;
  letter-spacing: .01rem !important;
}
.wpi-individual-service-page .wpi-isvc-hero-copy p {
  width: min(100%, 37.1rem) !important;
  max-width: 37.1rem !important;
  margin-bottom: 1.9rem !important;
  font-size: 1.21rem !important;
  line-height: 1.82rem !important;
}
.wpi-individual-service-page .wpi-isvc-actions .btn {
  min-height: 3.86rem !important;
  padding: 1.4rem 3.02rem !important;
  border-radius: 4.66rem !important;
  font-size: .79rem !important;
  line-height: .84rem !important;
  letter-spacing: .042rem !important;
}
.wpi-individual-service-page .wpi-isvc-hero-media {
  min-height: 30.6rem !important;
}
.wpi-individual-service-page .wpi-isvc-hero-media img,
.wpi-individual-service-page .wpi-isvc-hero-media video {
  min-height: 30.6rem !important;
}

.wpi-individual-service-page .wpi-isvc-faq-section.faq-section,
.wpi-individual-service-page .wpi-isvc-faq-section {
  padding: 4.5rem 0 5rem !important;
  background: #efefef !important;
}
.wpi-individual-service-page .wpi-isvc-faq-panel.faq-panel,
.wpi-individual-service-page .wpi-isvc-faq-panel {
  width: min(calc(100% - 4rem), 104.24rem) !important;
  min-height: 39.05rem !important;
  display: grid !important;
  grid-template-columns: 37rem 1fr !important;
  align-items: center !important;
  gap: 3.8rem !important;
  margin-inline: auto !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding: 3.2rem 6.6rem !important;
  border-radius: 1.5rem !important;
  background: #fff !important;
  box-shadow: none !important;
  overflow: hidden !important;
}
.wpi-individual-service-page .wpi-isvc-faq-art.faq-art,
.wpi-individual-service-page .wpi-isvc-faq-art {
  width: auto !important;
  height: auto !important;
  align-self: center !important;
  display: flex !important;
  justify-content: center !important;
  transform: none !important;
}
.wpi-individual-service-page .wpi-isvc-faq-art img,
.wpi-individual-service-page .wpi-isvc-faq-art video {
  width: 34rem !important;
  height: auto !important;
  max-height: 26rem !important;
  object-fit: contain !important;
  opacity: .79 !important;
}
.wpi-individual-service-page .wpi-isvc-faq-content.faq-content h2,
.wpi-individual-service-page .wpi-isvc-faq-content h2 {
  width: 41.59rem !important;
  max-width: 100% !important;
  margin: 0 0 2.2rem !important;
  color: #1b1919 !important;
  font-family: var(--display) !important;
  font-size: 3.69rem !important;
  line-height: 1.05 !important;
  letter-spacing: .074rem !important;
  text-transform: uppercase !important;
  text-align: left !important;
}
.wpi-individual-service-page .wpi-isvc-faq-content h2 span {
  color: var(--isvc-red) !important;
}
.wpi-individual-service-page .wpi-isvc-faq-list.faq-list,
.wpi-individual-service-page .wpi-isvc-faq-list {
  display: flex !important;
  flex-direction: column !important;
  gap: .75rem !important;
}
.wpi-individual-service-page .wpi-isvc-faq-list .faq-item {
  margin: 0 !important;
  overflow: hidden !important;
  border-radius: 1.27rem !important;
  background: rgba(0,0,0,.06) !important;
  box-shadow: none !important;
}
.wpi-individual-service-page .wpi-isvc-faq-list .faq-item button {
  width: 100% !important;
  min-height: 4.82rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 2rem !important;
  padding: 1.85rem 1.5rem !important;
  border: 0 !important;
  background: transparent !important;
  color: #000 !important;
  font-family: var(--body) !important;
  font-size: 1.27rem !important;
  font-weight: 500 !important;
  line-height: 1.45rem !important;
  letter-spacing: .04rem !important;
  text-align: left !important;
  cursor: pointer !important;
}
.wpi-individual-service-page .wpi-isvc-faq-list .faq-item button > span {
  position: relative !important;
  width: .9rem !important;
  height: .9rem !important;
  flex: 0 0 .9rem !important;
  display: inline-block !important;
}
.wpi-individual-service-page .wpi-isvc-faq-list .faq-item button > span::before,
.wpi-individual-service-page .wpi-isvc-faq-list .faq-item button > span::after {
  content: "" !important;
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: .9rem !important;
  height: .12rem !important;
  background: #000 !important;
  transform: translate(-50%, -50%) !important;
}
.wpi-individual-service-page .wpi-isvc-faq-list .faq-item button > span::after {
  transform: translate(-50%, -50%) rotate(90deg) !important;
}
.wpi-individual-service-page .wpi-isvc-faq-list .faq-item.is-open button > span::after {
  transform: translate(-50%, -50%) rotate(0deg) !important;
}
.wpi-individual-service-page .wpi-isvc-faq-list .faq-item p {
  display: none !important;
  margin: 0 !important;
  padding: 0 1.5rem 1.5rem !important;
  color: #000 !important;
  font-size: 1.1rem !important;
  line-height: 1.6rem !important;
}
.wpi-individual-service-page .wpi-isvc-faq-list .faq-item.is-open p {
  display: block !important;
}

@media (min-width: 768px) and (max-width: 1200px) {
  .wpi-individual-service-page .wpi-isvc-hero-inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    padding-top: 3rem !important;
    padding-bottom: 7rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-copy h1 {
    font-size: clamp(2.8rem, 4.7vw, 3.35rem) !important;
    line-height: 1.15 !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-copy p {
    font-size: 1.12rem !important;
    line-height: 1.68rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-faq-panel.faq-panel,
  .wpi-individual-service-page .wpi-isvc-faq-panel {
    grid-template-columns: 1fr !important;
    min-height: 0 !important;
    padding: 3.4rem !important;
    gap: 2.5rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-faq-art {
    margin-inline: auto !important;
  }
  .wpi-individual-service-page .wpi-isvc-faq-content h2 {
    width: 100% !important;
    text-align: center !important;
  }
}

@media (max-width: 767px) {
  .wpi-individual-service-page .wpi-isvc-hero-inner {
    padding: 2.2rem 0 5rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-copy h1 {
    font-size: clamp(2.35rem, 9.2vw, 3.2rem) !important;
    line-height: 1.06 !important;
    max-width: 100% !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-copy p {
    font-size: 1.05rem !important;
    line-height: 1.58rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-actions .btn {
    width: min(100%, 24rem) !important;
    min-height: 3.75rem !important;
    padding: 1.12rem 1.45rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-faq-section.faq-section,
  .wpi-individual-service-page .wpi-isvc-faq-section {
    padding: 3.2rem 0 !important;
  }
  .wpi-individual-service-page .wpi-isvc-faq-panel.faq-panel,
  .wpi-individual-service-page .wpi-isvc-faq-panel {
    width: calc(100% - 2.2rem) !important;
    min-height: 0 !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    padding: 2rem 1.35rem !important;
    border-radius: 1.2rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-faq-art img,
  .wpi-individual-service-page .wpi-isvc-faq-art video {
    width: 100% !important;
    height: 13rem !important;
    max-height: 13rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-faq-content h2 {
    width: 100% !important;
    font-size: clamp(2.35rem, 9vw, 3.2rem) !important;
    line-height: 1.03 !important;
    text-align: center !important;
  }
  .wpi-individual-service-page .wpi-isvc-faq-list .faq-item button {
    min-height: 4rem !important;
    padding: 1.25rem 1.15rem !important;
    font-size: 1rem !important;
    line-height: 1.25rem !important;
  }
}

/*
   v1.0.39 Individual service hero clipping fix
   - Stops the Custom Fireworks Shows hero from being visually cut by the following white section.
   - Adds safe desktop bottom breathing room while keeping the smaller Figma-like hero typography from v1.0.38.
   - Resets mobile/tablet hero min-height so content controls the section height naturally.
*/
.wpi-individual-service-page .wpi-isvc-hero {
  min-height: auto !important;
  overflow: visible !important;
  padding-bottom: 0 !important;
}
.wpi-individual-service-page .wpi-isvc-hero::before {
  bottom: -1px !important;
}
.wpi-individual-service-page .wpi-isvc-hero-inner {
  min-height: 42rem !important;
  align-items: center !important;
  padding-top: 3.35rem !important;
  padding-bottom: 9.4rem !important;
  overflow: visible !important;
}
.wpi-individual-service-page .wpi-isvc-hero-copy,
.wpi-individual-service-page .wpi-isvc-hero-copy h1,
.wpi-individual-service-page .wpi-isvc-hero-copy h1 span,
.wpi-individual-service-page .wpi-isvc-hero-copy p,
.wpi-individual-service-page .wpi-isvc-actions {
  overflow: visible !important;
}
.wpi-individual-service-page .wpi-isvc-hero-copy h1 {
  height: auto !important;
  min-height: 0 !important;
  display: block !important;
  padding-bottom: .05em !important;
}
.wpi-individual-service-page .wpi-isvc-intro {
  margin-top: -6.2rem !important;
}

@media (min-width: 768px) and (max-width: 1200px) {
  .wpi-individual-service-page .wpi-isvc-hero-inner {
    min-height: auto !important;
    padding-top: 3rem !important;
    padding-bottom: 8rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-intro {
    margin-top: -4.2rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-individual-service-page .wpi-isvc-hero {
    overflow: hidden !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-inner {
    min-height: 0 !important;
    padding-top: 2.35rem !important;
    padding-bottom: 5.6rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-copy h1 {
    width: 100% !important;
    height: auto !important;
    padding-bottom: .08em !important;
  }
  .wpi-individual-service-page .wpi-isvc-intro {
    margin-top: 0 !important;
  }
}



/*
   v1.0.40 Individual service hero image blend polish
   - Makes the hero media behave like the Figma background image instead of a hard right-side rectangle.
   - Adds left, top, bottom, and outer vignette fades so the image blends into the black hero.
   - Keeps the v1.0.39 safe hero height so the text does not clip.
*/
@media (min-width: 1025px) {
  .wpi-individual-service-page .wpi-isvc-hero {
    background: #000 !important;
    overflow: hidden !important;
    isolation: isolate !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero::before {
    background:
      linear-gradient(180deg, rgba(48,48,48,.84) 0%, rgba(0,0,0,.14) 33%, rgba(0,0,0,.96) 100%) !important;
    z-index: 1 !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-inner {
    position: relative !important;
    grid-template-columns: minmax(0, 56rem) minmax(0, 1fr) !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-copy {
    position: relative !important;
    z-index: 6 !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-media {
    position: absolute !important;
    z-index: 1 !important;
    top: -9.25rem !important;
    right: -10vw !important;
    bottom: -8.5rem !important;
    width: min(70vw, 76rem) !important;
    height: auto !important;
    min-height: calc(100% + 17.75rem) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
    opacity: .96 !important;
    filter: saturate(1.08) contrast(1.08) brightness(.82) !important;
    background: #000 !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-media img,
  .wpi-individual-service-page .wpi-isvc-hero-media video {
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: scale(1.045) !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-media::before {
    content: "" !important;
    position: absolute !important;
    inset: -2px !important;
    z-index: 2 !important;
    pointer-events: none !important;
    background:
      linear-gradient(90deg, #000 0%, rgba(0,0,0,.98) 12%, rgba(0,0,0,.72) 28%, rgba(0,0,0,.32) 48%, rgba(0,0,0,0) 68%),
      linear-gradient(180deg, rgba(0,0,0,.96) 0%, rgba(0,0,0,.24) 18%, rgba(0,0,0,.08) 55%, rgba(0,0,0,.98) 100%),
      radial-gradient(ellipse at 35% 54%, rgba(0,0,0,.86) 0%, rgba(0,0,0,.48) 32%, rgba(0,0,0,0) 58%);
  }
  .wpi-individual-service-page .wpi-isvc-hero-media::after {
    content: "" !important;
    position: absolute !important;
    inset: -2px !important;
    z-index: 3 !important;
    pointer-events: none !important;
    background:
      radial-gradient(ellipse at 62% 46%, rgba(0,0,0,0) 0%, rgba(0,0,0,.04) 32%, rgba(0,0,0,.38) 70%, #000 100%);
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .wpi-individual-service-page .wpi-isvc-hero {
    background: #000 !important;
    overflow: hidden !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-media {
    background: #000 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    filter: saturate(1.05) contrast(1.05) brightness(.84) !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-media::before {
    content: "" !important;
    position: absolute !important;
    inset: -1px !important;
    z-index: 2 !important;
    pointer-events: none !important;
    background:
      linear-gradient(180deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.08) 28%, rgba(0,0,0,.9) 100%),
      linear-gradient(90deg, rgba(0,0,0,.75) 0%, rgba(0,0,0,0) 42%, rgba(0,0,0,.45) 100%);
  }
}

@media (max-width: 767px) {
  .wpi-individual-service-page .wpi-isvc-hero-media {
    background: #000 !important;
    overflow: hidden !important;
    filter: saturate(1.04) contrast(1.04) brightness(.86) !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-media::before {
    content: "" !important;
    position: absolute !important;
    inset: -1px !important;
    z-index: 2 !important;
    pointer-events: none !important;
    background:
      linear-gradient(180deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.08) 30%, rgba(0,0,0,.92) 100%),
      linear-gradient(90deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,0) 50%, rgba(0,0,0,.58) 100%);
  }
}

/*
   v1.0.41 Gallery / Portfolio page + Gallery CPT frontend
   - Figma-inspired gallery page with hero, proof section, filter bar, masonry media grid, CTA, FAQ, and global footer.
   - Uses the Gallery CPT media URL/type/category data.
*/
.wpi-gallery-page{background:#fff;color:#000;overflow:hidden}.wpi-gallery-page .container-wide{width:min(92vw,103.5rem);margin-inline:auto}.wpi-gallery-page .container-narrow{width:min(92vw,64rem);margin-inline:auto}.wpi-gallery-hero{min-height:53.75rem;background:#000;position:relative;color:#fff;padding-bottom:7.5rem}.wpi-gallery-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(48,48,48,.65) 0%,rgba(0,0,0,.05) 42%,#000 100%),radial-gradient(ellipse at center top,rgba(210,4,4,.18) 0%,rgba(0,0,0,0) 45%);opacity:.9}.wpi-gallery-announcement{position:relative;z-index:5}.wpi-gallery-header{position:relative;z-index:6;padding-top:2.15rem}.wpi-gallery-hero-copy{position:relative;z-index:4;text-align:center;padding-top:5.8rem;display:flex;flex-direction:column;align-items:center}.wpi-gallery-hero-copy .eyebrow{border-color:rgba(255,255,255,.9);color:#fff;margin-bottom:2.45rem}.wpi-gallery-hero-copy h1{margin:0;color:#fff;text-transform:uppercase;font-family:var(--font-heading,"Clash Display",sans-serif);font-size:clamp(3.05rem,4.1vw,4.1rem);line-height:.94;letter-spacing:-.04em;max-width:64rem}.wpi-gallery-hero-copy h1 span{display:block}.wpi-gallery-hero-copy p{max-width:39rem;margin:1.75rem auto 0;color:rgba(255,255,255,.9);font-family:"Red Hat Display",sans-serif;font-size:1.3rem;line-height:1.5}.wpi-gallery-hero-actions{display:flex;justify-content:center;align-items:center;gap:1.9rem;margin-top:2.15rem;flex-wrap:wrap}.wpi-gallery-hero-actions .btn{min-width:16rem}.wpi-gallery-work{background:#fff;margin-top:-.1rem;padding:4rem 0 5rem;position:relative;z-index:5}.wpi-gallery-proof{text-align:center;margin-bottom:3.5rem}.wpi-gallery-proof h2{font-family:var(--font-heading,"Clash Display",sans-serif);font-size:clamp(2.7rem,3.2vw,3.65rem);letter-spacing:-.05em;line-height:1;margin:0 0 1.25rem;color:#000}.wpi-gallery-proof div,.wpi-gallery-proof p{font-family:"Red Hat Display",sans-serif;color:#1f1e1e;font-size:1.34rem;line-height:1.5;margin:0 auto;max-width:43rem}.wpi-gallery-proof p+p{margin-top:.55rem}.wpi-gallery-filter-wrap{background:rgba(80,80,80,.07);border-radius:.35rem;min-height:7.4rem;margin-bottom:2.9rem;display:flex;align-items:center;justify-content:center;gap:.9rem;flex-wrap:wrap;padding:1.3rem}.wpi-gallery-filter{appearance:none;border:0;background:transparent;color:rgba(0,0,0,.9);font-family:"Red Hat Display",sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:.28em;font-size:1.08rem;line-height:1;cursor:pointer;padding:1.45rem 2.45rem;border-radius:.75rem;transition:background .2s ease,color .2s ease,transform .2s ease}.wpi-gallery-filter:hover{transform:translateY(-1px);background:rgba(0,0,0,.06)}.wpi-gallery-filter.is-active{background:#000;color:#fff}.wpi-gallery-grid{columns:3 20rem;column-gap:1rem}.wpi-gallery-card{break-inside:avoid;margin:0 0 1rem;display:block}.wpi-gallery-card.is-hidden{display:none}.wpi-gallery-card-media{position:relative;overflow:hidden;margin:0;border-radius:.5rem;background:#111;box-shadow:0 .2rem 1.2rem rgba(0,0,0,.08)}.wpi-gallery-card-media a{display:block}.wpi-gallery-card-media img,.wpi-gallery-card-media video{display:block;width:100%;height:auto;min-height:18rem;object-fit:cover;transition:transform .45s ease,filter .45s ease}.wpi-gallery-card:nth-child(3n+1) .wpi-gallery-card-media img,.wpi-gallery-card:nth-child(3n+1) .wpi-gallery-card-media video{min-height:23rem}.wpi-gallery-card:nth-child(3n+2) .wpi-gallery-card-media img,.wpi-gallery-card:nth-child(3n+2) .wpi-gallery-card-media video{min-height:30rem}.wpi-gallery-card:nth-child(4n+3) .wpi-gallery-card-media img,.wpi-gallery-card:nth-child(4n+3) .wpi-gallery-card-media video{min-height:19rem}.wpi-gallery-card-media:hover img,.wpi-gallery-card-media:hover video{transform:scale(1.045);filter:saturate(1.08) contrast(1.06)}.wpi-gallery-card-media::after{content:"";position:absolute;inset:auto 0 0;height:45%;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.72));opacity:.92}.wpi-gallery-card figcaption{position:absolute;left:1.1rem;right:1.1rem;bottom:1rem;color:#fff;z-index:2;display:grid;gap:.3rem}.wpi-gallery-card figcaption small{font-family:"Inter",sans-serif;text-transform:uppercase;font-size:.68rem;letter-spacing:.22em;color:rgba(255,255,255,.78)}.wpi-gallery-card figcaption strong{font-family:"Red Hat Display",sans-serif;font-size:1.15rem;line-height:1.15}.wpi-gallery-play{position:absolute;inset:0;z-index:3;pointer-events:none}.wpi-gallery-play::before{content:"";position:absolute;left:50%;top:50%;width:4.2rem;height:4.2rem;border-radius:50%;transform:translate(-50%,-50%);background:rgba(210,4,4,.9);box-shadow:0 0 0 .55rem rgba(210,4,4,.16)}.wpi-gallery-play::after{content:"";position:absolute;left:calc(50% + .18rem);top:50%;transform:translate(-50%,-50%);border-left:1.1rem solid #fff;border-top:.72rem solid transparent;border-bottom:.72rem solid transparent}.wpi-gallery-cta{background:#000;color:#fff;border-top:.95rem solid #fff;border-bottom:.95rem solid #fff;position:relative}.wpi-gallery-cta-inner{min-height:43rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5rem 0}.wpi-gallery-cta-icon{width:11.5rem;height:11.5rem;margin-bottom:.4rem;display:flex;align-items:center;justify-content:center}.wpi-gallery-cta-icon img{max-width:100%;max-height:100%;object-fit:contain}.wpi-gallery-cta h2{font-family:var(--font-heading,"Clash Display",sans-serif);font-size:clamp(3rem,4vw,4.1rem);line-height:.96;letter-spacing:.02em;text-transform:uppercase;margin:0 0 1.6rem}.wpi-gallery-cta h2 span{display:block;color:#d20404}.wpi-gallery-cta-copy{font-family:"Red Hat Display",sans-serif;font-size:1.32rem;line-height:1.5;max-width:45rem;color:rgba(255,255,255,.86);margin-bottom:2rem}.wpi-gallery-cta-copy p{margin:.3rem 0}.wpi-gallery-cta-copy strong{font-size:1.5rem;color:#fff}.wpi-gallery-cta .btn-light-wide{min-width:27rem}.wpi-gallery-faq-section{background:#fff;padding:3.4rem 0 4.5rem}.wpi-gallery-faq-panel{background:#fff;border-radius:1.6rem;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.15fr);gap:4rem;align-items:center;padding:4rem 5rem;box-shadow:0 0 0 1px rgba(0,0,0,.03)}.wpi-gallery-faq-art{min-height:24rem;display:flex;align-items:flex-end;justify-content:center}.wpi-gallery-faq-art img{max-width:100%;max-height:24rem;object-fit:contain}.wpi-gallery-faq-content h2{font-family:var(--font-heading,"Clash Display",sans-serif);font-size:clamp(2.8rem,3.3vw,3.9rem);line-height:.96;letter-spacing:.02em;text-transform:uppercase;margin:0 0 2.1rem;color:#1b1919}.wpi-gallery-faq-content h2 span{color:#d20404}.wpi-gallery-faq-list .faq-item button{background:rgba(0,0,0,.06)}
@media (max-width:1024px){.wpi-gallery-hero{min-height:auto;padding-bottom:5.5rem}.wpi-gallery-hero-copy{padding-top:4.6rem}.wpi-gallery-hero-copy h1{font-size:clamp(3rem,7vw,4.7rem)}.wpi-gallery-filter-wrap{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;padding:1rem}.wpi-gallery-filter{white-space:nowrap;font-size:1rem;padding:1.2rem 1.7rem}.wpi-gallery-grid{columns:2 18rem}.wpi-gallery-faq-panel{grid-template-columns:1fr;gap:2rem;padding:3.2rem 2rem}.wpi-gallery-faq-art{min-height:14rem}.wpi-gallery-faq-art img{max-height:16rem}.wpi-gallery-page .wpi-sp-footer{margin-top:0}}
@media (max-width:767px){.wpi-gallery-hero{padding-bottom:4.5rem}.wpi-gallery-header{padding-top:1.5rem}.wpi-gallery-hero-copy{padding-top:4rem}.wpi-gallery-hero-copy .eyebrow{margin-bottom:1.8rem}.wpi-gallery-hero-copy h1{font-size:clamp(3.1rem,12.5vw,4.8rem);line-height:.92;max-width:34rem}.wpi-gallery-hero-copy p{font-size:1.48rem;line-height:1.45;max-width:31rem}.wpi-gallery-hero-actions{gap:1rem}.wpi-gallery-hero-actions .btn{width:auto;min-width:0}.wpi-gallery-work{padding:3.5rem 0 3rem}.wpi-gallery-proof{margin-bottom:2.4rem}.wpi-gallery-proof h2{font-size:3.15rem}.wpi-gallery-proof div,.wpi-gallery-proof p{font-size:1.35rem}.wpi-gallery-filter-wrap{width:92vw;margin-bottom:2rem;border-radius:.8rem;min-height:auto}.wpi-gallery-filter{font-size:.95rem;letter-spacing:.18em;padding:1rem 1.2rem}.wpi-gallery-grid{columns:1;column-gap:0}.wpi-gallery-card{margin-bottom:1.15rem}.wpi-gallery-card-media img,.wpi-gallery-card-media video,.wpi-gallery-card:nth-child(n) .wpi-gallery-card-media img,.wpi-gallery-card:nth-child(n) .wpi-gallery-card-media video{min-height:22rem}.wpi-gallery-cta-inner{min-height:auto;padding:4rem 0}.wpi-gallery-cta-icon{width:8.5rem;height:8.5rem}.wpi-gallery-cta h2{font-size:3.25rem}.wpi-gallery-cta-copy{font-size:1.35rem;max-width:31rem}.wpi-gallery-cta .btn-light-wide{min-width:0;width:auto}.wpi-gallery-faq-section{padding:2.5rem 0 3rem}.wpi-gallery-faq-panel{border-radius:1.3rem;padding:2.5rem 1.5rem}.wpi-gallery-faq-content h2{text-align:center;font-size:2.8rem}.wpi-gallery-faq-art{order:2;min-height:10rem}.wpi-gallery-faq-content{order:1}}

/* v1.0.42 Gallery QA + mobile hardening */
.wpi-gallery-page,
.wpi-gallery-page * {
  max-width: 100%;
}
.wpi-gallery-page {
  overflow-x: clip;
}
.wpi-gallery-page .container-wide,
.wpi-gallery-page .container-narrow {
  max-width: calc(100vw - 2rem);
}
.wpi-gallery-hero {
  min-height: 53.75rem;
  overflow: hidden;
}
.wpi-gallery-hero-copy {
  width: min(92vw, 64rem);
}
.wpi-gallery-hero-copy h1 {
  width: 100%;
  text-wrap: balance;
}
.wpi-gallery-hero-copy p {
  text-wrap: pretty;
}
.wpi-gallery-work {
  overflow: hidden;
}
.wpi-gallery-filter-wrap {
  max-width: min(92vw, 103.5rem);
}
.wpi-gallery-filter {
  user-select: none;
}
.wpi-gallery-grid {
  max-width: min(92vw, 103.5rem);
}
.wpi-gallery-card-media img,
.wpi-gallery-card-media video {
  aspect-ratio: 4 / 3;
  width: 100%;
}
.wpi-gallery-card.is-video .wpi-gallery-card-media video {
  background: #050505;
}
.wpi-gallery-card.is-hidden {
  display: none !important;
}
.wpi-gallery-card[hidden] {
  display: none !important;
}
.wpi-gallery-cta,
.wpi-gallery-faq-section,
.wpi-gallery-page .wpi-sp-footer {
  overflow: hidden;
}
.wpi-gallery-cta-inner,
.wpi-gallery-faq-panel {
  max-width: min(92vw, 103.5rem);
}
.wpi-gallery-cta-copy,
.wpi-gallery-faq-content h2 {
  text-wrap: balance;
}
.wpi-gallery-faq-list .faq-item button {
  width: 100%;
}

@media (max-width: 1180px) {
  .wpi-gallery-hero {
    min-height: 49rem;
    padding-bottom: 6rem;
  }
  .wpi-gallery-hero-copy {
    padding-top: 4.8rem;
  }
  .wpi-gallery-filter-wrap {
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
    padding: 1rem;
    gap: .7rem;
  }
  .wpi-gallery-filter-wrap::-webkit-scrollbar {
    height: 0;
  }
  .wpi-gallery-filter {
    flex: 0 0 auto;
    scroll-snap-align: start;
  }
  .wpi-gallery-grid {
    columns: 2 20rem;
    column-gap: 1rem;
  }
  .wpi-gallery-faq-panel {
    grid-template-columns: .75fr 1.15fr;
    gap: 2.5rem;
    padding: 3.4rem 2.5rem;
  }
}

@media (max-width: 900px) {
  .wpi-gallery-hero {
    min-height: auto;
    padding-bottom: 5rem;
  }
  .wpi-gallery-hero-copy {
    padding-top: 4.4rem;
  }
  .wpi-gallery-hero-copy h1 {
    font-size: clamp(3.2rem, 8.8vw, 5.4rem);
    line-height: .94;
    letter-spacing: -.045em;
    max-width: 44rem;
  }
  .wpi-gallery-hero-copy p {
    max-width: 36rem;
  }
  .wpi-gallery-work {
    padding-top: 4.2rem;
  }
  .wpi-gallery-proof {
    margin-bottom: 2.6rem;
  }
  .wpi-gallery-proof h2 {
    font-size: clamp(2.8rem, 7vw, 4rem);
  }
  .wpi-gallery-filter-wrap {
    width: min(92vw, 52rem);
    min-height: auto;
    border-radius: .85rem;
    margin-bottom: 2.2rem;
  }
  .wpi-gallery-grid {
    columns: 2 16rem;
    column-gap: .9rem;
  }
  .wpi-gallery-card {
    margin-bottom: .9rem;
  }
  .wpi-gallery-card-media img,
  .wpi-gallery-card-media video,
  .wpi-gallery-card:nth-child(n) .wpi-gallery-card-media img,
  .wpi-gallery-card:nth-child(n) .wpi-gallery-card-media video {
    min-height: 19rem;
  }
  .wpi-gallery-cta-inner {
    min-height: auto;
    padding: 4.5rem 0;
  }
  .wpi-gallery-faq-panel {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding: 3rem 2rem;
  }
  .wpi-gallery-faq-art {
    order: 2;
    min-height: 12rem;
  }
  .wpi-gallery-faq-content {
    order: 1;
  }
}

@media (max-width: 767px) {
  .wpi-gallery-page .container-wide,
  .wpi-gallery-page .container-narrow {
    width: min(92vw, 34rem);
    max-width: min(92vw, 34rem);
  }
  .wpi-gallery-hero {
    padding-bottom: 4.25rem;
  }
  .wpi-gallery-header {
    padding-top: 1.35rem;
  }
  .wpi-gallery-hero-copy {
    padding-top: 3.8rem;
    width: min(92vw, 34rem);
  }
  .wpi-gallery-hero-copy .eyebrow {
    margin-bottom: 1.6rem;
  }
  .wpi-gallery-hero-copy h1 {
    font-size: clamp(3rem, 12.2vw, 4.8rem) !important;
    line-height: .93 !important;
    letter-spacing: -.05em;
    max-width: 34rem;
  }
  .wpi-gallery-hero-copy p {
    font-size: 1.42rem;
    line-height: 1.45;
    max-width: 30rem;
    margin-top: 1.45rem;
  }
  .wpi-gallery-hero-actions {
    flex-direction: column;
    align-items: center;
    gap: .85rem;
    margin-top: 1.7rem;
  }
  .wpi-gallery-hero-actions .btn {
    min-width: 0;
    width: auto;
    max-width: 100%;
    padding-inline: 2.15rem;
  }
  .wpi-gallery-work {
    padding: 3.35rem 0 3.4rem;
  }
  .wpi-gallery-proof {
    width: min(92vw, 32rem);
    margin-bottom: 2.2rem;
  }
  .wpi-gallery-proof h2 {
    font-size: 3.1rem;
    line-height: .98;
  }
  .wpi-gallery-proof div,
  .wpi-gallery-proof p {
    font-size: 1.32rem;
    line-height: 1.5;
    max-width: 30rem;
  }
  .wpi-gallery-filter-wrap {
    width: min(92vw, 34rem);
    max-width: min(92vw, 34rem);
    padding: .85rem;
    margin-bottom: 2rem;
    gap: .6rem;
  }
  .wpi-gallery-filter {
    font-size: .9rem;
    line-height: 1;
    letter-spacing: .16em;
    padding: 1rem 1.15rem;
    border-radius: .7rem;
  }
  .wpi-gallery-grid {
    width: min(92vw, 34rem);
    max-width: min(92vw, 34rem);
    columns: 1 !important;
    column-gap: 0 !important;
  }
  .wpi-gallery-card {
    margin-bottom: 1rem;
  }
  .wpi-gallery-card-media {
    border-radius: .62rem;
  }
  .wpi-gallery-card-media img,
  .wpi-gallery-card-media video,
  .wpi-gallery-card:nth-child(n) .wpi-gallery-card-media img,
  .wpi-gallery-card:nth-child(n) .wpi-gallery-card-media video {
    min-height: 20rem;
    max-height: 34rem;
    object-fit: cover;
  }
  .wpi-gallery-card figcaption {
    left: .95rem;
    right: .95rem;
    bottom: .9rem;
  }
  .wpi-gallery-card figcaption strong {
    font-size: 1.08rem;
  }
  .wpi-gallery-play::before {
    width: 3.6rem;
    height: 3.6rem;
  }
  .wpi-gallery-cta {
    border-top-width: .8rem;
    border-bottom-width: .8rem;
  }
  .wpi-gallery-cta-inner {
    width: min(92vw, 34rem);
    max-width: min(92vw, 34rem);
    padding: 4rem 0;
  }
  .wpi-gallery-cta-icon {
    width: 8rem;
    height: 8rem;
    margin-bottom: .7rem;
  }
  .wpi-gallery-cta h2 {
    font-size: clamp(2.85rem, 10vw, 3.6rem);
    line-height: .98;
    max-width: 31rem;
  }
  .wpi-gallery-cta-copy {
    font-size: 1.28rem;
    line-height: 1.5;
    max-width: 30rem;
    margin-bottom: 1.65rem;
  }
  .wpi-gallery-cta-copy strong {
    font-size: 1.38rem;
  }
  .wpi-gallery-cta .btn-light-wide {
    width: auto;
    min-width: 0;
    max-width: 100%;
    padding-inline: 2.1rem;
    white-space: normal;
  }
  .wpi-gallery-faq-section {
    padding: 2.5rem 0 3.1rem;
  }
  .wpi-gallery-faq-panel {
    width: min(92vw, 34rem);
    max-width: min(92vw, 34rem);
    border-radius: 1.35rem;
    padding: 2.4rem 1.3rem 2.2rem;
    gap: 1.35rem;
  }
  .wpi-gallery-faq-content h2 {
    text-align: center;
    font-size: clamp(2.55rem, 9vw, 3.2rem);
    line-height: .98;
    margin-bottom: 1.6rem;
  }
  .wpi-gallery-faq-list .faq-item button {
    min-height: 4.8rem;
    padding: 1.35rem 1.5rem;
    font-size: 1.1rem;
    text-align: left;
  }
  .wpi-gallery-faq-list .faq-item p {
    font-size: 1.05rem;
    line-height: 1.45;
  }
  .wpi-gallery-faq-art {
    display: none;
  }
  .wpi-gallery-page .wpi-sp-footer {
    margin-top: 0;
  }
  .wpi-gallery-page .wpi-sp-footer-inner {
    width: min(92vw, 34rem);
    max-width: min(92vw, 34rem);
  }
}

@media (max-width: 430px) {
  .wpi-gallery-hero-copy h1 {
    font-size: clamp(2.75rem, 13vw, 4.2rem) !important;
  }
  .wpi-gallery-filter {
    font-size: .82rem;
    padding: .9rem 1rem;
  }
  .wpi-gallery-card-media img,
  .wpi-gallery-card-media video,
  .wpi-gallery-card:nth-child(n) .wpi-gallery-card-media img,
  .wpi-gallery-card:nth-child(n) .wpi-gallery-card-media video {
    min-height: 18rem;
  }
}

/*
   v1.0.44 Gallery polish
   - Loosen Gallery hero heading letter spacing.
   - Force Gallery FAQ back to the shared homepage FAQ system.
   - Tighten Gallery filter spacing and prevent messy wrapping.
*/
.wpi-gallery-page .wpi-gallery-hero-copy h1,
.wpi-gallery-page .wpi-gallery-hero-copy h1 span {
  letter-spacing: .012em !important;
}

.wpi-gallery-page .wpi-gallery-filter-wrap {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .45rem !important;
  min-height: 5.6rem !important;
  padding: .85rem 1rem !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
}
.wpi-gallery-page .wpi-gallery-filter-wrap::-webkit-scrollbar { display: none !important; }
.wpi-gallery-page .wpi-gallery-filter {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  letter-spacing: .16em !important;
  font-size: .98rem !important;
  padding: 1.15rem 1.35rem !important;
  border-radius: .72rem !important;
}

/* Gallery FAQ: use the same homepage FAQ visual system, not the custom gallery version. */
.wpi-gallery-page .wpi-gallery-faq-section.faq-section,
.wpi-gallery-page .wpi-gallery-faq-section {
  padding: 4.5rem 0 5rem !important;
  background: var(--off) !important;
  overflow: visible !important;
}
.wpi-gallery-page .wpi-gallery-faq-panel.faq-panel,
.wpi-gallery-page .wpi-gallery-faq-panel {
  display: grid !important;
  grid-template-columns: 37rem 1fr !important;
  align-items: center !important;
  gap: 3.8rem !important;
  width: min(calc(100% - 4rem), 104.24rem) !important;
  max-width: min(calc(100% - 4rem), 104.24rem) !important;
  margin: 0 auto !important;
  padding: 3.2rem 6.6rem !important;
  border-radius: 1.5rem !important;
  background: #fff !important;
  box-shadow: none !important;
}
.wpi-gallery-page .wpi-gallery-faq-art.faq-art,
.wpi-gallery-page .wpi-gallery-faq-art {
  min-height: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  order: initial !important;
}
.wpi-gallery-page .wpi-gallery-faq-art img,
.wpi-gallery-page .wpi-gallery-faq-art video {
  width: 34rem !important;
  max-width: 100% !important;
  max-height: none !important;
  object-fit: contain !important;
}
.wpi-gallery-page .wpi-gallery-faq-content.faq-content,
.wpi-gallery-page .wpi-gallery-faq-content {
  order: initial !important;
}
.wpi-gallery-page .wpi-gallery-faq-content.faq-content h2,
.wpi-gallery-page .wpi-gallery-faq-content h2 {
  width: 41.59rem !important;
  max-width: 100% !important;
  margin: 0 0 2.2rem !important;
  font-family: var(--display) !important;
  font-size: 3.69rem !important;
  line-height: 1.05 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  text-transform: uppercase !important;
  color: #000 !important;
}
.wpi-gallery-page .wpi-gallery-faq-content h2 span { color: var(--red) !important; }
.wpi-gallery-page .wpi-gallery-faq-list.faq-list,
.wpi-gallery-page .wpi-gallery-faq-list {
  display: flex !important;
  flex-direction: column !important;
  gap: .75rem !important;
}
.wpi-gallery-page .wpi-gallery-faq-list .faq-item,
.wpi-gallery-page .wpi-gallery-faq-list .faq-item:hover {
  overflow: hidden !important;
  border-radius: 1.27rem !important;
  background: rgba(0,0,0,.06) !important;
  transform: none !important;
  box-shadow: none !important;
}
.wpi-gallery-page .wpi-gallery-faq-list .faq-item button,
.wpi-gallery-page .wpi-gallery-faq-list .faq-item button:hover {
  width: 100% !important;
  min-height: 4.82rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 2rem !important;
  padding: 1.85rem 1.5rem !important;
  border: 0 !important;
  background: transparent !important;
  color: #000 !important;
  font-family: var(--body) !important;
  font-size: 1.27rem !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  text-align: left !important;
  cursor: pointer !important;
}
.wpi-gallery-page .wpi-gallery-faq-list .faq-item p {
  display: none !important;
  margin: 0 !important;
  padding: 0 1.5rem 1.5rem !important;
  font-size: 1.1rem !important;
  line-height: 1.6rem !important;
  color: #000 !important;
}
.wpi-gallery-page .wpi-gallery-faq-list .faq-item.is-open p { display: block !important; }

@media (max-width: 1180px) {
  .wpi-gallery-page .wpi-gallery-filter-wrap {
    justify-content: flex-start !important;
    gap: .5rem !important;
  }
  .wpi-gallery-page .wpi-gallery-faq-panel.faq-panel,
  .wpi-gallery-page .wpi-gallery-faq-panel {
    grid-template-columns: 30rem 1fr !important;
    gap: 2.8rem !important;
    padding-inline: 3rem !important;
  }
  .wpi-gallery-page .wpi-gallery-faq-art img,
  .wpi-gallery-page .wpi-gallery-faq-art video {
    width: 28rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-gallery-page .wpi-gallery-hero-copy h1,
  .wpi-gallery-page .wpi-gallery-hero-copy h1 span {
    letter-spacing: .006em !important;
  }
  .wpi-gallery-page .wpi-gallery-filter-wrap {
    width: min(92vw, 34rem) !important;
    max-width: min(92vw, 34rem) !important;
    gap: .45rem !important;
    padding: .75rem !important;
    min-height: 4.8rem !important;
    border-radius: .8rem !important;
  }
  .wpi-gallery-page .wpi-gallery-filter {
    font-size: .82rem !important;
    letter-spacing: .1em !important;
    padding: .9rem .95rem !important;
    border-radius: .62rem !important;
  }
  .wpi-gallery-page .wpi-gallery-faq-section.faq-section,
  .wpi-gallery-page .wpi-gallery-faq-section {
    padding: 4.6rem 0 !important;
    background: var(--off) !important;
  }
  .wpi-gallery-page .wpi-gallery-faq-panel.faq-panel,
  .wpi-gallery-page .wpi-gallery-faq-panel {
    width: calc(100% - var(--page-pad)) !important;
    max-width: calc(100% - var(--page-pad)) !important;
    grid-template-columns: 1fr !important;
    gap: 1.4rem !important;
    padding: 1.6rem !important;
    border-radius: 1.2rem !important;
  }
  .wpi-gallery-page .wpi-gallery-faq-art.faq-art,
  .wpi-gallery-page .wpi-gallery-faq-art {
    display: flex !important;
    justify-content: center !important;
    order: initial !important;
  }
  .wpi-gallery-page .wpi-gallery-faq-art img,
  .wpi-gallery-page .wpi-gallery-faq-art video {
    width: 11rem !important;
  }
  .wpi-gallery-page .wpi-gallery-faq-content.faq-content,
  .wpi-gallery-page .wpi-gallery-faq-content {
    order: initial !important;
  }
  .wpi-gallery-page .wpi-gallery-faq-content.faq-content h2,
  .wpi-gallery-page .wpi-gallery-faq-content h2 {
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
    font-size: clamp(3.1rem, 10.5vw, 4.5rem) !important;
    line-height: .98 !important;
    margin-bottom: 1.6rem !important;
  }
  .wpi-gallery-page .wpi-gallery-faq-list .faq-item button,
  .wpi-gallery-page .wpi-gallery-faq-list .faq-item button:hover {
    min-height: 4.6rem !important;
    padding: 1.15rem 1rem !important;
    font-size: 1.05rem !important;
    line-height: 1.45rem !important;
  }
  .wpi-gallery-page .wpi-gallery-faq-list .faq-item p {
    font-size: .95rem !important;
    line-height: 1.45rem !important;
  }
}


/*
   v1.0.46 Gallery FAQ outer grey fix
   - Keep the homepage FAQ structure.
   - Make the FAQ outside area visibly grey while keeping the inner FAQ panel white.
*/
.wpi-gallery-page .wpi-gallery-faq-section.faq-section,
.wpi-gallery-page .wpi-gallery-faq-section {
  position: relative !important;
  isolation: isolate !important;
  background: #f4f4f4 !important;
}
.wpi-gallery-page .wpi-gallery-faq-section::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  background: #f4f4f4 !important;
  pointer-events: none !important;
}
.wpi-gallery-page .wpi-gallery-faq-panel.faq-panel,
.wpi-gallery-page .wpi-gallery-faq-panel {
  position: relative !important;
  z-index: 1 !important;
  background: #ffffff !important;
}
@media (max-width: 767px) {
  .wpi-gallery-page .wpi-gallery-faq-section.faq-section,
  .wpi-gallery-page .wpi-gallery-faq-section,
  .wpi-gallery-page .wpi-gallery-faq-section::before {
    background: #f4f4f4 !important;
  }
}

/* v1.0.47 Quote request page */
.wpi-quote-page{background:#fafafa;color:#000;overflow:hidden}.wpi-quote-page,.wpi-quote-page *{box-sizing:border-box}.wpi-quote-page .container-wide{width:min(92vw,103.5rem);margin-inline:auto}.wpi-quote-page .container-narrow{width:min(92vw,64rem);margin-inline:auto}.wpi-quote-hero{min-height:53.5rem;background:#000;position:relative;color:#fff;padding-bottom:7rem}.wpi-quote-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(48,48,48,.7) 0%,rgba(0,0,0,.13) 48%,#000 100%),radial-gradient(ellipse at center top,rgba(210,4,4,.16),rgba(0,0,0,0) 48%)}.wpi-quote-announcement{position:relative;z-index:5}.wpi-quote-header{position:relative;z-index:6;padding-top:2.15rem}.wpi-quote-hero-copy{position:relative;z-index:4;text-align:center;padding-top:5.85rem;display:flex;flex-direction:column;align-items:center}.wpi-quote-hero-copy .eyebrow{border-color:rgba(255,255,255,.9);color:#fff;margin-bottom:2.45rem}.wpi-quote-hero-copy h1{margin:0;color:#fff;text-transform:uppercase;font-family:var(--font-heading,"Clash Display",sans-serif);font-size:clamp(3.35rem,4.1vw,4.1rem);line-height:.96;letter-spacing:-.035em;max-width:65rem}.wpi-quote-hero-copy h1 span{display:block}.wpi-quote-hero-copy h1 .is-red{color:#d20404}.wpi-quote-hero-copy p{max-width:48rem;margin:1.65rem auto 0;color:rgba(255,255,255,.9);font-family:"Red Hat Display",sans-serif;font-size:1.3rem;line-height:1.5}.wpi-quote-hero-actions{display:flex;justify-content:center;align-items:center;gap:1.9rem;margin-top:2.15rem;flex-wrap:wrap}.wpi-quote-hero-actions .btn{min-width:14.5rem}.wpi-quote-form-section{position:relative;z-index:4;background:#fafafa;padding:5.25rem 0 5rem}.wpi-quote-form-layout{display:grid;grid-template-columns:minmax(20rem,.88fr) minmax(30rem,1.32fr);gap:5.2rem;align-items:start}.wpi-quote-form-intro{padding-top:3.2rem}.wpi-quote-form-intro h2{margin:0 0 1.35rem;font-family:var(--font-heading,"Clash Display",sans-serif);font-size:clamp(3rem,3.3vw,3.85rem);letter-spacing:-.045em;line-height:1;color:#000}.wpi-quote-form-intro p{width:min(100%,29rem);font-family:"Red Hat Display",sans-serif;font-size:1.34rem;line-height:1.5;color:#1f1e1e;margin:0 0 3rem}.wpi-quote-contact-list{list-style:none;margin:0;padding:0;display:grid;gap:1.8rem}.wpi-quote-contact-list li{display:flex;align-items:center;gap:1.15rem;font-family:"Red Hat Display",sans-serif;font-size:1.25rem;color:#000}.wpi-quote-contact-list span{width:1.65rem;height:1.65rem;border-radius:50%;display:grid;place-items:center;background:#f0f0f0;color:#d20404;font-size:1rem;font-weight:800}.wpi-quote-contact-list a,.wpi-quote-contact-list strong{color:#000;font-weight:500;text-decoration:underline;text-underline-offset:.18em}.wpi-quote-form{border:15px solid #000;border-radius:.85rem;background:#fff;padding:2.3rem 2.55rem 3.3rem;box-shadow:0 1.8rem 4.5rem rgba(0,0,0,.08)}.wpi-quote-message{border-radius:1rem;padding:1rem 1.15rem;margin-bottom:1.4rem;font-family:"Red Hat Display",sans-serif;font-weight:700;font-size:1.05rem}.wpi-quote-message.is-success{background:rgba(38,160,95,.12);color:#096432}.wpi-quote-message.is-error{background:rgba(210,4,4,.11);color:#9b0000}.wpi-quote-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem 1.45rem}.wpi-quote-form label{display:flex;flex-direction:column;gap:.55rem;font-family:"Inter",sans-serif;font-size:1.05rem;line-height:1.35;color:#0a0a0a}.wpi-quote-form label.is-wide{grid-column:1/-1}.wpi-quote-form input,.wpi-quote-form select,.wpi-quote-form textarea{width:100%;border:0;border-radius:1.55rem;background:#d8d8d8;color:#111;font:inherit;font-size:1.03rem;min-height:4.35rem;padding:1rem 1.25rem;outline:2px solid transparent;transition:outline-color .2s ease,background .2s ease}.wpi-quote-form textarea{min-height:9.2rem;resize:vertical}.wpi-quote-form input:focus,.wpi-quote-form select:focus,.wpi-quote-form textarea:focus{outline-color:#d20404;background:#ededed}.wpi-quote-upload{background:#f5f5f5;border-radius:1.45rem;padding:1.2rem 1.25rem;min-height:8.8rem;justify-content:center}.wpi-quote-upload input{background:transparent;border-radius:0;min-height:auto;padding:.6rem 0}.wpi-quote-upload span{font-family:"Inter",sans-serif;font-size:1rem;color:rgba(0,0,0,.55);line-height:1.35}.wpi-quote-submit{width:100%;border:0;border-radius:75px;background:#d91b26;color:#fff;text-transform:uppercase;font-family:var(--font-heading,"Clash Display",sans-serif);font-weight:700;letter-spacing:.06em;font-size:1rem;margin-top:2rem;min-height:5rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.wpi-quote-submit:hover{transform:translateY(-1px);box-shadow:0 .9rem 2.2rem rgba(217,27,38,.25)}.wpi-quote-steps-section{background:#000;color:#fff;padding:7.2rem 0 5.4rem;position:relative}.wpi-quote-steps-heading{text-align:center;display:flex;flex-direction:column;align-items:center;margin-bottom:5rem}.wpi-quote-steps-heading .eyebrow{border-color:rgba(255,255,255,.9);color:#fff;margin-bottom:2rem}.wpi-quote-steps-heading h2{margin:0;font-family:var(--font-heading,"Clash Display",sans-serif);font-size:clamp(3.3rem,4.2vw,4.35rem);line-height:.98;letter-spacing:-.015em;text-transform:uppercase;max-width:44rem}.wpi-quote-steps-heading h2 span{display:block}.wpi-quote-steps-heading div{max-width:54rem;margin-top:1.4rem;font-family:"Red Hat Display",sans-serif;color:rgba(255,255,255,.88);font-size:1.35rem;line-height:1.5}.wpi-quote-steps-heading p{margin:.15rem 0}.wpi-quote-steps-row{display:grid;grid-template-columns:repeat(3,1fr);gap:5rem;position:relative;margin-bottom:5.5rem}.wpi-quote-steps-row::before{content:"";position:absolute;left:2rem;right:2rem;top:2rem;height:1px;background:rgba(255,255,255,.75)}.wpi-quote-step-card{position:relative;z-index:2;padding-right:2rem}.wpi-quote-step-card span{width:4rem;height:4rem;border-radius:50%;display:grid;place-items:center;background:#d20404;border:1px solid #d20404;color:#fff;font-family:var(--font-heading,"Clash Display",sans-serif);font-size:1.45rem;font-weight:700;margin-bottom:3rem}.wpi-quote-step-card h3{font-family:var(--font-heading,"Clash Display",sans-serif);font-size:1.75rem;line-height:1.05;text-transform:capitalize;margin:0 0 1rem}.wpi-quote-step-card p{font-family:"Red Hat Display",sans-serif;font-size:1.17rem;line-height:1.45;color:#e0e0e0;margin:0;max-width:24rem}.wpi-quote-cost-card{background:#fff;color:#000;border-radius:1.2rem;padding:4rem 4.4rem;position:relative;overflow:hidden}.wpi-quote-cost-card::after{content:"";position:absolute;right:2rem;top:-1rem;width:33rem;height:23rem;opacity:.12;background:radial-gradient(circle at 35% 30%,#d20404 0 12%,transparent 13%),radial-gradient(circle at 65% 48%,#d20404 0 15%,transparent 16%),radial-gradient(circle at 42% 70%,#d20404 0 11%,transparent 12%);filter:blur(5px);transform:rotate(-13deg)}.wpi-quote-cost-head{position:relative;z-index:2;display:grid;grid-template-columns:minmax(20rem,37rem) minmax(20rem,42rem);gap:4rem;margin-bottom:3.6rem}.wpi-quote-cost-head h2{font-family:var(--font-heading,"Clash Display",sans-serif);font-size:clamp(2.6rem,3.3vw,3.4rem);letter-spacing:-.04em;line-height:1;margin:0}.wpi-quote-cost-head p{font-family:"Red Hat Display",sans-serif;font-size:1.2rem;line-height:1.5;color:rgba(0,0,0,.78);margin:0}.wpi-quote-factor-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:2.2rem 2.8rem}.wpi-quote-factor h3{position:relative;margin:0 0 .8rem;padding:1rem 0 1rem 2.2rem;font-family:"Red Hat Display",sans-serif;font-weight:800;font-size:1.3rem}.wpi-quote-factor h3::before{content:"";position:absolute;left:0;top:.45rem;width:.8rem;height:2.6rem;border-radius:2rem;background:#d20404}.wpi-quote-factor h3::after{content:"";position:absolute;left:0;right:0;top:.25rem;height:3rem;border-radius:0 .5rem .5rem 0;background:rgba(210,4,4,.05);z-index:-1}.wpi-quote-factor p{font-family:"Red Hat Display",sans-serif;font-size:1.08rem;line-height:1.52;color:rgba(0,0,0,.78);margin:0}.wpi-quote-best-section{background:#fafafa;padding:5.4rem 0 5rem}.wpi-quote-best-heading{text-align:center;display:flex;flex-direction:column;align-items:center;margin-bottom:4.2rem}.wpi-quote-best-heading .eyebrow{border-color:#111;color:#111;margin-bottom:2rem}.wpi-quote-best-heading h2{font-family:var(--font-heading,"Clash Display",sans-serif);font-size:clamp(3rem,3.9vw,4rem);line-height:1.02;letter-spacing:-.025em;margin:0;max-width:54rem;text-transform:uppercase}.wpi-quote-best-heading p{font-family:"Red Hat Display",sans-serif;font-size:1.34rem;line-height:1.5;margin:1.25rem 0 0}.wpi-quote-best-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0}.wpi-quote-best-card{position:relative;min-height:29rem;overflow:visible;border:5px solid #fff;background:#111}.wpi-quote-best-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.wpi-quote-best-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.35));pointer-events:none}.wpi-quote-best-card span{position:absolute;z-index:3;left:50%;bottom:-2.15rem;transform:translateX(-50%) rotate(-3deg);width:min(88%,18rem);min-height:4.2rem;border:7px solid #010101;border-radius:1.75rem;background:#fff;display:grid;place-items:center;text-align:center;padding:.65rem 1rem;font-family:"Red Hat Display",sans-serif;font-weight:800;font-size:1rem;color:#000;box-shadow:0 0 .45rem rgba(0,0,0,.25)}.wpi-quote-faq-section.faq-section,.wpi-quote-faq-section{background:#f4f4f4!important;padding:4rem 0 5rem}.wpi-quote-faq-panel.faq-panel,.wpi-quote-faq-panel{background:#fff!important;border-radius:1.6rem;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.15fr);gap:4rem;align-items:center;padding:4rem 5rem;box-shadow:none}.wpi-quote-faq-art{min-height:24rem;display:flex;align-items:flex-end;justify-content:center}.wpi-quote-faq-art img{max-width:100%;max-height:24rem;object-fit:contain}.wpi-quote-faq-content h2{font-family:var(--font-heading,"Clash Display",sans-serif);font-size:clamp(2.8rem,3.3vw,3.9rem);line-height:.96;letter-spacing:.02em;text-transform:uppercase;margin:0 0 2.1rem;color:#1b1919}.wpi-quote-faq-content h2 span{color:#d20404}.wpi-quote-faq-list .faq-item button{background:rgba(0,0,0,.06)}.wpi-quote-page .wpi-sp-footer{margin-top:0}
@media (max-width:1200px){.wpi-quote-form-layout{grid-template-columns:1fr;gap:3rem}.wpi-quote-form-intro{padding-top:0}.wpi-quote-form-intro p{width:min(100%,42rem)}.wpi-quote-steps-row{gap:2rem}.wpi-quote-cost-head{grid-template-columns:1fr;gap:1.4rem}.wpi-quote-factor-grid{grid-template-columns:repeat(2,1fr)}.wpi-quote-best-grid{grid-template-columns:repeat(2,1fr);gap:2rem}.wpi-quote-best-card{min-height:28rem}.wpi-quote-faq-panel.faq-panel,.wpi-quote-faq-panel{grid-template-columns:1fr;gap:2rem;padding:3.2rem 2rem}.wpi-quote-faq-art{min-height:14rem}.wpi-quote-faq-art img{max-height:16rem}}
@media (max-width:767px){.wpi-quote-hero{min-height:auto;padding-bottom:4.6rem}.wpi-quote-header{padding-top:1.5rem}.wpi-quote-hero-copy{padding-top:4rem}.wpi-quote-hero-copy .eyebrow{margin-bottom:1.8rem}.wpi-quote-hero-copy h1{font-size:clamp(3.2rem,12vw,4.8rem);line-height:.94;max-width:34rem}.wpi-quote-hero-copy p{font-size:1.38rem;line-height:1.45;max-width:31rem}.wpi-quote-hero-actions{gap:1rem}.wpi-quote-hero-actions .btn{min-width:0}.wpi-quote-form-section{padding:3.8rem 0 3.5rem}.wpi-quote-form-intro h2{font-size:3.2rem}.wpi-quote-form-intro p{font-size:1.35rem}.wpi-quote-contact-list li{font-size:1.18rem;align-items:flex-start}.wpi-quote-form{border-width:9px;padding:1.55rem 1.25rem 2rem;border-radius:.75rem}.wpi-quote-form-grid{grid-template-columns:1fr;gap:1.1rem}.wpi-quote-form label{font-size:1rem}.wpi-quote-form input,.wpi-quote-form select,.wpi-quote-form textarea{border-radius:1.2rem;min-height:4rem}.wpi-quote-upload{min-height:8rem}.wpi-quote-steps-section{padding:4.4rem 0 3.6rem}.wpi-quote-steps-heading{margin-bottom:3.2rem}.wpi-quote-steps-heading h2{font-size:3.1rem}.wpi-quote-steps-heading div{font-size:1.25rem}.wpi-quote-steps-row{grid-template-columns:1fr;gap:2.4rem;margin-bottom:3rem}.wpi-quote-steps-row::before{display:none}.wpi-quote-step-card{padding-right:0}.wpi-quote-step-card span{margin-bottom:1.1rem}.wpi-quote-step-card p{max-width:100%;font-size:1.15rem}.wpi-quote-cost-card{padding:2rem 1.4rem}.wpi-quote-factor-grid{grid-template-columns:1fr;gap:1.6rem}.wpi-quote-cost-head h2{font-size:2.8rem}.wpi-quote-best-section{padding:4rem 0 4.5rem}.wpi-quote-best-heading{margin-bottom:3rem}.wpi-quote-best-heading h2{font-size:3.1rem}.wpi-quote-best-grid{grid-template-columns:1fr;gap:3.2rem}.wpi-quote-best-card{min-height:25rem}.wpi-quote-best-card span{bottom:-1.8rem}.wpi-quote-faq-section.faq-section,.wpi-quote-faq-section{padding:2.5rem 0 3rem}.wpi-quote-faq-panel.faq-panel,.wpi-quote-faq-panel{border-radius:1.3rem;padding:2.5rem 1.5rem}.wpi-quote-faq-content h2{text-align:center;font-size:2.8rem}.wpi-quote-faq-art{order:2;min-height:10rem}.wpi-quote-faq-content{order:1}}

/* v1.0.48 Quote page mobile and QA polish */
.wpi-quote-page{max-width:100%;overflow-x:hidden}.wpi-quote-page img,.wpi-quote-page video{max-width:100%;height:auto}.wpi-quote-form input[type="date"]{appearance:auto;-webkit-appearance:auto}.wpi-quote-form select{appearance:auto;-webkit-appearance:auto}.wpi-quote-form input[type="file"]{font-size:.95rem;line-height:1.35;overflow:hidden}.wpi-quote-form input[type="file"]::file-selector-button{border:0;border-radius:999px;background:#111;color:#fff;padding:.72rem 1rem;margin-right:.75rem;font-family:"Inter",sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.wpi-quote-form input[type="file"]::-webkit-file-upload-button{border:0;border-radius:999px;background:#111;color:#fff;padding:.72rem 1rem;margin-right:.75rem;font-family:"Inter",sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.wpi-quote-faq-section{overflow:hidden}.wpi-quote-page .faq-item{max-width:100%}
@media (min-width:768px) and (max-width:1200px){
  .wpi-quote-page .container-wide{width:min(92vw,58rem)}
  .wpi-quote-page .container-narrow{width:min(90vw,50rem)}
  .wpi-quote-hero{min-height:auto;padding-bottom:5.6rem}
  .wpi-quote-hero-copy{padding-top:5rem}
  .wpi-quote-hero-copy h1{font-size:clamp(3.3rem,7vw,4.7rem);line-height:.96;max-width:48rem;letter-spacing:-.025em}
  .wpi-quote-hero-copy p{max-width:42rem;font-size:1.26rem}
  .wpi-quote-form-section{padding:4.6rem 0 4.6rem}
  .wpi-quote-form-layout{grid-template-columns:1fr;gap:2.6rem;width:min(90vw,54rem)}
  .wpi-quote-form-intro{display:grid;grid-template-columns:1fr;justify-items:start;padding-top:0}
  .wpi-quote-form-intro h2{font-size:clamp(3rem,6vw,4rem);max-width:38rem}
  .wpi-quote-form-intro p{width:min(100%,42rem);font-size:1.28rem;margin-bottom:2rem}
  .wpi-quote-contact-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;width:100%}
  .wpi-quote-contact-list li{font-size:1rem;gap:.75rem;word-break:break-word}
  .wpi-quote-form{width:100%;padding:2rem;border-width:12px}
  .wpi-quote-steps-section{padding:5.6rem 0 4.6rem}
  .wpi-quote-steps-row{gap:2.1rem}.wpi-quote-steps-row::before{left:1rem;right:1rem}
  .wpi-quote-step-card{padding-right:0}.wpi-quote-step-card h3{font-size:1.55rem}.wpi-quote-step-card p{font-size:1.05rem}
  .wpi-quote-cost-card{padding:3rem}.wpi-quote-cost-card::after{width:24rem;height:17rem;right:-2rem;top:-2rem}
  .wpi-quote-factor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}
  .wpi-quote-best-section{padding:4.7rem 0 5rem}.wpi-quote-best-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.8rem 1.4rem}.wpi-quote-best-card{min-height:27rem}
  .wpi-quote-faq-section.faq-section,.wpi-quote-faq-section{padding:3.8rem 0;background:#f4f4f4!important}
  .wpi-quote-faq-panel.faq-panel,.wpi-quote-faq-panel{width:min(92vw,58rem);grid-template-columns:1fr;gap:2.2rem;padding:3rem 2.4rem;background:#fff!important}
  .wpi-quote-faq-art{min-height:13rem;order:2}.wpi-quote-faq-content{order:1}.wpi-quote-faq-content h2{text-align:center;max-width:36rem;margin-inline:auto}.wpi-quote-faq-list{max-width:42rem;margin-inline:auto;width:100%}
}
@media (max-width:767px){
  .wpi-quote-page{overflow-x:hidden;background:#fafafa}
  .wpi-quote-page .container-wide,.wpi-quote-page .container-narrow{width:calc(100% - 2rem);max-width:none;margin-inline:auto}
  .wpi-quote-announcement.announcement{padding:.55rem 1rem;gap:.8rem;align-items:center;justify-content:center;flex-wrap:wrap;text-align:center}
  .wpi-quote-announcement.announcement p{font-size:.76rem;line-height:1.25;max-width:100%;width:100%}
  .wpi-quote-announcement .countdown{transform:scale(.86);transform-origin:center;flex:0 0 auto}
  .wpi-quote-header.site-header{width:calc(100% - 2rem);padding-top:1.15rem;gap:1rem;align-items:center}
  .wpi-quote-header .site-logo{width:6.6rem;min-width:6.6rem}.wpi-quote-header .site-logo img{max-height:3.2rem;object-fit:contain}
  .wpi-quote-header .main-nav{display:none}.wpi-quote-header .header-contact{font-size:.82rem;letter-spacing:.08em;padding:.7rem 1rem;border-radius:999px;border:1px solid rgba(255,255,255,.5)}
  .wpi-quote-hero{min-height:auto;padding-bottom:4rem;background:#000}.wpi-quote-hero::before{background:linear-gradient(180deg,rgba(48,48,48,.62) 0%,rgba(0,0,0,.35) 42%,#000 100%),radial-gradient(ellipse at center top,rgba(210,4,4,.2),rgba(0,0,0,0) 56%)}
  .wpi-quote-hero-copy{padding-top:3.8rem}.wpi-quote-hero-copy .eyebrow{font-size:.72rem;letter-spacing:.07em;padding:.62rem 1.15rem;margin-bottom:1.55rem;max-width:100%}
  .wpi-quote-hero-copy h1{font-size:clamp(2.55rem,13vw,3.8rem);line-height:.96;letter-spacing:-.018em;max-width:22rem;word-break:normal;overflow-wrap:normal}.wpi-quote-hero-copy h1 span{display:block}
  .wpi-quote-hero-copy p{font-size:1.08rem;line-height:1.45;max-width:22.5rem;margin-top:1.25rem}.wpi-quote-hero-actions{margin-top:1.7rem;gap:.85rem;width:100%;flex-direction:column}.wpi-quote-hero-actions .btn{width:min(100%,20rem);min-width:0;justify-content:center;min-height:3.9rem;padding:1rem 1.35rem;font-size:.74rem}
  .wpi-quote-form-section{padding:3.4rem 0 3.2rem}.wpi-quote-form-layout{display:block;width:calc(100% - 2rem)}
  .wpi-quote-form-intro{padding:0 0 2rem;text-align:left}.wpi-quote-form-intro h2{font-size:clamp(2.55rem,11vw,3.4rem);line-height:.98;letter-spacing:-.03em;margin-bottom:1rem}.wpi-quote-form-intro p{font-size:1.08rem;line-height:1.48;width:100%;margin-bottom:1.6rem}
  .wpi-quote-contact-list{gap:.8rem}.wpi-quote-contact-list li{font-size:1rem;gap:.8rem;line-height:1.3;word-break:break-word}.wpi-quote-contact-list span{width:1.85rem;height:1.85rem;flex:0 0 1.85rem}
  .wpi-quote-form{border-width:7px;border-radius:.9rem;padding:1.25rem 1rem 1.55rem;box-shadow:0 1rem 2.6rem rgba(0,0,0,.08)}.wpi-quote-message{font-size:.95rem;padding:.85rem 1rem;border-radius:.8rem}.wpi-quote-form-grid{grid-template-columns:1fr;gap:1rem}.wpi-quote-form label{font-size:.96rem;gap:.45rem}.wpi-quote-form label.is-wide{grid-column:auto}.wpi-quote-form input,.wpi-quote-form select,.wpi-quote-form textarea{min-height:3.75rem;border-radius:1.1rem;font-size:1rem;padding:.9rem 1rem}.wpi-quote-form textarea{min-height:7.5rem}.wpi-quote-upload{min-height:auto;padding:1rem;border-radius:1.1rem}.wpi-quote-upload input{padding:.55rem 0;width:100%}.wpi-quote-upload span{font-size:.9rem}.wpi-quote-submit{min-height:4.1rem;margin-top:1.35rem;font-size:.9rem}
  .wpi-quote-steps-section{padding:4rem 0 3rem}.wpi-quote-steps-heading{margin-bottom:2.6rem}.wpi-quote-steps-heading .eyebrow{font-size:.72rem;padding:.62rem 1.15rem;margin-bottom:1.4rem}.wpi-quote-steps-heading h2{font-size:clamp(2.55rem,11vw,3.25rem);line-height:.98;max-width:23rem;letter-spacing:-.01em}.wpi-quote-steps-heading div{font-size:1.05rem;line-height:1.45;max-width:22rem;margin-top:1rem}.wpi-quote-steps-row{grid-template-columns:1fr;gap:1.4rem;margin-bottom:2.2rem}.wpi-quote-steps-row::before{display:none}.wpi-quote-step-card{padding:1.15rem 1.15rem 1.25rem;border:1px solid rgba(255,255,255,.16);border-radius:1rem;background:rgba(255,255,255,.05)}.wpi-quote-step-card span{width:3rem;height:3rem;font-size:1.12rem;margin-bottom:.9rem}.wpi-quote-step-card h3{font-size:1.45rem;line-height:1.1}.wpi-quote-step-card p{max-width:none;font-size:1rem;line-height:1.45}
  .wpi-quote-cost-card{border-radius:1rem;padding:1.45rem 1.05rem;overflow:hidden}.wpi-quote-cost-card::after{width:14rem;height:10rem;right:-4rem;top:-2rem;opacity:.09}.wpi-quote-cost-head{grid-template-columns:1fr;gap:1rem;margin-bottom:1.8rem}.wpi-quote-cost-head h2{font-size:clamp(2.2rem,9vw,2.75rem);line-height:1;letter-spacing:-.025em}.wpi-quote-cost-head p{font-size:1rem;line-height:1.45}.wpi-quote-factor-grid{grid-template-columns:1fr;gap:1.25rem}.wpi-quote-factor h3{font-size:1.1rem;padding:.75rem 0 .75rem 1.8rem}.wpi-quote-factor h3::before{width:.65rem;height:2.25rem}.wpi-quote-factor h3::after{height:2.7rem}.wpi-quote-factor p{font-size:.98rem;line-height:1.45}
  .wpi-quote-best-section{padding:3.5rem 0 4.2rem}.wpi-quote-best-heading{margin-bottom:2.6rem}.wpi-quote-best-heading .eyebrow{font-size:.72rem;padding:.62rem 1.15rem;margin-bottom:1.4rem}.wpi-quote-best-heading h2{font-size:clamp(2.45rem,10.5vw,3.15rem);line-height:1;letter-spacing:-.01em;max-width:23rem}.wpi-quote-best-heading p{font-size:1.05rem;line-height:1.45;max-width:22rem}.wpi-quote-best-grid{grid-template-columns:1fr;gap:3.1rem}.wpi-quote-best-card{min-height:21rem;border-width:4px;border-radius:.35rem;overflow:visible}.wpi-quote-best-card span{bottom:-1.6rem;width:min(88%,17rem);min-height:3.65rem;border-width:5px;border-radius:1.35rem;font-size:.95rem;line-height:1.2}
  .wpi-quote-faq-section.faq-section,.wpi-quote-faq-section{background:#f4f4f4!important;padding:2.7rem 0 3.2rem}.wpi-quote-faq-panel.faq-panel,.wpi-quote-faq-panel{width:calc(100% - 2rem);display:flex;flex-direction:column;border-radius:1.25rem;gap:1.5rem;padding:2rem 1rem;background:#fff!important}.wpi-quote-faq-content{order:1;width:100%}.wpi-quote-faq-art{order:2;min-height:9rem;width:100%}.wpi-quote-faq-art img{max-height:10rem}.wpi-quote-faq-content h2{text-align:center;font-size:clamp(2.25rem,9.5vw,2.9rem);line-height:.98;letter-spacing:.01em;margin-bottom:1.35rem}.wpi-quote-faq-list{width:100%}.wpi-quote-faq-list .faq-item button{min-height:3.3rem;font-size:.92rem;padding:1rem 1rem}.wpi-quote-faq-list .faq-item .faq-answer{font-size:.95rem;line-height:1.45;padding:0 1rem 1rem}
}
@media (max-width:390px){.wpi-quote-hero-copy h1{font-size:2.45rem;max-width:20rem}.wpi-quote-form{padding:.95rem .8rem 1.35rem}.wpi-quote-contact-list li{font-size:.94rem}.wpi-quote-steps-heading h2,.wpi-quote-best-heading h2{font-size:2.35rem}.wpi-quote-cost-head h2{font-size:2.05rem}.wpi-quote-best-card{min-height:18.5rem}.wpi-quote-faq-content h2{font-size:2.18rem}}


/* v1.0.50 Quote hero heading letter spacing fix
   Loosens the request quote hero headline so the uppercase Clash Display text matches Figma better. */
.wpi-quote-page .wpi-quote-hero-copy h1 {
  letter-spacing: 0.01em !important;
  word-spacing: 0.03em !important;
}

@media (min-width: 768px) and (max-width: 1200px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    letter-spacing: 0.008em !important;
    word-spacing: 0.025em !important;
  }
}

@media (max-width: 767px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    letter-spacing: 0.006em !important;
    word-spacing: 0.02em !important;
  }
}


/* v1.0.51 Quote page header logo size fix
   Keeps the quote page header logo aligned with the smaller header treatment used across the other finished pages. */
.wpi-quote-page .wpi-quote-header.site-header {
  grid-template-columns: 11.5rem 1fr 11.5rem !important;
}
.wpi-quote-page .wpi-quote-header .site-logo {
  width: 11.5rem !important;
  min-width: 11.5rem !important;
  max-width: 11.5rem !important;
}
.wpi-quote-page .wpi-quote-header .site-logo img {
  width: 11.5rem !important;
  max-width: 11.5rem !important;
  height: auto !important;
  max-height: 4.1rem !important;
  object-fit: contain !important;
}
@media (min-width: 768px) and (max-width: 1200px) {
  .wpi-quote-page .wpi-quote-header.site-header {
    grid-template-columns: 8.9rem 1fr 9.2rem !important;
    gap: .65rem !important;
  }
  .wpi-quote-page .wpi-quote-header .site-logo,
  .wpi-quote-page .wpi-quote-header .site-logo img {
    width: 8.9rem !important;
    min-width: 8.9rem !important;
    max-width: 8.9rem !important;
    height: auto !important;
    max-height: 3.4rem !important;
  }
}
@media (max-width: 767px) {
  .wpi-quote-page .wpi-quote-header.site-header {
    grid-template-columns: 5.6rem 1fr auto !important;
    min-height: 5.8rem !important;
  }
  .wpi-quote-page .wpi-quote-header .site-logo {
    width: 5.4rem !important;
    min-width: 5.4rem !important;
    max-width: 5.4rem !important;
  }
  .wpi-quote-page .wpi-quote-header .site-logo img {
    width: 5.4rem !important;
    max-width: 5.4rem !important;
    height: auto !important;
    max-height: 2.65rem !important;
  }
}

/* v1.0.52 Quote mobile typography + FAQ spacing fix
   Raises quote-page mobile hero/H2 sizing to match the stronger mobile scale used on the other pages,
   while adding safe spacing so the Best For section cannot overlap the FAQ title. */
@media (min-width: 768px) and (max-width: 1200px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    font-size: clamp(3.75rem, 7.8vw, 5.15rem) !important;
    line-height: .94 !important;
    max-width: 52rem !important;
  }
  .wpi-quote-page .wpi-quote-form-intro h2,
  .wpi-quote-page .wpi-quote-steps-heading h2,
  .wpi-quote-page .wpi-quote-cost-head h2,
  .wpi-quote-page .wpi-quote-best-heading h2,
  .wpi-quote-page .wpi-quote-faq-content h2 {
    font-size: clamp(3.35rem, 6.8vw, 4.45rem) !important;
    line-height: .96 !important;
  }
  .wpi-quote-page .wpi-quote-best-section {
    padding-bottom: 6rem !important;
  }
  .wpi-quote-page .wpi-quote-faq-section.faq-section,
  .wpi-quote-page .wpi-quote-faq-section {
    padding-top: 4.8rem !important;
    margin-top: 0 !important;
    clear: both !important;
  }
}

@media (max-width: 767px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    font-size: clamp(3.05rem, 14.2vw, 4.35rem) !important;
    line-height: .93 !important;
    letter-spacing: .006em !important;
    word-spacing: .025em !important;
    max-width: 26rem !important;
  }
  .wpi-quote-page .wpi-quote-form-intro h2 {
    font-size: clamp(3.05rem, 12.8vw, 3.9rem) !important;
    line-height: .95 !important;
    letter-spacing: -.018em !important;
  }
  .wpi-quote-page .wpi-quote-steps-heading h2,
  .wpi-quote-page .wpi-quote-best-heading h2 {
    font-size: clamp(3.05rem, 12.5vw, 3.85rem) !important;
    line-height: .95 !important;
    letter-spacing: -.005em !important;
  }
  .wpi-quote-page .wpi-quote-cost-head h2 {
    font-size: clamp(2.85rem, 11.5vw, 3.55rem) !important;
    line-height: .96 !important;
    letter-spacing: -.012em !important;
  }
  .wpi-quote-page .wpi-quote-faq-content h2 {
    font-size: clamp(3rem, 12vw, 3.65rem) !important;
    line-height: .95 !important;
    letter-spacing: .004em !important;
    margin-top: 0 !important;
    margin-bottom: 1.65rem !important;
  }
  .wpi-quote-page .wpi-quote-best-section {
    padding-bottom: 6.8rem !important;
  }
  .wpi-quote-page .wpi-quote-best-grid {
    margin-bottom: 2.1rem !important;
  }
  .wpi-quote-page .wpi-quote-faq-section.faq-section,
  .wpi-quote-page .wpi-quote-faq-section {
    position: relative !important;
    z-index: 4 !important;
    clear: both !important;
    margin-top: 0 !important;
    padding-top: 4.9rem !important;
  }
  .wpi-quote-page .wpi-quote-faq-panel.faq-panel,
  .wpi-quote-page .wpi-quote-faq-panel {
    position: relative !important;
    z-index: 5 !important;
  }
}

@media (max-width: 390px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    font-size: 2.95rem !important;
    max-width: 22.5rem !important;
    line-height: .94 !important;
  }
  .wpi-quote-page .wpi-quote-form-intro h2,
  .wpi-quote-page .wpi-quote-steps-heading h2,
  .wpi-quote-page .wpi-quote-best-heading h2,
  .wpi-quote-page .wpi-quote-faq-content h2 {
    font-size: 2.85rem !important;
    line-height: .96 !important;
  }
  .wpi-quote-page .wpi-quote-cost-head h2 {
    font-size: 2.65rem !important;
    line-height: .98 !important;
  }
  .wpi-quote-page .wpi-quote-faq-section.faq-section,
  .wpi-quote-page .wpi-quote-faq-section {
    padding-top: 4.4rem !important;
  }
}

/* v1.0.53 Enterprise global header / FAQ / footer system
   One shared renderer now powers Home, About, Services, Individual Service, Gallery, and Quote pages. */
.wpi-global-header.site-header {
  width: min(calc(100% - 4rem), 108rem) !important;
  margin: 0 auto !important;
  min-height: clamp(6.2rem, 7vw, 9.65rem) !important;
  display: grid !important;
  grid-template-columns: clamp(12rem, 13.6vw, 16.43rem) minmax(0, 1fr) clamp(12rem, 13.6vw, 16.43rem) !important;
  align-items: center !important;
  gap: clamp(1rem, 2vw, 2.35rem) !important;
  position: relative !important;
  z-index: 20 !important;
  padding: 0 !important;
}
.wpi-global-header .site-logo {
  display: inline-flex !important;
  justify-self: start !important;
  align-items: center !important;
  width: clamp(12rem, 13.6vw, 16.43rem) !important;
  max-width: 100% !important;
}
.wpi-global-header .site-logo img {
  width: clamp(12rem, 13.6vw, 16.43rem) !important;
  height: auto !important;
  max-height: 5.73rem !important;
  object-fit: contain !important;
  display: block !important;
}
.wpi-global-header .main-nav {
  justify-self: center !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-wrap: nowrap !important;
  gap: clamp(1.15rem, 2vw, 2.35rem) !important;
  white-space: nowrap !important;
}
.wpi-global-header .header-contact {
  justify-self: end !important;
  white-space: nowrap !important;
}

.wpi-global-faq.faq-section {
  background: #f4f4f4 !important;
  padding: clamp(4rem, 5.4vw, 5.25rem) 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  position: relative !important;
  z-index: 2 !important;
}
.wpi-global-faq .wpi-global-faq-panel.faq-panel {
  width: min(calc(100% - 4rem), 104.25rem) !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: minmax(18rem, 37rem) minmax(0, 1fr) !important;
  align-items: center !important;
  gap: clamp(3rem, 4.5vw, 4.4rem) !important;
  padding: clamp(3rem, 4vw, 4rem) clamp(3rem, 5.4vw, 6.6rem) !important;
  border-radius: 1.55rem !important;
  background: #fff !important;
  box-shadow: none !important;
  overflow: hidden !important;
}
.wpi-global-faq .wpi-global-faq-art {
  min-height: 22rem !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
}
.wpi-global-faq .wpi-global-faq-art img,
.wpi-global-faq .wpi-global-faq-art video {
  width: min(100%, 34rem) !important;
  height: auto !important;
  max-height: 24rem !important;
  object-fit: contain !important;
  display: block !important;
}
.wpi-global-faq .wpi-global-faq-content h2 {
  width: min(100%, 42rem) !important;
  margin: 0 0 2.2rem !important;
  color: #1b1919 !important;
  font-family: var(--display, "Clash Display", sans-serif) !important;
  font-size: clamp(3.15rem, 3.75vw, 3.95rem) !important;
  line-height: 1.05 !important;
  letter-spacing: .01em !important;
  text-transform: uppercase !important;
}
.wpi-global-faq .wpi-global-faq-content h2 span { color: var(--red, #d20404) !important; }
.wpi-global-faq .wpi-global-faq-list {
  display: flex !important;
  flex-direction: column !important;
  gap: .75rem !important;
  width: 100% !important;
}
.wpi-global-faq .faq-item {
  width: 100% !important;
  overflow: hidden !important;
  border-radius: 1.27rem !important;
  background: rgba(0,0,0,.06) !important;
}
.wpi-global-faq .faq-item button {
  width: 100% !important;
  min-height: 4.82rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 2rem !important;
  padding: 1.85rem 1.5rem !important;
  border: 0 !important;
  background: transparent !important;
  color: #000 !important;
  font-family: var(--body, "Red Hat Display", sans-serif) !important;
  font-size: 1.27rem !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  text-align: left !important;
  cursor: pointer !important;
}
.wpi-global-faq .faq-item p {
  display: none;
  margin: 0 !important;
  padding: 0 1.5rem 1.5rem !important;
  color: rgba(0,0,0,.72) !important;
  font-family: var(--body, "Red Hat Display", sans-serif) !important;
  font-size: 1.08rem !important;
  line-height: 1.58 !important;
}
.wpi-global-faq .faq-item.is-open p { display: block !important; }

.wpi-global-footer.wpi-sp-footer {
  margin-top: 0 !important;
  background: #000 !important;
}
.wpi-global-footer .wpi-sp-footer-inner {
  width: min(calc(100% - 4rem), 108rem) !important;
  margin: 0 auto !important;
}

@media (min-width: 768px) and (max-width: 1199px) {
  .wpi-global-header.site-header {
    width: min(calc(100% - 3rem), 108rem) !important;
    grid-template-columns: 13.5rem minmax(0, 1fr) 13.5rem !important;
    gap: 1rem !important;
  }
  .wpi-global-header .site-logo,
  .wpi-global-header .site-logo img {
    width: 13.5rem !important;
    max-height: 5rem !important;
  }
  .wpi-global-header .main-nav {
    gap: .9rem !important;
    font-size: .82rem !important;
    letter-spacing: .045rem !important;
  }
  .wpi-global-header .header-contact {
    font-size: .82rem !important;
    letter-spacing: .045rem !important;
  }
  .wpi-global-faq .wpi-global-faq-panel.faq-panel {
    grid-template-columns: minmax(15rem, 30rem) minmax(0, 1fr) !important;
    padding-inline: 3rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-global-header.site-header {
    width: calc(100% - 2rem) !important;
    min-height: auto !important;
    grid-template-columns: 9.8rem 1fr !important;
    gap: 1rem !important;
    padding: 1.25rem 0 0 !important;
  }
  .wpi-global-header .site-logo,
  .wpi-global-header .site-logo img {
    width: 9.8rem !important;
    max-height: 4rem !important;
  }
  .wpi-global-header .main-nav {
    grid-column: 1 / -1 !important;
    justify-self: stretch !important;
    justify-content: flex-start !important;
    gap: .45rem .75rem !important;
    overflow-x: auto !important;
    padding: .75rem 0 .15rem !important;
    font-size: .86rem !important;
    line-height: 1.25 !important;
    -webkit-overflow-scrolling: touch !important;
  }
  .wpi-global-header .main-nav a {
    flex: 0 0 auto !important;
  }
  .wpi-global-header .header-contact {
    align-self: center !important;
    font-size: .86rem !important;
  }
  .wpi-global-faq.faq-section {
    padding: 3.4rem 0 3.6rem !important;
  }
  .wpi-global-faq .wpi-global-faq-panel.faq-panel {
    width: calc(100% - 2rem) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 1.4rem !important;
    padding: 2rem 1rem 2.2rem !important;
    border-radius: 1.25rem !important;
  }
  .wpi-global-faq .wpi-global-faq-content {
    order: 1 !important;
    width: 100% !important;
  }
  .wpi-global-faq .wpi-global-faq-art {
    order: 2 !important;
    width: 100% !important;
    min-height: 8rem !important;
  }
  .wpi-global-faq .wpi-global-faq-art img,
  .wpi-global-faq .wpi-global-faq-art video {
    max-height: 10rem !important;
  }
  .wpi-global-faq .wpi-global-faq-content h2 {
    width: 100% !important;
    text-align: center !important;
    font-size: clamp(2.55rem, 10vw, 3.15rem) !important;
    line-height: 1 !important;
    margin-bottom: 1.35rem !important;
  }
  .wpi-global-faq .faq-item button {
    min-height: 3.35rem !important;
    padding: 1rem !important;
    font-size: .96rem !important;
  }
  .wpi-global-faq .faq-item p {
    padding: 0 1rem 1rem !important;
    font-size: .95rem !important;
    line-height: 1.45 !important;
  }
  .wpi-global-footer .wpi-sp-footer-inner {
    width: calc(100% - 2rem) !important;
  }
}



/* v1.0.54 Global mobile header fix
   Restores one clean global mobile header system: logo left, toggle right, hidden dropdown until opened.
   This overrides old page-level/mobile header patches so Quote and all other designed pages behave the same. */
@media (max-width: 767px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header.container-wide {
    width: calc(100% - 2rem) !important;
    max-width: none !important;
    min-height: 6.6rem !important;
    display: grid !important;
    grid-template-columns: minmax(7.9rem, 9.4rem) auto !important;
    align-items: center !important;
    justify-content: space-between !important;
    column-gap: clamp(1.75rem, 7vw, 3rem) !important;
    row-gap: 0 !important;
    margin: 0 auto !important;
    padding: 1rem 0 0 !important;
    position: relative !important;
    z-index: 100000 !important;
  }

  .wpi-global-header .site-logo {
    width: 9.2rem !important;
    max-width: 9.2rem !important;
    justify-self: start !important;
    align-self: center !important;
    display: inline-flex !important;
    align-items: center !important;
  }

  .wpi-global-header .site-logo img {
    width: 9.2rem !important;
    max-width: 9.2rem !important;
    height: auto !important;
    max-height: 3.8rem !important;
    object-fit: contain !important;
    object-position: left center !important;
    display: block !important;
  }

  .wpi-global-header .header-contact {
    display: none !important;
  }

  .wpi-global-header .mobile-menu-toggle,
  .site-header.wpi-global-header .mobile-menu-toggle {
    display: inline-flex !important;
    justify-self: end !important;
    align-self: center !important;
    position: relative !important;
    z-index: 100002 !important;
    width: 3.6rem !important;
    height: 3.6rem !important;
    min-width: 3.6rem !important;
    min-height: 3.6rem !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(255,255,255,.75) !important;
    border-radius: 50% !important;
    background: rgba(0,0,0,.38) !important;
    color: #fff !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    touch-action: manipulation !important;
  }

  .wpi-global-header .mobile-menu-toggle span,
  .wpi-global-header .mobile-menu-toggle span::before,
  .wpi-global-header .mobile-menu-toggle span::after {
    width: 1.45rem !important;
    height: 2px !important;
    background: currentColor !important;
  }
  .wpi-global-header .mobile-menu-toggle span {
    position: relative !important;
    display: block !important;
  }
  .wpi-global-header .mobile-menu-toggle span::before,
  .wpi-global-header .mobile-menu-toggle span::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    display: block !important;
    transition: top .2s ease, transform .2s ease, opacity .2s ease !important;
  }
  .wpi-global-header .mobile-menu-toggle span::before { top: -.48rem !important; }
  .wpi-global-header .mobile-menu-toggle span::after { top: .48rem !important; }

  body.menu-open .wpi-global-header .mobile-menu-toggle span,
  body.wpi-menu-open .wpi-global-header .mobile-menu-toggle span {
    background: transparent !important;
  }
  body.menu-open .wpi-global-header .mobile-menu-toggle span::before,
  body.wpi-menu-open .wpi-global-header .mobile-menu-toggle span::before {
    top: 0 !important;
    transform: rotate(45deg) !important;
  }
  body.menu-open .wpi-global-header .mobile-menu-toggle span::after,
  body.wpi-menu-open .wpi-global-header .mobile-menu-toggle span::after {
    top: 0 !important;
    transform: rotate(-45deg) !important;
  }

  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav {
    display: none !important;
    grid-column: auto !important;
    justify-self: auto !important;
    position: absolute !important;
    top: calc(100% + .65rem) !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    z-index: 100001 !important;
    width: calc(100vw - 2rem) !important;
    max-width: 24rem !important;
    min-width: 0 !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    overflow: visible !important;
    overflow-x: visible !important;
    padding: .8rem !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 1.15rem !important;
    background: rgba(0,0,0,.97) !important;
    box-shadow: 0 1.5rem 3.5rem rgba(0,0,0,.5) !important;
    white-space: normal !important;
    -webkit-overflow-scrolling: auto !important;
  }

  body.menu-open .wpi-global-header .main-nav,
  body.wpi-menu-open .wpi-global-header .main-nav,
  body.menu-open .site-header.wpi-global-header .main-nav,
  body.wpi-menu-open .site-header.wpi-global-header .main-nav {
    display: flex !important;
  }

  .wpi-global-header .main-nav a,
  .site-header.wpi-global-header .main-nav a {
    width: 100% !important;
    min-height: 3rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex: 0 0 auto !important;
    padding: .95rem 1rem !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
    color: #fff !important;
    font-size: 1rem !important;
    line-height: 1.2 !important;
    letter-spacing: .055em !important;
    text-align: left !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
  }

  .wpi-global-header .main-nav a:last-child,
  .site-header.wpi-global-header .main-nav a:last-child {
    border-bottom: 0 !important;
  }

  .wpi-global-header .main-nav .mobile-nav-contact,
  .site-header.wpi-global-header .main-nav .mobile-nav-contact {
    display: flex !important;
    justify-content: center !important;
    margin-top: .75rem !important;
    border: 1px solid rgba(255,255,255,.75) !important;
    border-radius: 999px !important;
    text-align: center !important;
  }
}

@media (max-width: 390px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header.container-wide {
    grid-template-columns: 8.2rem auto !important;
    column-gap: 1.35rem !important;
    width: calc(100% - 1.5rem) !important;
  }
  .wpi-global-header .site-logo,
  .wpi-global-header .site-logo img {
    width: 8.2rem !important;
    max-width: 8.2rem !important;
    max-height: 3.45rem !important;
  }
  .wpi-global-header .mobile-menu-toggle,
  .site-header.wpi-global-header .mobile-menu-toggle {
    width: 3.35rem !important;
    height: 3.35rem !important;
    min-width: 3.35rem !important;
    min-height: 3.35rem !important;
  }
}


/* v1.0.56 Event registration page + management system */
.wpi-event-page,
.wpi-event-page * { box-sizing: border-box; }
.wpi-event-page { background:#000; color:#fff; overflow-x:clip; }
.wpi-event-hero { position:relative; min-height:58rem; padding-top:0; background: radial-gradient(circle at 50% 0%, rgba(70,70,70,.75), rgba(0,0,0,.92) 34%, #000 72%); overflow:hidden; }
.wpi-event-hero::before { content:""; position:absolute; inset:4.75rem 0 auto; height:48rem; background:linear-gradient(180deg, rgba(38,38,38,.7), rgba(0,0,0,.04) 48%, #000 92%); pointer-events:none; }
.wpi-event-announcement { position:relative; z-index:4; }
.wpi-event-hero .wpi-global-header { position:relative; z-index:5; }
.wpi-event-hero-copy { position:relative; z-index:3; display:flex; flex-direction:column; align-items:center; text-align:center; padding-top:8.2rem; }
.wpi-event-hero-copy .eyebrow { margin-bottom:2.2rem; border-color:rgba(255,255,255,.9); color:#fff; }
.wpi-event-hero-copy h1 { max-width:76.5rem; margin:0; font-family:var(--font-heading, 'Unbounded', sans-serif); font-size:clamp(4rem, 4.1vw, 4.9rem); line-height:1.12; letter-spacing:.015em; text-transform:uppercase; color:#fff; }
.wpi-event-hero-copy p { max-width:50rem; margin:1.6rem auto 0; font-family:var(--font-body, 'Red Hat Display', sans-serif); font-size:1.45rem; line-height:1.5; color:rgba(255,255,255,.88); }
.wpi-event-hero-copy p span { color:#ff0707; }

.wpi-event-form-section { position:relative; z-index:6; margin-top:-30rem; padding:0 0 8rem; background:#000; }
.wpi-event-card { max-width:94.625rem; width:calc(100% - 3rem); margin:0 auto; padding:4.4rem 5rem 5.1rem; background:#fff; color:#0a0a0a; border-radius:2.55rem; box-shadow:0 .5rem .25rem rgba(87,100,126,.21); }
.wpi-event-form { width:100%; }
.wpi-event-form-head { margin:0 0 2.2rem; text-align:left; }
.wpi-event-form-head h2 { margin:0; font-family:var(--font-heading, 'Unbounded', sans-serif); font-size:2.35rem; line-height:1.08; letter-spacing:.02em; text-transform:uppercase; color:#000; }
.wpi-event-form-head p { max-width:58rem; margin:.95rem 0 0; font-size:1.1rem; line-height:1.55; color:rgba(0,0,0,.7); }
.wpi-event-message { margin:0 0 1.5rem; padding:1rem 1.2rem; border-radius:.8rem; font-weight:700; }
.wpi-event-message.is-success { background:#e7f7ec; color:#137333; }
.wpi-event-message.is-error { background:#fee2e2; color:#991b1b; }
.wpi-event-form-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:1.45rem 1.6rem; }
.wpi-event-form label { display:flex; flex-direction:column; gap:.85rem; margin:0; font-family:var(--font-body, 'Red Hat Display', sans-serif); font-size:1.05rem; line-height:1.3; color:#000; }
.wpi-event-form label.is-wide { grid-column:1 / -1; }
.wpi-event-form label > span { color:#dc2626; font-weight:800; }
.wpi-event-form input,
.wpi-event-form select,
.wpi-event-form textarea { width:100%; min-height:5rem; padding:1rem 1.15rem; border:.125rem solid rgba(195,202,216,.75); border-radius:.55rem; background:#fff; color:#0a0a0a; font:inherit; box-shadow:none; outline:none; }
.wpi-event-form textarea { min-height:14rem; resize:vertical; }
.wpi-event-form input[type=file] { padding:1.4rem; min-height:auto; }
.wpi-event-form small { margin-top:-.45rem; color:#57647e; font-size:.92rem; }
.wpi-event-options { display:flex; flex-wrap:wrap; gap:.8rem 1.2rem; padding:1rem; border:.125rem solid rgba(195,202,216,.75); border-radius:.55rem; }
.wpi-event-options label,
.wpi-event-checkbox { flex-direction:row !important; align-items:center; gap:.6rem !important; }
.wpi-event-options input,
.wpi-event-checkbox input { width:auto; min-height:auto; }
.wpi-event-submit { display:flex; align-items:center; justify-content:center; width:100%; min-height:6.35rem; margin:2.25rem 0 0; border:0; border-radius:4.75rem; background:#d91b26; color:#fff; cursor:pointer; font-family:var(--font-heading, 'Unbounded', sans-serif); font-size:1.65rem; font-weight:700; line-height:1; letter-spacing:.06em; text-transform:uppercase; }
.wpi-event-submit:hover { filter:brightness(.95); }

.wpi-event-before-card { margin:4.4rem auto 0; padding:2.25rem 2.2rem 2.45rem; border-radius:.95rem; background:rgba(51,51,51,.08); }
.wpi-event-before-top { display:grid; grid-template-columns:.85fr 1fr; gap:2rem; align-items:start; margin-bottom:1.7rem; }
.wpi-event-before-top h2 { margin:0; font-family:var(--font-heading, 'Unbounded', sans-serif); font-size:2.45rem; line-height:.98; letter-spacing:.02em; color:#000; }
.wpi-event-before-top p { margin:0 0 .95rem; color:rgba(0,0,0,.78); font-size:1.08rem; line-height:1.5; }
.wpi-event-before-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:.75rem; }
.wpi-event-before-item { position:relative; overflow:hidden; min-height:9.5rem; padding:1.25rem 1.35rem 1.2rem; border-radius:.45rem; background:#fff; }
.wpi-event-before-item::before { content:""; position:absolute; left:1rem; top:1.35rem; width:.35rem; height:2.75rem; border-radius:999px; background:#b50505; }
.wpi-event-before-item::after { content:""; position:absolute; left:1.35rem; top:1.25rem; right:1rem; height:3rem; background:rgba(181,5,5,.07); border-radius:0 .45rem .45rem 0; }
.wpi-event-before-item h3 { position:relative; z-index:1; margin:0 0 1rem 1.45rem; font-family:var(--font-body, 'Red Hat Display', sans-serif); font-size:1.25rem; line-height:1.2; color:#000; }
.wpi-event-before-item p { position:relative; z-index:1; margin:0; color:rgba(31,31,31,.82); font-size:1rem; line-height:1.45; }

.wpi-event-help-section { background:#2b2b2b; padding:6.5rem 1.5rem 6.75rem; }
.wpi-event-help-inner { display:flex; flex-direction:column; align-items:center; text-align:center; }
.wpi-event-help-mark { margin-bottom:1.4rem; color:#fff; opacity:.8; font-size:5.25rem; line-height:.6; }
.wpi-event-help-section h2 { margin:0; font-family:var(--font-heading, 'Unbounded', sans-serif); font-size:3.2rem; line-height:1.13; letter-spacing:.02em; text-transform:uppercase; color:#fff; }
.wpi-event-help-section h2 span { color:#d20404; }
.wpi-event-help-section p { margin:.8rem 0 0; color:#fff; font-size:1.25rem; line-height:1.5; }
.wpi-event-help-section .btn { margin-top:2rem; min-width:27.8rem; color:#000; background:#fff; border-color:#fff; }

@media (max-width: 1180px) {
  .wpi-event-card { padding:3.5rem 3rem 4rem; }
  .wpi-event-form-grid { grid-template-columns:1fr; }
  .wpi-event-before-top { grid-template-columns:1fr; }
  .wpi-event-before-grid { grid-template-columns:1fr; }
}

@media (max-width: 767px) {
  .wpi-event-hero { min-height:43rem; }
  .wpi-event-hero-copy { padding:5.25rem 1rem 0; }
  .wpi-event-hero-copy .eyebrow { margin-bottom:1.35rem; }
  .wpi-event-hero-copy h1 { font-size:clamp(2.65rem, 12vw, 4rem); line-height:1.08; letter-spacing:.01em; }
  .wpi-event-hero-copy p { max-width:22rem; font-size:1.14rem; line-height:1.45; }
  .wpi-event-form-section { margin-top:-14rem; padding-bottom:4.5rem; }
  .wpi-event-card { width:calc(100% - 1.35rem); padding:1.65rem 1rem 1.9rem; border-radius:1.45rem; }
  .wpi-event-form-head h2 { font-size:1.65rem; }
  .wpi-event-form-head p { font-size:1rem; }
  .wpi-event-form-grid { gap:1.1rem; }
  .wpi-event-form label { font-size:1rem; gap:.65rem; }
  .wpi-event-form input,
  .wpi-event-form select,
  .wpi-event-form textarea { min-height:3.75rem; border-radius:.55rem; padding:.85rem .9rem; }
  .wpi-event-form textarea { min-height:10rem; }
  .wpi-event-submit { min-height:4.35rem; margin-top:1.35rem; font-size:1rem; }
  .wpi-event-before-card { margin-top:2rem; padding:1.25rem 1rem; }
  .wpi-event-before-top { gap:1rem; margin-bottom:1rem; }
  .wpi-event-before-top h2 { font-size:1.55rem; }
  .wpi-event-before-top p { font-size:.95rem; }
  .wpi-event-before-item { min-height:8rem; padding:1rem; }
  .wpi-event-before-item h3 { font-size:1.05rem; margin-left:1.1rem; }
  .wpi-event-before-item p { font-size:.92rem; }
  .wpi-event-help-section { padding:4rem 1rem; }
  .wpi-event-help-mark { font-size:4rem; }
  .wpi-event-help-section h2 { font-size:2.15rem; }
  .wpi-event-help-section p { font-size:1rem; }
  .wpi-event-help-section .btn { min-width:0; width:100%; max-width:20rem; }
}


/* v1.0.57 Event page mobile/tablet QA hardening */
.wpi-event-page,
.wpi-event-page * { max-width: 100%; }
.wpi-event-page { overflow-x: clip; }
.wpi-event-page .container-wide,
.wpi-event-page .container-narrow { width: min(100% - 3rem, var(--container, 1700px)); }
.wpi-event-form-grid > *,
.wpi-event-before-grid > *,
.wpi-event-before-top > *,
.wpi-event-help-inner > * { min-width: 0; }
.wpi-event-form input,
.wpi-event-form select,
.wpi-event-form textarea,
.wpi-event-form button { max-width: 100%; }
.wpi-event-form input[type="file"] { white-space: normal; }
.wpi-event-options { width: 100%; }
.wpi-event-options label { min-width: max-content; margin: 0; }

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-event-hero { min-height: 53rem; }
  .wpi-event-hero-copy { padding-top: 7rem; }
  .wpi-event-hero-copy h1 { max-width: 58rem; font-size: clamp(3.4rem, 7vw, 4.75rem); line-height: 1.08; }
  .wpi-event-hero-copy p { max-width: 43rem; }
  .wpi-event-form-section { margin-top: -24rem; padding-bottom: 6rem; }
  .wpi-event-card { width: min(100% - 2rem, 58rem); padding: 3rem 2.25rem 3.5rem; border-radius: 2rem; }
  .wpi-event-form input,
  .wpi-event-form select,
  .wpi-event-form textarea { min-height: 4.5rem; }
  .wpi-event-before-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; }
  .wpi-event-before-item { min-height: 10rem; padding: 1.1rem; }
  .wpi-event-before-item h3 { font-size: 1.05rem; margin-left: 1.15rem; }
  .wpi-event-before-item p { font-size: .92rem; }
  .wpi-event-help-section { padding: 5.5rem 1.5rem; }
}

@media (max-width: 767px) {
  .wpi-event-page .container-wide,
  .wpi-event-page .container-narrow { width: min(100% - 1.25rem, 44rem); }
  .wpi-event-hero { min-height: 40rem; overflow: hidden; }
  .wpi-event-hero::before { inset: 4.5rem 0 auto; height: 34rem; }
  .wpi-event-hero-copy { padding: 4.75rem .85rem 0; }
  .wpi-event-hero-copy .eyebrow { max-width: 100%; padding: .7rem 1.35rem; font-size: .95rem; line-height: 1.1; margin-bottom: 1.15rem; }
  .wpi-event-hero-copy h1 { max-width: 25rem; font-size: clamp(2.75rem, 13vw, 4.25rem); line-height: 1.02; letter-spacing: .005em; text-wrap: balance; }
  .wpi-event-hero-copy p { max-width: 24rem; margin-top: 1.2rem; font-size: 1.12rem; line-height: 1.45; }
  .wpi-event-form-section { margin-top: -12rem; padding: 0 0 4rem; }
  .wpi-event-card { width: min(100% - 1.1rem, 42rem); padding: 1.55rem .95rem 1.75rem; border-radius: 1.45rem; }
  .wpi-event-form-head { margin-bottom: 1.35rem; }
  .wpi-event-form-head h2 { font-size: clamp(1.9rem, 8vw, 2.65rem); line-height: 1.04; letter-spacing: .005em; }
  .wpi-event-form-head p { font-size: 1rem; line-height: 1.45; }
  .wpi-event-form-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  .wpi-event-form label { width: 100%; font-size: 1rem; line-height: 1.25; gap: .6rem; word-break: normal; }
  .wpi-event-form label.is-wide { grid-column: auto; }
  .wpi-event-form input,
  .wpi-event-form select,
  .wpi-event-form textarea { min-height: 3.8rem; padding: .9rem .9rem; border-radius: .55rem; font-size: 16px; }
  .wpi-event-form textarea { min-height: 10.5rem; }
  .wpi-event-form input[type="file"] { padding: 1rem .8rem; font-size: .95rem; line-height: 1.35; }
  .wpi-event-options { display: grid; grid-template-columns: 1fr; gap: .75rem; padding: .85rem; overflow: visible; }
  .wpi-event-options label,
  .wpi-event-checkbox { min-width: 0 !important; width: 100%; align-items: center; }
  .wpi-event-options input,
  .wpi-event-checkbox input { flex: 0 0 auto; }
  .wpi-event-submit { min-height: 4.4rem; margin-top: 1.25rem; font-size: 1.05rem; letter-spacing: .05em; }
  .wpi-event-before-card { margin-top: 1.75rem; padding: 1.25rem .85rem 1rem; border-radius: 1rem; }
  .wpi-event-before-top { display: grid; grid-template-columns: 1fr; gap: .95rem; margin-bottom: 1rem; }
  .wpi-event-before-top h2 { font-size: clamp(1.9rem, 8vw, 2.55rem); line-height: 1.02; letter-spacing: .005em; }
  .wpi-event-before-top p { font-size: .95rem; line-height: 1.45; }
  .wpi-event-before-grid { grid-template-columns: 1fr; gap: .85rem; }
  .wpi-event-before-item { min-height: auto; padding: 1rem .95rem 1rem; border-radius: .65rem; }
  .wpi-event-before-item::before { left: .85rem; top: 1rem; height: 2.3rem; }
  .wpi-event-before-item::after { left: 1.15rem; top: .92rem; right: .75rem; height: 2.65rem; }
  .wpi-event-before-item h3 { font-size: 1.08rem; line-height: 1.2; margin: 0 0 .8rem 1.1rem; }
  .wpi-event-before-item p { font-size: .92rem; line-height: 1.45; }
  .wpi-event-help-section { padding: 4rem 1rem 4.25rem; }
  .wpi-event-help-mark { margin-bottom: 1rem; font-size: 3.75rem; }
  .wpi-event-help-section h2 { max-width: 26rem; font-size: clamp(2.25rem, 9vw, 3.2rem); line-height: 1.05; letter-spacing: .005em; text-wrap: balance; }
  .wpi-event-help-section p { max-width: 26rem; margin-top: .8rem; font-size: 1rem; line-height: 1.45; }
  .wpi-event-help-section .btn { width: min(100%, 22rem); min-width: 0; margin-top: 1.55rem; }
}

@media (max-width: 374px) {
  .wpi-event-hero-copy h1 { font-size: 2.55rem; }
  .wpi-event-card { width: calc(100% - .85rem); padding-left: .75rem; padding-right: .75rem; }
  .wpi-event-help-section h2 { font-size: 2.05rem; }
}


/* v1.0.59 Global alignment + Events upper-section repair
   Fixes the global header/footer centering and stops the Events form card from covering the hero/title area. */
.wpi-global-header.site-header,
.site-header.wpi-global-header.container-wide {
  width: min(calc(100% - 4rem), 106.25rem) !important;
  max-width: 106.25rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  grid-template-columns: minmax(13rem, 17.5rem) minmax(0, 1fr) minmax(13rem, 17.5rem) !important;
  align-items: center !important;
  justify-items: stretch !important;
}
.wpi-global-header .site-logo { justify-self: start !important; }
.wpi-global-header .main-nav {
  justify-self: center !important;
  justify-content: center !important;
  text-align: center !important;
}
.wpi-global-header .header-contact { justify-self: end !important; text-align: right !important; }

.wpi-global-footer.wpi-sp-footer { text-align: initial !important; }
.wpi-global-footer .wpi-sp-footer-inner,
.wpi-sp-footer-inner {
  width: min(calc(100% - 4rem), 106.25rem) !important;
  max-width: 106.25rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
}
.wpi-global-footer .wpi-sp-footer-top,
.wpi-sp-footer-top {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: minmax(0, 40rem) minmax(0, 38rem) !important;
  justify-content: space-between !important;
  align-items: start !important;
  gap: clamp(3rem, 7vw, 10rem) !important;
}
.wpi-global-footer .wpi-sp-footer-copy,
.wpi-sp-footer-copy { justify-self: end !important; }
.wpi-global-footer .wpi-sp-footer-divider,
.wpi-sp-footer-divider { width: 100% !important; }
.wpi-global-footer .wpi-sp-footer-logo,
.wpi-sp-footer-logo { display: block !important; margin-left: auto !important; margin-right: auto !important; }
.wpi-global-footer .wpi-sp-footer-nav,
.wpi-sp-footer-nav,
.wpi-global-footer .wpi-sp-socials,
.wpi-sp-socials { width: 100% !important; justify-content: center !important; text-align: center !important; }
.wpi-global-footer .wpi-sp-copyright,
.wpi-sp-copyright { text-align: center !important; }

.wpi-event-page .wpi-event-hero {
  min-height: 53rem !important;
  overflow: visible !important;
  padding-bottom: 14rem !important;
}
.wpi-event-page .wpi-event-hero::before { height: 44rem !important; }
.wpi-event-page .wpi-event-hero .wpi-global-header {
  margin-top: 0 !important;
  position: relative !important;
  z-index: 30 !important;
}
.wpi-event-page .wpi-event-hero-copy {
  position: relative !important;
  z-index: 20 !important;
  padding-top: 3.6rem !important;
  padding-bottom: 0 !important;
}
.wpi-event-page .wpi-event-hero-copy h1,
.wpi-event-page .wpi-event-hero-copy p,
.wpi-event-page .wpi-event-hero-copy .eyebrow { position: relative !important; z-index: 21 !important; }
.wpi-event-page .wpi-event-form-section {
  margin-top: -13.5rem !important;
  position: relative !important;
  z-index: 10 !important;
  padding-bottom: 7rem !important;
}
.wpi-event-page .wpi-event-card { position: relative !important; z-index: 10 !important; }

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header.container-wide {
    width: min(calc(100% - 3rem), 64rem) !important;
    max-width: 64rem !important;
    grid-template-columns: 12rem minmax(0, 1fr) 12rem !important;
  }
  .wpi-global-footer .wpi-sp-footer-inner,
  .wpi-sp-footer-inner { width: min(calc(100% - 3rem), 64rem) !important; max-width: 64rem !important; }
  .wpi-global-footer .wpi-sp-footer-top,
  .wpi-sp-footer-top { grid-template-columns: 1fr !important; justify-content: center !important; text-align: center !important; gap: 2.5rem !important; }
  .wpi-global-footer .wpi-sp-footer-top h2,
  .wpi-sp-footer-top h2,
  .wpi-global-footer .wpi-sp-footer-copy,
  .wpi-sp-footer-copy { width: min(100%, 42rem) !important; justify-self: center !important; margin-left: auto !important; margin-right: auto !important; text-align: center !important; }
  .wpi-global-footer .wpi-sp-contact-pill,
  .wpi-sp-contact-pill { margin-left: auto !important; margin-right: auto !important; }
  .wpi-event-page .wpi-event-hero { min-height: 50rem !important; padding-bottom: 12rem !important; }
  .wpi-event-page .wpi-event-hero-copy { padding-top: 3.2rem !important; }
  .wpi-event-page .wpi-event-form-section { margin-top: -10rem !important; }
}

@media (max-width: 767px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header.container-wide {
    width: calc(100% - 1.5rem) !important;
    max-width: 44rem !important;
    grid-template-columns: minmax(7.8rem, 9.2rem) 3.6rem !important;
    justify-content: space-between !important;
    align-items: center !important;
    column-gap: 1.5rem !important;
  }
  .wpi-global-header .site-logo,
  .wpi-global-header .site-logo img { width: 8.9rem !important; max-width: 8.9rem !important; }
  .wpi-global-header .mobile-menu-toggle,
  .site-header.wpi-global-header .mobile-menu-toggle { justify-self: end !important; }

  .wpi-global-footer .wpi-sp-footer-inner,
  .wpi-sp-footer-inner { width: calc(100% - 1.5rem) !important; max-width: 44rem !important; text-align: center !important; }
  .wpi-global-footer .wpi-sp-footer-top,
  .wpi-sp-footer-top { grid-template-columns: 1fr !important; justify-content: center !important; text-align: center !important; gap: 2.2rem !important; }
  .wpi-global-footer .wpi-sp-footer-top h2,
  .wpi-sp-footer-top h2,
  .wpi-global-footer .wpi-sp-footer-copy,
  .wpi-sp-footer-copy { width: 100% !important; justify-self: center !important; text-align: center !important; }
  .wpi-global-footer .wpi-sp-contact-pill,
  .wpi-sp-contact-pill { margin-left: auto !important; margin-right: auto !important; }

  .wpi-event-page .wpi-event-hero {
    min-height: auto !important;
    overflow: visible !important;
    padding-bottom: 8rem !important;
  }
  .wpi-event-page .wpi-event-hero::before { inset: 4.4rem 0 auto !important; height: 32rem !important; }
  .wpi-event-page .wpi-event-hero-copy {
    padding: 3.25rem .9rem 0 !important;
  }
  .wpi-event-page .wpi-event-hero-copy h1 {
    max-width: 26rem !important;
    font-size: clamp(2.85rem, 12.6vw, 4.1rem) !important;
    line-height: 1.04 !important;
  }
  .wpi-event-page .wpi-event-hero-copy p { max-width: 25rem !important; }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -4.5rem !important;
    padding-bottom: 4rem !important;
  }
  .wpi-event-page .wpi-event-card { width: min(calc(100% - 1rem), 42rem) !important; }
}


/* v1.0.60 Form upload route hardening */
.wpi-event-form,
.wpi-quote-form {
  position: relative;
}

.wpi-event-form input[type="file"],
.wpi-quote-form input[type="file"] {
  max-width: 100%;
}


/* v1.0.62 Event Figma alignment rebuild
   Repairs the Events page desktop composition and keeps the global header/footer centered instead of patched per page. */
@media (min-width: 1181px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header.container-wide {
    width: min(calc(100% - 10rem), 111.75rem) !important;
    max-width: 111.75rem !important;
    min-height: 6.1rem !important;
    margin: 0 auto !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: 17.5rem minmax(0, 1fr) 17.5rem !important;
    column-gap: 2.25rem !important;
    align-items: center !important;
    justify-items: stretch !important;
  }
  .wpi-global-header .site-logo {
    width: 17.5rem !important;
    justify-self: start !important;
  }
  .wpi-global-header .site-logo img {
    width: 17.5rem !important;
    height: 6.1rem !important;
    object-fit: contain !important;
  }
  .wpi-global-header .main-nav {
    position: static !important;
    display: flex !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    justify-self: center !important;
    gap: clamp(1.6rem, 2vw, 2.5rem) !important;
    text-align: center !important;
  }
  .wpi-global-header .main-nav a {
    width: auto !important;
    padding: 0 !important;
    border: 0 !important;
    white-space: nowrap !important;
    text-align: center !important;
  }
  .wpi-global-header .header-contact {
    justify-self: end !important;
    width: 17.5rem !important;
    text-align: right !important;
  }

  .wpi-global-footer .wpi-sp-footer-inner,
  .wpi-sp-footer-inner {
    width: min(calc(100% - 12.5rem), 109.5rem) !important;
    max-width: 109.5rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .wpi-global-footer .wpi-sp-footer-top,
  .wpi-sp-footer-top {
    display: grid !important;
    grid-template-columns: minmax(0, 40.875rem) minmax(0, 37.5rem) !important;
    align-items: start !important;
    justify-content: space-between !important;
    gap: clamp(4rem, 12vw, 24rem) !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .wpi-global-footer .wpi-sp-footer-top > div:first-child,
  .wpi-sp-footer-top > div:first-child { justify-self: start !important; text-align: left !important; }
  .wpi-global-footer .wpi-sp-footer-copy,
  .wpi-sp-footer-copy { justify-self: end !important; text-align: left !important; }
  .wpi-global-footer .wpi-sp-footer-divider,
  .wpi-sp-footer-divider { width: 100% !important; margin-left: auto !important; margin-right: auto !important; }
  .wpi-global-footer .wpi-sp-footer-logo,
  .wpi-sp-footer-logo { display: block !important; margin-left: auto !important; margin-right: auto !important; }
  .wpi-global-footer .wpi-sp-footer-nav,
  .wpi-sp-footer-nav,
  .wpi-global-footer .wpi-sp-socials,
  .wpi-sp-socials { justify-content: center !important; text-align: center !important; margin-left: auto !important; margin-right: auto !important; }
}

@media (min-width: 1181px) {
  .wpi-event-page { background: #000 !important; }
  .wpi-event-page .wpi-event-hero {
    min-height: 55rem !important;
    padding-bottom: 0 !important;
    overflow: visible !important;
    background: radial-gradient(circle at 50% 0%, rgba(75,75,75,.74), rgba(0,0,0,.9) 34%, #000 73%) !important;
  }
  .wpi-event-page .wpi-event-hero::before {
    inset: 4.75rem 0 auto !important;
    height: 49rem !important;
    background: linear-gradient(180deg, rgba(48,48,48,.9) 0%, rgba(0,0,0,.12) 52%, #000 92%) !important;
  }
  .wpi-event-page .wpi-global-header {
    position: relative !important;
    z-index: 40 !important;
    margin-top: 2.2rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    position: relative !important;
    z-index: 35 !important;
    width: min(100%, 68.375rem) !important;
    padding-top: 3.45rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
    align-items: center !important;
  }
  .wpi-event-page .wpi-event-hero-copy .eyebrow {
    margin-bottom: 2.7rem !important;
    min-width: 16.1rem !important;
    justify-content: center !important;
  }
  .wpi-event-page .wpi-event-hero-copy h1 {
    max-width: 76.625rem !important;
    width: 100% !important;
    margin: 0 auto !important;
    font-size: 3.75rem !important;
    line-height: 1.225 !important;
    letter-spacing: .01em !important;
    text-align: center !important;
    text-transform: uppercase !important;
  }
  .wpi-event-page .wpi-event-hero-copy p {
    max-width: 44.25rem !important;
    margin: 1.8rem auto 0 !important;
    font-size: 1.376rem !important;
    line-height: 1.5 !important;
    text-align: center !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -14.3rem !important;
    position: relative !important;
    z-index: 20 !important;
    padding: 0 0 8rem !important;
    background: #000 !important;
  }
  .wpi-event-page .wpi-event-card {
    width: min(calc(100% - 7.5rem), 94.625rem) !important;
    max-width: 94.625rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 4.15rem 4.5rem 4.25rem !important;
    border-radius: 2.52rem !important;
    background: #fff !important;
    box-shadow: 0 .5rem .25rem rgba(87,100,126,.21) !important;
    color: #0a0a0a !important;
  }
  .wpi-event-page .wpi-event-form-head { margin-bottom: 2.05rem !important; }
  .wpi-event-page .wpi-event-form-head h2 {
    font-size: 2.46rem !important;
    line-height: 1.05 !important;
    text-align: left !important;
  }
  .wpi-event-page .wpi-event-form-head p { max-width: 62rem !important; font-size: 1.16rem !important; }
  .wpi-event-page .wpi-event-form-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.45rem !important;
  }
  .wpi-event-page .wpi-event-form label,
  .wpi-event-page .wpi-event-form label.is-wide { grid-column: auto !important; width: 100% !important; }
  .wpi-event-page .wpi-event-form input,
  .wpi-event-page .wpi-event-form select,
  .wpi-event-page .wpi-event-form textarea {
    min-height: 5rem !important;
    border-radius: .55rem !important;
    border: .125rem solid rgba(195,202,216,.75) !important;
  }
  .wpi-event-page .wpi-event-submit {
    min-height: 6.35rem !important;
    border-radius: 4.75rem !important;
  }
  .wpi-event-page .wpi-event-before-card {
    margin-top: 4.25rem !important;
    padding: 2.15rem 2.2rem 2.25rem !important;
    border-radius: .95rem !important;
  }
  .wpi-event-page .wpi-event-before-top {
    display: grid !important;
    grid-template-columns: minmax(0, 31rem) minmax(0, 36.5rem) !important;
    justify-content: space-between !important;
    align-items: start !important;
  }
  .wpi-event-page .wpi-event-before-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: .75rem !important;
  }
  .wpi-event-page .wpi-event-help-section {
    margin-top: 0 !important;
    min-height: 40.6rem !important;
    padding: 5rem 1.5rem 6rem !important;
    background: rgba(255,255,255,.16) !important;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header.container-wide {
    width: min(calc(100% - 3rem), 64rem) !important;
    min-height: 6.25rem !important;
    grid-template-columns: 12.5rem minmax(0, 1fr) 9rem !important;
    column-gap: 1.5rem !important;
    align-items: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .wpi-global-header .site-logo img { width: 12.5rem !important; height: auto !important; }
  .wpi-global-header .main-nav { justify-self: center !important; justify-content: center !important; gap: 1rem !important; }
  .wpi-global-header .header-contact { justify-self: end !important; text-align: right !important; }
  .wpi-event-page .wpi-event-hero { min-height: 52rem !important; padding-bottom: 0 !important; overflow: visible !important; }
  .wpi-event-page .wpi-event-hero-copy { padding-top: 3.25rem !important; }
  .wpi-event-page .wpi-event-form-section { margin-top: -10rem !important; }
  .wpi-event-page .wpi-event-form-grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 767px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header.container-wide {
    width: min(calc(100% - 1.5rem), 44rem) !important;
    min-height: 5.9rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: grid !important;
    grid-template-columns: minmax(7.5rem, 9.2rem) 3.6rem !important;
    column-gap: 1.2rem !important;
    align-items: center !important;
    justify-content: space-between !important;
  }
  .wpi-global-header .site-logo,
  .wpi-global-header .site-logo img { width: 8.7rem !important; max-width: 8.7rem !important; height: auto !important; }
  .wpi-global-header .mobile-menu-toggle { justify-self: end !important; }
  .wpi-global-header .main-nav { top: calc(100% + .4rem) !important; left: 0 !important; right: 0 !important; }
  .wpi-event-page .wpi-event-hero {
    min-height: auto !important;
    padding-bottom: 7rem !important;
    overflow: visible !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    padding: 3.65rem .9rem 0 !important;
    width: min(100%, 28rem) !important;
  }
  .wpi-event-page .wpi-event-hero-copy h1 {
    max-width: 27rem !important;
    font-size: clamp(2.9rem, 13vw, 4.15rem) !important;
    line-height: 1.04 !important;
    letter-spacing: .002em !important;
  }
  .wpi-event-page .wpi-event-hero-copy p {
    max-width: 25.5rem !important;
    font-size: 1.12rem !important;
    line-height: 1.45 !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -3.75rem !important;
    padding-bottom: 4rem !important;
  }
  .wpi-event-page .wpi-event-card {
    width: min(calc(100% - 1rem), 42rem) !important;
    padding: 1.55rem .95rem 1.8rem !important;
    border-radius: 1.45rem !important;
  }
  .wpi-event-page .wpi-event-form-grid { grid-template-columns: 1fr !important; }
  .wpi-event-page .wpi-event-before-top,
  .wpi-event-page .wpi-event-before-grid { grid-template-columns: 1fr !important; }
  .wpi-global-footer .wpi-sp-footer-inner,
  .wpi-sp-footer-inner { width: min(calc(100% - 1.5rem), 44rem) !important; margin-left: auto !important; margin-right: auto !important; text-align: center !important; }
  .wpi-global-footer .wpi-sp-footer-top,
  .wpi-sp-footer-top { display: grid !important; grid-template-columns: 1fr !important; justify-content: center !important; text-align: center !important; }
}

/* v1.0.64 Events upper-section Figma correction
   The white Events card now starts directly with the backend-controlled form fields.
   The "Before You Register" point cards are aligned as one clean Figma-style row. */
.wpi-event-page .wpi-event-form-head {
  display: none !important;
}

@media (min-width: 1181px) {
  .wpi-event-page .wpi-event-hero {
    min-height: 55rem !important;
    padding-bottom: 0 !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    padding-top: 3.45rem !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -14.25rem !important;
    padding-bottom: 8rem !important;
  }
  .wpi-event-page .wpi-event-card {
    padding-top: 4.15rem !important;
  }
  .wpi-event-page .wpi-event-form {
    margin: 0 !important;
  }
  .wpi-event-page .wpi-event-form-grid {
    gap: 2.05rem !important;
  }
  .wpi-event-page .wpi-event-form label {
    gap: 1.2rem !important;
    font-size: 1.41rem !important;
    line-height: 1.25 !important;
  }
  .wpi-event-page .wpi-event-form input,
  .wpi-event-page .wpi-event-form select,
  .wpi-event-page .wpi-event-form textarea {
    min-height: 5.03rem !important;
    padding: 1rem 1.25rem !important;
    border-radius: .5rem !important;
  }
  .wpi-event-page .wpi-event-form textarea {
    min-height: 22.15rem !important;
  }
  .wpi-event-page .wpi-event-submit {
    margin-top: 2.65rem !important;
  }
  .wpi-event-page .wpi-event-before-card {
    width: 100% !important;
    margin: 5rem auto 0 !important;
    padding: 2.12rem 1.38rem 1.55rem !important;
    border-radius: .94rem !important;
    background: rgba(51,51,51,.08) !important;
  }
  .wpi-event-page .wpi-event-before-top {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(0, 31.1rem) minmax(0, 36.35rem) !important;
    justify-content: space-between !important;
    align-items: start !important;
    gap: 3.25rem !important;
    margin: 0 0 1.55rem !important;
    padding: 0 .8rem !important;
  }
  .wpi-event-page .wpi-event-before-top h2 {
    margin: 0 !important;
    font-family: var(--font-heading, 'Unbounded', sans-serif) !important;
    font-size: 2.46rem !important;
    line-height: .945 !important;
    letter-spacing: .02em !important;
    text-align: center !important;
  }
  .wpi-event-page .wpi-event-before-top p {
    margin: 0 0 .9rem !important;
    font-size: 1.17rem !important;
    line-height: 1.5 !important;
  }
  .wpi-event-page .wpi-event-before-grid {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: .74rem !important;
    align-items: stretch !important;
  }
  .wpi-event-page .wpi-event-before-item {
    position: relative !important;
    min-height: 13.9rem !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    padding: 2.55rem 3.15rem 1.55rem !important;
    border-radius: .4rem !important;
    background: #fff !important;
    overflow: hidden !important;
  }
  .wpi-event-page .wpi-event-before-item::before {
    left: 1rem !important;
    top: 1.61rem !important;
    width: .82rem !important;
    height: 2.75rem !important;
    border-radius: 99rem !important;
    background: #b50505 !important;
  }
  .wpi-event-page .wpi-event-before-item::after {
    left: 1.78rem !important;
    right: 2.15rem !important;
    top: 1.55rem !important;
    height: 3.02rem !important;
    border-radius: 0 .47rem .47rem 0 !important;
    background: rgba(181,5,5,.07) !important;
  }
  .wpi-event-page .wpi-event-before-item h3 {
    position: relative !important;
    z-index: 2 !important;
    min-height: 3.2rem !important;
    margin: 0 0 1.1rem 0 !important;
    padding-left: 0 !important;
    display: flex !important;
    align-items: center !important;
    font-size: 1.43rem !important;
    line-height: 1.2 !important;
  }
  .wpi-event-page .wpi-event-before-item p {
    position: relative !important;
    z-index: 2 !important;
    margin: 0 !important;
    font-size: 1.275rem !important;
    line-height: 1.54 !important;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-event-page .wpi-event-form-head { display: none !important; }
  .wpi-event-page .wpi-event-card { padding-top: 3rem !important; }
  .wpi-event-page .wpi-event-before-card { margin-top: 3.25rem !important; }
  .wpi-event-page .wpi-event-before-top {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
    text-align: center !important;
  }
  .wpi-event-page .wpi-event-before-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: .75rem !important;
  }
  .wpi-event-page .wpi-event-before-item {
    min-height: 11rem !important;
    padding: 2rem 1.15rem 1.15rem !important;
  }
  .wpi-event-page .wpi-event-before-item h3 { margin-left: 0 !important; }
}

@media (max-width: 767px) {
  .wpi-event-page .wpi-event-form-head { display: none !important; }
  .wpi-event-page .wpi-event-card { padding-top: 1.45rem !important; }
  .wpi-event-page .wpi-event-before-card {
    margin-top: 2.3rem !important;
    padding: 1.35rem .9rem 1rem !important;
  }
  .wpi-event-page .wpi-event-before-top {
    text-align: center !important;
    padding: 0 !important;
  }
  .wpi-event-page .wpi-event-before-grid {
    align-items: stretch !important;
  }
  .wpi-event-page .wpi-event-before-item {
    min-height: auto !important;
    padding: 1.15rem 1rem 1rem !important;
  }
  .wpi-event-page .wpi-event-before-item h3 {
    min-height: 2.6rem !important;
    margin-left: 1.15rem !important;
    display: flex !important;
    align-items: center !important;
  }
}


/* v1.0.65 Events Figma visual correction
   Uses the live Figma screenshot as the target: centered global header/footer,
   shorter upper hero, white card starts with form fields only, and aligned Before cards. */
.wpi-event-page .wpi-event-form-head,
.wpi-event-page .wpi-event-card > h1,
.wpi-event-page .wpi-event-card > h2,
.wpi-event-page .wpi-event-card > p,
.wpi-event-page .wpi-event-form > h1,
.wpi-event-page .wpi-event-form > h2,
.wpi-event-page .wpi-event-form > p:first-of-type {
  display: none !important;
}

@media (min-width: 1181px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header.container-wide {
    width: min(calc(100% - 9rem), 105rem) !important;
    max-width: 105rem !important;
    grid-template-columns: 13rem minmax(0, 1fr) 13rem !important;
    column-gap: 2rem !important;
    align-items: center !important;
    justify-content: center !important;
    margin-inline: auto !important;
  }
  .wpi-global-header .site-logo {
    width: 13rem !important;
    justify-self: start !important;
    display: flex !important;
    align-items: center !important;
  }
  .wpi-global-header .site-logo img {
    width: 8.75rem !important;
    max-width: 8.75rem !important;
    height: auto !important;
    object-fit: contain !important;
  }
  .wpi-global-header .main-nav {
    justify-self: center !important;
    justify-content: center !important;
    align-items: center !important;
    gap: clamp(1.65rem, 2.15vw, 2.55rem) !important;
  }
  .wpi-global-header .main-nav a {
    line-height: 1 !important;
    text-align: center !important;
  }
  .wpi-global-header .header-contact {
    justify-self: end !important;
    width: 13rem !important;
    line-height: 1 !important;
    text-align: right !important;
  }

  .wpi-event-page .wpi-event-hero {
    min-height: 44.5rem !important;
    padding-bottom: 0 !important;
    overflow: visible !important;
    background: radial-gradient(circle at 50% 0%, rgba(72,72,72,.72), rgba(0,0,0,.93) 38%, #000 76%) !important;
  }
  .wpi-event-page .wpi-event-hero::before {
    inset: 4.65rem 0 auto !important;
    height: 35rem !important;
    background: linear-gradient(180deg, rgba(48,48,48,.82) 0%, rgba(0,0,0,.14) 55%, #000 96%) !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    padding-top: 3.05rem !important;
    width: min(100%, 68.375rem) !important;
    margin-inline: auto !important;
  }
  .wpi-event-page .wpi-event-hero-copy .eyebrow {
    margin-bottom: 2.35rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy h1 {
    font-size: clamp(3.75rem, 4.15vw, 4.2rem) !important;
    line-height: 1.12 !important;
    letter-spacing: .006em !important;
  }
  .wpi-event-page .wpi-event-hero-copy p {
    margin-top: 1.45rem !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -6.6rem !important;
    padding: 0 0 6.25rem !important;
    background: #000 !important;
  }
  .wpi-event-page .wpi-event-card {
    width: min(77.4vw, 94.625rem) !important;
    max-width: 94.625rem !important;
    margin-inline: auto !important;
    padding: 4.85rem 6rem 3.85rem !important;
    border-radius: 2.55rem !important;
    background: #fff !important;
    box-shadow: 0 .5rem .25rem rgba(87,100,126,.21) !important;
  }
  .wpi-event-page .wpi-event-form {
    margin: 0 !important;
    padding: 0 !important;
  }
  .wpi-event-page .wpi-event-form-grid {
    gap: 2rem !important;
  }
  .wpi-event-page .wpi-event-form label {
    font-size: 1.18rem !important;
    line-height: 1.3 !important;
    gap: 1.05rem !important;
  }
  .wpi-event-page .wpi-event-form label span {
    color: #dc2626 !important;
  }
  .wpi-event-page .wpi-event-form input,
  .wpi-event-page .wpi-event-form select,
  .wpi-event-page .wpi-event-form textarea {
    min-height: 4.65rem !important;
    width: 100% !important;
    border-radius: .52rem !important;
    border: .125rem solid rgba(195,202,216,.75) !important;
    background: #fff !important;
  }
  .wpi-event-page .wpi-event-form textarea {
    min-height: 17.2rem !important;
  }
  .wpi-event-page .wpi-event-form small {
    margin-top: .7rem !important;
  }
  .wpi-event-page .wpi-event-submit {
    min-height: 5.7rem !important;
    margin-top: 2.65rem !important;
    border-radius: 5rem !important;
    width: 100% !important;
  }
  .wpi-event-page .wpi-event-before-card {
    margin-top: 3.75rem !important;
    padding: 2.55rem 2.35rem 2.3rem !important;
    border-radius: .95rem !important;
    background: rgba(51,51,51,.08) !important;
  }
  .wpi-event-page .wpi-event-before-top {
    display: grid !important;
    grid-template-columns: minmax(0, 33rem) minmax(0, 39rem) !important;
    justify-content: space-between !important;
    align-items: start !important;
    gap: 3rem !important;
    margin: 0 0 2.25rem !important;
    padding: 0 !important;
    text-align: left !important;
  }
  .wpi-event-page .wpi-event-before-top h2 {
    margin: 0 !important;
    font-size: clamp(2.15rem, 2.25vw, 2.55rem) !important;
    line-height: 1.02 !important;
    letter-spacing: .012em !important;
    text-align: left !important;
    white-space: nowrap !important;
  }
  .wpi-event-page .wpi-event-before-top p {
    margin: 0 0 .95rem !important;
    font-size: 1.1rem !important;
    line-height: 1.55 !important;
    text-align: left !important;
  }
  .wpi-event-page .wpi-event-before-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: .9rem !important;
    align-items: stretch !important;
  }
  .wpi-event-page .wpi-event-before-item {
    min-height: 11.8rem !important;
    padding: 2.35rem 2.3rem 1.5rem !important;
    border-radius: .42rem !important;
    background: #fff !important;
  }
  .wpi-event-page .wpi-event-before-item::before {
    left: 1rem !important;
    top: 1.45rem !important;
    width: .64rem !important;
    height: 2.72rem !important;
  }
  .wpi-event-page .wpi-event-before-item::after {
    left: 1.62rem !important;
    right: 1.3rem !important;
    top: 1.38rem !important;
    height: 2.95rem !important;
  }
  .wpi-event-page .wpi-event-before-item h3 {
    min-height: 2.6rem !important;
    margin: 0 0 .8rem 0 !important;
    padding-left: 0 !important;
    display: flex !important;
    align-items: center !important;
    font-size: 1.18rem !important;
    line-height: 1.2 !important;
  }
  .wpi-event-page .wpi-event-before-item p {
    font-size: 1.02rem !important;
    line-height: 1.48 !important;
  }
  .wpi-event-page .wpi-event-help-section {
    margin-top: 0 !important;
    min-height: 39.5rem !important;
    padding-top: 5.9rem !important;
    padding-bottom: 6rem !important;
  }

  .wpi-global-footer .wpi-sp-footer-inner,
  .wpi-sp-footer-inner {
    width: min(calc(100% - 10rem), 105rem) !important;
    max-width: 105rem !important;
    margin-inline: auto !important;
  }
  .wpi-global-footer .wpi-sp-footer-logo,
  .wpi-sp-footer-logo {
    margin-inline: auto !important;
  }
  .wpi-global-footer .wpi-sp-footer-nav,
  .wpi-sp-footer-nav,
  .wpi-global-footer .wpi-sp-socials,
  .wpi-sp-socials {
    justify-content: center !important;
    margin-inline: auto !important;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-event-page .wpi-event-form-head,
  .wpi-event-page .wpi-event-card > h2,
  .wpi-event-page .wpi-event-form > h2,
  .wpi-event-page .wpi-event-form > p:first-of-type { display: none !important; }
  .wpi-event-page .wpi-event-hero { min-height: 39rem !important; }
  .wpi-event-page .wpi-event-form-section { margin-top: -5rem !important; }
  .wpi-event-page .wpi-event-card { width: min(calc(100% - 4rem), 52rem) !important; padding-top: 3.75rem !important; }
  .wpi-event-page .wpi-event-before-top h2 { white-space: normal !important; text-align: center !important; }
}

@media (max-width: 767px) {
  .wpi-event-page .wpi-event-form-head,
  .wpi-event-page .wpi-event-card > h2,
  .wpi-event-page .wpi-event-form > h2,
  .wpi-event-page .wpi-event-form > p:first-of-type { display: none !important; }
  .wpi-event-page .wpi-event-hero { padding-bottom: 6.5rem !important; }
  .wpi-event-page .wpi-event-form-section { margin-top: -3.2rem !important; }
  .wpi-event-page .wpi-event-before-top h2 { white-space: normal !important; }
}

/* v1.0.68 Final Events Figma alignment pass
   Compared against the Figma frame: the white card starts with fields only,
   the card sits higher under the hero, and the before-register points align cleanly. */
.wpi-event-page .wpi-event-form-head,
.wpi-event-page .wpi-event-card > h1,
.wpi-event-page .wpi-event-card > h2,
.wpi-event-page .wpi-event-card > p,
.wpi-event-page .wpi-event-form > h1,
.wpi-event-page .wpi-event-form > h2,
.wpi-event-page .wpi-event-form > p:first-of-type {
  display: none !important;
}

@media (min-width: 1181px) {
  .wpi-event-page .wpi-event-hero {
    min-height: 38.75rem !important;
    padding-bottom: 0 !important;
    overflow: visible !important;
  }
  .wpi-event-page .wpi-event-hero::before {
    height: 33.25rem !important;
  }
  .wpi-event-page .wpi-event-hero .wpi-global-header {
    margin-top: 1.95rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    padding-top: 3.05rem !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -4.6rem !important;
    padding-bottom: 6.4rem !important;
  }
  .wpi-event-page .wpi-event-card {
    width: min(77.25vw, 94.625rem) !important;
    padding: 4.75rem 6rem 3.75rem !important;
  }
  .wpi-event-page .wpi-event-form-grid {
    grid-template-columns: 1fr !important;
    gap: 2.03rem !important;
  }
  .wpi-event-page .wpi-event-form label {
    font-size: 1.18rem !important;
    gap: 1.05rem !important;
  }
  .wpi-event-page .wpi-event-form input,
  .wpi-event-page .wpi-event-form select,
  .wpi-event-page .wpi-event-form textarea {
    min-height: 4.65rem !important;
    border-radius: .52rem !important;
  }
  .wpi-event-page .wpi-event-form textarea {
    min-height: 17.35rem !important;
  }
  .wpi-event-page .wpi-event-submit {
    min-height: 5.65rem !important;
    margin-top: 2.55rem !important;
  }
  .wpi-event-page .wpi-event-before-card {
    margin-top: 3.75rem !important;
    padding: 2.5rem 2.35rem 2.25rem !important;
  }
  .wpi-event-page .wpi-event-before-top {
    grid-template-columns: minmax(0, 32.5rem) minmax(0, 39rem) !important;
    gap: 3rem !important;
    align-items: start !important;
    text-align: left !important;
    margin-bottom: 2.15rem !important;
  }
  .wpi-event-page .wpi-event-before-top h2 {
    text-align: left !important;
    justify-self: start !important;
  }
  .wpi-event-page .wpi-event-before-top > div {
    justify-self: end !important;
    width: 100% !important;
  }
  .wpi-event-page .wpi-event-before-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: .9rem !important;
  }
  .wpi-event-page .wpi-event-before-item {
    min-height: 11.6rem !important;
    padding: 2.25rem 2.05rem 1.45rem !important;
  }
  .wpi-event-page .wpi-event-before-item::before {
    left: 1rem !important;
    top: 1.35rem !important;
    width: .62rem !important;
    height: 2.7rem !important;
  }
  .wpi-event-page .wpi-event-before-item::after {
    left: 1.58rem !important;
    right: 1.25rem !important;
    top: 1.28rem !important;
    height: 2.95rem !important;
  }
  .wpi-event-page .wpi-event-before-item h3 {
    min-height: 2.65rem !important;
    margin: 0 0 .85rem 0 !important;
    padding-left: 1.25rem !important;
    align-items: center !important;
  }
  .wpi-event-page .wpi-event-before-item p {
    padding-left: 0 !important;
  }
}

@media (max-width: 1180px) {
  .wpi-event-page .wpi-event-form-head,
  .wpi-event-page .wpi-event-card > h1,
  .wpi-event-page .wpi-event-card > h2,
  .wpi-event-page .wpi-event-card > p,
  .wpi-event-page .wpi-event-form > h1,
  .wpi-event-page .wpi-event-form > h2,
  .wpi-event-page .wpi-event-form > p:first-of-type {
    display: none !important;
  }
}


/* v1.0.70 Final visual correction
   Fixes Events H3 alignment, hero copy clipping, missing event icon, and restores the stronger homepage H1 scale. */
.wpi-event-page .wpi-event-hero-copy p,
.wpi-event-page .wpi-event-hero-copy p * {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
}
.wpi-event-page .wpi-event-hero-copy p {
  width: min(100%, 48rem) !important;
  max-width: 48rem !important;
  line-height: 1.52 !important;
  text-wrap: balance !important;
}

.wpi-event-page .wpi-event-help-mark {
  width: 8.2rem !important;
  height: 6.2rem !important;
  margin: 0 auto 1.2rem !important;
  font-size: 0 !important;
  line-height: 0 !important;
  opacity: 1 !important;
  display: block !important;
  position: relative !important;
}
.wpi-event-page .wpi-event-help-mark::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  background-image: url("data:image/svg+xml,%3Csvg width='118' height='90' viewBox='0 0 118 90' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M59 7C68 20 64 29 73 41C80 31 80 21 75 11C93 25 102 43 100 60C97 79 79 88 59 88C39 88 21 79 18 60C16 43 25 28 39 18C37 31 43 39 51 45C47 30 50 18 59 7Z' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round' opacity='.75'/%3E%3Cpath d='M42 62C48 68 56 68 61 62C66 68 75 68 81 62' stroke='white' stroke-width='4' stroke-linecap='round' opacity='.95'/%3E%3Cpath d='M44 53L53 57M75 57L84 53' stroke='white' stroke-width='4' stroke-linecap='round' opacity='.95'/%3E%3C/svg%3E") !important;
}

.wpi-event-page .wpi-event-before-item h3 {
  min-height: 2.95rem !important;
  margin-top: 0 !important;
  margin-bottom: 1.05rem !important;
  display: flex !important;
  align-items: center !important;
  line-height: 1.12 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

@media (min-width: 1181px) {
  .wpi-event-page .wpi-event-before-item {
    padding-top: 1.28rem !important;
  }
  .wpi-event-page .wpi-event-before-item::before {
    top: 1.43rem !important;
    height: 2.85rem !important;
  }
  .wpi-event-page .wpi-event-before-item::after {
    top: 1.32rem !important;
    height: 3.05rem !important;
  }
  .wpi-event-page .wpi-event-before-item h3 {
    padding-left: 1.55rem !important;
    font-size: 1.16rem !important;
  }
  .wpi-event-page .wpi-event-before-item p {
    margin-top: .35rem !important;
  }

  main.site-page:not(.about-page) .hero-section .hero-content h1 {
    width: min(100%, 69rem) !important;
    max-width: 69rem !important;
    font-size: clamp(5.1rem, 5.15vw, 6.15rem) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.015em !important;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-event-page .wpi-event-before-item h3 {
    min-height: 2.9rem !important;
    padding-left: 1.35rem !important;
  }
  .wpi-event-page .wpi-event-help-mark {
    width: 7.2rem !important;
    height: 5.4rem !important;
  }
  main.site-page:not(.about-page) .hero-section .hero-content h1 {
    width: min(100%, 60rem) !important;
    max-width: 60rem !important;
    font-size: clamp(4.15rem, 7vw, 5.25rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.012em !important;
  }
}

@media (max-width: 767px) {
  .wpi-event-page .wpi-event-hero-copy p {
    width: min(100%, 26rem) !important;
    max-width: 26rem !important;
    font-size: 1.1rem !important;
    line-height: 1.48 !important;
  }
  .wpi-event-page .wpi-event-before-item h3 {
    min-height: 2.75rem !important;
    padding-left: 1.4rem !important;
    margin-bottom: .75rem !important;
  }
  .wpi-event-page .wpi-event-before-item::before {
    top: 1.05rem !important;
    height: 2.6rem !important;
  }
  .wpi-event-page .wpi-event-before-item::after {
    top: .98rem !important;
    height: 2.75rem !important;
  }
  .wpi-event-page .wpi-event-help-mark {
    width: 6.2rem !important;
    height: 4.8rem !important;
  }
  main.site-page:not(.about-page) .hero-section .hero-content h1 {
    width: min(100%, 31rem) !important;
    max-width: 31rem !important;
    font-size: clamp(3.15rem, 12.5vw, 4.65rem) !important;
    line-height: .98 !important;
    letter-spacing: -0.01em !important;
  }
}


/* v1.0.71 final visual corrections
   - uses the exact event help icon extracted from the provided Figma screenshot
   - prevents Events hero copy clipping
   - centers Before You Register card H3 text vertically
   - restores homepage hero H1 to the earlier approved scale */
.wpi-event-page .wpi-event-hero-copy p,
.wpi-event-page .wpi-event-hero-copy p span {
  display: inline !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
  vertical-align: baseline !important;
}
.wpi-event-page .wpi-event-hero-copy p {
  display: block !important;
  width: min(100%, 47rem) !important;
  max-width: 47rem !important;
  margin: 1.45rem auto 0 !important;
  line-height: 1.62 !important;
  padding-bottom: .45rem !important;
  text-align: center !important;
  text-wrap: balance !important;
}

.wpi-event-page .wpi-event-help-mark {
  width: 9.6rem !important;
  height: 7.35rem !important;
  margin: 0 auto .95rem !important;
  display: block !important;
  font-size: 0 !important;
  line-height: 0 !important;
  opacity: 1 !important;
  background: url("assets/images/events/event-help-icon.png") center / contain no-repeat !important;
}
.wpi-event-page .wpi-event-help-mark::before {
  content: none !important;
  display: none !important;
  background-image: none !important;
}

.wpi-event-page .wpi-event-before-item {
  position: relative !important;
}
.wpi-event-page .wpi-event-before-item::before {
  top: 1.28rem !important;
  height: 2.82rem !important;
  z-index: 1 !important;
}
.wpi-event-page .wpi-event-before-item::after {
  top: 1.18rem !important;
  height: 3.02rem !important;
  z-index: 0 !important;
}
.wpi-event-page .wpi-event-before-item h3 {
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  align-items: center !important;
  min-height: 3.02rem !important;
  height: 3.02rem !important;
  margin: 0 0 .8rem !important;
  padding: 0 1rem 0 1.6rem !important;
  line-height: 1.08 !important;
  text-align: left !important;
}
.wpi-event-page .wpi-event-before-item p {
  position: relative !important;
  z-index: 2 !important;
  margin-top: .55rem !important;
}

@media (min-width: 1181px) {
  .wpi-event-page .wpi-event-hero-copy p {
    font-size: 1.34rem !important;
    max-width: 49rem !important;
    line-height: 1.58 !important;
  }
  main.site-page:not(.about-page) .hero-section .hero-content h1,
  body.home .hero-section .hero-content h1,
  .home .hero-section .hero-content h1 {
    width: 64.35rem !important;
    max-width: 100% !important;
    font-size: 4.98rem !important;
    line-height: 1.13 !important;
    letter-spacing: 0 !important;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-event-page .wpi-event-hero-copy p {
    width: min(100%, 43rem) !important;
    max-width: 43rem !important;
    font-size: 1.22rem !important;
    line-height: 1.56 !important;
  }
  .wpi-event-page .wpi-event-help-mark {
    width: 8.2rem !important;
    height: 6.35rem !important;
  }
  .wpi-event-page .wpi-event-before-item h3 {
    min-height: 3rem !important;
    height: 3rem !important;
    padding-left: 1.55rem !important;
  }
  main.site-page:not(.about-page) .hero-section .hero-content h1,
  body.home .hero-section .hero-content h1,
  .home .hero-section .hero-content h1 {
    width: 58rem !important;
    max-width: 100% !important;
    font-size: 4.2rem !important;
    line-height: 1.13 !important;
    letter-spacing: 0 !important;
  }
}

@media (max-width: 767px) {
  .wpi-event-page .wpi-event-hero-copy p {
    width: min(100%, 28rem) !important;
    max-width: 28rem !important;
    font-size: 1.08rem !important;
    line-height: 1.55 !important;
    padding-bottom: .65rem !important;
  }
  .wpi-event-page .wpi-event-help-mark {
    width: 6.9rem !important;
    height: 5.35rem !important;
    margin-bottom: .8rem !important;
  }
  .wpi-event-page .wpi-event-before-item::before {
    top: 1.05rem !important;
  }
  .wpi-event-page .wpi-event-before-item::after {
    top: .95rem !important;
  }
  .wpi-event-page .wpi-event-before-item h3 {
    min-height: 2.9rem !important;
    height: 2.9rem !important;
    padding-left: 1.55rem !important;
  }
  main.site-page:not(.about-page) .hero-section .hero-content h1,
  body.home .hero-section .hero-content h1,
  .home .hero-section .hero-content h1 {
    width: 100% !important;
    max-width: 100% !important;
    font-size: clamp(3.3rem, 10vw, 4.5rem) !important;
    line-height: 1.02 !important;
    letter-spacing: 0 !important;
  }
}


/* v1.0.72 Events mobile balance + label asterisk correction
   - increases global mobile logo size
   - improves Events hero mobile heading/subtitle balance and prevents copy from being covered
   - keeps required asterisk on the same line as the label
   - restores homepage hero H1 to a slightly smaller approved scale */
.wpi-event-form .wpi-event-label-text {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: .22rem !important;
  width: fit-content !important;
  max-width: 100% !important;
  color: #0a0a0a !important;
  line-height: 1.25 !important;
  white-space: normal !important;
}
.wpi-event-form .wpi-event-label-text em {
  color: #dc2626 !important;
  font-style: normal !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  display: inline-block !important;
  transform: translateY(-.02em);
}
.wpi-event-form label > span.wpi-event-label-text {
  color: #0a0a0a !important;
}

@media (min-width: 1181px) {
  main.site-page:not(.about-page) .hero-section .hero-content h1,
  body.home .hero-section .hero-content h1,
  .home .hero-section .hero-content h1 {
    width: min(100%, 63rem) !important;
    max-width: 63rem !important;
    font-size: clamp(4.35rem, 4.55vw, 4.72rem) !important;
    line-height: 1.12 !important;
    letter-spacing: 0 !important;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  main.site-page:not(.about-page) .hero-section .hero-content h1,
  body.home .hero-section .hero-content h1,
  .home .hero-section .hero-content h1 {
    width: min(100%, 54rem) !important;
    max-width: 54rem !important;
    font-size: clamp(3.65rem, 6.35vw, 4.55rem) !important;
    line-height: 1.1 !important;
    letter-spacing: 0 !important;
  }
}

@media (max-width: 767px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header.container-wide {
    grid-template-columns: minmax(9.8rem, 10.8rem) 1fr !important;
    column-gap: 1.2rem !important;
    width: min(calc(100% - 1.25rem), 44rem) !important;
    align-items: center !important;
  }
  .wpi-global-header .site-logo,
  .site-header.wpi-global-header .site-logo {
    width: 10.65rem !important;
    max-width: 10.65rem !important;
    min-width: 10.65rem !important;
    justify-self: start !important;
  }
  .wpi-global-header .site-logo img,
  .site-header.wpi-global-header .site-logo img {
    width: 10.65rem !important;
    max-width: 10.65rem !important;
    max-height: 4.65rem !important;
    height: auto !important;
    object-fit: contain !important;
  }
  .wpi-event-page .wpi-event-hero {
    min-height: 39.25rem !important;
    overflow: visible !important;
    padding-bottom: 7.25rem !important;
  }
  .wpi-event-page .wpi-event-hero::before {
    height: 31rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    padding: 3.75rem 1.15rem 0 !important;
    width: min(100% - 1.5rem, 28rem) !important;
    max-width: 28rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy .eyebrow {
    margin-bottom: 1.25rem !important;
    padding: .58rem 1.25rem !important;
    font-size: .82rem !important;
    line-height: 1.12 !important;
    white-space: nowrap !important;
  }
  .wpi-event-page .wpi-event-hero-copy h1 {
    max-width: 25rem !important;
    margin-inline: auto !important;
    font-size: clamp(2.65rem, 10.9vw, 3.55rem) !important;
    line-height: 1.08 !important;
    letter-spacing: .004em !important;
    text-align: center !important;
    text-wrap: balance !important;
  }
  .wpi-event-page .wpi-event-hero-copy p,
  .wpi-event-page .wpi-event-hero-copy p span {
    display: inline !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    white-space: normal !important;
  }
  .wpi-event-page .wpi-event-hero-copy p {
    display: block !important;
    width: min(100%, 24.5rem) !important;
    max-width: 24.5rem !important;
    margin: 1.05rem auto 0 !important;
    padding-bottom: 1.35rem !important;
    font-size: 1.03rem !important;
    line-height: 1.62 !important;
    text-align: center !important;
    text-wrap: balance !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -6.4rem !important;
    padding-bottom: 4.25rem !important;
  }
  .wpi-event-page .wpi-event-card {
    width: min(calc(100% - 1.1rem), 42rem) !important;
    padding-top: 2.05rem !important;
  }
  .wpi-event-page .wpi-event-form label {
    gap: .58rem !important;
  }
  .wpi-event-page .wpi-event-form .wpi-event-label-text {
    font-size: 1rem !important;
    line-height: 1.25 !important;
  }
  .wpi-event-page .wpi-event-before-top h2 {
    text-align: center !important;
  }
  .wpi-event-page .wpi-event-before-top > div {
    text-align: center !important;
  }
  main.site-page:not(.about-page) .hero-section .hero-content h1,
  body.home .hero-section .hero-content h1,
  .home .hero-section .hero-content h1 {
    width: 100% !important;
    max-width: 30rem !important;
    font-size: clamp(2.95rem, 9.25vw, 4.05rem) !important;
    line-height: 1.02 !important;
    letter-spacing: 0 !important;
  }
}

@media (max-width: 390px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header.container-wide {
    grid-template-columns: minmax(9.35rem, 9.85rem) 1fr !important;
    width: calc(100% - 1rem) !important;
    column-gap: 1rem !important;
  }
  .wpi-global-header .site-logo,
  .wpi-global-header .site-logo img,
  .site-header.wpi-global-header .site-logo,
  .site-header.wpi-global-header .site-logo img {
    width: 9.75rem !important;
    max-width: 9.75rem !important;
    min-width: 9.75rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy h1 {
    font-size: clamp(2.45rem, 10.4vw, 3.25rem) !important;
  }
  .wpi-event-page .wpi-event-hero-copy p {
    font-size: .98rem !important;
    line-height: 1.58 !important;
  }
  body.home .hero-section .hero-content h1,
  .home .hero-section .hero-content h1 {
    font-size: clamp(2.75rem, 9vw, 3.75rem) !important;
  }
}


/* v1.0.73 Events mobile subtitle clearance fix
   Keeps the hero subtitle fully visible before the white form card begins. */
@media (max-width: 767px) {
  .wpi-event-page .wpi-event-hero {
    min-height: 42rem !important;
    padding-bottom: 10.5rem !important;
    overflow: visible !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    position: relative !important;
    z-index: 30 !important;
    padding-bottom: 0 !important;
  }
  .wpi-event-page .wpi-event-hero-copy p,
  .wpi-event-page .wpi-event-hero-copy p span {
    display: inline !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    white-space: normal !important;
  }
  .wpi-event-page .wpi-event-hero-copy p {
    display: block !important;
    width: min(100%, 25.75rem) !important;
    max-width: 25.75rem !important;
    margin: 1.15rem auto 0 !important;
    padding: 0 0 2.25rem !important;
    font-size: 1.02rem !important;
    line-height: 1.62 !important;
    position: relative !important;
    z-index: 31 !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -2.15rem !important;
    position: relative !important;
    z-index: 20 !important;
    padding-top: 0 !important;
  }
  .wpi-event-page .wpi-event-card {
    position: relative !important;
    z-index: 20 !important;
  }
}

@media (max-width: 390px) {
  .wpi-event-page .wpi-event-hero {
    min-height: 43rem !important;
    padding-bottom: 11rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy p {
    max-width: 24rem !important;
    padding-bottom: 2.5rem !important;
    font-size: .96rem !important;
    line-height: 1.6 !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -1.65rem !important;
  }
}


/* v1.0.74 Events subtitle hard stop fix
   Removes mobile overlap entirely so the subtitle cannot sit under the white form card. */
@media (max-width: 767px) {
  .wpi-event-page .wpi-event-hero {
    min-height: auto !important;
    height: auto !important;
    overflow: visible !important;
    padding-bottom: 4.75rem !important;
  }
  .wpi-event-page .wpi-event-hero::before {
    inset: 4.4rem 0 auto !important;
    height: calc(100% + 2rem) !important;
    min-height: 35rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: min(100% - 1.25rem, 31rem) !important;
    max-width: 31rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: 3.75rem 0 0 !important;
    position: relative !important;
    z-index: 40 !important;
  }
  .wpi-event-page .wpi-event-hero-copy h1 {
    margin: 0 auto !important;
    max-width: 28rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy p,
  .wpi-event-page .wpi-event-hero-copy p span {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    white-space: normal !important;
  }
  .wpi-event-page .wpi-event-hero-copy p {
    display: block !important;
    width: min(100%, 28rem) !important;
    max-width: 28rem !important;
    margin: 1.2rem auto 0 !important;
    padding: 0 !important;
    font-size: 1rem !important;
    line-height: 1.75 !important;
    text-align: center !important;
    text-wrap: balance !important;
    position: relative !important;
    z-index: 41 !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: 0 !important;
    padding-top: 0 !important;
    position: relative !important;
    z-index: 10 !important;
  }
  .wpi-event-page .wpi-event-card {
    margin-top: 0 !important;
  }
}

@media (max-width: 390px) {
  .wpi-event-page .wpi-event-hero {
    padding-bottom: 5.25rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    width: min(100% - 1rem, 28rem) !important;
    padding-top: 3.35rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy p {
    max-width: 25.5rem !important;
    font-size: .95rem !important;
    line-height: 1.72 !important;
  }
}

/* v1.0.75 Events mobile/tablet hero real stacking fix
   Hard stops the form card from overlapping the hero subtitle on mobile/tablet. */
@media (max-width: 1180px) {
  .wpi-event-page .wpi-event-hero {
    min-height: auto !important;
    height: auto !important;
    overflow: visible !important;
    padding-bottom: 3.75rem !important;
  }
  .wpi-event-page .wpi-event-hero::before {
    inset: 4.4rem 0 auto !important;
    height: 100% !important;
    min-height: 34rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    position: relative !important;
    z-index: 40 !important;
    margin: 0 auto !important;
    padding-bottom: 0 !important;
    overflow: visible !important;
  }
  .wpi-event-page .wpi-event-hero-copy p,
  .wpi-event-page .wpi-event-hero-copy p span {
    display: inline !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    white-space: normal !important;
    word-break: normal !important;
  }
  .wpi-event-page .wpi-event-hero-copy p {
    display: block !important;
    position: relative !important;
    z-index: 41 !important;
    width: min(100%, 31rem) !important;
    max-width: 31rem !important;
    margin: 1.25rem auto 0 !important;
    padding: 0 !important;
    line-height: 1.72 !important;
    text-align: center !important;
    text-wrap: balance !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: 0 !important;
    padding-top: 0 !important;
    clear: both !important;
    position: relative !important;
    z-index: 10 !important;
  }
  .wpi-event-page .wpi-event-card {
    margin-top: 0 !important;
  }
}

@media (max-width: 767px) {
  .wpi-event-page .wpi-event-hero {
    padding-bottom: 3.25rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    width: min(100% - 1.25rem, 31rem) !important;
    max-width: 31rem !important;
    padding-top: 3.65rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy p {
    width: min(100%, 28rem) !important;
    max-width: 28rem !important;
    font-size: 1.02rem !important;
    line-height: 1.68 !important;
  }
}

@media (max-width: 390px) {
  .wpi-event-page .wpi-event-hero {
    padding-bottom: 3.6rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy p {
    max-width: 25.5rem !important;
    font-size: .96rem !important;
    line-height: 1.66 !important;
  }
}


/* v1.0.79 Revert v1.0.78 and only fix Events hero paragraph clearance
   Keeps the pre-v1.0.78 Events layout/markup, but gives the mobile/tablet subtitle enough height and spacing so it cannot be visually clipped by the form card. */
.wpi-event-page .wpi-event-hero-copy > p,
.wpi-event-page .wpi-event-hero-copy > p span {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
  word-break: normal !important;
}

.wpi-event-page .wpi-event-hero-copy > p {
  display: block !important;
  position: relative !important;
  z-index: 55 !important;
  text-align: center !important;
  text-wrap: balance !important;
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-event-page .wpi-event-hero {
    padding-bottom: 5.75rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy > p {
    width: min(100%, 44rem) !important;
    max-width: 44rem !important;
    min-height: 4.2em !important;
    margin: 1.25rem auto 0 !important;
    padding-bottom: 1.25rem !important;
    font-size: 1.18rem !important;
    line-height: 1.62 !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -1.5rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-event-page .wpi-event-hero {
    padding-bottom: 6.75rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy > p {
    width: min(100%, 27rem) !important;
    max-width: 27rem !important;
    min-height: 5.4em !important;
    margin: 1.1rem auto 0 !important;
    padding-bottom: 1.65rem !important;
    font-size: 1rem !important;
    line-height: 1.62 !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -1.15rem !important;
  }
}

@media (max-width: 390px) {
  .wpi-event-page .wpi-event-hero {
    padding-bottom: 7.5rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy > p {
    width: min(100%, 24.5rem) !important;
    max-width: 24.5rem !important;
    min-height: 6.2em !important;
    padding-bottom: 1.9rem !important;
    font-size: .95rem !important;
    line-height: 1.62 !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -.75rem !important;
  }
}


/* v1.0.80 Events spacing correction
   Fixes desktop hero/header clearance and removes excessive mobile bottom padding without changing backend/form behavior. */
@media (min-width: 1181px) {
  .wpi-event-page .wpi-event-hero {
    min-height: 42.5rem !important;
    height: auto !important;
    padding-bottom: 1.25rem !important;
    overflow: visible !important;
  }
  .wpi-event-page .wpi-event-hero .wpi-global-header {
    margin-top: 2.35rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    padding-top: 3.4rem !important;
    overflow: visible !important;
  }
  .wpi-event-page .wpi-event-hero-copy > p,
  .wpi-event-page .wpi-event-hero-copy > p span {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    white-space: normal !important;
  }
  .wpi-event-page .wpi-event-hero-copy > p {
    width: min(100%, 52rem) !important;
    max-width: 52rem !important;
    margin: 1.25rem auto 0 !important;
    padding: 0 !important;
    line-height: 1.58 !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -2.75rem !important;
    padding-top: 0 !important;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-event-page .wpi-event-hero {
    height: auto !important;
    min-height: auto !important;
    padding-bottom: 2.25rem !important;
    overflow: visible !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    overflow: visible !important;
  }
  .wpi-event-page .wpi-event-hero-copy > p {
    min-height: 0 !important;
    padding-bottom: .5rem !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }
}

@media (max-width: 767px) {
  .wpi-event-page .wpi-event-hero {
    height: auto !important;
    min-height: auto !important;
    padding-bottom: 2.1rem !important;
    overflow: visible !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    overflow: visible !important;
    padding-bottom: 0 !important;
  }
  .wpi-event-page .wpi-event-hero-copy > p,
  .wpi-event-page .wpi-event-hero-copy > p span {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    white-space: normal !important;
  }
  .wpi-event-page .wpi-event-hero-copy > p {
    width: min(100%, 26rem) !important;
    max-width: 26rem !important;
    min-height: 0 !important;
    margin: 1rem auto 0 !important;
    padding: 0 .15rem .45rem !important;
    line-height: 1.6 !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 3.25rem !important;
  }
}

@media (max-width: 390px) {
  .wpi-event-page .wpi-event-hero {
    padding-bottom: 2.35rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy > p {
    width: min(100%, 24rem) !important;
    max-width: 24rem !important;
    padding-bottom: .55rem !important;
  }
}

/* v1.0.81 Global header top padding
   Adds the approved top breathing room to the shared/global header system across all designed pages. */
.wpi-global-header.site-header,
.site-header.wpi-global-header.container-wide {
  padding-top: 2.35rem !important;
  box-sizing: border-box !important;
}

/* Keep the Events header using the same global top padding instead of a page-only margin patch. */
.wpi-event-page .wpi-event-hero .wpi-global-header {
  margin-top: 0 !important;
  padding-top: 2.35rem !important;
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header.container-wide {
    padding-top: 1.85rem !important;
  }
  .wpi-event-page .wpi-event-hero .wpi-global-header {
    margin-top: 0 !important;
    padding-top: 1.85rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header.container-wide {
    padding-top: 1.25rem !important;
  }
  .wpi-event-page .wpi-event-hero .wpi-global-header {
    margin-top: 0 !important;
    padding-top: 1.25rem !important;
  }
}


/* v1.0.82 Global mobile menu full-width + high z-index */
@media (max-width: 767px) {
  html body.menu-open,
  html body.wpi-menu-open {
    overflow-x: hidden !important;
  }

  .wpi-global-header.site-header,
  .site-header.wpi-global-header,
  .site-header.wpi-global-header.container-wide {
    position: relative !important;
    z-index: 2147483000 !important;
    overflow: visible !important;
  }

  .wpi-global-header .mobile-menu-toggle,
  .site-header.wpi-global-header .mobile-menu-toggle {
    z-index: 2147483002 !important;
  }

  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav {
    position: absolute !important;
    top: calc(100% + .75rem) !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;
    z-index: 2147483001 !important;
    box-sizing: border-box !important;
    padding: 1rem clamp(1rem, 5vw, 1.5rem) 1.25rem !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-radius: 0 0 1.25rem 1.25rem !important;
    background: rgba(0,0,0,.985) !important;
    box-shadow: 0 2rem 4rem rgba(0,0,0,.65) !important;
  }

  body.menu-open .wpi-global-header .main-nav,
  body.wpi-menu-open .wpi-global-header .main-nav,
  body.menu-open .site-header.wpi-global-header .main-nav,
  body.wpi-menu-open .site-header.wpi-global-header .main-nav {
    display: flex !important;
  }

  .wpi-global-header .main-nav a,
  .site-header.wpi-global-header .main-nav a {
    width: 100% !important;
    max-width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }

  .wpi-global-header .main-nav .mobile-nav-contact,
  .site-header.wpi-global-header .main-nav .mobile-nav-contact {
    width: 100% !important;
    max-width: 100% !important;
    justify-content: center !important;
  }
}

/* v1.0.83 WooCommerce Shop page */
.wpi-shop-page{background:#fafafa;color:#111;overflow:hidden}.wpi-shop-page .btn-light{background:#fff;color:#000;border-color:#fff;min-width:24rem}.wpi-shop-hero{position:relative;min-height:45.75rem;background:#000;color:#fff;overflow:hidden}.wpi-shop-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(48,48,48,.72) 0%,rgba(0,0,0,.05) 42%,#000 96%),radial-gradient(ellipse at 9% 31%,rgba(210,4,4,.35) 0 5rem,transparent 9rem),radial-gradient(ellipse at 95% 78%,rgba(210,4,4,.45) 0 8rem,transparent 12rem);opacity:.95}.wpi-shop-hero>*{position:relative;z-index:2}.wpi-shop-announcement{position:relative;z-index:8}.wpi-shop-hero .wpi-global-header{position:relative;z-index:9}.wpi-shop-hero-copy{padding-top:4.8rem;text-align:center;display:flex;flex-direction:column;align-items:center}.wpi-shop-hero-copy .eyebrow{margin-bottom:2.5rem;background:rgba(0,0,0,.18)}.wpi-shop-hero-copy h1{margin:0;max-width:55rem;font-family:var(--display);font-size:clamp(3.4rem,4.1vw,4.1rem);font-weight:700;line-height:.94;letter-spacing:-.045em;text-transform:uppercase;color:#fff}.wpi-shop-hero-copy p{margin:1.75rem auto 0;max-width:47.5rem;font-size:1.3rem;line-height:1.5;color:rgba(255,255,255,.9)}.wpi-shop-catalog{background:#fafafa;padding:5.55rem 0 5rem}.wpi-shop-layout{display:grid;grid-template-columns:13rem minmax(0,1fr);gap:5rem;align-items:start}.wpi-shop-sidebar{position:sticky;top:2rem;min-width:0;border-right:1px solid rgba(0,0,0,.45);padding-right:2.15rem;font-family:var(--body)}.wpi-shop-sidebar h2{margin:0 0 1.8rem;font-family:var(--body);font-size:1.5rem;line-height:1.3;font-weight:500;color:#111}.wpi-shop-filter-group{display:grid;gap:.5rem;margin-bottom:2rem}.wpi-shop-filter-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:1.9rem;color:#111;font-size:1rem;line-height:1.45}.wpi-shop-filter-link span{display:block}.wpi-shop-filter-link small{font-size:.82em;color:rgba(0,0,0,.55)}.wpi-shop-filter-link i{width:1.25rem;height:1.25rem;flex:0 0 auto;border:1px solid #707072;border-radius:.25rem;background:#fff}.wpi-shop-filter-link:hover span,.wpi-shop-filter-link.is-active span{font-weight:800}.wpi-shop-filter-link.is-active i{background:#111;box-shadow:inset 0 0 0 .2rem #fff}.wpi-shop-accordion{border-top:1px solid #e5e5e5}.wpi-shop-accordion:last-of-type{border-bottom:1px solid #e5e5e5}.wpi-shop-accordion summary{list-style:none;cursor:pointer;min-height:3.15rem;display:flex;align-items:center;justify-content:space-between;font-size:.94rem;font-weight:700;color:#111}.wpi-shop-accordion summary::-webkit-details-marker{display:none}.wpi-shop-accordion summary::after{content:"";width:.6rem;height:.6rem;border-right:2px solid #111;border-bottom:2px solid #111;transform:rotate(45deg);transition:transform .2s ease}.wpi-shop-accordion[open] summary::after{transform:rotate(-135deg)}.wpi-shop-accordion div{padding:.15rem 0 1rem;display:grid;gap:.45rem}.wpi-shop-accordion p{margin:.3rem 0;color:rgba(0,0,0,.58);font-size:.9rem;line-height:1.35}.wpi-shop-clear-filter{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:#d20404;font-weight:800}.wpi-shop-main{min-width:0}.wpi-shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:1.1rem;row-gap:3.4rem}.wpi-shop-product-card{min-width:0}.wpi-shop-product-link{display:block;color:#000}.wpi-shop-product-media{position:relative;margin:0;overflow:hidden;min-height:20.15rem;border-radius:1.95rem;background:#f6f6f8;border:1px solid transparent;display:flex;align-items:center;justify-content:center}.wpi-shop-product-media img{width:68%;height:18rem;object-fit:contain;transition:transform .35s ease}.wpi-shop-product-card:hover .wpi-shop-product-media{border-color:#171717}.wpi-shop-product-card:hover .wpi-shop-product-media img{transform:scale(1.035)}.wpi-shop-view-pill{position:absolute;left:1.6rem;right:1.6rem;bottom:1.28rem;min-height:4.35rem;border-radius:999px;background:#d20404;color:#fff;border:1px solid #171717;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1.25rem 0.8rem 1.9rem;opacity:0;transform:translateY(.7rem);transition:opacity .25s ease,transform .25s ease}.wpi-shop-product-card:hover .wpi-shop-view-pill,.wpi-shop-product-card:focus-within .wpi-shop-view-pill{opacity:1;transform:translateY(0)}.wpi-shop-view-pill b{font-family:var(--body);font-size:1.06rem;text-transform:uppercase;letter-spacing:.02em}.wpi-shop-view-pill i{width:2.8rem;height:2.8rem;border-radius:50%;background:#fff;color:#000;display:inline-flex;align-items:center;justify-content:center;font-style:normal;font-size:1.15rem;font-weight:800}.wpi-shop-product-info{padding:.4rem 1.05rem 0}.wpi-shop-product-info h3{margin:0 0 .15rem;font-family:var(--body);font-size:1.24rem;font-weight:800;line-height:1.15;color:#000}.wpi-shop-product-info p{margin:0 0 .55rem;font-size:1.12rem;line-height:1.22;color:#111}.wpi-shop-product-info strong,.wpi-shop-product-info .woocommerce-Price-amount{display:block;font-family:var(--display);font-size:1.1rem;font-weight:600;line-height:1.2;color:#000}.wpi-shop-placeholder-hoodie{position:relative;width:11rem;height:14rem;background:linear-gradient(135deg,#1e1e1e,#090909);border-radius:2.6rem 2.6rem 1rem 1rem;box-shadow:inset 0 0 0 .15rem rgba(255,255,255,.05)}.wpi-shop-placeholder-hoodie::before,.wpi-shop-placeholder-hoodie::after{content:"";position:absolute;top:2rem;width:3.2rem;height:8.5rem;background:#141414;border-radius:2rem}.wpi-shop-placeholder-hoodie::before{left:-2.1rem;transform:rotate(14deg)}.wpi-shop-placeholder-hoodie::after{right:-2.1rem;transform:rotate(-14deg)}.wpi-shop-pagination{margin-top:3rem;display:flex;align-items:center;justify-content:center;gap:.5rem}.wpi-shop-pagination .page-numbers{min-width:2.5rem;min-height:2.5rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.18);border-radius:50%;font-weight:700}.wpi-shop-pagination .current{background:#000;color:#fff}.wpi-shop-cta{background:#000;color:#fff;border-top:.95rem solid #fff;border-bottom:.95rem solid #fff}.wpi-shop-cta-inner{min-height:43rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:5rem 0}.wpi-shop-cta-mark{width:9.3rem;height:7rem;display:flex;align-items:center;justify-content:center;color:#d20404;font-size:5.6rem;line-height:1;margin-bottom:.25rem}.wpi-shop-cta h2{margin:0 0 1.5rem;font-family:var(--display);font-size:clamp(3rem,3.7vw,4.05rem);line-height:.95;text-transform:uppercase;letter-spacing:.02em}.wpi-shop-cta h2 span{color:#d20404}.wpi-shop-cta div{max-width:40rem;color:rgba(255,255,255,.88);font-size:1.22rem;line-height:1.5}.wpi-shop-cta div p{margin:.35rem 0}.wpi-shop-cta div strong{color:#fff;font-size:1.4rem}.wpi-shop-cta .btn{margin-top:1.6rem;min-width:24rem;background:#fff;color:#000;border-color:#fff}.wpi-shop-page .wpi-global-faq{background:#fafafa;padding:4rem 0}.wpi-shop-page .wpi-global-faq-panel{background:#fff}.woocommerce .wpi-shop-page .wpi-shop-product-info .price del{opacity:.55;margin-right:.3rem}.woocommerce .wpi-shop-page .wpi-shop-product-info .price ins{text-decoration:none}.standard-page.woocommerce{padding:6rem 0}
@media (max-width:1024px){.wpi-shop-layout{grid-template-columns:1fr;gap:2.5rem}.wpi-shop-sidebar{position:relative;top:auto;border-right:0;border-bottom:1px solid rgba(0,0,0,.18);padding:0 0 1.5rem}.wpi-shop-filter-group{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.wpi-shop-filter-link{border:1px solid rgba(0,0,0,.16);border-radius:.7rem;padding:.7rem .8rem}.wpi-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:2.8rem}.wpi-shop-product-media{min-height:22rem}.wpi-shop-view-pill{opacity:1;transform:none}}
@media (max-width:767px){.wpi-shop-hero{min-height:auto;padding-bottom:5rem}.wpi-shop-hero-copy{padding-top:4rem}.wpi-shop-hero-copy .eyebrow{margin-bottom:1.6rem}.wpi-shop-hero-copy h1{font-size:clamp(3.4rem,12vw,4.8rem);line-height:.92;max-width:33rem}.wpi-shop-hero-copy p{font-size:1.38rem;line-height:1.45;max-width:31rem}.wpi-shop-catalog{padding:3.2rem 0 3.5rem}.wpi-shop-filter-group{display:flex;gap:.7rem;overflow-x:auto;padding-bottom:.4rem;scroll-snap-type:x proximity}.wpi-shop-filter-link{min-width:max-content;scroll-snap-align:start}.wpi-shop-sidebar h2{font-size:1.45rem;margin-bottom:1.1rem}.wpi-shop-grid{grid-template-columns:1fr;row-gap:2.4rem}.wpi-shop-product-media{min-height:24rem;border-radius:1.5rem}.wpi-shop-product-info h3{font-size:1.45rem}.wpi-shop-product-info p{font-size:1.25rem}.wpi-shop-product-info strong,.wpi-shop-product-info .woocommerce-Price-amount{font-size:1.25rem}.wpi-shop-cta-inner{min-height:auto;padding:4.2rem 0}.wpi-shop-cta-mark{height:5.5rem;font-size:4.2rem}.wpi-shop-cta h2{font-size:3.1rem}.wpi-shop-cta div{font-size:1.32rem}.wpi-shop-cta .btn{min-width:0;width:auto}.wpi-shop-page .wpi-global-faq{padding:2.7rem 0 3.2rem}}


/* v1.0.84 Shop page full mobile/tablet QA pass */
.wpi-shop-page,
.wpi-shop-page * {
  box-sizing: border-box;
}

.wpi-shop-page {
  width: 100%;
  overflow-x: clip;
}

.wpi-shop-page img,
.wpi-shop-page video {
  max-width: 100%;
}

.wpi-shop-page .wpi-shop-layout,
.wpi-shop-page .wpi-shop-main,
.wpi-shop-page .wpi-shop-grid,
.wpi-shop-page .wpi-shop-product-card,
.wpi-shop-page .wpi-shop-product-link,
.wpi-shop-page .wpi-shop-product-media,
.wpi-shop-page .wpi-shop-product-info {
  min-width: 0;
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-shop-hero {
    min-height: auto !important;
    padding-bottom: 5.5rem !important;
  }

  .wpi-shop-hero-copy {
    padding-top: 4.25rem !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
  }

  .wpi-shop-hero-copy h1 {
    max-width: 48rem !important;
    font-size: clamp(3.6rem, 6vw, 4.6rem) !important;
    line-height: .96 !important;
  }

  .wpi-shop-layout {
    grid-template-columns: 1fr !important;
    gap: 3rem !important;
  }

  .wpi-shop-sidebar {
    width: 100% !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(0,0,0,.18) !important;
    padding: 0 0 1.75rem !important;
  }

  .wpi-shop-filter-group {
    display: flex !important;
    gap: .75rem !important;
    overflow-x: auto !important;
    padding-bottom: .65rem !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .wpi-shop-filter-link {
    flex: 0 0 auto !important;
    min-width: max-content !important;
  }

  .wpi-shop-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 2.25rem 1.35rem !important;
  }

  .wpi-shop-product-media {
    min-height: 24rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-shop-hero {
    min-height: auto !important;
    padding-bottom: 4.5rem !important;
  }

  .wpi-shop-hero::before {
    background:
      linear-gradient(180deg, rgba(48,48,48,.78) 0%, rgba(0,0,0,.18) 44%, #000 96%),
      radial-gradient(ellipse at -5% 36%, rgba(210,4,4,.32) 0 4.5rem, transparent 8rem),
      radial-gradient(ellipse at 105% 83%, rgba(210,4,4,.42) 0 5.5rem, transparent 9rem) !important;
  }

  .wpi-shop-hero-copy {
    padding-top: 3.4rem !important;
    padding-left: clamp(1rem, 5vw, 1.5rem) !important;
    padding-right: clamp(1rem, 5vw, 1.5rem) !important;
  }

  .wpi-shop-hero-copy .eyebrow {
    margin-bottom: 1.35rem !important;
    max-width: calc(100vw - 2rem) !important;
    white-space: normal !important;
  }

  .wpi-shop-hero-copy h1 {
    max-width: 34rem !important;
    width: 100% !important;
    font-size: clamp(2.95rem, 10.8vw, 4.05rem) !important;
    line-height: .96 !important;
    letter-spacing: -.035em !important;
    text-wrap: balance !important;
  }

  .wpi-shop-hero-copy p {
    max-width: 32rem !important;
    width: 100% !important;
    margin-top: 1.25rem !important;
    font-size: 1.22rem !important;
    line-height: 1.48 !important;
  }

  .wpi-shop-catalog {
    padding: 2.8rem 0 3.5rem !important;
  }

  .wpi-shop-layout {
    display: block !important;
    width: 100% !important;
  }

  .wpi-shop-sidebar {
    position: relative !important;
    top: auto !important;
    width: 100% !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(0,0,0,.16) !important;
    padding: 0 0 1.35rem !important;
    margin-bottom: 2rem !important;
  }

  .wpi-shop-sidebar h2 {
    font-size: 1.5rem !important;
    margin: 0 0 1rem !important;
  }

  .wpi-shop-filter-group {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: .65rem !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 0 0 .75rem !important;
    margin: 0 0 1rem !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x proximity !important;
  }

  .wpi-shop-filter-link {
    flex: 0 0 auto !important;
    min-width: max-content !important;
    min-height: 2.7rem !important;
    padding: .72rem .85rem !important;
    border: 1px solid rgba(0,0,0,.14) !important;
    border-radius: .75rem !important;
    background: #fff !important;
    font-size: .98rem !important;
    line-height: 1.2 !important;
    scroll-snap-align: start !important;
  }

  .wpi-shop-filter-link i {
    width: 1rem !important;
    height: 1rem !important;
  }

  .wpi-shop-accordion {
    border-top: 1px solid rgba(0,0,0,.12) !important;
  }

  .wpi-shop-accordion:last-of-type {
    border-bottom: 1px solid rgba(0,0,0,.12) !important;
  }

  .wpi-shop-accordion summary {
    min-height: 3.35rem !important;
    font-size: 1.05rem !important;
  }

  .wpi-shop-accordion div {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: .65rem !important;
    overflow-x: auto !important;
    padding: .15rem 0 1rem !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .wpi-shop-accordion p {
    font-size: .95rem !important;
    line-height: 1.45 !important;
  }

  .wpi-shop-main {
    width: 100% !important;
  }

  .wpi-shop-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2.35rem !important;
    width: 100% !important;
  }

  .wpi-shop-product-card {
    width: 100% !important;
    max-width: 27rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .wpi-shop-product-media {
    min-height: 23.5rem !important;
    border-radius: 1.65rem !important;
  }

  .wpi-shop-product-media img {
    width: 74% !important;
    height: 20rem !important;
    object-fit: contain !important;
  }

  .wpi-shop-placeholder-hoodie {
    width: 10.5rem !important;
    height: 13.75rem !important;
  }

  .wpi-shop-view-pill {
    left: 1.1rem !important;
    right: 1.1rem !important;
    bottom: 1rem !important;
    min-height: 3.7rem !important;
    padding: .75rem .85rem .75rem 1.2rem !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .wpi-shop-view-pill b {
    font-size: .95rem !important;
  }

  .wpi-shop-view-pill i {
    width: 2.35rem !important;
    height: 2.35rem !important;
  }

  .wpi-shop-product-info {
    padding: .65rem .4rem 0 !important;
  }

  .wpi-shop-product-info h3 {
    font-size: 1.38rem !important;
    line-height: 1.15 !important;
  }

  .wpi-shop-product-info p {
    font-size: 1.15rem !important;
    line-height: 1.28 !important;
    margin-bottom: .55rem !important;
  }

  .wpi-shop-product-info strong,
  .wpi-shop-product-info .woocommerce-Price-amount {
    font-size: 1.2rem !important;
  }

  .wpi-shop-pagination {
    flex-wrap: wrap !important;
    margin-top: 2.5rem !important;
  }

  .wpi-shop-cta {
    border-top-width: .65rem !important;
    border-bottom-width: .65rem !important;
  }

  .wpi-shop-cta-inner {
    min-height: auto !important;
    padding: 4rem 1rem !important;
  }

  .wpi-shop-cta-mark {
    width: 6.5rem !important;
    height: 4.8rem !important;
    font-size: 3.9rem !important;
  }

  .wpi-shop-cta h2 {
    font-size: clamp(2.7rem, 10vw, 3.45rem) !important;
    line-height: .98 !important;
    text-wrap: balance !important;
  }

  .wpi-shop-cta div {
    width: 100% !important;
    max-width: 32rem !important;
    font-size: 1.18rem !important;
    line-height: 1.48 !important;
  }

  .wpi-shop-cta div strong {
    font-size: 1.28rem !important;
  }

  .wpi-shop-cta .btn {
    width: 100% !important;
    max-width: 24rem !important;
    min-width: 0 !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: normal !important;
  }

  .wpi-shop-page .wpi-global-faq {
    padding: 2.7rem 0 3.1rem !important;
  }
}

@media (max-width: 420px) {
  .wpi-shop-hero-copy h1 {
    font-size: clamp(2.65rem, 11vw, 3.55rem) !important;
  }

  .wpi-shop-product-card {
    max-width: 100% !important;
  }

  .wpi-shop-product-media {
    min-height: 21.5rem !important;
  }

  .wpi-shop-product-media img {
    height: 18.5rem !important;
  }
}

/* v1.0.86 Single Product Page */
.wpi-single-product-page,
.wpi-single-product-page * {
  box-sizing: border-box;
}

.wpi-single-product-page {
  background: #fafafa;
  color: #111;
  overflow-x: clip;
}

.wpi-product-hero {
  position: relative;
  min-height: 40rem;
  background: #000;
  color: #fff;
  overflow: hidden;
}

.wpi-product-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(48,48,48,.76) 0%, rgba(0,0,0,.05) 45%, #000 96%),
    radial-gradient(ellipse at 8% 34%, rgba(210,4,4,.34) 0 5rem, transparent 9rem),
    radial-gradient(ellipse at 94% 75%, rgba(210,4,4,.42) 0 7rem, transparent 12rem);
  opacity: .98;
}

.wpi-product-hero > * {
  position: relative;
  z-index: 2;
}

.wpi-product-announcement {
  position: relative;
  z-index: 8;
}

.wpi-product-hero .wpi-global-header {
  position: relative;
  z-index: 9;
}

.wpi-product-hero-copy {
  padding-top: 4.4rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.wpi-product-hero-copy .eyebrow {
  margin-bottom: 2rem;
  background: rgba(0,0,0,.18);
}

.wpi-product-hero-copy h1 {
  margin: 0;
  max-width: 56rem;
  font-family: var(--display);
  font-size: clamp(3.1rem, 4vw, 4.35rem);
  font-weight: 700;
  line-height: .95;
  letter-spacing: -.045em;
  text-transform: uppercase;
  color: #fff;
}

.wpi-product-hero-copy p {
  margin: 1.45rem auto 0;
  max-width: 46rem;
  font-size: 1.3rem;
  line-height: 1.5;
  color: rgba(255,255,255,.9);
}

.wpi-product-main-section {
  padding: 5.5rem 0 4rem;
  background: #fafafa;
}

.wpi-product-notices {
  margin-bottom: 1.5rem;
}

.wpi-product-notices .woocommerce-message,
.wpi-product-notices .woocommerce-error,
.wpi-product-notices .woocommerce-info {
  margin: 0 0 1rem;
  padding: 1.1rem 1.25rem;
  border-radius: 1rem;
  background: #fff;
  border: 1px solid rgba(0,0,0,.12);
  color: #111;
  list-style: none;
}

.wpi-product-notices .button,
.wpi-product-notices .button {
  float: right;
  color: #d20404;
  font-weight: 900;
  text-transform: uppercase;
}

.wpi-product-detail-card {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(24rem, .95fr);
  gap: 4.5rem;
  align-items: start;
  background: #fff;
  border-radius: 2rem;
  padding: 2.2rem;
  box-shadow: 0 1.1rem 2.4rem rgba(0,0,0,.08);
}

.wpi-product-gallery {
  min-width: 0;
}

.wpi-product-main-image {
  position: relative;
  margin: 0;
  min-height: 38rem;
  border-radius: 2rem;
  background: #f6f6f8;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.wpi-product-main-image img {
  width: 78%;
  height: 34rem;
  object-fit: contain;
}

.wpi-product-sale-badge {
  position: absolute;
  top: 1.5rem;
  left: 1.5rem;
  min-height: 2.65rem;
  padding: .8rem 1.15rem;
  border-radius: 999px;
  background: #d20404;
  color: #fff;
  font-size: .82rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.wpi-product-thumbs {
  display: flex;
  gap: .8rem;
  margin-top: 1rem;
  overflow-x: auto;
  padding-bottom: .3rem;
}

.wpi-product-thumbs a {
  width: 6.5rem;
  height: 6.5rem;
  flex: 0 0 auto;
  border-radius: 1rem;
  background: #f6f6f8;
  border: 1px solid rgba(0,0,0,.1);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.wpi-product-thumbs a.is-active,
.wpi-product-thumbs a:hover {
  border-color: #111;
}

.wpi-product-thumbs img {
  width: 85%;
  height: 85%;
  object-fit: contain;
}

.wpi-product-summary {
  min-width: 0;
  padding: 1.2rem .5rem;
}

.wpi-product-breadcrumbs,
.wpi-product-breadcrumbs .woocommerce-breadcrumb {
  margin: 0 0 1.5rem;
  color: rgba(0,0,0,.55);
  font-size: .9rem;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.wpi-product-breadcrumbs a {
  color: #111;
  font-weight: 800;
}

.wpi-product-breadcrumbs span {
  display: inline-block;
  margin: 0 .5rem;
  color: rgba(0,0,0,.35);
}

.wpi-product-summary .eyebrow,
.wpi-product-description-card .eyebrow,
.wpi-product-additional-card .eyebrow,
.wpi-product-related-head .eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: .62rem 1.55rem;
  border: 1px solid #111;
  border-radius: 999px;
  color: #111;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.wpi-product-summary h2 {
  margin: 1.35rem 0 1rem;
  font-family: var(--display);
  font-size: clamp(3.2rem, 4.1vw, 4.9rem);
  line-height: .92;
  letter-spacing: -.045em;
  text-transform: uppercase;
  color: #111;
}

.wpi-product-price,
.wpi-product-price .woocommerce-Price-amount {
  font-family: var(--display);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.1;
  color: #d20404;
}

.wpi-product-price del {
  opacity: .45;
  margin-right: .4rem;
  color: #111;
}

.wpi-product-price ins {
  text-decoration: none;
}

.wpi-product-short-description {
  margin: 1.35rem 0 1.55rem;
  color: rgba(0,0,0,.72);
  font-size: 1.18rem;
  line-height: 1.6;
}

.wpi-product-short-description p {
  margin: 0 0 .9rem;
}

.wpi-product-meta-list {
  display: grid;
  gap: .7rem;
  margin: 1.5rem 0;
}

.wpi-product-meta-list p {
  margin: 0;
  min-height: 3.3rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem;
  border-radius: .75rem;
  background: rgba(0,0,0,.045);
  color: #111;
}

.wpi-product-meta-list span {
  font-size: .82rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: rgba(0,0,0,.58);
}

.wpi-product-meta-list strong,
.wpi-product-meta-list strong a,
.wpi-product-meta-list .stock {
  margin: 0;
  font-size: .98rem;
  font-weight: 800;
  color: #111;
  text-align: right;
}

.wpi-product-meta-list .stock.in-stock {
  color: #168a3b;
}

.wpi-product-meta-list .stock.out-of-stock {
  color: #d20404;
}

.wpi-product-cart-box {
  margin-top: 1.5rem;
  padding: 1.2rem;
  border-radius: 1.25rem;
  background: #f6f6f8;
}

.wpi-product-cart-box form.cart {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  margin: 0;
}

.wpi-product-cart-box .quantity {
  flex: 0 0 auto;
}

.wpi-product-cart-box .quantity input.qty {
  width: 6rem;
  min-height: 4.15rem;
  border: 1px solid rgba(0,0,0,.16);
  border-radius: 999px;
  padding: .5rem 1rem;
  background: #fff;
  color: #111;
  font-weight: 900;
  text-align: center;
}

.wpi-product-cart-box .single_add_to_cart_button,
.wpi-product-cart-box .button {
  min-height: 4.15rem;
  border: 0;
  border-radius: 999px;
  background: #d20404;
  color: #fff;
  padding: 1rem 2.6rem;
  font-family: var(--body);
  font-size: .9rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
}

.wpi-product-cart-box .single_add_to_cart_button:hover,
.wpi-product-cart-box .button:hover {
  background: #b80000;
}

.wpi-product-cart-box table.variations {
  width: 100%;
  margin: 0 0 1rem;
  border: 0;
  border-collapse: collapse;
}

.wpi-product-cart-box table.variations tr,
.wpi-product-cart-box table.variations tbody,
.wpi-product-cart-box table.variations td,
.wpi-product-cart-box table.variations th {
  display: block;
  width: 100%;
  border: 0;
  padding: 0;
}

.wpi-product-cart-box table.variations label {
  display: block;
  margin: .8rem 0 .4rem;
  font-size: .85rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.wpi-product-cart-box table.variations select,
.wpi-product-cart-box select {
  width: 100%;
  min-height: 3.65rem;
  border: 1px solid rgba(0,0,0,.16);
  border-radius: .85rem;
  padding: .75rem 1rem;
  background: #fff;
  color: #111;
}

.wpi-product-cart-box .reset_variations {
  display: inline-block;
  margin-top: .5rem;
  color: #d20404;
  font-size: .85rem;
  font-weight: 900;
  text-transform: uppercase;
}

.wpi-product-cart-box .single_variation_wrap,
.wpi-product-cart-box .woocommerce-variation-add-to-cart {
  width: 100%;
}

.wpi-product-cart-box .woocommerce-variation-price {
  margin: .8rem 0;
  font-weight: 900;
}

.wpi-product-info-section {
  padding: 1rem 0 4.5rem;
  background: #fafafa;
}

.wpi-product-info-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(18rem, .9fr);
  gap: 1.5rem;
}

.wpi-product-description-card,
.wpi-product-additional-card {
  background: #fff;
  border-radius: 1.5rem;
  padding: 2.2rem;
  box-shadow: 0 .7rem 1.6rem rgba(0,0,0,.045);
}

.wpi-product-description-card h2,
.wpi-product-additional-card h2,
.wpi-product-related-head h2 {
  margin: 1rem 0 1.25rem;
  font-family: var(--display);
  font-size: clamp(2.3rem, 3vw, 3.4rem);
  line-height: .95;
  letter-spacing: -.035em;
  text-transform: uppercase;
  color: #111;
}

.wpi-product-description-copy,
.wpi-product-additional-card {
  color: rgba(0,0,0,.75);
  font-size: 1.08rem;
  line-height: 1.65;
}

.wpi-product-description-copy p,
.wpi-product-additional-card p {
  margin: 0 0 1rem;
}

.wpi-product-additional-card table.shop_attributes {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
}

.wpi-product-additional-card table.shop_attributes th,
.wpi-product-additional-card table.shop_attributes td {
  border-bottom: 1px solid rgba(0,0,0,.1);
  padding: .8rem 0;
  text-align: left;
  vertical-align: top;
}

.wpi-product-additional-card table.shop_attributes th {
  width: 38%;
  font-size: .85rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #111;
}

.wpi-product-additional-card table.shop_attributes p {
  margin: 0;
}

.wpi-product-related-section {
  padding: 4.5rem 0 5rem;
  background: #fff;
}

.wpi-product-related-head {
  text-align: center;
  margin-bottom: 3rem;
}

.wpi-product-related-grid {
  max-width: 92rem;
  margin: 0 auto;
}

.single-product .wpi-sp-footer {
  margin-top: 0;
}

@media (max-width: 1024px) {
  .wpi-product-detail-card {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }

  .wpi-product-info-grid {
    grid-template-columns: 1fr;
  }

  .wpi-product-main-image {
    min-height: 34rem;
  }
}

@media (max-width: 767px) {
  .wpi-product-hero {
    min-height: auto;
    padding-bottom: 4rem;
  }

  .wpi-product-hero-copy {
    padding-top: 3.5rem;
  }

  .wpi-product-hero-copy h1 {
    max-width: 33rem;
    font-size: clamp(3.2rem, 12vw, 4.6rem);
    line-height: .92;
  }

  .wpi-product-hero-copy p {
    max-width: 31rem;
    font-size: 1.3rem;
    line-height: 1.45;
  }

  .wpi-product-main-section {
    padding: 3.2rem 0 2.7rem;
  }

  .wpi-product-detail-card {
    border-radius: 1.45rem;
    padding: 1rem;
    gap: 1.8rem;
  }

  .wpi-product-main-image {
    min-height: 25rem;
    border-radius: 1.2rem;
  }

  .wpi-product-main-image img {
    width: 84%;
    height: 22rem;
  }

  .wpi-product-thumbs a {
    width: 5.5rem;
    height: 5.5rem;
  }

  .wpi-product-summary {
    padding: .5rem .35rem 1rem;
  }

  .wpi-product-summary h2 {
    font-size: clamp(3rem, 11vw, 4.1rem);
  }

  .wpi-product-price,
  .wpi-product-price .woocommerce-Price-amount {
    font-size: 1.8rem;
  }

  .wpi-product-short-description {
    font-size: 1.24rem;
  }

  .wpi-product-meta-list p {
    align-items: flex-start;
    flex-direction: column;
    gap: .35rem;
  }

  .wpi-product-meta-list strong,
  .wpi-product-meta-list .stock {
    text-align: left;
  }

  .wpi-product-cart-box {
    padding: 1rem;
  }

  .wpi-product-cart-box form.cart {
    display: grid;
    grid-template-columns: 1fr;
  }

  .wpi-product-cart-box .quantity input.qty,
  .wpi-product-cart-box .single_add_to_cart_button,
  .wpi-product-cart-box .button {
    width: 100%;
  }

  .wpi-product-description-card,
  .wpi-product-additional-card {
    padding: 1.5rem;
    border-radius: 1.2rem;
  }

  .wpi-product-description-card h2,
  .wpi-product-additional-card h2,
  .wpi-product-related-head h2 {
    font-size: 2.6rem;
  }

  .wpi-product-related-section {
    padding: 3.3rem 0 3.8rem;
  }
}

/* v1.0.87 Single product mobile QA hardening */
.wpi-single-product-page,
.wpi-single-product-page * {
  box-sizing: border-box;
}

.wpi-single-product-page {
  overflow-x: clip;
  background: #fafafa;
}

.wpi-single-product-page img,
.wpi-single-product-page video,
.wpi-single-product-page iframe,
.wpi-single-product-page table {
  max-width: 100%;
}

.wpi-product-detail-card,
.wpi-product-info-grid,
.wpi-product-related-grid,
.wpi-product-summary,
.wpi-product-gallery,
.wpi-product-cart-box,
.wpi-product-cart-box form.cart,
.wpi-product-cart-box .variations,
.wpi-product-cart-box .single_variation_wrap,
.wpi-product-cart-box .woocommerce-variation-add-to-cart,
.wpi-product-additional-card,
.wpi-product-description-card {
  min-width: 0;
}

.wpi-product-cart-box .woocommerce-variation-description,
.wpi-product-cart-box .woocommerce-variation-availability,
.wpi-product-cart-box .woocommerce-variation-price,
.wpi-product-short-description,
.wpi-product-description-copy,
.wpi-product-additional-card {
  overflow-wrap: anywhere;
}

.wpi-product-cart-box .group_table,
.wpi-product-cart-box .variations,
.wpi-product-additional-card table.shop_attributes {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.wpi-product-cart-box .group_table tbody,
.wpi-product-cart-box .group_table tr,
.wpi-product-cart-box .group_table td {
  max-width: 100%;
}

@media (max-width: 1024px) {
  .wpi-product-hero-copy {
    padding-top: 3.75rem;
  }

  .wpi-product-main-section {
    padding-top: 4rem;
  }

  .wpi-product-detail-card {
    max-width: 58rem;
    margin-inline: auto;
  }

  .wpi-product-summary h2 {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .wpi-product-cart-box .single_add_to_cart_button,
  .wpi-product-cart-box .button {
    flex: 1 1 16rem;
  }
}

@media (max-width: 767px) {
  .wpi-single-product-page .container-wide,
  .wpi-single-product-page .container-narrow {
    width: min(100% - 1.5rem, 42rem) !important;
    max-width: none !important;
    margin-inline: auto !important;
  }

  .wpi-product-announcement {
    padding-inline: .8rem;
  }

  .wpi-product-hero .wpi-global-header,
  .single-product .wpi-global-header {
    z-index: 10020 !important;
  }

  .wpi-product-hero-copy {
    padding-top: 2.6rem !important;
    padding-inline: .75rem;
  }

  .wpi-product-hero-copy .eyebrow {
    margin-bottom: 1.35rem;
  }

  .wpi-product-hero-copy h1 {
    max-width: 100%;
    font-size: clamp(2.65rem, 10.6vw, 4rem) !important;
    line-height: .96 !important;
    letter-spacing: -.04em;
  }

  .wpi-product-hero-copy p {
    max-width: 100%;
    margin-top: 1.1rem;
    font-size: 1.08rem !important;
    line-height: 1.55 !important;
  }

  .wpi-product-main-section {
    padding: 2rem 0 2.75rem !important;
  }

  .wpi-product-detail-card {
    width: 100%;
    border-radius: 1.4rem !important;
    padding: .85rem !important;
    box-shadow: 0 .7rem 1.6rem rgba(0,0,0,.08);
  }

  .wpi-product-main-image {
    min-height: 20rem !important;
    border-radius: 1rem !important;
  }

  .wpi-product-main-image img {
    width: 88% !important;
    height: 18rem !important;
  }

  .wpi-product-sale-badge {
    top: .9rem;
    left: .9rem;
    min-height: 2.2rem;
    padding: .62rem .9rem;
    font-size: .72rem;
  }

  .wpi-product-thumbs {
    gap: .65rem;
    margin-top: .8rem;
    padding-bottom: .45rem;
  }

  .wpi-product-thumbs a {
    width: 4.8rem !important;
    height: 4.8rem !important;
    border-radius: .8rem;
  }

  .wpi-product-summary {
    padding: .75rem .25rem 1rem !important;
  }

  .wpi-product-breadcrumbs,
  .wpi-product-breadcrumbs .woocommerce-breadcrumb {
    font-size: .74rem;
    line-height: 1.5;
    margin-bottom: 1rem;
    overflow-wrap: anywhere;
  }

  .wpi-product-summary .eyebrow,
  .wpi-product-description-card .eyebrow,
  .wpi-product-additional-card .eyebrow,
  .wpi-product-related-head .eyebrow {
    min-height: 2.1rem;
    padding: .55rem 1.1rem;
    font-size: .68rem;
  }

  .wpi-product-summary h2 {
    margin-top: 1rem;
    font-size: clamp(2.45rem, 10.4vw, 3.65rem) !important;
    line-height: .98 !important;
    letter-spacing: -.04em;
    overflow-wrap: anywhere;
  }

  .wpi-product-price,
  .wpi-product-price .woocommerce-Price-amount {
    font-size: 1.65rem !important;
  }

  .wpi-product-short-description {
    margin: 1rem 0 1.15rem;
    font-size: 1.06rem !important;
    line-height: 1.55;
  }

  .wpi-product-meta-list {
    gap: .55rem;
    margin: 1.1rem 0;
  }

  .wpi-product-meta-list p {
    min-height: 0;
    padding: .85rem .9rem;
    border-radius: .8rem;
  }

  .wpi-product-meta-list span {
    font-size: .72rem;
  }

  .wpi-product-meta-list strong,
  .wpi-product-meta-list strong a,
  .wpi-product-meta-list .stock {
    font-size: .94rem;
  }

  .wpi-product-cart-box {
    margin-top: 1rem;
    padding: .85rem !important;
    border-radius: 1rem;
  }

  .wpi-product-cart-box form.cart,
  .wpi-product-cart-box .woocommerce-variation-add-to-cart {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .85rem !important;
    width: 100%;
  }

  .wpi-product-cart-box .quantity,
  .wpi-product-cart-box .quantity input.qty,
  .wpi-product-cart-box .single_add_to_cart_button,
  .wpi-product-cart-box .button,
  .wpi-product-cart-box table.variations select,
  .wpi-product-cart-box select {
    width: 100% !important;
    max-width: 100% !important;
  }

  .wpi-product-cart-box .quantity input.qty,
  .wpi-product-cart-box .single_add_to_cart_button,
  .wpi-product-cart-box .button {
    min-height: 3.75rem !important;
  }

  .wpi-product-cart-box .single_add_to_cart_button,
  .wpi-product-cart-box .button {
    padding-inline: 1.2rem !important;
    text-align: center;
    justify-content: center;
  }

  .wpi-product-cart-box table.variations label {
    margin-top: .45rem;
  }

  .wpi-product-info-section {
    padding: .25rem 0 3rem !important;
  }

  .wpi-product-info-grid {
    gap: 1rem !important;
  }

  .wpi-product-description-card,
  .wpi-product-additional-card {
    padding: 1.25rem !important;
    border-radius: 1rem !important;
  }

  .wpi-product-description-card h2,
  .wpi-product-additional-card h2,
  .wpi-product-related-head h2 {
    font-size: clamp(2.15rem, 8.8vw, 3rem) !important;
    line-height: 1 !important;
  }

  .wpi-product-description-copy,
  .wpi-product-additional-card {
    font-size: 1rem !important;
    line-height: 1.55;
  }

  .wpi-product-additional-card table.shop_attributes th,
  .wpi-product-additional-card table.shop_attributes td {
    display: block;
    width: 100%;
    padding: .65rem 0;
  }

  .wpi-product-additional-card table.shop_attributes td {
    padding-top: 0;
  }

  .wpi-product-related-head {
    margin-bottom: 2rem;
  }

  .wpi-product-related-grid.wpi-shop-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
  }

  .single-product .wpi-sp-footer {
    margin-top: 0 !important;
  }
}

@media (max-width: 420px) {
  .wpi-product-hero-copy h1 {
    font-size: clamp(2.35rem, 11vw, 3.25rem) !important;
  }

  .wpi-product-main-image {
    min-height: 17.5rem !important;
  }

  .wpi-product-main-image img {
    height: 15.5rem !important;
  }

  .wpi-product-thumbs a {
    width: 4.25rem !important;
    height: 4.25rem !important;
  }
}


/* v1.0.89 WooCommerce Cart page */
.wpi-cart-page {
  background: #fafafa;
  color: #111;
  overflow: hidden;
}

.wpi-cart-hero {
  position: relative;
  min-height: 40rem;
  background: #000;
  color: #fff;
  overflow: hidden;
}

.wpi-cart-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(48,48,48,.76) 0%, rgba(0,0,0,.08) 42%, #000 96%),
    radial-gradient(ellipse at 8% 34%, rgba(210,4,4,.34) 0 5.4rem, transparent 10rem),
    radial-gradient(ellipse at 96% 78%, rgba(210,4,4,.42) 0 8rem, transparent 12rem);
}

.wpi-cart-hero > * {
  position: relative;
  z-index: 2;
}

.wpi-cart-announcement {
  position: relative;
  z-index: 8;
}

.wpi-cart-hero .wpi-global-header {
  position: relative;
  z-index: 9;
}

.wpi-cart-hero-copy {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-top: 4.8rem;
  padding-bottom: 5rem;
}

.wpi-cart-hero-copy .eyebrow {
  margin-bottom: 2.25rem;
  background: rgba(0,0,0,.2);
}

.wpi-cart-hero-copy h1 {
  margin: 0;
  max-width: 55rem;
  font-family: var(--display);
  font-size: clamp(3.4rem, 4.2vw, 4.4rem);
  font-weight: 700;
  line-height: .94;
  letter-spacing: -.045em;
  text-transform: uppercase;
  color: #fff;
}

.wpi-cart-hero-copy p {
  margin: 1.55rem auto 0;
  max-width: 48rem;
  font-size: 1.28rem;
  line-height: 1.5;
  color: rgba(255,255,255,.9);
}

.wpi-cart-main-section {
  background: #fafafa;
  padding: 5.2rem 0 6rem;
}

.wpi-cart-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 2rem;
  box-shadow: 0 1.2rem 3rem rgba(20,20,20,.08);
  padding: 2.2rem;
  max-width: 92rem;
  margin: 0 auto;
}

.wpi-cart-card .woocommerce-notices-wrapper,
.wpi-cart-card .woocommerce-message,
.wpi-cart-card .woocommerce-error,
.wpi-cart-card .woocommerce-info {
  margin-bottom: 1.4rem;
}

.wpi-cart-card .woocommerce-message,
.wpi-cart-card .woocommerce-info,
.wpi-cart-card .woocommerce-error {
  border: 0;
  border-left: .35rem solid #d20404;
  border-radius: 1rem;
  background: #f6f6f8;
  color: #111;
  padding: 1.1rem 1.3rem;
  font-family: var(--body);
}

.wpi-cart-card .woocommerce-error {
  border-left-color: #b50505;
}

.wpi-cart-card .woocommerce-cart-form {
  margin: 0;
}

.wpi-cart-card table.shop_table,
.wpi-cart-card .cart_totals table.shop_table {
  width: 100%;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  margin: 0;
  font-family: var(--body);
}

.wpi-cart-card table.shop_table thead th {
  background: #111;
  color: #fff;
  padding: 1rem;
  font-size: .8rem;
  line-height: 1.2;
  text-transform: uppercase;
  letter-spacing: .06em;
  border: 0;
}

.wpi-cart-card table.shop_table thead th:first-child {
  border-top-left-radius: 1rem;
}

.wpi-cart-card table.shop_table thead th:last-child {
  border-top-right-radius: 1rem;
}

.wpi-cart-card table.shop_table tbody td,
.wpi-cart-card table.shop_table tbody th,
.wpi-cart-card .cart_totals table.shop_table td,
.wpi-cart-card .cart_totals table.shop_table th {
  border: 0;
  border-bottom: 1px solid rgba(0,0,0,.08);
  padding: 1.15rem 1rem;
  vertical-align: middle;
  color: #111;
}

.wpi-cart-card td.product-thumbnail img {
  width: 5.5rem;
  height: 5.5rem;
  object-fit: contain;
  border-radius: 1rem;
  background: #f6f6f8;
  padding: .5rem;
}

.wpi-cart-card td.product-name a {
  color: #111;
  font-weight: 800;
  font-size: 1.05rem;
}

.wpi-cart-card .product-remove a.remove {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(210,4,4,.08);
  color: #d20404 !important;
  font-size: 1.35rem;
  line-height: 1;
  text-decoration: none;
}

.wpi-cart-card .product-remove a.remove:hover {
  background: #d20404;
  color: #fff !important;
}

.wpi-cart-card .quantity .qty {
  width: 5rem;
  min-height: 3rem;
  border: 1px solid rgba(0,0,0,.18);
  border-radius: 999px;
  text-align: center;
  font-weight: 800;
  background: #fff;
  color: #111;
}

.wpi-cart-card .coupon {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
}

.wpi-cart-card .coupon label {
  display: none;
}

.wpi-cart-card .coupon .input-text {
  min-height: 3.25rem;
  min-width: 16rem;
  border: 1px solid rgba(0,0,0,.16);
  border-radius: 999px;
  padding: 0 1.2rem;
  font-family: var(--body);
  color: #111;
}

.wpi-cart-card button.button,
.wpi-cart-card .button,
.wpi-cart-card a.button,
.wpi-cart-card .checkout-button {
  min-height: 3.25rem;
  border: 1px solid #d20404 !important;
  border-radius: 999px !important;
  background: #d20404 !important;
  color: #fff !important;
  font-family: var(--body);
  font-weight: 900 !important;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: .95rem 1.55rem !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}

.wpi-cart-card button.button:hover,
.wpi-cart-card .button:hover,
.wpi-cart-card a.button:hover,
.wpi-cart-card .checkout-button:hover {
  background: #111 !important;
  border-color: #111 !important;
  transform: translateY(-1px);
}

.wpi-cart-card button.button:disabled,
.wpi-cart-card button.button:disabled[disabled] {
  opacity: .45;
  cursor: not-allowed;
  transform: none;
}

.wpi-cart-card .cart-collaterals {
  margin-top: 2.2rem;
  display: flex;
  justify-content: flex-end;
}

.wpi-cart-card .cart_totals {
  float: none !important;
  width: min(100%, 31rem) !important;
  background: #f6f6f8;
  border-radius: 1.4rem;
  padding: 1.6rem;
}

.wpi-cart-card .cart_totals h2 {
  margin: 0 0 1rem;
  font-family: var(--display);
  font-size: 2rem;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: -.03em;
  color: #111;
}

.wpi-cart-card .cart_totals table.shop_table th,
.wpi-cart-card .cart_totals table.shop_table td {
  padding: .85rem 0;
  background: transparent;
  border-bottom: 1px solid rgba(0,0,0,.1);
}

.wpi-cart-card .cart_totals table.shop_table th {
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: .88rem;
}

.wpi-cart-card .cart_totals .order-total th,
.wpi-cart-card .cart_totals .order-total td {
  font-size: 1.2rem;
}

.wpi-cart-card .wc-proceed-to-checkout {
  padding: 1.35rem 0 0;
}

.wpi-cart-card .wc-proceed-to-checkout .checkout-button {
  width: 100%;
  min-height: 4rem;
  font-size: .95rem;
}

.wpi-cart-card .cart-empty {
  margin: 0 0 1.2rem;
  padding: 1.4rem;
  border-radius: 1rem;
  background: #f6f6f8;
  font-size: 1.1rem;
  color: #111;
}

.wpi-cart-card .return-to-shop {
  margin: 0;
}

@media (max-width: 1024px) {
  .wpi-cart-card {
    padding: 1.6rem;
  }

  .wpi-cart-card .cart-collaterals {
    justify-content: stretch;
  }

  .wpi-cart-card .cart_totals {
    width: 100% !important;
  }
}

@media (max-width: 767px) {
  .wpi-cart-hero {
    min-height: auto;
  }

  .wpi-cart-hero-copy {
    padding-top: 4rem;
    padding-bottom: 4.4rem;
  }

  .wpi-cart-hero-copy .eyebrow {
    margin-bottom: 1.45rem;
  }

  .wpi-cart-hero-copy h1 {
    max-width: 32rem;
    font-size: clamp(3.15rem, 11vw, 4.2rem);
    line-height: .92;
  }

  .wpi-cart-hero-copy p {
    max-width: 31rem;
    font-size: 1.26rem;
    line-height: 1.45;
  }

  .wpi-cart-main-section {
    padding: 3rem 0 4rem;
  }

  .wpi-cart-card {
    border-radius: 1.35rem;
    padding: 1rem;
  }

  .wpi-cart-card table.shop_table_responsive thead {
    display: none;
  }

  .wpi-cart-card table.shop_table_responsive tr.cart_item {
    display: grid;
    grid-template-columns: 4rem minmax(0,1fr);
    gap: .75rem 1rem;
    border-bottom: 1px solid rgba(0,0,0,.1);
    padding: 1.1rem 0;
  }

  .wpi-cart-card table.shop_table_responsive tr.cart_item td {
    display: block;
    border: 0;
    padding: 0;
    text-align: left !important;
  }

  .wpi-cart-card table.shop_table_responsive tr.cart_item td::before {
    display: none;
  }

  .wpi-cart-card td.product-remove {
    grid-column: 1 / -1;
    order: -2;
  }

  .wpi-cart-card td.product-thumbnail {
    grid-column: 1;
    grid-row: 2 / span 4;
  }

  .wpi-cart-card td.product-thumbnail::before,
  .wpi-cart-card td.product-thumbnail a {
    display: block !important;
  }

  .wpi-cart-card td.product-thumbnail img {
    width: 4rem;
    height: 4rem;
    padding: .35rem;
  }

  .wpi-cart-card td.product-name,
  .wpi-cart-card td.product-price,
  .wpi-cart-card td.product-quantity,
  .wpi-cart-card td.product-subtotal {
    grid-column: 2;
  }

  .wpi-cart-card td.product-price::before,
  .wpi-cart-card td.product-quantity::before,
  .wpi-cart-card td.product-subtotal::before {
    display: inline-block;
    margin-right: .45rem;
    font-weight: 900;
    color: rgba(0,0,0,.55);
  }

  .wpi-cart-card table.cart td.actions {
    display: block;
    padding: 1.2rem 0 0;
    border: 0;
  }

  .wpi-cart-card .coupon {
    display: grid;
    grid-template-columns: 1fr;
    gap: .75rem;
    margin-bottom: .9rem;
  }

  .wpi-cart-card .coupon .input-text,
  .wpi-cart-card button.button,
  .wpi-cart-card .button,
  .wpi-cart-card a.button,
  .wpi-cart-card .checkout-button {
    width: 100% !important;
    min-width: 0;
  }

  .wpi-cart-card .cart_totals {
    border-radius: 1.1rem;
    padding: 1.25rem;
  }

  .wpi-cart-card .cart_totals h2 {
    font-size: 1.8rem;
  }
}


/* v1.0.90 Cart mobile/tablet QA hardening */
.woocommerce-cart .wpi-cart-page,
.wpi-cart-page {
  width: 100%;
}

.wpi-cart-card .woocommerce,
.wpi-cart-card .woocommerce-cart-form,
.wpi-cart-card form.woocommerce-cart-form,
.wpi-cart-card table.cart,
.wpi-cart-card table.shop_table {
  max-width: 100%;
}

.wpi-cart-card table.shop_table td,
.wpi-cart-card table.shop_table th,
.wpi-cart-card .cart_totals table.shop_table td,
.wpi-cart-card .cart_totals table.shop_table th {
  word-break: normal;
}

.wpi-cart-card .product-name,
.wpi-cart-card .product-name a,
.wpi-cart-card .variation,
.wpi-cart-card .variation dd,
.wpi-cart-card .variation dt {
  overflow-wrap: anywhere;
}

.wpi-cart-card .woocommerce-shipping-methods,
.wpi-cart-card .woocommerce-shipping-destination,
.wpi-cart-card .woocommerce-shipping-calculator {
  margin: .55rem 0 0;
  padding: 0;
  list-style: none;
}

.wpi-cart-card .shipping-calculator-button {
  color: #d20404;
  font-weight: 900;
}

@media (max-width: 1180px) {
  .wpi-cart-hero-copy {
    padding-top: 4.2rem;
    padding-bottom: 4.6rem;
  }

  .wpi-cart-main-section {
    padding-inline: 1.25rem;
  }

  .wpi-cart-card {
    max-width: 100%;
  }
}

@media (max-width: 900px) {
  .wpi-cart-hero {
    min-height: auto !important;
  }

  .wpi-cart-hero-copy {
    padding-top: 3.4rem !important;
    padding-bottom: 3.8rem !important;
  }

  .wpi-cart-hero-copy h1 {
    font-size: clamp(2.9rem, 9.5vw, 4rem) !important;
    line-height: .94 !important;
  }

  .wpi-cart-hero-copy p {
    font-size: 1.12rem !important;
  }

  .wpi-cart-card table.shop_table thead th {
    padding: .85rem .7rem;
  }

  .wpi-cart-card table.shop_table tbody td,
  .wpi-cart-card table.shop_table tbody th {
    padding: 1rem .7rem;
  }
}

@media (max-width: 767px) {
  body.woocommerce-cart {
    overflow-x: hidden;
  }

  .wpi-cart-page {
    overflow-x: hidden !important;
  }

  .wpi-cart-hero-copy {
    padding-top: 2.85rem !important;
    padding-bottom: 3.15rem !important;
    padding-left: 1.05rem !important;
    padding-right: 1.05rem !important;
  }

  .wpi-cart-hero-copy .eyebrow {
    margin-bottom: 1.15rem !important;
  }

  .wpi-cart-hero-copy h1 {
    max-width: 27rem !important;
    font-size: clamp(2.55rem, 10.5vw, 3.65rem) !important;
    letter-spacing: -.045em !important;
  }

  .wpi-cart-hero-copy p {
    max-width: 28rem !important;
    margin-top: 1.15rem !important;
    font-size: 1.05rem !important;
    line-height: 1.48 !important;
  }

  .wpi-cart-main-section {
    padding: 2.15rem .85rem 3.35rem !important;
  }

  .wpi-cart-card {
    padding: .85rem !important;
    border-radius: 1.25rem !important;
    overflow: hidden;
  }

  .wpi-cart-card .woocommerce-notices-wrapper,
  .wpi-cart-card .woocommerce-message,
  .wpi-cart-card .woocommerce-info,
  .wpi-cart-card .woocommerce-error {
    font-size: .95rem;
    line-height: 1.45;
  }

  .wpi-cart-card table.shop_table_responsive {
    display: block;
    width: 100%;
    border: 0 !important;
  }

  .wpi-cart-card table.shop_table_responsive tbody,
  .wpi-cart-card table.shop_table_responsive tfoot {
    display: block;
    width: 100%;
  }

  .wpi-cart-card table.shop_table_responsive tr.cart_item {
    position: relative;
    grid-template-columns: 4.6rem minmax(0,1fr) !important;
    gap: .55rem .95rem !important;
    padding: 1rem 0 1.15rem !important;
    width: 100%;
  }

  .wpi-cart-card td.product-remove {
    position: absolute;
    top: .9rem;
    right: 0;
    grid-column: auto !important;
    order: 0 !important;
    width: auto !important;
    z-index: 2;
  }

  .wpi-cart-card .product-remove a.remove {
    width: 2.15rem !important;
    height: 2.15rem !important;
    font-size: 1.35rem !important;
  }

  .wpi-cart-card td.product-thumbnail {
    grid-row: 1 / span 5 !important;
    align-self: flex-start;
    padding-top: 2.65rem !important;
  }

  .wpi-cart-card td.product-thumbnail img {
    width: 4.45rem !important;
    height: 4.45rem !important;
    border-radius: .9rem !important;
  }

  .wpi-cart-card td.product-name {
    padding-right: 2.75rem !important;
  }

  .wpi-cart-card td.product-name a {
    display: block;
    font-size: 1.02rem !important;
    line-height: 1.22 !important;
  }

  .wpi-cart-card .variation {
    margin-top: .55rem;
    font-size: .9rem;
    line-height: 1.35;
  }

  .wpi-cart-card .quantity .qty {
    width: 100% !important;
    max-width: 8.5rem;
    min-height: 2.9rem !important;
  }

  .wpi-cart-card td.product-price,
  .wpi-cart-card td.product-subtotal {
    font-size: 1rem;
    font-weight: 800;
  }

  .wpi-cart-card table.cart td.actions {
    padding-top: 1rem !important;
  }

  .wpi-cart-card .coupon {
    width: 100%;
  }

  .wpi-cart-card .coupon .input-text {
    height: 3.15rem !important;
    min-height: 3.15rem !important;
    border-radius: 999px !important;
    font-size: 1rem !important;
  }

  .wpi-cart-card button.button,
  .wpi-cart-card .button,
  .wpi-cart-card a.button,
  .wpi-cart-card .checkout-button {
    min-height: 3.25rem !important;
    white-space: normal !important;
    text-align: center !important;
    line-height: 1.15 !important;
  }

  .wpi-cart-card table.cart td.actions > .button {
    margin-top: .15rem;
  }

  .wpi-cart-card .cart-collaterals {
    margin-top: 1.45rem !important;
    display: block !important;
  }

  .wpi-cart-card .cart_totals {
    padding: 1.1rem !important;
    border-radius: 1rem !important;
  }

  .wpi-cart-card .cart_totals h2 {
    font-size: 1.6rem !important;
  }

  .wpi-cart-card .cart_totals table.shop_table,
  .wpi-cart-card .cart_totals table.shop_table tbody,
  .wpi-cart-card .cart_totals table.shop_table tr,
  .wpi-cart-card .cart_totals table.shop_table th,
  .wpi-cart-card .cart_totals table.shop_table td {
    display: block;
    width: 100% !important;
    text-align: left !important;
  }

  .wpi-cart-card .cart_totals table.shop_table tr {
    padding: .75rem 0;
    border-bottom: 1px solid rgba(0,0,0,.1);
  }

  .wpi-cart-card .cart_totals table.shop_table th,
  .wpi-cart-card .cart_totals table.shop_table td {
    border: 0 !important;
    padding: .15rem 0 !important;
  }

  .wpi-cart-card .wc-proceed-to-checkout .checkout-button {
    min-height: 3.85rem !important;
  }

  .wpi-cart-card .cart-empty,
  .wpi-cart-card .return-to-shop {
    text-align: center;
  }
}

@media (max-width: 420px) {
  .wpi-cart-hero-copy {
    padding-top: 2.55rem !important;
    padding-bottom: 2.85rem !important;
  }

  .wpi-cart-hero-copy h1 {
    font-size: clamp(2.35rem, 11vw, 3.25rem) !important;
  }

  .wpi-cart-main-section {
    padding-left: .65rem !important;
    padding-right: .65rem !important;
  }

  .wpi-cart-card {
    padding: .7rem !important;
  }

  .wpi-cart-card table.shop_table_responsive tr.cart_item {
    grid-template-columns: 4.15rem minmax(0,1fr) !important;
    gap: .5rem .8rem !important;
  }

  .wpi-cart-card td.product-thumbnail img {
    width: 4rem !important;
    height: 4rem !important;
  }
}

/* v1.0.92 WooCommerce Thank You / Order Received Page */
.wpi-thankyou-page {
  background: #fafafa;
  color: #111;
  overflow-x: hidden;
}

.wpi-thankyou-hero {
  position: relative;
  overflow: hidden;
  min-height: 41rem;
  background:
    radial-gradient(circle at 8% 82%, rgba(210,4,4,.42), transparent 28rem),
    radial-gradient(circle at 92% 30%, rgba(210,4,4,.28), transparent 24rem),
    linear-gradient(180deg, #020202 0%, #0c0c0c 66%, #151515 100%);
  color: #fff;
}

.wpi-thankyou-hero::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -9.5rem;
  width: 118%;
  height: 17rem;
  transform: translateX(-50%);
  border-radius: 50% 50% 0 0;
  background: linear-gradient(180deg, rgba(0,0,0,.92) 0%, rgba(143,14,14,.72) 100%);
  filter: blur(2px);
  pointer-events: none;
  z-index: 0;
}

.wpi-thankyou-announcement,
.wpi-thankyou-hero .global-header,
.wpi-thankyou-hero .site-header,
.wpi-thankyou-hero .wpi-global-header,
.wpi-thankyou-hero-copy {
  position: relative;
  z-index: 3;
}

.wpi-thankyou-hero-copy {
  max-width: 58rem;
  margin: 0 auto;
  padding-top: 8.4rem;
  padding-bottom: 7.4rem;
  text-align: center;
}

.wpi-thankyou-hero-copy h1 {
  max-width: 56rem;
  margin: 1.35rem auto 0;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(4.4rem, 5.3vw, 6.05rem);
  line-height: .94;
  letter-spacing: -.045em;
  text-transform: uppercase;
}

.wpi-thankyou-hero-copy p {
  max-width: 47rem;
  margin: 1.45rem auto 0;
  color: rgba(255,255,255,.84);
  font-size: 1.28rem;
  line-height: 1.52;
}

.wpi-thankyou-main-section {
  padding: 5.2rem 1.25rem 7rem;
  background: #fafafa;
}

.wpi-thankyou-card {
  width: min(100%, 76rem);
  margin: 0 auto;
  padding: 2.25rem;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 2rem;
  background: #fff;
  box-shadow: 0 1.35rem 4rem rgba(0,0,0,.08);
}

.wpi-thankyou-success-head,
.wpi-thankyou-empty {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 1.35rem;
  border: 1px solid rgba(210,4,4,.18);
  border-radius: 1.35rem;
  background: linear-gradient(135deg, rgba(210,4,4,.08), rgba(0,0,0,.035));
}

.wpi-thankyou-empty {
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 2.4rem 1.4rem;
}

.wpi-thankyou-status-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 3.65rem;
  height: 3.65rem;
  border-radius: 999px;
  background: #d20404;
  color: #fff;
  font-size: 1.55rem;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 .75rem 1.8rem rgba(210,4,4,.25);
}

.wpi-thankyou-success-head h2,
.wpi-thankyou-empty h2 {
  margin: 0;
  color: #101010;
  font-family: var(--font-display);
  font-size: clamp(2rem, 2.75vw, 3.1rem);
  line-height: 1.02;
  letter-spacing: -.035em;
  text-transform: uppercase;
}

.wpi-thankyou-success-head p,
.wpi-thankyou-empty p {
  max-width: 42rem;
  margin: .55rem 0 0;
  color: rgba(0,0,0,.68);
  font-size: 1rem;
  line-height: 1.55;
}

.wpi-thankyou-overview {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .8rem;
  margin: 1.35rem 0 2.1rem;
  padding: 0;
  list-style: none;
}

.wpi-thankyou-overview li {
  min-width: 0;
  padding: 1rem;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 1rem;
  background: #f7f7f7;
}

.wpi-thankyou-overview span {
  display: block;
  margin-bottom: .35rem;
  color: rgba(0,0,0,.55);
  font-size: .74rem;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.wpi-thankyou-overview strong {
  display: block;
  overflow-wrap: anywhere;
  color: #111;
  font-size: .98rem;
  font-weight: 900;
  line-height: 1.35;
}

.wpi-thankyou-native-details {
  margin-top: 1rem;
}

.wpi-thankyou-native-details .woocommerce-order-details,
.wpi-thankyou-native-details .woocommerce-customer-details {
  margin-top: 2rem;
}

.wpi-thankyou-native-details .woocommerce-order-details__title,
.wpi-thankyou-native-details .woocommerce-column__title {
  margin: 0 0 1rem;
  font-family: var(--font-display);
  font-size: clamp(1.65rem, 2vw, 2.25rem);
  line-height: 1;
  letter-spacing: -.03em;
  text-transform: uppercase;
}

.wpi-thankyou-card table.shop_table,
.wpi-thankyou-native-details table.shop_table,
.wpi-thankyou-native-details .woocommerce-table {
  width: 100%;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.09) !important;
  border-collapse: separate !important;
  border-spacing: 0;
  border-radius: 1.15rem;
  background: #fff;
}

.wpi-thankyou-card table.shop_table th,
.wpi-thankyou-card table.shop_table td,
.wpi-thankyou-native-details table.shop_table th,
.wpi-thankyou-native-details table.shop_table td,
.wpi-thankyou-native-details .woocommerce-table th,
.wpi-thankyou-native-details .woocommerce-table td {
  padding: 1rem 1.1rem !important;
  border-color: rgba(0,0,0,.08) !important;
  color: #111;
  line-height: 1.45;
  vertical-align: middle;
}

.wpi-thankyou-card table.shop_table th,
.wpi-thankyou-native-details table.shop_table th,
.wpi-thankyou-native-details .woocommerce-table th {
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.wpi-thankyou-native-details .woocommerce-customer-details address {
  padding: 1.15rem !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  border-radius: 1.15rem;
  background: #f8f8f8;
  color: rgba(0,0,0,.78);
  line-height: 1.55;
}

.wpi-thankyou-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .8rem;
  margin-top: 2rem;
}

.wpi-thankyou-empty .wpi-thankyou-actions {
  justify-content: center;
}

.wpi-thankyou-button,
.wpi-thankyou-card a.button,
.wpi-thankyou-card .button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: .95rem 1.65rem !important;
  border: 1px solid #d20404 !important;
  border-radius: 999px !important;
  background: #d20404 !important;
  color: #fff !important;
  font-size: .88rem !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  letter-spacing: .06em;
  text-align: center;
  text-decoration: none !important;
  text-transform: uppercase;
  box-shadow: 0 .75rem 1.7rem rgba(210,4,4,.18);
}

.wpi-thankyou-button-secondary {
  background: #111 !important;
  border-color: #111 !important;
}

.wpi-thankyou-card .woocommerce-notice,
.wpi-thankyou-card .woocommerce-message,
.wpi-thankyou-card .woocommerce-info,
.wpi-thankyou-card .woocommerce-error {
  margin: 0 0 1rem !important;
  padding: 1rem 1.1rem !important;
  border-radius: 1rem;
  line-height: 1.5;
}

@media (max-width: 1180px) {
  .wpi-thankyou-overview {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .wpi-thankyou-hero {
    min-height: auto;
  }

  .wpi-thankyou-hero-copy {
    padding-top: 4.2rem;
    padding-bottom: 4.6rem;
  }

  .wpi-thankyou-hero-copy h1 {
    font-size: clamp(3rem, 9vw, 4.4rem);
  }

  .wpi-thankyou-main-section {
    padding-top: 3rem;
  }

  .wpi-thankyou-card {
    padding: 1.35rem;
    border-radius: 1.4rem;
  }

  .wpi-thankyou-success-head {
    align-items: flex-start;
  }

  .wpi-thankyou-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body.woocommerce-order-received {
    overflow-x: hidden;
  }

  .wpi-thankyou-hero-copy {
    padding: 2.85rem 1.05rem 3.25rem;
  }

  .wpi-thankyou-hero-copy h1 {
    font-size: clamp(2.55rem, 10.5vw, 3.65rem);
    line-height: .94;
  }

  .wpi-thankyou-hero-copy p {
    max-width: 28rem;
    font-size: 1.05rem;
    line-height: 1.48;
  }

  .wpi-thankyou-main-section {
    padding: 2.15rem .85rem 3.6rem;
  }

  .wpi-thankyou-card {
    padding: .9rem;
    border-radius: 1.25rem;
  }

  .wpi-thankyou-success-head {
    flex-direction: column;
    gap: .95rem;
    padding: 1.1rem;
  }

  .wpi-thankyou-status-icon {
    width: 3.25rem;
    height: 3.25rem;
  }

  .wpi-thankyou-success-head h2,
  .wpi-thankyou-empty h2 {
    font-size: clamp(1.85rem, 8vw, 2.65rem);
  }

  .wpi-thankyou-overview {
    grid-template-columns: 1fr;
    gap: .65rem;
    margin-bottom: 1.55rem;
  }

  .wpi-thankyou-native-details .woocommerce-order-details,
  .wpi-thankyou-native-details .woocommerce-customer-details {
    margin-top: 1.35rem;
  }

  .wpi-thankyou-card table.shop_table,
  .wpi-thankyou-card table.shop_table tbody,
  .wpi-thankyou-card table.shop_table tfoot,
  .wpi-thankyou-card table.shop_table tr,
  .wpi-thankyou-card table.shop_table th,
  .wpi-thankyou-card table.shop_table td,
  .wpi-thankyou-native-details .woocommerce-table,
  .wpi-thankyou-native-details .woocommerce-table tbody,
  .wpi-thankyou-native-details .woocommerce-table tfoot,
  .wpi-thankyou-native-details .woocommerce-table tr,
  .wpi-thankyou-native-details .woocommerce-table th,
  .wpi-thankyou-native-details .woocommerce-table td {
    display: block;
    width: 100% !important;
    text-align: left !important;
  }

  .wpi-thankyou-card table.shop_table tr,
  .wpi-thankyou-native-details .woocommerce-table tr {
    padding: .8rem 0;
    border-bottom: 1px solid rgba(0,0,0,.08);
  }

  .wpi-thankyou-card table.shop_table th,
  .wpi-thankyou-card table.shop_table td,
  .wpi-thankyou-native-details .woocommerce-table th,
  .wpi-thankyou-native-details .woocommerce-table td {
    padding: .35rem .65rem !important;
    border: 0 !important;
  }

  .wpi-thankyou-actions,
  .wpi-thankyou-empty .wpi-thankyou-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: .7rem;
  }

  .wpi-thankyou-button,
  .wpi-thankyou-card a.button,
  .wpi-thankyou-card .button {
    width: 100% !important;
    min-height: 3.35rem;
  }
}

@media (max-width: 420px) {
  .wpi-thankyou-hero-copy {
    padding-top: 2.55rem;
    padding-bottom: 2.85rem;
  }

  .wpi-thankyou-main-section {
    padding-left: .65rem;
    padding-right: .65rem;
  }

  .wpi-thankyou-card {
    padding: .7rem;
  }
}

/* v1.0.93 Shop hero Figma background + heading spacing fix */
.wpi-shop-page .wpi-shop-hero {
  position: relative !important;
  isolation: isolate !important;
  background: #000 !important;
  min-height: 45.75rem !important;
}

.wpi-shop-page .wpi-shop-hero::before {
  z-index: 0 !important;
  opacity: 1 !important;
  background:
    linear-gradient(180deg, #303030 0%, rgba(19,19,19,.92) 15%, rgba(0,0,0,.54) 47%, #000 95%) !important;
}

.wpi-shop-page .wpi-shop-hero > * {
  position: relative !important;
}

.wpi-shop-page .wpi-shop-announcement,
.wpi-shop-page .wpi-shop-hero .wpi-global-header,
.wpi-shop-page .wpi-shop-hero-copy {
  z-index: 5 !important;
}

.wpi-shop-page .wpi-shop-hero-art,
.wpi-shop-page .wpi-shop-hero-bottom-glow {
  position: absolute !important;
  display: block !important;
  pointer-events: none !important;
  z-index: 1 !important;
}

.wpi-shop-page .wpi-shop-hero-art-left {
  left: max(-8rem, -5vw) !important;
  top: 8.3rem !important;
  width: clamp(25rem, 32vw, 38.5rem) !important;
  height: clamp(33rem, 38vw, 44rem) !important;
  opacity: .76 !important;
  filter: blur(.25px) saturate(1.1) !important;
  transform: rotate(-4deg) !important;
  background:
    radial-gradient(ellipse at 52% 47%, rgba(0,0,0,.88) 0 13%, rgba(0,0,0,.68) 17%, transparent 20%),
    radial-gradient(ellipse at 51% 42%, rgba(210,4,4,.9) 0 9%, rgba(143,14,14,.72) 16%, rgba(28,0,0,.62) 28%, transparent 51%),
    radial-gradient(ellipse at 22% 58%, rgba(168,4,4,.78) 0 10%, rgba(0,0,0,.38) 28%, transparent 48%),
    linear-gradient(118deg, transparent 0 16%, rgba(210,4,4,.6) 28%, rgba(0,0,0,.7) 47%, rgba(143,14,14,.48) 70%, transparent 88%) !important;
  clip-path: polygon(14% 6%, 72% 0, 100% 18%, 92% 78%, 60% 100%, 19% 86%, 0 44%) !important;
}

.wpi-shop-page .wpi-shop-hero-art-right {
  right: max(-7.5rem, -5vw) !important;
  top: 22.6rem !important;
  width: clamp(18rem, 22vw, 25rem) !important;
  height: clamp(19rem, 23vw, 27rem) !important;
  opacity: .72 !important;
  filter: blur(.25px) saturate(1.08) !important;
  transform: rotate(6deg) !important;
  background:
    radial-gradient(ellipse at 48% 43%, rgba(0,0,0,.82) 0 12%, transparent 18%),
    radial-gradient(ellipse at 48% 50%, rgba(210,4,4,.88) 0 12%, rgba(143,14,14,.72) 22%, rgba(0,0,0,.58) 42%, transparent 62%),
    linear-gradient(42deg, transparent 0 12%, rgba(143,14,14,.62) 34%, rgba(0,0,0,.66) 58%, transparent 87%) !important;
  clip-path: polygon(24% 0, 90% 14%, 100% 64%, 71% 100%, 16% 89%, 0 33%) !important;
}

.wpi-shop-page .wpi-shop-hero-bottom-glow {
  left: 50% !important;
  bottom: -8.6rem !important;
  width: min(124rem, 104vw) !important;
  height: 16.5rem !important;
  transform: translateX(-50%) !important;
  border-radius: 50% 50% 0 0 / 54% 54% 0 0 !important;
  opacity: .88 !important;
  filter: blur(2px) !important;
  background: linear-gradient(183deg, #000 18%, #8f0e0e 78%) !important;
}

.wpi-shop-page .wpi-shop-hero-copy {
  padding-top: 4.65rem !important;
}

.wpi-shop-page .wpi-shop-hero-copy h1 {
  max-width: 56rem !important;
  line-height: 1.13 !important;
  letter-spacing: .02em !important;
  text-wrap: balance !important;
}

.wpi-shop-page .wpi-shop-hero-copy p {
  margin-top: 1.45rem !important;
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-shop-page .wpi-shop-hero-copy h1 {
    line-height: 1.08 !important;
    letter-spacing: .018em !important;
  }

  .wpi-shop-page .wpi-shop-hero-art-left {
    left: -11rem !important;
    top: 10rem !important;
    opacity: .55 !important;
  }

  .wpi-shop-page .wpi-shop-hero-art-right {
    right: -9rem !important;
    top: 24rem !important;
    opacity: .55 !important;
  }
}

@media (max-width: 767px) {
  .wpi-shop-page .wpi-shop-hero {
    padding-bottom: 4.25rem !important;
    min-height: auto !important;
  }

  .wpi-shop-page .wpi-shop-hero::before {
    background:
      linear-gradient(180deg, #303030 0%, rgba(21,21,21,.94) 18%, rgba(0,0,0,.6) 52%, #000 96%) !important;
  }

  .wpi-shop-page .wpi-shop-hero-art-left {
    left: -13.5rem !important;
    top: 11.5rem !important;
    width: 28rem !important;
    height: 33rem !important;
    opacity: .45 !important;
  }

  .wpi-shop-page .wpi-shop-hero-art-right {
    right: -11rem !important;
    top: 25.5rem !important;
    width: 20rem !important;
    height: 22rem !important;
    opacity: .42 !important;
  }

  .wpi-shop-page .wpi-shop-hero-bottom-glow {
    bottom: -6.7rem !important;
    height: 12rem !important;
    width: 112vw !important;
    opacity: .75 !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy {
    padding-top: 3.35rem !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy h1 {
    line-height: 1.03 !important;
    letter-spacing: .012em !important;
    font-size: clamp(2.75rem, 10.3vw, 3.95rem) !important;
  }
}

@media (max-width: 420px) {
  .wpi-shop-page .wpi-shop-hero-copy h1 {
    letter-spacing: .01em !important;
    font-size: clamp(2.55rem, 10.6vw, 3.45rem) !important;
  }
}

/* v1.0.94 Single product design polish + checkout styling */
.single-product .wpi-product-hero,
.wpi-single-product-page .wpi-product-hero {
  min-height: 44rem;
  background:
    radial-gradient(circle at 8% 72%, rgba(210,4,4,.42), transparent 26rem),
    radial-gradient(circle at 93% 28%, rgba(210,4,4,.24), transparent 23rem),
    linear-gradient(180deg, #020202 0%, #141414 42%, #000 100%) !important;
}

.single-product .wpi-product-hero::before,
.wpi-single-product-page .wpi-product-hero::before {
  background:
    linear-gradient(180deg, rgba(48,48,48,.56) 0%, rgba(0,0,0,.08) 44%, #000 98%),
    radial-gradient(ellipse at 8% 36%, rgba(210,4,4,.34) 0 5.2rem, transparent 9.5rem),
    radial-gradient(ellipse at 94% 78%, rgba(210,4,4,.46) 0 8.2rem, transparent 12.5rem) !important;
  opacity: 1 !important;
}

.single-product .wpi-product-hero::after,
.wpi-single-product-page .wpi-product-hero::after,
.wpi-checkout-hero::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8.25rem;
  width: min(106rem, 118vw);
  height: 17rem;
  transform: translateX(-50%);
  border-radius: 50% 50% 0 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(0,0,0,.08) 0%, rgba(143,14,14,.78) 74%, rgba(143,14,14,.04) 100%);
  filter: blur(2px);
  z-index: 1;
}

.single-product .wpi-product-hero-copy,
.wpi-single-product-page .wpi-product-hero-copy {
  padding-top: 5.2rem;
  padding-bottom: 5.3rem;
}

.single-product .wpi-product-hero-copy h1,
.wpi-single-product-page .wpi-product-hero-copy h1 {
  max-width: 66rem !important;
  font-size: clamp(3.35rem, 4.35vw, 5.05rem) !important;
  line-height: 1.01 !important;
  letter-spacing: .004em !important;
  text-wrap: balance;
}

.single-product .wpi-product-hero-copy p,
.wpi-single-product-page .wpi-product-hero-copy p {
  max-width: 50rem !important;
  line-height: 1.55 !important;
}

.single-product .wpi-product-main-section,
.wpi-single-product-page .wpi-product-main-section {
  padding: 5.25rem 0 4.6rem !important;
}

.single-product .wpi-product-detail-card,
.wpi-single-product-page .wpi-product-detail-card {
  grid-template-columns: minmax(0, 1.05fr) minmax(24rem, .95fr) !important;
  gap: 1.5rem !important;
  align-items: stretch !important;
  padding: 1.1rem !important;
  border-radius: 2.35rem !important;
  border: 1px solid rgba(0,0,0,.08);
  background: #fff !important;
  box-shadow: 0 1.5rem 4rem rgba(0,0,0,.1) !important;
}

.single-product .wpi-product-gallery,
.wpi-single-product-page .wpi-product-gallery {
  display: flex;
  flex-direction: column;
  border-radius: 1.85rem;
  background: #f6f6f8;
  padding: 1rem;
  min-height: 100%;
}

.single-product .wpi-product-main-image,
.wpi-single-product-page .wpi-product-main-image {
  flex: 1 1 auto;
  min-height: 37rem !important;
  border-radius: 1.5rem !important;
  background:
    radial-gradient(circle at 50% 48%, rgba(255,255,255,.92), rgba(246,246,248,.78) 52%, rgba(246,246,248,1) 100%) !important;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.03);
}

.single-product .wpi-product-main-image img,
.wpi-single-product-page .wpi-product-main-image img {
  width: 82% !important;
  height: 33.5rem !important;
  object-fit: contain !important;
}

.single-product .wpi-product-thumbs,
.wpi-single-product-page .wpi-product-thumbs {
  margin-top: 1rem !important;
}

.single-product .wpi-product-summary,
.wpi-single-product-page .wpi-product-summary {
  position: relative;
  padding: 2.35rem !important;
  border-radius: 1.85rem;
  background:
    radial-gradient(circle at 100% 0%, rgba(210,4,4,.22), transparent 18rem),
    linear-gradient(180deg, #151515 0%, #070707 100%);
  color: #fff;
  overflow: hidden;
}

.single-product .wpi-product-summary::after,
.wpi-single-product-page .wpi-product-summary::after {
  content: "";
  position: absolute;
  right: -5.5rem;
  bottom: -5.5rem;
  width: 13rem;
  height: 13rem;
  border-radius: 50%;
  background: rgba(210,4,4,.36);
  filter: blur(20px);
  pointer-events: none;
}

.single-product .wpi-product-summary > *,
.wpi-single-product-page .wpi-product-summary > * {
  position: relative;
  z-index: 2;
}

.single-product .wpi-product-breadcrumbs,
.single-product .wpi-product-breadcrumbs .woocommerce-breadcrumb,
.single-product .wpi-product-breadcrumbs a,
.wpi-single-product-page .wpi-product-breadcrumbs,
.wpi-single-product-page .wpi-product-breadcrumbs .woocommerce-breadcrumb,
.wpi-single-product-page .wpi-product-breadcrumbs a {
  color: rgba(255,255,255,.72) !important;
}

.single-product .wpi-product-summary .eyebrow,
.wpi-single-product-page .wpi-product-summary .eyebrow {
  border-color: rgba(255,255,255,.72) !important;
  color: #fff !important;
  background: rgba(255,255,255,.08);
}

.single-product .wpi-product-summary h2,
.wpi-single-product-page .wpi-product-summary h2 {
  max-width: 100% !important;
  color: #fff !important;
  font-size: clamp(3.05rem, 4vw, 4.65rem) !important;
  line-height: 1.01 !important;
  letter-spacing: .002em !important;
  text-wrap: balance;
}

.single-product .wpi-product-price,
.single-product .wpi-product-price .woocommerce-Price-amount,
.wpi-single-product-page .wpi-product-price,
.wpi-single-product-page .wpi-product-price .woocommerce-Price-amount {
  color: #ff2323 !important;
  font-size: 2.15rem !important;
}

.single-product .wpi-product-price del,
.wpi-single-product-page .wpi-product-price del {
  color: rgba(255,255,255,.65) !important;
}

.single-product .wpi-product-short-description,
.single-product .wpi-product-short-description p,
.wpi-single-product-page .wpi-product-short-description,
.wpi-single-product-page .wpi-product-short-description p {
  color: rgba(255,255,255,.82) !important;
}

.single-product .wpi-product-meta-list p,
.wpi-single-product-page .wpi-product-meta-list p {
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.1);
}

.single-product .wpi-product-meta-list span,
.wpi-single-product-page .wpi-product-meta-list span {
  color: rgba(255,255,255,.6) !important;
}

.single-product .wpi-product-meta-list strong,
.single-product .wpi-product-meta-list strong a,
.single-product .wpi-product-meta-list .stock,
.wpi-single-product-page .wpi-product-meta-list strong,
.wpi-single-product-page .wpi-product-meta-list strong a,
.wpi-single-product-page .wpi-product-meta-list .stock {
  color: #fff !important;
}

.single-product .wpi-product-cart-box,
.wpi-single-product-page .wpi-product-cart-box {
  background: #fff !important;
  border-radius: 1.25rem !important;
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 .8rem 2rem rgba(0,0,0,.18);
}

.single-product .wpi-product-cart-box table.variations label,
.wpi-single-product-page .wpi-product-cart-box table.variations label,
.single-product .wpi-product-cart-box .woocommerce-variation-description,
.single-product .wpi-product-cart-box .woocommerce-variation-price,
.single-product .wpi-product-cart-box .woocommerce-variation-availability,
.wpi-single-product-page .wpi-product-cart-box .woocommerce-variation-description,
.wpi-single-product-page .wpi-product-cart-box .woocommerce-variation-price,
.wpi-single-product-page .wpi-product-cart-box .woocommerce-variation-availability {
  color: #111 !important;
}

.single-product .wpi-product-description-card h2,
.single-product .wpi-product-additional-card h2,
.single-product .wpi-product-related-head h2,
.wpi-single-product-page .wpi-product-description-card h2,
.wpi-single-product-page .wpi-product-additional-card h2,
.wpi-single-product-page .wpi-product-related-head h2 {
  letter-spacing: .002em !important;
  line-height: 1.02 !important;
}

.wpi-checkout-page,
.wpi-checkout-page * {
  box-sizing: border-box;
}

.wpi-checkout-page {
  background: #fafafa;
  color: #111;
  overflow-x: hidden;
}

.wpi-checkout-hero {
  position: relative;
  overflow: hidden;
  min-height: 40rem;
  background:
    radial-gradient(circle at 8% 72%, rgba(210,4,4,.42), transparent 26rem),
    radial-gradient(circle at 93% 28%, rgba(210,4,4,.24), transparent 23rem),
    linear-gradient(180deg, #020202 0%, #141414 42%, #000 100%);
  color: #fff;
}

.wpi-checkout-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(48,48,48,.56) 0%, rgba(0,0,0,.08) 44%, #000 98%),
    radial-gradient(ellipse at 8% 36%, rgba(210,4,4,.34) 0 5.2rem, transparent 9.5rem),
    radial-gradient(ellipse at 94% 78%, rgba(210,4,4,.46) 0 8.2rem, transparent 12.5rem);
}

.wpi-checkout-hero > * {
  position: relative;
  z-index: 2;
}

.wpi-checkout-announcement {
  position: relative;
  z-index: 8;
}

.wpi-checkout-hero .wpi-global-header {
  position: relative;
  z-index: 9;
}

.wpi-checkout-hero-copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-top: 4.8rem;
  padding-bottom: 5rem;
}

.wpi-checkout-hero-copy .eyebrow {
  margin-bottom: 2.1rem;
  background: rgba(0,0,0,.18);
}

.wpi-checkout-hero-copy h1 {
  margin: 0;
  max-width: 58rem;
  font-family: var(--display);
  font-size: clamp(3.4rem, 4.3vw, 5rem);
  font-weight: 700;
  line-height: 1.01;
  letter-spacing: .004em;
  text-transform: uppercase;
  text-wrap: balance;
  color: #fff;
}

.wpi-checkout-hero-copy p {
  margin: 1.4rem auto 0;
  max-width: 48rem;
  font-size: 1.24rem;
  line-height: 1.55;
  color: rgba(255,255,255,.9);
}

.wpi-checkout-main-section {
  background: #fafafa;
  padding: 5.2rem 0 6rem;
}

.wpi-checkout-card {
  max-width: 94rem;
  margin: 0 auto;
  padding: 2rem;
  border-radius: 2rem;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 1.3rem 3.4rem rgba(20,20,20,.08);
}

.wpi-checkout-card .woocommerce-notices-wrapper,
.wpi-checkout-card .woocommerce-message,
.wpi-checkout-card .woocommerce-error,
.wpi-checkout-card .woocommerce-info {
  margin-bottom: 1.3rem;
}

.wpi-checkout-card .woocommerce-message,
.wpi-checkout-card .woocommerce-info,
.wpi-checkout-card .woocommerce-error {
  border: 0;
  border-left: .35rem solid #d20404;
  border-radius: 1rem;
  background: #f6f6f8;
  color: #111;
  padding: 1.1rem 1.3rem;
  font-family: var(--body);
}

.wpi-checkout-card form.checkout.woocommerce-checkout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(24rem, .8fr);
  gap: 2rem;
  align-items: start;
}

.wpi-checkout-card .col2-set {
  grid-column: 1;
  display: grid;
  gap: 1.25rem;
  width: 100% !important;
  float: none !important;
}

.wpi-checkout-card .col2-set .col-1,
.wpi-checkout-card .col2-set .col-2 {
  float: none !important;
  width: 100% !important;
  padding: 1.6rem;
  border-radius: 1.35rem;
  background: #f6f6f8;
  border: 1px solid rgba(0,0,0,.06);
}

.wpi-checkout-card #order_review_heading,
.wpi-checkout-card #order_review {
  grid-column: 2;
}

.wpi-checkout-card #order_review_heading {
  margin: 0 0 -1rem;
  padding: 1.6rem 1.6rem 0;
  border-radius: 1.35rem 1.35rem 0 0;
  background: #111;
  color: #fff;
  font-family: var(--display);
  font-size: 2rem;
  line-height: 1;
  letter-spacing: .005em;
  text-transform: uppercase;
}

.wpi-checkout-card #order_review {
  position: sticky;
  top: 1.5rem;
  padding: 1.4rem;
  border-radius: 0 0 1.35rem 1.35rem;
  background: #111;
  color: #fff;
}

.wpi-checkout-card h3,
.wpi-checkout-card .woocommerce-billing-fields h3,
.wpi-checkout-card .woocommerce-shipping-fields h3,
.wpi-checkout-card .woocommerce-additional-fields h3 {
  margin: 0 0 1.2rem;
  font-family: var(--display);
  font-size: clamp(1.75rem, 2.2vw, 2.45rem);
  line-height: 1.02;
  letter-spacing: .002em;
  text-transform: uppercase;
  color: #111;
}

.wpi-checkout-card .form-row {
  margin: 0 0 1rem !important;
  padding: 0 !important;
}

.wpi-checkout-card label {
  display: block;
  margin-bottom: .45rem;
  font-size: .82rem;
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: .055em;
  text-transform: uppercase;
  color: rgba(0,0,0,.68);
}

.wpi-checkout-card .required {
  color: #d20404;
  text-decoration: none;
}

.wpi-checkout-card input.input-text,
.wpi-checkout-card textarea,
.wpi-checkout-card select,
.wpi-checkout-card .select2-container--default .select2-selection--single {
  width: 100% !important;
  min-height: 3.35rem;
  border: 1px solid rgba(0,0,0,.14) !important;
  border-radius: .85rem !important;
  background: #fff !important;
  color: #111 !important;
  padding: .82rem 1rem !important;
  font-family: var(--body);
  font-size: 1rem;
  line-height: 1.25;
  box-shadow: none !important;
}

.wpi-checkout-card textarea {
  min-height: 8rem;
  resize: vertical;
}

.wpi-checkout-card .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 1.6;
  color: #111 !important;
  padding: 0 !important;
}

.wpi-checkout-card .select2-container--default .select2-selection--single .select2-selection__arrow {
  top: .5rem;
  right: .6rem;
}

.wpi-checkout-card .woocommerce-checkout-review-order-table {
  width: 100%;
  border: 0 !important;
  border-collapse: separate;
  border-spacing: 0;
  margin: 0 0 1.2rem;
  color: #fff;
}

.wpi-checkout-card .woocommerce-checkout-review-order-table th,
.wpi-checkout-card .woocommerce-checkout-review-order-table td {
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.12) !important;
  padding: 1rem 0 !important;
  color: rgba(255,255,255,.84);
  vertical-align: top;
}

.wpi-checkout-card .woocommerce-checkout-review-order-table th {
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .055em;
  font-size: .82rem;
}

.wpi-checkout-card .woocommerce-checkout-review-order-table td.product-name {
  color: #fff;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.wpi-checkout-card .woocommerce-checkout-review-order-table .order-total th,
.wpi-checkout-card .woocommerce-checkout-review-order-table .order-total td,
.wpi-checkout-card .woocommerce-checkout-review-order-table .order-total .amount {
  color: #fff !important;
  font-size: 1.25rem;
  font-weight: 900;
}

.wpi-checkout-card #payment {
  border-radius: 1rem;
  background: rgba(255,255,255,.08) !important;
  color: #fff;
  border: 1px solid rgba(255,255,255,.1);
}

.wpi-checkout-card #payment ul.payment_methods {
  border: 0 !important;
  padding: 1rem !important;
}

.wpi-checkout-card #payment ul.payment_methods li {
  margin: 0 0 .8rem;
  color: #fff;
}

.wpi-checkout-card #payment label,
.wpi-checkout-card #payment p,
.wpi-checkout-card #payment div.payment_box {
  color: rgba(255,255,255,.82) !important;
}

.wpi-checkout-card #payment div.payment_box {
  border-radius: .8rem;
  background: rgba(255,255,255,.1) !important;
}

.wpi-checkout-card #payment div.form-row {
  padding: 1rem !important;
}

.wpi-checkout-card #place_order,
.wpi-checkout-card .button,
.wpi-checkout-card button.button,
.wpi-checkout-card a.button {
  min-height: 3.7rem;
  border: 0 !important;
  border-radius: 999px !important;
  background: #d20404 !important;
  color: #fff !important;
  padding: 1rem 1.8rem !important;
  font-family: var(--body);
  font-size: .9rem;
  font-weight: 900;
  letter-spacing: .055em;
  text-transform: uppercase;
  line-height: 1.1;
  box-shadow: none !important;
}

.wpi-checkout-card #place_order {
  width: 100%;
  margin-top: .6rem;
}

.wpi-checkout-card .woocommerce-privacy-policy-text,
.wpi-checkout-card .woocommerce-terms-and-conditions-wrapper {
  color: rgba(255,255,255,.7);
  font-size: .92rem;
  line-height: 1.5;
}

.wpi-checkout-card .woocommerce-privacy-policy-text a,
.wpi-checkout-card .woocommerce-terms-and-conditions-wrapper a,
.wpi-checkout-card #order_review a {
  color: #ff5757;
  font-weight: 800;
}

.wpi-checkout-card .woocommerce-form-coupon-toggle,
.wpi-checkout-card form.checkout_coupon {
  grid-column: 1 / -1;
}

.wpi-checkout-card form.checkout_coupon {
  display: flex;
  gap: .75rem;
  align-items: flex-end;
  padding: 1.2rem !important;
  border-radius: 1rem !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  background: #f6f6f8;
}

.wpi-checkout-card form.checkout_coupon p {
  margin: 0;
}

@media (max-width: 1100px) {
  .single-product .wpi-product-detail-card,
  .wpi-single-product-page .wpi-product-detail-card,
  .wpi-checkout-card form.checkout.woocommerce-checkout {
    grid-template-columns: 1fr !important;
  }

  .wpi-checkout-card #order_review_heading,
  .wpi-checkout-card #order_review {
    grid-column: 1;
  }

  .wpi-checkout-card #order_review {
    position: static;
  }
}

@media (max-width: 767px) {
  .single-product .wpi-product-hero,
  .wpi-single-product-page .wpi-product-hero,
  .wpi-checkout-hero {
    min-height: auto !important;
  }

  .single-product .wpi-product-hero-copy,
  .wpi-single-product-page .wpi-product-hero-copy,
  .wpi-checkout-hero-copy {
    padding-top: 3rem !important;
    padding-bottom: 3.4rem !important;
    padding-inline: 1rem !important;
  }

  .single-product .wpi-product-hero-copy h1,
  .wpi-single-product-page .wpi-product-hero-copy h1,
  .wpi-checkout-hero-copy h1 {
    font-size: clamp(2.7rem, 10.2vw, 3.9rem) !important;
    line-height: 1.02 !important;
    letter-spacing: .002em !important;
  }

  .single-product .wpi-product-hero-copy p,
  .wpi-single-product-page .wpi-product-hero-copy p,
  .wpi-checkout-hero-copy p {
    font-size: 1.06rem !important;
    line-height: 1.5 !important;
  }

  .single-product .wpi-product-main-section,
  .wpi-single-product-page .wpi-product-main-section,
  .wpi-checkout-main-section {
    padding: 2.2rem .85rem 3.4rem !important;
  }

  .single-product .wpi-product-detail-card,
  .wpi-single-product-page .wpi-product-detail-card,
  .wpi-checkout-card {
    padding: .85rem !important;
    border-radius: 1.35rem !important;
  }

  .single-product .wpi-product-gallery,
  .wpi-single-product-page .wpi-product-gallery,
  .single-product .wpi-product-summary,
  .wpi-single-product-page .wpi-product-summary,
  .wpi-checkout-card .col2-set .col-1,
  .wpi-checkout-card .col2-set .col-2,
  .wpi-checkout-card #order_review,
  .wpi-checkout-card #order_review_heading {
    border-radius: 1rem !important;
    padding: 1rem !important;
  }

  .single-product .wpi-product-main-image,
  .wpi-single-product-page .wpi-product-main-image {
    min-height: 20rem !important;
  }

  .single-product .wpi-product-main-image img,
  .wpi-single-product-page .wpi-product-main-image img {
    width: 88% !important;
    height: 18rem !important;
  }

  .single-product .wpi-product-summary h2,
  .wpi-single-product-page .wpi-product-summary h2 {
    font-size: clamp(2.35rem, 9vw, 3.25rem) !important;
    line-height: 1.04 !important;
    letter-spacing: .002em !important;
  }

  .wpi-checkout-card .col2-set {
    gap: .9rem;
  }

  .wpi-checkout-card h3,
  .wpi-checkout-card .woocommerce-billing-fields h3,
  .wpi-checkout-card .woocommerce-shipping-fields h3,
  .wpi-checkout-card .woocommerce-additional-fields h3,
  .wpi-checkout-card #order_review_heading {
    font-size: 1.65rem !important;
  }

  .wpi-checkout-card form.checkout_coupon {
    display: grid;
    grid-template-columns: 1fr;
  }

  .wpi-checkout-card input.input-text,
  .wpi-checkout-card textarea,
  .wpi-checkout-card select,
  .wpi-checkout-card .select2-container,
  .wpi-checkout-card .select2-container--default .select2-selection--single,
  .wpi-checkout-card #place_order,
  .wpi-checkout-card .button,
  .wpi-checkout-card button.button,
  .wpi-checkout-card a.button {
    width: 100% !important;
    max-width: 100% !important;
  }

  .wpi-checkout-card .woocommerce-checkout-review-order-table,
  .wpi-checkout-card .woocommerce-checkout-review-order-table tbody,
  .wpi-checkout-card .woocommerce-checkout-review-order-table tfoot,
  .wpi-checkout-card .woocommerce-checkout-review-order-table tr,
  .wpi-checkout-card .woocommerce-checkout-review-order-table th,
  .wpi-checkout-card .woocommerce-checkout-review-order-table td {
    display: block;
    width: 100% !important;
    text-align: left !important;
  }

  .wpi-checkout-card .woocommerce-checkout-review-order-table tr {
    padding: .75rem 0;
    border-bottom: 1px solid rgba(255,255,255,.12);
  }

  .wpi-checkout-card .woocommerce-checkout-review-order-table th,
  .wpi-checkout-card .woocommerce-checkout-review-order-table td {
    border: 0 !important;
    padding: .2rem 0 !important;
  }
}

@media (max-width: 420px) {
  .single-product .wpi-product-hero-copy h1,
  .wpi-single-product-page .wpi-product-hero-copy h1,
  .wpi-checkout-hero-copy h1 {
    font-size: clamp(2.45rem, 10.8vw, 3.35rem) !important;
  }

  .single-product .wpi-product-main-image,
  .wpi-single-product-page .wpi-product-main-image {
    min-height: 17.5rem !important;
  }

  .single-product .wpi-product-main-image img,
  .wpi-single-product-page .wpi-product-main-image img {
    height: 15.8rem !important;
  }

  .wpi-checkout-main-section {
    padding-left: .65rem !important;
    padding-right: .65rem !important;
  }

  .wpi-checkout-card {
    padding: .7rem !important;
  }
}

/* v1.0.95 Single product conversion rebuild + checkout order box fix */
.wpi-sp-conversion-page {
  background:
    radial-gradient(circle at 6% 8%, rgba(210, 4, 4, .08), transparent 18rem),
    radial-gradient(circle at 94% 28%, rgba(210, 4, 4, .07), transparent 19rem),
    #fafafa;
}

.wpi-sp-topbar {
  position: relative;
  z-index: 50;
  background: #050505;
  color: #fff;
  overflow: visible;
}

.wpi-sp-topbar::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -2.7rem;
  width: min(80rem, 86vw);
  height: 5.4rem;
  transform: translateX(-50%);
  pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(210,4,4,.28), transparent 68%);
  filter: blur(12px);
  opacity: .7;
}

.wpi-sp-topbar > * {
  position: relative;
  z-index: 2;
}

.wpi-sp-topbar .wpi-global-header {
  position: relative;
  z-index: 10050 !important;
}

.wpi-sp-system-message {
  padding: 5rem 0;
  text-align: center;
}

.wpi-sp-system-message h1 {
  margin: 0 0 1rem;
  font-family: var(--display);
  font-size: clamp(2.7rem, 4vw, 4.8rem);
  line-height: .98;
  letter-spacing: .01em;
  text-transform: uppercase;
}

.wpi-sp-main-section {
  padding: clamp(2.4rem, 4vw, 5rem) 0 3.5rem !important;
}

.wpi-sp-product-shell {
  position: relative;
  display: grid !important;
  grid-template-columns: minmax(0, 1.02fr) minmax(26rem, .98fr) !important;
  gap: clamp(2rem, 4vw, 4.5rem) !important;
  align-items: stretch !important;
  padding: clamp(1.1rem, 2.2vw, 2.25rem) !important;
  border-radius: 2.1rem !important;
  background: rgba(255,255,255,.96) !important;
  border: 1px solid rgba(17,17,17,.08);
  box-shadow: 0 1.6rem 4rem rgba(0,0,0,.09) !important;
  overflow: hidden;
}

.wpi-sp-product-shell::before {
  content: "";
  position: absolute;
  inset: -35% auto auto -15%;
  width: 34rem;
  height: 34rem;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(210,4,4,.11), transparent 66%);
  pointer-events: none;
}

.wpi-sp-product-gallery,
.wpi-sp-product-summary {
  position: relative;
  z-index: 1;
}

.wpi-sp-product-gallery {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-width: 0;
}

.wpi-sp-gallery-label {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: .65rem 1rem;
  border-radius: 999px;
  background: #111;
  color: #fff;
  font-size: .74rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.wpi-sp-main-image {
  min-height: clamp(27rem, 39vw, 43rem) !important;
  border-radius: 1.8rem !important;
  background:
    linear-gradient(145deg, #f7f7f9 0%, #eeeeef 52%, #fff 100%) !important;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.055);
}

.wpi-sp-main-image::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: 7%;
  height: 8%;
  border-radius: 999px;
  background: rgba(0,0,0,.12);
  filter: blur(18px);
  pointer-events: none;
}

.wpi-sp-main-image img {
  position: relative;
  z-index: 1;
  width: min(82%, 33rem) !important;
  height: clamp(23rem, 33vw, 37rem) !important;
  object-fit: contain !important;
  transform: translateY(-.3rem);
}

.wpi-sp-product-thumbs {
  margin-top: 0 !important;
}

.wpi-sp-product-thumbs a {
  background: #fff !important;
  box-shadow: 0 .35rem .9rem rgba(0,0,0,.06);
}

.wpi-sp-gallery-note {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .5rem 1rem;
  align-items: center;
  padding: 1rem 1.15rem;
  border-radius: 1.15rem;
  background: #111;
  color: #fff;
}

.wpi-sp-gallery-note strong {
  color: #fff;
  font-size: .95rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.wpi-sp-gallery-note span {
  color: rgba(255,255,255,.74);
  font-size: .96rem;
  line-height: 1.45;
}

.wpi-sp-product-summary {
  align-self: center;
  padding: clamp(.5rem, 1.5vw, 1.35rem) .25rem !important;
}

.wpi-sp-back-link {
  display: inline-flex;
  align-items: center;
  margin-bottom: 1rem;
  color: rgba(0,0,0,.58);
  font-size: .82rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
}

.wpi-sp-back-link:hover {
  color: #d20404;
}

.wpi-sp-product-breadcrumbs,
.wpi-sp-product-breadcrumbs .woocommerce-breadcrumb {
  margin-bottom: 1.1rem !important;
  font-size: .78rem !important;
}

.wpi-sp-eyebrow,
.wpi-sp-related-head .eyebrow,
.wpi-sp-description-card .eyebrow,
.wpi-sp-additional-card .eyebrow {
  background: rgba(210,4,4,.07);
  border-color: rgba(210,4,4,.28) !important;
  color: #d20404 !important;
}

.wpi-sp-product-title {
  margin: 1rem 0 .8rem !important;
  font-family: var(--display);
  font-size: clamp(3.05rem, 4.2vw, 5.45rem) !important;
  line-height: .96 !important;
  letter-spacing: .006em !important;
  text-transform: uppercase;
  color: #111;
  overflow-wrap: anywhere;
}

.wpi-sp-rating-row {
  margin: 0 0 .8rem;
}

.wpi-sp-rating-row .woocommerce-product-rating {
  margin: 0;
  display: flex;
  gap: .7rem;
  align-items: center;
  flex-wrap: wrap;
}

.wpi-sp-rating-row .star-rating {
  float: none;
  color: #d20404;
}

.wpi-sp-price,
.wpi-sp-price .woocommerce-Price-amount {
  font-size: clamp(1.85rem, 2.4vw, 2.55rem) !important;
  letter-spacing: .01em;
}

.wpi-sp-short-description {
  margin: 1.2rem 0 1.25rem !important;
  max-width: 43rem;
  font-size: 1.12rem !important;
  line-height: 1.62 !important;
  color: rgba(0,0,0,.72) !important;
}

.wpi-sp-trust-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin: 1.35rem 0;
}

.wpi-sp-trust-row div {
  min-width: 0;
  padding: .95rem .8rem;
  border-radius: 1rem;
  background: #111;
  color: #fff;
}

.wpi-sp-trust-row strong,
.wpi-sp-trust-row span {
  display: block;
}

.wpi-sp-trust-row strong {
  font-family: var(--display);
  font-size: 1.25rem;
  line-height: 1;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.wpi-sp-trust-row span {
  margin-top: .35rem;
  color: rgba(255,255,255,.72);
  font-size: .78rem;
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.wpi-sp-options-preview {
  display: grid;
  gap: .7rem;
  margin: 1.1rem 0;
}

.wpi-sp-option-group {
  display: grid;
  grid-template-columns: 7rem 1fr;
  gap: 1rem;
  align-items: center;
  padding: .85rem 1rem;
  border-radius: .9rem;
  background: rgba(0,0,0,.04);
}

.wpi-sp-option-group span {
  color: rgba(0,0,0,.58);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.wpi-sp-option-group p {
  margin: 0;
  color: #111;
  font-weight: 800;
  line-height: 1.4;
}

.wpi-sp-meta-list {
  margin: 1.1rem 0 !important;
}

.wpi-sp-cart-box {
  margin-top: 1.25rem !important;
  padding: 1.25rem !important;
  border-radius: 1.25rem !important;
  background: linear-gradient(180deg, #f6f6f8 0%, #fff 100%) !important;
  border: 1px solid rgba(0,0,0,.08);
}

.wpi-sp-cart-heading {
  margin-bottom: 1rem;
}

.wpi-sp-cart-heading strong,
.wpi-sp-cart-heading span {
  display: block;
}

.wpi-sp-cart-heading strong {
  font-family: var(--display);
  font-size: 1.45rem;
  line-height: 1;
  letter-spacing: .01em;
  text-transform: uppercase;
  color: #111;
}

.wpi-sp-cart-heading span {
  margin-top: .35rem;
  color: rgba(0,0,0,.58);
  font-size: .95rem;
  line-height: 1.45;
}

.wpi-sp-cart-box form.cart,
.wpi-sp-cart-box .woocommerce-variation-add-to-cart {
  display: flex !important;
  gap: .85rem !important;
  align-items: stretch !important;
  flex-wrap: wrap !important;
}

.wpi-sp-cart-box .quantity {
  display: flex !important;
  align-items: stretch;
  margin: 0 !important;
}

.wpi-sp-cart-box .quantity input.qty,
.wpi-sp-cart-box input.qty {
  width: 5.6rem !important;
  min-height: 3.95rem !important;
  border-radius: 999px !important;
  border: 1px solid rgba(0,0,0,.15) !important;
  background: #fff !important;
  color: #111 !important;
  font-weight: 900 !important;
  text-align: center !important;
  box-shadow: none !important;
}

.wpi-sp-cart-box .single_add_to_cart_button,
.wpi-sp-cart-box button.single_add_to_cart_button,
.wpi-sp-cart-box .single_add_to_cart_button.button,
.wpi-sp-cart-box .single_add_to_cart_button.button.alt,
.wpi-sp-cart-box .button,
.wpi-sp-cart-box button.button,
.wpi-sp-cart-box a.button,
.wpi-sp-cart-box .added_to_cart,
.single-product .wpi-sp-cart-box .wc-forward,
.single-product .wpi-sp-cart-box .reset_variations {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 3.95rem !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #d20404 !important;
  color: #fff !important;
  padding: 1rem 2rem !important;
  font-family: var(--body) !important;
  font-size: .86rem !important;
  font-weight: 950 !important;
  line-height: 1.1 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  box-shadow: 0 .75rem 1.25rem rgba(210,4,4,.2) !important;
  cursor: pointer !important;
}

.wpi-sp-cart-box .single_add_to_cart_button,
.wpi-sp-cart-box button.single_add_to_cart_button,
.wpi-sp-cart-box .single_add_to_cart_button.button,
.wpi-sp-cart-box .single_add_to_cart_button.button.alt {
  flex: 1 1 13rem !important;
}

.wpi-sp-cart-box .single_add_to_cart_button:hover,
.wpi-sp-cart-box .button:hover,
.wpi-sp-cart-box button.button:hover,
.wpi-sp-cart-box a.button:hover,
.wpi-sp-cart-box .added_to_cart:hover,
.single-product .wpi-sp-cart-box .wc-forward:hover,
.single-product .wpi-sp-cart-box .reset_variations:hover {
  background: #111 !important;
  color: #fff !important;
}

.single-product .wpi-sp-cart-box .reset_variations {
  min-height: 2.4rem !important;
  margin: .6rem 0 0 !important;
  padding: .65rem 1rem !important;
  background: #111 !important;
  box-shadow: none !important;
}

.wpi-sp-cart-box table.variations {
  width: 100% !important;
  margin: 0 0 .9rem !important;
}

.wpi-sp-cart-box table.variations select,
.wpi-sp-cart-box select {
  min-height: 3.6rem !important;
  border-radius: .95rem !important;
  border: 1px solid rgba(0,0,0,.15) !important;
  background: #fff !important;
  color: #111 !important;
  padding: .8rem 1rem !important;
  box-shadow: none !important;
}

.wpi-sp-benefits-section {
  padding: 0 0 3.2rem;
  background: #fafafa;
}

.wpi-sp-benefits-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.wpi-sp-benefits-grid > div {
  min-width: 0;
  padding: clamp(1.35rem, 2vw, 2rem);
  border-radius: 1.4rem;
  background: #111;
  color: #fff;
  overflow: hidden;
  position: relative;
}

.wpi-sp-benefits-grid > div::after {
  content: "";
  position: absolute;
  right: -4rem;
  bottom: -4rem;
  width: 11rem;
  height: 11rem;
  border-radius: 999px;
  background: rgba(210,4,4,.34);
  filter: blur(12px);
}

.wpi-sp-benefits-grid span,
.wpi-sp-benefits-grid h2,
.wpi-sp-benefits-grid p {
  position: relative;
  z-index: 1;
}

.wpi-sp-benefits-grid span {
  display: inline-flex;
  margin-bottom: 1.1rem;
  color: #ff4a4a;
  font-weight: 950;
}

.wpi-sp-benefits-grid h2 {
  margin: 0 0 .75rem;
  font-family: var(--display);
  font-size: clamp(1.8rem, 2.35vw, 2.65rem);
  line-height: .98;
  letter-spacing: .01em;
  text-transform: uppercase;
}

.wpi-sp-benefits-grid p {
  margin: 0;
  color: rgba(255,255,255,.75);
  font-size: 1rem;
  line-height: 1.55;
}

.wpi-sp-info-section {
  padding-top: .5rem !important;
}

.wpi-sp-description-card,
.wpi-sp-additional-card {
  border: 1px solid rgba(0,0,0,.07);
}

/* Checkout: keep Your Order box contained and gateway-safe */
.wpi-checkout-card,
.wpi-checkout-card * {
  min-width: 0;
  box-sizing: border-box;
}

.wpi-checkout-card {
  overflow: visible !important;
}

.wpi-checkout-card form.checkout.woocommerce-checkout {
  grid-template-columns: minmax(0, 1fr) minmax(21rem, .72fr) !important;
  align-items: start !important;
}

.wpi-checkout-card #order_review_heading,
.wpi-checkout-card #order_review {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  grid-column: 2 !important;
  float: none !important;
  clear: none !important;
}

.wpi-checkout-card #order_review_heading {
  margin: 0 !important;
  padding: 1.35rem 1.35rem .8rem !important;
  border-radius: 1.25rem 1.25rem 0 0 !important;
  overflow-wrap: anywhere;
}

.wpi-checkout-card #order_review {
  position: relative !important;
  top: auto !important;
  overflow: hidden !important;
  padding: 1.25rem !important;
  border-radius: 0 0 1.25rem 1.25rem !important;
}

.wpi-checkout-card .woocommerce-checkout-review-order-table {
  width: 100% !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}

.wpi-checkout-card .woocommerce-checkout-review-order-table th,
.wpi-checkout-card .woocommerce-checkout-review-order-table td {
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

.wpi-checkout-card .woocommerce-checkout-review-order-table .product-name,
.wpi-checkout-card .woocommerce-checkout-review-order-table td.product-name {
  width: 62% !important;
  padding-right: .8rem !important;
}

.wpi-checkout-card .woocommerce-checkout-review-order-table .product-total,
.wpi-checkout-card .woocommerce-checkout-review-order-table td.product-total,
.wpi-checkout-card .woocommerce-checkout-review-order-table tfoot td {
  width: 38% !important;
  text-align: right !important;
}

.wpi-checkout-card #payment,
.wpi-checkout-card #payment ul.payment_methods,
.wpi-checkout-card #payment div.payment_box,
.wpi-checkout-card #payment .payment_box,
.wpi-checkout-card #payment iframe,
.wpi-checkout-card #payment img,
.wpi-checkout-card .woocommerce-checkout-payment {
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
}

.wpi-checkout-card #payment img {
  height: auto !important;
}

.wpi-checkout-card .woocommerce-checkout-payment .form-row {
  width: 100% !important;
}

@media (max-width: 1180px) {
  .wpi-sp-product-shell,
  .wpi-checkout-card form.checkout.woocommerce-checkout {
    grid-template-columns: 1fr !important;
  }

  .wpi-checkout-card #order_review_heading,
  .wpi-checkout-card #order_review {
    grid-column: 1 !important;
  }
}

@media (max-width: 767px) {
  .wpi-sp-topbar::after {
    bottom: -1.8rem;
    height: 3.8rem;
  }

  .wpi-sp-main-section {
    padding: 1.6rem .85rem 2.5rem !important;
  }

  .wpi-sp-product-shell {
    border-radius: 1.3rem !important;
    padding: .85rem !important;
    gap: 1rem !important;
  }

  .wpi-sp-gallery-label {
    top: .85rem;
    right: .85rem;
    font-size: .66rem;
  }

  .wpi-sp-main-image {
    min-height: 20rem !important;
    border-radius: 1rem !important;
  }

  .wpi-sp-main-image img {
    width: 86% !important;
    height: 17.5rem !important;
  }

  .wpi-sp-gallery-note {
    grid-template-columns: 1fr;
    gap: .35rem;
    padding: .9rem;
  }

  .wpi-sp-product-summary {
    padding: .4rem .15rem .75rem !important;
  }

  .wpi-sp-product-title {
    font-size: clamp(2.45rem, 9vw, 3.7rem) !important;
    line-height: 1.02 !important;
    letter-spacing: .004em !important;
  }

  .wpi-sp-trust-row,
  .wpi-sp-benefits-grid,
  .wpi-sp-info-grid {
    grid-template-columns: 1fr !important;
  }

  .wpi-sp-trust-row {
    gap: .55rem;
  }

  .wpi-sp-option-group {
    grid-template-columns: 1fr;
    gap: .35rem;
  }

  .wpi-sp-cart-box form.cart,
  .wpi-sp-cart-box .woocommerce-variation-add-to-cart {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .wpi-sp-cart-box .quantity,
  .wpi-sp-cart-box .quantity input.qty,
  .wpi-sp-cart-box .single_add_to_cart_button,
  .wpi-sp-cart-box button.single_add_to_cart_button,
  .wpi-sp-cart-box .button,
  .wpi-sp-cart-box a.button,
  .wpi-sp-cart-box .added_to_cart {
    width: 100% !important;
    max-width: 100% !important;
  }

  .wpi-sp-benefits-section {
    padding: 0 .85rem 2.4rem;
  }

  .wpi-checkout-card #order_review_heading,
  .wpi-checkout-card #order_review {
    grid-column: 1 !important;
    border-radius: 1rem !important;
  }

  .wpi-checkout-card #order_review_heading {
    margin-bottom: .75rem !important;
  }

  .wpi-checkout-card .woocommerce-checkout-review-order-table,
  .wpi-checkout-card .woocommerce-checkout-review-order-table tbody,
  .wpi-checkout-card .woocommerce-checkout-review-order-table tfoot,
  .wpi-checkout-card .woocommerce-checkout-review-order-table tr,
  .wpi-checkout-card .woocommerce-checkout-review-order-table th,
  .wpi-checkout-card .woocommerce-checkout-review-order-table td {
    display: block !important;
    width: 100% !important;
    text-align: left !important;
  }

  .wpi-checkout-card .woocommerce-checkout-review-order-table th,
  .wpi-checkout-card .woocommerce-checkout-review-order-table td,
  .wpi-checkout-card .woocommerce-checkout-review-order-table .product-name,
  .wpi-checkout-card .woocommerce-checkout-review-order-table .product-total {
    width: 100% !important;
    padding-right: 0 !important;
    text-align: left !important;
  }
}

@media (max-width: 420px) {
  .wpi-sp-main-image {
    min-height: 17.5rem !important;
  }

  .wpi-sp-main-image img {
    height: 15.5rem !important;
  }

  .wpi-sp-product-title {
    font-size: clamp(2.2rem, 10.5vw, 3.15rem) !important;
  }
}

/* v1.0.96 Single product general product polish + Events previous-stable restore
   Keeps WooCommerce native functionality but removes merch-only assumptions. */
.single-product .wpi-sp-product-title,
.wpi-single-product-page .wpi-sp-product-title,
.single-product h1.wpi-sp-product-title,
.wpi-single-product-page h1.wpi-sp-product-title {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  z-index: 20 !important;
  margin: .8rem 0 1rem !important;
  color: #111 !important;
  font-family: var(--display, "Clash Display", sans-serif) !important;
  font-size: clamp(3.35rem, 4.35vw, 5.85rem) !important;
  line-height: .98 !important;
  letter-spacing: .018em !important;
  text-transform: uppercase !important;
  text-shadow: none !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

.single-product .wpi-sp-product-summary,
.wpi-single-product-page .wpi-sp-product-summary {
  overflow: visible !important;
}

.wpi-sp-options-first-box {
  margin: 1.25rem 0 !important;
  padding: 1rem !important;
  border: 1px solid rgba(210, 4, 4, .18) !important;
  border-radius: 1.15rem !important;
  background: linear-gradient(180deg, rgba(210,4,4,.055), rgba(255,255,255,.92)) !important;
}

.wpi-sp-options-title {
  display: block;
  margin: 0 0 .75rem;
  color: #111;
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .075em;
  line-height: 1.2;
  text-transform: uppercase;
}

.wpi-sp-options-first-box .wpi-sp-option-group {
  background: #fff !important;
  border: 1px solid rgba(0,0,0,.065) !important;
}

.wpi-sp-cart-attributes {
  display: grid;
  gap: .55rem;
  margin: 0 0 1rem;
}

.wpi-sp-cart-attributes div {
  display: grid;
  grid-template-columns: minmax(5rem, .35fr) minmax(0, 1fr);
  gap: .75rem;
  align-items: start;
  padding: .8rem .9rem;
  border-radius: .85rem;
  background: #fff;
  border: 1px solid rgba(0,0,0,.075);
}

.wpi-sp-cart-attributes span {
  color: rgba(0,0,0,.55);
  font-size: .74rem;
  font-weight: 950;
  letter-spacing: .065em;
  text-transform: uppercase;
}

.wpi-sp-cart-attributes strong {
  color: #111;
  font-size: .93rem;
  font-weight: 850;
  line-height: 1.4;
}

.wpi-sp-gallery-label {
  background: #d20404 !important;
  color: #fff !important;
}

.wpi-sp-gallery-note {
  background: linear-gradient(135deg, #111 0%, #1d1d1d 72%, #360202 100%) !important;
}

.wpi-sp-benefits-grid > div h2 {
  letter-spacing: .018em !important;
}

/* Restore Events page to the previous stable layout feel. */
.wpi-event-page {
  background: #000 !important;
}

.wpi-event-page .wpi-event-hero {
  background: radial-gradient(circle at 50% 0%, rgba(75,75,75,.74), rgba(0,0,0,.9) 34%, #000 73%) !important;
  overflow: visible !important;
}

.wpi-event-page .wpi-event-hero::before {
  background: linear-gradient(180deg, rgba(48,48,48,.9) 0%, rgba(0,0,0,.12) 52%, #000 92%) !important;
}

@media (min-width: 1181px) {
  .wpi-event-page .wpi-event-hero {
    min-height: 55rem !important;
    height: auto !important;
    padding-bottom: 0 !important;
  }
  .wpi-event-page .wpi-event-hero .wpi-global-header {
    margin-top: 0 !important;
    padding-top: 2.35rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    width: min(100%, 68.375rem) !important;
    padding-top: 3.45rem !important;
    padding-bottom: 0 !important;
  }
  .wpi-event-page .wpi-event-hero-copy h1 {
    max-width: 76.625rem !important;
    font-size: 3.75rem !important;
    line-height: 1.225 !important;
    letter-spacing: .01em !important;
  }
  .wpi-event-page .wpi-event-hero-copy > p {
    max-width: 44.25rem !important;
    margin: 1.8rem auto 0 !important;
    padding: 0 !important;
    font-size: 1.376rem !important;
    line-height: 1.5 !important;
    min-height: 0 !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -14.25rem !important;
    padding-top: 0 !important;
    padding-bottom: 8rem !important;
  }
  .wpi-event-page .wpi-event-card {
    width: min(calc(100% - 7.5rem), 94.625rem) !important;
    max-width: 94.625rem !important;
    padding: 4.15rem 4.5rem 4.25rem !important;
    border-radius: 2.52rem !important;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-event-page .wpi-event-hero {
    min-height: 52rem !important;
    height: auto !important;
    padding-bottom: 0 !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    padding-top: 3.25rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy > p {
    max-width: 43rem !important;
    min-height: 0 !important;
    padding-bottom: 0 !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: -10rem !important;
    padding-top: 0 !important;
  }
}

@media (max-width: 767px) {
  .single-product .wpi-sp-product-title,
  .wpi-single-product-page .wpi-sp-product-title,
  .single-product h1.wpi-sp-product-title,
  .wpi-single-product-page h1.wpi-sp-product-title {
    font-size: clamp(2.65rem, 9.75vw, 3.85rem) !important;
    line-height: 1.02 !important;
    letter-spacing: .012em !important;
  }
  .wpi-sp-cart-attributes div {
    grid-template-columns: 1fr;
    gap: .25rem;
  }
  .wpi-event-page .wpi-event-hero {
    min-height: auto !important;
    height: auto !important;
    padding-bottom: 2.35rem !important;
  }
  .wpi-event-page .wpi-event-hero-copy {
    width: min(100% - 1.25rem, 31rem) !important;
    max-width: 31rem !important;
    padding: 3.65rem 0 0 !important;
  }
  .wpi-event-page .wpi-event-hero-copy h1 {
    max-width: 28rem !important;
    font-size: clamp(2.65rem, 10.9vw, 3.65rem) !important;
    line-height: 1.08 !important;
  }
  .wpi-event-page .wpi-event-hero-copy > p {
    width: min(100%, 28rem) !important;
    max-width: 28rem !important;
    margin: 1.2rem auto 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    font-size: 1rem !important;
    line-height: 1.68 !important;
  }
  .wpi-event-page .wpi-event-form-section {
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 3.25rem !important;
  }
}

/* v1.0.97 Single product working QA hardening
   Fixes title visibility, product summary contrast, attributes/options display,
   WooCommerce buttons, variation forms, gallery behavior and mobile safety. */
.single-product .wpi-sp-conversion-page,
.wpi-single-product-page.wpi-sp-conversion-page {
  background:
    radial-gradient(circle at 8% 10%, rgba(210,4,4,.075), transparent 20rem),
    radial-gradient(circle at 95% 22%, rgba(210,4,4,.06), transparent 22rem),
    #fafafa !important;
}

.single-product .wpi-sp-main-section,
.wpi-single-product-page .wpi-sp-main-section {
  padding-top: clamp(2rem, 3.2vw, 4rem) !important;
}

.single-product .wpi-sp-product-shell,
.wpi-single-product-page .wpi-sp-product-shell,
.single-product .wpi-product-detail-card.wpi-sp-product-shell,
.wpi-single-product-page .wpi-product-detail-card.wpi-sp-product-shell {
  grid-template-columns: minmax(0, 1.04fr) minmax(27rem, .96fr) !important;
  align-items: start !important;
  gap: clamp(1.5rem, 3vw, 3.25rem) !important;
  background: #fff !important;
  overflow: visible !important;
}

.single-product .wpi-sp-product-gallery,
.wpi-single-product-page .wpi-sp-product-gallery,
.single-product .wpi-product-gallery.wpi-sp-product-gallery,
.wpi-single-product-page .wpi-product-gallery.wpi-sp-product-gallery {
  overflow: visible !important;
}

.single-product .wpi-sp-product-summary,
.wpi-single-product-page .wpi-sp-product-summary,
.single-product .wpi-product-summary.wpi-sp-product-summary,
.wpi-single-product-page .wpi-product-summary.wpi-sp-product-summary {
  align-self: start !important;
  padding: clamp(1.25rem, 2vw, 2.2rem) !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  border-radius: 1.65rem !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(210,4,4,.10), transparent 15rem),
    linear-gradient(180deg, #fff 0%, #f9f9fa 100%) !important;
  color: #111 !important;
  box-shadow: 0 1.1rem 2.6rem rgba(0,0,0,.065) !important;
  overflow: visible !important;
}

.single-product .wpi-sp-product-summary::after,
.wpi-single-product-page .wpi-sp-product-summary::after,
.single-product .wpi-product-summary.wpi-sp-product-summary::after,
.wpi-single-product-page .wpi-product-summary.wpi-sp-product-summary::after {
  display: none !important;
}

.single-product .wpi-sp-back-link,
.wpi-single-product-page .wpi-sp-back-link,
.single-product .wpi-sp-product-breadcrumbs,
.single-product .wpi-sp-product-breadcrumbs .woocommerce-breadcrumb,
.single-product .wpi-sp-product-breadcrumbs a,
.wpi-single-product-page .wpi-sp-product-breadcrumbs,
.wpi-single-product-page .wpi-sp-product-breadcrumbs .woocommerce-breadcrumb,
.wpi-single-product-page .wpi-sp-product-breadcrumbs a {
  color: rgba(17,17,17,.62) !important;
}

.single-product .wpi-sp-eyebrow,
.wpi-single-product-page .wpi-sp-eyebrow,
.single-product .wpi-product-summary .eyebrow.wpi-sp-eyebrow,
.wpi-single-product-page .wpi-product-summary .eyebrow.wpi-sp-eyebrow {
  display: inline-flex !important;
  width: auto !important;
  border-color: rgba(210,4,4,.25) !important;
  background: rgba(210,4,4,.075) !important;
  color: #d20404 !important;
}

.single-product .wpi-sp-product-title,
.wpi-single-product-page .wpi-sp-product-title,
.single-product h1.wpi-sp-product-title,
.wpi-single-product-page h1.wpi-sp-product-title {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  max-width: 100% !important;
  margin: .9rem 0 .85rem !important;
  color: #111 !important;
  font-family: var(--display, "Clash Display", sans-serif) !important;
  font-size: clamp(2.95rem, 4.15vw, 5.25rem) !important;
  line-height: 1.02 !important;
  letter-spacing: .026em !important;
  text-transform: uppercase !important;
  text-shadow: none !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  text-wrap: balance;
}

.single-product .wpi-sp-price,
.single-product .wpi-sp-price .woocommerce-Price-amount,
.wpi-single-product-page .wpi-sp-price,
.wpi-single-product-page .wpi-sp-price .woocommerce-Price-amount,
.single-product .wpi-product-price,
.single-product .wpi-product-price .woocommerce-Price-amount,
.wpi-single-product-page .wpi-product-price,
.wpi-single-product-page .wpi-product-price .woocommerce-Price-amount {
  color: #d20404 !important;
}

.single-product .wpi-sp-short-description,
.single-product .wpi-sp-short-description p,
.wpi-single-product-page .wpi-sp-short-description,
.wpi-single-product-page .wpi-sp-short-description p,
.single-product .wpi-product-short-description,
.single-product .wpi-product-short-description p,
.wpi-single-product-page .wpi-product-short-description,
.wpi-single-product-page .wpi-product-short-description p {
  color: rgba(17,17,17,.72) !important;
}

.single-product .wpi-sp-meta-list p,
.wpi-single-product-page .wpi-sp-meta-list p,
.single-product .wpi-product-meta-list.wpi-sp-meta-list p,
.wpi-single-product-page .wpi-product-meta-list.wpi-sp-meta-list p {
  background: #fff !important;
  border: 1px solid rgba(0,0,0,.08) !important;
}

.single-product .wpi-sp-meta-list span,
.wpi-single-product-page .wpi-sp-meta-list span {
  color: rgba(17,17,17,.54) !important;
}

.single-product .wpi-sp-meta-list strong,
.single-product .wpi-sp-meta-list strong a,
.single-product .wpi-sp-meta-list .stock,
.wpi-single-product-page .wpi-sp-meta-list strong,
.wpi-single-product-page .wpi-sp-meta-list strong a,
.wpi-single-product-page .wpi-sp-meta-list .stock {
  color: #111 !important;
}

.single-product .wpi-sp-options-first-box,
.wpi-single-product-page .wpi-sp-options-first-box {
  display: grid !important;
  gap: .7rem !important;
  margin: 1.25rem 0 !important;
  padding: 1rem !important;
  border: 1px solid rgba(210,4,4,.18) !important;
  border-radius: 1.15rem !important;
  background: linear-gradient(180deg, rgba(210,4,4,.055), rgba(255,255,255,.92)) !important;
}

.single-product .wpi-sp-option-group,
.wpi-single-product-page .wpi-sp-option-group {
  grid-template-columns: minmax(6rem, .32fr) minmax(0, 1fr) !important;
  background: #fff !important;
  border: 1px solid rgba(0,0,0,.065) !important;
}

.single-product .wpi-sp-cart-box,
.wpi-single-product-page .wpi-sp-cart-box,
.single-product .wpi-product-cart-box.wpi-sp-cart-box,
.wpi-single-product-page .wpi-product-cart-box.wpi-sp-cart-box {
  background: linear-gradient(180deg, #f6f6f8 0%, #fff 100%) !important;
  color: #111 !important;
  overflow: visible !important;
}

.single-product .wpi-sp-cart-box form.cart,
.wpi-single-product-page .wpi-sp-cart-box form.cart,
.single-product .wpi-sp-cart-box .variations_form,
.wpi-single-product-page .wpi-sp-cart-box .variations_form,
.single-product .wpi-sp-cart-box .woocommerce-variation-add-to-cart,
.wpi-single-product-page .wpi-sp-cart-box .woocommerce-variation-add-to-cart {
  width: 100% !important;
  max-width: 100% !important;
}

.single-product .wpi-sp-cart-box table.variations,
.wpi-single-product-page .wpi-sp-cart-box table.variations,
.single-product .wpi-sp-cart-box table.variations tbody,
.wpi-single-product-page .wpi-sp-cart-box table.variations tbody,
.single-product .wpi-sp-cart-box table.variations tr,
.wpi-single-product-page .wpi-sp-cart-box table.variations tr {
  display: block !important;
  width: 100% !important;
}

.single-product .wpi-sp-cart-box table.variations th,
.single-product .wpi-sp-cart-box table.variations td,
.wpi-single-product-page .wpi-sp-cart-box table.variations th,
.wpi-single-product-page .wpi-sp-cart-box table.variations td {
  display: block !important;
  width: 100% !important;
  padding: 0 0 .65rem !important;
  text-align: left !important;
}

.single-product .wpi-sp-cart-box table.variations label,
.wpi-single-product-page .wpi-sp-cart-box table.variations label {
  display: block !important;
  margin-bottom: .38rem !important;
  color: #111 !important;
  font-size: .78rem !important;
  font-weight: 950 !important;
  letter-spacing: .07em !important;
  text-transform: uppercase !important;
}

.single-product .wpi-sp-cart-box table.variations select,
.wpi-single-product-page .wpi-sp-cart-box table.variations select,
.single-product .wpi-sp-cart-box select,
.wpi-single-product-page .wpi-sp-cart-box select {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 3.6rem !important;
  border-radius: .95rem !important;
}

.single-product .wpi-sp-cart-box .quantity input.qty,
.wpi-single-product-page .wpi-sp-cart-box .quantity input.qty,
.single-product .wpi-sp-cart-box input.qty,
.wpi-single-product-page .wpi-sp-cart-box input.qty {
  -webkit-appearance: textfield !important;
  appearance: textfield !important;
}

.single-product .wpi-sp-cart-box .single_add_to_cart_button,
.single-product .wpi-sp-cart-box button.single_add_to_cart_button,
.single-product .wpi-sp-cart-box .button,
.single-product .wpi-sp-cart-box button.button,
.single-product .wpi-sp-cart-box a.button,
.single-product .wpi-sp-cart-box .added_to_cart,
.wpi-single-product-page .wpi-sp-cart-box .single_add_to_cart_button,
.wpi-single-product-page .wpi-sp-cart-box button.single_add_to_cart_button,
.wpi-single-product-page .wpi-sp-cart-box .button,
.wpi-single-product-page .wpi-sp-cart-box button.button,
.wpi-single-product-page .wpi-sp-cart-box a.button,
.wpi-single-product-page .wpi-sp-cart-box .added_to_cart {
  background: #d20404 !important;
  color: #fff !important;
  border-radius: 999px !important;
  text-decoration: none !important;
}

.single-product .wpi-sp-cart-box .reset_variations,
.wpi-single-product-page .wpi-sp-cart-box .reset_variations {
  display: inline-flex !important;
  color: #fff !important;
  background: #111 !important;
}

.single-product .wpi-sp-product-thumbs a,
.wpi-single-product-page .wpi-sp-product-thumbs a {
  cursor: pointer !important;
}

.single-product .wpi-sp-product-thumbs a.is-active,
.wpi-single-product-page .wpi-sp-product-thumbs a.is-active {
  border-color: #d20404 !important;
  box-shadow: 0 0 0 2px rgba(210,4,4,.18), 0 .45rem 1rem rgba(0,0,0,.08) !important;
}

.single-product .woocommerce-message,
.single-product .woocommerce-info,
.single-product .woocommerce-error,
.wpi-single-product-page .woocommerce-message,
.wpi-single-product-page .woocommerce-info,
.wpi-single-product-page .woocommerce-error {
  border-radius: 1rem !important;
  margin: 0 0 1rem !important;
}

@media (max-width: 1180px) {
  .single-product .wpi-sp-product-shell,
  .wpi-single-product-page .wpi-sp-product-shell,
  .single-product .wpi-product-detail-card.wpi-sp-product-shell,
  .wpi-single-product-page .wpi-product-detail-card.wpi-sp-product-shell {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 767px) {
  .single-product .wpi-sp-main-section,
  .wpi-single-product-page .wpi-sp-main-section {
    padding: 1.45rem .85rem 2.5rem !important;
  }

  .single-product .wpi-sp-product-shell,
  .wpi-single-product-page .wpi-sp-product-shell {
    padding: .85rem !important;
    border-radius: 1.25rem !important;
  }

  .single-product .wpi-sp-main-image,
  .wpi-single-product-page .wpi-sp-main-image {
    min-height: 19rem !important;
    border-radius: 1rem !important;
  }

  .single-product .wpi-sp-main-image img,
  .wpi-single-product-page .wpi-sp-main-image img {
    width: 88% !important;
    height: 16.5rem !important;
  }

  .single-product .wpi-sp-product-summary,
  .wpi-single-product-page .wpi-sp-product-summary,
  .single-product .wpi-product-summary.wpi-sp-product-summary,
  .wpi-single-product-page .wpi-product-summary.wpi-sp-product-summary {
    padding: 1rem !important;
    border-radius: 1rem !important;
  }

  .single-product .wpi-sp-product-title,
  .wpi-single-product-page .wpi-sp-product-title,
  .single-product h1.wpi-sp-product-title,
  .wpi-single-product-page h1.wpi-sp-product-title {
    font-size: clamp(2.2rem, 10vw, 3.25rem) !important;
    line-height: 1.06 !important;
    letter-spacing: .02em !important;
  }

  .single-product .wpi-sp-trust-row,
  .wpi-single-product-page .wpi-sp-trust-row,
  .single-product .wpi-sp-benefits-grid,
  .wpi-single-product-page .wpi-sp-benefits-grid,
  .single-product .wpi-sp-info-grid,
  .wpi-single-product-page .wpi-sp-info-grid {
    grid-template-columns: 1fr !important;
  }

  .single-product .wpi-sp-option-group,
  .wpi-single-product-page .wpi-sp-option-group,
  .single-product .wpi-sp-cart-attributes div,
  .wpi-single-product-page .wpi-sp-cart-attributes div {
    grid-template-columns: 1fr !important;
    gap: .32rem !important;
  }

  .single-product .wpi-sp-cart-box form.cart,
  .single-product .wpi-sp-cart-box .woocommerce-variation-add-to-cart,
  .wpi-single-product-page .wpi-sp-cart-box form.cart,
  .wpi-single-product-page .wpi-sp-cart-box .woocommerce-variation-add-to-cart {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .single-product .wpi-sp-cart-box .quantity,
  .single-product .wpi-sp-cart-box .quantity input.qty,
  .single-product .wpi-sp-cart-box .single_add_to_cart_button,
  .single-product .wpi-sp-cart-box button.single_add_to_cart_button,
  .single-product .wpi-sp-cart-box .button,
  .single-product .wpi-sp-cart-box a.button,
  .single-product .wpi-sp-cart-box .added_to_cart,
  .wpi-single-product-page .wpi-sp-cart-box .quantity,
  .wpi-single-product-page .wpi-sp-cart-box .quantity input.qty,
  .wpi-single-product-page .wpi-sp-cart-box .single_add_to_cart_button,
  .wpi-single-product-page .wpi-sp-cart-box button.single_add_to_cart_button,
  .wpi-single-product-page .wpi-sp-cart-box .button,
  .wpi-single-product-page .wpi-sp-cart-box a.button,
  .wpi-single-product-page .wpi-sp-cart-box .added_to_cart {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* v1.0.98 Single product visual style polish */
.single-product .wpi-sp-conversion-page,
.wpi-single-product-page.wpi-sp-conversion-page {
  background:
    radial-gradient(circle at 10% 11rem, rgba(210,4,4,.08), transparent 17rem),
    radial-gradient(circle at 88% 25rem, rgba(210,4,4,.07), transparent 21rem),
    linear-gradient(180deg, #fbfbfb 0%, #f6f6f6 52%, #fbfbfb 100%) !important;
}

.single-product .wpi-sp-main-section,
.wpi-single-product-page .wpi-sp-main-section {
  padding-top: clamp(2.1rem, 3.6vw, 4.35rem) !important;
}

.single-product .wpi-sp-product-shell,
.wpi-single-product-page .wpi-sp-product-shell,
.single-product .wpi-product-detail-card.wpi-sp-product-shell,
.wpi-single-product-page .wpi-product-detail-card.wpi-sp-product-shell {
  grid-template-columns: minmax(0, .98fr) minmax(29rem, 1.02fr) !important;
  align-items: start !important;
  gap: clamp(1.6rem, 3.2vw, 3.75rem) !important;
  padding: clamp(1rem, 1.9vw, 1.85rem) !important;
  border-radius: clamp(1.45rem, 2vw, 2.15rem) !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(255,255,255,.91)),
    radial-gradient(circle at 0 0, rgba(210,4,4,.1), transparent 28rem) !important;
  border: 1px solid rgba(17,17,17,.075) !important;
  box-shadow: 0 2rem 5.5rem rgba(0,0,0,.095), 0 .35rem 1rem rgba(0,0,0,.04) !important;
  overflow: visible !important;
}

.single-product .wpi-sp-product-gallery,
.wpi-single-product-page .wpi-sp-product-gallery {
  padding: clamp(.75rem, 1.3vw, 1rem) !important;
  border-radius: 1.55rem !important;
  background: #fff !important;
  border: 1px solid rgba(0,0,0,.055) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.75) !important;
}

.single-product .wpi-sp-main-image,
.wpi-single-product-page .wpi-sp-main-image,
.single-product .wpi-product-main-image.wpi-sp-main-image,
.wpi-single-product-page .wpi-product-main-image.wpi-sp-main-image {
  min-height: clamp(25rem, 37vw, 38rem) !important;
  border-radius: 1.35rem !important;
  background:
    radial-gradient(circle at 50% 43%, rgba(255,255,255,.92), transparent 34%),
    radial-gradient(circle at 50% 88%, rgba(210,4,4,.12), transparent 35%),
    linear-gradient(145deg, #f7f7f9 0%, #ededf0 58%, #ffffff 100%) !important;
  border: 1px solid rgba(0,0,0,.045) !important;
  overflow: hidden !important;
}

.single-product .wpi-sp-main-image img,
.wpi-single-product-page .wpi-sp-main-image img,
.single-product .wpi-product-main-image.wpi-sp-main-image img,
.wpi-single-product-page .wpi-product-main-image.wpi-sp-main-image img {
  width: min(84%, 31rem) !important;
  height: clamp(21rem, 31vw, 34rem) !important;
  object-fit: contain !important;
  transform: translateY(-.15rem) !important;
  filter: drop-shadow(0 1.15rem 1.8rem rgba(0,0,0,.16)) !important;
}

.single-product .wpi-sp-gallery-label,
.wpi-single-product-page .wpi-sp-gallery-label {
  background: rgba(17,17,17,.94) !important;
  color: #fff !important;
  box-shadow: 0 .65rem 1.35rem rgba(0,0,0,.18) !important;
}

.single-product .wpi-sp-product-thumbs,
.wpi-single-product-page .wpi-sp-product-thumbs,
.single-product .wpi-product-thumbs.wpi-sp-product-thumbs,
.wpi-single-product-page .wpi-product-thumbs.wpi-sp-product-thumbs {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .7rem !important;
}

.single-product .wpi-sp-product-thumbs a,
.wpi-single-product-page .wpi-sp-product-thumbs a,
.single-product .wpi-product-thumbs.wpi-sp-product-thumbs a,
.wpi-single-product-page .wpi-product-thumbs.wpi-sp-product-thumbs a {
  width: 5.25rem !important;
  height: 5.25rem !important;
  border-radius: 1rem !important;
  background: #f7f7f8 !important;
  border: 1px solid rgba(0,0,0,.07) !important;
}

.single-product .wpi-sp-gallery-note,
.wpi-single-product-page .wpi-sp-gallery-note {
  border-radius: 1rem !important;
  background:
    radial-gradient(circle at 92% 0, rgba(210,4,4,.34), transparent 9rem),
    #111 !important;
  border: 1px solid rgba(255,255,255,.08) !important;
}

.single-product .wpi-sp-product-summary,
.wpi-single-product-page .wpi-sp-product-summary,
.single-product .wpi-product-summary.wpi-sp-product-summary,
.wpi-single-product-page .wpi-product-summary.wpi-sp-product-summary {
  align-self: stretch !important;
  padding: clamp(1.2rem, 2.2vw, 2.35rem) !important;
  border-radius: 1.55rem !important;
  background: rgba(255,255,255,.88) !important;
  border: 1px solid rgba(0,0,0,.06) !important;
  box-shadow: 0 1rem 2.4rem rgba(0,0,0,.055) !important;
}

.single-product .wpi-sp-back-link,
.wpi-single-product-page .wpi-sp-back-link {
  margin-bottom: .75rem !important;
  color: rgba(17,17,17,.6) !important;
}

.single-product .wpi-sp-product-breadcrumbs,
.wpi-single-product-page .wpi-sp-product-breadcrumbs,
.single-product .wpi-sp-product-breadcrumbs .woocommerce-breadcrumb,
.wpi-single-product-page .wpi-sp-product-breadcrumbs .woocommerce-breadcrumb {
  color: rgba(17,17,17,.46) !important;
}

.single-product .wpi-sp-product-title,
.wpi-single-product-page .wpi-sp-product-title,
.single-product h1.wpi-sp-product-title,
.wpi-single-product-page h1.wpi-sp-product-title {
  display: block !important;
  margin: .85rem 0 .85rem !important;
  color: #111 !important;
  font-size: clamp(2.85rem, 3.85vw, 5.05rem) !important;
  line-height: 1.01 !important;
  letter-spacing: .014em !important;
  text-transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  max-width: 100% !important;
  overflow: visible !important;
  overflow-wrap: anywhere !important;
  text-wrap: balance;
}

.single-product .wpi-sp-price,
.wpi-single-product-page .wpi-sp-price,
.single-product .wpi-sp-price .woocommerce-Price-amount,
.wpi-single-product-page .wpi-sp-price .woocommerce-Price-amount {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 3rem !important;
  padding: .35rem .9rem !important;
  border-radius: 999px !important;
  background: rgba(210,4,4,.08) !important;
  color: #d20404 !important;
  font-weight: 950 !important;
}

.single-product .wpi-sp-short-description,
.wpi-single-product-page .wpi-sp-short-description {
  margin-top: 1rem !important;
  padding: 1.05rem 1.1rem !important;
  border-radius: 1rem !important;
  background: #f7f7f8 !important;
  border: 1px solid rgba(0,0,0,.055) !important;
}

.single-product .wpi-sp-trust-row,
.wpi-single-product-page .wpi-sp-trust-row {
  gap: .65rem !important;
  margin: 1.15rem 0 !important;
}

.single-product .wpi-sp-trust-row div,
.wpi-single-product-page .wpi-sp-trust-row div {
  background:
    radial-gradient(circle at 100% 0, rgba(210,4,4,.24), transparent 5rem),
    #111 !important;
  border: 1px solid rgba(255,255,255,.08) !important;
}

.single-product .wpi-sp-options-first-box,
.wpi-single-product-page .wpi-sp-options-first-box {
  margin: 1.25rem 0 !important;
  padding: 1.1rem !important;
  border-radius: 1.2rem !important;
  background:
    radial-gradient(circle at 100% 0, rgba(210,4,4,.26), transparent 9rem),
    #111 !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  color: #fff !important;
  box-shadow: 0 1rem 2rem rgba(0,0,0,.1) !important;
}

.single-product .wpi-sp-options-title,
.wpi-single-product-page .wpi-sp-options-title {
  color: #fff !important;
  font-size: .82rem !important;
  font-weight: 950 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

.single-product .wpi-sp-option-group,
.wpi-single-product-page .wpi-sp-option-group {
  display: grid !important;
  grid-template-columns: minmax(5.5rem, .28fr) minmax(0, 1fr) !important;
  align-items: start !important;
  gap: .75rem !important;
  padding: .85rem !important;
  border-radius: .9rem !important;
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.1) !important;
}

.single-product .wpi-sp-option-group > span,
.wpi-single-product-page .wpi-sp-option-group > span {
  color: rgba(255,255,255,.65) !important;
}

.single-product .wpi-sp-option-values,
.wpi-single-product-page .wpi-sp-option-values {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: .42rem !important;
  margin: 0 !important;
}

.single-product .wpi-sp-option-values em,
.wpi-single-product-page .wpi-sp-option-values em {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 2rem !important;
  padding: .38rem .72rem !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #111 !important;
  font-size: .78rem !important;
  font-style: normal !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: .02em !important;
}

.single-product .wpi-sp-meta-list,
.wpi-single-product-page .wpi-sp-meta-list {
  display: grid !important;
  gap: .55rem !important;
}

.single-product .wpi-sp-meta-list p,
.wpi-single-product-page .wpi-sp-meta-list p {
  border-radius: .95rem !important;
  background: #fff !important;
}

.single-product .wpi-sp-cart-box,
.wpi-single-product-page .wpi-sp-cart-box,
.single-product .wpi-product-cart-box.wpi-sp-cart-box,
.wpi-single-product-page .wpi-product-cart-box.wpi-sp-cart-box {
  padding: 1.2rem !important;
  border-radius: 1.2rem !important;
  background:
    linear-gradient(180deg, #fff 0%, #f7f7f8 100%) !important;
  border: 1px solid rgba(210,4,4,.18) !important;
  box-shadow: 0 .9rem 2rem rgba(0,0,0,.06) !important;
}

.single-product .wpi-sp-cart-heading strong,
.wpi-single-product-page .wpi-sp-cart-heading strong {
  color: #111 !important;
  font-size: 1.7rem !important;
  letter-spacing: .018em !important;
}

.single-product .wpi-sp-cart-box table.variations label,
.wpi-single-product-page .wpi-sp-cart-box table.variations label {
  color: #111 !important;
}

.single-product .wpi-sp-cart-box table.variations select,
.wpi-single-product-page .wpi-sp-cart-box table.variations select,
.single-product .wpi-sp-cart-box select,
.wpi-single-product-page .wpi-sp-cart-box select,
.single-product .wpi-sp-cart-box .quantity input.qty,
.wpi-single-product-page .wpi-sp-cart-box .quantity input.qty {
  border: 1px solid rgba(17,17,17,.12) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.8) !important;
}

.single-product .wpi-sp-cart-box .single_add_to_cart_button,
.single-product .wpi-sp-cart-box button.single_add_to_cart_button,
.single-product .wpi-sp-cart-box .single_add_to_cart_button.button,
.single-product .wpi-sp-cart-box .single_add_to_cart_button.button.alt,
.wpi-single-product-page .wpi-sp-cart-box .single_add_to_cart_button,
.wpi-single-product-page .wpi-sp-cart-box button.single_add_to_cart_button,
.wpi-single-product-page .wpi-sp-cart-box .single_add_to_cart_button.button,
.wpi-single-product-page .wpi-sp-cart-box .single_add_to_cart_button.button.alt {
  background: #d20404 !important;
  box-shadow: 0 .85rem 1.6rem rgba(210,4,4,.24) !important;
}

.single-product .wpi-sp-cart-box .single_add_to_cart_button::after,
.wpi-single-product-page .wpi-sp-cart-box .single_add_to_cart_button::after,
.single-product .wpi-sp-cart-box button.single_add_to_cart_button::after,
.wpi-single-product-page .wpi-sp-cart-box button.single_add_to_cart_button::after {
  content: "→";
  margin-left: .65rem;
  font-size: 1rem;
}

.single-product .wpi-sp-benefits-section,
.wpi-single-product-page .wpi-sp-benefits-section,
.single-product .wpi-sp-info-section,
.wpi-single-product-page .wpi-sp-info-section,
.single-product .wpi-sp-related-section,
.wpi-single-product-page .wpi-sp-related-section {
  background: #fafafa !important;
}

.single-product .wpi-sp-benefits-grid > div,
.wpi-single-product-page .wpi-sp-benefits-grid > div {
  border-radius: 1.25rem !important;
  box-shadow: 0 1rem 2.6rem rgba(0,0,0,.08) !important;
}

.single-product .wpi-sp-description-card,
.single-product .wpi-sp-additional-card,
.wpi-single-product-page .wpi-sp-description-card,
.wpi-single-product-page .wpi-sp-additional-card {
  border-radius: 1.45rem !important;
  box-shadow: 0 1rem 2.5rem rgba(0,0,0,.055) !important;
}

.single-product .wpi-sp-additional-card table,
.wpi-single-product-page .wpi-sp-additional-card table {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 .55rem !important;
}

.single-product .wpi-sp-additional-card th,
.single-product .wpi-sp-additional-card td,
.wpi-single-product-page .wpi-sp-additional-card th,
.wpi-single-product-page .wpi-sp-additional-card td {
  padding: .8rem 1rem !important;
  background: #f7f7f8 !important;
  border: 0 !important;
  color: #111 !important;
}

.single-product .wpi-sp-additional-card th,
.wpi-single-product-page .wpi-sp-additional-card th {
  border-radius: .8rem 0 0 .8rem !important;
  color: rgba(17,17,17,.58) !important;
  font-size: .78rem !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
}

.single-product .wpi-sp-additional-card td,
.wpi-single-product-page .wpi-sp-additional-card td {
  border-radius: 0 .8rem .8rem 0 !important;
}

@media (max-width: 1180px) {
  .single-product .wpi-sp-product-shell,
  .wpi-single-product-page .wpi-sp-product-shell,
  .single-product .wpi-product-detail-card.wpi-sp-product-shell,
  .wpi-single-product-page .wpi-product-detail-card.wpi-sp-product-shell {
    grid-template-columns: 1fr !important;
  }

  .single-product .wpi-sp-product-summary,
  .wpi-single-product-page .wpi-sp-product-summary,
  .single-product .wpi-product-summary.wpi-sp-product-summary,
  .wpi-single-product-page .wpi-product-summary.wpi-sp-product-summary {
    padding: clamp(1.1rem, 3vw, 2rem) !important;
  }
}

@media (max-width: 767px) {
  .single-product .wpi-sp-main-section,
  .wpi-single-product-page .wpi-sp-main-section {
    padding: 1.15rem .75rem 2.5rem !important;
  }

  .single-product .wpi-sp-product-shell,
  .wpi-single-product-page .wpi-sp-product-shell,
  .single-product .wpi-product-detail-card.wpi-sp-product-shell,
  .wpi-single-product-page .wpi-product-detail-card.wpi-sp-product-shell {
    padding: .7rem !important;
    gap: .85rem !important;
    border-radius: 1.25rem !important;
  }

  .single-product .wpi-sp-product-gallery,
  .wpi-single-product-page .wpi-sp-product-gallery {
    padding: .55rem !important;
    border-radius: 1rem !important;
  }

  .single-product .wpi-sp-main-image,
  .wpi-single-product-page .wpi-sp-main-image,
  .single-product .wpi-product-main-image.wpi-sp-main-image,
  .wpi-single-product-page .wpi-product-main-image.wpi-sp-main-image {
    min-height: 18.75rem !important;
    border-radius: .95rem !important;
  }

  .single-product .wpi-sp-main-image img,
  .wpi-single-product-page .wpi-sp-main-image img,
  .single-product .wpi-product-main-image.wpi-sp-main-image img,
  .wpi-single-product-page .wpi-product-main-image.wpi-sp-main-image img {
    width: 88% !important;
    height: 16.25rem !important;
  }

  .single-product .wpi-sp-product-thumbs,
  .wpi-single-product-page .wpi-sp-product-thumbs,
  .single-product .wpi-product-thumbs.wpi-sp-product-thumbs,
  .wpi-single-product-page .wpi-product-thumbs.wpi-sp-product-thumbs {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    padding-bottom: .25rem !important;
  }

  .single-product .wpi-sp-product-thumbs a,
  .wpi-single-product-page .wpi-sp-product-thumbs a,
  .single-product .wpi-product-thumbs.wpi-sp-product-thumbs a,
  .wpi-single-product-page .wpi-product-thumbs.wpi-sp-product-thumbs a {
    flex: 0 0 4.6rem !important;
    width: 4.6rem !important;
    height: 4.6rem !important;
  }

  .single-product .wpi-sp-gallery-note,
  .wpi-single-product-page .wpi-sp-gallery-note {
    grid-template-columns: 1fr !important;
    padding: .9rem !important;
  }

  .single-product .wpi-sp-product-summary,
  .wpi-single-product-page .wpi-sp-product-summary,
  .single-product .wpi-product-summary.wpi-sp-product-summary,
  .wpi-single-product-page .wpi-product-summary.wpi-sp-product-summary {
    padding: 1rem !important;
    border-radius: 1rem !important;
  }

  .single-product .wpi-sp-product-title,
  .wpi-single-product-page .wpi-sp-product-title,
  .single-product h1.wpi-sp-product-title,
  .wpi-single-product-page h1.wpi-sp-product-title {
    font-size: clamp(2.05rem, 8.2vw, 3.1rem) !important;
    line-height: 1.08 !important;
    letter-spacing: .01em !important;
  }

  .single-product .wpi-sp-price,
  .wpi-single-product-page .wpi-sp-price,
  .single-product .wpi-sp-price .woocommerce-Price-amount,
  .wpi-single-product-page .wpi-sp-price .woocommerce-Price-amount {
    font-size: 1.55rem !important;
  }

  .single-product .wpi-sp-short-description,
  .wpi-single-product-page .wpi-sp-short-description {
    padding: .9rem !important;
    font-size: 1rem !important;
  }

  .single-product .wpi-sp-trust-row,
  .wpi-single-product-page .wpi-sp-trust-row,
  .single-product .wpi-sp-benefits-grid,
  .wpi-single-product-page .wpi-sp-benefits-grid,
  .single-product .wpi-sp-info-grid,
  .wpi-single-product-page .wpi-sp-info-grid {
    grid-template-columns: 1fr !important;
  }

  .single-product .wpi-sp-option-group,
  .wpi-single-product-page .wpi-sp-option-group {
    grid-template-columns: 1fr !important;
  }

  .single-product .wpi-sp-cart-box,
  .wpi-single-product-page .wpi-sp-cart-box,
  .single-product .wpi-product-cart-box.wpi-sp-cart-box,
  .wpi-single-product-page .wpi-product-cart-box.wpi-sp-cart-box {
    padding: .95rem !important;
  }

  .single-product .wpi-sp-cart-box form.cart,
  .wpi-single-product-page .wpi-sp-cart-box form.cart,
  .single-product .wpi-sp-cart-box .woocommerce-variation-add-to-cart,
  .wpi-single-product-page .wpi-sp-cart-box .woocommerce-variation-add-to-cart {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .7rem !important;
  }

  .single-product .wpi-sp-cart-box .quantity,
  .single-product .wpi-sp-cart-box .quantity input.qty,
  .single-product .wpi-sp-cart-box .single_add_to_cart_button,
  .single-product .wpi-sp-cart-box button.single_add_to_cart_button,
  .single-product .wpi-sp-cart-box .button,
  .single-product .wpi-sp-cart-box a.button,
  .single-product .wpi-sp-cart-box .added_to_cart,
  .wpi-single-product-page .wpi-sp-cart-box .quantity,
  .wpi-single-product-page .wpi-sp-cart-box .quantity input.qty,
  .wpi-single-product-page .wpi-sp-cart-box .single_add_to_cart_button,
  .wpi-single-product-page .wpi-sp-cart-box button.single_add_to_cart_button,
  .wpi-single-product-page .wpi-sp-cart-box .button,
  .wpi-single-product-page .wpi-sp-cart-box a.button,
  .wpi-single-product-page .wpi-sp-cart-box .added_to_cart {
    width: 100% !important;
    max-width: 100% !important;
  }

  .single-product .wpi-sp-additional-card table,
  .single-product .wpi-sp-additional-card tbody,
  .single-product .wpi-sp-additional-card tr,
  .single-product .wpi-sp-additional-card th,
  .single-product .wpi-sp-additional-card td,
  .wpi-single-product-page .wpi-sp-additional-card table,
  .wpi-single-product-page .wpi-sp-additional-card tbody,
  .wpi-single-product-page .wpi-sp-additional-card tr,
  .wpi-single-product-page .wpi-sp-additional-card th,
  .wpi-single-product-page .wpi-sp-additional-card td {
    display: block !important;
    width: 100% !important;
    border-radius: .8rem !important;
  }
}

/* v1.0.99 Header cart icon, mini cart drawer, checkout order box hard fix, and cart heading spacing */
.wpi-global-header .wpi-header-actions,
.site-header.wpi-global-header .wpi-header-actions {
  justify-self: end !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: .75rem !important;
  min-width: 0 !important;
  position: relative !important;
  z-index: 100010 !important;
}

.wpi-header-cart {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 3.35rem !important;
  height: 3.35rem !important;
  min-width: 3.35rem !important;
  border: 1px solid rgba(255,255,255,.72) !important;
  border-radius: 999px !important;
  background: rgba(0,0,0,.3) !important;
  color: #fff !important;
  text-decoration: none !important;
  transition: transform .18s ease, background .18s ease, border-color .18s ease !important;
}

.wpi-header-cart:hover {
  transform: translateY(-1px) !important;
  background: #d20404 !important;
  border-color: #d20404 !important;
  color: #fff !important;
}

.wpi-header-cart svg {
  width: 1.28rem !important;
  height: 1.28rem !important;
  display: block !important;
  fill: currentColor !important;
}

.wpi-header-cart-count {
  position: absolute !important;
  top: -.42rem !important;
  right: -.42rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1.45rem !important;
  height: 1.45rem !important;
  min-width: 1.45rem !important;
  border-radius: 999px !important;
  background: #d20404 !important;
  color: #fff !important;
  border: 2px solid #050505 !important;
  font-size: .72rem !important;
  font-weight: 950 !important;
  line-height: 1 !important;
}

.wpi-cart-overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 1000000 !important;
  background: rgba(0,0,0,.58) !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .22s ease !important;
}

.wpi-cart-drawer {
  position: fixed !important;
  top: 0 !important;
  right: 0 !important;
  z-index: 1000001 !important;
  width: min(31rem, calc(100vw - 1rem)) !important;
  height: 100vh !important;
  height: 100dvh !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  background: #fff !important;
  color: #111 !important;
  box-shadow: -1.25rem 0 3rem rgba(0,0,0,.28) !important;
  transform: translateX(104%) !important;
  transition: transform .26s ease !important;
  overflow: hidden !important;
}

body.wpi-cart-drawer-open {
  overflow: hidden !important;
}

body.wpi-cart-drawer-open .wpi-cart-overlay {
  opacity: 1 !important;
  pointer-events: auto !important;
}

body.wpi-cart-drawer-open .wpi-cart-drawer {
  transform: translateX(0) !important;
}

.wpi-cart-drawer-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem !important;
  padding: 1.25rem 1.25rem 1rem !important;
  border-bottom: 1px solid rgba(0,0,0,.08) !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(210,4,4,.22), transparent 12rem),
    #0d0d0d !important;
  color: #fff !important;
}

.wpi-cart-drawer-head span,
.wpi-cart-drawer-head strong {
  display: block !important;
}

.wpi-cart-drawer-head span {
  color: rgba(255,255,255,.62) !important;
  font-size: .74rem !important;
  font-weight: 900 !important;
  letter-spacing: .1em !important;
  line-height: 1.1 !important;
  text-transform: uppercase !important;
}

.wpi-cart-drawer-head strong {
  margin-top: .28rem !important;
  color: #fff !important;
  font-family: var(--display, "Clash Display", sans-serif) !important;
  font-size: 2.1rem !important;
  line-height: .95 !important;
  letter-spacing: .012em !important;
  text-transform: uppercase !important;
}

.wpi-cart-drawer-close {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 2.75rem !important;
  height: 2.75rem !important;
  min-width: 2.75rem !important;
  border: 1px solid rgba(255,255,255,.25) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.08) !important;
  color: #fff !important;
  font-size: 1.8rem !important;
  line-height: 1 !important;
  cursor: pointer !important;
}

.wpi-mini-cart-body {
  min-width: 0 !important;
  overflow: auto !important;
  padding: 1rem 1.25rem !important;
  -webkit-overflow-scrolling: touch !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart,
.wpi-mini-cart-body .woocommerce-mini-cart li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart li {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 4.5rem minmax(0, 1fr) !important;
  gap: .85rem !important;
  align-items: center !important;
  padding: .9rem 0 !important;
  border-bottom: 1px solid rgba(0,0,0,.08) !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart li a:not(.remove) {
  color: #111 !important;
  font-size: 1rem !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  text-decoration: none !important;
  overflow-wrap: anywhere !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart li img {
  width: 4.5rem !important;
  height: 4.5rem !important;
  object-fit: contain !important;
  border-radius: .85rem !important;
  background: #f4f4f4 !important;
  float: none !important;
  margin: 0 !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart li a.remove {
  position: absolute !important;
  top: .7rem !important;
  right: 0 !important;
  width: 1.65rem !important;
  height: 1.65rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  background: #111 !important;
  color: #fff !important;
  font-size: 1rem !important;
  line-height: 1 !important;
  text-decoration: none !important;
}

.wpi-mini-cart-body .quantity {
  display: block !important;
  margin-top: .38rem !important;
  color: rgba(0,0,0,.58) !important;
  font-size: .9rem !important;
  font-weight: 800 !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart__total {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem !important;
  margin: 1.2rem 0 0 !important;
  padding: 1rem !important;
  border-radius: 1rem !important;
  background: #f5f5f6 !important;
  color: #111 !important;
  font-weight: 950 !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart__buttons {
  display: none !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart__empty-message {
  margin: 0 !important;
  padding: 2.4rem 1rem !important;
  border-radius: 1.15rem !important;
  background: #f5f5f6 !important;
  color: rgba(0,0,0,.68) !important;
  text-align: center !important;
  font-size: 1.02rem !important;
  line-height: 1.5 !important;
}

.wpi-cart-drawer-actions {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: .75rem !important;
  padding: 1rem 1.25rem 1.25rem !important;
  border-top: 1px solid rgba(0,0,0,.08) !important;
  background: #fff !important;
}

.wpi-cart-drawer-actions a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 3.55rem !important;
  padding: .95rem 1rem !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  font-size: .84rem !important;
  font-weight: 950 !important;
  line-height: 1.1 !important;
  letter-spacing: .06em !important;
  text-align: center !important;
  text-transform: uppercase !important;
}

.wpi-cart-drawer-cart {
  border: 1px solid rgba(0,0,0,.14) !important;
  background: #fff !important;
  color: #111 !important;
}

.wpi-cart-drawer-checkout {
  border: 1px solid #d20404 !important;
  background: #d20404 !important;
  color: #fff !important;
}

.single-product .wpi-product-notices .woocommerce-message,
.wpi-single-product-page .wpi-product-notices .woocommerce-message,
.single-product .woocommerce-notices-wrapper .woocommerce-message:empty,
.wpi-single-product-page .woocommerce-notices-wrapper .woocommerce-message:empty {
  display: none !important;
}

.single-product .wpi-sp-topbar,
.wpi-single-product-page .wpi-sp-topbar {
  padding-bottom: clamp(1.2rem, 2vw, 2.45rem) !important;
}

.single-product .wpi-sp-topbar .wpi-global-header,
.wpi-single-product-page .wpi-sp-topbar .wpi-global-header {
  margin-bottom: clamp(.9rem, 1.35vw, 1.65rem) !important;
}

.wpi-cart-hero-copy h1,
.woocommerce-cart .wpi-cart-hero-copy h1,
.wpi-cart-page .wpi-cart-hero-copy h1 {
  letter-spacing: .01em !important;
  word-spacing: .035em !important;
}

/* Hard checkout order box containment: stop the Your Order panel from splitting or overflowing. */
.woocommerce-checkout .wpi-checkout-card form.checkout.woocommerce-checkout,
.wpi-checkout-card form.checkout.woocommerce-checkout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, 30rem) !important;
  grid-template-areas:
    "customer reviewTitle"
    "customer reviewBox" !important;
  column-gap: clamp(1.25rem, 2.4vw, 2.5rem) !important;
  row-gap: 0 !important;
  align-items: start !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow: visible !important;
}

.woocommerce-checkout .wpi-checkout-card #customer_details,
.wpi-checkout-card #customer_details {
  grid-area: customer !important;
  width: 100% !important;
  min-width: 0 !important;
}

.woocommerce-checkout .wpi-checkout-card #order_review_heading,
.wpi-checkout-card #order_review_heading {
  grid-area: reviewTitle !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 1.25rem 1.25rem .8rem !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  border-bottom: 0 !important;
  border-radius: 1.35rem 1.35rem 0 0 !important;
  background: #111 !important;
  color: #fff !important;
  box-shadow: 0 1.2rem 3rem rgba(0,0,0,.08) !important;
  float: none !important;
  clear: none !important;
  overflow-wrap: anywhere !important;
}

.woocommerce-checkout .wpi-checkout-card #order_review,
.wpi-checkout-card #order_review {
  grid-area: reviewBox !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 1.25rem 1.25rem !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  border-top: 0 !important;
  border-radius: 0 0 1.35rem 1.35rem !important;
  background: #111 !important;
  color: #fff !important;
  box-shadow: 0 1.2rem 3rem rgba(0,0,0,.08) !important;
  float: none !important;
  clear: none !important;
  overflow: hidden !important;
}

.wpi-checkout-card #order_review table,
.wpi-checkout-card #order_review thead,
.wpi-checkout-card #order_review tbody,
.wpi-checkout-card #order_review tfoot,
.wpi-checkout-card #order_review tr,
.wpi-checkout-card #order_review th,
.wpi-checkout-card #order_review td,
.wpi-checkout-card #payment,
.wpi-checkout-card .woocommerce-checkout-payment,
.wpi-checkout-card #payment ul.payment_methods,
.wpi-checkout-card #payment li,
.wpi-checkout-card #payment div.payment_box {
  max-width: 100% !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  overflow-wrap: anywhere !important;
}

.wpi-checkout-card #order_review table.shop_table {
  width: 100% !important;
  margin: 0 0 1rem !important;
  table-layout: auto !important;
  border-collapse: collapse !important;
  background: transparent !important;
  color: #fff !important;
}

.wpi-checkout-card #order_review table.shop_table th,
.wpi-checkout-card #order_review table.shop_table td {
  padding: .85rem 0 !important;
  border-color: rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.84) !important;
  background: transparent !important;
  vertical-align: top !important;
}

.wpi-checkout-card #order_review table.shop_table .product-name,
.wpi-checkout-card #order_review table.shop_table td.product-name {
  width: 64% !important;
  padding-right: .85rem !important;
  text-align: left !important;
}

.wpi-checkout-card #order_review table.shop_table .product-total,
.wpi-checkout-card #order_review table.shop_table td.product-total,
.wpi-checkout-card #order_review table.shop_table tfoot td {
  width: 36% !important;
  text-align: right !important;
}

.wpi-checkout-card #order_review table.shop_table .order-total th,
.wpi-checkout-card #order_review table.shop_table .order-total td,
.wpi-checkout-card #order_review table.shop_table .order-total .amount {
  color: #fff !important;
  font-size: 1.12rem !important;
  font-weight: 950 !important;
}

.wpi-checkout-card #payment,
.wpi-checkout-card .woocommerce-checkout-payment {
  border-radius: 1rem !important;
  background: rgba(255,255,255,.06) !important;
  color: #fff !important;
  overflow: hidden !important;
}

.wpi-checkout-card #payment label,
.wpi-checkout-card #payment p,
.wpi-checkout-card #payment li,
.wpi-checkout-card #payment div.payment_box,
.wpi-checkout-card #payment .payment_box {
  color: rgba(255,255,255,.82) !important;
}

.wpi-checkout-card #payment div.payment_box,
.wpi-checkout-card #payment .payment_box {
  background: rgba(255,255,255,.08) !important;
}

.wpi-checkout-card #payment div.payment_box::before {
  border-bottom-color: rgba(255,255,255,.08) !important;
}

.wpi-checkout-card #place_order {
  width: 100% !important;
  background: #d20404 !important;
  color: #fff !important;
}

@media (max-width: 1180px) {
  .woocommerce-checkout .wpi-checkout-card form.checkout.woocommerce-checkout,
  .wpi-checkout-card form.checkout.woocommerce-checkout {
    display: block !important;
  }

  .woocommerce-checkout .wpi-checkout-card #order_review_heading,
  .woocommerce-checkout .wpi-checkout-card #order_review,
  .wpi-checkout-card #order_review_heading,
  .wpi-checkout-card #order_review {
    width: 100% !important;
    max-width: 100% !important;
  }

  .woocommerce-checkout .wpi-checkout-card #order_review_heading,
  .wpi-checkout-card #order_review_heading {
    margin-top: 1.4rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-global-header .wpi-header-actions,
  .site-header.wpi-global-header .wpi-header-actions {
    justify-self: end !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: .65rem !important;
  }

  .wpi-global-header .wpi-header-actions .header-contact {
    display: none !important;
  }

  .wpi-header-cart {
    width: 3.35rem !important;
    height: 3.35rem !important;
    min-width: 3.35rem !important;
  }

  .wpi-global-header .wpi-header-actions .mobile-menu-toggle,
  .site-header.wpi-global-header .wpi-header-actions .mobile-menu-toggle {
    position: relative !important;
    justify-self: auto !important;
  }

  .wpi-cart-drawer {
    width: min(30rem, 100vw) !important;
  }

  .wpi-mini-cart-body {
    padding: .85rem 1rem !important;
  }

  .wpi-cart-drawer-actions {
    grid-template-columns: 1fr !important;
    padding: .85rem 1rem 1rem !important;
  }

  .woocommerce-checkout .wpi-checkout-card #order_review,
  .wpi-checkout-card #order_review {
    padding: 0 .95rem .95rem !important;
  }

  .wpi-checkout-card #order_review table.shop_table,
  .wpi-checkout-card #order_review table.shop_table tbody,
  .wpi-checkout-card #order_review table.shop_table tfoot,
  .wpi-checkout-card #order_review table.shop_table tr,
  .wpi-checkout-card #order_review table.shop_table th,
  .wpi-checkout-card #order_review table.shop_table td {
    display: block !important;
    width: 100% !important;
    text-align: left !important;
  }

  .wpi-checkout-card #order_review table.shop_table tr {
    padding: .75rem 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
  }

  .wpi-checkout-card #order_review table.shop_table th,
  .wpi-checkout-card #order_review table.shop_table td,
  .wpi-checkout-card #order_review table.shop_table .product-name,
  .wpi-checkout-card #order_review table.shop_table .product-total {
    width: 100% !important;
    padding: .2rem 0 !important;
    text-align: left !important;
  }
}


/* v1.0.100 Checkout order + side cart connected polish
   Purpose: make the checkout Your Order panel feel like one connected sidebar card
   and improve the slide-in cart drawer layout without changing WooCommerce flow. */
.woocommerce-checkout .wpi-checkout-card form.checkout.woocommerce-checkout,
.wpi-checkout-card form.checkout.woocommerce-checkout {
  grid-template-columns: minmax(0, 1fr) minmax(22rem, 32rem) !important;
  grid-template-areas:
    "customer reviewTitle"
    "customer reviewBox" !important;
  column-gap: clamp(1.5rem, 2.7vw, 3rem) !important;
  row-gap: 0 !important;
  align-items: start !important;
}

.woocommerce-checkout .wpi-checkout-card #order_review_heading,
.wpi-checkout-card #order_review_heading {
  grid-area: reviewTitle !important;
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem !important;
  min-height: 4.65rem !important;
  margin: 0 !important;
  padding: 1.35rem 1.45rem 1.05rem !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-bottom: 0 !important;
  border-radius: 1.55rem 1.55rem 0 0 !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(210,4,4,.22), transparent 12rem),
    linear-gradient(135deg, #090909 0%, #151515 100%) !important;
  color: #fff !important;
  box-shadow: 0 1.2rem 2.75rem rgba(0,0,0,.12) !important;
  font-size: clamp(1.65rem, 1.65vw, 2.15rem) !important;
  letter-spacing: .018em !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
}

.woocommerce-checkout .wpi-checkout-card #order_review_heading::after,
.wpi-checkout-card #order_review_heading::after {
  content: "Secure checkout" !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 2rem !important;
  padding: .45rem .72rem !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.1) !important;
  color: rgba(255,255,255,.72) !important;
  font-family: var(--body, Inter, sans-serif) !important;
  font-size: .66rem !important;
  font-weight: 950 !important;
  letter-spacing: .09em !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.woocommerce-checkout .wpi-checkout-card #order_review,
.wpi-checkout-card #order_review {
  grid-area: reviewBox !important;
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 1.45rem 1.45rem !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-top: 0 !important;
  border-radius: 0 0 1.55rem 1.55rem !important;
  background:
    linear-gradient(180deg, #151515 0%, #0d0d0d 100%) !important;
  color: #fff !important;
  box-shadow: 0 1.2rem 2.75rem rgba(0,0,0,.12) !important;
  overflow: hidden !important;
}

.woocommerce-checkout .wpi-checkout-card #order_review::before,
.wpi-checkout-card #order_review::before {
  content: "" !important;
  display: block !important;
  height: 1px !important;
  margin: 0 0 .9rem !important;
  background: linear-gradient(90deg, rgba(255,255,255,.08), rgba(210,4,4,.52), rgba(255,255,255,.08)) !important;
}

.wpi-checkout-card #order_review table.shop_table,
.wpi-checkout-card .woocommerce-checkout-review-order-table {
  margin: 0 0 1.1rem !important;
  border: 0 !important;
  table-layout: fixed !important;
  background: transparent !important;
}

.wpi-checkout-card #order_review table.shop_table thead th,
.wpi-checkout-card .woocommerce-checkout-review-order-table thead th {
  padding-top: .25rem !important;
  color: rgba(255,255,255,.52) !important;
  font-size: .72rem !important;
  letter-spacing: .1em !important;
}

.wpi-checkout-card #order_review table.shop_table th,
.wpi-checkout-card #order_review table.shop_table td,
.wpi-checkout-card .woocommerce-checkout-review-order-table th,
.wpi-checkout-card .woocommerce-checkout-review-order-table td {
  padding: .92rem 0 !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.1) !important;
  background: transparent !important;
  color: rgba(255,255,255,.84) !important;
  vertical-align: top !important;
}

.wpi-checkout-card #order_review table.shop_table .product-name,
.wpi-checkout-card #order_review table.shop_table td.product-name,
.wpi-checkout-card .woocommerce-checkout-review-order-table .product-name,
.wpi-checkout-card .woocommerce-checkout-review-order-table td.product-name {
  width: 66% !important;
  max-width: 66% !important;
  padding-right: 1rem !important;
  color: #fff !important;
  font-weight: 850 !important;
  line-height: 1.35 !important;
  overflow-wrap: anywhere !important;
}

.wpi-checkout-card #order_review table.shop_table .product-total,
.wpi-checkout-card #order_review table.shop_table td.product-total,
.wpi-checkout-card .woocommerce-checkout-review-order-table .product-total,
.wpi-checkout-card .woocommerce-checkout-review-order-table td.product-total,
.wpi-checkout-card #order_review table.shop_table tfoot td,
.wpi-checkout-card .woocommerce-checkout-review-order-table tfoot td {
  width: 34% !important;
  max-width: 34% !important;
  text-align: right !important;
  white-space: normal !important;
}

.wpi-checkout-card #order_review table.shop_table tfoot tr:last-child th,
.wpi-checkout-card #order_review table.shop_table tfoot tr:last-child td,
.wpi-checkout-card .woocommerce-checkout-review-order-table tfoot tr:last-child th,
.wpi-checkout-card .woocommerce-checkout-review-order-table tfoot tr:last-child td {
  border-bottom: 0 !important;
}

.wpi-checkout-card #order_review table.shop_table .order-total th,
.wpi-checkout-card #order_review table.shop_table .order-total td,
.wpi-checkout-card #order_review table.shop_table .order-total .amount,
.wpi-checkout-card .woocommerce-checkout-review-order-table .order-total th,
.wpi-checkout-card .woocommerce-checkout-review-order-table .order-total td,
.wpi-checkout-card .woocommerce-checkout-review-order-table .order-total .amount {
  color: #fff !important;
  font-size: clamp(1.08rem, 1.1vw, 1.32rem) !important;
  font-weight: 950 !important;
}

.wpi-checkout-card #payment,
.wpi-checkout-card .woocommerce-checkout-payment {
  margin-top: 1rem !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 1.1rem !important;
  background: rgba(255,255,255,.065) !important;
  overflow: hidden !important;
}

.wpi-checkout-card #payment ul.payment_methods {
  padding: 1rem !important;
}

.wpi-checkout-card #payment div.form-row {
  padding: 1rem !important;
}

.wpi-checkout-card #place_order,
.wpi-checkout-card button#place_order {
  min-height: 3.95rem !important;
  width: 100% !important;
  border-radius: 999px !important;
  background: #d20404 !important;
  color: #fff !important;
  box-shadow: 0 .8rem 1.9rem rgba(210,4,4,.28) !important;
}

/* Better connected side cart drawer layout. */
.wpi-cart-overlay {
  background: rgba(0,0,0,.62) !important;
  backdrop-filter: blur(3px) !important;
}

.wpi-cart-drawer {
  width: min(34rem, calc(100vw - 1rem)) !important;
  grid-template-rows: auto minmax(0, 1fr) auto !important;
  border-left: 1px solid rgba(255,255,255,.08) !important;
  background: #f6f6f8 !important;
  box-shadow: -1.5rem 0 4rem rgba(0,0,0,.34) !important;
}

.wpi-cart-drawer-head {
  padding: 1.35rem 1.35rem 1.15rem !important;
  border-bottom: 0 !important;
  background:
    radial-gradient(circle at 92% 2%, rgba(210,4,4,.28), transparent 11rem),
    linear-gradient(135deg, #070707 0%, #151515 100%) !important;
}

.wpi-cart-drawer-head strong {
  font-size: clamp(2rem, 3vw, 2.55rem) !important;
  letter-spacing: .018em !important;
}

.wpi-cart-drawer-close:hover {
  background: #d20404 !important;
  border-color: #d20404 !important;
  color: #fff !important;
}

.wpi-mini-cart-body {
  padding: 1rem 1.2rem 1.15rem !important;
  background:
    linear-gradient(180deg, #101010 0, #101010 1.25rem, #f6f6f8 1.25rem, #f6f6f8 100%) !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart {
  display: grid !important;
  gap: .8rem !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart li,
.wpi-mini-cart-body .woocommerce-mini-cart li.mini_cart_item {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 5.1rem minmax(0, 1fr) !important;
  gap: .95rem !important;
  align-items: center !important;
  min-height: 6.4rem !important;
  margin: 0 !important;
  padding: .9rem 2.2rem .9rem .9rem !important;
  border: 1px solid rgba(0,0,0,.07) !important;
  border-radius: 1.15rem !important;
  background: #fff !important;
  box-shadow: 0 .5rem 1.35rem rgba(0,0,0,.055) !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart li a:not(.remove) {
  display: grid !important;
  grid-template-columns: 5.1rem minmax(0, 1fr) !important;
  gap: .95rem !important;
  align-items: center !important;
  grid-column: 1 / -1 !important;
  color: #111 !important;
  font-size: 1rem !important;
  font-weight: 950 !important;
  line-height: 1.22 !important;
  text-decoration: none !important;
  overflow-wrap: anywhere !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart li img {
  grid-column: 1 !important;
  width: 5.1rem !important;
  height: 5.1rem !important;
  object-fit: contain !important;
  border-radius: .95rem !important;
  background:
    radial-gradient(circle at 50% 45%, rgba(210,4,4,.08), transparent 58%),
    #f1f1f2 !important;
  float: none !important;
  margin: 0 !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart li a.remove {
  position: absolute !important;
  top: .75rem !important;
  right: .75rem !important;
  z-index: 2 !important;
  width: 1.8rem !important;
  height: 1.8rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  background: #111 !important;
  color: #fff !important;
  font-size: 1.05rem !important;
  line-height: 1 !important;
  text-decoration: none !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart li a.remove:hover {
  background: #d20404 !important;
  color: #fff !important;
}

.wpi-mini-cart-body .quantity {
  grid-column: 2 !important;
  display: inline-flex !important;
  align-items: center !important;
  width: fit-content !important;
  margin: -.65rem 0 0 6.05rem !important;
  padding: .38rem .62rem !important;
  border-radius: 999px !important;
  background: #f2f2f3 !important;
  color: rgba(0,0,0,.64) !important;
  font-size: .82rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart__total {
  margin: .95rem 0 0 !important;
  padding: 1.15rem 1.2rem !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  border-radius: 1.15rem !important;
  background:
    radial-gradient(circle at 100% 0, rgba(210,4,4,.11), transparent 9rem),
    #111 !important;
  color: #fff !important;
  box-shadow: 0 .6rem 1.4rem rgba(0,0,0,.12) !important;
}

.wpi-mini-cart-body .woocommerce-mini-cart__total strong,
.wpi-mini-cart-body .woocommerce-mini-cart__total .amount {
  color: #fff !important;
  font-weight: 950 !important;
}

.wpi-cart-drawer-actions {
  padding: 1rem 1.2rem 1.2rem !important;
  border-top: 0 !important;
  background: #fff !important;
  box-shadow: 0 -1rem 2rem rgba(0,0,0,.06) !important;
}

.wpi-cart-drawer-actions a {
  min-height: 3.75rem !important;
  border-radius: 999px !important;
}

.wpi-cart-drawer-checkout {
  box-shadow: 0 .7rem 1.5rem rgba(210,4,4,.22) !important;
}

@media (max-width: 1180px) {
  .woocommerce-checkout .wpi-checkout-card form.checkout.woocommerce-checkout,
  .wpi-checkout-card form.checkout.woocommerce-checkout {
    display: block !important;
  }

  .woocommerce-checkout .wpi-checkout-card #order_review_heading,
  .wpi-checkout-card #order_review_heading {
    margin-top: 1.35rem !important;
  }
}

@media (max-width: 767px) {
  .woocommerce-checkout .wpi-checkout-card #order_review_heading,
  .wpi-checkout-card #order_review_heading {
    display: block !important;
    min-height: 0 !important;
    padding: 1.15rem 1rem .85rem !important;
    border-radius: 1.15rem 1.15rem 0 0 !important;
  }

  .woocommerce-checkout .wpi-checkout-card #order_review_heading::after,
  .wpi-checkout-card #order_review_heading::after {
    display: none !important;
  }

  .woocommerce-checkout .wpi-checkout-card #order_review,
  .wpi-checkout-card #order_review {
    padding: 0 1rem 1rem !important;
    border-radius: 0 0 1.15rem 1.15rem !important;
  }

  .wpi-checkout-card #order_review table.shop_table,
  .wpi-checkout-card #order_review table.shop_table tbody,
  .wpi-checkout-card #order_review table.shop_table tfoot,
  .wpi-checkout-card #order_review table.shop_table tr,
  .wpi-checkout-card #order_review table.shop_table th,
  .wpi-checkout-card #order_review table.shop_table td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: left !important;
  }

  .wpi-checkout-card #order_review table.shop_table tr {
    padding: .75rem 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.1) !important;
  }

  .wpi-checkout-card #order_review table.shop_table th,
  .wpi-checkout-card #order_review table.shop_table td,
  .wpi-checkout-card #order_review table.shop_table .product-name,
  .wpi-checkout-card #order_review table.shop_table .product-total {
    width: 100% !important;
    max-width: 100% !important;
    padding: .22rem 0 !important;
    text-align: left !important;
  }

  .wpi-cart-drawer {
    width: 100vw !important;
    max-width: 100vw !important;
  }

  .wpi-mini-cart-body,
  .wpi-cart-drawer-actions {
    padding-left: .95rem !important;
    padding-right: .95rem !important;
  }

  .wpi-mini-cart-body .woocommerce-mini-cart li,
  .wpi-mini-cart-body .woocommerce-mini-cart li.mini_cart_item {
    grid-template-columns: 4.65rem minmax(0, 1fr) !important;
    min-height: 5.9rem !important;
    padding: .75rem 2rem .75rem .75rem !important;
  }

  .wpi-mini-cart-body .woocommerce-mini-cart li a:not(.remove) {
    grid-template-columns: 4.65rem minmax(0, 1fr) !important;
    gap: .75rem !important;
    font-size: .95rem !important;
  }

  .wpi-mini-cart-body .woocommerce-mini-cart li img {
    width: 4.65rem !important;
    height: 4.65rem !important;
  }

  .wpi-mini-cart-body .quantity {
    margin-left: 5.4rem !important;
    font-size: .78rem !important;
  }
}

/* v1.0.101 Thorough checkout rebuild and hard polish
   Checkout-only pass: keeps native WooCommerce checkout/payment/order flow intact. */
.woocommerce-checkout .wpi-checkout-page,
.wpi-checkout-page {
  background:
    radial-gradient(circle at 7% 8%, rgba(210,4,4,.06), transparent 21rem),
    radial-gradient(circle at 94% 16%, rgba(210,4,4,.045), transparent 20rem),
    #fafafa !important;
}

.woocommerce-checkout .wpi-checkout-hero,
.wpi-checkout-hero {
  min-height: auto !important;
  overflow: visible !important;
  background:
    radial-gradient(circle at 7% 78%, rgba(210,4,4,.4), transparent 27rem),
    radial-gradient(circle at 94% 30%, rgba(210,4,4,.18), transparent 22rem),
    linear-gradient(180deg, #020202 0%, #151515 52%, #050505 100%) !important;
}

.woocommerce-checkout .wpi-checkout-hero-copy,
.wpi-checkout-hero-copy {
  padding-top: clamp(3.2rem, 5vw, 5.4rem) !important;
  padding-bottom: clamp(4rem, 6vw, 6.5rem) !important;
}

.woocommerce-checkout .wpi-checkout-hero-copy h1,
.wpi-checkout-hero-copy h1 {
  letter-spacing: .018em !important;
  line-height: .98 !important;
  max-width: 62rem !important;
}

.woocommerce-checkout .wpi-checkout-hero-copy p,
.wpi-checkout-hero-copy p {
  max-width: 53rem !important;
}

.woocommerce-checkout .wpi-checkout-main-section,
.wpi-checkout-main-section {
  padding: 0 0 6.5rem !important;
  margin-top: -2.9rem !important;
  position: relative !important;
  z-index: 5 !important;
}

.wpi-checkout-trust-row {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: .8rem !important;
  width: min(94rem, calc(100vw - 2rem)) !important;
  margin: 0 auto 1rem !important;
}

.wpi-checkout-trust-row span {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 3.25rem !important;
  padding: .75rem 1rem !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.96) !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  color: rgba(0,0,0,.72) !important;
  box-shadow: 0 .8rem 2rem rgba(0,0,0,.06) !important;
  font-size: .78rem !important;
  font-weight: 950 !important;
  letter-spacing: .075em !important;
  line-height: 1.1 !important;
  text-align: center !important;
  text-transform: uppercase !important;
}

.woocommerce-checkout .wpi-checkout-card,
.wpi-checkout-card {
  width: min(94rem, calc(100vw - 2rem)) !important;
  max-width: 94rem !important;
  padding: clamp(1rem, 2.1vw, 2.2rem) !important;
  border-radius: clamp(1.35rem, 2vw, 2rem) !important;
  background: rgba(255,255,255,.98) !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  box-shadow: 0 1.5rem 4.5rem rgba(0,0,0,.12) !important;
  overflow: visible !important;
}

/* Native checkout form layout: billing/shipping left, single connected order panel right. */
.woocommerce-checkout .wpi-checkout-card form.checkout.woocommerce-checkout,
.wpi-checkout-card form.checkout.woocommerce-checkout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(26rem, 34rem) !important;
  grid-template-areas: "customer review" !important;
  gap: clamp(1.35rem, 2.3vw, 2.55rem) !important;
  align-items: start !important;
  width: 100% !important;
  margin: 0 !important;
}

.woocommerce-checkout .wpi-checkout-card .col2-set,
.wpi-checkout-card .col2-set {
  grid-area: customer !important;
  display: grid !important;
  gap: 1rem !important;
  min-width: 0 !important;
  width: 100% !important;
  float: none !important;
}

.woocommerce-checkout .wpi-checkout-card .col2-set .col-1,
.woocommerce-checkout .wpi-checkout-card .col2-set .col-2,
.wpi-checkout-card .col2-set .col-1,
.wpi-checkout-card .col2-set .col-2 {
  float: none !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: clamp(1.1rem, 1.7vw, 1.7rem) !important;
  border-radius: 1.35rem !important;
  background: #f6f6f8 !important;
  border: 1px solid rgba(0,0,0,.065) !important;
  box-shadow: none !important;
}

.woocommerce-checkout .wpi-checkout-card #order_review_heading,
.wpi-checkout-card #order_review_heading {
  display: none !important;
}

.woocommerce-checkout .wpi-checkout-card #order_review,
.wpi-checkout-card #order_review {
  grid-area: review !important;
  position: sticky !important;
  top: 1.25rem !important;
  z-index: 2 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 1.65rem !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(210,4,4,.22), transparent 12rem),
    linear-gradient(180deg, #151515 0%, #090909 100%) !important;
  color: #fff !important;
  box-shadow: 0 1.35rem 3.4rem rgba(0,0,0,.16) !important;
  overflow: hidden !important;
}

.woocommerce-checkout .wpi-checkout-card #order_review::before,
.wpi-checkout-card #order_review::before {
  content: "Your Order" !important;
  display: flex !important;
  align-items: center !important;
  min-height: 4.85rem !important;
  padding: 1.35rem 1.45rem 1.05rem !important;
  border-bottom: 1px solid rgba(255,255,255,.1) !important;
  font-family: var(--display, "Clash Display", sans-serif) !important;
  font-size: clamp(1.8rem, 1.8vw, 2.35rem) !important;
  font-weight: 700 !important;
  letter-spacing: .018em !important;
  line-height: .95 !important;
  text-transform: uppercase !important;
  color: #fff !important;
}

.woocommerce-checkout .wpi-checkout-card #order_review > *,
.wpi-checkout-card #order_review > * {
  max-width: 100% !important;
}

/* Customer form polish. */
.wpi-checkout-card h3,
.wpi-checkout-card .woocommerce-billing-fields h3,
.wpi-checkout-card .woocommerce-shipping-fields h3,
.wpi-checkout-card .woocommerce-additional-fields h3 {
  margin: 0 0 1.15rem !important;
  color: #111 !important;
  font-family: var(--display, "Clash Display", sans-serif) !important;
  font-size: clamp(1.8rem, 2vw, 2.45rem) !important;
  line-height: 1 !important;
  letter-spacing: .012em !important;
  text-transform: uppercase !important;
}

.wpi-checkout-card .woocommerce-billing-fields__field-wrapper,
.wpi-checkout-card .woocommerce-shipping-fields__field-wrapper,
.wpi-checkout-card .woocommerce-additional-fields__field-wrapper {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  column-gap: .95rem !important;
  row-gap: .9rem !important;
}

.wpi-checkout-card .form-row,
.wpi-checkout-card .form-row-first,
.wpi-checkout-card .form-row-last,
.wpi-checkout-card .form-row-wide {
  float: none !important;
  clear: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.wpi-checkout-card .form-row-wide,
.wpi-checkout-card #billing_company_field,
.wpi-checkout-card #billing_country_field,
.wpi-checkout-card #billing_address_1_field,
.wpi-checkout-card #billing_address_2_field,
.wpi-checkout-card #shipping_company_field,
.wpi-checkout-card #shipping_country_field,
.wpi-checkout-card #shipping_address_1_field,
.wpi-checkout-card #shipping_address_2_field,
.wpi-checkout-card #order_comments_field,
.wpi-checkout-card .woocommerce-account-fields,
.wpi-checkout-card .woocommerce-shipping-fields,
.wpi-checkout-card .woocommerce-additional-fields {
  grid-column: 1 / -1 !important;
}

.wpi-checkout-card label {
  display: block !important;
  margin: 0 0 .42rem !important;
  color: rgba(0,0,0,.64) !important;
  font-size: .78rem !important;
  font-weight: 950 !important;
  letter-spacing: .075em !important;
  line-height: 1.25 !important;
  text-transform: uppercase !important;
}

.wpi-checkout-card input.input-text,
.wpi-checkout-card textarea,
.wpi-checkout-card select,
.wpi-checkout-card .select2-container--default .select2-selection--single {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 3.45rem !important;
  border: 1px solid rgba(0,0,0,.13) !important;
  border-radius: .9rem !important;
  background: #fff !important;
  color: #111 !important;
  padding: .86rem 1rem !important;
  font-family: var(--body, Inter, sans-serif) !important;
  font-size: 1rem !important;
  line-height: 1.25 !important;
  box-shadow: none !important;
  outline: none !important;
}

.wpi-checkout-card input.input-text:focus,
.wpi-checkout-card textarea:focus,
.wpi-checkout-card select:focus,
.wpi-checkout-card .select2-container--open .select2-selection--single {
  border-color: rgba(210,4,4,.55) !important;
  box-shadow: 0 0 0 .22rem rgba(210,4,4,.09) !important;
}

.wpi-checkout-card textarea {
  min-height: 8rem !important;
  resize: vertical !important;
}

.wpi-checkout-card .select2-container {
  width: 100% !important;
  max-width: 100% !important;
}

.wpi-checkout-card .select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0 !important;
  color: #111 !important;
  line-height: 1.55 !important;
}

.select2-container--open {
  z-index: 1000005 !important;
}

/* Coupon and notices. */
.wpi-checkout-card .woocommerce-form-coupon-toggle,
.wpi-checkout-card form.checkout_coupon,
.wpi-checkout-card .woocommerce-notices-wrapper,
.wpi-checkout-card .woocommerce-NoticeGroup,
.wpi-checkout-card .woocommerce-NoticeGroup-checkout {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
}

.wpi-checkout-card .woocommerce-info,
.wpi-checkout-card .woocommerce-message,
.wpi-checkout-card .woocommerce-error {
  width: 100% !important;
  margin: 0 0 1rem !important;
  border: 0 !important;
  border-left: .35rem solid #d20404 !important;
  border-radius: 1rem !important;
  background: #f6f6f8 !important;
  color: #111 !important;
  padding: 1rem 1.2rem !important;
  box-shadow: none !important;
  overflow-wrap: anywhere !important;
}

.wpi-checkout-card form.checkout_coupon {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: .8rem !important;
  align-items: end !important;
  padding: 1.15rem !important;
  border: 1px solid rgba(0,0,0,.08) !important;
  border-radius: 1.1rem !important;
  background: #f6f6f8 !important;
}

.wpi-checkout-card form.checkout_coupon p {
  margin: 0 !important;
  padding: 0 !important;
}

/* Connected order review content. */
.wpi-checkout-card #order_review table.shop_table,
.wpi-checkout-card #order_review .woocommerce-checkout-review-order-table {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  table-layout: auto !important;
  background: transparent !important;
  color: #fff !important;
}

.wpi-checkout-card #order_review table.shop_table thead th,
.wpi-checkout-card #order_review table.shop_table th,
.wpi-checkout-card #order_review table.shop_table td,
.wpi-checkout-card #order_review .woocommerce-checkout-review-order-table th,
.wpi-checkout-card #order_review .woocommerce-checkout-review-order-table td {
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.1) !important;
  background: transparent !important;
  color: rgba(255,255,255,.82) !important;
  padding: .95rem 1.45rem !important;
  vertical-align: top !important;
  line-height: 1.35 !important;
}

.wpi-checkout-card #order_review table.shop_table thead th {
  padding-top: 1.05rem !important;
  padding-bottom: .65rem !important;
  color: rgba(255,255,255,.48) !important;
  font-size: .72rem !important;
  font-weight: 950 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
}

.wpi-checkout-card #order_review table.shop_table td.product-name,
.wpi-checkout-card #order_review .woocommerce-checkout-review-order-table td.product-name {
  color: #fff !important;
  font-weight: 850 !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

.wpi-checkout-card #order_review table.shop_table td.product-total,
.wpi-checkout-card #order_review table.shop_table th.product-total,
.wpi-checkout-card #order_review table.shop_table tfoot td,
.wpi-checkout-card #order_review .woocommerce-checkout-review-order-table td.product-total,
.wpi-checkout-card #order_review .woocommerce-checkout-review-order-table th.product-total,
.wpi-checkout-card #order_review .woocommerce-checkout-review-order-table tfoot td {
  text-align: right !important;
  white-space: nowrap !important;
}

.wpi-checkout-card #order_review table.shop_table .amount,
.wpi-checkout-card #order_review table.shop_table .order-total th,
.wpi-checkout-card #order_review table.shop_table .order-total td,
.wpi-checkout-card #order_review table.shop_table .order-total .amount {
  color: #fff !important;
  font-weight: 950 !important;
}

.wpi-checkout-card #order_review table.shop_table .order-total th,
.wpi-checkout-card #order_review table.shop_table .order-total td,
.wpi-checkout-card #order_review table.shop_table .order-total .amount {
  font-size: clamp(1.08rem, 1.25vw, 1.35rem) !important;
}

.wpi-checkout-card #order_review table.shop_table dl.variation,
.wpi-checkout-card #order_review table.shop_table dl.variation dt,
.wpi-checkout-card #order_review table.shop_table dl.variation dd,
.wpi-checkout-card #order_review table.shop_table dl.variation p {
  margin: .18rem 0 0 !important;
  color: rgba(255,255,255,.62) !important;
  font-size: .82rem !important;
  line-height: 1.3 !important;
}

.wpi-checkout-card #order_review .woocommerce-shipping-methods,
.wpi-checkout-card #order_review .woocommerce-shipping-methods li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.wpi-checkout-card #order_review .woocommerce-shipping-methods label {
  color: rgba(255,255,255,.82) !important;
  font-size: .86rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* Payment area inside the connected order card. */
.wpi-checkout-card #payment,
.wpi-checkout-card .woocommerce-checkout-payment {
  margin: 0 !important;
  padding: 1.2rem 1.45rem 1.45rem !important;
  border: 0 !important;
  border-top: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 0 !important;
  background: rgba(255,255,255,.055) !important;
  color: #fff !important;
  overflow: hidden !important;
}

.wpi-checkout-card #payment ul.payment_methods,
.wpi-checkout-card .woocommerce-checkout-payment ul.payment_methods {
  margin: 0 0 1rem !important;
  padding: 0 !important;
  border: 0 !important;
}

.wpi-checkout-card #payment ul.payment_methods li,
.wpi-checkout-card .woocommerce-checkout-payment ul.payment_methods li {
  margin: 0 0 .8rem !important;
  padding: .9rem 1rem !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: .95rem !important;
  background: rgba(255,255,255,.055) !important;
  color: #fff !important;
}

.wpi-checkout-card #payment label,
.wpi-checkout-card #payment p,
.wpi-checkout-card #payment div.payment_box,
.wpi-checkout-card .woocommerce-privacy-policy-text,
.wpi-checkout-card .woocommerce-terms-and-conditions-wrapper {
  color: rgba(255,255,255,.78) !important;
}

.wpi-checkout-card #payment div.payment_box {
  margin: .75rem 0 0 !important;
  padding: .9rem 1rem !important;
  border-radius: .8rem !important;
  background: rgba(0,0,0,.18) !important;
}

.wpi-checkout-card #payment div.payment_box::before {
  border-bottom-color: rgba(0,0,0,.18) !important;
}

.wpi-checkout-card #payment div.form-row {
  padding: 0 !important;
  margin: 0 !important;
}

.wpi-checkout-card #place_order,
.wpi-checkout-card button#place_order,
.wpi-checkout-card .button,
.wpi-checkout-card button.button,
.wpi-checkout-card a.button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 3.8rem !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #d20404 !important;
  color: #fff !important;
  padding: 1rem 1.6rem !important;
  font-family: var(--body, Inter, sans-serif) !important;
  font-size: .86rem !important;
  font-weight: 950 !important;
  letter-spacing: .07em !important;
  line-height: 1.1 !important;
  text-align: center !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  box-shadow: 0 .8rem 1.8rem rgba(210,4,4,.24) !important;
}

.wpi-checkout-card #place_order,
.wpi-checkout-card button#place_order {
  width: 100% !important;
  margin-top: .9rem !important;
}

.wpi-checkout-card #place_order:hover,
.wpi-checkout-card button#place_order:hover,
.wpi-checkout-card .button:hover,
.wpi-checkout-card button.button:hover,
.wpi-checkout-card a.button:hover {
  background: #b90000 !important;
  color: #fff !important;
}

.wpi-checkout-card .blockUI.blockOverlay {
  border-radius: inherit !important;
}

@media (max-width: 1180px) {
  .woocommerce-checkout .wpi-checkout-card form.checkout.woocommerce-checkout,
  .wpi-checkout-card form.checkout.woocommerce-checkout {
    display: grid !important;
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "customer"
      "review" !important;
    gap: 1.15rem !important;
  }

  .woocommerce-checkout .wpi-checkout-card #order_review,
  .wpi-checkout-card #order_review {
    position: relative !important;
    top: auto !important;
  }
}

@media (max-width: 767px) {
  .woocommerce-checkout .wpi-checkout-hero-copy,
  .wpi-checkout-hero-copy {
    padding: 3rem 1rem 4.4rem !important;
  }

  .woocommerce-checkout .wpi-checkout-hero-copy h1,
  .wpi-checkout-hero-copy h1 {
    font-size: clamp(2.65rem, 10vw, 3.65rem) !important;
    letter-spacing: .012em !important;
  }

  .woocommerce-checkout .wpi-checkout-main-section,
  .wpi-checkout-main-section {
    margin-top: -2.1rem !important;
    padding-bottom: 4rem !important;
  }

  .wpi-checkout-trust-row {
    width: min(100%, calc(100vw - 1.35rem)) !important;
    grid-template-columns: 1fr !important;
    gap: .55rem !important;
    margin-bottom: .75rem !important;
  }

  .wpi-checkout-trust-row span {
    min-height: 2.85rem !important;
    font-size: .72rem !important;
  }

  .woocommerce-checkout .wpi-checkout-card,
  .wpi-checkout-card {
    width: min(100%, calc(100vw - 1.35rem)) !important;
    padding: .85rem !important;
    border-radius: 1.25rem !important;
  }

  .woocommerce-checkout .wpi-checkout-card .col2-set .col-1,
  .woocommerce-checkout .wpi-checkout-card .col2-set .col-2,
  .wpi-checkout-card .col2-set .col-1,
  .wpi-checkout-card .col2-set .col-2 {
    padding: 1rem !important;
    border-radius: 1rem !important;
  }

  .wpi-checkout-card .woocommerce-billing-fields__field-wrapper,
  .wpi-checkout-card .woocommerce-shipping-fields__field-wrapper,
  .wpi-checkout-card .woocommerce-additional-fields__field-wrapper {
    grid-template-columns: 1fr !important;
    gap: .82rem !important;
  }

  .woocommerce-checkout .wpi-checkout-card #order_review,
  .wpi-checkout-card #order_review {
    border-radius: 1.15rem !important;
  }

  .woocommerce-checkout .wpi-checkout-card #order_review::before,
  .wpi-checkout-card #order_review::before {
    min-height: 0 !important;
    padding: 1.15rem 1rem .95rem !important;
    font-size: 1.75rem !important;
  }

  .wpi-checkout-card #order_review table.shop_table,
  .wpi-checkout-card #order_review table.shop_table thead,
  .wpi-checkout-card #order_review table.shop_table tbody,
  .wpi-checkout-card #order_review table.shop_table tfoot {
    display: block !important;
    width: 100% !important;
  }

  .wpi-checkout-card #order_review table.shop_table thead {
    display: none !important;
  }

  .wpi-checkout-card #order_review table.shop_table tr,
  .wpi-checkout-card #order_review table.shop_table tbody tr,
  .wpi-checkout-card #order_review table.shop_table tfoot tr {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: .55rem !important;
    align-items: start !important;
    width: 100% !important;
    padding: .88rem 1rem !important;
    border-bottom: 1px solid rgba(255,255,255,.1) !important;
  }

  .wpi-checkout-card #order_review table.shop_table th,
  .wpi-checkout-card #order_review table.shop_table td,
  .wpi-checkout-card #order_review table.shop_table .product-name,
  .wpi-checkout-card #order_review table.shop_table .product-total,
  .wpi-checkout-card #order_review table.shop_table tfoot th,
  .wpi-checkout-card #order_review table.shop_table tfoot td {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    text-align: left !important;
  }

  .wpi-checkout-card #order_review table.shop_table td.product-total,
  .wpi-checkout-card #order_review table.shop_table th.product-total,
  .wpi-checkout-card #order_review table.shop_table tfoot td {
    text-align: right !important;
    white-space: nowrap !important;
  }

  .wpi-checkout-card #order_review table.shop_table tr.cart-subtotal,
  .wpi-checkout-card #order_review table.shop_table tr.order-total,
  .wpi-checkout-card #order_review table.shop_table tfoot tr {
    grid-template-columns: minmax(0, 1fr) auto !important;
  }

  .wpi-checkout-card #order_review table.shop_table tr.shipping,
  .wpi-checkout-card #order_review table.shop_table tr.woocommerce-shipping-totals {
    grid-template-columns: 1fr !important;
  }

  .wpi-checkout-card #order_review table.shop_table tr.shipping td,
  .wpi-checkout-card #order_review table.shop_table tr.woocommerce-shipping-totals td {
    text-align: left !important;
    white-space: normal !important;
  }

  .wpi-checkout-card #payment,
  .wpi-checkout-card .woocommerce-checkout-payment {
    padding: 1rem !important;
  }

  .wpi-checkout-card form.checkout_coupon {
    grid-template-columns: 1fr !important;
  }

  .wpi-checkout-card input.input-text,
  .wpi-checkout-card textarea,
  .wpi-checkout-card select,
  .wpi-checkout-card .select2-container,
  .wpi-checkout-card .select2-container--default .select2-selection--single,
  .wpi-checkout-card #place_order,
  .wpi-checkout-card .button,
  .wpi-checkout-card button.button,
  .wpi-checkout-card a.button {
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (max-width: 420px) {
  .woocommerce-checkout .wpi-checkout-card,
  .wpi-checkout-card {
    width: min(100%, calc(100vw - .9rem)) !important;
    padding: .65rem !important;
  }

  .wpi-checkout-trust-row {
    width: min(100%, calc(100vw - .9rem)) !important;
  }

  .wpi-checkout-card #order_review table.shop_table tr,
  .wpi-checkout-card #order_review table.shop_table tbody tr,
  .wpi-checkout-card #order_review table.shop_table tfoot tr {
    padding-left: .85rem !important;
    padding-right: .85rem !important;
  }
}


/* v1.0.102 Checkout top spacing + coupon notice icon fix
   Scope: checkout page only. Keeps native WooCommerce checkout/payment logic untouched. */
.woocommerce-checkout .wpi-checkout-main-section,
.wpi-checkout-page .wpi-checkout-main-section,
.wpi-checkout-main-section {
  margin-top: 0 !important;
  padding-top: clamp(2.35rem, 4vw, 4.85rem) !important;
  padding-bottom: clamp(4.75rem, 6vw, 7rem) !important;
  background: #fafafa !important;
}

.woocommerce-checkout .wpi-checkout-trust-row,
.wpi-checkout-page .wpi-checkout-trust-row {
  margin-top: 0 !important;
  margin-bottom: clamp(1rem, 1.55vw, 1.55rem) !important;
}

/* Stop WooCommerce notice/coupon icon from overlapping the message text. */
.woocommerce-checkout .wpi-checkout-card .woocommerce-notices-wrapper,
.woocommerce-checkout .wpi-checkout-card .woocommerce-form-coupon-toggle,
.wpi-checkout-card .woocommerce-notices-wrapper,
.wpi-checkout-card .woocommerce-form-coupon-toggle {
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 1rem !important;
  padding: 0 !important;
  clear: both !important;
}

.woocommerce-checkout .wpi-checkout-card .woocommerce-message,
.woocommerce-checkout .wpi-checkout-card .woocommerce-info,
.woocommerce-checkout .wpi-checkout-card .woocommerce-error,
.woocommerce-checkout .wpi-checkout-card .woocommerce-form-coupon-toggle .woocommerce-info,
.wpi-checkout-card .woocommerce-message,
.wpi-checkout-card .woocommerce-info,
.wpi-checkout-card .woocommerce-error,
.wpi-checkout-card .woocommerce-form-coupon-toggle .woocommerce-info {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 3.45rem !important;
  margin: 0 0 1rem !important;
  padding: 1rem 1.25rem 1rem 3.65rem !important;
  border: 1px solid rgba(0,0,0,.075) !important;
  border-left: .35rem solid #d20404 !important;
  border-radius: 1rem !important;
  background: #f6f6f8 !important;
  color: #111 !important;
  font-family: var(--body, Inter, sans-serif) !important;
  font-size: .98rem !important;
  font-weight: 750 !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.woocommerce-checkout .wpi-checkout-card .woocommerce-message::before,
.woocommerce-checkout .wpi-checkout-card .woocommerce-info::before,
.woocommerce-checkout .wpi-checkout-card .woocommerce-error::before,
.woocommerce-checkout .wpi-checkout-card .woocommerce-form-coupon-toggle .woocommerce-info::before,
.wpi-checkout-card .woocommerce-message::before,
.wpi-checkout-card .woocommerce-info::before,
.wpi-checkout-card .woocommerce-error::before,
.wpi-checkout-card .woocommerce-form-coupon-toggle .woocommerce-info::before {
  position: absolute !important;
  top: 50% !important;
  left: 1.25rem !important;
  right: auto !important;
  transform: translateY(-50%) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1.35rem !important;
  height: 1.35rem !important;
  margin: 0 !important;
  color: #d20404 !important;
  font-size: 1rem !important;
  line-height: 1 !important;
  text-align: center !important;
  z-index: 1 !important;
}

.woocommerce-checkout .wpi-checkout-card .woocommerce-form-coupon-toggle .showcoupon,
.woocommerce-checkout .wpi-checkout-card .woocommerce-info a,
.wpi-checkout-card .woocommerce-form-coupon-toggle .showcoupon,
.wpi-checkout-card .woocommerce-info a {
  position: relative !important;
  z-index: 2 !important;
  color: #d20404 !important;
  font-weight: 950 !important;
  text-decoration: underline !important;
  text-underline-offset: .16em !important;
}

.woocommerce-checkout .wpi-checkout-card form.checkout_coupon,
.wpi-checkout-card form.checkout_coupon {
  margin: 0 0 1.25rem !important;
  padding: 1rem !important;
  border: 1px solid rgba(0,0,0,.075) !important;
  border-radius: 1rem !important;
  background: #f6f6f8 !important;
  overflow: hidden !important;
}

@media (max-width: 767px) {
  .woocommerce-checkout .wpi-checkout-main-section,
  .wpi-checkout-page .wpi-checkout-main-section,
  .wpi-checkout-main-section {
    margin-top: 0 !important;
    padding-top: 2rem !important;
    padding-bottom: 4.25rem !important;
  }

  .woocommerce-checkout .wpi-checkout-card .woocommerce-message,
  .woocommerce-checkout .wpi-checkout-card .woocommerce-info,
  .woocommerce-checkout .wpi-checkout-card .woocommerce-error,
  .woocommerce-checkout .wpi-checkout-card .woocommerce-form-coupon-toggle .woocommerce-info,
  .wpi-checkout-card .woocommerce-message,
  .wpi-checkout-card .woocommerce-info,
  .wpi-checkout-card .woocommerce-error,
  .wpi-checkout-card .woocommerce-form-coupon-toggle .woocommerce-info {
    min-height: 3.25rem !important;
    padding: .95rem .95rem .95rem 3.25rem !important;
    font-size: .92rem !important;
    line-height: 1.42 !important;
  }

  .woocommerce-checkout .wpi-checkout-card .woocommerce-message::before,
  .woocommerce-checkout .wpi-checkout-card .woocommerce-info::before,
  .woocommerce-checkout .wpi-checkout-card .woocommerce-error::before,
  .woocommerce-checkout .wpi-checkout-card .woocommerce-form-coupon-toggle .woocommerce-info::before,
  .wpi-checkout-card .woocommerce-message::before,
  .wpi-checkout-card .woocommerce-info::before,
  .wpi-checkout-card .woocommerce-error::before,
  .wpi-checkout-card .woocommerce-form-coupon-toggle .woocommerce-info::before {
    left: 1rem !important;
    width: 1.15rem !important;
    height: 1.15rem !important;
    font-size: .92rem !important;
  }
}


/* v1.0.105 Full user journey + SEO navigation/footer polish */
.wpi-global-header .main-nav {
  overflow: visible !important;
}
.wpi-global-header .main-nav .wpi-nav-dropdown {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .2rem;
  min-height: 2.5rem;
}
.wpi-global-header .wpi-nav-dropdown-label,
.wpi-global-header .wpi-nav-dropdown-caret {
  color: #fff;
  text-transform: uppercase;
  font: inherit;
  letter-spacing: inherit;
  text-decoration: none;
}
.wpi-global-header .wpi-nav-dropdown-label {
  display: inline-flex;
  align-items: center;
}
.wpi-global-header .wpi-nav-dropdown-caret {
  appearance: none;
  border: 0;
  background: transparent;
  padding: .15rem .05rem .15rem .15rem;
  cursor: pointer;
  line-height: 1;
  opacity: .78;
}
.wpi-global-header .wpi-nav-dropdown-menu {
  position: absolute;
  left: 50%;
  top: calc(100% + .85rem);
  z-index: 100010;
  width: min(24rem, calc(100vw - 2rem));
  transform: translateX(-50%) translateY(.4rem);
  display: grid;
  gap: .25rem;
  padding: .9rem;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 1.2rem;
  background: rgba(0,0,0,.97);
  box-shadow: 0 1.5rem 3rem rgba(0,0,0,.45);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .18s ease, visibility .18s ease, transform .18s ease;
}
.wpi-global-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
.wpi-global-header .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.wpi-global-header .wpi-nav-dropdown-menu a {
  width: 100%;
  justify-content: flex-start;
  padding: .75rem .9rem;
  border-radius: .75rem;
  border-bottom: 0 !important;
  color: #fff;
  font-size: .82rem;
  line-height: 1.15;
  letter-spacing: .055em;
  white-space: normal;
}
.wpi-global-header .wpi-nav-dropdown-menu a:hover,
.wpi-global-header .wpi-nav-dropdown-menu a:focus {
  background: rgba(210,4,4,.18);
  opacity: 1;
}
.wpi-global-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta {
  margin-top: .35rem;
  justify-content: center;
  background: #d20404;
  color: #fff;
  border-radius: 999px;
  font-weight: 800;
}
.wpi-global-header .wpi-header-actions .header-contact {
  white-space: nowrap;
}
.wpi-journey-footer.wpi-sp-footer {
  padding: 6.25rem 0 2.4rem !important;
  min-height: auto !important;
  background: #000 !important;
  color: #fff !important;
  overflow: hidden !important;
}
.wpi-journey-footer::after {
  opacity: .55 !important;
}
.wpi-journey-footer-inner {
  position: relative;
  z-index: 2;
}
.wpi-journey-footer-grid {
  display: grid;
  grid-template-columns: minmax(18rem, 1.35fr) repeat(3, minmax(11rem, .75fr));
  gap: 3.2rem;
  align-items: start;
  padding-bottom: 3.2rem;
  border-bottom: 1px solid rgba(255,255,255,.16);
}
.wpi-journey-footer-logo {
  display: block;
  width: min(16rem, 100%);
  height: auto;
  max-height: 6rem;
  object-fit: contain;
  object-position: left center;
  margin: 0 0 1.5rem;
}
.wpi-journey-footer-brand h2 {
  margin: 0 0 1.2rem;
  font-family: var(--font-heading, 'Clash Display', sans-serif);
  font-size: 2.3rem;
  line-height: 1;
  text-transform: uppercase;
}
.wpi-journey-footer-brand p {
  width: min(100%, 32rem);
  margin: 0 0 1.65rem;
  font-family: var(--font-body, 'Red Hat Display', sans-serif);
  font-size: 1.08rem;
  line-height: 1.58;
  color: rgba(255,255,255,.78);
}
.wpi-journey-footer-contact {
  display: grid;
  gap: .65rem;
  margin-bottom: 1.6rem;
}
.wpi-journey-footer-contact a,
.wpi-journey-footer-col a,
.wpi-journey-footer-bottom a {
  color: rgba(255,255,255,.82);
  text-decoration: none;
}
.wpi-journey-footer-contact a:hover,
.wpi-journey-footer-col a:hover,
.wpi-journey-footer-bottom a:hover {
  color: #fff;
}
.wpi-journey-footer-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.35rem;
  padding: .95rem 1.45rem;
  border-radius: 999px;
  background: #d20404;
  color: #fff !important;
  text-decoration: none;
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: .06em;
  font-size: .88rem;
}
.wpi-journey-footer-col h3 {
  margin: 0 0 1.25rem;
  color: #fff;
  font-family: var(--font-heading, 'Clash Display', sans-serif);
  font-size: 1.05rem;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.wpi-journey-footer-col {
  display: grid;
  align-content: start;
  gap: .82rem;
}
.wpi-journey-footer-col a {
  font-family: var(--font-body, 'Red Hat Display', sans-serif);
  font-size: .98rem;
  line-height: 1.25;
}
.wpi-journey-footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  padding-top: 1.7rem;
  color: rgba(255,255,255,.68);
}
.wpi-journey-footer-bottom p {
  margin: 0;
  font-size: .92rem;
}
.wpi-journey-footer-bottom div {
  display: flex;
  gap: 1.2rem;
  flex-wrap: wrap;
}
.wpi-journey-footer-tagline {
  margin: 1.1rem 0 0;
  color: rgba(255,255,255,.55);
  font-family: var(--font-body, 'Red Hat Display', sans-serif);
  font-size: .95rem;
}
@media (max-width: 1180px) {
  .wpi-global-header .main-nav .wpi-nav-dropdown {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    gap: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
  }
  .wpi-global-header .wpi-nav-dropdown-label {
    width: 100% !important;
    padding: .95rem 1rem !important;
    border-bottom: 0 !important;
    justify-content: flex-start !important;
  }
  .wpi-global-header .wpi-nav-dropdown-caret {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 3rem !important;
    color: #fff !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu {
    grid-column: 1 / -1 !important;
    position: static !important;
    transform: none !important;
    width: 100% !important;
    max-width: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    padding: .25rem 0 .85rem 1rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu a {
    padding: .62rem .85rem !important;
    font-size: .86rem !important;
    color: rgba(255,255,255,.82) !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta {
    margin: .45rem .85rem 0 0 !important;
    color: #fff !important;
  }
}
@media (max-width: 980px) {
  .wpi-journey-footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem 2rem;
  }
  .wpi-journey-footer-brand {
    grid-column: 1 / -1;
  }
}
@media (max-width: 640px) {
  .wpi-journey-footer.wpi-sp-footer {
    padding: 4.5rem 0 2rem !important;
  }
  .wpi-journey-footer-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .wpi-journey-footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }
  .wpi-journey-footer-logo {
    width: 12rem;
  }
}

/* v1.0.106 Standard policy/support pages */
.wpi-standard-header.site-header,
.site-header.wpi-standard-header.container-wide {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 1.15rem max(2rem, calc((100vw - 106.25rem) / 2)) 1.05rem !important;
  min-height: 7.35rem !important;
  background: #000 !important;
  color: #fff !important;
  border-bottom: 1px solid rgba(255,255,255,.1) !important;
}
.wpi-standard-header .main-nav a,
.wpi-standard-header .wpi-nav-dropdown-label,
.wpi-standard-header .header-contact,
.wpi-standard-header .wpi-header-cart-link { color: #fff !important; }
.wpi-standard-header .mobile-menu-toggle span,
.wpi-standard-header .mobile-menu-toggle span::before,
.wpi-standard-header .mobile-menu-toggle span::after { background: #fff !important; }
.wpi-standard-page {
  background: #f7f6f2;
  color: #111;
  overflow: hidden;
}
.wpi-standard-hero {
  position: relative;
  padding: clamp(5rem, 8vw, 8rem) 0 clamp(4rem, 6vw, 6rem);
  background:
    radial-gradient(circle at 12% 22%, rgba(210,4,4,.28) 0 8rem, transparent 18rem),
    radial-gradient(circle at 88% 72%, rgba(210,4,4,.24) 0 8rem, transparent 19rem),
    linear-gradient(180deg, #050505 0%, #151515 58%, #0b0b0b 100%);
  color: #fff;
  text-align: center;
}
.wpi-standard-hero .eyebrow { margin-bottom: 1.6rem; }
.wpi-standard-hero h1 {
  margin: 0 auto;
  max-width: 58rem;
  font-family: var(--display);
  font-size: clamp(3rem, 5.3vw, 5.45rem);
  line-height: .96;
  letter-spacing: -.025em;
  text-transform: uppercase;
}
.wpi-standard-hero p {
  margin: 1.3rem auto 0;
  max-width: 40rem;
  color: rgba(255,255,255,.78);
  font-size: 1.15rem;
  line-height: 1.55;
}
.wpi-standard-content-wrap { padding: clamp(4rem, 7vw, 7rem) 0; }
.wpi-standard-content {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 1.75rem;
  padding: clamp(2rem, 4vw, 4rem);
  box-shadow: 0 1.7rem 4.5rem rgba(0,0,0,.08);
}
.wpi-standard-content h2,
.wpi-standard-content h3 {
  font-family: var(--display);
  color: #101010;
  letter-spacing: -.015em;
  text-transform: uppercase;
}
.wpi-standard-content h2 {
  margin: 0 0 1.7rem;
  font-size: clamp(2.1rem, 3vw, 3.1rem);
  line-height: 1;
}
.wpi-standard-content h3 {
  margin: 2.25rem 0 .75rem;
  font-size: clamp(1.3rem, 2vw, 1.75rem);
  line-height: 1.05;
}
.wpi-standard-content p,
.wpi-standard-content li {
  color: rgba(17,17,17,.78);
  font-size: 1.08rem;
  line-height: 1.72;
}
.wpi-standard-content p { margin: 0 0 1rem; }
.wpi-standard-content a {
  color: #d20404;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: .18em;
}
.wpi-standard-content ul,
.wpi-standard-content ol { padding-left: 1.35rem; }
@media (max-width: 767px) {
  .wpi-standard-header.site-header,
  .site-header.wpi-standard-header.container-wide {
    padding: 1rem 1.15rem !important;
    min-height: 6.7rem !important;
  }
  .wpi-standard-hero { padding: 4.2rem 0 3.6rem; }
  .wpi-standard-content-wrap { padding: 2.5rem 0 4rem; }
  .wpi-standard-content { border-radius: 1.2rem; padding: 1.45rem; }
  .wpi-standard-content p,
  .wpi-standard-content li { font-size: 1rem; line-height: 1.65; }
}

/* ========================================================================== 
   v1.0.108 About route repair + FAQ/submenu/footer polish
   ========================================================================== */

/* Cleaner desktop Services submenu: compact two-column panel instead of one tall list. */
@media (min-width: 1181px) {
  .wpi-global-header .main-nav .wpi-nav-dropdown {
    isolation: isolate !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu {
    width: min(34rem, calc(100vw - 2rem)) !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .45rem !important;
    padding: .85rem !important;
    border-radius: 1.05rem !important;
    background: linear-gradient(180deg, rgba(11,11,12,.985), rgba(0,0,0,.965)) !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    box-shadow: 0 1.4rem 3.2rem rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.06) !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu::before {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    top: -.42rem !important;
    width: .82rem !important;
    height: .82rem !important;
    transform: translateX(-50%) rotate(45deg) !important;
    background: rgba(11,11,12,.985) !important;
    border-left: 1px solid rgba(255,255,255,.14) !important;
    border-top: 1px solid rgba(255,255,255,.14) !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu a {
    min-height: 2.85rem !important;
    padding: .72rem .78rem !important;
    border-radius: .72rem !important;
    font-size: .78rem !important;
    line-height: 1.18 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
    background: rgba(255,255,255,.035) !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu a:hover,
  .wpi-global-header .wpi-nav-dropdown-menu a:focus {
    background: rgba(210,4,4,.24) !important;
    transform: translateY(-1px) !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta {
    grid-column: 1 / -1 !important;
    min-height: 2.95rem !important;
    margin-top: .25rem !important;
    background: #d20404 !important;
    box-shadow: 0 .7rem 1.4rem rgba(210,4,4,.22) !important;
  }
  .wpi-global-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-caret,
  .wpi-global-header .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-caret {
    transform: rotate(180deg) !important;
    opacity: 1 !important;
  }
}

/* Mobile submenu stays readable and avoids looking like a separate broken dropdown. */
@media (max-width: 1180px) {
  .wpi-global-header .main-nav .wpi-nav-dropdown {
    background: rgba(255,255,255,.035) !important;
    border-radius: .9rem !important;
    overflow: hidden !important;
    margin: .15rem 0 !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .18rem !important;
    padding: .25rem .65rem .8rem !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu a {
    border-radius: .65rem !important;
    background: rgba(255,255,255,.035) !important;
  }
}

/* FAQ answers must fully expand on every designed page, even when answers are longer. */
.wpi-global-faq,
.wpi-global-faq-panel,
.faq-section,
.faq-panel,
.faq-list,
.faq-item.is-open {
  overflow: visible !important;
}
.faq-item.is-open p,
.wpi-global-faq .faq-item.is-open p,
.wpi-sp-faq-list .faq-item.is-open p {
  display: block !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
}
.wpi-global-faq .faq-item button span,
.wpi-sp-faq-list .faq-item button span {
  flex: 0 0 .9rem !important;
}

/* Footer keeps the useful link-column structure, but restores a cleaner previous-feel spacing/gradient. */
.wpi-journey-footer.wpi-sp-footer {
  padding: 4.85rem 0 1.75rem !important;
  background:
    radial-gradient(55rem 13rem at 50% 100%, rgba(143,14,14,.72), rgba(143,14,14,.22) 38%, rgba(0,0,0,0) 74%),
    #000 !important;
}
.wpi-journey-footer::after {
  bottom: -10.5rem !important;
  height: 18rem !important;
  opacity: .42 !important;
  filter: blur(4px) !important;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(143,14,14,.82) 72%, rgba(210,4,4,.42) 100%) !important;
}
.wpi-journey-footer-grid {
  grid-template-columns: minmax(18rem, 1.16fr) minmax(8rem, .55fr) minmax(13rem, .76fr) minmax(13rem, .76fr) !important;
  gap: clamp(1.6rem, 3vw, 3rem) !important;
  padding-bottom: 2.45rem !important;
}
.wpi-journey-footer-logo {
  width: min(14rem, 100%) !important;
  max-height: 5.4rem !important;
  margin-bottom: 1.25rem !important;
}
.wpi-journey-footer-brand p {
  margin-bottom: 1.35rem !important;
  font-size: 1.02rem !important;
  line-height: 1.55 !important;
}
.wpi-journey-footer-col {
  gap: .62rem !important;
}
.wpi-journey-footer-col h3 {
  margin-bottom: .95rem !important;
}
.wpi-journey-footer-col a {
  font-size: .93rem !important;
  line-height: 1.22 !important;
}
.wpi-journey-footer-bottom {
  padding-top: 1.25rem !important;
}
.wpi-journey-footer-tagline {
  margin-top: .72rem !important;
}
@media (max-width: 980px) {
  .wpi-journey-footer-grid {
    grid-template-columns: 1fr 1fr !important;
  }
  .wpi-journey-footer-brand {
    grid-column: 1 / -1 !important;
  }
}
@media (max-width: 640px) {
  .wpi-journey-footer.wpi-sp-footer {
    padding: 4rem 0 1.75rem !important;
  }
  .wpi-journey-footer-grid {
    grid-template-columns: 1fr !important;
    gap: 1.75rem !important;
    padding-bottom: 2rem !important;
  }
  .wpi-journey-footer-bottom {
    gap: .85rem !important;
  }
}

/* ========================================================================== 
   v1.0.113 Services submenu usability polish
   Makes the submenu easier to hover, click, read, and tap without changing routes.
   ========================================================================== */
@media (min-width: 1181px) {
  .wpi-global-header .main-nav .wpi-nav-dropdown {
    min-height: 3.25rem !important;
    padding: .25rem .35rem !important;
    margin: -.25rem -.35rem !important;
    gap: .35rem !important;
  }
  .wpi-global-header .main-nav .wpi-nav-dropdown::after {
    content: "" !important;
    position: absolute !important;
    left: -1.2rem !important;
    right: -1.2rem !important;
    top: 100% !important;
    height: 1.15rem !important;
    pointer-events: auto !important;
  }
  .wpi-global-header .wpi-nav-dropdown-label {
    min-height: 2.6rem !important;
    padding: .6rem .15rem !important;
  }
  .wpi-global-header .wpi-nav-dropdown-caret {
    width: 2.35rem !important;
    height: 2.35rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.08) !important;
    color: #fff !important;
    font-size: .9rem !important;
    opacity: 1 !important;
    transition: transform .18s ease, background .18s ease, border-color .18s ease !important;
  }
  .wpi-global-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-caret,
  .wpi-global-header .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-caret,
  .wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-caret {
    background: rgba(210,4,4,.22) !important;
    border-color: rgba(255,255,255,.38) !important;
    transform: rotate(180deg) !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu {
    top: calc(100% + .28rem) !important;
    width: min(40rem, calc(100vw - 3rem)) !important;
    grid-template-columns: repeat(2, minmax(14rem, 1fr)) !important;
    gap: .65rem !important;
    padding: 1rem !important;
    border-radius: 1.25rem !important;
    background: linear-gradient(180deg, rgba(13,13,15,.99), rgba(0,0,0,.98)) !important;
    box-shadow: 0 1.55rem 3.5rem rgba(0,0,0,.54), inset 0 1px 0 rgba(255,255,255,.07) !important;
    transform: translateX(-50%) translateY(.15rem) !important;
    transition: opacity .16s ease, visibility .16s ease, transform .16s ease !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu::before {
    top: -.34rem !important;
  }
  .wpi-global-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
  .wpi-global-header .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu,
  .wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-menu {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu a {
    min-height: 3.25rem !important;
    display: flex !important;
    align-items: center !important;
    padding: .85rem .95rem !important;
    border-radius: .85rem !important;
    font-size: .86rem !important;
    line-height: 1.24 !important;
    letter-spacing: .045em !important;
    background: rgba(255,255,255,.055) !important;
    outline-offset: 3px !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu a:hover,
  .wpi-global-header .wpi-nav-dropdown-menu a:focus-visible {
    background: rgba(210,4,4,.28) !important;
    transform: none !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta {
    grid-column: 1 / -1 !important;
    min-height: 3.2rem !important;
    margin-top: .25rem !important;
    font-size: .88rem !important;
    background: #d20404 !important;
  }
}

@media (max-width: 1180px) {
  .wpi-global-header .main-nav .wpi-nav-dropdown {
    border: 1px solid rgba(255,255,255,.12) !important;
    background: rgba(255,255,255,.045) !important;
    border-radius: 1rem !important;
  }
  .wpi-global-header .wpi-nav-dropdown-label {
    min-height: 3.15rem !important;
    padding: 1rem 1rem !important;
  }
  .wpi-global-header .wpi-nav-dropdown-caret {
    width: 3.5rem !important;
    min-height: 3.15rem !important;
    border-left: 1px solid rgba(255,255,255,.12) !important;
    background: rgba(255,255,255,.05) !important;
    font-size: 1rem !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu {
    padding: .3rem .7rem .85rem !important;
    gap: .28rem !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu a {
    min-height: 2.9rem !important;
    padding: .78rem .9rem !important;
    border-radius: .78rem !important;
    background: rgba(0,0,0,.18) !important;
    color: rgba(255,255,255,.9) !important;
    font-size: .9rem !important;
    line-height: 1.2 !important;
  }
  .wpi-global-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta {
    min-height: 3.05rem !important;
    margin-top: .45rem !important;
  }
}



/* ==========================================================================
   v1.0.115 Services submenu desktop/mobile usability fix
   - Desktop: larger stable mega-menu, click-open stays open until outside click.
   - Mobile/tablet: service links stay hidden until the arrow icon is tapped.
   ========================================================================== */
@media (min-width: 1181px) {
  .wpi-global-header .main-nav .wpi-nav-dropdown {
    min-height: 3.55rem !important;
    padding: .32rem .55rem !important;
    margin: -.32rem -.55rem !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown::after {
    left: -2rem !important;
    right: -2rem !important;
    top: 100% !important;
    height: 2.2rem !important;
  }

  .wpi-global-header .wpi-nav-dropdown-label {
    min-height: 2.85rem !important;
    padding: .75rem .25rem !important;
  }

  .wpi-global-header .wpi-nav-dropdown-caret {
    width: 2.65rem !important;
    height: 2.65rem !important;
    min-width: 2.65rem !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu {
    top: calc(100% + .15rem) !important;
    width: min(50rem, calc(100vw - 3rem)) !important;
    grid-template-columns: repeat(3, minmax(12rem, 1fr)) !important;
    gap: .75rem !important;
    padding: 1.15rem !important;
    border-radius: 1.45rem !important;
    transform: translateX(-50%) translateY(.35rem) !important;
  }

  .wpi-global-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
  .wpi-global-header .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu,
  .wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-menu {
    transform: translateX(-50%) translateY(0) !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu a {
    min-height: 3.55rem !important;
    padding: .95rem 1rem !important;
    font-size: .88rem !important;
    line-height: 1.24 !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta {
    grid-column: 1 / -1 !important;
    min-height: 3.45rem !important;
  }
}

@media (max-width: 1180px) {
  .wpi-global-header .main-nav .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr 3.8rem !important;
    align-items: stretch !important;
    gap: 0 !important;
    overflow: hidden !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 1rem !important;
    background: rgba(255,255,255,.045) !important;
  }

  .wpi-global-header .wpi-nav-dropdown-label,
  .site-header.wpi-global-header .wpi-nav-dropdown-label {
    grid-column: 1 !important;
    min-height: 3.35rem !important;
    padding: 1rem 1rem !important;
    border-bottom: 0 !important;
    justify-content: flex-start !important;
    text-align: left !important;
  }

  .wpi-global-header .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .wpi-nav-dropdown-caret {
    grid-column: 2 !important;
    width: 3.8rem !important;
    min-width: 3.8rem !important;
    min-height: 3.35rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-left: 1px solid rgba(255,255,255,.16) !important;
    background: rgba(255,255,255,.08) !important;
    color: #fff !important;
    opacity: 1 !important;
    touch-action: manipulation !important;
    transition: transform .18s ease, background .18s ease !important;
  }

  .wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-caret {
    background: rgba(210,4,4,.25) !important;
    transform: rotate(180deg) !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu {
    grid-column: 1 / -1 !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .35rem !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 .65rem !important;
    overflow: hidden !important;
    border: 0 !important;
    border-top: 0 solid rgba(255,255,255,.14) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: none !important;
    transition: max-height .24s ease, padding .24s ease, opacity .18s ease, visibility .18s ease !important;
  }

  .wpi-global-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
  .wpi-global-header .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu {
    max-height: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-menu {
    max-height: 42rem !important;
    padding: .55rem .65rem .75rem !important;
    border-top-width: 1px !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu::before,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu::before {
    display: none !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu a,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu a {
    width: 100% !important;
    min-height: 2.95rem !important;
    padding: .82rem .95rem !important;
    border: 0 !important;
    border-radius: .75rem !important;
    background: rgba(0,0,0,.25) !important;
    justify-content: flex-start !important;
    text-align: left !important;
    color: rgba(255,255,255,.92) !important;
    font-size: .92rem !important;
    line-height: 1.2 !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta {
    margin-top: .35rem !important;
    justify-content: center !important;
    text-align: center !important;
    background: #d20404 !important;
  }
}


/* ========================================================================== 
   v1.0.118 Strict design QA pass
   Visual-only hardening: header fit, mobile menu positioning, card rhythm,
   FAQ readability, service layout consistency, and footer balance.
   ========================================================================== */
.site-header,
.site-header.wpi-global-header,
.wpi-global-header.site-header,
.wpi-standard-header.site-header {
  position: relative !important;
  z-index: 100020 !important;
}

.wpi-global-header.site-header,
.site-header.wpi-global-header,
.wpi-sp-header.site-header {
  grid-template-columns: minmax(10.5rem, 14.25rem) minmax(0, 1fr) auto !important;
  gap: clamp(.9rem, 1.6vw, 2rem) !important;
}

.wpi-global-header .main-nav,
.site-header.wpi-global-header .main-nav,
.wpi-sp-header .main-nav {
  min-width: 0 !important;
  max-width: 100% !important;
  gap: clamp(.8rem, 1.25vw, 1.55rem) !important;
  font-size: clamp(.82rem, .76vw, 1rem) !important;
  letter-spacing: .052em !important;
}

.wpi-global-header .wpi-header-actions,
.site-header.wpi-global-header .wpi-header-actions {
  flex: 0 0 auto !important;
  max-width: 100% !important;
}

.wpi-global-header .wpi-header-actions .header-contact,
.site-header.wpi-global-header .wpi-header-actions .header-contact {
  min-height: 3.15rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: .88rem 1.15rem !important;
  border: 1px solid rgba(255,255,255,.72) !important;
  border-radius: 999px !important;
  background: rgba(0,0,0,.24) !important;
  font-size: clamp(.76rem, .7vw, .9rem) !important;
  line-height: 1 !important;
}

@media (min-width: 1181px) and (max-width: 1460px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header,
  .wpi-sp-header.site-header {
    grid-template-columns: minmax(9rem, 12.25rem) minmax(0, 1fr) auto !important;
    gap: .85rem !important;
  }

  .wpi-global-header .site-logo img,
  .site-header.wpi-global-header .site-logo img,
  .wpi-sp-header .site-logo img {
    width: clamp(10rem, 10vw, 12.25rem) !important;
    height: auto !important;
    max-height: 4.65rem !important;
  }

  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-sp-header .main-nav {
    gap: clamp(.55rem, .85vw, 1rem) !important;
    font-size: clamp(.72rem, .68vw, .86rem) !important;
    letter-spacing: .045em !important;
  }

  .wpi-global-header .wpi-header-actions,
  .site-header.wpi-global-header .wpi-header-actions {
    gap: .45rem !important;
  }

  .wpi-global-header .wpi-header-actions .header-contact,
  .site-header.wpi-global-header .wpi-header-actions .header-contact {
    padding-inline: .9rem !important;
    font-size: .72rem !important;
    letter-spacing: .045em !important;
  }

  .wpi-header-cart {
    width: 3rem !important;
    height: 3rem !important;
    min-width: 3rem !important;
  }
}

@media (max-width: 1180px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header,
  .wpi-sp-header.site-header,
  .wpi-standard-header.site-header {
    grid-template-columns: minmax(8.6rem, auto) auto !important;
    align-items: center !important;
  }

  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-sp-header .main-nav,
  .wpi-standard-header .main-nav {
    top: calc(100% + .45rem) !important;
    width: min(100%, calc(100vw - 2rem)) !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    max-height: min(78vh, 42rem) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .wpi-global-header .site-logo,
  .site-header.wpi-global-header .site-logo,
  .wpi-sp-header .site-logo,
  .wpi-standard-header .site-logo {
    min-width: 0 !important;
  }

  .wpi-global-header .site-logo img,
  .site-header.wpi-global-header .site-logo img,
  .wpi-sp-header .site-logo img,
  .wpi-standard-header .site-logo img {
    width: clamp(9rem, 24vw, 12rem) !important;
    height: auto !important;
    max-height: 4.35rem !important;
  }
}

@media (min-width: 1181px) {
  .wpi-global-header .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu {
    max-height: min(70vh, 34rem) !important;
    overflow-y: auto !important;
    scrollbar-width: thin !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu a,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu a {
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
  }
}

/* Keep visual sections from becoming cramped or overflowing on real copy. */
.wpi-sp-service-card,
.wpi-sp-why-cards article,
.wpi-isvc-best-card,
.wpi-isvc-why-card,
.wpi-gallery-card,
.wpi-quote-cost-card,
.wpi-event-info-card,
.product-card,
.review-card {
  min-width: 0 !important;
}

.wpi-sp-service-body,
.wpi-isvc-best-card,
.wpi-isvc-why-card,
.wpi-gallery-card,
.wpi-quote-cost-card,
.wpi-event-info-card,
.product-info {
  overflow-wrap: anywhere !important;
}

.wpi-sp-service-body p,
.wpi-isvc-best-card p,
.wpi-isvc-why-card p,
.wpi-gallery-card p,
.wpi-quote-cost-card p,
.wpi-event-info-card p,
.product-info p {
  max-width: 100% !important;
}

.wpi-sp-service-grid,
.wpi-sp-why-cards,
.wpi-isvc-best-grid,
.wpi-isvc-why-grid,
.wpi-gallery-grid,
.wpi-quote-cost-grid,
.wpi-event-info-grid,
.products-grid {
  align-items: stretch !important;
}

.wpi-sp-service-card,
.wpi-isvc-best-card,
.wpi-isvc-why-card,
.wpi-gallery-card,
.wpi-quote-cost-card,
.wpi-event-info-card,
.product-card {
  height: 100% !important;
}

/* FAQ visual QA: long page-specific questions stay readable. */
.faq-item button,
.wpi-global-faq .faq-item button,
.wpi-sp-faq-list .faq-item button {
  align-items: flex-start !important;
  gap: 1rem !important;
  line-height: 1.34 !important;
}

.faq-item button span,
.wpi-global-faq .faq-item button span,
.wpi-sp-faq-list .faq-item button span {
  margin-top: .22rem !important;
}

.faq-item p,
.wpi-global-faq .faq-item p,
.wpi-sp-faq-list .faq-item p {
  overflow-wrap: anywhere !important;
}

/* Footer visual QA: maintain columns but avoid crowding on mid-sized desktop. */
@media (min-width: 981px) and (max-width: 1320px) {
  .wpi-journey-footer-grid {
    grid-template-columns: minmax(16rem, 1fr) repeat(3, minmax(9rem, .72fr)) !important;
    gap: clamp(1.2rem, 2vw, 2.15rem) !important;
  }

  .wpi-journey-footer-brand p {
    max-width: 28rem !important;
  }

  .wpi-journey-footer-col a {
    font-size: .88rem !important;
  }
}

@media (max-width: 767px) {
  .btn,
  .wpi-global-header .mobile-nav-contact,
  .wpi-sp-hero-actions .btn,
  .wpi-quote-hero-actions .btn,
  .wpi-shop-cta .btn,
  .wpi-journey-footer-cta {
    white-space: normal !important;
    text-align: center !important;
  }

  .section-heading,
  .wpi-sp-why .section-heading,
  .wpi-isvc-section-heading,
  .wpi-gallery-section-heading,
  .wpi-quote-section-heading {
    max-width: 100% !important;
  }

  .faq-panel,
  .wpi-global-faq-panel,
  .wpi-sp-faq-panel,
  .wpi-services-page .wpi-sp-faq-panel.faq-panel {
    overflow: hidden !important;
  }

  .wpi-journey-footer-bottom div {
    width: 100% !important;
    gap: .85rem !important;
  }
}

/* ========================================================================== 
   v1.0.118 Builder/editability QA
   Logo fallback, smaller dropdown caret, editable hero backgrounds on pages.
   ========================================================================== */
.site-logo.wpi-brand-logo,
.wpi-footer-brand-logo {
  display: inline-flex !important;
  align-items: center !important;
  min-width: 0 !important;
}

.site-logo .wpi-logo-fallback,
.wpi-footer-logo-fallback {
  color: #fff !important;
  font-family: var(--font-heading, 'Unbounded', sans-serif) !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: .045em !important;
  line-height: .95 !important;
  white-space: nowrap !important;
}

.site-logo .wpi-logo-fallback {
  font-size: clamp(1.05rem, 1.45vw, 1.55rem) !important;
}

.wpi-footer-logo-fallback {
  margin: 0 0 1rem !important;
  font-size: clamp(1.6rem, 2.4vw, 2.65rem) !important;
}

.wpi-journey-footer-logo {
  display: block !important;
  max-width: min(15.5rem, 100%) !important;
  height: auto !important;
  object-fit: contain !important;
}

/* Dropdown icon was visually too large; keep the tap area useful, shrink only the icon/glyph. */
.wpi-global-header .wpi-nav-dropdown-caret,
.site-header.wpi-global-header .wpi-nav-dropdown-caret {
  font-size: .72rem !important;
  line-height: 1 !important;
  font-weight: 900 !important;
}

@media (min-width: 1181px) {
  .wpi-global-header .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .wpi-nav-dropdown-caret {
    width: 1.85rem !important;
    height: 1.85rem !important;
    min-width: 1.85rem !important;
    min-height: 1.85rem !important;
    padding: 0 !important;
    transform-origin: center !important;
  }

  .wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-caret,
  .wpi-global-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-caret {
    transform: none !important;
  }
}

@media (max-width: 1180px) {
  .wpi-global-header .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .wpi-nav-dropdown-caret {
    font-size: .78rem !important;
  }
}

/* Editable hero backgrounds shared by Gallery, Quote, Events, Shop, Service detail, and standard/policy pages. */
.wpi-editable-hero {
  position: relative !important;
  isolation: isolate !important;
  background-color: #000 !important;
  background-image: var(--wpi-page-hero-bg, none) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

.wpi-editable-hero::before {
  z-index: 1 !important;
}

.wpi-editable-hero > *:not(.wpi-hero-bg-video) {
  position: relative !important;
  z-index: 2 !important;
}

.wpi-hero-bg-video {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  pointer-events: none !important;
}

.wpi-editable-hero .wpi-hero-bg-video + * {
  position: relative !important;
}

.wpi-gallery-hero.wpi-editable-hero,
.wpi-quote-hero.wpi-editable-hero,
.wpi-event-hero.wpi-editable-hero,
.wpi-shop-hero.wpi-editable-hero,
.wpi-isvc-hero.wpi-editable-hero,
.wpi-standard-hero.wpi-editable-hero {
  background-blend-mode: normal !important;
}

.wpi-gallery-hero.wpi-editable-hero::before,
.wpi-quote-hero.wpi-editable-hero::before,
.wpi-shop-hero.wpi-editable-hero::before,
.wpi-standard-hero.wpi-editable-hero::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  background:
    linear-gradient(180deg, rgba(10,10,10,.72) 0%, rgba(0,0,0,.24) 45%, #000 100%),
    radial-gradient(ellipse at center top, rgba(210,4,4,.18), rgba(0,0,0,0) 56%) !important;
}

.wpi-event-hero.wpi-editable-hero::before,
.wpi-isvc-hero.wpi-editable-hero::before {
  background:
    linear-gradient(180deg, rgba(10,10,10,.76) 0%, rgba(0,0,0,.3) 48%, #000 100%),
    radial-gradient(ellipse at center top, rgba(210,4,4,.18), rgba(0,0,0,0) 56%) !important;
}

.wpi-standard-hero.wpi-editable-hero {
  min-height: 22rem !important;
  display: flex !important;
  align-items: center !important;
  color: #fff !important;
}

.wpi-standard-hero.wpi-editable-hero .container-narrow {
  position: relative !important;
  z-index: 2 !important;
}

.wpi-standard-hero.wpi-editable-hero h1,
.wpi-standard-hero.wpi-editable-hero p {
  color: #fff !important;
}

@media (max-width: 767px) {
  .site-logo .wpi-logo-fallback { font-size: 1rem !important; }
  .wpi-journey-footer-logo { max-width: 11rem !important; }
}


/* ========================================================================== 
   v1.0.119 QA fixes
   Footer copy editor support and safer text fallback/logo behavior.
   ========================================================================== */
.wpi-journey-footer-copy p {
  margin: 0 0 .9rem !important;
}
.wpi-journey-footer-copy p:last-child {
  margin-bottom: 0 !important;
}

.wpi-shop-filter-note {
  margin: .55rem 0 0 !important;
  color: rgba(255,255,255,.72) !important;
  font-size: .86rem !important;
  line-height: 1.45 !important;
}
.wpi-shop-empty-state {
  grid-column: 1 / -1 !important;
  min-height: 22rem !important;
  padding: clamp(2rem, 5vw, 4rem) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  border-radius: 2rem !important;
  background: rgba(255,255,255,.06) !important;
  color: #fff !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 1rem !important;
}
.wpi-shop-empty-state h3 {
  margin: 0 !important;
  font-family: var(--display) !important;
  font-size: clamp(2rem, 4vw, 4rem) !important;
  line-height: .98 !important;
}
.wpi-shop-empty-state p {
  max-width: 46rem !important;
  margin: 0 !important;
  color: rgba(255,255,255,.78) !important;
  line-height: 1.65 !important;
}


/* ========================================================================== 
   v1.0.121 Menu size restore + single service header safe-area fix
   - Restores the larger desktop Services menu feel while keeping the icon tidy.
   - Stops the header/dropdown and hero content from being clipped on individual service pages.
   ========================================================================== */
@media (min-width: 1181px) {
  .wpi-global-header .main-nav .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown {
    min-height: 3.9rem !important;
    padding: .42rem .7rem !important;
    margin: -.42rem -.7rem !important;
    gap: .5rem !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown::after,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown::after {
    left: -2.75rem !important;
    right: -2.75rem !important;
    top: 100% !important;
    height: 2.75rem !important;
  }

  .wpi-global-header .wpi-nav-dropdown-label,
  .site-header.wpi-global-header .wpi-nav-dropdown-label {
    min-height: 3rem !important;
    padding: .82rem .3rem !important;
  }

  .wpi-global-header .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .wpi-nav-dropdown-caret {
    width: 2.25rem !important;
    height: 2.25rem !important;
    min-width: 2.25rem !important;
    min-height: 2.25rem !important;
    font-size: .82rem !important;
    border-radius: 999px !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu {
    top: calc(100% + .28rem) !important;
    width: min(59rem, calc(100vw - 4rem)) !important;
    grid-template-columns: repeat(3, minmax(14.75rem, 1fr)) !important;
    gap: .95rem !important;
    padding: 1.35rem !important;
    border-radius: 1.6rem !important;
    background: linear-gradient(180deg, rgba(16,16,18,.995), rgba(0,0,0,.985)) !important;
    box-shadow: 0 1.85rem 4.25rem rgba(0,0,0,.58), inset 0 1px 0 rgba(255,255,255,.08) !important;
    transform: translateX(-50%) translateY(.45rem) !important;
    z-index: 100090 !important;
  }

  .wpi-global-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
  .wpi-global-header .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu,
  .wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-menu {
    transform: translateX(-50%) translateY(0) !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu a,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu a {
    min-height: 4.15rem !important;
    padding: 1.08rem 1.15rem !important;
    border-radius: 1rem !important;
    font-size: .96rem !important;
    line-height: 1.28 !important;
    letter-spacing: .052em !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta {
    min-height: 3.95rem !important;
    margin-top: .35rem !important;
    font-size: .96rem !important;
    letter-spacing: .06em !important;
  }
}

@media (min-width: 1181px) and (max-width: 1360px) {
  .wpi-global-header .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu {
    width: min(51rem, calc(100vw - 3rem)) !important;
    grid-template-columns: repeat(3, minmax(12.8rem, 1fr)) !important;
    padding: 1.15rem !important;
    gap: .75rem !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu a,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu a {
    min-height: 3.85rem !important;
    font-size: .9rem !important;
    padding: .95rem 1rem !important;
  }
}

.wpi-individual-service-page {
  overflow-x: hidden !important;
  overflow-y: visible !important;
}

.wpi-isvc-hero,
.wpi-individual-service-page .wpi-isvc-hero {
  overflow: visible !important;
  min-height: 56rem !important;
  isolation: isolate !important;
}

.wpi-isvc-hero > .wpi-global-header,
.wpi-isvc-hero > .site-header,
.wpi-individual-service-page .wpi-global-header,
.wpi-individual-service-page .site-header.wpi-global-header {
  position: relative !important;
  z-index: 100050 !important;
}

.wpi-isvc-hero .wpi-nav-dropdown-menu,
.wpi-individual-service-page .wpi-nav-dropdown-menu {
  z-index: 100090 !important;
}

@media (min-width: 1201px) {
  .wpi-isvc-hero-inner,
  .wpi-individual-service-page .wpi-isvc-hero-inner {
    min-height: 40rem !important;
    padding-top: 5.8rem !important;
    padding-bottom: 7rem !important;
  }
}

@media (min-width: 768px) and (max-width: 1200px) {
  .wpi-isvc-hero,
  .wpi-individual-service-page .wpi-isvc-hero {
    min-height: auto !important;
  }

  .wpi-isvc-hero-inner,
  .wpi-individual-service-page .wpi-isvc-hero-inner {
    padding-top: 4.5rem !important;
    padding-bottom: 8rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-isvc-hero,
  .wpi-individual-service-page .wpi-isvc-hero {
    min-height: auto !important;
    overflow: visible !important;
  }

  .wpi-isvc-hero-inner,
  .wpi-individual-service-page .wpi-isvc-hero-inner {
    padding-top: 3.25rem !important;
    padding-bottom: 5.5rem !important;
  }

  .wpi-individual-service-page .main-nav,
  .wpi-individual-service-page .wpi-global-header .main-nav {
    z-index: 100080 !important;
  }
}


/* ========================================================================== 
   v1.0.122 Main desktop menu typography restore
   - Restores the bigger approved main navigation type after the compact QA pass.
   - Keeps the Services dropdown, mobile hidden-until-icon behavior, footer,
     WooCommerce, quote form, and event form untouched.
   ========================================================================== */
@media (min-width: 1461px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header,
  .site-header.wpi-global-header.container-wide,
  .wpi-sp-header.site-header {
    grid-template-columns: minmax(14rem, 17.5rem) minmax(0, 1fr) auto !important;
    gap: clamp(1.15rem, 1.75vw, 2.25rem) !important;
  }

  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-sp-header .main-nav {
    gap: clamp(1.25rem, 1.55vw, 2.1rem) !important;
    font-size: 1.135rem !important;
    font-weight: 700 !important;
    line-height: 2.93rem !important;
    letter-spacing: .073rem !important;
  }

  .wpi-global-header .main-nav > a,
  .site-header.wpi-global-header .main-nav > a,
  .wpi-sp-header .main-nav > a,
  .wpi-global-header .wpi-nav-dropdown-label,
  .site-header.wpi-global-header .wpi-nav-dropdown-label {
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
  }

  .wpi-global-header .wpi-header-actions .header-contact,
  .site-header.wpi-global-header .wpi-header-actions .header-contact {
    font-size: 1rem !important;
    letter-spacing: .062rem !important;
  }
}

@media (min-width: 1181px) and (max-width: 1460px) {
  .wpi-global-header.site-header,
  .site-header.wpi-global-header,
  .site-header.wpi-global-header.container-wide,
  .wpi-sp-header.site-header {
    grid-template-columns: minmax(10.5rem, 13.25rem) minmax(0, 1fr) auto !important;
    gap: clamp(.85rem, 1.1vw, 1.25rem) !important;
  }

  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-sp-header .main-nav {
    gap: clamp(.72rem, .9vw, 1.05rem) !important;
    font-size: clamp(.96rem, .76vw, 1.02rem) !important;
    font-weight: 700 !important;
    line-height: 2.35rem !important;
    letter-spacing: .055rem !important;
  }

  .wpi-global-header .main-nav > a,
  .site-header.wpi-global-header .main-nav > a,
  .wpi-sp-header .main-nav > a,
  .wpi-global-header .wpi-nav-dropdown-label,
  .site-header.wpi-global-header .wpi-nav-dropdown-label {
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
  }

  .wpi-global-header .site-logo img,
  .site-header.wpi-global-header .site-logo img,
  .wpi-sp-header .site-logo img {
    width: clamp(10.5rem, 10.4vw, 13.25rem) !important;
    max-height: 5rem !important;
  }

  .wpi-global-header .wpi-header-actions .header-contact,
  .site-header.wpi-global-header .wpi-header-actions .header-contact {
    font-size: .9rem !important;
    letter-spacing: .045rem !important;
    padding-inline: .98rem !important;
  }
}


/* ========================================================================== 
   v1.0.123 Restore merch hero + dropdown stacking fix
   - Reverts the Merch/Shop hero back to the approved visual system after the
     editable-hero overlay made it look flat/destroyed.
   - Forces the Services submenu/header above every hero layer on desktop.
   - Keeps content, footer, WooCommerce, quote forms, event forms, and mobile
     hidden-until-icon submenu behavior unchanged.
   ========================================================================== */

/* Keep all hero/header layers below the actual header dropdown. */
.site-header,
.site-header.wpi-global-header,
.wpi-global-header.site-header,
.wpi-standard-header.site-header,
.wpi-sp-header.site-header,
.wpi-isvc-header.site-header,
.wpi-shop-page .wpi-shop-hero .wpi-global-header,
.wpi-gallery-page .wpi-gallery-hero .wpi-global-header,
.wpi-quote-page .wpi-quote-hero .wpi-global-header,
.wpi-event-page .wpi-event-hero .wpi-global-header,
.wpi-individual-service-page .wpi-isvc-hero .wpi-global-header,
.wpi-standard-page .wpi-standard-hero .wpi-global-header {
  position: relative !important;
  z-index: 999900 !important;
  isolation: isolate !important;
}

.wpi-global-header .main-nav,
.site-header.wpi-global-header .main-nav,
.wpi-sp-header .main-nav,
.wpi-standard-header .main-nav {
  position: relative !important;
  z-index: 999920 !important;
}

.wpi-global-header .wpi-nav-dropdown,
.site-header.wpi-global-header .wpi-nav-dropdown,
.wpi-sp-header .wpi-nav-dropdown,
.wpi-standard-header .wpi-nav-dropdown {
  position: relative !important;
  z-index: 999930 !important;
}

.wpi-global-header .wpi-nav-dropdown-menu,
.site-header.wpi-global-header .wpi-nav-dropdown-menu,
.wpi-sp-header .wpi-nav-dropdown-menu,
.wpi-standard-header .wpi-nav-dropdown-menu {
  z-index: 999950 !important;
}

/* Stop hero sections/art from covering the Services dropdown. */
.wpi-shop-page,
.wpi-gallery-page,
.wpi-quote-page,
.wpi-event-page,
.wpi-individual-service-page,
.wpi-standard-page {
  overflow-x: hidden !important;
  overflow-y: visible !important;
}

.wpi-shop-page .wpi-shop-hero,
.wpi-gallery-page .wpi-gallery-hero,
.wpi-quote-page .wpi-quote-hero,
.wpi-event-page .wpi-event-hero,
.wpi-individual-service-page .wpi-isvc-hero,
.wpi-standard-page .wpi-standard-hero {
  overflow: visible !important;
  z-index: 20 !important;
}

.wpi-shop-page .wpi-shop-catalog,
.wpi-gallery-page section:not(.wpi-gallery-hero),
.wpi-quote-page section:not(.wpi-quote-hero),
.wpi-event-page section:not(.wpi-event-hero),
.wpi-individual-service-page section:not(.wpi-isvc-hero),
.wpi-standard-page section:not(.wpi-standard-hero) {
  position: relative !important;
  z-index: 1 !important;
}

/* Restore the approved Merch/Shop hero look. The editable background field still
   works through --wpi-page-hero-bg, but the original red/black art and glow are
   no longer replaced by the generic editable hero overlay. */
.wpi-shop-page .wpi-shop-hero,
.wpi-shop-page .wpi-shop-hero.wpi-editable-hero {
  position: relative !important;
  isolation: isolate !important;
  min-height: 45.75rem !important;
  color: #fff !important;
  background-color: #000 !important;
  background-image: var(--wpi-page-hero-bg, none) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

.wpi-shop-page .wpi-shop-hero::before,
.wpi-shop-page .wpi-shop-hero.wpi-editable-hero::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  pointer-events: none !important;
  z-index: 0 !important;
  opacity: 1 !important;
  background:
    linear-gradient(180deg, #303030 0%, rgba(19,19,19,.92) 15%, rgba(0,0,0,.54) 47%, #000 95%),
    radial-gradient(ellipse at 9% 31%, rgba(210,4,4,.35) 0 5rem, transparent 9rem),
    radial-gradient(ellipse at 95% 78%, rgba(210,4,4,.45) 0 8rem, transparent 12rem) !important;
}

.wpi-shop-page .wpi-shop-hero-art,
.wpi-shop-page .wpi-shop-hero-bottom-glow {
  display: block !important;
  pointer-events: none !important;
  z-index: 1 !important;
}

.wpi-shop-page .wpi-shop-announcement,
.wpi-shop-page .wpi-shop-hero-copy {
  position: relative !important;
  z-index: 5 !important;
}

.wpi-shop-page .wpi-shop-hero .wpi-global-header,
.wpi-shop-page .wpi-shop-hero .site-header {
  z-index: 999900 !important;
}

.wpi-shop-page .wpi-shop-hero-copy {
  padding-top: 4.65rem !important;
  text-align: center !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}

.wpi-shop-page .wpi-shop-hero-copy .eyebrow {
  margin-bottom: 2.5rem !important;
  background: rgba(0,0,0,.18) !important;
}

.wpi-shop-page .wpi-shop-hero-copy h1 {
  max-width: 56rem !important;
  font-family: var(--display) !important;
  font-size: clamp(3.4rem, 4.1vw, 4.1rem) !important;
  font-weight: 700 !important;
  line-height: .94 !important;
  letter-spacing: -.045em !important;
  text-transform: uppercase !important;
  color: #fff !important;
}

.wpi-shop-page .wpi-shop-hero-copy p {
  margin-top: 1.75rem !important;
  max-width: 47.5rem !important;
  font-size: 1.3rem !important;
  line-height: 1.5 !important;
  color: rgba(255,255,255,.9) !important;
}

/* Desktop dropdown should be usable and never buried under hero text/images. */
@media (min-width: 1181px) {
  .wpi-global-header .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu,
  .wpi-sp-header .wpi-nav-dropdown-menu,
  .wpi-standard-header .wpi-nav-dropdown-menu {
    top: calc(100% + .42rem) !important;
    z-index: 999950 !important;
  }

  .wpi-global-header .wpi-nav-dropdown:hover,
  .wpi-global-header .wpi-nav-dropdown:focus-within,
  .wpi-global-header .wpi-nav-dropdown.is-open,
  .site-header.wpi-global-header .wpi-nav-dropdown:hover,
  .site-header.wpi-global-header .wpi-nav-dropdown:focus-within,
  .site-header.wpi-global-header .wpi-nav-dropdown.is-open {
    z-index: 999940 !important;
  }
}

@media (max-width: 767px) {
  .wpi-shop-page .wpi-shop-hero,
  .wpi-shop-page .wpi-shop-hero.wpi-editable-hero {
    min-height: auto !important;
    padding-bottom: 5rem !important;
  }

  .wpi-shop-page .wpi-shop-hero::before,
  .wpi-shop-page .wpi-shop-hero.wpi-editable-hero::before {
    background:
      linear-gradient(180deg, #303030 0%, rgba(21,21,21,.94) 18%, rgba(0,0,0,.6) 52%, #000 96%),
      radial-gradient(ellipse at 9% 31%, rgba(210,4,4,.35) 0 5rem, transparent 9rem),
      radial-gradient(ellipse at 95% 78%, rgba(210,4,4,.45) 0 8rem, transparent 12rem) !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy {
    padding-top: 4rem !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy h1 {
    font-size: clamp(3.4rem, 12vw, 4.8rem) !important;
    line-height: .92 !important;
    max-width: 33rem !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy p {
    font-size: 1.38rem !important;
    line-height: 1.45 !important;
    max-width: 31rem !important;
  }
}


/* ========================================================================== 
   v1.0.124 Single service hero bottom overflow fix
   - Fixes the single/individual service hero bleeding out from the bottom.
   - Contains the hero image/art inside the hero area while preserving the
     high-z-index header/dropdown fix from v1.0.123.
   - Keeps menu size, mobile submenu behavior, footer, content, WooCommerce,
     quote forms, event forms, and policies unchanged.
   ========================================================================== */
.wpi-individual-service-page .wpi-isvc-hero,
.wpi-individual-service-page .wpi-isvc-hero.wpi-editable-hero {
  position: relative !important;
  min-height: auto !important;
  overflow: clip !important;
  background: #000 !important;
  isolation: isolate !important;
  padding-bottom: 0 !important;
}

/* Fallback for browsers that do not fully support overflow: clip. */
@supports not (overflow: clip) {
  .wpi-individual-service-page .wpi-isvc-hero,
  .wpi-individual-service-page .wpi-isvc-hero.wpi-editable-hero {
    overflow: hidden !important;
  }
}

/* The header/dropdown still sits above the hero, but the hero art cannot leak
   into the next white intro section anymore. */
.wpi-individual-service-page .wpi-isvc-hero > .wpi-global-header,
.wpi-individual-service-page .wpi-isvc-hero > .site-header.wpi-global-header {
  position: relative !important;
  z-index: 999900 !important;
  isolation: isolate !important;
}

.wpi-individual-service-page .wpi-isvc-hero-inner {
  position: relative !important;
  z-index: 5 !important;
  min-height: 0 !important;
  padding-top: clamp(3.75rem, 5vw, 6rem) !important;
  padding-bottom: clamp(5.5rem, 7vw, 7.75rem) !important;
  overflow: visible !important;
}

.wpi-individual-service-page .wpi-isvc-hero-copy {
  position: relative !important;
  z-index: 8 !important;
}

@media (min-width: 1025px) {
  .wpi-individual-service-page .wpi-isvc-hero-media {
    top: 0 !important;
    right: -8vw !important;
    bottom: 0 !important;
    width: min(68vw, 74rem) !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    overflow: hidden !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-media img,
  .wpi-individual-service-page .wpi-isvc-hero-media video {
    height: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: scale(1.035) !important;
  }
}

/* Remove the old negative intro overlap that made the service hero look like it
   was spilling into the section below. */
.wpi-individual-service-page .wpi-isvc-intro {
  position: relative !important;
  z-index: 2 !important;
  margin-top: 0 !important;
}

@media (min-width: 768px) and (max-width: 1200px) {
  .wpi-individual-service-page .wpi-isvc-hero-inner {
    padding-top: 4.35rem !important;
    padding-bottom: 6.6rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-intro {
    margin-top: 0 !important;
  }
}

@media (max-width: 767px) {
  .wpi-individual-service-page .wpi-isvc-hero,
  .wpi-individual-service-page .wpi-isvc-hero.wpi-editable-hero {
    overflow: hidden !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-inner {
    padding-top: 3.1rem !important;
    padding-bottom: 4.75rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-hero-media {
    max-height: 20rem !important;
    overflow: hidden !important;
  }
  .wpi-individual-service-page .wpi-isvc-intro {
    margin-top: 0 !important;
  }
}

/* ========================================================================== 
   v1.0.128 Targeted rollback + mobile single-service-only guard
   - Uses the stable v1.0.124 design baseline, removing the broad hero/button
     experiments from v1.0.125-v1.0.127.
   - Homepage hero and all non-service page heroes are intentionally untouched.
   - Only the single service hero gets a small mobile guard so it stays compact
     on phones without changing desktop design.
   ========================================================================== */
@media (max-width: 767px) {
  .wpi-individual-service-page .wpi-isvc-hero-inner {
    gap: 1.85rem !important;
    padding-top: 2.1rem !important;
    padding-bottom: 4.4rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-copy .eyebrow {
    margin-bottom: 1.15rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-copy h1 {
    font-size: clamp(2.18rem, 8.25vw, 2.82rem) !important;
    line-height: 1.05 !important;
    letter-spacing: .01rem !important;
    margin-bottom: .95rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-copy p {
    font-size: 1.02rem !important;
    line-height: 1.54 !important;
    margin-bottom: 1.25rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-actions {
    gap: .75rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-actions .btn {
    min-height: 3.45rem !important;
    padding: 1rem 1.35rem !important;
    font-size: .74rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-media {
    max-height: 18.5rem !important;
  }
}


/* ========================================================================== 
   v1.0.129 Single service mobile intro image grid full-width
   - Only affects the second/intro section image gallery on single service pages.
   - Keeps hero, header, menu, footer, copy, forms, WooCommerce, and desktop design untouched.
   ========================================================================== */
@media (max-width: 767px) {
  .wpi-individual-service-page {
    overflow-x: hidden;
  }

  .wpi-individual-service-page .wpi-isvc-intro .wpi-isvc-gallery {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    border-radius: 0 !important;
  }

  .wpi-individual-service-page .wpi-isvc-intro .wpi-isvc-gallery-main,
  .wpi-individual-service-page .wpi-isvc-intro .wpi-isvc-gallery > img,
  .wpi-individual-service-page .wpi-isvc-intro .wpi-isvc-gallery > video {
    width: 100vw !important;
    max-width: 100vw !important;
    border-radius: 0 !important;
    display: block !important;
  }

  .wpi-individual-service-page .wpi-isvc-intro .wpi-isvc-thumbs {
    width: 100vw !important;
    max-width: 100vw !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: .55rem !important;
    margin-top: .55rem !important;
    padding: 0 !important;
  }

  .wpi-individual-service-page .wpi-isvc-intro .wpi-isvc-thumbs figure {
    border-radius: 0 !important;
  }
}


/* ========================================================================== 
   v1.0.130 Mobile menu open reliability fix
   - Keeps v1.0.129 gallery fix intact.
   - Moves the mobile drawer to fixed positioning so hero/section overflow cannot clip it.
   - Does not change footer, content, forms, WooCommerce, or desktop menu design.
   ========================================================================== */
@media (max-width: 1180px) {
  html body.menu-open,
  html body.wpi-menu-open {
    overflow-x: hidden !important;
  }

  .wpi-global-header.site-header,
  .site-header.wpi-global-header,
  .site-header.wpi-global-header.container-wide,
  .wpi-sp-header.site-header,
  .wpi-standard-header.site-header {
    position: relative !important;
    z-index: 2147483000 !important;
    overflow: visible !important;
  }

  .wpi-global-header .mobile-menu-toggle,
  .site-header.wpi-global-header .mobile-menu-toggle,
  .wpi-sp-header .mobile-menu-toggle,
  .wpi-standard-header .mobile-menu-toggle {
    display: inline-flex !important;
    position: relative !important;
    z-index: 2147483646 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-sp-header .main-nav,
  .wpi-standard-header .main-nav {
    position: fixed !important;
    top: var(--wpi-mobile-menu-top, 6.9rem) !important;
    left: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    transform: none !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;
    max-height: calc(100dvh - var(--wpi-mobile-menu-top, 6.9rem) - .75rem) !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    z-index: 2147483645 !important;
    box-sizing: border-box !important;
    padding: 1rem clamp(1rem, 5vw, 1.5rem) 1.25rem !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-radius: 0 0 1.25rem 1.25rem !important;
    background: rgba(0,0,0,.985) !important;
    box-shadow: 0 2rem 4rem rgba(0,0,0,.65) !important;
  }

  body.menu-open .wpi-global-header .main-nav,
  body.wpi-menu-open .wpi-global-header .main-nav,
  body.menu-open .site-header.wpi-global-header .main-nav,
  body.wpi-menu-open .site-header.wpi-global-header .main-nav,
  body.menu-open .wpi-sp-header .main-nav,
  body.wpi-menu-open .wpi-sp-header .main-nav,
  body.menu-open .wpi-standard-header .main-nav,
  body.wpi-menu-open .wpi-standard-header .main-nav {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

/* ========================================================================== 
   v1.0.131 Mobile menu link completeness + alignment fix
   - Uses the complete approved header journey on every page from PHP.
   - Makes mobile drawer links align as one clean list.
   - Keeps Services submenu hidden until the arrow/icon is tapped.
   - Does not touch hero, footer, content, WooCommerce, quote/event forms, or desktop design.
   ========================================================================== */
@media (max-width: 1180px) {
  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-sp-header .main-nav,
  .wpi-standard-header .main-nav {
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: .55rem !important;
    text-align: left !important;
  }

  body.menu-open .wpi-global-header .main-nav,
  body.wpi-menu-open .wpi-global-header .main-nav,
  body.menu-open .site-header.wpi-global-header .main-nav,
  body.wpi-menu-open .site-header.wpi-global-header .main-nav,
  body.menu-open .wpi-sp-header .main-nav,
  body.wpi-menu-open .wpi-sp-header .main-nav,
  body.menu-open .wpi-standard-header .main-nav,
  body.wpi-menu-open .wpi-standard-header .main-nav {
    display: flex !important;
  }

  .wpi-global-header .main-nav > a,
  .site-header.wpi-global-header .main-nav > a,
  .wpi-sp-header .main-nav > a,
  .wpi-standard-header .main-nav > a,
  .wpi-global-header .wpi-nav-dropdown-label,
  .site-header.wpi-global-header .wpi-nav-dropdown-label,
  .wpi-sp-header .wpi-nav-dropdown-label,
  .wpi-standard-header .wpi-nav-dropdown-label {
    width: 100% !important;
    min-height: 3.45rem !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding: .95rem 1rem !important;
    margin: 0 !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-radius: .95rem !important;
    background: rgba(255,255,255,.045) !important;
    color: #fff !important;
    font-size: .98rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    white-space: normal !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown,
  .wpi-sp-header .main-nav .wpi-nav-dropdown,
  .wpi-standard-header .main-nav .wpi-nav-dropdown {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 3.45rem !important;
    align-items: stretch !important;
    gap: .5rem !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  .wpi-global-header .wpi-nav-dropdown-label,
  .site-header.wpi-global-header .wpi-nav-dropdown-label,
  .wpi-sp-header .wpi-nav-dropdown-label,
  .wpi-standard-header .wpi-nav-dropdown-label {
    grid-column: 1 !important;
  }

  .wpi-global-header .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .wpi-nav-dropdown-caret,
  .wpi-sp-header .wpi-nav-dropdown-caret,
  .wpi-standard-header .wpi-nav-dropdown-caret {
    grid-column: 2 !important;
    width: 3.45rem !important;
    min-width: 3.45rem !important;
    height: auto !important;
    min-height: 3.45rem !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: .95rem !important;
    background: rgba(255,255,255,.075) !important;
    color: #fff !important;
    font-size: .86rem !important;
    line-height: 1 !important;
    opacity: 1 !important;
  }

  .wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-caret,
  .wpi-sp-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-caret,
  .wpi-standard-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-caret {
    background: rgba(210,4,4,.28) !important;
    transform: rotate(180deg) !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu,
  .wpi-sp-header .wpi-nav-dropdown-menu,
  .wpi-standard-header .wpi-nav-dropdown-menu {
    grid-column: 1 / -1 !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .42rem !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: none !important;
  }

  .wpi-global-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
  .wpi-global-header .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu,
  .wpi-sp-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
  .wpi-sp-header .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu,
  .wpi-standard-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
  .wpi-standard-header .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu {
    max-height: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-menu,
  .wpi-sp-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-menu,
  .wpi-standard-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-menu {
    max-height: 999rem !important;
    padding: .55rem 0 0 !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu a,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu a,
  .wpi-sp-header .wpi-nav-dropdown-menu a,
  .wpi-standard-header .wpi-nav-dropdown-menu a {
    width: calc(100% - 1.1rem) !important;
    min-height: 3.15rem !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin-left: 1.1rem !important;
    padding: .82rem 1rem !important;
    border: 1px solid rgba(255,255,255,.1) !important;
    border-radius: .82rem !important;
    background: rgba(255,255,255,.035) !important;
    color: rgba(255,255,255,.9) !important;
    font-size: .91rem !important;
    font-weight: 750 !important;
    line-height: 1.24 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    white-space: normal !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta,
  .wpi-sp-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta,
  .wpi-standard-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta,
  .wpi-global-header .main-nav .mobile-nav-contact,
  .site-header.wpi-global-header .main-nav .mobile-nav-contact,
  .wpi-sp-header .main-nav .mobile-nav-contact,
  .wpi-standard-header .main-nav .mobile-nav-contact {
    justify-content: center !important;
    text-align: center !important;
    background: #d20404 !important;
    color: #fff !important;
    border-color: rgba(210,4,4,.6) !important;
  }

  .wpi-global-header .main-nav .mobile-nav-contact,
  .site-header.wpi-global-header .main-nav .mobile-nav-contact,
  .wpi-sp-header .main-nav .mobile-nav-contact,
  .wpi-standard-header .main-nav .mobile-nav-contact {
    display: flex !important;
    margin-top: .35rem !important;
  }
}

/* ========================================================================== 
   v1.0.132 Mobile Services dropdown simple row fix
   - Makes the mobile Services parent look like every other mobile menu link.
   - Keeps only a small dropdown icon on the right.
   - Makes opened service links a simple mobile dropdown list, not a desktop/mega-card panel.
   - Desktop dropdown, heroes, footer, content, WooCommerce, and forms are unchanged.
   ========================================================================== */
@media (max-width: 1180px) {
  .wpi-global-header .main-nav .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown,
  .wpi-sp-header .main-nav .wpi-nav-dropdown,
  .wpi-standard-header .main-nav .wpi-nav-dropdown {
    position: relative !important;
    width: 100% !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  /* Services parent row: visually identical to the other top-level mobile links. */
  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-label,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-label,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-label,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-label {
    width: 100% !important;
    min-height: 3.45rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    box-sizing: border-box !important;
    padding: .95rem 3.4rem .95rem 1rem !important;
    margin: 0 !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-radius: .95rem !important;
    background: rgba(255,255,255,.045) !important;
    color: #fff !important;
    font-size: .98rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    white-space: normal !important;
  }

  /* Icon only, inside the Services row. No separate boxed button. */
  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret {
    position: absolute !important;
    top: 0 !important;
    right: .15rem !important;
    width: 3.1rem !important;
    min-width: 3.1rem !important;
    height: 3.45rem !important;
    min-height: 3.45rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: .95rem !important;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(255,255,255,.86) !important;
    font-size: .92rem !important;
    line-height: 1 !important;
    opacity: 1 !important;
    z-index: 2 !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret:hover,
  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret:focus-visible,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret:hover,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret:focus-visible,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret:hover,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret:focus-visible,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret:hover,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret:focus-visible {
    background: rgba(255,255,255,.08) !important;
    outline: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-caret {
    background: transparent !important;
    transform: rotate(180deg) !important;
    color: #fff !important;
  }

  /* Closed by default on mobile/tablet; icon click opens it. */
  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: none !important;
    transition: max-height .22s ease, padding .22s ease, opacity .16s ease !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu {
    max-height: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu {
    max-height: 60rem !important;
    padding: .55rem 0 .15rem !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  /* Simple mobile dropdown list. No desktop-card / mega-menu styling. */
  .wpi-global-header .main-nav .wpi-nav-dropdown-menu a,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-menu a,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-menu a,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-menu a {
    width: 100% !important;
    min-height: 2.75rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: .72rem 1rem .72rem 1.85rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    border-left: 2px solid rgba(210,4,4,.45) !important;
    background: transparent !important;
    color: rgba(255,255,255,.82) !important;
    font-size: .9rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    white-space: normal !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown-menu a:hover,
  .wpi-global-header .main-nav .wpi-nav-dropdown-menu a:focus,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-menu a:hover,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-menu a:focus,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-menu a:hover,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-menu a:focus,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-menu a:hover,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-menu a:focus {
    background: rgba(255,255,255,.055) !important;
    color: #fff !important;
    opacity: 1 !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta {
    justify-content: flex-start !important;
    margin: .15rem 0 0 !important;
    padding-left: 1.85rem !important;
    border-left-color: #d20404 !important;
    background: transparent !important;
    color: #fff !important;
    font-weight: 800 !important;
  }
}



/* ========================================================================== 
   v1.0.133 Mobile Services dropdown flow fix
   - Fixes the mobile Services submenu overlay/floating issue.
   - The opened service links now occupy real space in the mobile drawer,
     directly under Services, before the next top-level menu item.
   - Desktop dropdown, heroes, footer, content, WooCommerce, and forms untouched.
   ========================================================================== */
@media (max-width: 1180px) {
  .wpi-global-header .main-nav .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown,
  .wpi-sp-header .main-nav .wpi-nav-dropdown,
  .wpi-standard-header .main-nav .wpi-nav-dropdown {
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 3.1rem !important;
    grid-template-rows: auto auto !important;
    align-items: stretch !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    transform: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-label,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-label,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-label,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-label {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    position: relative !important;
    z-index: 1 !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret {
    grid-column: 2 !important;
    grid-row: 1 !important;
    position: relative !important;
    top: auto !important;
    right: auto !important;
    justify-self: stretch !important;
    align-self: stretch !important;
    z-index: 2 !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 1 !important;
    order: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    margin: .45rem 0 .15rem !important;
    padding: .2rem 0 .2rem !important;
    display: none !important;
    float: none !important;
    clear: both !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    translate: none !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu {
    display: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu {
    display: grid !important;
    gap: .05rem !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown-menu a,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-menu a,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-menu a,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-menu a {
    position: relative !important;
    z-index: 1 !important;
  }
}

/* ========================================================================== 
   v1.0.134 Mobile Services dropdown real flow fix
   - Replaces the grid mobile dropdown with a simple flex-flow structure.
   - Services parent stays a normal mobile row; the submenu becomes a normal
     full-width block below it and pushes later links down.
   - Desktop menu, heroes, footer, content, WooCommerce, and forms untouched.
   ========================================================================== */
@media (max-width: 1180px) {
  .wpi-global-header .main-nav .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown,
  .wpi-sp-header .main-nav .wpi-nav-dropdown,
  .wpi-standard-header .main-nav .wpi-nav-dropdown {
    position: static !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    overflow: visible !important;
    float: none !important;
    clear: both !important;
    transform: none !important;
    translate: none !important;
    z-index: auto !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-label,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-label,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-label,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-label {
    position: relative !important;
    flex: 1 1 calc(100% - 3.2rem) !important;
    width: auto !important;
    max-width: calc(100% - 3.2rem) !important;
    min-width: 0 !important;
    order: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-height: 3.45rem !important;
    margin: 0 !important;
    padding: .95rem 1rem !important;
    box-sizing: border-box !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-right: 0 !important;
    border-radius: .95rem 0 0 .95rem !important;
    background: rgba(255,255,255,.045) !important;
    color: #fff !important;
    font-size: .98rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    white-space: normal !important;
    transform: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-caret {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    flex: 0 0 3.2rem !important;
    order: 2 !important;
    width: 3.2rem !important;
    max-width: 3.2rem !important;
    min-width: 3.2rem !important;
    height: auto !important;
    min-height: 3.45rem !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-left: 0 !important;
    border-radius: 0 .95rem .95rem 0 !important;
    background: rgba(255,255,255,.045) !important;
    color: rgba(255,255,255,.9) !important;
    box-shadow: none !important;
    font-size: .9rem !important;
    line-height: 1 !important;
    opacity: 1 !important;
    z-index: auto !important;
    transform: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-caret {
    background: rgba(255,255,255,.06) !important;
    color: #fff !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-caret::first-letter,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-caret::first-letter,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-caret::first-letter,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-caret::first-letter {
    transform: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu {
    position: static !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    order: 3 !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: .35rem 0 .1rem !important;
    padding: 0 !important;
    display: none !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    float: none !important;
    clear: both !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    translate: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    z-index: auto !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu {
    display: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu {
    display: block !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > a,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > a,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > a,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > a {
    position: static !important;
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 2.72rem !important;
    margin: 0 !important;
    padding: .72rem 1rem .72rem 1.8rem !important;
    box-sizing: border-box !important;
    border: 0 !important;
    border-left: 2px solid rgba(210,4,4,.48) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(255,255,255,.84) !important;
    font-size: .9rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    transform: none !important;
    clear: both !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > .wpi-nav-dropdown-cta,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > .wpi-nav-dropdown-cta,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > .wpi-nav-dropdown-cta,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > .wpi-nav-dropdown-cta {
    color: #fff !important;
    font-weight: 800 !important;
    border-left-color: #d20404 !important;
  }

  .wpi-global-header .main-nav > a,
  .site-header.wpi-global-header .main-nav > a,
  .wpi-sp-header .main-nav > a,
  .wpi-standard-header .main-nav > a {
    clear: both !important;
    position: relative !important;
    z-index: auto !important;
  }
}


/* ========================================================================== 
   v1.0.135 Mobile Services submenu real-flow fix
   - Adds a true mobile row wrapper for Services so the submenu is part of the
     normal drawer flow and cannot float over the following links.
   - Desktop dropdown design remains unchanged.
   ========================================================================== */
.wpi-nav-dropdown-row {
  display: contents;
}

@media (max-width: 1180px) {
  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-sp-header .main-nav,
  .wpi-standard-header .main-nav {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: .55rem !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown,
  .wpi-sp-header .main-nav .wpi-nav-dropdown,
  .wpi-standard-header .main-nav .wpi-nav-dropdown {
    position: static !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    overflow: visible !important;
    float: none !important;
    clear: both !important;
    transform: none !important;
    z-index: auto !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown-row,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-row,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-row {
    position: static !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 3.45rem !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-radius: .95rem !important;
    background: rgba(255,255,255,.045) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    float: none !important;
    clear: both !important;
    transform: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label {
    position: static !important;
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 3.45rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: .95rem 1rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #fff !important;
    font-size: .98rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    text-decoration: none !important;
    white-space: normal !important;
    transform: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret {
    position: static !important;
    inset: auto !important;
    flex: 0 0 3.35rem !important;
    width: 3.35rem !important;
    max-width: 3.35rem !important;
    min-width: 3.35rem !important;
    height: auto !important;
    min-height: 3.45rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-left: 1px solid rgba(255,255,255,.13) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: rgba(255,255,255,.9) !important;
    box-shadow: none !important;
    font-size: .92rem !important;
    line-height: 1 !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
    transform: none !important;
    z-index: auto !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret {
    background: rgba(210,4,4,.18) !important;
    color: #fff !important;
  }

  /* This is the important fix: on mobile the submenu is a normal static block.
     It is never absolute/fixed/grid-positioned, so it pushes the next links down. */
  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu {
    position: static !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    display: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: .45rem 0 0 !important;
    padding: .25rem 0 .15rem 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    overflow: visible !important;
    transform: none !important;
    translate: none !important;
    float: none !important;
    clear: both !important;
    z-index: auto !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu {
    display: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu {
    display: block !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > a,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > a,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > a,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > a {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 2.75rem !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: .72rem 1rem .72rem 1.65rem !important;
    border: 0 !important;
    border-left: 2px solid rgba(210,4,4,.55) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(255,255,255,.86) !important;
    font-size: .9rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    white-space: normal !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > a + a,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > a + a,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > a + a,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu > a + a {
    margin-top: .05rem !important;
  }
}

/* ========================================================================== 
   v1.0.136 Mobile Services submenu real structural fix
   - The nested desktop dropdown is fully disabled on mobile.
   - A mobile-only sibling menu sits as a normal flex item in the drawer, so it
     pushes Portfolio / Events / Merch / Contact down instead of overlaying them.
   - Desktop dropdown, heroes, footer, content, WooCommerce, and forms untouched.
   ========================================================================== */
.wpi-mobile-services-menu {
  display: none !important;
}

@media (min-width: 1181px) {
  .wpi-mobile-services-menu {
    display: none !important;
  }
}

@media (max-width: 1180px) {
  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-sp-header .main-nav,
  .wpi-standard-header .main-nav {
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: .55rem !important;
  }

  body.menu-open .wpi-global-header .main-nav,
  body.wpi-menu-open .wpi-global-header .main-nav,
  body.menu-open .site-header.wpi-global-header .main-nav,
  body.wpi-menu-open .site-header.wpi-global-header .main-nav,
  body.menu-open .wpi-sp-header .main-nav,
  body.wpi-menu-open .wpi-sp-header .main-nav,
  body.menu-open .wpi-standard-header .main-nav,
  body.wpi-menu-open .wpi-standard-header .main-nav {
    display: flex !important;
  }

  /* Keep Services itself as one normal mobile link row. */
  .wpi-global-header .main-nav .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown,
  .wpi-sp-header .main-nav .wpi-nav-dropdown,
  .wpi-standard-header .main-nav .wpi-nav-dropdown {
    position: static !important;
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    float: none !important;
    clear: both !important;
    z-index: auto !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown-row,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-row,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-row {
    display: flex !important;
    align-items: stretch !important;
    width: 100% !important;
    min-height: 3.45rem !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-radius: .95rem !important;
    background: rgba(255,255,255,.045) !important;
    overflow: hidden !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 3.45rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin: 0 !important;
    padding: .95rem 1rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #fff !important;
    font-size: .98rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    text-decoration: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret {
    position: static !important;
    flex: 0 0 3.35rem !important;
    width: 3.35rem !important;
    min-width: 3.35rem !important;
    min-height: 3.45rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-left: 1px solid rgba(255,255,255,.13) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: rgba(255,255,255,.9) !important;
    font-size: .92rem !important;
    line-height: 1 !important;
    cursor: pointer !important;
    transform: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret {
    background: rgba(210,4,4,.18) !important;
    color: #fff !important;
    transform: none !important;
  }

  /* The nested desktop dropdown is never used on mobile. This removes the old
     floating/absolute menu completely from the mobile drawer. */
  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu {
    display: none !important;
    position: static !important;
    max-height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  /* Mobile-only service list: direct nav child, normal document flow. */
  .wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu {
    position: static !important;
    display: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    margin: -.1rem 0 .15rem 0 !important;
    padding: .25rem 0 .15rem 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    overflow: visible !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
    z-index: auto !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu {
    display: block !important;
  }

  .wpi-global-header .main-nav > .wpi-mobile-services-menu > a,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu > a,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu > a,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu > a {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 2.75rem !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: .72rem 1rem .72rem 1.65rem !important;
    border: 0 !important;
    border-left: 2px solid rgba(210,4,4,.55) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(255,255,255,.86) !important;
    font-size: .9rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    text-decoration: none !important;
    white-space: normal !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
  }

  .wpi-global-header .main-nav > .wpi-mobile-services-menu > a + a,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu > a + a,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu > a + a,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu > a + a {
    margin-top: .05rem !important;
  }

  .wpi-global-header .main-nav > .wpi-mobile-services-menu > .wpi-nav-dropdown-cta,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu > .wpi-nav-dropdown-cta,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu > .wpi-nav-dropdown-cta,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu > .wpi-nav-dropdown-cta {
    color: #fff !important;
    font-weight: 800 !important;
    border-left-color: #d20404 !important;
  }
}

/* ========================================================================== 
   v1.0.137 Mobile Services submenu in-row refinement
   - Moves the mobile-only service list inside the Services item so it cannot
     start at the top of the row or visually cut into the Services label.
   - Gives the opened list breathing room and keeps it in normal document flow.
   - Desktop menu, heroes, footer, content, WooCommerce and forms untouched.
   ========================================================================== */
@media (max-width: 1180px) {
  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu {
    position: static !important;
    display: none !important;
    flex: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: .55rem 0 .15rem 0 !important;
    padding: .35rem 0 .35rem 0 !important;
    box-sizing: border-box !important;
    border: 0 !important;
    border-left: 2px solid rgba(210,4,4,.65) !important;
    border-radius: 0 0 .85rem .85rem !important;
    background: rgba(0,0,0,.28) !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    overflow: visible !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
    z-index: auto !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open > .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open > .wpi-mobile-services-menu {
    display: block !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 2.45rem !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: .62rem .95rem .62rem 1.15rem !important;
    border: 0 !important;
    border-radius: .55rem !important;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(255,255,255,.86) !important;
    font-size: .86rem !important;
    font-weight: 750 !important;
    line-height: 1.25 !important;
    letter-spacing: .035em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    text-decoration: none !important;
    white-space: normal !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a + a,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a + a,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a + a,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a + a {
    margin-top: .1rem !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a:hover,
  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a:focus-visible,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a:hover,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a:focus-visible,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a:hover,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a:focus-visible,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a:hover,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > a:focus-visible {
    background: rgba(255,255,255,.06) !important;
    color: #fff !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > .wpi-nav-dropdown-cta,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > .wpi-nav-dropdown-cta,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > .wpi-nav-dropdown-cta,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu > .wpi-nav-dropdown-cta {
    color: #fff !important;
    font-weight: 850 !important;
  }
}

/* ========================================================================== 
   v1.0.138 Mobile Services submenu final flow fix
   - Reverts the mobile Services list to a direct nav sibling, not nested inside
     the Services card. This lets the opened submenu occupy real layout height
     before Portfolio / Events / Merch / Contact.
   - Completely disables the desktop dropdown panel on mobile.
   - Desktop dropdown, heroes, footer, content, WooCommerce, forms, and checkout
     are untouched.
   ========================================================================== */
@media (max-width: 1180px) {
  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-sp-header .main-nav,
  .wpi-standard-header .main-nav {
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: .55rem !important;
    text-align: left !important;
  }

  body.menu-open .wpi-global-header .main-nav,
  body.wpi-menu-open .wpi-global-header .main-nav,
  body.menu-open .site-header.wpi-global-header .main-nav,
  body.wpi-menu-open .site-header.wpi-global-header .main-nav,
  body.menu-open .wpi-sp-header .main-nav,
  body.wpi-menu-open .wpi-sp-header .main-nav,
  body.menu-open .wpi-standard-header .main-nav,
  body.wpi-menu-open .wpi-standard-header .main-nav {
    display: flex !important;
  }

  .wpi-global-header .main-nav > a,
  .site-header.wpi-global-header .main-nav > a,
  .wpi-sp-header .main-nav > a,
  .wpi-standard-header .main-nav > a {
    position: static !important;
    z-index: auto !important;
    order: initial !important;
    width: 100% !important;
    min-height: 3.45rem !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin: 0 !important;
    padding: .95rem 1rem !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-radius: .95rem !important;
    background: rgba(255,255,255,.045) !important;
    color: #fff !important;
    font-size: .98rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    text-decoration: none !important;
    white-space: normal !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
  }

  .wpi-global-header .main-nav > .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown {
    position: static !important;
    z-index: auto !important;
    order: initial !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
  }

  .wpi-global-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-row,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-row,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-row,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-row {
    position: static !important;
    width: 100% !important;
    min-height: 3.45rem !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-radius: .95rem !important;
    background: rgba(255,255,255,.045) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    transform: none !important;
  }

  .wpi-global-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-row > .wpi-nav-dropdown-label {
    position: static !important;
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 3.45rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin: 0 !important;
    padding: .95rem 1rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #fff !important;
    font-size: .98rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    text-decoration: none !important;
    white-space: normal !important;
    transform: none !important;
  }

  .wpi-global-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret {
    position: static !important;
    inset: auto !important;
    flex: 0 0 3.35rem !important;
    width: 3.35rem !important;
    min-width: 3.35rem !important;
    min-height: 3.45rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-left: 1px solid rgba(255,255,255,.13) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: rgba(255,255,255,.9) !important;
    box-shadow: none !important;
    font-size: .92rem !important;
    line-height: 1 !important;
    cursor: pointer !important;
    opacity: 1 !important;
    transform: none !important;
    z-index: auto !important;
  }

  .wpi-global-header .main-nav > .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret {
    background: rgba(210,4,4,.18) !important;
    color: #fff !important;
  }

  /* Desktop dropdown panel is off on mobile. Only the direct sibling mobile list is used. */
  .wpi-global-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav > .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav > .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav > .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-menu {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu {
    position: static !important;
    z-index: auto !important;
    order: initial !important;
    display: none !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    box-sizing: border-box !important;
    margin: .05rem 0 .2rem 0 !important;
    padding: .62rem 0 .55rem 0 !important;
    border: 0 !important;
    border-left: 2px solid rgba(210,4,4,.65) !important;
    border-radius: 0 0 .85rem .85rem !important;
    background: rgba(0,0,0,.22) !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    overflow: visible !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
  }

  .wpi-global-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu {
    display: block !important;
  }

  .wpi-global-header .main-nav > .wpi-mobile-services-menu > a,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu > a,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu > a,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu > a {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 2.55rem !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: .62rem .95rem .62rem 1.15rem !important;
    border: 0 !important;
    border-radius: .55rem !important;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(255,255,255,.88) !important;
    font-size: .86rem !important;
    font-weight: 750 !important;
    line-height: 1.25 !important;
    letter-spacing: .035em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    text-decoration: none !important;
    white-space: normal !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
  }

  .wpi-global-header .main-nav > .wpi-mobile-services-menu > a + a,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu > a + a,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu > a + a,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu > a + a {
    margin-top: .1rem !important;
  }

  .wpi-global-header .main-nav > .wpi-mobile-services-menu > a:hover,
  .wpi-global-header .main-nav > .wpi-mobile-services-menu > a:focus-visible,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu > a:hover,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu > a:focus-visible,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu > a:hover,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu > a:focus-visible,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu > a:hover,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu > a:focus-visible {
    background: rgba(255,255,255,.06) !important;
    color: #fff !important;
  }

  .wpi-global-header .main-nav > .wpi-mobile-services-menu > .wpi-nav-dropdown-cta,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu > .wpi-nav-dropdown-cta,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu > .wpi-nav-dropdown-cta,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu > .wpi-nav-dropdown-cta {
    color: #fff !important;
    font-weight: 850 !important;
  }
}


/* v1.0.139: Mobile Services submenu true flow fix with top spacing */
@media (max-width: 1180px) {
  .wpi-global-header .main-nav .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown,
  .wpi-sp-header .main-nav .wpi-nav-dropdown,
  .wpi-standard-header .main-nav .wpi-nav-dropdown {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown-row,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-row,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 3.45rem !important;
    gap: .5rem !important;
    align-items: stretch !important;
  }

  .wpi-global-header .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown-menu,
  .wpi-sp-header .wpi-nav-dropdown-menu,
  .wpi-standard-header .wpi-nav-dropdown-menu {
    display: none !important;
    max-height: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .wpi-global-header .wpi-mobile-services-menu,
  .site-header.wpi-global-header .wpi-mobile-services-menu,
  .wpi-sp-header .wpi-mobile-services-menu,
  .wpi-standard-header .wpi-mobile-services-menu {
    display: none !important;
    width: 100% !important;
    margin: .6rem 0 0 !important;
    padding: 0 !important;
  }

  .wpi-global-header .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-sp-header .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-standard-header .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .45rem !important;
  }

  .wpi-global-header .wpi-mobile-services-menu a,
  .site-header.wpi-global-header .wpi-mobile-services-menu a,
  .wpi-sp-header .wpi-mobile-services-menu a,
  .wpi-standard-header .wpi-mobile-services-menu a {
    width: calc(100% - 1.1rem) !important;
    min-height: 3.05rem !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin: 0 0 0 1.1rem !important;
    padding: .82rem 1rem !important;
    border-left: 2px solid #d20404 !important;
    border-radius: 0 !important;
    background: rgba(255,255,255,.025) !important;
    color: rgba(255,255,255,.94) !important;
    font-size: .91rem !important;
    font-weight: 750 !important;
    line-height: 1.24 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    white-space: normal !important;
    text-decoration: none !important;
  }

  .wpi-global-header .wpi-mobile-services-menu .wpi-nav-dropdown-cta,
  .site-header.wpi-global-header .wpi-mobile-services-menu .wpi-nav-dropdown-cta,
  .wpi-sp-header .wpi-mobile-services-menu .wpi-nav-dropdown-cta,
  .wpi-standard-header .wpi-mobile-services-menu .wpi-nav-dropdown-cta {
    justify-content: flex-start !important;
    background: rgba(255,255,255,.025) !important;
    color: rgba(255,255,255,.94) !important;
  }
}

/* v1.0.140: Repair mobile Services submenu placement, non-home hero backgrounds, and Events mobile spacing */
@media (max-width: 1180px) {
  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-sp-header .main-nav,
  .wpi-standard-header .main-nav {
    overflow: visible !important;
    row-gap: .58rem !important;
  }

  .wpi-global-header .main-nav > .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown {
    margin-bottom: 0 !important;
  }

  .wpi-global-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    z-index: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    flex: 0 0 auto !important;
    margin: 1rem 0 .9rem 0 !important;
    padding: .9rem 0 .75rem .85rem !important;
    gap: .12rem !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
    background: rgba(0,0,0,.34) !important;
    border-left: 2px solid #d20404 !important;
    border-radius: 0 0 .85rem .85rem !important;
  }

  .wpi-global-header .main-nav > .wpi-mobile-services-menu > a,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu > a,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu > a,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu > a {
    min-height: 2.55rem !important;
    width: 100% !important;
    margin: 0 !important;
    padding: .62rem .9rem !important;
    border: 0 !important;
    border-radius: .55rem !important;
    background: transparent !important;
    box-shadow: none !important;
    line-height: 1.25 !important;
  }
}

/* Only the homepage should use a video hero. Other page heroes stay as the simple dark/grey gradient. */
.about-hero-page > .hero-bg-video,
.wpi-sp-hero > .wpi-sp-hero-video,
.wpi-gallery-hero > .wpi-hero-bg-video,
.wpi-quote-hero > .wpi-hero-bg-video,
.wpi-event-hero > .wpi-hero-bg-video,
.wpi-shop-hero > .wpi-hero-bg-video,
.wpi-isvc-hero > .wpi-hero-bg-video,
.wpi-standard-hero > .wpi-hero-bg-video {
  display: none !important;
}

.about-hero-page,
.wpi-sp-hero,
.wpi-gallery-hero,
.wpi-quote-hero,
.wpi-event-hero,
.wpi-shop-hero,
.wpi-isvc-hero,
.wpi-standard-hero {
  background-image: radial-gradient(circle at 50% 0%, rgba(68,68,68,.72), rgba(13,13,13,.96) 44%, #000 88%) !important;
  background-color: #050505 !important;
}

@media (max-width: 767px) {
  .wpi-event-hero {
    min-height: 34.5rem !important;
  }
  .wpi-event-hero::before {
    inset: 4.25rem 0 auto !important;
    height: 29rem !important;
  }
  .wpi-event-hero-copy {
    padding-top: 3.6rem !important;
  }
  .wpi-event-form-section {
    margin-top: -7.2rem !important;
    padding-bottom: 3.5rem !important;
  }
  .wpi-event-card {
    width: min(100% - 1.25rem, 42rem) !important;
    padding: 1.15rem .85rem 1.35rem !important;
    border-radius: 1.25rem !important;
  }
  .wpi-event-before-card {
    margin-top: 1.25rem !important;
    padding: 1rem .8rem .95rem !important;
  }
}

/* v1.0.141: focused repair for Merch hero height, smooth non-home gradients, Events spacing, and mobile Services submenu placement. */

/* Keep homepage hero/video untouched. All other page heroes use a clean dark fade, not video-style treatment. */
.about-hero-page > .hero-bg-video,
.wpi-sp-hero > .wpi-sp-hero-video,
.wpi-gallery-hero > .wpi-hero-bg-video,
.wpi-quote-hero > .wpi-hero-bg-video,
.wpi-event-hero > .wpi-hero-bg-video,
.wpi-shop-hero > .wpi-hero-bg-video,
.wpi-isvc-hero > .wpi-hero-bg-video,
.wpi-standard-hero > .wpi-hero-bg-video {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.about-hero-page,
.wpi-sp-hero,
.wpi-gallery-hero,
.wpi-quote-hero,
.wpi-event-hero,
.wpi-shop-hero,
.wpi-isvc-hero,
.wpi-standard-hero {
  background-color: #030303 !important;
  background-image:
    radial-gradient(ellipse at 50% -12%, rgba(105,105,105,.62) 0%, rgba(52,52,52,.34) 28%, rgba(0,0,0,0) 58%),
    linear-gradient(180deg, #343434 0%, #202020 22%, #0d0d0d 56%, #000 100%) !important;
  background-size: cover !important;
  background-position: center top !important;
  background-repeat: no-repeat !important;
}

.about-hero-page::before,
.wpi-sp-hero::after,
.wpi-gallery-hero::before,
.wpi-quote-hero::before,
.wpi-event-hero::before,
.wpi-shop-hero::before,
.wpi-isvc-hero::before,
.wpi-standard-hero::before {
  background:
    linear-gradient(180deg, rgba(255,255,255,.08) 0%, rgba(0,0,0,.05) 34%, rgba(0,0,0,.68) 78%, #000 100%),
    radial-gradient(ellipse at 50% 8%, rgba(210,4,4,.14), rgba(0,0,0,0) 54%) !important;
  opacity: 1 !important;
}

/* Merch / Shop hero: restore a premium compact height instead of the oversized/tall hero. */
.wpi-shop-page .wpi-shop-hero,
.wpi-shop-page .wpi-shop-hero.wpi-editable-hero {
  min-height: 37.5rem !important;
  padding-bottom: 4.25rem !important;
  background-image:
    radial-gradient(ellipse at 12% 25%, rgba(210,4,4,.22) 0%, rgba(210,4,4,0) 34%),
    radial-gradient(ellipse at 88% 78%, rgba(210,4,4,.2) 0%, rgba(210,4,4,0) 38%),
    linear-gradient(180deg, #343434 0%, #1b1b1b 23%, #090909 61%, #000 100%) !important;
}

.wpi-shop-page .wpi-shop-hero::before,
.wpi-shop-page .wpi-shop-hero.wpi-editable-hero::before {
  background:
    linear-gradient(180deg, rgba(255,255,255,.07) 0%, rgba(0,0,0,.03) 36%, rgba(0,0,0,.7) 82%, #000 100%),
    radial-gradient(ellipse at 50% 0%, rgba(210,4,4,.16), rgba(0,0,0,0) 58%) !important;
}

.wpi-shop-page .wpi-shop-hero-copy {
  padding-top: 3.25rem !important;
}

.wpi-shop-page .wpi-shop-hero-copy .eyebrow {
  margin-bottom: 1.55rem !important;
}

.wpi-shop-page .wpi-shop-hero-copy h1 {
  font-size: clamp(3rem, 3.7vw, 3.9rem) !important;
  line-height: .96 !important;
  max-width: 54rem !important;
}

.wpi-shop-page .wpi-shop-hero-copy p {
  margin-top: 1.25rem !important;
  max-width: 43rem !important;
  font-size: 1.18rem !important;
  line-height: 1.5 !important;
}

/* Events page: reduce the empty vertical gap and clean the white form card padding. */
@media (max-width: 767px) {
  .wpi-event-hero {
    min-height: 30.5rem !important;
    background-image:
      radial-gradient(ellipse at 50% -10%, rgba(100,100,100,.58), rgba(0,0,0,0) 58%),
      linear-gradient(180deg, #333 0%, #171717 38%, #050505 100%) !important;
  }

  .wpi-event-hero::before {
    inset: 3.75rem 0 auto !important;
    height: 25rem !important;
  }

  .wpi-event-hero-copy {
    padding: 3.15rem .95rem 0 !important;
  }

  .wpi-event-hero-copy .eyebrow {
    margin-bottom: 1rem !important;
  }

  .wpi-event-hero-copy h1 {
    max-width: 23rem !important;
    font-size: clamp(2.45rem, 11vw, 3.65rem) !important;
    line-height: 1.03 !important;
  }

  .wpi-event-hero-copy p {
    max-width: 22.5rem !important;
    margin-top: 1rem !important;
    font-size: 1.04rem !important;
    line-height: 1.42 !important;
  }

  .wpi-event-form-section {
    margin-top: -4.65rem !important;
    padding-top: 0 !important;
    padding-bottom: 3rem !important;
  }

  .wpi-event-card {
    width: min(100% - 1.1rem, 42rem) !important;
    padding: .95rem .8rem 1.15rem !important;
    border-radius: 1.15rem !important;
  }

  .wpi-event-form {
    gap: .85rem !important;
  }

  .wpi-event-before-card {
    margin-top: 1rem !important;
    padding: .95rem .8rem !important;
  }

  .wpi-shop-page .wpi-shop-hero,
  .wpi-shop-page .wpi-shop-hero.wpi-editable-hero {
    min-height: 0 !important;
    padding-bottom: 3.35rem !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy {
    padding-top: 2.75rem !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy .eyebrow {
    margin-bottom: 1.15rem !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy h1 {
    max-width: 22.5rem !important;
    font-size: clamp(2.75rem, 11vw, 3.65rem) !important;
    line-height: .97 !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy p {
    max-width: 22rem !important;
    margin-top: 1rem !important;
    font-size: 1.04rem !important;
    line-height: 1.42 !important;
  }
}

/* Mobile Services submenu: place it clearly below Services and keep it in normal flow. */
@media (max-width: 1180px) {
  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-sp-header .main-nav,
  .wpi-standard-header .main-nav {
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: .48rem !important;
    overflow: visible !important;
    max-height: calc(100vh - var(--wpi-mobile-menu-top, 7.5rem) - 1rem) !important;
    overflow-y: auto !important;
  }

  body.menu-open .wpi-global-header .main-nav,
  body.menu-open .site-header.wpi-global-header .main-nav,
  body.menu-open .wpi-sp-header .main-nav,
  body.menu-open .wpi-standard-header .main-nav {
    display: flex !important;
  }

  .wpi-global-header .main-nav > .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown {
    display: block !important;
    position: static !important;
    width: 100% !important;
    margin: 0 0 .32rem !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  .wpi-global-header .main-nav > .wpi-nav-dropdown .wpi-nav-dropdown-row,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown .wpi-nav-dropdown-row,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown .wpi-nav-dropdown-row,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown .wpi-nav-dropdown-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 3.2rem !important;
    gap: .5rem !important;
    align-items: stretch !important;
  }

  .wpi-global-header .main-nav > .wpi-nav-dropdown .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown .wpi-nav-dropdown-menu {
    display: none !important;
  }

  .wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu {
    display: none !important;
    position: static !important;
    width: 100% !important;
    clear: both !important;
    flex: 0 0 auto !important;
    margin: .75rem 0 1rem !important;
    padding: .75rem 0 .75rem .75rem !important;
    border-left: 2px solid #d20404 !important;
    background: rgba(255,255,255,.025) !important;
    border-radius: 0 .85rem .85rem 0 !important;
    box-sizing: border-box !important;
    transform: none !important;
  }

  .wpi-global-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu {
    display: flex !important;
    flex-direction: column !important;
    gap: .18rem !important;
  }

  .wpi-global-header .main-nav > .wpi-mobile-services-menu > a,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu > a,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu > a,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu > a {
    width: 100% !important;
    min-height: 2.35rem !important;
    margin: 0 !important;
    padding: .52rem .8rem !important;
    border: 0 !important;
    border-radius: .5rem !important;
    background: transparent !important;
    color: rgba(255,255,255,.92) !important;
    font-size: .82rem !important;
    line-height: 1.25 !important;
    letter-spacing: .035em !important;
  }
}

/* v1.0.142 — strict banner repair: compact non-home heroes, smooth fade, no broken video/image behavior */
/* Homepage .hero-section is intentionally NOT targeted. */

/* All non-home page hero backgrounds: simple premium grey-to-black fade, no visible video layer. */
.about-hero-page > .hero-bg-video,
.wpi-sp-hero > .wpi-sp-hero-video,
.wpi-sp-hero > .wpi-hero-bg-video,
.wpi-gallery-hero > .wpi-hero-bg-video,
.wpi-quote-hero > .wpi-hero-bg-video,
.wpi-event-hero > .wpi-hero-bg-video,
.wpi-shop-hero > .wpi-hero-bg-video,
.wpi-isvc-hero > .wpi-hero-bg-video,
.wpi-standard-hero > .wpi-hero-bg-video {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.about-hero-page,
.wpi-sp-hero,
.wpi-gallery-hero,
.wpi-quote-hero,
.wpi-event-hero,
.wpi-shop-page .wpi-shop-hero,
.wpi-isvc-hero,
.wpi-standard-hero {
  background-color: #050505 !important;
  background-image:
    radial-gradient(ellipse at 50% -14%, rgba(150,150,150,.26) 0%, rgba(88,88,88,.18) 28%, rgba(0,0,0,0) 62%),
    linear-gradient(180deg, #333333 0%, #252525 19%, #141414 58%, #050505 100%) !important;
  background-size: cover !important;
  background-position: center top !important;
  background-repeat: no-repeat !important;
}

.about-hero-page::before,
.wpi-sp-hero::after,
.wpi-gallery-hero::before,
.wpi-quote-hero::before,
.wpi-event-hero::before,
.wpi-shop-page .wpi-shop-hero::before,
.wpi-isvc-hero::before,
.wpi-standard-hero::before {
  background:
    linear-gradient(180deg, rgba(255,255,255,.045) 0%, rgba(0,0,0,.08) 34%, rgba(0,0,0,.52) 74%, #050505 100%) !important;
  opacity: 1 !important;
}

/* Merch / Shop banner: remove the oversized decorative art and make the banner compact and clean. */
.wpi-shop-page .wpi-shop-hero,
.wpi-shop-page .wpi-shop-hero.wpi-editable-hero {
  min-height: 0 !important;
  height: auto !important;
  padding-bottom: clamp(3.2rem, 4.5vw, 4.8rem) !important;
  overflow: hidden !important;
  isolation: isolate !important;
}

.wpi-shop-page .wpi-shop-hero-art,
.wpi-shop-page .wpi-shop-hero-art-left,
.wpi-shop-page .wpi-shop-hero-art-right,
.wpi-shop-page .wpi-shop-hero-bottom-glow {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}

.wpi-shop-page .wpi-shop-hero-copy {
  padding-top: clamp(2.4rem, 3.1vw, 3.35rem) !important;
  max-width: min(100% - 2rem, 58rem) !important;
}

.wpi-shop-page .wpi-shop-hero-copy .eyebrow {
  margin-bottom: 1.15rem !important;
}

.wpi-shop-page .wpi-shop-hero-copy h1 {
  max-width: 52rem !important;
  margin-inline: auto !important;
  font-size: clamp(3rem, 4vw, 4.25rem) !important;
  line-height: 1.02 !important;
  letter-spacing: .005em !important;
  text-wrap: balance !important;
}

.wpi-shop-page .wpi-shop-hero-copy p {
  max-width: 42rem !important;
  margin: 1.05rem auto 0 !important;
  font-size: clamp(1.02rem, 1.18vw, 1.18rem) !important;
  line-height: 1.48 !important;
}

/* Events: keep the white form card closer to the banner after the gradient repair. */
.wpi-event-form-section {
  margin-top: clamp(-5.25rem, -6vw, -3.6rem) !important;
  padding-top: 0 !important;
}

.wpi-event-card {
  padding-top: clamp(1.2rem, 2vw, 2rem) !important;
}

/* Mobile: keep banners smaller and readable. */
@media (max-width: 767px) {
  .about-hero-page,
  .wpi-sp-hero,
  .wpi-gallery-hero,
  .wpi-quote-hero,
  .wpi-event-hero,
  .wpi-shop-page .wpi-shop-hero,
  .wpi-isvc-hero,
  .wpi-standard-hero {
    background-image:
      radial-gradient(ellipse at 50% -18%, rgba(140,140,140,.24) 0%, rgba(75,75,75,.14) 30%, rgba(0,0,0,0) 64%),
      linear-gradient(180deg, #303030 0%, #202020 28%, #0c0c0c 72%, #050505 100%) !important;
  }

  .wpi-shop-page .wpi-shop-hero,
  .wpi-shop-page .wpi-shop-hero.wpi-editable-hero {
    min-height: 0 !important;
    padding-bottom: 2.7rem !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy {
    padding-top: 2.15rem !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy .eyebrow {
    margin-bottom: .9rem !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy h1 {
    max-width: 22rem !important;
    font-size: clamp(2.35rem, 10.2vw, 3.25rem) !important;
    line-height: 1.03 !important;
    letter-spacing: .006em !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy p {
    max-width: 22.5rem !important;
    margin-top: .9rem !important;
    font-size: 1rem !important;
    line-height: 1.42 !important;
  }

  .wpi-event-form-section {
    margin-top: -3.85rem !important;
  }

  .wpi-event-card {
    padding: .9rem .78rem 1.05rem !important;
  }
}

/* Mobile Services dropdown: move the open list lower and force it to push content down. */
@media (max-width: 1180px) {
  .wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu {
    position: static !important;
    transform: none !important;
    margin: .95rem 0 1.05rem !important;
    padding-top: .95rem !important;
    clear: both !important;
  }

  .wpi-global-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu {
    display: flex !important;
    flex-direction: column !important;
    flex-basis: auto !important;
  }
}


/* v1.0.143: CTA banner icon + enforced 2-line heading */
.wpi-shop-cta-mark {
  width: 11rem;
  min-height: 7.5rem;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.wpi-shop-cta-mark img {
  display: block;
  max-width: 100%;
  max-height: 7rem;
  object-fit: contain;
}

.wpi-shop-cta-mark-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #d20404;
  font-size: 5.6rem;
  line-height: 1;
}

.wpi-shop-cta-mark img + .wpi-shop-cta-mark-fallback {
  display: none;
}

.wpi-shop-cta h2 span,
.wpi-gallery-cta h2 span {
  display: block;
}

@media (max-width: 767px) {
  .wpi-shop-cta-mark {
    width: 8.75rem;
    min-height: 5.75rem;
  }

  .wpi-shop-cta-mark img {
    max-height: 5.2rem;
  }

  .wpi-shop-cta-mark-fallback {
    font-size: 4.2rem;
  }
}


/* v1.0.144: Merch CTA banner matched to Figma node 126:2343 */
.wpi-shop-cta {
  background: #000 !important;
  color: #fff !important;
  border-top: 15px solid #fff !important;
  border-bottom: 15px solid #fff !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

.wpi-shop-cta .container-narrow,
.wpi-shop-cta-inner {
  width: min(92vw, 844px) !important;
  min-height: 706px !important;
  max-width: 844px !important;
  box-sizing: border-box !important;
  padding: 52px 0 64px !important;
  margin-inline: auto !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  text-align: center !important;
}

.wpi-shop-cta-mark {
  width: 184px !important;
  height: 234px !important;
  min-height: 234px !important;
  margin: 0 auto 38px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #d20404 !important;
  font-size: 5.6rem !important;
  line-height: 1 !important;
}

.wpi-shop-cta-mark img {
  display: block !important;
  width: 184px !important;
  height: 234px !important;
  max-width: 184px !important;
  max-height: 234px !important;
  object-fit: contain !important;
}

.wpi-shop-cta-mark-fallback {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: #d20404 !important;
  font-size: 5.6rem !important;
  line-height: 1 !important;
}

.wpi-shop-cta h2 {
  width: min(100%, 844px) !important;
  margin: 0 0 26px !important;
  padding: 0 !important;
  font-family: var(--display, 'Clash Display', sans-serif) !important;
  font-size: clamp(44px, 2.79vw, 54.6px) !important;
  font-weight: 700 !important;
  line-height: 1.132 !important;
  letter-spacing: .02em !important;
  text-transform: uppercase !important;
  text-align: center !important;
  color: #fff !important;
  white-space: normal !important;
}

.wpi-shop-cta h2 br {
  display: none !important;
}

.wpi-shop-cta h2 span {
  display: block !important;
  color: #d20404 !important;
}

.wpi-shop-cta-copy,
.wpi-shop-cta .wpi-shop-cta-copy {
  width: min(100%, 626px) !important;
  max-width: 626px !important;
  margin: 0 auto 26px !important;
  color: #fff !important;
  font-family: 'Red Hat Display', sans-serif !important;
  font-size: 19.4px !important;
  line-height: 1.5 !important;
  text-align: center !important;
}

.wpi-shop-cta-copy p,
.wpi-shop-cta .wpi-shop-cta-copy p {
  margin: 0 !important;
}

.wpi-shop-cta-copy p + p,
.wpi-shop-cta .wpi-shop-cta-copy p + p {
  margin-top: 19px !important;
}

.wpi-shop-cta-copy strong,
.wpi-shop-cta .wpi-shop-cta-copy strong {
  display: block !important;
  color: #fff !important;
  font-size: 22.1px !important;
  font-weight: 600 !important;
  line-height: 1.315 !important;
}

.wpi-shop-cta .btn,
.wpi-shop-cta .btn.btn-light {
  width: min(100%, 404px) !important;
  min-width: 0 !important;
  min-height: 61px !important;
  margin: 0 auto !important;
  padding: 21.5px 46px 24.5px !important;
  border: 1px solid #fff !important;
  border-radius: 72px !important;
  background: #fff !important;
  color: #000 !important;
  font-family: 'Red Hat Display', sans-serif !important;
  font-size: 12.2px !important;
  line-height: 1.065 !important;
  font-weight: 800 !important;
  letter-spacing: .053em !important;
  text-transform: uppercase !important;
  text-align: center !important;
  box-shadow: none !important;
}

@media (max-width: 767px) {
  .wpi-shop-cta {
    border-top-width: 10px !important;
    border-bottom-width: 10px !important;
  }

  .wpi-shop-cta .container-narrow,
  .wpi-shop-cta-inner {
    width: min(92vw, 34rem) !important;
    min-height: auto !important;
    padding: 3.5rem 0 3.8rem !important;
  }

  .wpi-shop-cta-mark {
    width: 7.4rem !important;
    height: 9.4rem !important;
    min-height: 9.4rem !important;
    margin-bottom: 1.8rem !important;
  }

  .wpi-shop-cta-mark img {
    width: 7.4rem !important;
    height: 9.4rem !important;
    max-width: 7.4rem !important;
    max-height: 9.4rem !important;
  }

  .wpi-shop-cta h2 {
    font-size: clamp(2.55rem, 10vw, 3.25rem) !important;
    line-height: 1.05 !important;
    margin-bottom: 1.3rem !important;
  }

  .wpi-shop-cta-copy,
  .wpi-shop-cta .wpi-shop-cta-copy {
    max-width: 31rem !important;
    font-size: 1.17rem !important;
    line-height: 1.45 !important;
    margin-bottom: 1.55rem !important;
  }

  .wpi-shop-cta-copy strong,
  .wpi-shop-cta .wpi-shop-cta-copy strong {
    font-size: 1.3rem !important;
    line-height: 1.35 !important;
  }

  .wpi-shop-cta .btn,
  .wpi-shop-cta .btn.btn-light {
    width: min(100%, 24rem) !important;
    min-height: 3.65rem !important;
    padding: 1.1rem 1.6rem !important;
    font-size: .76rem !important;
  }
}


/* v1.0.145: Events white-card clearance + mobile non-home hero sizing repair
   Scope: Events page form card and mobile hero typography/buttons only. Homepage hero is intentionally not targeted. */

/* Events page: stop the white form card from cutting into the hero/viewport and restore comfortable padding. */
.wpi-event-page .wpi-event-hero {
  overflow: visible !important;
  min-height: clamp(34rem, 42vw, 49rem) !important;
  padding-bottom: clamp(5rem, 6vw, 7.25rem) !important;
}

.wpi-event-page .wpi-event-hero::before {
  inset: 4.2rem 0 auto !important;
  height: clamp(28rem, 36vw, 41rem) !important;
}

.wpi-event-page .wpi-event-hero-copy {
  padding-top: clamp(2.9rem, 3.4vw, 4.1rem) !important;
  padding-bottom: 0 !important;
}

.wpi-event-page .wpi-event-form-section {
  overflow: visible !important;
  margin-top: -2.75rem !important;
  padding-top: 0 !important;
  padding-bottom: clamp(4rem, 5vw, 7rem) !important;
  position: relative !important;
  z-index: 8 !important;
}

.wpi-event-page .wpi-event-card {
  overflow: visible !important;
  width: min(calc(100% - 3rem), 94.625rem) !important;
  padding: clamp(2.6rem, 3.2vw, 4.15rem) clamp(1.75rem, 4vw, 5rem) clamp(3rem, 3.9vw, 5.1rem) !important;
  border-radius: clamp(1.45rem, 2vw, 2.55rem) !important;
  box-shadow: 0 .5rem .75rem rgba(87,100,126,.18) !important;
}

.wpi-event-page .wpi-event-form,
.wpi-event-page .wpi-event-form-grid,
.wpi-event-page .wpi-event-before-card {
  overflow: visible !important;
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-event-page .wpi-event-hero {
    min-height: 44rem !important;
    padding-bottom: 6rem !important;
  }

  .wpi-event-page .wpi-event-hero-copy {
    padding-top: 3.2rem !important;
  }

  .wpi-event-page .wpi-event-form-section {
    margin-top: -2.25rem !important;
    padding-bottom: 5rem !important;
  }

  .wpi-event-page .wpi-event-card {
    width: min(calc(100% - 2rem), 58rem) !important;
    padding: 2.5rem 1.75rem 3rem !important;
    border-radius: 1.65rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-event-page .wpi-event-hero {
    min-height: auto !important;
    padding-bottom: 4.25rem !important;
    overflow: visible !important;
  }

  .wpi-event-page .wpi-event-hero::before {
    inset: 4rem 0 auto !important;
    height: 26rem !important;
  }

  .wpi-event-page .wpi-event-form-section {
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 3.5rem !important;
    overflow: visible !important;
  }

  .wpi-event-page .wpi-event-card {
    width: min(calc(100% - 1.25rem), 42rem) !important;
    margin-top: 0 !important;
    padding: 1.65rem 1rem 1.9rem !important;
    border-radius: 1.25rem !important;
    box-shadow: 0 .35rem .65rem rgba(87,100,126,.18) !important;
  }

  .wpi-event-page .wpi-event-before-card {
    margin-top: 1.55rem !important;
    padding: 1.15rem .9rem 1rem !important;
    border-radius: .95rem !important;
  }
}

/* Mobile non-home hero type/button alignment using the approved About mobile proportions. */
@media (max-width: 767px) {
  .wpi-sp-hero-content,
  .wpi-gallery-hero-copy,
  .wpi-quote-hero-copy,
  .wpi-event-hero-copy,
  .wpi-shop-hero-copy,
  .wpi-isvc-hero-copy,
  .wpi-standard-hero .container-narrow {
    width: calc(100% - 2.4rem) !important;
    max-width: 31rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  .wpi-sp-hero-content h1,
  .wpi-gallery-hero-copy h1,
  .wpi-quote-hero-copy h1,
  .wpi-event-hero-copy h1,
  .wpi-shop-hero-copy h1,
  .wpi-isvc-hero-copy h1,
  .wpi-standard-hero .container-narrow h1 {
    width: 100% !important;
    max-width: 31rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: clamp(2.65rem, 10.25vw, 3.7rem) !important;
    line-height: 1.03 !important;
    letter-spacing: .015em !important;
    text-wrap: balance !important;
    white-space: normal !important;
  }

  .wpi-isvc-hero-copy h1 span,
  .wpi-sp-hero-content h1 span,
  .wpi-gallery-hero-copy h1 span,
  .wpi-quote-hero-copy h1 span,
  .wpi-shop-hero-copy h1 span,
  .wpi-standard-hero .container-narrow h1 span {
    white-space: normal !important;
  }

  .wpi-sp-hero-content p,
  .wpi-gallery-hero-copy p,
  .wpi-quote-hero-copy p,
  .wpi-event-hero-copy p,
  .wpi-shop-hero-copy p,
  .wpi-isvc-hero-copy p,
  .wpi-standard-hero .container-narrow p {
    width: 100% !important;
    max-width: 29.5rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: 1.14rem !important;
    line-height: 1.72rem !important;
  }

  .wpi-sp-hero-actions,
  .wpi-gallery-hero-actions,
  .wpi-quote-hero-actions,
  .wpi-isvc-actions {
    width: 100% !important;
    max-width: 25rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: .85rem !important;
  }

  .wpi-sp-hero-actions .btn,
  .wpi-gallery-hero-actions .btn,
  .wpi-quote-hero-actions .btn,
  .wpi-isvc-actions .btn {
    width: 100% !important;
    min-width: 0 !important;
    height: 3.55rem !important;
    min-height: 3.55rem !important;
    padding: 0 1.1rem !important;
    font-size: .86rem !important;
    line-height: 1.05 !important;
    justify-content: center !important;
  }

  /* Keep individual service mobile hero from feeling tiny while preserving its media block. */
  .wpi-individual-service-page .wpi-isvc-hero-inner {
    padding-top: 2.6rem !important;
    gap: 2.1rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-copy {
    order: 1 !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-media {
    order: 2 !important;
  }
}


/* v1.0.146: Events white card top-cut real fix
   The Events form card must sit below the hero in normal flow and keep real top padding/rounded corners. */
.wpi-event-page .wpi-event-form-section,
main.wpi-event-page > .wpi-event-form-section,
body .wpi-event-page .wpi-event-form-section {
  position: relative !important;
  z-index: 8 !important;
  overflow: visible !important;
  clear: both !important;
  margin-top: 0 !important;
  padding-top: clamp(1.85rem, 2.2vw, 2.85rem) !important;
  padding-bottom: clamp(4.5rem, 5vw, 7rem) !important;
  background: #000 !important;
}

.wpi-event-page .wpi-event-card,
main.wpi-event-page .wpi-event-card,
body .wpi-event-page .wpi-event-card {
  position: relative !important;
  z-index: 9 !important;
  overflow: visible !important;
  clip-path: none !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
  transform: none !important;
  margin-top: 0 !important;
  background: #fff !important;
  border-radius: clamp(1.55rem, 2.05vw, 2.65rem) !important;
  background-clip: padding-box !important;
  padding-top: clamp(4.25rem, 4.7vw, 5.45rem) !important;
  box-shadow: 0 .55rem 1.1rem rgba(87,100,126,.18) !important;
}

.wpi-event-page .wpi-event-form,
.wpi-event-page .wpi-event-form-grid,
body .wpi-event-page .wpi-event-form,
body .wpi-event-page .wpi-event-form-grid {
  margin-top: 0 !important;
  transform: none !important;
  position: relative !important;
  z-index: 1 !important;
}

/* Keep the desktop hero height close to the current approved look while preventing overlap. */
@media (min-width: 1181px) {
  .wpi-event-page .wpi-event-hero,
  main.wpi-event-page > .wpi-event-hero,
  body .wpi-event-page .wpi-event-hero {
    min-height: clamp(37rem, 39vw, 45rem) !important;
    padding-bottom: 2.25rem !important;
    overflow: visible !important;
  }

  .wpi-event-page .wpi-event-card,
  main.wpi-event-page .wpi-event-card,
  body .wpi-event-page .wpi-event-card {
    width: min(calc(100% - 7.5rem), 94.625rem) !important;
    padding-left: clamp(4.5rem, 5vw, 6rem) !important;
    padding-right: clamp(4.5rem, 5vw, 6rem) !important;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-event-page .wpi-event-form-section,
  main.wpi-event-page > .wpi-event-form-section,
  body .wpi-event-page .wpi-event-form-section {
    margin-top: 0 !important;
    padding-top: 1.7rem !important;
    padding-bottom: 5rem !important;
  }

  .wpi-event-page .wpi-event-card,
  main.wpi-event-page .wpi-event-card,
  body .wpi-event-page .wpi-event-card {
    width: min(calc(100% - 2rem), 58rem) !important;
    border-radius: 1.75rem !important;
    padding-top: 3.25rem !important;
    padding-left: 1.75rem !important;
    padding-right: 1.75rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-event-page .wpi-event-form-section,
  main.wpi-event-page > .wpi-event-form-section,
  body .wpi-event-page .wpi-event-form-section {
    margin-top: 0 !important;
    padding-top: 1.15rem !important;
    padding-bottom: 3.75rem !important;
  }

  .wpi-event-page .wpi-event-card,
  main.wpi-event-page .wpi-event-card,
  body .wpi-event-page .wpi-event-card {
    width: min(calc(100% - 1.25rem), 42rem) !important;
    border-radius: 1.35rem !important;
    padding-top: 2.25rem !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    padding-bottom: 1.9rem !important;
  }
}


/* v1.0.147: Events desktop hero-to-form gap tightening
   Keep v1.0.146 rounded-card fix, but bring the white card closer to the hero copy. */
@media (min-width: 1181px) {
  .wpi-event-page .wpi-event-hero,
  main.wpi-event-page > .wpi-event-hero,
  body .wpi-event-page .wpi-event-hero {
    min-height: clamp(29rem, 31vw, 35rem) !important;
    padding-bottom: .75rem !important;
  }

  .wpi-event-page .wpi-event-form-section,
  main.wpi-event-page > .wpi-event-form-section,
  body .wpi-event-page .wpi-event-form-section {
    margin-top: 0 !important;
    padding-top: .65rem !important;
  }

  .wpi-event-page .wpi-event-card,
  main.wpi-event-page .wpi-event-card,
  body .wpi-event-page .wpi-event-card {
    margin-top: 0 !important;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-event-page .wpi-event-hero,
  main.wpi-event-page > .wpi-event-hero,
  body .wpi-event-page .wpi-event-hero {
    min-height: 38rem !important;
    padding-bottom: 2.75rem !important;
  }

  .wpi-event-page .wpi-event-form-section,
  main.wpi-event-page > .wpi-event-form-section,
  body .wpi-event-page .wpi-event-form-section {
    padding-top: .9rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-event-page .wpi-event-hero,
  main.wpi-event-page > .wpi-event-hero,
  body .wpi-event-page .wpi-event-hero {
    padding-bottom: 2.65rem !important;
  }

  .wpi-event-page .wpi-event-form-section,
  main.wpi-event-page > .wpi-event-form-section,
  body .wpi-event-page .wpi-event-form-section {
    padding-top: .75rem !important;
  }
}


/* v1.0.148: Events card must stay fully white at the top
   Keeps the tightened gap from v1.0.147, but prevents any black hero/section background
   from showing through the top of the form card. */
.wpi-event-page .wpi-event-card,
main.wpi-event-page .wpi-event-card,
body .wpi-event-page .wpi-event-card {
  isolation: isolate !important;
  overflow: hidden !important;
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: clamp(1.55rem, 2.05vw, 2.65rem) !important;
}

.wpi-event-page .wpi-event-card::before,
main.wpi-event-page .wpi-event-card::before,
body .wpi-event-page .wpi-event-card::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  display: block !important;
  pointer-events: none !important;
  background: #fff !important;
  border-radius: inherit !important;
}

.wpi-event-page .wpi-event-card > *,
main.wpi-event-page .wpi-event-card > *,
body .wpi-event-page .wpi-event-card > * {
  position: relative !important;
  z-index: 1 !important;
}

.wpi-event-page .wpi-event-form,
.wpi-event-page .wpi-event-form-grid,
.wpi-event-page .wpi-event-form label,
body .wpi-event-page .wpi-event-form,
body .wpi-event-page .wpi-event-form-grid,
body .wpi-event-page .wpi-event-form label {
  background: transparent !important;
}

@media (min-width: 1181px) {
  .wpi-event-page .wpi-event-card,
  main.wpi-event-page .wpi-event-card,
  body .wpi-event-page .wpi-event-card {
    padding-top: clamp(3.15rem, 3.5vw, 4.25rem) !important;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-event-page .wpi-event-card,
  main.wpi-event-page .wpi-event-card,
  body .wpi-event-page .wpi-event-card {
    border-radius: 1.75rem !important;
    padding-top: 2.75rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-event-page .wpi-event-card,
  main.wpi-event-page .wpi-event-card,
  body .wpi-event-page .wpi-event-card {
    border-radius: 1.35rem !important;
    padding-top: 2rem !important;
  }
}


/* v1.0.149: Events form card black-top overlay removal
   The dark band was coming from the hero/old overlay layer visually crossing the top
   of the white registration card. Keep the approved tight spacing, but force the card
   and its top surface to paint above every hero overlay. */
.wpi-event-page .wpi-event-form-section,
main.wpi-event-page > .wpi-event-form-section,
body .wpi-event-page .wpi-event-form-section {
  position: relative !important;
  z-index: 200 !important;
  isolation: isolate !important;
  background: #000 !important;
  overflow: visible !important;
}

.wpi-event-page .wpi-event-card,
main.wpi-event-page .wpi-event-card,
body .wpi-event-page .wpi-event-card {
  position: relative !important;
  z-index: 210 !important;
  isolation: isolate !important;
  overflow: hidden !important;
  background: #fff !important;
  background-color: #fff !important;
  background-image: none !important;
  color: #0a0a0a !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: 0 .55rem 1.1rem rgba(87,100,126,.18) !important;
}

.wpi-event-page .wpi-event-card::before,
main.wpi-event-page .wpi-event-card::before,
body .wpi-event-page .wpi-event-card::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  display: block !important;
  pointer-events: none !important;
  background: #fff !important;
  background-image: none !important;
  border-radius: inherit !important;
}

.wpi-event-page .wpi-event-card::after,
main.wpi-event-page .wpi-event-card::after,
body .wpi-event-page .wpi-event-card::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  height: 9.5rem !important;
  z-index: 1 !important;
  display: block !important;
  pointer-events: none !important;
  background: #fff !important;
  background-image: none !important;
  border-top-left-radius: inherit !important;
  border-top-right-radius: inherit !important;
}

.wpi-event-page .wpi-event-card > *,
main.wpi-event-page .wpi-event-card > *,
body .wpi-event-page .wpi-event-card > * {
  position: relative !important;
  z-index: 2 !important;
}

.wpi-event-page .wpi-event-form,
.wpi-event-page .wpi-event-form-grid,
.wpi-event-page .wpi-event-form label,
.wpi-event-page .wpi-event-form input,
.wpi-event-page .wpi-event-form select,
.wpi-event-page .wpi-event-form textarea,
body .wpi-event-page .wpi-event-form,
body .wpi-event-page .wpi-event-form-grid,
body .wpi-event-page .wpi-event-form label,
body .wpi-event-page .wpi-event-form input,
body .wpi-event-page .wpi-event-form select,
body .wpi-event-page .wpi-event-form textarea {
  position: relative !important;
  z-index: 3 !important;
}

@media (min-width: 1181px) {
  .wpi-event-page .wpi-event-hero,
  main.wpi-event-page > .wpi-event-hero,
  body .wpi-event-page .wpi-event-hero {
    overflow: hidden !important;
    z-index: 0 !important;
  }

  .wpi-event-page .wpi-event-hero::before,
  main.wpi-event-page > .wpi-event-hero::before,
  body .wpi-event-page .wpi-event-hero::before {
    inset: 4.2rem 0 0 0 !important;
    height: auto !important;
    max-height: none !important;
    z-index: 0 !important;
  }

  .wpi-event-page .wpi-event-hero-copy,
  main.wpi-event-page .wpi-event-hero-copy,
  body .wpi-event-page .wpi-event-hero-copy,
  .wpi-event-page .wpi-global-header,
  main.wpi-event-page .wpi-global-header,
  body .wpi-event-page .wpi-global-header {
    position: relative !important;
    z-index: 2 !important;
  }
}

@media (max-width: 767px) {
  .wpi-event-page .wpi-event-card::after,
  main.wpi-event-page .wpi-event-card::after,
  body .wpi-event-page .wpi-event-card::after {
    height: 6.5rem !important;
  }
}


/* v1.0.151: Safe rollback from v1.0.150 + limited Services dropdown layer fix
   Restores normal page rendering by removing the broad v1.0.150 overflow/contain/z-index patch.
   Keeps this fix limited to the Services dropdown layer only. */
@media (min-width: 1181px) {
  .site-header,
  .site-header.container-wide,
  .wpi-global-header.site-header,
  .site-header.wpi-global-header,
  .wpi-sp-header.site-header,
  .wpi-standard-header.site-header,
  .wpi-isvc-header.site-header,
  .wpi-quote-header.site-header {
    position: relative !important;
    z-index: 300 !important;
    overflow: visible !important;
  }

  .site-header .main-nav,
  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-sp-header .main-nav,
  .wpi-standard-header .main-nav,
  .wpi-isvc-header .main-nav,
  .wpi-quote-header .main-nav {
    position: relative !important;
    z-index: 310 !important;
    overflow: visible !important;
  }

  .site-header .main-nav > .wpi-nav-dropdown,
  .wpi-global-header .main-nav > .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown,
  .wpi-isvc-header .main-nav > .wpi-nav-dropdown,
  .wpi-quote-header .main-nav > .wpi-nav-dropdown {
    position: relative !important;
    z-index: 320 !important;
    overflow: visible !important;
  }

  .site-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-isvc-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-quote-header .main-nav > .wpi-nav-dropdown > .wpi-nav-dropdown-menu {
    z-index: 330 !important;
    overflow: visible !important;
  }
}


/* v1.0.153: Merch mobile hero-only full width text fix
   Scope is limited to the top Merch hero section only. It does not target catalog, CTA/banner, products, or other Merch sections. */
@media (max-width: 767px) {
  main.wpi-shop-page > .wpi-shop-hero .wpi-shop-hero-copy,
  main.wpi-shop-page > .wpi-shop-hero .wpi-shop-hero-copy.container-narrow {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: clamp(1rem, 5vw, 1.35rem) !important;
    padding-right: clamp(1rem, 5vw, 1.35rem) !important;
    box-sizing: border-box !important;
  }

  main.wpi-shop-page > .wpi-shop-hero .wpi-shop-hero-copy h1,
  main.wpi-shop-page > .wpi-shop-hero .wpi-shop-hero-copy p,
  main.wpi-shop-page > .wpi-shop-hero .wpi-shop-hero-copy .eyebrow {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
  }
}


/* v1.0.154: Merch mobile hero subheading width + product grid padding
   Keeps the change scoped to the Merch page. Heading can breathe wider, but the subheading/eyebrow stay readable and not full width. Adds safe mobile padding to the product grid area only. */
@media (max-width: 767px) {
  main.wpi-shop-page > .wpi-shop-hero .wpi-shop-hero-copy,
  main.wpi-shop-page > .wpi-shop-hero .wpi-shop-hero-copy.container-narrow {
    width: 100% !important;
    max-width: none !important;
    padding-left: clamp(1.25rem, 6vw, 1.75rem) !important;
    padding-right: clamp(1.25rem, 6vw, 1.75rem) !important;
    box-sizing: border-box !important;
  }

  main.wpi-shop-page > .wpi-shop-hero .wpi-shop-hero-copy h1 {
    width: 100% !important;
    max-width: 36rem !important;
    box-sizing: border-box !important;
  }

  main.wpi-shop-page > .wpi-shop-hero .wpi-shop-hero-copy p {
    width: auto !important;
    max-width: 30rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box !important;
  }

  main.wpi-shop-page > .wpi-shop-hero .wpi-shop-hero-copy .eyebrow {
    width: auto !important;
    max-width: calc(100% - 1rem) !important;
    align-self: center !important;
    box-sizing: border-box !important;
  }

  main.wpi-shop-page > .wpi-shop-catalog .wpi-shop-layout,
  main.wpi-shop-page > .wpi-shop-catalog .container-wide.wpi-shop-layout {
    padding-left: clamp(1.15rem, 5.5vw, 1.65rem) !important;
    padding-right: clamp(1.15rem, 5.5vw, 1.65rem) !important;
    box-sizing: border-box !important;
  }
}

/* v1.0.155: Cart drawer above mobile hamburger + centralized media/page background support
   Scope: cart drawer z-index only, and no visual layout changes to sections. */
body.wpi-cart-drawer-open .wpi-cart-overlay {
  z-index: 2147483646 !important;
}

body.wpi-cart-drawer-open .wpi-cart-drawer {
  z-index: 2147483647 !important;
}

@media (max-width: 1180px) {
  body.wpi-cart-drawer-open .mobile-menu-toggle,
  body.wpi-cart-drawer-open .site-header .mobile-menu-toggle,
  body.wpi-cart-drawer-open .site-header.wpi-global-header .mobile-menu-toggle {
    z-index: 1 !important;
    pointer-events: none !important;
  }

  body.wpi-cart-drawer-open .site-header .main-nav,
  body.wpi-cart-drawer-open .site-header.wpi-global-header .main-nav {
    pointer-events: none !important;
  }
}

/* v1.0.160: About hero backend background image must display on frontend.
   Earlier non-home hero gradient repairs used !important and could override the
   About page's saved hero image. This restores the saved About/Page Hero image
   while keeping the approved dark overlay/readability treatment. */
.about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg {
  background-color: #050505 !important;
  background-image:
    linear-gradient(180deg, rgba(35,35,35,.62) 0%, rgba(0,0,0,.24) 42%, #050505 100%),
    var(--wpi-about-hero-bg, var(--wpi-page-hero-bg, none)) !important;
  background-size: cover, cover !important;
  background-position: center top, center center !important;
  background-repeat: no-repeat, no-repeat !important;
}

.about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg::before {
  background:
    linear-gradient(180deg, rgba(255,255,255,.035) 0%, rgba(0,0,0,.04) 34%, rgba(0,0,0,.58) 78%, #050505 100%),
    radial-gradient(ellipse at 50% 8%, rgba(210,4,4,.10), rgba(0,0,0,0) 56%) !important;
  opacity: 1 !important;
}

.about-hero-page.wpi-editable-hero.wpi-has-custom-hero-video > .hero-bg-video {
  display: block !important;
  visibility: visible !important;
  opacity: .58 !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  z-index: 0 !important;
}

.about-hero-page.wpi-editable-hero.wpi-has-custom-hero-video {
  background-image:
    linear-gradient(180deg, rgba(35,35,35,.62) 0%, rgba(0,0,0,.24) 42%, #050505 100%) !important;
}

/* v1.0.161: About hero custom image should behave like a normal centered CSS background.
   Scope: About page hero custom background image only. This prevents any stretched/cropped-to-top feel. */
.about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg {
  background-color: #050505 !important;
  background-image:
    linear-gradient(180deg, rgba(35,35,35,.56) 0%, rgba(0,0,0,.20) 44%, #050505 100%),
    var(--wpi-about-hero-bg, var(--wpi-page-hero-bg, none)) !important;
  background-size: auto, cover !important;
  background-position: center center, center center !important;
  background-repeat: no-repeat, no-repeat !important;
}

@media (max-width: 767px) {
  .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg {
    background-size: auto, cover !important;
    background-position: center center, center center !important;
    background-repeat: no-repeat, no-repeat !important;
  }
}


/* v1.0.162: Real About hero image layer.
   Scope: About page hero custom image only.
   Uses an actual absolute background layer so old non-home hero gradients cannot stretch,
   push, or override the uploaded Media Library image. */
.about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg {
  background-color: #050505 !important;
  background-image: none !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  isolation: isolate;
}

.about-hero-page .wpi-about-hero-bg-layer {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  transform: none !important;
  object-fit: initial !important;
  z-index: 0 !important;
  pointer-events: none !important;
}

.about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg::before {
  z-index: 1 !important;
  background:
    linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.30) 52%, #050505 100%),
    linear-gradient(90deg, rgba(0,0,0,.24), rgba(0,0,0,.04), rgba(0,0,0,.24)) !important;
  opacity: 1 !important;
}

.about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg > .announcement,
.about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg > .site-header,
.about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg .about-page-hero-content,
.about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg .about-stats-wrap {
  position: relative !important;
  z-index: 2 !important;
}

@media (max-width: 767px) {
  .about-hero-page .wpi-about-hero-bg-layer {
    background-size: cover !important;
    background-position: center center !important;
  }
}


/* v1.0.163: Verified About hero custom image render.
   Scope: About hero only. The uploaded backend image is now rendered as a real img element
   with object-fit cover/object-position center, with a CSS background fallback. */
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg {
  position: relative !important;
  overflow: hidden !important;
  background-image: none !important;
  background-color: #050505 !important;
}
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg > .wpi-about-hero-bg-layer {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  overflow: hidden !important;
  z-index: 0 !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  transform: none !important;
}
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg > .wpi-about-hero-bg-layer img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  min-width: 100% !important;
  min-height: 100% !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center center !important;
  transform: none !important;
  filter: none !important;
}
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg::before {
  z-index: 1 !important;
}
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg > .announcement,
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg > .site-header,
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg .about-page-hero-content,
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg .about-stats-wrap {
  position: relative !important;
  z-index: 2 !important;
}


/* v1.0.164: About hero custom image is a simple section background.
   Removed the absolute image layer approach. The uploaded Media Library image now lives
   on the hero section itself with cover + center, so it does not stretch or create an
   extra positioned layer above/below the content. */
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg {
  background-size: cover, cover !important;
  background-position: center center, center center !important;
  background-repeat: no-repeat, no-repeat !important;
  transform: none !important;
}
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg > .wpi-about-hero-bg-layer,
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg > .wpi-about-hero-bg-layer img {
  display: none !important;
}
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg::before {
  background:
    linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.22) 48%, rgba(0,0,0,.72) 100%),
    linear-gradient(90deg, rgba(0,0,0,.18), rgba(0,0,0,.02), rgba(0,0,0,.18)) !important;
  opacity: 1 !important;
}


/* v1.0.165: About hero update/version cache-bust confirmation. */
.about-hero-page.wpi-has-custom-hero-bg {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
.about-hero-page.wpi-has-custom-hero-bg::after,
.about-hero-page .wpi-about-hero-bg-layer {
  display: none !important;
}

/* v1.0.166: About hero background image is scoped ONLY to the hero text area.
   The proof/stat cards are now outside the hero section, so the uploaded hero image
   no longer stretches down behind the cards or story sections. */
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg {
  min-height: 0 !important;
  height: auto !important;
  padding-bottom: clamp(4rem, 7vw, 7rem) !important;
  background-size: cover, cover !important;
  background-position: center center, center center !important;
  background-repeat: no-repeat, no-repeat !important;
  overflow: hidden !important;
}

.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg::after {
  display: none !important;
  content: none !important;
}

.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg .about-stats-wrap,
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg .about-stats {
  background-image: none !important;
}

.about-page .about-stats-section {
  position: relative;
  z-index: 3;
  background: #000;
  padding: clamp(3rem, 5vw, 5rem) 0 clamp(4rem, 6vw, 6rem);
  overflow: hidden;
}

.about-page .about-stats-section .about-stats-wrap {
  margin-top: 0 !important;
  position: relative !important;
  z-index: 3 !important;
}

@media (max-width: 767px) {
  .about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg {
    padding-bottom: 3.25rem !important;
  }
  .about-page .about-stats-section {
    padding: 2.5rem 0 3.25rem !important;
  }
  .about-page .about-stats-section .about-stats-wrap {
    width: calc(100% - 1.5rem) !important;
    border-radius: 1.15rem !important;
  }
}



/* ========================================================================== 
   v1.0.168 About page Services submenu stacking fix
   Scope: About page header/dropdown only. The About hero background remains
   hero-only, but the Services dropdown is allowed to sit above the hero copy
   and is no longer clipped/hidden by the About hero layer.
   ========================================================================== */
.about-page .about-hero-page {
  position: relative !important;
  z-index: 20 !important;
  overflow: visible !important;
  isolation: isolate !important;
}

.about-page .about-hero-page::before {
  pointer-events: none !important;
  z-index: 0 !important;
}

.about-page .about-hero-page > .announcement,
.about-page .about-hero-page .about-page-hero-content {
  position: relative !important;
  z-index: 2 !important;
}

.about-page .about-hero-page > .site-header,
.about-page .about-hero-page > .wpi-global-header,
.about-page .about-hero-page > .site-header.wpi-global-header {
  position: relative !important;
  z-index: 999900 !important;
  overflow: visible !important;
  isolation: isolate !important;
}

.about-page .about-hero-page .main-nav,
.about-page .about-hero-page .wpi-global-header .main-nav,
.about-page .about-hero-page .site-header.wpi-global-header .main-nav {
  position: relative !important;
  z-index: 999920 !important;
  overflow: visible !important;
}

.about-page .about-hero-page .wpi-nav-dropdown,
.about-page .about-hero-page .wpi-nav-dropdown:hover,
.about-page .about-hero-page .wpi-nav-dropdown:focus-within,
.about-page .about-hero-page .wpi-nav-dropdown.is-open {
  position: relative !important;
  z-index: 999940 !important;
}

.about-page .about-hero-page .wpi-nav-dropdown-menu {
  z-index: 999950 !important;
}

@media (max-width: 767px) {
  .about-page .about-hero-page .main-nav,
  .about-page .about-hero-page .wpi-global-header .main-nav,
  .about-page .about-hero-page .site-header.wpi-global-header .main-nav {
    z-index: 999930 !important;
    overflow: visible !important;
  }
}


/* ==========================================================================
   v1.0.169 About Services submenu real overlay fix
   The About header lives inside the hero section. On some browsers the normal
   nested dropdown can still paint behind the hero/background stacking context.
   For desktop About only, the real dropdown is displayed through a fixed portal
   attached to <body>, so it always sits above the hero and page sections.
   ========================================================================== */
@media (min-width: 1181px) {
  .about-page .about-hero-page .wpi-nav-dropdown > .wpi-nav-dropdown-menu {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  body .wpi-about-services-dropdown-portal {
    position: fixed !important;
    left: 50%;
    top: 7rem;
    z-index: 2147483647 !important;
    width: min(59rem, calc(100vw - 4rem)) !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(14.75rem, 1fr)) !important;
    gap: .95rem !important;
    padding: 1.35rem !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 1.6rem !important;
    background: linear-gradient(180deg, rgba(16,16,18,.998), rgba(0,0,0,.992)) !important;
    box-shadow: 0 1.85rem 4.25rem rgba(0,0,0,.72), inset 0 1px 0 rgba(255,255,255,.08) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateX(-50%) translateY(.35rem) !important;
    transition: opacity .16s ease, visibility .16s ease, transform .16s ease !important;
  }

  body .wpi-about-services-dropdown-portal.is-visible {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) !important;
  }

  body .wpi-about-services-dropdown-portal a {
    width: 100% !important;
    min-height: 4.15rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding: 1.08rem 1.15rem !important;
    border: 0 !important;
    border-radius: 1rem !important;
    background: transparent !important;
    color: #fff !important;
    font-family: var(--body, 'Red Hat Display', sans-serif) !important;
    font-size: .96rem !important;
    font-weight: 800 !important;
    line-height: 1.28 !important;
    letter-spacing: .052em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    text-decoration: none !important;
    white-space: normal !important;
  }

  body .wpi-about-services-dropdown-portal a:hover,
  body .wpi-about-services-dropdown-portal a:focus-visible {
    background: rgba(210,4,4,.2) !important;
    color: #fff !important;
    outline: none !important;
  }

  body .wpi-about-services-dropdown-portal .wpi-nav-dropdown-cta {
    grid-column: 1 / -1 !important;
    min-height: 3.95rem !important;
    justify-content: center !important;
    margin-top: .35rem !important;
    border-radius: 999px !important;
    background: #d20404 !important;
    font-size: .96rem !important;
    letter-spacing: .06em !important;
  }
}

@media (min-width: 1181px) and (max-width: 1360px) {
  body .wpi-about-services-dropdown-portal {
    width: min(51rem, calc(100vw - 3rem)) !important;
    grid-template-columns: repeat(3, minmax(12.8rem, 1fr)) !important;
    padding: 1.15rem !important;
    gap: .75rem !important;
  }
  body .wpi-about-services-dropdown-portal a {
    min-height: 3.85rem !important;
    font-size: .9rem !important;
    padding: .95rem 1rem !important;
  }
}

@media (max-width: 1180px) {
  body .wpi-about-services-dropdown-portal {
    display: none !important;
  }
  .about-page .about-hero-page > .site-header,
  .about-page .about-hero-page > .site-header.wpi-global-header,
  .about-page .about-hero-page .main-nav {
    z-index: 2147483600 !important;
  }
}


/* ========================================================================== 
   v1.0.170 About page Services submenu real clipping fix
   The About hero custom-bg rule from v1.0.166 was more specific and kept
   overflow:hidden, so the submenu/mobile service list could still be clipped
   under/inside the hero. This final override keeps the hero image scoped to the
   hero while allowing the header/dropdown to paint above it.
   ========================================================================== */
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg,
.about-page .about-hero-page.wpi-has-custom-hero-bg,
.about-page .about-hero-page {
  overflow: visible !important;
  z-index: 30 !important;
}

.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg > .site-header,
.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg > .site-header.wpi-global-header,
.about-page .about-hero-page > .site-header,
.about-page .about-hero-page > .site-header.wpi-global-header {
  position: relative !important;
  z-index: 2147483000 !important;
  overflow: visible !important;
  isolation: auto !important;
}

.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg .main-nav,
.about-page .about-hero-page .main-nav {
  position: relative !important;
  z-index: 2147483001 !important;
  overflow: visible !important;
}

.about-page .about-hero-page.wpi-editable-hero.wpi-has-custom-hero-bg .wpi-nav-dropdown,
.about-page .about-hero-page .wpi-nav-dropdown {
  position: relative !important;
  z-index: 2147483002 !important;
  overflow: visible !important;
}

/* Do not rely on the JS portal. The normal Services dropdown now works because
   the hero no longer clips it. Hide the old portal and restore the real menu. */
@media (min-width: 1181px) {
  body .wpi-about-services-dropdown-portal {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  .about-page .about-hero-page .wpi-nav-dropdown > .wpi-nav-dropdown-menu {
    position: absolute !important;
    display: grid !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    z-index: 2147483003 !important;
  }

  .about-page .about-hero-page .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .about-page .about-hero-page .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .about-page .about-hero-page .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

@media (max-width: 1180px) {
  .about-page .about-hero-page .main-nav,
  body.menu-open .about-page .about-hero-page .main-nav,
  body.wpi-menu-open .about-page .about-hero-page .main-nav {
    z-index: 2147483003 !important;
    overflow: visible !important;
  }

  .about-page .about-hero-page .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .about-page .about-hero-page .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu {
    overflow: visible !important;
    z-index: 2147483004 !important;
  }
}


/* ========================================================================== 
   v1.0.171 Non-home mobile menu portal fix
   The homepage menu was fine, but other page heroes can create overflow/stacking
   contexts. On non-home pages only, the mobile menu is displayed through a
   body-level fixed portal so it cannot disappear behind/inside the hero.
   ========================================================================== */
@media (max-width: 1180px) {
  body.wpi-mobile-portal-ready:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav {
    position: fixed !important;
    top: var(--wpi-mobile-menu-top, 6.9rem) !important;
    left: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    transform: none !important;
    z-index: 2147483645 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    min-width: 100vw !important;
    max-height: calc(100dvh - var(--wpi-mobile-menu-top, 6.9rem) - .75rem) !important;
    box-sizing: border-box !important;
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: .5rem !important;
    padding: 1rem clamp(1rem, 5vw, 1.5rem) 1.25rem !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    border: 0 !important;
    border-radius: 0 0 1.25rem 1.25rem !important;
    background: rgba(0,0,0,.985) !important;
    box-shadow: 0 2rem 4rem rgba(0,0,0,.65) !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    text-align: left !important;
    white-space: normal !important;
  }

  body.wpi-mobile-portal-ready.menu-open:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav,
  body.wpi-mobile-portal-ready.wpi-menu-open:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav {
    display: flex !important;
  }

  body.wpi-mobile-portal-ready:not(.home):not(.front-page) .site-header .main-nav:not(.wpi-mobile-menu-portal),
  body.wpi-mobile-portal-ready:not(.home):not(.front-page) .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal),
  body.wpi-mobile-portal-ready:not(.home):not(.front-page) .wpi-global-header .main-nav:not(.wpi-mobile-menu-portal) {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.wpi-mobile-portal-ready:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav > a,
  body.wpi-mobile-portal-ready:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  body.wpi-mobile-portal-ready:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav .mobile-nav-contact {
    width: 100% !important;
    min-height: 3.45rem !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding: .95rem 1rem !important;
    margin: 0 !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-radius: .95rem !important;
    background: rgba(255,255,255,.045) !important;
    color: #fff !important;
    font-size: .98rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    text-decoration: none !important;
    white-space: normal !important;
  }

  body.wpi-mobile-portal-ready:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav .mobile-nav-contact,
  body.wpi-mobile-portal-ready:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown-cta {
    justify-content: center !important;
    text-align: center !important;
    background: #d20404 !important;
    color: #fff !important;
    border-color: rgba(210,4,4,.6) !important;
  }

  body.wpi-mobile-portal-ready:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown {
    position: static !important;
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.wpi-mobile-portal-ready:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown-row {
    display: flex !important;
    align-items: stretch !important;
    width: 100% !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-radius: .95rem !important;
    background: rgba(255,255,255,.045) !important;
    overflow: hidden !important;
  }

  body.wpi-mobile-portal-ready:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label {
    flex: 1 1 auto !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  body.wpi-mobile-portal-ready:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret {
    flex: 0 0 3.35rem !important;
    width: 3.35rem !important;
    min-height: 3.45rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 0 !important;
    border-left: 1px solid rgba(255,255,255,.13) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #fff !important;
    font-size: .92rem !important;
    cursor: pointer !important;
  }

  body.wpi-mobile-portal-ready:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown-menu {
    position: static !important;
    display: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: .35rem 0 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
  }

  body.wpi-mobile-portal-ready:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu {
    display: block !important;
  }

  body.wpi-mobile-portal-ready:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown-menu a {
    width: 100% !important;
    min-height: 2.72rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding: .72rem 1rem .72rem 1.8rem !important;
    margin: 0 !important;
    border: 0 !important;
    border-left: 2px solid rgba(210,4,4,.48) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: rgba(255,255,255,.84) !important;
    font-size: .9rem !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    white-space: normal !important;
  }
}


/* v1.0.172 Request Quote mobile planning cards height fix
   Keeps the "What Kind of Show Are You Planning?" cards in normal document flow on mobile
   so the white title badges cannot overlap the next card. */
@media (max-width: 767px) {
  .wpi-quote-page .wpi-quote-best-section {
    overflow: visible !important;
    padding-bottom: 4.9rem !important;
  }

  .wpi-quote-page .wpi-quote-best-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.8rem !important;
    margin-bottom: 0 !important;
    overflow: visible !important;
  }

  .wpi-quote-page .wpi-quote-best-card {
    position: relative !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
    min-height: 22.5rem !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 0 1rem !important;
    overflow: hidden !important;
    border-width: 4px !important;
    border-radius: .85rem !important;
    background: #111 !important;
  }

  .wpi-quote-page .wpi-quote-best-card img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .wpi-quote-page .wpi-quote-best-card::after {
    z-index: 1 !important;
    background: linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.46)) !important;
  }

  .wpi-quote-page .wpi-quote-best-card span {
    position: relative !important;
    z-index: 3 !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: rotate(-2deg) !important;
    width: min(calc(100% - 2rem), 18rem) !important;
    min-height: 3.75rem !important;
    margin: 0 auto !important;
    border-width: 5px !important;
    border-radius: 1.35rem !important;
    padding: .7rem .95rem !important;
    font-size: .95rem !important;
    line-height: 1.18 !important;
  }
}

@media (max-width: 390px) {
  .wpi-quote-page .wpi-quote-best-card {
    min-height: 20.5rem !important;
  }

  .wpi-quote-page .wpi-quote-best-card span {
    width: min(calc(100% - 1.6rem), 16.5rem) !important;
    font-size: .9rem !important;
  }
}


/* ========================================================================== 
   v1.0.173 Footer portal hide + submenu comfort fix
   - The cloned inner-page mobile menu must never render after the footer on
     desktop/tablet widths where the mobile overlay is not active.
   - Desktop Services submenu closes naturally after leaving the trigger/menu.
   ========================================================================== */
body > .wpi-mobile-menu-portal.main-nav,
body > nav.wpi-mobile-menu-portal.main-nav,
body > .wpi-mobile-menu-portal {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  position: fixed !important;
  left: -9999px !important;
  top: -9999px !important;
  width: 0 !important;
  height: 0 !important;
  max-width: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
}

@media (max-width: 1180px) {
  body.wpi-mobile-portal-ready.menu-open:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav,
  body.wpi-mobile-portal-ready.wpi-menu-open:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav {
    left: 0 !important;
    top: var(--wpi-mobile-menu-top, 6.9rem) !important;
    width: 100vw !important;
    height: auto !important;
    max-width: 100vw !important;
    max-height: calc(100dvh - var(--wpi-mobile-menu-top, 6.9rem) - .75rem) !important;
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }
}

@media (min-width: 1181px) {
  .wpi-global-header .main-nav .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown,
  .wpi-sp-header .main-nav .wpi-nav-dropdown,
  .wpi-standard-header .main-nav .wpi-nav-dropdown {
    padding-bottom: .75rem !important;
    margin-bottom: -.75rem !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown::after,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown::after,
  .wpi-sp-header .main-nav .wpi-nav-dropdown::after,
  .wpi-standard-header .main-nav .wpi-nav-dropdown::after {
    content: "" !important;
    position: absolute !important;
    left: -1rem !important;
    right: -1rem !important;
    top: 100% !important;
    height: .95rem !important;
    display: block !important;
    background: transparent !important;
    pointer-events: auto !important;
  }
}

/* =========================================================
   v1.0.176 About page tablet-only real layout fix
   Scope: About page tablet widths only. Desktop and mobile are intentionally
   left alone. This converts the problem tablet absolute-positioned blocks into
   normal document flow so headings/cards cannot overflow or collide.
   ========================================================= */
@media (min-width: 768px) and (max-width: 1024px) {
  .about-page,
  .about-page * {
    box-sizing: border-box !important;
  }

  .about-page {
    overflow-x: hidden !important;
  }

  .about-page .container-wide,
  .about-page .container-narrow {
    width: calc(100% - 4rem) !important;
    max-width: none !important;
  }

  .about-page .about-hero-page {
    min-height: 0 !important;
    height: auto !important;
    padding-bottom: 4.25rem !important;
    overflow: visible !important;
  }

  .about-page .about-page-hero-content {
    width: min(calc(100% - 4rem), 52rem) !important;
    max-width: 52rem !important;
    margin: 3.6rem auto 0 !important;
  }

  .about-page .about-page-hero-content h1 {
    max-width: 52rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: clamp(3.15rem, 6.2vw, 4.35rem) !important;
    line-height: 1.05 !important;
    letter-spacing: .012em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .about-page .about-page-hero-content p {
    max-width: 40rem !important;
    font-size: 1.08rem !important;
    line-height: 1.65 !important;
  }

  .about-page .about-stats-section {
    padding: 3.25rem 0 4rem !important;
  }

  .about-page .about-stats-wrap {
    width: calc(100% - 4rem) !important;
    max-width: none !important;
    margin: 0 auto !important;
    padding: 1.65rem !important;
    border-radius: .95rem !important;
  }

  .about-page .about-stats {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }

  .about-page .about-stat-card {
    min-height: 15.5rem !important;
    height: auto !important;
    padding: 1.7rem 1.2rem !important;
    gap: 1rem !important;
  }

  .about-page .about-stat-card h3 {
    max-width: 100% !important;
    font-size: clamp(1.35rem, 2.5vw, 1.8rem) !important;
    line-height: 1.1 !important;
    overflow-wrap: anywhere !important;
  }

  .about-page .about-stat-card p {
    max-width: 21rem !important;
    font-size: .98rem !important;
    line-height: 1.45 !important;
  }

  .about-page .about-story-section {
    padding: 4.25rem 0 4.75rem !important;
    overflow: hidden !important;
  }

  .about-page .about-story {
    width: calc(100% - 4rem) !important;
    max-width: none !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "title title"
      "image copy"
      "badge copy" !important;
    column-gap: 2rem !important;
    row-gap: 1.35rem !important;
    align-items: start !important;
    margin: 0 auto !important;
  }

  .about-page .about-story-title-wrap,
  .about-page .about-story-image,
  .about-page .about-story-copy,
  .about-page .about-story-badge {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .about-page .about-story-title-wrap {
    grid-area: title !important;
  }

  .about-page .about-story-logo {
    width: 6.25rem !important;
    margin-bottom: .95rem !important;
  }

  .about-page .about-story-title-wrap h2 {
    max-width: 44rem !important;
    font-size: clamp(2.55rem, 5vw, 3.55rem) !important;
    line-height: 1.12 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .about-page .about-story-image {
    grid-area: image !important;
    height: clamp(27rem, 45vw, 35rem) !important;
    overflow: hidden !important;
  }

  .about-page .about-story-image img,
  .about-page .about-story-image video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .about-page .about-story-copy {
    grid-area: copy !important;
    align-self: start !important;
    padding-top: .15rem !important;
  }

  .about-page .about-story-copy p {
    margin-bottom: 1rem !important;
    font-size: 1rem !important;
    line-height: 1.58 !important;
  }

  .about-page .about-story-badge {
    grid-area: badge !important;
    width: 15.5rem !important;
    height: 7.25rem !important;
    margin: -.5rem 0 0 .35rem !important;
    border-width: .62rem !important;
    border-radius: 1.25rem !important;
    transform: rotate(-7deg) !important;
  }

  .about-page .about-story-badge span {
    font-size: .82rem !important;
    line-height: 1.12 !important;
  }

  .about-page .about-services-section {
    padding: 4.25rem 0 5rem !important;
    overflow: hidden !important;
  }

  .about-page .about-services-heading {
    width: calc(100% - 4rem) !important;
    max-width: none !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr) !important;
    gap: 1.75rem !important;
    align-items: end !important;
    margin: 0 auto !important;
  }

  .about-page .about-services-heading h2,
  .about-page .about-services-heading p {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .about-page .about-services-heading h2 {
    order: 1 !important;
    font-size: clamp(4.65rem, 10vw, 7.6rem) !important;
    line-height: .88 !important;
    letter-spacing: .012em !important;
    overflow-wrap: anywhere !important;
  }

  .about-page .about-services-heading p {
    order: 2 !important;
    padding-bottom: .35rem !important;
    font-size: 1.02rem !important;
    line-height: 1.58 !important;
  }

  .about-page .about-services-grid {
    width: calc(100% - 4rem) !important;
    max-width: none !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, .95fr) !important;
    gap: 1.5rem !important;
    align-items: stretch !important;
    margin: 2rem auto 0 !important;
  }

  .about-page .about-service-tabs {
    padding-top: 0 !important;
    gap: .65rem !important;
  }

  .about-page .about-service-tab {
    min-height: 4.6rem !important;
    height: auto !important;
    margin: 0 !important;
    padding: 1rem 1.15rem !important;
    border-radius: .95rem !important;
    font-size: clamp(1rem, 2vw, 1.35rem) !important;
    line-height: 1.18 !important;
    overflow-wrap: anywhere !important;
  }

  .about-page .about-service-tab:hover,
  .about-page .about-service-tab:focus,
  .about-page .about-service-tab.active {
    transform: none !important;
  }

  .about-page .about-service-tab b {
    width: 2.25rem !important;
    height: 2.25rem !important;
    flex: 0 0 2.25rem !important;
    font-size: .9rem !important;
  }

  .about-page .about-services-visual {
    width: 100% !important;
    height: auto !important;
    min-height: 25rem !important;
    max-height: 36rem !important;
    align-self: stretch !important;
    justify-self: stretch !important;
  }

  .about-page .about-services-visual img,
  .about-page .about-services-visual video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }
}

@media (min-width: 768px) and (max-width: 860px) {
  .about-page .about-story,
  .about-page .about-services-heading,
  .about-page .about-services-grid {
    grid-template-columns: 1fr !important;
    grid-template-areas: none !important;
  }

  .about-page .about-story-title-wrap,
  .about-page .about-story-image,
  .about-page .about-story-copy,
  .about-page .about-story-badge {
    grid-area: auto !important;
  }

  .about-page .about-services-heading h2,
  .about-page .about-services-heading p {
    order: initial !important;
  }

  .about-page .about-story-image {
    height: 30rem !important;
  }

  .about-page .about-services-visual {
    min-height: 29rem !important;
  }
}

/* =========================================================
   v1.0.177 About page tablet rescue
   Scope: About page tablet / small laptop widths only (768px-1180px).
   Fixes the remaining 1025px-1180px gap where older absolute-positioned
   About sections could still overlap, overflow, or crop incorrectly.
   Desktop above 1180px and mobile below 768px are intentionally untouched.
   ========================================================= */
@media (min-width: 768px) and (max-width: 1180px) {
  .about-page,
  .about-page * {
    box-sizing: border-box !important;
  }

  .about-page {
    overflow-x: hidden !important;
    background: #000 !important;
  }

  .about-page .container-wide,
  .about-page .container-narrow,
  .about-page .about-page-hero-content,
  .about-page .about-stats-wrap,
  .about-page .about-story,
  .about-page .about-services-heading,
  .about-page .about-services-grid,
  .about-page-faq .faq-panel {
    width: calc(100% - 4rem) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .about-page .about-hero-page {
    min-height: 0 !important;
    height: auto !important;
    padding-bottom: 4.25rem !important;
    overflow: hidden !important;
    background-size: cover, cover !important;
    background-position: center center, center center !important;
  }

  .about-page .about-hero-page::after {
    height: 7rem !important;
  }

  .about-page .site-header {
    width: calc(100% - 4rem) !important;
    min-height: 7.4rem !important;
    grid-template-columns: minmax(8.5rem, 12rem) 1fr minmax(8.5rem, 12rem) !important;
    gap: 1rem !important;
  }

  .about-page .site-header .site-logo img,
  .about-page .site-logo img {
    width: 10.5rem !important;
    max-width: 10.5rem !important;
    height: auto !important;
  }

  .about-page .main-nav {
    gap: 1.1rem !important;
    font-size: .86rem !important;
    line-height: 1.4 !important;
    letter-spacing: .045rem !important;
  }

  .about-page .header-contact {
    font-size: .86rem !important;
    line-height: 1.4 !important;
    letter-spacing: .045rem !important;
    text-align: right !important;
  }

  .about-page .about-page-hero-content {
    max-width: 58rem !important;
    margin-top: 3.4rem !important;
    text-align: center !important;
  }

  .about-page .about-page-hero-content h1 {
    width: 100% !important;
    max-width: 58rem !important;
    margin: 2rem auto 1.35rem !important;
    font-size: clamp(3.15rem, 5.6vw, 4.65rem) !important;
    line-height: 1.04 !important;
    letter-spacing: .014em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .about-page .about-page-hero-content p {
    width: min(100%, 43rem) !important;
    max-width: 43rem !important;
    font-size: 1.08rem !important;
    line-height: 1.65 !important;
  }

  .about-page .about-page-hero-content .hero-actions {
    max-width: 100% !important;
    margin-top: 1.8rem !important;
    flex-direction: row !important;
    gap: .9rem !important;
  }

  .about-page .about-page-hero-content .btn {
    width: auto !important;
    min-width: 14.75rem !important;
    min-height: 3.55rem !important;
    padding: 1rem 1.65rem !important;
    font-size: .78rem !important;
  }

  .about-page .about-stats-section {
    padding: 3.1rem 0 4rem !important;
    background: #000 !important;
  }

  .about-page .about-stats-wrap {
    padding: 1.6rem !important;
    border-radius: .95rem !important;
  }

  .about-page .about-stats {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }

  .about-page .about-stat-card {
    min-height: 14.75rem !important;
    height: auto !important;
    padding: 1.65rem 1.25rem !important;
    gap: .95rem !important;
  }

  .about-page .about-stat-card h3 {
    max-width: 100% !important;
    font-size: clamp(1.35rem, 2.25vw, 1.85rem) !important;
    line-height: 1.1 !important;
    overflow-wrap: anywhere !important;
  }

  .about-page .about-stat-card p {
    max-width: 22rem !important;
    font-size: .98rem !important;
    line-height: 1.45 !important;
  }

  .about-page .about-story-section {
    padding: 4.3rem 0 4.75rem !important;
    background: #000 !important;
    overflow: hidden !important;
  }

  .about-page .about-story {
    position: relative !important;
    min-height: 0 !important;
    height: auto !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr) !important;
    grid-template-areas:
      "title title"
      "image copy"
      "badge copy" !important;
    column-gap: 2rem !important;
    row-gap: 1.35rem !important;
    align-items: start !important;
  }

  .about-page .about-story-title-wrap,
  .about-page .about-story-image,
  .about-page .about-story-copy,
  .about-page .about-story-badge {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .about-page .about-story-title-wrap {
    grid-area: title !important;
  }

  .about-page .about-story-logo {
    width: 6rem !important;
    margin: 0 0 .9rem !important;
  }

  .about-page .about-story-title-wrap h2 {
    max-width: 52rem !important;
    font-size: clamp(2.55rem, 4.3vw, 3.55rem) !important;
    line-height: 1.12 !important;
    letter-spacing: -.005em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .about-page .about-story-image {
    grid-area: image !important;
    display: block !important;
    height: clamp(27rem, 36vw, 34rem) !important;
    overflow: hidden !important;
    background: #111 !important;
  }

  .about-page .about-story-image img,
  .about-page .about-story-image video {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .about-page .about-story-copy {
    grid-area: copy !important;
    align-self: start !important;
    padding-top: .1rem !important;
  }

  .about-page .about-story-copy p {
    margin: 0 0 1rem !important;
    font-size: 1rem !important;
    line-height: 1.58 !important;
  }

  .about-page .about-story-badge {
    grid-area: badge !important;
    display: flex !important;
    width: 15.5rem !important;
    height: 7.25rem !important;
    margin: -.45rem 0 0 .35rem !important;
    border-width: .62rem !important;
    border-radius: 1.25rem !important;
    transform: rotate(-7deg) !important;
  }

  .about-page .about-story-badge span {
    font-size: .82rem !important;
    line-height: 1.12 !important;
  }

  .about-page .about-services-section {
    padding: 4.25rem 0 5rem !important;
    overflow: hidden !important;
  }

  .about-page .about-services-heading {
    min-height: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr) !important;
    gap: 1.75rem !important;
    align-items: end !important;
  }

  .about-page .about-services-heading h2,
  .about-page .about-services-heading p {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .about-page .about-services-heading h2 {
    order: 1 !important;
    font-size: clamp(4.65rem, 8.8vw, 7.6rem) !important;
    line-height: .88 !important;
    letter-spacing: .012em !important;
    overflow-wrap: anywhere !important;
  }

  .about-page .about-services-heading p {
    order: 2 !important;
    padding-bottom: .35rem !important;
    font-size: 1.02rem !important;
    line-height: 1.58 !important;
  }

  .about-page .about-services-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, .95fr) !important;
    gap: 1.5rem !important;
    align-items: stretch !important;
    margin-top: 2rem !important;
  }

  .about-page .about-service-tabs {
    padding-top: 0 !important;
    gap: .65rem !important;
  }

  .about-page .about-service-tab {
    min-height: 4.6rem !important;
    height: auto !important;
    margin: 0 !important;
    padding: 1rem 1.15rem !important;
    border-radius: .95rem !important;
    font-size: clamp(1rem, 1.75vw, 1.35rem) !important;
    line-height: 1.18 !important;
    overflow-wrap: anywhere !important;
  }

  .about-page .about-service-tab:hover,
  .about-page .about-service-tab:focus,
  .about-page .about-service-tab.active {
    transform: none !important;
  }

  .about-page .about-service-tab b {
    width: 2.25rem !important;
    height: 2.25rem !important;
    flex: 0 0 2.25rem !important;
    font-size: .9rem !important;
  }

  .about-page .about-services-visual {
    width: 100% !important;
    height: auto !important;
    min-height: 25rem !important;
    max-height: 36rem !important;
    align-self: stretch !important;
    justify-self: stretch !important;
  }

  .about-page .about-services-visual img,
  .about-page .about-services-visual video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  .about-page-faq .faq-panel {
    grid-template-columns: minmax(14rem, .55fr) minmax(0, 1fr) !important;
    gap: 2rem !important;
    padding: 2.25rem !important;
  }

  .about-page-faq .faq-art img,
  .about-page-faq .faq-art video {
    width: min(100%, 22rem) !important;
  }
}

@media (min-width: 768px) and (max-width: 900px) {
  .about-page .site-header {
    grid-template-columns: 10rem auto !important;
  }

  .about-page .main-nav,
  .about-page .header-contact {
    display: none !important;
  }

  .about-page .mobile-menu-toggle {
    display: inline-flex !important;
    justify-self: end !important;
  }

  .about-page .about-page-hero-content .hero-actions {
    width: min(100%, 27rem) !important;
    flex-direction: column !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .about-page .about-page-hero-content .btn {
    width: 100% !important;
    min-width: 0 !important;
  }

  .about-page .about-story,
  .about-page .about-services-heading,
  .about-page .about-services-grid {
    grid-template-columns: 1fr !important;
    grid-template-areas: none !important;
  }

  .about-page .about-story-title-wrap,
  .about-page .about-story-image,
  .about-page .about-story-copy,
  .about-page .about-story-badge {
    grid-area: auto !important;
  }

  .about-page .about-story-title-wrap h2 {
    max-width: 100% !important;
  }

  .about-page .about-story-image {
    height: 30rem !important;
  }

  .about-page .about-services-heading h2,
  .about-page .about-services-heading p {
    order: initial !important;
  }

  .about-page .about-services-visual {
    min-height: 29rem !important;
  }

  .about-page-faq .faq-panel {
    grid-template-columns: 1fr !important;
  }
}

/* =========================================================
   v1.0.178 About page tablet desktop-layout correction
   Scope: About page tablet/small-laptop only (768px-1180px).
   Purpose: keep tablet close to desktop instead of falling into the
   cramped mobile hamburger/header and stacked About layouts.
   ========================================================= */
@media (min-width: 768px) and (max-width: 1180px) {
  .about-page,
  .about-page * {
    box-sizing: border-box !important;
  }

  .about-page {
    overflow-x: hidden !important;
    background: #000 !important;
  }

  .about-page .container-wide,
  .about-page .container-narrow,
  .about-page .about-page-hero-content,
  .about-page .about-stats-wrap,
  .about-page .about-story,
  .about-page .about-services-heading,
  .about-page .about-services-grid,
  .about-page-faq .faq-panel {
    width: calc(100% - 3rem) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Tablet header: desktop-style horizontal header, not hamburger/mobile drawer. */
  .about-page .site-header,
  .about-page .site-header.wpi-global-header,
  .about-page .site-header.wpi-global-header.container-wide {
    position: relative !important;
    z-index: 2147483000 !important;
    width: calc(100% - 3rem) !important;
    max-width: none !important;
    min-height: 6.7rem !important;
    display: grid !important;
    grid-template-columns: clamp(7rem, 10.5vw, 9.6rem) minmax(0, 1fr) auto !important;
    align-items: center !important;
    justify-content: normal !important;
    gap: clamp(.5rem, .9vw, .95rem) !important;
    margin: 0 auto !important;
    padding: .35rem 0 0 !important;
    overflow: visible !important;
    background: transparent !important;
  }

  .about-page .site-logo,
  .about-page .site-header .site-logo,
  .about-page .site-header.wpi-global-header .site-logo {
    width: clamp(7rem, 10.5vw, 9.6rem) !important;
    max-width: clamp(7rem, 10.5vw, 9.6rem) !important;
    min-width: 0 !important;
    justify-self: start !important;
    display: inline-flex !important;
    align-items: center !important;
  }

  .about-page .site-logo img,
  .about-page .site-header .site-logo img,
  .about-page .site-header.wpi-global-header .site-logo img {
    width: clamp(7rem, 10.5vw, 9.6rem) !important;
    max-width: clamp(7rem, 10.5vw, 9.6rem) !important;
    height: auto !important;
    max-height: 3.9rem !important;
    object-fit: contain !important;
    object-position: left center !important;
  }

  .about-page .mobile-menu-toggle,
  .about-page .site-header .mobile-menu-toggle,
  .about-page .site-header.wpi-global-header .mobile-menu-toggle {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .about-page .main-nav,
  .about-page .site-header .main-nav,
  .about-page .site-header.wpi-global-header .main-nav {
    position: static !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    grid-column: 2 !important;
    justify-self: center !important;
    align-self: center !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    max-height: none !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: clamp(.34rem, .72vw, .82rem) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    text-align: center !important;
  }

  .about-page .main-nav > a,
  .about-page .site-header .main-nav > a,
  .about-page .site-header.wpi-global-header .main-nav > a,
  .about-page .main-nav .wpi-nav-dropdown-label,
  .about-page .site-header .main-nav .wpi-nav-dropdown-label,
  .about-page .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-label {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #fff !important;
    box-shadow: none !important;
    font-size: clamp(.55rem, .86vw, .78rem) !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    letter-spacing: .047em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    text-align: center !important;
  }

  .about-page .main-nav .wpi-nav-dropdown,
  .about-page .site-header .main-nav .wpi-nav-dropdown,
  .about-page .site-header.wpi-global-header .main-nav .wpi-nav-dropdown {
    position: relative !important;
    display: inline-flex !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    overflow: visible !important;
  }

  .about-page .main-nav .wpi-nav-dropdown-row,
  .about-page .site-header .main-nav .wpi-nav-dropdown-row,
  .about-page .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row {
    position: static !important;
    display: inline-flex !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .22rem !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    overflow: visible !important;
  }

  .about-page .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .about-page .site-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .about-page .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label {
    flex: 0 0 auto !important;
    padding: 0 !important;
  }

  .about-page .main-nav .wpi-nav-dropdown-caret,
  .about-page .site-header .main-nav .wpi-nav-dropdown-caret,
  .about-page .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-caret {
    position: static !important;
    flex: 0 0 auto !important;
    width: .75rem !important;
    min-width: .75rem !important;
    height: .75rem !important;
    min-height: .75rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #fff !important;
    box-shadow: none !important;
    font-size: .58rem !important;
    line-height: 1 !important;
    opacity: .9 !important;
    transform: none !important;
  }

  .about-page .main-nav .wpi-nav-dropdown-menu,
  .about-page .site-header .main-nav .wpi-nav-dropdown-menu,
  .about-page .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-menu {
    position: absolute !important;
    top: calc(100% + .85rem) !important;
    left: 50% !important;
    right: auto !important;
    width: min(25rem, calc(100vw - 3rem)) !important;
    max-width: min(25rem, calc(100vw - 3rem)) !important;
    min-width: 20rem !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .36rem !important;
    max-height: min(70vh, 34rem) !important;
    margin: 0 !important;
    padding: .8rem !important;
    overflow-y: auto !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    border-radius: 1rem !important;
    background: rgba(0,0,0,.96) !important;
    box-shadow: 0 1.5rem 3rem rgba(0,0,0,.45) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateX(-50%) translateY(.4rem) !important;
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease !important;
  }

  .about-page .main-nav .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
  .about-page .main-nav .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu,
  .about-page .site-header .main-nav .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
  .about-page .site-header .main-nav .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu,
  .about-page .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
  .about-page .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) !important;
  }

  .about-page .main-nav .wpi-nav-dropdown-menu a,
  .about-page .site-header .main-nav .wpi-nav-dropdown-menu a,
  .about-page .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-menu a {
    width: 100% !important;
    min-height: 2.7rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding: .72rem .9rem !important;
    border: 0 !important;
    border-radius: .75rem !important;
    background: rgba(255,255,255,.045) !important;
    color: #fff !important;
    font-size: .82rem !important;
    line-height: 1.2 !important;
    text-align: left !important;
    white-space: normal !important;
  }

  .about-page .main-nav > .wpi-mobile-services-menu,
  .about-page .site-header .main-nav > .wpi-mobile-services-menu,
  .about-page .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .about-page .wpi-header-actions,
  .about-page .site-header .wpi-header-actions,
  .about-page .site-header.wpi-global-header .wpi-header-actions {
    grid-column: 3 !important;
    justify-self: end !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: .38rem !important;
    min-width: 0 !important;
  }

  .about-page .header-contact,
  .about-page .site-header .header-contact,
  .about-page .site-header.wpi-global-header .header-contact,
  .about-page .wpi-header-actions .header-contact,
  .about-page .site-header.wpi-global-header .wpi-header-actions .header-contact {
    min-height: 2.55rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: .72rem .82rem !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    border-radius: 999px !important;
    background: rgba(0,0,0,.24) !important;
    color: #fff !important;
    font-size: clamp(.55rem, .78vw, .72rem) !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: .045em !important;
    text-align: center !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
  }

  .about-page .wpi-header-cart,
  .about-page .site-header .wpi-header-cart,
  .about-page .site-header.wpi-global-header .wpi-header-cart {
    width: 2.55rem !important;
    height: 2.55rem !important;
    min-width: 2.55rem !important;
  }

  .about-page .wpi-header-cart svg {
    width: 1rem !important;
    height: 1rem !important;
  }

  .about-page .wpi-header-cart-count {
    width: 1.18rem !important;
    height: 1.18rem !important;
    min-width: 1.18rem !important;
    font-size: .62rem !important;
    top: -.3rem !important;
    right: -.3rem !important;
  }

  .about-page .about-hero-page {
    min-height: 0 !important;
    height: auto !important;
    padding-bottom: 5.2rem !important;
    overflow: visible !important;
    background-size: cover, cover !important;
    background-position: center center, center center !important;
  }

  .about-page .about-page-hero-content {
    max-width: 62rem !important;
    margin-top: 4rem !important;
    text-align: center !important;
  }

  .about-page .about-page-hero-content h1 {
    width: 100% !important;
    max-width: 62rem !important;
    margin: 2.1rem auto 1.45rem !important;
    font-size: clamp(3.35rem, 5.4vw, 4.9rem) !important;
    line-height: 1.06 !important;
    letter-spacing: .015em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .about-page .about-page-hero-content p {
    width: min(100%, 45rem) !important;
    max-width: 45rem !important;
    font-size: 1.14rem !important;
    line-height: 1.7 !important;
  }

  .about-page .about-page-hero-content .hero-actions {
    width: auto !important;
    max-width: 100% !important;
    margin-top: 2rem !important;
    flex-direction: row !important;
    justify-content: center !important;
    gap: 1rem !important;
  }

  .about-page .about-page-hero-content .btn {
    width: auto !important;
    min-width: 14.5rem !important;
    min-height: 3.6rem !important;
    padding: 1rem 1.65rem !important;
    font-size: .82rem !important;
  }

  .about-page .about-stats-section {
    padding: 3.2rem 0 4.35rem !important;
    background: #000 !important;
  }

  .about-page .about-stats-wrap {
    padding: 1.65rem !important;
    border-radius: .95rem !important;
  }

  .about-page .about-stats {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }

  .about-page .about-stat-card {
    min-height: 14.75rem !important;
    height: auto !important;
    padding: 1.7rem 1.35rem !important;
    gap: 1rem !important;
  }

  .about-page .about-stat-card h3 {
    font-size: clamp(1.35rem, 2.25vw, 1.9rem) !important;
    line-height: 1.1 !important;
  }

  .about-page .about-stat-card p {
    font-size: .98rem !important;
    line-height: 1.46 !important;
  }

  /* About story: preserve the desktop composition with scaled absolute placement. */
  .about-page .about-story-section {
    padding: 5.2rem 0 5.65rem !important;
    background: #000 !important;
    overflow: hidden !important;
  }

  .about-page .about-story {
    position: relative !important;
    display: block !important;
    min-height: clamp(53rem, 66vw, 68rem) !important;
    height: auto !important;
  }

  .about-page .about-story-title-wrap,
  .about-page .about-story-image,
  .about-page .about-story-copy,
  .about-page .about-story-badge {
    position: absolute !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .about-page .about-story-title-wrap {
    top: 0 !important;
    left: clamp(20rem, 34vw, 34rem) !important;
    width: calc(100% - clamp(20rem, 34vw, 34rem)) !important;
    z-index: 3 !important;
  }

  .about-page .about-story-logo {
    width: clamp(4.7rem, 7vw, 6rem) !important;
    margin: 0 0 1rem !important;
  }

  .about-page .about-story-title-wrap h2 {
    max-width: 44rem !important;
    font-size: clamp(2.45rem, 4.2vw, 3.55rem) !important;
    line-height: 1.13 !important;
    letter-spacing: -.005em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .about-page .about-story-image {
    left: 0 !important;
    top: clamp(10rem, 14vw, 14rem) !important;
    width: clamp(28rem, 47vw, 50rem) !important;
    height: clamp(31rem, 48vw, 48rem) !important;
    overflow: hidden !important;
    background: #111 !important;
    z-index: 1 !important;
  }

  .about-page .about-story-image img,
  .about-page .about-story-image video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .about-page .about-story-copy {
    right: 0 !important;
    top: clamp(34rem, 49vw, 48rem) !important;
    width: clamp(22rem, 34vw, 33rem) !important;
    z-index: 4 !important;
  }

  .about-page .about-story-copy p {
    margin: 0 0 1.05rem !important;
    font-size: clamp(1rem, 1.35vw, 1.22rem) !important;
    line-height: 1.55 !important;
  }

  .about-page .about-story-badge {
    left: .5rem !important;
    bottom: 1rem !important;
    width: clamp(13rem, 20vw, 17rem) !important;
    height: clamp(6.45rem, 9vw, 8.8rem) !important;
    display: flex !important;
    transform: rotate(-9deg) !important;
    border-width: clamp(.55rem, .9vw, .82rem) !important;
    border-radius: 1.35rem !important;
    z-index: 4 !important;
  }

  .about-page .about-story-badge span {
    font-size: clamp(.76rem, 1vw, .9rem) !important;
    line-height: 1.15 !important;
  }

  /* About services: desktop-style heading and two-column tab/image layout. */
  .about-page .about-services-section {
    padding: 4.8rem 0 6rem !important;
    overflow: hidden !important;
  }

  .about-page .about-services-heading {
    position: relative !important;
    min-height: clamp(13rem, 18vw, 18rem) !important;
    display: block !important;
  }

  .about-page .about-services-heading h2,
  .about-page .about-services-heading p {
    position: absolute !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .about-page .about-services-heading h2 {
    right: 0 !important;
    top: 0 !important;
    width: auto !important;
    margin: 0 !important;
    font-size: clamp(5rem, 10vw, 9.2rem) !important;
    line-height: .88 !important;
    letter-spacing: .012em !important;
    overflow-wrap: normal !important;
    white-space: nowrap !important;
  }

  .about-page .about-services-heading p {
    left: clamp(0rem, 4vw, 4.8rem) !important;
    top: clamp(7rem, 10vw, 11rem) !important;
    width: clamp(20rem, 36vw, 35rem) !important;
    padding: 0 !important;
    font-size: clamp(1rem, 1.3vw, 1.22rem) !important;
    line-height: 1.58 !important;
  }

  .about-page .about-services-grid {
    display: grid !important;
    grid-template-columns: minmax(0, .98fr) minmax(0, 1fr) !important;
    gap: clamp(1.4rem, 3.2vw, 3.5rem) !important;
    align-items: start !important;
    margin-top: 1.5rem !important;
  }

  .about-page .about-service-tabs {
    order: 1 !important;
    padding-top: .55rem !important;
    gap: 0 !important;
  }

  .about-page .about-service-tab {
    min-height: clamp(4.55rem, 6.3vw, 6.15rem) !important;
    height: auto !important;
    margin-bottom: clamp(-1.25rem, -1.6vw, -.65rem) !important;
    padding: clamp(1rem, 1.65vw, 1.55rem) clamp(1.1rem, 2vw, 2rem) !important;
    border-radius: clamp(.95rem, 1.5vw, 1.45rem) !important;
    font-size: clamp(1.1rem, 2vw, 1.85rem) !important;
    line-height: 1.22 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .about-page .about-service-tab:hover,
  .about-page .about-service-tab:focus,
  .about-page .about-service-tab.active {
    transform: translateX(.2rem) !important;
  }

  .about-page .about-service-tab b {
    width: clamp(2.25rem, 3.2vw, 3rem) !important;
    height: clamp(2.25rem, 3.2vw, 3rem) !important;
    flex: 0 0 clamp(2.25rem, 3.2vw, 3rem) !important;
    font-size: clamp(.9rem, 1.2vw, 1rem) !important;
  }

  .about-page .about-services-visual {
    order: 2 !important;
    width: 100% !important;
    height: clamp(31rem, 43vw, 47rem) !important;
    min-height: 0 !important;
    max-height: none !important;
    justify-self: stretch !important;
    align-self: start !important;
  }

  .about-page .about-services-visual img,
  .about-page .about-services-visual video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .about-page-faq .faq-panel {
    grid-template-columns: minmax(14rem, .58fr) minmax(0, 1fr) !important;
    gap: 2rem !important;
    padding: 2.25rem !important;
  }
}

@media (min-width: 900px) and (max-width: 1180px) {
  .about-page .about-stats {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .about-page .about-stat-card {
    min-height: clamp(17rem, 22vw, 22rem) !important;
    padding-inline: 1rem !important;
  }
}

@media (min-width: 768px) and (max-width: 840px) {
  .about-page .site-header,
  .about-page .site-header.wpi-global-header,
  .about-page .site-header.wpi-global-header.container-wide {
    width: calc(100% - 2rem) !important;
    grid-template-columns: 7rem minmax(0, 1fr) auto !important;
    gap: .42rem !important;
  }

  .about-page .site-logo,
  .about-page .site-logo img,
  .about-page .site-header .site-logo img,
  .about-page .site-header.wpi-global-header .site-logo img {
    width: 7rem !important;
    max-width: 7rem !important;
  }

  .about-page .main-nav,
  .about-page .site-header .main-nav,
  .about-page .site-header.wpi-global-header .main-nav {
    gap: .3rem !important;
  }

  .about-page .main-nav > a,
  .about-page .site-header .main-nav > a,
  .about-page .site-header.wpi-global-header .main-nav > a,
  .about-page .main-nav .wpi-nav-dropdown-label,
  .about-page .site-header .main-nav .wpi-nav-dropdown-label,
  .about-page .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-label {
    font-size: .52rem !important;
    letter-spacing: .035em !important;
  }

  .about-page .header-contact,
  .about-page .site-header .header-contact,
  .about-page .site-header.wpi-global-header .header-contact,
  .about-page .wpi-header-actions .header-contact,
  .about-page .site-header.wpi-global-header .wpi-header-actions .header-contact {
    min-height: 2.35rem !important;
    padding: .66rem .62rem !important;
    font-size: .5rem !important;
    letter-spacing: .032em !important;
  }

  .about-page .wpi-header-cart,
  .about-page .site-header .wpi-header-cart,
  .about-page .site-header.wpi-global-header .wpi-header-cart {
    width: 2.35rem !important;
    height: 2.35rem !important;
    min-width: 2.35rem !important;
  }

  .about-page .about-story {
    min-height: 58rem !important;
  }

  .about-page .about-story-title-wrap {
    left: 19.5rem !important;
    width: calc(100% - 19.5rem) !important;
  }

  .about-page .about-story-image {
    width: 29.5rem !important;
    height: 33.5rem !important;
  }

  .about-page .about-story-copy {
    top: 36.5rem !important;
    width: 23rem !important;
  }
}

/* =========================================================
   v1.0.179 About tablet header size + hamburger correction
   Scope: About page tablet widths only (768px-1180px).
   Purpose: keep the improved v1.0.178 About desktop-style tablet content,
   while making the header readable and restoring the hamburger on portrait tablets.
   ========================================================= */
@media (min-width: 768px) and (max-width: 1180px) {
  .about-page .site-header,
  .about-page .site-header.wpi-global-header,
  .about-page .site-header.wpi-global-header.container-wide {
    min-height: clamp(7.6rem, 9.4vw, 8.9rem) !important;
    width: calc(100% - 3rem) !important;
    grid-template-columns: clamp(9rem, 13.2vw, 13.4rem) minmax(0, 1fr) auto !important;
    gap: clamp(.75rem, 1.25vw, 1.35rem) !important;
    padding-top: .65rem !important;
    align-items: center !important;
  }

  .about-page .site-logo,
  .about-page .site-header .site-logo,
  .about-page .site-header.wpi-global-header .site-logo,
  .about-page .site-logo img,
  .about-page .site-header .site-logo img,
  .about-page .site-header.wpi-global-header .site-logo img {
    width: clamp(9rem, 13.2vw, 13.4rem) !important;
    max-width: clamp(9rem, 13.2vw, 13.4rem) !important;
  }

  .about-page .site-logo img,
  .about-page .site-header .site-logo img,
  .about-page .site-header.wpi-global-header .site-logo img {
    max-height: clamp(4.35rem, 5.4vw, 5.25rem) !important;
  }

  .about-page .wpi-header-actions,
  .about-page .site-header .wpi-header-actions,
  .about-page .site-header.wpi-global-header .wpi-header-actions {
    gap: .58rem !important;
  }

  .about-page .header-contact,
  .about-page .site-header .header-contact,
  .about-page .site-header.wpi-global-header .header-contact,
  .about-page .wpi-header-actions .header-contact,
  .about-page .site-header.wpi-global-header .wpi-header-actions .header-contact {
    min-height: clamp(2.9rem, 3.55vw, 3.35rem) !important;
    padding: .86rem clamp(.95rem, 1.28vw, 1.22rem) !important;
    font-size: clamp(.64rem, .86vw, .82rem) !important;
    letter-spacing: .052em !important;
  }

  .about-page .wpi-header-cart,
  .about-page .site-header .wpi-header-cart,
  .about-page .site-header.wpi-global-header .wpi-header-cart {
    width: clamp(2.9rem, 3.55vw, 3.35rem) !important;
    height: clamp(2.9rem, 3.55vw, 3.35rem) !important;
    min-width: clamp(2.9rem, 3.55vw, 3.35rem) !important;
  }

  .about-page .wpi-header-cart svg {
    width: 1.15rem !important;
    height: 1.15rem !important;
  }

  .about-page .main-nav > a,
  .about-page .site-header .main-nav > a,
  .about-page .site-header.wpi-global-header .main-nav > a,
  .about-page .main-nav .wpi-nav-dropdown-label,
  .about-page .site-header .main-nav .wpi-nav-dropdown-label,
  .about-page .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-label {
    font-size: clamp(.66rem, .88vw, .86rem) !important;
    letter-spacing: .052em !important;
  }

  .about-page .main-nav,
  .about-page .site-header .main-nav,
  .about-page .site-header.wpi-global-header .main-nav {
    gap: clamp(.55rem, .9vw, 1rem) !important;
  }
}

/* Portrait tablets: use the clean desktop-like header shell, but open nav with hamburger. */
@media (min-width: 768px) and (max-width: 900px) {
  .about-page .site-header,
  .about-page .site-header.wpi-global-header,
  .about-page .site-header.wpi-global-header.container-wide {
    width: calc(100% - 2.4rem) !important;
    min-height: 8.4rem !important;
    grid-template-columns: minmax(9.6rem, auto) 1fr auto !important;
    gap: .85rem !important;
    padding-top: .7rem !important;
  }

  .about-page .site-logo,
  .about-page .site-header .site-logo,
  .about-page .site-header.wpi-global-header .site-logo,
  .about-page .site-logo img,
  .about-page .site-header .site-logo img,
  .about-page .site-header.wpi-global-header .site-logo img {
    width: clamp(9.6rem, 19vw, 11.5rem) !important;
    max-width: clamp(9.6rem, 19vw, 11.5rem) !important;
  }

  .about-page .site-logo img,
  .about-page .site-header .site-logo img,
  .about-page .site-header.wpi-global-header .site-logo img {
    max-height: 5.1rem !important;
  }

  .about-page .site-header .main-nav,
  .about-page .site-header.wpi-global-header .main-nav,
  body.menu-open .about-page .site-header .main-nav,
  body.wpi-menu-open .about-page .site-header .main-nav,
  body.menu-open .about-page .site-header.wpi-global-header .main-nav,
  body.wpi-menu-open .about-page .site-header.wpi-global-header .main-nav {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  .about-page .mobile-menu-toggle,
  .about-page .site-header .mobile-menu-toggle,
  .about-page .site-header.wpi-global-header .mobile-menu-toggle,
  .about-page .wpi-header-actions .mobile-menu-toggle,
  .about-page .site-header.wpi-global-header .wpi-header-actions .mobile-menu-toggle {
    width: 3.75rem !important;
    height: 3.75rem !important;
    min-width: 3.75rem !important;
    min-height: 3.75rem !important;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    z-index: 2147483646 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(255,255,255,.78) !important;
    border-radius: 50% !important;
    background: rgba(0,0,0,.38) !important;
    color: #fff !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
  }

  .about-page .mobile-menu-toggle span,
  .about-page .mobile-menu-toggle span::before,
  .about-page .mobile-menu-toggle span::after,
  .about-page .site-header .mobile-menu-toggle span,
  .about-page .site-header .mobile-menu-toggle span::before,
  .about-page .site-header .mobile-menu-toggle span::after,
  .about-page .site-header.wpi-global-header .mobile-menu-toggle span,
  .about-page .site-header.wpi-global-header .mobile-menu-toggle span::before,
  .about-page .site-header.wpi-global-header .mobile-menu-toggle span::after {
    width: 1.55rem !important;
    height: 2px !important;
    background: currentColor !important;
  }

  .about-page .mobile-menu-toggle span,
  .about-page .site-header .mobile-menu-toggle span,
  .about-page .site-header.wpi-global-header .mobile-menu-toggle span {
    position: relative !important;
    display: block !important;
  }

  .about-page .mobile-menu-toggle span::before,
  .about-page .mobile-menu-toggle span::after,
  .about-page .site-header .mobile-menu-toggle span::before,
  .about-page .site-header .mobile-menu-toggle span::after,
  .about-page .site-header.wpi-global-header .mobile-menu-toggle span::before,
  .about-page .site-header.wpi-global-header .mobile-menu-toggle span::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    display: block !important;
    transition: top .2s ease, transform .2s ease, opacity .2s ease !important;
  }

  .about-page .mobile-menu-toggle span::before,
  .about-page .site-header .mobile-menu-toggle span::before,
  .about-page .site-header.wpi-global-header .mobile-menu-toggle span::before {
    top: -.52rem !important;
  }

  .about-page .mobile-menu-toggle span::after,
  .about-page .site-header .mobile-menu-toggle span::after,
  .about-page .site-header.wpi-global-header .mobile-menu-toggle span::after {
    top: .52rem !important;
  }

  body.menu-open .about-page .mobile-menu-toggle span,
  body.wpi-menu-open .about-page .mobile-menu-toggle span,
  body.menu-open .about-page .site-header .mobile-menu-toggle span,
  body.wpi-menu-open .about-page .site-header .mobile-menu-toggle span,
  body.menu-open .about-page .site-header.wpi-global-header .mobile-menu-toggle span,
  body.wpi-menu-open .about-page .site-header.wpi-global-header .mobile-menu-toggle span {
    background: transparent !important;
  }

  body.menu-open .about-page .mobile-menu-toggle span::before,
  body.wpi-menu-open .about-page .mobile-menu-toggle span::before,
  body.menu-open .about-page .site-header .mobile-menu-toggle span::before,
  body.wpi-menu-open .about-page .site-header .mobile-menu-toggle span::before,
  body.menu-open .about-page .site-header.wpi-global-header .mobile-menu-toggle span::before,
  body.wpi-menu-open .about-page .site-header.wpi-global-header .mobile-menu-toggle span::before {
    top: 0 !important;
    transform: rotate(45deg) !important;
  }

  body.menu-open .about-page .mobile-menu-toggle span::after,
  body.wpi-menu-open .about-page .mobile-menu-toggle span::after,
  body.menu-open .about-page .site-header .mobile-menu-toggle span::after,
  body.wpi-menu-open .about-page .site-header .mobile-menu-toggle span::after,
  body.menu-open .about-page .site-header.wpi-global-header .mobile-menu-toggle span::after,
  body.wpi-menu-open .about-page .site-header.wpi-global-header .mobile-menu-toggle span::after {
    top: 0 !important;
    transform: rotate(-45deg) !important;
  }

  .about-page .wpi-header-actions,
  .about-page .site-header .wpi-header-actions,
  .about-page .site-header.wpi-global-header .wpi-header-actions {
    grid-column: 3 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: .55rem !important;
    justify-self: end !important;
  }

  .about-page .header-contact,
  .about-page .site-header .header-contact,
  .about-page .site-header.wpi-global-header .header-contact,
  .about-page .wpi-header-actions .header-contact,
  .about-page .site-header.wpi-global-header .wpi-header-actions .header-contact {
    min-height: 3.1rem !important;
    padding: .88rem .95rem !important;
    font-size: .68rem !important;
    display: inline-flex !important;
  }

  .about-page .wpi-header-cart,
  .about-page .site-header .wpi-header-cart,
  .about-page .site-header.wpi-global-header .wpi-header-cart {
    width: 3.1rem !important;
    height: 3.1rem !important;
    min-width: 3.1rem !important;
  }

  body.wpi-mobile-portal-ready.menu-open.about-page > .wpi-mobile-menu-portal.main-nav,
  body.wpi-mobile-portal-ready.wpi-menu-open.about-page > .wpi-mobile-menu-portal.main-nav {
    top: var(--wpi-mobile-menu-top, 8.9rem) !important;
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

/* Wider tablets: keep desktop-style nav, but stop making the header tiny. */
@media (min-width: 901px) and (max-width: 1180px) {
  .about-page .mobile-menu-toggle,
  .about-page .site-header .mobile-menu-toggle,
  .about-page .site-header.wpi-global-header .mobile-menu-toggle {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .about-page .site-header,
  .about-page .site-header.wpi-global-header,
  .about-page .site-header.wpi-global-header.container-wide {
    grid-template-columns: clamp(10rem, 12.5vw, 13.4rem) minmax(0, 1fr) auto !important;
  }
}


/* =========================================================
   v1.0.180 Global tablet header + all-page tablet QA pass
   Scope: designed tablet widths only (768px-1180px).
   Purpose: use the approved About-page tablet header/layout behavior globally
   and prevent tablet-only overflow/compression on every designed page.
   Desktop above 1180px and mobile below 768px are intentionally untouched.
   ========================================================= */
@media (min-width: 768px) and (max-width: 1180px) {
  body {
    overflow-x: hidden !important;
  }

  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header.container-wide,
  .site-header.wpi-global-header.wpi-standard-header,
  .site-header.wpi-global-header.wpi-standard-header.container-wide {
    width: calc(100% - 3rem) !important;
    max-width: 103.5rem !important;
    min-height: clamp(7.6rem, 9.4vw, 8.9rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-top: .65rem !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    display: grid !important;
    grid-template-columns: clamp(9rem, 13.2vw, 13.4rem) minmax(0, 1fr) auto !important;
    gap: clamp(.75rem, 1.25vw, 1.35rem) !important;
    align-items: center !important;
    position: relative !important;
    z-index: 2147483000 !important;
  }

  .site-header.wpi-global-header .site-logo,
  .site-header.wpi-global-header .site-logo img,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .site-logo,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .site-logo img {
    width: clamp(9rem, 13.2vw, 13.4rem) !important;
    max-width: clamp(9rem, 13.2vw, 13.4rem) !important;
    min-width: 0 !important;
    height: auto !important;
    justify-self: start !important;
  }

  .site-header.wpi-global-header .site-logo img,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .site-logo img {
    max-height: clamp(4.35rem, 5.4vw, 5.25rem) !important;
    object-fit: contain !important;
  }

  .site-header.wpi-global-header .wpi-header-actions,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .wpi-header-actions {
    grid-column: 3 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: .58rem !important;
    justify-self: end !important;
    min-width: 0 !important;
  }

  .site-header.wpi-global-header .header-contact,
  .site-header.wpi-global-header .wpi-header-actions .header-contact,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .header-contact,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .wpi-header-actions .header-contact {
    min-height: clamp(2.9rem, 3.55vw, 3.35rem) !important;
    padding: .86rem clamp(.95rem, 1.28vw, 1.22rem) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 999px !important;
    font-size: clamp(.64rem, .86vw, .82rem) !important;
    line-height: 1 !important;
    letter-spacing: .052em !important;
    white-space: nowrap !important;
    text-align: center !important;
  }

  .site-header.wpi-global-header .wpi-header-cart,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .wpi-header-cart {
    width: clamp(2.9rem, 3.55vw, 3.35rem) !important;
    height: clamp(2.9rem, 3.55vw, 3.35rem) !important;
    min-width: clamp(2.9rem, 3.55vw, 3.35rem) !important;
    min-height: clamp(2.9rem, 3.55vw, 3.35rem) !important;
    flex: 0 0 auto !important;
  }

  .site-header.wpi-global-header .wpi-header-cart svg {
    width: 1.15rem !important;
    height: 1.15rem !important;
  }

  .site-header.wpi-global-header .main-nav,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .main-nav {
    min-width: 0 !important;
    max-width: 100% !important;
    gap: clamp(.55rem, .9vw, 1rem) !important;
    justify-self: center !important;
    overflow: visible !important;
  }

  .site-header.wpi-global-header .main-nav > a,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-label,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .main-nav > a,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-label {
    font-size: clamp(.66rem, .88vw, .86rem) !important;
    line-height: 1.15 !important;
    letter-spacing: .052em !important;
    white-space: nowrap !important;
  }

  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-caret {
    flex: 0 0 auto !important;
  }

  .site-header.wpi-global-header,
  .wpi-quote-hero .site-header.wpi-global-header,
  .wpi-event-hero .site-header.wpi-global-header,
  .wpi-gallery-hero .site-header.wpi-global-header,
  .wpi-shop-hero .site-header.wpi-global-header,
  .wpi-cart-hero .site-header.wpi-global-header,
  .wpi-checkout-hero .site-header.wpi-global-header,
  .wpi-thankyou-hero .site-header.wpi-global-header,
  .wpi-product-hero .site-header.wpi-global-header,
  .wpi-sp-topbar .site-header.wpi-global-header {
    color: #fff !important;
  }
}

/* Portrait tablet: approved About behavior, now global. Header stays clean, menu opens from hamburger. */
@media (min-width: 768px) and (max-width: 900px) {
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header.container-wide,
  .site-header.wpi-global-header.wpi-standard-header,
  .site-header.wpi-global-header.wpi-standard-header.container-wide {
    width: calc(100% - 2.4rem) !important;
    min-height: 8.4rem !important;
    grid-template-columns: minmax(9.6rem, auto) 1fr auto !important;
    gap: .85rem !important;
    padding-top: .7rem !important;
  }

  .site-header.wpi-global-header .site-logo,
  .site-header.wpi-global-header .site-logo img,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .site-logo,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .site-logo img {
    width: clamp(9.6rem, 19vw, 11.5rem) !important;
    max-width: clamp(9.6rem, 19vw, 11.5rem) !important;
  }

  .site-header.wpi-global-header .site-logo img {
    max-height: 5.1rem !important;
  }

  .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal),
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal),
  body.menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal),
  body.wpi-menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  .site-header.wpi-global-header .mobile-menu-toggle,
  .site-header.wpi-global-header .wpi-header-actions .mobile-menu-toggle,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .mobile-menu-toggle,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .wpi-header-actions .mobile-menu-toggle {
    width: 3.75rem !important;
    height: 3.75rem !important;
    min-width: 3.75rem !important;
    min-height: 3.75rem !important;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    z-index: 2147483646 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(255,255,255,.78) !important;
    border-radius: 50% !important;
    background: rgba(0,0,0,.38) !important;
    color: #fff !important;
    cursor: pointer !important;
    touch-action: manipulation !important;
  }

  .site-header.wpi-global-header .mobile-menu-toggle span,
  .site-header.wpi-global-header .mobile-menu-toggle span::before,
  .site-header.wpi-global-header .mobile-menu-toggle span::after {
    width: 1.55rem !important;
    height: 2px !important;
    background: currentColor !important;
  }

  .site-header.wpi-global-header .mobile-menu-toggle span {
    position: relative !important;
    display: block !important;
  }

  .site-header.wpi-global-header .mobile-menu-toggle span::before,
  .site-header.wpi-global-header .mobile-menu-toggle span::after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    display: block !important;
    transition: top .2s ease, transform .2s ease, opacity .2s ease !important;
  }

  .site-header.wpi-global-header .mobile-menu-toggle span::before { top: -.52rem !important; }
  .site-header.wpi-global-header .mobile-menu-toggle span::after { top: .52rem !important; }

  body.menu-open .site-header.wpi-global-header .mobile-menu-toggle span,
  body.wpi-menu-open .site-header.wpi-global-header .mobile-menu-toggle span {
    background: transparent !important;
  }
  body.menu-open .site-header.wpi-global-header .mobile-menu-toggle span::before,
  body.wpi-menu-open .site-header.wpi-global-header .mobile-menu-toggle span::before {
    top: 0 !important;
    transform: rotate(45deg) !important;
  }
  body.menu-open .site-header.wpi-global-header .mobile-menu-toggle span::after,
  body.wpi-menu-open .site-header.wpi-global-header .mobile-menu-toggle span::after {
    top: 0 !important;
    transform: rotate(-45deg) !important;
  }

  .site-header.wpi-global-header .wpi-header-actions,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .wpi-header-actions {
    gap: .55rem !important;
  }

  .site-header.wpi-global-header .header-contact,
  .site-header.wpi-global-header .wpi-header-actions .header-contact {
    min-height: 3.1rem !important;
    padding: .88rem .95rem !important;
    font-size: .68rem !important;
    display: inline-flex !important;
  }

  .site-header.wpi-global-header .wpi-header-cart {
    width: 3.1rem !important;
    height: 3.1rem !important;
    min-width: 3.1rem !important;
  }

  body:not(.wpi-mobile-portal-ready).menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal),
  body:not(.wpi-mobile-portal-ready).wpi-menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal) {
    position: absolute !important;
    top: calc(100% + .55rem) !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 2147483645 !important;
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: .5rem !important;
    padding: 1rem !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 1.25rem !important;
    background: rgba(0,0,0,.985) !important;
    box-shadow: 0 1.5rem 3rem rgba(0,0,0,.42) !important;
    text-align: left !important;
    white-space: normal !important;
  }

  body:not(.wpi-mobile-portal-ready).menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal) > a,
  body:not(.wpi-mobile-portal-ready).menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal) .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  body:not(.wpi-mobile-portal-ready).menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal) .mobile-nav-contact,
  body:not(.wpi-mobile-portal-ready).wpi-menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal) > a,
  body:not(.wpi-mobile-portal-ready).wpi-menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal) .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  body:not(.wpi-mobile-portal-ready).wpi-menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal) .mobile-nav-contact {
    width: 100% !important;
    min-height: 3.35rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding: .9rem 1rem !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-radius: .9rem !important;
    background: rgba(255,255,255,.045) !important;
    color: #fff !important;
    font-size: .96rem !important;
    line-height: 1.2 !important;
    text-align: left !important;
    white-space: normal !important;
  }

  body.wpi-mobile-portal-ready.menu-open:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav,
  body.wpi-mobile-portal-ready.wpi-menu-open:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav {
    top: var(--wpi-mobile-menu-top, 8.9rem) !important;
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

/* Wider tablet: true desktop-style header on every page; do not let the mobile portal hide the nav. */
@media (min-width: 901px) and (max-width: 1180px) {
  .site-header.wpi-global-header .mobile-menu-toggle,
  .site-header.wpi-global-header .wpi-header-actions .mobile-menu-toggle,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .mobile-menu-toggle {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header.container-wide,
  .site-header.wpi-global-header.wpi-standard-header,
  .site-header.wpi-global-header.wpi-standard-header.container-wide {
    grid-template-columns: clamp(10rem, 12.5vw, 13.4rem) minmax(0, 1fr) auto !important;
  }

  body.wpi-mobile-portal-ready:not(.home):not(.front-page) .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal),
  body.wpi-mobile-portal-ready:not(.home):not(.front-page) :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page) .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal),
  .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal) {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body > .wpi-mobile-menu-portal.main-nav,
  body > nav.wpi-mobile-menu-portal.main-nav,
  body > .wpi-mobile-menu-portal {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
}

/* All designed pages: tablet QA safeguards for content sections, grids, hero copy, forms, and shop/product layouts. */
@media (min-width: 768px) and (max-width: 1180px) {
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page, .wpi-standard-page) *,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page, .wpi-standard-page) *::before,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page, .wpi-standard-page) *::after {
    box-sizing: border-box !important;
  }

  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page, .wpi-standard-page) {
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }

  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page, .wpi-standard-page) .container-wide,
  :is(.site-page, .about-page, .wpi-services-page, .wpi-gallery-page, .wpi-quote-page, .wpi-event-page, .wpi-shop-page, .wpi-individual-service-page, .wpi-cart-page, .wpi-checkout-page, .wpi-thankyou-page, .wpi-single-product-page, .wpi-standard-page) .container-narrow {
    width: min(calc(100% - 3rem), 103.5rem) !important;
    max-width: min(calc(100% - 3rem), 103.5rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  :is(.hero-section, .about-hero-page, .wpi-sp-hero, .wpi-isvc-hero, .wpi-gallery-hero, .wpi-quote-hero, .wpi-event-hero, .wpi-shop-hero, .wpi-cart-hero, .wpi-checkout-hero, .wpi-thankyou-hero, .wpi-standard-hero) {
    overflow: hidden !important;
  }

  :is(.hero-content, .about-page-hero-content, .wpi-sp-hero-content, .wpi-isvc-hero-copy, .wpi-gallery-hero-copy, .wpi-quote-hero-copy, .wpi-event-hero-copy, .wpi-shop-hero-copy, .wpi-cart-hero-copy, .wpi-checkout-hero-copy, .wpi-thankyou-hero-copy) h1 {
    max-width: min(100%, 64rem) !important;
    font-size: clamp(3.25rem, 5.4vw, 4.75rem) !important;
    line-height: .98 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  :is(.hero-content, .about-page-hero-content, .wpi-sp-hero-content, .wpi-isvc-hero-copy, .wpi-gallery-hero-copy, .wpi-quote-hero-copy, .wpi-event-hero-copy, .wpi-shop-hero-copy, .wpi-cart-hero-copy, .wpi-checkout-hero-copy, .wpi-thankyou-hero-copy) p {
    max-width: min(100%, 48rem) !important;
    font-size: clamp(1.05rem, 1.55vw, 1.28rem) !important;
    line-height: 1.48 !important;
  }

  :is(.hero-actions, .wpi-sp-hero-actions, .wpi-isvc-actions, .wpi-gallery-hero-actions, .wpi-quote-hero-actions, .wpi-thankyou-actions) {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 1rem !important;
  }

  :is(.hero-actions, .wpi-sp-hero-actions, .wpi-isvc-actions, .wpi-gallery-hero-actions, .wpi-quote-hero-actions, .wpi-thankyou-actions) .btn,
  :is(.hero-actions, .wpi-sp-hero-actions, .wpi-isvc-actions, .wpi-gallery-hero-actions, .wpi-quote-hero-actions, .wpi-thankyou-actions) a {
    width: auto !important;
    min-width: min(17rem, 42vw) !important;
    max-width: 100% !important;
  }

  .wpi-services-page .wpi-sp-service-grid,
  .wpi-services-page .wpi-sp-why-cards,
  .wpi-individual-service-page .wpi-isvc-factor-grid,
  .wpi-individual-service-page .wpi-isvc-best-grid,
  .wpi-individual-service-page .wpi-isvc-why-cards,
  .wpi-quote-page .wpi-quote-factor-grid,
  .wpi-quote-page .wpi-quote-steps-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: clamp(1.25rem, 2.2vw, 2.5rem) !important;
  }

  .wpi-quote-page .wpi-quote-form-layout {
    grid-template-columns: minmax(16rem, .82fr) minmax(0, 1.18fr) !important;
    gap: clamp(2rem, 3vw, 3.2rem) !important;
  }

  .wpi-quote-page .wpi-quote-best-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
  }

  .wpi-gallery-page .wpi-gallery-grid {
    columns: 2 18rem !important;
    column-gap: 1rem !important;
  }

  .wpi-gallery-page .wpi-gallery-filter-wrap,
  .wpi-shop-page .wpi-shop-filter-group {
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }

  .wpi-shop-page .wpi-shop-layout {
    grid-template-columns: minmax(12rem, 14rem) minmax(0, 1fr) !important;
    gap: clamp(1.5rem, 3vw, 2.6rem) !important;
  }

  .wpi-shop-page .wpi-shop-grid,
  .wpi-single-product-page .wpi-shop-grid,
  .wpi-product-related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: clamp(1rem, 2vw, 1.5rem) !important;
    row-gap: 2.4rem !important;
  }

  .wpi-shop-page .wpi-shop-product-media,
  .wpi-single-product-page .wpi-shop-product-media {
    min-height: clamp(18rem, 28vw, 23rem) !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-inner,
  .wpi-individual-service-page .wpi-isvc-intro-grid,
  .wpi-individual-service-page .wpi-isvc-unique-grid,
  .wpi-single-product-page .wpi-product-info-grid,
  .wpi-single-product-page .wpi-sp-info-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: clamp(1.5rem, 3vw, 3rem) !important;
  }

  .wpi-single-product-page .wpi-sp-trust-row,
  .wpi-single-product-page .wpi-sp-benefits-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .wpi-cart-page .wpi-cart-card,
  .wpi-checkout-page .wpi-checkout-card,
  .wpi-thankyou-page .wpi-thankyou-card,
  .wpi-standard-page .wpi-standard-content {
    width: min(calc(100% - 3rem), 94rem) !important;
    max-width: min(calc(100% - 3rem), 94rem) !important;
    padding: clamp(1.6rem, 2.7vw, 2.4rem) !important;
    border-radius: clamp(1.35rem, 2vw, 2rem) !important;
  }

  .wpi-cart-page table.shop_table,
  .wpi-checkout-page table.shop_table,
  .wpi-thankyou-page table.shop_table {
    max-width: 100% !important;
  }

  .wpi-cart-page table.shop_table th,
  .wpi-cart-page table.shop_table td,
  .wpi-checkout-page table.shop_table th,
  .wpi-checkout-page table.shop_table td,
  .wpi-thankyou-page table.shop_table th,
  .wpi-thankyou-page table.shop_table td {
    white-space: normal !important;
  }
}

@media (min-width: 768px) and (max-width: 900px) {
  .wpi-quote-page .wpi-quote-form-layout,
  .wpi-individual-service-page .wpi-isvc-hero-inner,
  .wpi-individual-service-page .wpi-isvc-intro-grid,
  .wpi-individual-service-page .wpi-isvc-unique-grid,
  .wpi-single-product-page .wpi-product-info-grid,
  .wpi-single-product-page .wpi-sp-info-grid {
    grid-template-columns: 1fr !important;
  }

  .wpi-shop-page .wpi-shop-layout {
    grid-template-columns: 1fr !important;
  }

  .wpi-shop-page .wpi-shop-sidebar {
    width: 100% !important;
    max-width: 100% !important;
  }

  .wpi-shop-page .wpi-shop-filter-group {
    display: flex !important;
    gap: .75rem !important;
  }

  .wpi-services-page .wpi-sp-service-grid,
  .wpi-services-page .wpi-sp-why-cards,
  .wpi-individual-service-page .wpi-isvc-factor-grid,
  .wpi-individual-service-page .wpi-isvc-best-grid,
  .wpi-individual-service-page .wpi-isvc-why-cards,
  .wpi-quote-page .wpi-quote-factor-grid,
  .wpi-quote-page .wpi-quote-steps-row,
  .wpi-quote-page .wpi-quote-best-grid,
  .wpi-shop-page .wpi-shop-grid,
  .wpi-single-product-page .wpi-shop-grid,
  .wpi-product-related-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .wpi-gallery-page .wpi-gallery-faq-panel.faq-panel,
  .about-page-faq .faq-panel,
  .faq-panel,
  .wpi-sp-faq-panel,
  .wpi-global-faq-panel {
    grid-template-columns: 1fr !important;
  }
}

/* ========================================================================== 
   v1.0.183 Final QA fixes: global dropdown clipping, admin-requested media
   options, quote cost background, merch hero/banner, cart/checkout hero bg.
   ========================================================================== */

/* Header dropdown must never be clipped by page hero wrappers. */
:is(.hero-section, .about-hero-page, .wpi-sp-hero, .wpi-isvc-hero, .wpi-gallery-hero, .wpi-quote-hero, .wpi-event-hero, .wpi-shop-hero, .wpi-cart-hero, .wpi-checkout-hero, .wpi-thankyou-hero, .wpi-standard-hero).wpi-editable-hero,
:is(.wpi-gallery-page, .wpi-event-page, .wpi-shop-page, .wpi-quote-page, .wpi-cart-page, .wpi-checkout-page, .wpi-services-page, .wpi-individual-service-page) :is(.wpi-gallery-hero, .wpi-event-hero, .wpi-shop-hero, .wpi-quote-hero, .wpi-cart-hero, .wpi-checkout-hero, .wpi-sp-hero, .wpi-isvc-hero) {
  overflow: visible !important;
}

.site-header.wpi-global-header,
.site-header.wpi-global-header.container-wide,
.site-header.wpi-global-header .main-nav,
.site-header.wpi-global-header .wpi-nav-dropdown {
  overflow: visible !important;
  position: relative !important;
}

.site-header.wpi-global-header {
  z-index: 100500 !important;
}

.site-header.wpi-global-header .main-nav {
  z-index: 100510 !important;
}

.site-header.wpi-global-header .wpi-nav-dropdown-menu {
  z-index: 100520 !important;
}

/* Wider tablets use the same proper desktop dropdown behavior instead of the cramped accordion menu. */
@media (min-width: 901px) and (max-width: 1180px) {
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown {
    width: auto !important;
    min-width: 0 !important;
    display: inline-flex !important;
    grid-template-columns: none !important;
    align-items: center !important;
    gap: .35rem !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .site-header.wpi-global-header .wpi-nav-dropdown-label {
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .site-header.wpi-global-header .wpi-nav-dropdown-caret {
    display: inline-flex !important;
    width: 1.65rem !important;
    height: 1.65rem !important;
    min-width: 1.65rem !important;
    min-height: 1.65rem !important;
    border: 1px solid rgba(255,255,255,.24) !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.08) !important;
    color: #fff !important;
    font-size: .72rem !important;
    line-height: 1 !important;
  }

  .site-header.wpi-global-header .wpi-nav-dropdown-menu {
    position: absolute !important;
    left: 50% !important;
    top: calc(100% + .8rem) !important;
    width: min(49rem, calc(100vw - 2rem)) !important;
    max-width: calc(100vw - 2rem) !important;
    max-height: min(72vh, 34rem) !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(11.5rem, 1fr)) !important;
    gap: .7rem !important;
    margin: 0 !important;
    padding: 1rem !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    border-radius: 1.35rem !important;
    background: linear-gradient(180deg, rgba(16,16,18,.99), rgba(0,0,0,.985)) !important;
    box-shadow: 0 1.4rem 3.2rem rgba(0,0,0,.52) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateX(-50%) translateY(.35rem) !important;
    transition: opacity .18s ease, visibility .18s ease, transform .18s ease !important;
  }

  .site-header.wpi-global-header .wpi-nav-dropdown:hover .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown:focus-within .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-menu {
    max-height: min(72vh, 34rem) !important;
    padding: 1rem !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) !important;
  }

  .site-header.wpi-global-header .wpi-nav-dropdown-menu a {
    min-height: 3.35rem !important;
    padding: .82rem .9rem !important;
    border-radius: .9rem !important;
    background: rgba(255,255,255,.045) !important;
    color: #fff !important;
    font-size: .78rem !important;
    line-height: 1.22 !important;
    letter-spacing: .045em !important;
    white-space: normal !important;
  }

  .site-header.wpi-global-header .wpi-nav-dropdown-menu .wpi-nav-dropdown-cta {
    grid-column: 1 / -1 !important;
  }
}

/* Portrait-tablet/mobile drawer: allow the opened services list to show fully instead of being cut. */
@media (max-width: 900px) {
  body > .wpi-mobile-menu-portal.main-nav,
  body.menu-open .main-nav,
  body.wpi-menu-open .main-nav {
    max-height: calc(100vh - 1.5rem) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  .site-header.wpi-global-header .wpi-nav-dropdown,
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown {
    overflow: visible !important;
  }

  .site-header.wpi-global-header .wpi-nav-dropdown.is-open .wpi-nav-dropdown-menu,
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-menu {
    max-height: 70vh !important;
    overflow-y: auto !important;
  }
}

/* Event CTA icon is now replaceable from Gutenberg. */
.wpi-event-help-mark,
.wpi-shop-cta-mark {
  overflow: visible !important;
}

.wpi-event-help-mark img,
.wpi-event-help-mark video,
.wpi-shop-cta-mark img,
.wpi-shop-cta-mark video {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

.wpi-event-help-mark-fallback,
.wpi-shop-cta-mark-fallback {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
}

/* Quote cost card background image/video option replaces the old red dots when set. */
.wpi-quote-cost-card.has-custom-bg {
  background: #050505 !important;
  color: #fff !important;
  overflow: hidden !important;
  isolation: isolate !important;
}

.wpi-quote-cost-card.has-custom-bg::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  background-image: linear-gradient(90deg, rgba(0,0,0,.84), rgba(0,0,0,.42)), var(--wpi-quote-cost-bg, none) !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  pointer-events: none !important;
}

.wpi-quote-cost-card.has-custom-bg::after {
  display: none !important;
  content: none !important;
}

.wpi-quote-cost-bg-media,
.wpi-quote-cost-bg-media img,
.wpi-quote-cost-bg-media video {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  pointer-events: none !important;
}

.wpi-quote-cost-card.has-custom-bg .wpi-quote-cost-bg-media::after {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: linear-gradient(90deg, rgba(0,0,0,.84), rgba(0,0,0,.42)) !important;
  pointer-events: none !important;
}

.wpi-quote-cost-card.has-custom-bg .wpi-quote-cost-head,
.wpi-quote-cost-card.has-custom-bg .wpi-quote-factor-grid {
  position: relative !important;
  z-index: 2 !important;
}

.wpi-quote-cost-card.has-custom-bg .wpi-quote-cost-head p,
.wpi-quote-cost-card.has-custom-bg .wpi-quote-factor p {
  color: rgba(255,255,255,.86) !important;
}

.wpi-quote-cost-card.has-custom-bg .wpi-quote-factor h3 {
  color: #fff !important;
}

.wpi-quote-cost-card.has-custom-bg .wpi-quote-factor h3::after {
  background: rgba(255,255,255,.08) !important;
}

/* Merch hero: slightly taller, background-ready, and the H1 stays as two clean lines. */
.wpi-shop-page .wpi-shop-hero,
.wpi-shop-page .wpi-shop-hero.wpi-editable-hero {
  min-height: 58rem !important;
}

.wpi-shop-page .wpi-shop-hero-copy h1 span {
  display: block !important;
}

.wpi-shop-page .wpi-shop-hero-copy h1 {
  max-width: min(100%, 68rem) !important;
}

/* Merch CTA banner rem cleanup and editable icon support. */
.wpi-shop-cta {
  border-top-width: .95rem !important;
  border-bottom-width: .95rem !important;
}

.wpi-shop-cta-inner {
  width: min(92vw, 64rem) !important;
  min-height: 43rem !important;
  padding: 5rem 0 !important;
}

.wpi-shop-cta-mark {
  width: 9.3rem !important;
  height: 7rem !important;
  margin-bottom: .25rem !important;
}

.wpi-shop-cta h2 {
  margin: 0 0 1.5rem !important;
  font-size: clamp(3rem, 3.7vw, 4.05rem) !important;
  line-height: .95 !important;
}

.wpi-shop-cta-copy,
.wpi-shop-cta .wpi-shop-cta-copy {
  max-width: 40rem !important;
  font-size: 1.22rem !important;
  line-height: 1.5 !important;
}

.wpi-shop-cta-copy strong,
.wpi-shop-cta .wpi-shop-cta-copy strong {
  font-size: 1.4rem !important;
}

.wpi-shop-cta .btn {
  margin-top: 1.6rem !important;
  min-width: 24rem !important;
}

/* Cart/checkout hero background image option. */
.wpi-cart-hero.wpi-editable-hero,
.wpi-checkout-hero.wpi-editable-hero {
  background-image: var(--wpi-page-hero-bg, none) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

.wpi-cart-hero.wpi-editable-hero::before,
.wpi-checkout-hero.wpi-editable-hero::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background: linear-gradient(180deg, rgba(10,10,10,.76) 0%, rgba(0,0,0,.28) 48%, #000 100%), radial-gradient(ellipse at center top, rgba(210,4,4,.18), rgba(0,0,0,0) 56%) !important;
}

@media (max-width: 767px) {
  .wpi-shop-page .wpi-shop-hero,
  .wpi-shop-page .wpi-shop-hero.wpi-editable-hero {
    min-height: auto !important;
  }

  .wpi-shop-cta-inner {
    min-height: auto !important;
    padding: 4.2rem 0 !important;
  }

  .wpi-shop-cta .btn {
    min-width: 0 !important;
  }
}

/* ========================================================================== 
   v1.0.184 Double-check release: Woo shop editor detection + real shop hero bg
   ========================================================================== */

/* WooCommerce Shop / Merch hero: allow the Gutenberg background image variable
   to actually win over older forced gradient repairs. */
.wpi-shop-page .wpi-shop-hero.wpi-editable-hero {
  min-height: clamp(46rem, 50vw, 58rem) !important;
  background-color: #050505 !important;
  background-image:
    linear-gradient(180deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.32) 46%, #000 100%),
    var(--wpi-page-hero-bg, radial-gradient(ellipse at 50% -14%, rgba(150,150,150,.26) 0%, rgba(88,88,88,.18) 28%, rgba(0,0,0,0) 62%)),
    linear-gradient(180deg, #333333 0%, #252525 19%, #141414 58%, #050505 100%) !important;
  background-size: cover, cover, cover !important;
  background-position: center center, center center, center top !important;
  background-repeat: no-repeat !important;
}

.wpi-shop-page .wpi-shop-hero.wpi-editable-hero::before {
  background:
    radial-gradient(ellipse at 50% 0%, rgba(210,4,4,.18), rgba(0,0,0,0) 58%),
    linear-gradient(180deg, rgba(255,255,255,.045) 0%, rgba(0,0,0,.08) 34%, rgba(0,0,0,.52) 74%, #050505 100%) !important;
}

.wpi-shop-page .wpi-shop-hero-copy h1 {
  max-width: min(100%, 68rem) !important;
  text-wrap: balance !important;
}

.wpi-shop-page .wpi-shop-hero-copy h1 span {
  display: block !important;
}

/* Keep the Like What You See banner fully rem-based at the winning specificity. */
.wpi-shop-cta .container-narrow,
.wpi-shop-cta-inner {
  width: min(92vw, 64rem) !important;
  min-height: 43rem !important;
  max-width: 64rem !important;
  padding: 5rem 0 !important;
}

.wpi-shop-cta-mark,
.wpi-shop-cta .wpi-shop-cta-mark {
  width: 9.3rem !important;
  height: 7rem !important;
  min-height: 7rem !important;
  margin: 0 auto .25rem !important;
}

.wpi-shop-cta-mark img,
.wpi-shop-cta .wpi-shop-cta-mark img,
.wpi-shop-cta-mark video,
.wpi-shop-cta .wpi-shop-cta-mark video {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
}

.wpi-shop-cta h2,
.wpi-shop-cta .container-narrow h2 {
  margin: 0 0 1.5rem !important;
  font-size: clamp(3rem, 3.7vw, 4.05rem) !important;
  line-height: .95 !important;
}

.wpi-shop-cta-copy,
.wpi-shop-cta .wpi-shop-cta-copy {
  max-width: 40rem !important;
  margin: 0 auto 1.6rem !important;
  font-size: 1.22rem !important;
  line-height: 1.5 !important;
}

.wpi-shop-cta-copy p + p,
.wpi-shop-cta .wpi-shop-cta-copy p + p {
  margin-top: 1.2rem !important;
}

.wpi-shop-cta-copy strong,
.wpi-shop-cta .wpi-shop-cta-copy strong {
  font-size: 1.4rem !important;
  line-height: 1.32 !important;
}

.wpi-shop-cta .btn,
.wpi-shop-cta .btn.btn-light {
  width: auto !important;
  min-width: 24rem !important;
  min-height: 3.8rem !important;
  margin: 0 auto !important;
  padding: 1.25rem 2.8rem !important;
  border-radius: 4.5rem !important;
  font-size: .78rem !important;
}

/* Cart and checkout: keep image backgrounds visible over older non-home hero rules. */
.wpi-cart-hero.wpi-editable-hero,
.wpi-checkout-hero.wpi-editable-hero {
  background-color: #050505 !important;
  background-image:
    linear-gradient(180deg, rgba(10,10,10,.76) 0%, rgba(0,0,0,.28) 48%, #000 100%),
    var(--wpi-page-hero-bg, linear-gradient(180deg, #333333 0%, #141414 58%, #050505 100%)) !important;
  background-size: cover, cover !important;
  background-position: center center, center center !important;
  background-repeat: no-repeat !important;
}

/* Extra dropdown insurance for Gallery/Event/Shop page wrappers. */
.wpi-gallery-page,
.wpi-event-page,
.wpi-shop-page,
.wpi-quote-page,
.wpi-cart-page,
.wpi-checkout-page,
.wpi-standard-page,
.wpi-services-page,
.wpi-individual-service-page {
  overflow: visible !important;
}

.wpi-global-header,
.wpi-global-header *:has(> .wpi-nav-dropdown-menu),
.wpi-global-header .main-nav,
.wpi-global-header .wpi-nav-dropdown,
.wpi-global-header .wpi-nav-dropdown-row {
  overflow: visible !important;
}

@media (max-width: 767px) {
  .wpi-shop-page .wpi-shop-hero.wpi-editable-hero {
    min-height: auto !important;
    padding-bottom: 3.4rem !important;
  }

  .wpi-shop-cta .container-narrow,
  .wpi-shop-cta-inner {
    width: min(92vw, 34rem) !important;
    min-height: auto !important;
    padding: 4.2rem 0 !important;
  }

  .wpi-shop-cta-mark,
  .wpi-shop-cta .wpi-shop-cta-mark {
    width: 7.4rem !important;
    height: 5.75rem !important;
    min-height: 5.75rem !important;
    margin-bottom: 1.8rem !important;
  }

  .wpi-shop-cta .btn,
  .wpi-shop-cta .btn.btn-light {
    min-width: 0 !important;
    width: min(100%, 24rem) !important;
  }
}

/* ========================================================================== 
   v1.0.185 Focused client fixes
   1) Merch hero is only slightly taller, not full screen.
   2) Merch "Like What You See?" CTA now uses the Portfolio/Gallery CTA layout.
   3) Services dropdown paints from the viewport on tablet/desktop so page heroes
      cannot clip it, and mobile portal lists scroll normally instead of cutting.
   ========================================================================== */

/* Merch hero: undo the oversized 58rem rule from v1.0.184. */
.wpi-shop-page .wpi-shop-hero,
.wpi-shop-page .wpi-shop-hero.wpi-editable-hero {
  min-height: clamp(45.75rem, 41vw, 48rem) !important;
  height: auto !important;
  padding-bottom: clamp(4rem, 4.8vw, 5.3rem) !important;
}

.wpi-shop-page .wpi-shop-hero-copy {
  padding-top: clamp(3.4rem, 4.2vw, 4.8rem) !important;
}

.wpi-shop-page .wpi-shop-hero-copy h1 {
  max-width: min(100%, 62rem) !important;
}

/* Shop CTA now intentionally borrows the exact gallery/portfolio CTA structure. */
.wpi-shop-portfolio-cta.wpi-gallery-cta {
  background: #000 !important;
  color: #fff !important;
  border-top: .95rem solid #fff !important;
  border-bottom: .95rem solid #fff !important;
  position: relative !important;
  overflow: hidden !important;
}

.wpi-shop-portfolio-cta .wpi-gallery-cta-inner {
  min-height: 43rem !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  padding: 5rem 0 !important;
}

.wpi-shop-portfolio-cta .wpi-gallery-cta-icon {
  width: 11.5rem !important;
  height: 11.5rem !important;
  margin-bottom: .4rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.wpi-shop-portfolio-cta .wpi-gallery-cta-icon img,
.wpi-shop-portfolio-cta .wpi-gallery-cta-icon video {
  max-width: 100% !important;
  max-height: 100% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
}

.wpi-shop-portfolio-cta .wpi-gallery-cta-icon:empty::before {
  content: "⌁" !important;
  color: #d20404 !important;
  font-size: 5.6rem !important;
  line-height: 1 !important;
}

.wpi-shop-portfolio-cta h2 {
  font-family: var(--font-heading, "Clash Display", sans-serif) !important;
  font-size: clamp(3rem, 4vw, 4.1rem) !important;
  line-height: .96 !important;
  letter-spacing: .02em !important;
  text-transform: uppercase !important;
  margin: 0 0 1.6rem !important;
  color: #fff !important;
}

.wpi-shop-portfolio-cta h2 span {
  display: block !important;
  color: #d20404 !important;
}

.wpi-shop-portfolio-cta .wpi-gallery-cta-copy {
  font-family: "Red Hat Display", sans-serif !important;
  font-size: 1.32rem !important;
  line-height: 1.5 !important;
  max-width: 45rem !important;
  color: rgba(255,255,255,.86) !important;
  margin-bottom: 2rem !important;
}

.wpi-shop-portfolio-cta .wpi-gallery-cta-copy p {
  margin: .3rem 0 !important;
}

.wpi-shop-portfolio-cta .wpi-gallery-cta-copy strong {
  font-size: 1.5rem !important;
  color: #fff !important;
}

.wpi-shop-portfolio-cta .btn-light-wide {
  min-width: 27rem !important;
}

/* Disable old shop CTA rules for the new portfolio-style section. */
.wpi-shop-portfolio-cta .wpi-shop-cta-inner,
.wpi-shop-portfolio-cta .wpi-shop-cta-mark,
.wpi-shop-portfolio-cta .wpi-shop-cta-copy {
  all: unset;
}

/* Dropdown clipping fix: tablet/desktop Services menu is fixed to viewport using
   JS-calculated variables, so Gallery/Event/Shop hero overflow cannot cut it. */
@media (min-width: 901px) {
  html,
  body,
  #content,
  .wpi-site-root,
  .wpi-global-header,
  .site-header.wpi-global-header,
  .site-header.wpi-global-header .main-nav,
  .site-header.wpi-global-header .wpi-nav-dropdown,
  .site-header.wpi-global-header .wpi-nav-dropdown-row {
    overflow: visible !important;
  }

  .site-header.wpi-global-header .wpi-nav-dropdown-menu,
  .wpi-global-header.site-header .wpi-nav-dropdown-menu,
  .wpi-sp-header.site-header .wpi-nav-dropdown-menu,
  .wpi-standard-header.site-header .wpi-nav-dropdown-menu {
    position: fixed !important;
    top: var(--wpi-services-menu-top, 6.9rem) !important;
    left: var(--wpi-services-menu-left, 50vw) !important;
    right: auto !important;
    bottom: auto !important;
    width: min(59rem, calc(100vw - 2rem)) !important;
    max-width: calc(100vw - 2rem) !important;
    max-height: var(--wpi-services-menu-maxh, calc(100dvh - 8rem)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    z-index: 2147483600 !important;
    transform: translateX(-50%) translateY(.45rem) !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  .site-header.wpi-global-header .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-global-header.site-header .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-global-header.site-header .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-global-header.site-header .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-sp-header.site-header .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-sp-header.site-header .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-sp-header.site-header .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-standard-header.site-header .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-standard-header.site-header .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-standard-header.site-header .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateX(-50%) translateY(0) !important;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .site-header.wpi-global-header .wpi-nav-dropdown-menu,
  .wpi-global-header.site-header .wpi-nav-dropdown-menu,
  .wpi-sp-header.site-header .wpi-nav-dropdown-menu,
  .wpi-standard-header.site-header .wpi-nav-dropdown-menu {
    width: min(49rem, calc(100vw - 2rem)) !important;
    grid-template-columns: repeat(3, minmax(11.5rem, 1fr)) !important;
  }
}

/* Portrait tablet/mobile: scroll the full body-level drawer, not an inner clipped list. */
@media (max-width: 900px) {
  body.wpi-mobile-portal-ready.menu-open:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav,
  body.wpi-mobile-portal-ready.wpi-menu-open:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav,
  body.menu-open > .wpi-mobile-menu-portal.main-nav,
  body.wpi-menu-open > .wpi-mobile-menu-portal.main-nav {
    max-height: calc(100dvh - var(--wpi-mobile-menu-top, 6.9rem) - .5rem) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-bottom: 2rem !important;
  }

  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu {
    max-height: none !important;
    overflow: visible !important;
  }
}

@media (max-width: 767px) {
  .wpi-shop-page .wpi-shop-hero,
  .wpi-shop-page .wpi-shop-hero.wpi-editable-hero {
    min-height: 0 !important;
    padding-bottom: 2.8rem !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy {
    padding-top: 2.2rem !important;
  }

  .wpi-shop-portfolio-cta .wpi-gallery-cta-inner {
    min-height: auto !important;
    padding: 4rem 0 !important;
  }

  .wpi-shop-portfolio-cta .wpi-gallery-cta-icon {
    width: 8.5rem !important;
    height: 8.5rem !important;
  }

  .wpi-shop-portfolio-cta h2 {
    font-size: 3.25rem !important;
  }

  .wpi-shop-portfolio-cta .wpi-gallery-cta-copy {
    font-size: 1.35rem !important;
    max-width: 31rem !important;
  }

  .wpi-shop-portfolio-cta .btn-light-wide {
    min-width: 0 !important;
    width: auto !important;
  }
}

/* ========================================================================== 
   v1.0.186 Client correction: normal dropdown placement + compact centered Merch hero
   - Reverts v1.0.185 viewport/fixed dropdown positioning because placement was wrong.
   - Keeps dropdown above page heroes by fixing overflow/z-index only.
   - Reduces Merch hero height again and vertically centers hero copy in the remaining space.
   ========================================================================== */

/* Normal Services dropdown placement: anchored under the menu item, not the viewport. */
@media (min-width: 901px) {
  html,
  body,
  #page,
  #content,
  .site,
  .wpi-site-root,
  .wpi-page,
  .wpi-page-wrap,
  .wpi-global-header,
  .site-header.wpi-global-header,
  .site-header.wpi-global-header .main-nav,
  .site-header.wpi-global-header .wpi-nav-dropdown,
  .site-header.wpi-global-header .wpi-nav-dropdown-row,
  .wpi-global-header.site-header,
  .wpi-global-header.site-header .main-nav,
  .wpi-global-header.site-header .wpi-nav-dropdown,
  .wpi-sp-header.site-header,
  .wpi-standard-header.site-header {
    overflow: visible !important;
  }

  .wpi-shop-page,
  .wpi-gallery-page,
  .wpi-event-page,
  .wpi-quote-page,
  .wpi-cart-page,
  .wpi-checkout-page,
  .wpi-services-page,
  .wpi-individual-service-page,
  .wpi-standard-page,
  .wpi-shop-hero,
  .wpi-gallery-hero,
  .wpi-event-hero,
  .wpi-quote-hero,
  .wpi-cart-hero,
  .wpi-checkout-hero,
  .wpi-services-hero,
  .wpi-isvc-hero,
  .wpi-standard-hero {
    overflow: visible !important;
  }

  .site-header.wpi-global-header,
  .wpi-global-header.site-header,
  .wpi-sp-header.site-header,
  .wpi-standard-header.site-header {
    position: relative !important;
    z-index: 999900 !important;
    isolation: isolate !important;
  }

  .site-header.wpi-global-header .main-nav,
  .wpi-global-header.site-header .main-nav,
  .wpi-sp-header.site-header .main-nav,
  .wpi-standard-header.site-header .main-nav {
    position: relative !important;
    z-index: 999920 !important;
    overflow: visible !important;
  }

  .site-header.wpi-global-header .wpi-nav-dropdown,
  .wpi-global-header.site-header .wpi-nav-dropdown,
  .wpi-sp-header.site-header .wpi-nav-dropdown,
  .wpi-standard-header.site-header .wpi-nav-dropdown {
    position: relative !important;
    z-index: 999930 !important;
    overflow: visible !important;
  }

  .site-header.wpi-global-header .wpi-nav-dropdown-menu,
  .wpi-global-header.site-header .wpi-nav-dropdown-menu,
  .wpi-sp-header.site-header .wpi-nav-dropdown-menu,
  .wpi-standard-header.site-header .wpi-nav-dropdown-menu {
    position: absolute !important;
    top: calc(100% + .32rem) !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    width: min(59rem, calc(100vw - 4rem)) !important;
    max-width: calc(100vw - 4rem) !important;
    max-height: none !important;
    overflow: visible !important;
    transform: translateX(-50%) translateY(.45rem) !important;
    z-index: 999950 !important;
  }

  .site-header.wpi-global-header .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-global-header.site-header .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-global-header.site-header .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-global-header.site-header .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-sp-header.site-header .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-sp-header.site-header .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-sp-header.site-header .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-standard-header.site-header .wpi-nav-dropdown:hover > .wpi-nav-dropdown-menu,
  .wpi-standard-header.site-header .wpi-nav-dropdown:focus-within > .wpi-nav-dropdown-menu,
  .wpi-standard-header.site-header .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu {
    transform: translateX(-50%) translateY(0) !important;
  }
}

@media (min-width: 901px) and (max-width: 1180px) {
  .site-header.wpi-global-header .wpi-nav-dropdown-menu,
  .wpi-global-header.site-header .wpi-nav-dropdown-menu,
  .wpi-sp-header.site-header .wpi-nav-dropdown-menu,
  .wpi-standard-header.site-header .wpi-nav-dropdown-menu {
    width: min(49rem, calc(100vw - 2rem)) !important;
    max-width: calc(100vw - 2rem) !important;
    grid-template-columns: repeat(3, minmax(11.5rem, 1fr)) !important;
  }
}

/* Merch hero: shorter than v1.0.185 and vertically centered. */
.wpi-shop-page .wpi-shop-hero,
.wpi-shop-page .wpi-shop-hero.wpi-editable-hero {
  min-height: clamp(39rem, 34vw, 42.25rem) !important;
  height: auto !important;
  padding-bottom: clamp(2rem, 2.3vw, 2.75rem) !important;
  display: flex !important;
  flex-direction: column !important;
}

.wpi-shop-page .wpi-shop-hero-copy {
  flex: 1 1 auto !important;
  justify-content: center !important;
  padding-top: clamp(1.2rem, 2vw, 2.2rem) !important;
  padding-bottom: clamp(1.4rem, 2.2vw, 2.5rem) !important;
}

.wpi-shop-page .wpi-shop-hero-copy .eyebrow {
  margin-bottom: 1.8rem !important;
}

@media (max-width: 767px) {
  .wpi-shop-page .wpi-shop-hero,
  .wpi-shop-page .wpi-shop-hero.wpi-editable-hero {
    min-height: auto !important;
    display: block !important;
    padding-bottom: 2.8rem !important;
  }

  .wpi-shop-page .wpi-shop-hero-copy {
    display: flex !important;
    padding-top: 2.2rem !important;
    padding-bottom: 0 !important;
  }
}

/* ========================================================================== 
   v1.0.188 Hero background cleanup: no overlays on Shop, Cart, Checkout images
   - Removes the dark pseudo overlays and decorative glow layers from the image heroes.
   - Keeps selected Gutenberg background images as the actual visible hero background.
   - Clips Checkout hero horizontal overflow without changing the header/menu layout.
   ========================================================================== */

.wpi-shop-page .wpi-shop-hero.wpi-editable-hero,
.wpi-cart-page .wpi-cart-hero.wpi-editable-hero,
.wpi-checkout-page .wpi-checkout-hero.wpi-editable-hero {
  background-color: #050505 !important;
  background-image: var(--wpi-page-hero-bg, linear-gradient(180deg, #333333 0%, #141414 58%, #050505 100%)) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-blend-mode: normal !important;
}

.wpi-shop-page .wpi-shop-hero.wpi-editable-hero::before,
.wpi-cart-page .wpi-cart-hero.wpi-editable-hero::before,
.wpi-checkout-page .wpi-checkout-hero.wpi-editable-hero::before {
  background: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.wpi-shop-page .wpi-shop-hero-art,
.wpi-shop-page .wpi-shop-hero-art-left,
.wpi-shop-page .wpi-shop-hero-art-right,
.wpi-shop-page .wpi-shop-hero-bottom-glow {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

.wpi-cart-hero > .wpi-hero-bg-video,
.wpi-checkout-hero > .wpi-hero-bg-video,
.wpi-shop-hero > .wpi-hero-bg-video {
  z-index: 0 !important;
  opacity: 1 !important;
  filter: none !important;
}

.wpi-cart-hero > *:not(.wpi-hero-bg-video),
.wpi-checkout-hero > *:not(.wpi-hero-bg-video),
.wpi-shop-hero > *:not(.wpi-hero-bg-video) {
  position: relative !important;
  z-index: 2 !important;
}

.wpi-checkout-page {
  max-width: 100% !important;
  overflow-x: clip !important;
}

.wpi-checkout-page .wpi-checkout-hero {
  max-width: 100% !important;
  overflow-x: clip !important;
}

.wpi-checkout-page .wpi-checkout-hero .site-header.wpi-global-header,
.wpi-checkout-page .wpi-checkout-hero .site-header.wpi-global-header .main-nav,
.wpi-checkout-page .wpi-checkout-hero .site-header.wpi-global-header .wpi-nav-dropdown {
  overflow: visible !important;
}

@media (max-width: 767px) {
  .wpi-checkout-page {
    overflow-x: hidden !important;
  }
}


/* ========================================================================== 
   v1.0.189 Image hero overlay hard reset
   - Shop, Cart, and Checkout custom image/video heroes should show the uploaded
     media cleanly, with no black gradient, red glow, pseudo-element overlay,
     blend mode, inset shadow, or media filter darkening.
   - Applies only when a real custom hero background is present.
   ========================================================================== */
.wpi-shop-page .wpi-shop-hero.wpi-editable-hero.wpi-has-custom-hero-bg,
.wpi-cart-page .wpi-cart-hero.wpi-editable-hero.wpi-has-custom-hero-bg,
.wpi-checkout-page .wpi-checkout-hero.wpi-editable-hero.wpi-has-custom-hero-bg {
  background-color: transparent !important;
  background-image: var(--wpi-page-hero-bg) !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-blend-mode: normal !important;
  box-shadow: none !important;
  filter: none !important;
}

.wpi-shop-page .wpi-shop-hero.wpi-editable-hero.wpi-has-custom-hero-bg::before,
.wpi-shop-page .wpi-shop-hero.wpi-editable-hero.wpi-has-custom-hero-bg::after,
.wpi-cart-page .wpi-cart-hero.wpi-editable-hero.wpi-has-custom-hero-bg::before,
.wpi-cart-page .wpi-cart-hero.wpi-editable-hero.wpi-has-custom-hero-bg::after,
.wpi-checkout-page .wpi-checkout-hero.wpi-editable-hero.wpi-has-custom-hero-bg::before,
.wpi-checkout-page .wpi-checkout-hero.wpi-editable-hero.wpi-has-custom-hero-bg::after {
  content: none !important;
  display: none !important;
  background: none !important;
  opacity: 0 !important;
  box-shadow: none !important;
  filter: none !important;
  pointer-events: none !important;
}

.wpi-shop-page .wpi-shop-hero.wpi-editable-hero.wpi-has-custom-hero-bg .wpi-hero-bg-video,
.wpi-cart-page .wpi-cart-hero.wpi-editable-hero.wpi-has-custom-hero-bg .wpi-hero-bg-video,
.wpi-checkout-page .wpi-checkout-hero.wpi-editable-hero.wpi-has-custom-hero-bg .wpi-hero-bg-video {
  opacity: 1 !important;
  filter: none !important;
  mix-blend-mode: normal !important;
}

.wpi-shop-page .wpi-shop-hero.wpi-editable-hero.wpi-has-custom-hero-bg .wpi-shop-hero-art,
.wpi-shop-page .wpi-shop-hero.wpi-editable-hero.wpi-has-custom-hero-bg .wpi-shop-hero-art-left,
.wpi-shop-page .wpi-shop-hero.wpi-editable-hero.wpi-has-custom-hero-bg .wpi-shop-hero-art-right,
.wpi-shop-page .wpi-shop-hero.wpi-editable-hero.wpi-has-custom-hero-bg .wpi-shop-hero-bottom-glow {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  filter: none !important;
  box-shadow: none !important;
}


/* ========================================================================== 
   v1.0.190 Event CTA custom icon cleanup
   - When a custom Event CTA icon is selected in Gutenberg, hide the old default
     flame/background icon and size the uploaded image cleanly.
   ========================================================================== */
.wpi-event-page .wpi-event-help-mark.has-custom-icon,
.wpi-event-page .wpi-event-help-mark.has-custom-icon::before,
.wpi-event-page .wpi-event-help-mark.has-custom-icon::after {
  background: none !important;
  background-image: none !important;
  content: none !important;
  box-shadow: none !important;
  filter: none !important;
}

.wpi-event-page .wpi-event-help-mark.has-custom-icon {
  width: 6.25rem !important;
  height: 6.25rem !important;
  min-width: 6.25rem !important;
  min-height: 6.25rem !important;
  max-width: 6.25rem !important;
  max-height: 6.25rem !important;
  margin: 0 auto 1.35rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 1 !important;
  font-size: 0 !important;
  line-height: 0 !important;
}

.wpi-event-page .wpi-event-help-mark.has-custom-icon img,
.wpi-event-page .wpi-event-help-mark.has-custom-icon video {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
}

@media (max-width: 767px) {
  .wpi-event-page .wpi-event-help-mark.has-custom-icon {
    width: 5.25rem !important;
    height: 5.25rem !important;
    min-width: 5.25rem !important;
    min-height: 5.25rem !important;
    max-width: 5.25rem !important;
    max-height: 5.25rem !important;
  }
}


/* ========================================================================== 
   v1.0.191 Event CTA icon sizing
   Match the Portfolio/Gallery "Like What You See?" banner icon size exactly.
   ========================================================================== */
.wpi-event-page .wpi-event-help-mark.has-custom-icon {
  width: 11.5rem !important;
  height: 11.5rem !important;
  min-width: 11.5rem !important;
  min-height: 11.5rem !important;
  max-width: 11.5rem !important;
  max-height: 11.5rem !important;
  margin: 0 auto .4rem !important;
}

.wpi-event-page .wpi-event-help-mark.has-custom-icon img,
.wpi-event-page .wpi-event-help-mark.has-custom-icon video {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
}

@media (max-width: 767px) {
  .wpi-event-page .wpi-event-help-mark.has-custom-icon {
    width: 8.5rem !important;
    height: 8.5rem !important;
    min-width: 8.5rem !important;
    min-height: 8.5rem !important;
    max-width: 8.5rem !important;
    max-height: 8.5rem !important;
  }
}


/* v1.0.194 Quote page editor/hero cleanup
   - Clients should not need to type literal \n or * markers.
   - Display Quote turns red automatically in PHP.
   - Custom cost-section background displays without a black overlay. */
.wpi-quote-page .wpi-quote-hero-copy h1 span {
  white-space: nowrap !important;
}

.wpi-quote-cost-card.has-custom-bg {
  background-color: #050505 !important;
  background-image: var(--wpi-quote-cost-bg, none) !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  color: #fff !important;
}

.wpi-quote-cost-card.has-custom-bg::before,
.wpi-quote-cost-card.has-custom-bg::after,
.wpi-quote-cost-card.has-custom-bg .wpi-quote-cost-bg-media::after {
  display: none !important;
  content: none !important;
  background: none !important;
}

.wpi-quote-cost-card.has-custom-bg .wpi-quote-cost-bg-media,
.wpi-quote-cost-card.has-custom-bg .wpi-quote-cost-bg-media img,
.wpi-quote-cost-card.has-custom-bg .wpi-quote-cost-bg-media video {
  z-index: 0 !important;
  filter: none !important;
  opacity: 1 !important;
  mix-blend-mode: normal !important;
}

.wpi-quote-cost-card.has-custom-bg .wpi-quote-cost-head,
.wpi-quote-cost-card.has-custom-bg .wpi-quote-factor-grid {
  position: relative !important;
  z-index: 2 !important;
}

@media (max-width: 480px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    max-width: 24rem !important;
  }
  .wpi-quote-page .wpi-quote-hero-copy h1 span {
    white-space: nowrap !important;
  }
}

/* v1.0.195 Quote page cleanup
   - Cost background section uses black text with no overlay.
   - Mobile Quote hero title is forced into two clean, readable lines. */
.wpi-quote-cost-card.has-custom-bg {
  color: #000 !important;
  background-color: #fff !important;
  background-image: var(--wpi-quote-cost-bg, none) !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

.wpi-quote-cost-card.has-custom-bg::before,
.wpi-quote-cost-card.has-custom-bg::after,
.wpi-quote-cost-card.has-custom-bg .wpi-quote-cost-bg-media::before,
.wpi-quote-cost-card.has-custom-bg .wpi-quote-cost-bg-media::after {
  display: none !important;
  content: none !important;
  background: none !important;
  opacity: 0 !important;
}

.wpi-quote-cost-card.has-custom-bg .wpi-quote-cost-head h2,
.wpi-quote-cost-card.has-custom-bg .wpi-quote-cost-head p,
.wpi-quote-cost-card.has-custom-bg .wpi-quote-factor h3,
.wpi-quote-cost-card.has-custom-bg .wpi-quote-factor p,
.wpi-quote-cost-card.has-custom-bg .wpi-quote-factor-grid,
.wpi-quote-cost-card.has-custom-bg .wpi-quote-factor-grid * {
  color: #000 !important;
  text-shadow: none !important;
}

.wpi-quote-cost-card.has-custom-bg .wpi-quote-factor h3::after {
  background: rgba(255,255,255,.72) !important;
}

.wpi-quote-cost-card.has-custom-bg .wpi-quote-factor h3::before {
  background: #d20404 !important;
}

@media (max-width: 767px) {
  .wpi-quote-page .wpi-quote-hero-copy {
    padding-top: 3.35rem !important;
  }
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    max-width: 23.5rem !important;
    font-size: clamp(2.55rem, 8.9vw, 3.15rem) !important;
    line-height: .96 !important;
    letter-spacing: -.04em !important;
    text-wrap: balance;
  }
  .wpi-quote-page .wpi-quote-hero-copy h1 span {
    display: block !important;
    white-space: nowrap !important;
  }
  .wpi-quote-page .wpi-quote-hero-copy h1 .is-red {
    color: #d20404 !important;
  }
}

@media (max-width: 390px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    max-width: 22rem !important;
    font-size: 2.45rem !important;
    line-height: .97 !important;
  }
}

@media (max-width: 340px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    max-width: 20rem !important;
    font-size: 2.22rem !important;
  }
}

/* v1.0.196 Quote page mobile heading + cost factor cards
   - Cost-section point cards use #D20404 at 5% opacity.
   - Mobile Quote hero title gets more breathing room and no overflow. */
.wpi-quote-page .wpi-quote-cost-card .wpi-quote-factor,
.wpi-quote-page .wpi-quote-cost-card.has-custom-bg .wpi-quote-factor {
  background: rgba(210, 4, 4, 0.05) !important;
  border: 1px solid rgba(210, 4, 4, 0.08) !important;
  border-radius: 1rem !important;
  padding: 1.15rem 1.2rem 1.2rem !important;
  box-shadow: none !important;
}

.wpi-quote-page .wpi-quote-cost-card .wpi-quote-factor h3,
.wpi-quote-page .wpi-quote-cost-card.has-custom-bg .wpi-quote-factor h3 {
  margin-bottom: .55rem !important;
}

.wpi-quote-page .wpi-quote-cost-card .wpi-quote-factor p,
.wpi-quote-page .wpi-quote-cost-card.has-custom-bg .wpi-quote-factor p {
  margin: 0 !important;
}

@media (max-width: 767px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    display: block !important;
    height: auto !important;
    width: min(100%, calc(100vw - 2rem)) !important;
    max-width: 31rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: clamp(2.25rem, 7.45vw, 2.9rem) !important;
    line-height: 1.05 !important;
    letter-spacing: 0 !important;
    word-spacing: .035em !important;
    text-align: center !important;
    overflow: visible !important;
  }
  .wpi-quote-page .wpi-quote-hero-copy h1 span {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: visible !important;
  }
}

@media (max-width: 390px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    max-width: calc(100vw - 1.5rem) !important;
    font-size: clamp(2.05rem, 7.2vw, 2.45rem) !important;
    line-height: 1.06 !important;
    letter-spacing: .005em !important;
  }
}

@media (max-width: 340px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    max-width: calc(100vw - 1rem) !important;
    font-size: 2rem !important;
    line-height: 1.06 !important;
  }
}

/* ========================================================================== 
   v1.0.197 Quote mobile hero heading wrap
   - Keep the mobile hero title strong/readable.
   - Allow "Request a Fireworks" to wrap naturally into two lines above
     "Display Quote" instead of shrinking the whole H1 or overflowing.
   ========================================================================== */
@media (max-width: 767px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    width: min(100%, calc(100vw - 1.5rem)) !important;
    max-width: 25rem !important;
    font-size: clamp(2.58rem, 8.65vw, 3.18rem) !important;
    line-height: .96 !important;
    letter-spacing: -.012em !important;
    word-spacing: .025em !important;
    text-align: center !important;
    overflow: visible !important;
    text-wrap: balance;
  }

  .wpi-quote-page .wpi-quote-hero-copy h1 span {
    display: block !important;
    margin-inline: auto !important;
    overflow: visible !important;
  }

  .wpi-quote-page .wpi-quote-hero-copy h1 span:first-child {
    width: min(100%, 17.6rem) !important;
    max-width: 17.6rem !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: manual !important;
  }

  .wpi-quote-page .wpi-quote-hero-copy h1 .is-red {
    width: min(100%, 21.5rem) !important;
    max-width: 21.5rem !important;
    white-space: nowrap !important;
    color: #d20404 !important;
  }
}

@media (max-width: 390px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    max-width: calc(100vw - 1rem) !important;
    font-size: clamp(2.42rem, 8.35vw, 2.82rem) !important;
    line-height: .98 !important;
    letter-spacing: -.006em !important;
  }

  .wpi-quote-page .wpi-quote-hero-copy h1 span:first-child {
    max-width: 16.2rem !important;
  }
}

@media (max-width: 340px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    font-size: 2.34rem !important;
    line-height: .99 !important;
    letter-spacing: 0 !important;
  }

  .wpi-quote-page .wpi-quote-hero-copy h1 span:first-child {
    max-width: 15.2rem !important;
  }

  .wpi-quote-page .wpi-quote-hero-copy h1 .is-red {
    max-width: 19rem !important;
  }
}



/* ========================================================================== 
   v1.0.198 Quote page card height + responsive hero title repair
   - Equalizes the "What Kind of Show Are You Planning?" cards after images are added.
   - Reduces tablet Quote hero title so it does not overflow.
   - Keeps mobile title strong while forcing a clean 3-line rhythm:
     Request a / Fireworks / Display Quote.
   ========================================================================== */
.wpi-quote-page .wpi-quote-best-grid {
  align-items: stretch !important;
  grid-auto-rows: 1fr !important;
}

.wpi-quote-page .wpi-quote-best-card {
  height: clamp(26rem, 29vw, 29rem) !important;
  min-height: 0 !important;
  display: block !important;
  position: relative !important;
  overflow: hidden !important;
  background: #111 !important;
}

.wpi-quote-page .wpi-quote-best-card img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}

.wpi-quote-page .wpi-quote-best-card::after {
  z-index: 1 !important;
}

.wpi-quote-page .wpi-quote-best-card span {
  z-index: 3 !important;
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-quote-page .wpi-quote-hero-copy {
    width: min(calc(100% - 3rem), 58rem) !important;
    max-width: 58rem !important;
  }

  .wpi-quote-page .wpi-quote-hero-copy h1 {
    width: 100% !important;
    max-width: 56rem !important;
    font-size: clamp(3rem, 4.8vw, 4.05rem) !important;
    line-height: .98 !important;
    letter-spacing: -.004em !important;
    word-spacing: .02em !important;
    text-align: center !important;
    overflow: visible !important;
  }

  .wpi-quote-page .wpi-quote-hero-copy h1 span {
    white-space: nowrap !important;
  }

  .wpi-quote-page .wpi-quote-best-card {
    height: 27rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    width: min(100%, calc(100vw - 1.5rem)) !important;
    max-width: 30rem !important;
    font-size: clamp(2.65rem, 9.4vw, 3.05rem) !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    word-spacing: .03em !important;
    text-align: center !important;
    overflow: visible !important;
    text-wrap: normal !important;
  }

  .wpi-quote-page .wpi-quote-hero-copy h1 span {
    display: block !important;
    margin-inline: auto !important;
    overflow: visible !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: manual !important;
  }

  .wpi-quote-page .wpi-quote-hero-copy h1 span:first-child {
    width: min(100%, 21.5rem) !important;
    max-width: 21.5rem !important;
    white-space: normal !important;
  }

  .wpi-quote-page .wpi-quote-hero-copy h1 .is-red {
    width: min(100%, 24.5rem) !important;
    max-width: 24.5rem !important;
    white-space: nowrap !important;
    color: #d20404 !important;
  }

  .wpi-quote-page .wpi-quote-best-grid {
    align-items: stretch !important;
    gap: 2rem !important;
  }

  .wpi-quote-page .wpi-quote-best-card {
    height: 22.5rem !important;
    min-height: 0 !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
    padding-bottom: 1rem !important;
  }
}

@media (max-width: 390px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    max-width: calc(100vw - 1rem) !important;
    font-size: clamp(2.55rem, 9.1vw, 2.9rem) !important;
    line-height: 1.01 !important;
  }

  .wpi-quote-page .wpi-quote-hero-copy h1 span:first-child {
    width: min(100%, 21rem) !important;
    max-width: 21rem !important;
  }

  .wpi-quote-page .wpi-quote-hero-copy h1 .is-red {
    max-width: 24rem !important;
  }
}

@media (max-width: 340px) {
  .wpi-quote-page .wpi-quote-hero-copy h1 {
    font-size: 2.48rem !important;
    line-height: 1.02 !important;
  }

  .wpi-quote-page .wpi-quote-hero-copy h1 span:first-child {
    max-width: 20.5rem !important;
  }

  .wpi-quote-page .wpi-quote-best-card {
    height: 20.75rem !important;
  }
}


/* ========================================================================== 
   v1.0.199 Quote planning cards bottom clipping fix
   - Keeps the added card images equal-height/covering the card.
   - Lets the white bottom labels sit outside the image area without being cut.
   ========================================================================== */
.wpi-quote-page .wpi-quote-best-section,
.wpi-quote-page .wpi-quote-best-grid {
  overflow: visible !important;
}

.wpi-quote-page .wpi-quote-best-section {
  padding-bottom: max(5.5rem, 4.6vw) !important;
}

.wpi-quote-page .wpi-quote-best-grid {
  align-items: stretch !important;
}

.wpi-quote-page .wpi-quote-best-card {
  height: clamp(26rem, 29vw, 29rem) !important;
  min-height: 26rem !important;
  overflow: visible !important;
  isolation: isolate !important;
}

.wpi-quote-page .wpi-quote-best-card img,
.wpi-quote-page .wpi-quote-best-card::after {
  border-radius: inherit !important;
}

.wpi-quote-page .wpi-quote-best-card img {
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
}

.wpi-quote-page .wpi-quote-best-card span {
  z-index: 5 !important;
  overflow: visible !important;
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-quote-page .wpi-quote-best-section {
    padding-bottom: 6rem !important;
  }

  .wpi-quote-page .wpi-quote-best-card {
    height: 27rem !important;
    min-height: 27rem !important;
    overflow: visible !important;
  }
}

@media (max-width: 767px) {
  .wpi-quote-page .wpi-quote-best-section {
    padding-bottom: 5.8rem !important;
  }

  .wpi-quote-page .wpi-quote-best-grid {
    gap: 2.6rem !important;
  }

  .wpi-quote-page .wpi-quote-best-card {
    height: auto !important;
    min-height: 22.5rem !important;
    overflow: visible !important;
  }

  .wpi-quote-page .wpi-quote-best-card span {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    right: auto !important;
    transform: rotate(-2deg) !important;
    margin: 0 auto !important;
  }
}

@media (max-width: 340px) {
  .wpi-quote-page .wpi-quote-best-card {
    min-height: 21rem !important;
  }
}


/* ========================================================================== 
   v1.0.200 Quote steps mobile heading + tablet planning cards fix
   - Keeps "From First Details to Final Burst" from breaking into too many
     mobile lines while keeping it large/readable.
   - Prevents Quote "What Kind of Show Are You Planning?" cards from clipping
     on tablet after images are added.
   ========================================================================== */
@media (max-width: 767px) {
  .wpi-quote-page .wpi-quote-steps-heading h2 {
    width: min(100%, calc(100vw - 2rem)) !important;
    max-width: 25rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: clamp(2.72rem, 10.4vw, 3.22rem) !important;
    line-height: 1.02 !important;
    letter-spacing: 0 !important;
    word-spacing: .03em !important;
    text-align: center !important;
    text-wrap: balance;
    overflow: visible !important;
  }

  .wpi-quote-page .wpi-quote-steps-heading h2 span {
    display: block !important;
    width: min(100%, 21.75rem) !important;
    max-width: 21.75rem !important;
    margin-inline: auto !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: manual !important;
  }

  .wpi-quote-page .wpi-quote-steps-heading h2 span:first-child {
    max-width: 19.75rem !important;
  }
}

@media (max-width: 390px) {
  .wpi-quote-page .wpi-quote-steps-heading h2 {
    font-size: clamp(2.58rem, 10.1vw, 3rem) !important;
    max-width: calc(100vw - 1.25rem) !important;
  }

  .wpi-quote-page .wpi-quote-steps-heading h2 span:first-child {
    max-width: 18.75rem !important;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-quote-page .wpi-quote-best-section,
  .wpi-quote-page .wpi-quote-best-grid {
    overflow: visible !important;
  }

  .wpi-quote-page .wpi-quote-best-section {
    padding-bottom: 5.5rem !important;
  }

  .wpi-quote-page .wpi-quote-best-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 3.2rem 1.6rem !important;
    align-items: stretch !important;
    grid-auto-rows: auto !important;
  }

  .wpi-quote-page .wpi-quote-best-card {
    position: relative !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: center !important;
    height: 27rem !important;
    min-height: 27rem !important;
    padding: 0 1rem 1.05rem !important;
    overflow: hidden !important;
    border-width: 5px !important;
    border-radius: .85rem !important;
    background: #111 !important;
  }

  .wpi-quote-page .wpi-quote-best-card img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center !important;
  }

  .wpi-quote-page .wpi-quote-best-card::after {
    z-index: 1 !important;
    border-radius: inherit !important;
  }

  .wpi-quote-page .wpi-quote-best-card span {
    position: relative !important;
    z-index: 5 !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: rotate(-2deg) !important;
    width: min(calc(100% - 1rem), 18rem) !important;
    min-height: 4rem !important;
    margin: 0 auto !important;
    padding: .65rem 1rem !important;
    line-height: 1.18 !important;
    overflow: visible !important;
  }
}

/* ========================================================================== 
   v1.0.201 Quote mobile steps heading direct 3-line fix
   - Keeps the saved heading as-is for Gutenberg/client editing.
   - On mobile, forces the second visual line ("to Final Burst") to wrap
     into two clean lines so the heading reads as 3 lines total:
       From First Details
       to Final
       Burst
   ========================================================================== */
@media (max-width: 767px) {
  .wpi-quote-page .wpi-quote-steps-heading h2 {
    width: min(100%, calc(100vw - 2rem)) !important;
    max-width: 24rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: clamp(2.78rem, 11.6vw, 3.35rem) !important;
    line-height: .98 !important;
    letter-spacing: -.008em !important;
    word-spacing: .02em !important;
    text-align: center !important;
    overflow: visible !important;
  }

  .wpi-quote-page .wpi-quote-steps-heading h2 > span {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: manual !important;
  }

  .wpi-quote-page .wpi-quote-steps-heading h2 > span:first-child {
    width: max-content !important;
    max-width: 100% !important;
    white-space: nowrap !important;
  }

  .wpi-quote-page .wpi-quote-steps-heading h2 > span:nth-child(2) {
    width: 11.8rem !important;
    max-width: 11.8rem !important;
  }
}

@media (max-width: 390px) {
  .wpi-quote-page .wpi-quote-steps-heading h2 {
    font-size: clamp(2.68rem, 11.2vw, 3.05rem) !important;
    max-width: calc(100vw - 1.25rem) !important;
  }

  .wpi-quote-page .wpi-quote-steps-heading h2 > span:nth-child(2) {
    width: 11.2rem !important;
    max-width: 11.2rem !important;
  }
}

@media (max-width: 340px) {
  .wpi-quote-page .wpi-quote-steps-heading h2 {
    font-size: 2.62rem !important;
  }

  .wpi-quote-page .wpi-quote-steps-heading h2 > span:nth-child(2) {
    width: 10.8rem !important;
    max-width: 10.8rem !important;
  }
}


/* ========================================================================== 
   v1.0.202 Quote mobile steps heading overflow correction
   - Removes the over-forced nowrap / fixed-width mobile heading rule from v1.0.201.
   - Lets "From First Details to Final Burst" wrap naturally without overflowing.
   ========================================================================== */
@media (max-width: 767px) {
  .wpi-quote-page .wpi-quote-steps-heading h2 {
    width: 100% !important;
    max-width: min(100%, 22rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: .15rem !important;
    padding-right: .15rem !important;
    box-sizing: border-box !important;
    font-size: clamp(2.52rem, 9.4vw, 3rem) !important;
    line-height: 1.04 !important;
    letter-spacing: 0 !important;
    word-spacing: .02em !important;
    text-align: center !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: manual !important;
    overflow: visible !important;
    text-wrap: balance;
  }

  .wpi-quote-page .wpi-quote-steps-heading h2 > span {
    display: inline !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  .wpi-quote-page .wpi-quote-steps-heading h2 > span + span::before {
    content: " ";
  }
}

@media (max-width: 390px) {
  .wpi-quote-page .wpi-quote-steps-heading h2 {
    max-width: min(100%, 20.75rem) !important;
    font-size: clamp(2.42rem, 9.1vw, 2.82rem) !important;
  }
}

@media (max-width: 340px) {
  .wpi-quote-page .wpi-quote-steps-heading h2 {
    max-width: min(100%, 19.25rem) !important;
    font-size: 2.36rem !important;
  }
}


/* ========================================================================== 
   v1.0.203 Quote mobile heading + footer spacing/product footer context
   - Fixes the Quote steps heading overflow by using a real 3-line mobile label
     for the default "From First Details to Final Burst" heading.
   - Adds breathing room between footer copy and contact info.
   ========================================================================== */
@media (max-width: 767px) {
  .wpi-quote-page .wpi-quote-steps-heading h2 {
    width: 100% !important;
    max-width: min(100%, 18.75rem) !important;
    margin-inline: auto !important;
    padding-inline: .25rem !important;
    box-sizing: border-box !important;
    font-size: clamp(2.5rem, 9.2vw, 2.95rem) !important;
    line-height: .99 !important;
    letter-spacing: -.01em !important;
    word-spacing: .02em !important;
    text-align: center !important;
    white-space: normal !important;
    overflow: hidden !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .wpi-quote-page .wpi-quote-steps-heading h2.wpi-quote-steps-heading-default {
    max-width: min(100%, 18.25rem) !important;
  }

  .wpi-quote-page .wpi-quote-steps-heading h2.wpi-quote-steps-heading-default > span {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
  }

  .wpi-quote-page .wpi-quote-steps-heading h2.wpi-quote-steps-heading-default::before {
    content: "From First\A Details to\A Final Burst" !important;
    display: block !important;
    white-space: pre-line !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: auto !important;
  }
}

@media (max-width: 390px) {
  .wpi-quote-page .wpi-quote-steps-heading h2,
  .wpi-quote-page .wpi-quote-steps-heading h2.wpi-quote-steps-heading-default {
    max-width: min(100%, 17.4rem) !important;
    font-size: clamp(2.36rem, 8.95vw, 2.64rem) !important;
  }
}

@media (max-width: 340px) {
  .wpi-quote-page .wpi-quote-steps-heading h2,
  .wpi-quote-page .wpi-quote-steps-heading h2.wpi-quote-steps-heading-default {
    max-width: min(100%, 16.5rem) !important;
    font-size: 2.25rem !important;
  }
}

.wpi-journey-footer-copy {
  margin-bottom: 1.55rem !important;
}

.wpi-journey-footer-copy p:last-child {
  margin-bottom: 0 !important;
}

@media (max-width: 767px) {
  .wpi-journey-footer-copy {
    margin-bottom: 1.35rem !important;
  }
}

/* v1.0.204 — individual service copy cards with use-case descriptions */
.wpi-isvc-best-card .wpi-isvc-best-caption {
  position: absolute;
  left: 50%;
  bottom: -2.1rem;
  transform: translateX(-50%) rotate(-3deg);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .35rem;
  width: min(88%, 21rem);
  min-height: 3.4rem;
  padding: .75rem 1.15rem;
  border: .35rem solid #010101;
  border-radius: 1.75rem;
  background: #fff;
  box-shadow: 0 0 .45rem rgba(0,0,0,.25);
  text-align: center;
  z-index: 4;
}
.wpi-isvc-best-card .wpi-isvc-best-caption span {
  position: static !important;
  left: auto !important;
  bottom: auto !important;
  transform: none !important;
  display: block !important;
  width: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  font-family: var(--body);
  font-size: .98rem;
  font-weight: 800;
  line-height: 1.15;
  color: #030303;
}
.wpi-isvc-best-card .wpi-isvc-best-caption p {
  margin: 0;
  max-width: 100%;
  font-size: .72rem;
  line-height: 1.25;
  font-weight: 500;
  color: #202020;
}
.wpi-isvc-best-card:has(.wpi-isvc-best-caption p) {
  margin-bottom: 2.6rem;
}
.wpi-isvc-final-cta {
  margin-top: 0;
}
@media (max-width: 900px) {
  .wpi-isvc-best-card .wpi-isvc-best-caption {
    bottom: -2.4rem;
    width: min(90%, 22rem);
  }
}
@media (max-width: 767px) {
  .wpi-isvc-best-card .wpi-isvc-best-caption {
    bottom: -2.2rem;
  }
  .wpi-isvc-best-card .wpi-isvc-best-caption p {
    font-size: .78rem;
  }
}
.wpi-sp-quote-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  margin-top: 1.25rem;
}
.wpi-sp-quote-secondary {
  border-color: rgba(255,255,255,.85) !important;
  color: #fff !important;
  background: transparent !important;
}
@media (max-width: 767px) {
  .wpi-sp-quote-actions {
    flex-direction: column;
    align-items: stretch;
  }
}

/* v1.0.205 — services cleanup, single-service heading/CTA polish, and x-overflow control */
html,
body {
  max-width: 100% !important;
  overflow-x: hidden !important;
}

body .wpi-individual-service-page,
body .wpi-services-page,
body .wpi-landing-page,
body .wpi-gallery-page,
body .wpi-quote-page,
body .wpi-event-page,
body .wpi-shop-page,
body .wpi-cart-page,
body .wpi-checkout-page {
  max-width: 100vw !important;
  overflow-x: hidden !important;
}

.wpi-individual-service-page .wpi-isvc-best .section-heading h2 {
  width: min(100%, 54rem) !important;
  max-width: 54rem !important;
  margin-inline: auto !important;
  font-size: clamp(3.15rem, 4.1vw, 4.55rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -.018em !important;
  text-wrap: balance !important;
}

.wpi-individual-service-page .wpi-isvc-unique h2 {
  width: min(100%, 64rem) !important;
  max-width: 64rem !important;
  font-size: clamp(3.2rem, 4.4vw, 5.15rem) !important;
  line-height: .98 !important;
  letter-spacing: -.035em !important;
  text-wrap: balance !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.wpi-individual-service-page .wpi-isvc-why .section-heading h2 span,
.wpi-individual-service-page .wpi-isvc-faq-content h2 span,
.wpi-individual-service-page .wpi-isvc-final-cta h2 span {
  color: var(--isvc-red, #d20404) !important;
}

.wpi-individual-service-page .wpi-isvc-final-cta.wpi-sp-quote-cta {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #030303 !important;
  border: 0 !important;
  border-top: .9rem solid #fff !important;
  border-bottom: .9rem solid #fff !important;
  color: #fff !important;
  overflow: hidden !important;
}

.wpi-individual-service-page .wpi-isvc-final-cta .wpi-sp-quote-inner {
  width: min(calc(100% - 4rem), 104rem) !important;
  min-height: 34rem !important;
  margin-inline: auto !important;
  padding: 4.2rem 0 4.6rem !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

.wpi-individual-service-page .wpi-isvc-final-cta .wpi-sp-quote-icon:empty {
  display: none !important;
}

.wpi-individual-service-page .wpi-isvc-final-cta .wpi-sp-quote-icon {
  width: 9rem !important;
  height: 9rem !important;
  margin: 0 0 1.3rem !important;
}

.wpi-individual-service-page .wpi-isvc-final-cta h2 {
  width: min(100%, 55rem) !important;
  margin: 0 !important;
  color: #fff !important;
  font-family: var(--display) !important;
  font-size: clamp(3rem, 4vw, 4.15rem) !important;
  line-height: .98 !important;
  letter-spacing: -.02em !important;
  text-transform: uppercase !important;
  text-wrap: balance !important;
}

.wpi-individual-service-page .wpi-isvc-final-cta .wpi-sp-quote-text {
  width: min(100%, 45rem) !important;
  margin: 1.5rem auto 0 !important;
  color: rgba(255,255,255,.86) !important;
  font-size: 1.2rem !important;
  line-height: 1.65 !important;
}

.wpi-individual-service-page .wpi-isvc-final-cta .wpi-sp-quote-text p {
  margin: .25rem 0 .55rem !important;
}

.wpi-individual-service-page .wpi-isvc-final-cta .wpi-sp-quote-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 1rem !important;
  margin-top: 1.9rem !important;
}

.wpi-individual-service-page .wpi-isvc-final-cta .btn-light-wide {
  min-width: 24rem !important;
  color: #000 !important;
  background: #fff !important;
}

.wpi-individual-service-page .wpi-isvc-final-cta .wpi-sp-quote-secondary {
  min-width: 13rem !important;
  color: #fff !important;
  background: transparent !important;
  border-color: rgba(255,255,255,.8) !important;
}

@media (min-width: 768px) and (max-width: 1200px) {
  .wpi-individual-service-page .wpi-isvc-best .section-heading h2 {
    font-size: clamp(2.75rem, 5vw, 3.75rem) !important;
    max-width: 44rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-unique h2 {
    font-size: clamp(3rem, 5.6vw, 4.4rem) !important;
    max-width: 50rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-final-cta .wpi-sp-quote-inner {
    min-height: 30rem !important;
    padding: 3.6rem 0 3.9rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-final-cta h2 {
    font-size: clamp(2.8rem, 5vw, 3.6rem) !important;
    max-width: 48rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-individual-service-page .wpi-isvc-best .section-heading h2 {
    width: min(100%, 31rem) !important;
    max-width: 31rem !important;
    font-size: clamp(2.55rem, 9.2vw, 3.25rem) !important;
    line-height: 1.02 !important;
  }
  .wpi-individual-service-page .wpi-isvc-unique h2 {
    width: min(100%, 31rem) !important;
    max-width: 31rem !important;
    font-size: clamp(2.55rem, 9.4vw, 3.35rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -.02em !important;
  }
  .wpi-individual-service-page .wpi-isvc-final-cta .wpi-sp-quote-inner {
    width: calc(100% - 2.2rem) !important;
    min-height: 0 !important;
    padding: 3.4rem 0 3.6rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-final-cta h2 {
    font-size: clamp(2.45rem, 9.4vw, 3.2rem) !important;
    line-height: 1.02 !important;
    max-width: 31rem !important;
  }
  .wpi-individual-service-page .wpi-isvc-final-cta .wpi-sp-quote-text {
    font-size: 1.05rem !important;
    line-height: 1.55 !important;
  }
  .wpi-individual-service-page .wpi-isvc-final-cta .wpi-sp-quote-actions {
    flex-direction: column !important;
    align-items: stretch !important;
    width: min(100%, 26rem) !important;
  }
  .wpi-individual-service-page .wpi-isvc-final-cta .btn,
  .wpi-individual-service-page .wpi-isvc-final-cta .btn-light-wide,
  .wpi-individual-service-page .wpi-isvc-final-cta .wpi-sp-quote-secondary {
    width: 100% !important;
    min-width: 0 !important;
    justify-content: center !important;
  }
}

/* ========================================================================== 
   v1.0.207 Single service Best For card tablet/mobile QA
   - Equalizes Best For card media/caption heights on tablet and mobile.
   - Stops captions from changing the visual card height unpredictably after images are added.
   ========================================================================== */
@media (min-width: 768px) and (max-width: 1180px) {
  html,
  body {
    overflow-x: hidden !important;
  }

  .wpi-individual-service-page,
  .wpi-individual-service-page main {
    overflow-x: hidden !important;
  }

  .wpi-individual-service-page .wpi-isvc-best {
    overflow: visible !important;
    padding-bottom: 5.6rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    gap: 2.4rem 1.4rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    height: 100% !important;
    margin-bottom: 0 !important;
    overflow: visible !important;
    background: #111 !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card figure {
    flex: 0 0 auto !important;
    height: 22rem !important;
    min-height: 22rem !important;
    max-height: 22rem !important;
    overflow: hidden !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card img,
  .wpi-individual-service-page .wpi-isvc-best-card video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption {
    position: relative !important;
    left: auto !important;
    bottom: auto !important;
    transform: rotate(-2deg) !important;
    width: min(90%, 22rem) !important;
    min-height: 6.35rem !important;
    height: auto !important;
    margin: -2rem auto 0 !important;
    z-index: 5 !important;
  }
}

@media (max-width: 767px) {
  html,
  body {
    overflow-x: hidden !important;
  }

  .wpi-individual-service-page,
  .wpi-individual-service-page main {
    overflow-x: hidden !important;
  }

  .wpi-individual-service-page .wpi-isvc-best {
    overflow: visible !important;
    padding-bottom: 4.8rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
    gap: 2.6rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    height: auto !important;
    margin-bottom: 0 !important;
    overflow: visible !important;
    background: #111 !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card figure {
    flex: 0 0 auto !important;
    height: clamp(18.5rem, 58vw, 24rem) !important;
    min-height: clamp(18.5rem, 58vw, 24rem) !important;
    max-height: clamp(18.5rem, 58vw, 24rem) !important;
    overflow: hidden !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card img,
  .wpi-individual-service-page .wpi-isvc-best-card video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption {
    position: relative !important;
    left: auto !important;
    bottom: auto !important;
    transform: rotate(-2deg) !important;
    width: min(90%, 21rem) !important;
    min-height: 5.85rem !important;
    height: auto !important;
    margin: -1.8rem auto 0 !important;
    z-index: 5 !important;
  }
}

/* ========================================================================== 
   v1.0.208 Service CTA wrapping + safe horizontal overflow QA
   ========================================================================== */
html,
body {
  max-width: 100% !important;
  overflow-x: hidden !important;
}

.services-section .service-row a,
.wpi-sp-services .wpi-sp-service-body a {
  white-space: nowrap !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  text-wrap: nowrap !important;
  box-sizing: border-box !important;
  text-align: center !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
}

.services-section .service-row a {
  width: auto !important;
  min-width: 15.57rem !important;
  max-width: min(100%, 22rem) !important;
  padding-left: 1.25rem !important;
  padding-right: 1.25rem !important;
  font-size: clamp(.82rem, .9vw, 1.02rem) !important;
}

.wpi-sp-services .wpi-sp-service-body a {
  width: auto !important;
  min-width: 13.78rem !important;
  max-width: 100% !important;
  padding-left: 1rem !important;
  padding-right: 1rem !important;
  font-size: clamp(.72rem, .82vw, .86rem) !important;
}

.services-section .service-row a:hover,
.wpi-sp-services .wpi-sp-service-body a:hover {
  letter-spacing: 0 !important;
}

@media (max-width: 1180px) {
  .services-section .service-row a,
  .wpi-sp-services .wpi-sp-service-body a {
    font-size: .78rem !important;
    padding-left: .8rem !important;
    padding-right: .8rem !important;
  }
}

@media (max-width: 767px) {
  .services-section .service-row a,
  .wpi-sp-services .wpi-sp-service-body a {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    font-size: .74rem !important;
    padding-left: .55rem !important;
    padding-right: .55rem !important;
  }
}


/* ========================================================================== 
   v1.0.209 Service listing buttons + Best For media recovery QA
   ========================================================================== */
.services-section .service-row a,
.wpi-sp-services .wpi-sp-service-body a {
  text-transform: uppercase !important;
  white-space: nowrap !important;
  text-wrap: nowrap !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 3.05rem !important;
  line-height: 1 !important;
  letter-spacing: .04em !important;
  font-weight: 900 !important;
}

.services-section .service-row a {
  width: 11.25rem !important;
  min-width: 11.25rem !important;
  max-width: 11.25rem !important;
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}

.wpi-sp-services .wpi-sp-service-body a {
  width: 10.5rem !important;
  min-width: 10.5rem !important;
  max-width: 10.5rem !important;
  padding-left: .95rem !important;
  padding-right: .95rem !important;
}

.wpi-isvc-best-card figure:empty,
.wpi-isvc-best-card figure:not(:has(img)):not(:has(video)) {
  min-height: 15rem !important;
  background:
    radial-gradient(circle at 50% 30%, rgba(210, 4, 4, .22), transparent 46%),
    linear-gradient(135deg, #210303, #050505) !important;
}

.wpi-isvc-best-card figure img,
.wpi-isvc-best-card figure video {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

@media (max-width: 1180px) {
  .services-section .service-row a,
  .wpi-sp-services .wpi-sp-service-body a {
    font-size: .78rem !important;
    min-height: 2.8rem !important;
  }
  .services-section .service-row a {
    width: 10.5rem !important;
    min-width: 10.5rem !important;
    max-width: 10.5rem !important;
  }
  .wpi-sp-services .wpi-sp-service-body a {
    width: 9.7rem !important;
    min-width: 9.7rem !important;
    max-width: 9.7rem !important;
  }
}

@media (max-width: 767px) {
  .services-section .service-row a,
  .wpi-sp-services .wpi-sp-service-body a {
    width: 10.25rem !important;
    min-width: 10.25rem !important;
    max-width: 10.25rem !important;
    font-size: .78rem !important;
    padding-left: .8rem !important;
    padding-right: .8rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* ========================================================================== 
   v1.0.210 Real mobile footer + homepage menu QA
   - Prevents the global footer from being clipped on real mobile browsers.
   - Repositions the homepage mobile menu from the viewport/header bottom instead of the hero flow.
   ========================================================================== */
@media (max-width: 900px) {
  html,
  body,
  #content,
  .wpi-site-root {
    min-height: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
  }

  .wpi-journey-footer.wpi-sp-footer,
  footer.wpi-journey-footer.wpi-sp-footer,
  .footer-section,
  .wpi-sp-footer {
    position: relative !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    padding-top: 4rem !important;
    padding-bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px)) !important;
    contain: none !important;
    clip-path: none !important;
  }

  .wpi-journey-footer.wpi-sp-footer::after,
  .footer-section::after,
  .wpi-sp-footer::after {
    bottom: -4rem !important;
    height: 12rem !important;
    max-height: none !important;
    pointer-events: none !important;
  }

  .wpi-journey-footer-inner,
  .wpi-journey-footer-inner.container-wide,
  .footer-inner,
  .footer-inner.container-wide,
  .wpi-sp-footer-inner,
  .wpi-sp-footer-inner.container-wide {
    position: relative !important;
    z-index: 2 !important;
    width: calc(100% - 2rem) !important;
    max-width: calc(100% - 2rem) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }

  .wpi-journey-footer-grid,
  .footer-top,
  .wpi-sp-footer-top {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 2rem !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }

  .wpi-journey-footer-brand,
  .wpi-journey-footer-col,
  .wpi-journey-footer-bottom,
  .wpi-journey-footer-tagline,
  .wpi-journey-footer-contact,
  .wpi-journey-footer-copy,
  .wpi-journey-footer-copy p,
  .footer-copy,
  .footer-copy p,
  .contact-pill,
  .wpi-sp-contact-pill {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }

  .wpi-journey-footer-contact {
    margin-top: 1rem !important;
    margin-bottom: 1.5rem !important;
  }

  .wpi-journey-footer-bottom {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: .85rem !important;
  }

  .wpi-journey-footer-bottom div {
    width: 100% !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: .75rem 1rem !important;
  }

  .wpi-journey-footer-tagline {
    display: block !important;
    margin-top: 1rem !important;
    padding-bottom: .5rem !important;
  }
}

@media (max-width: 767px) {
  /* Homepage menu: keep it directly under the real header on mobile. */
  body.home.menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal),
  body.home.wpi-menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal),
  body.front-page.menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal),
  body.front-page.wpi-menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-menu-portal) {
    position: fixed !important;
    top: var(--wpi-mobile-menu-top, 7.4rem) !important;
    left: 1rem !important;
    right: 1rem !important;
    bottom: auto !important;
    width: auto !important;
    max-width: none !important;
    max-height: calc(100dvh - var(--wpi-mobile-menu-top, 7.4rem) - 1rem) !important;
    transform: none !important;
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: .5rem !important;
    padding: 1rem !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    z-index: 2147483600 !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 1.25rem !important;
    background: rgba(0,0,0,.985) !important;
    box-shadow: 0 1.5rem 3rem rgba(0,0,0,.42) !important;
  }

  body.home.menu-open .site-header.wpi-global-header,
  body.home.wpi-menu-open .site-header.wpi-global-header,
  body.front-page.menu-open .site-header.wpi-global-header,
  body.front-page.wpi-menu-open .site-header.wpi-global-header {
    z-index: 2147483601 !important;
    overflow: visible !important;
  }

  body.home.menu-open .hero-section,
  body.home.wpi-menu-open .hero-section,
  body.front-page.menu-open .hero-section,
  body.front-page.wpi-menu-open .hero-section {
    overflow: visible !important;
  }
}

/* ========================================================================== 
   v1.0.211 Mobile/tablet footer spacing + Services submenu offset
   - Removes the extra white/blank space under the footer on mobile/tablet.
   - Keeps the mobile Services submenu in normal flow and adds clear spacing
     below the Services row so it does not visually overlap.
   ========================================================================== */
@media (max-width: 1180px) {
  html,
  body,
  #content,
  .wpi-site-root {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

  .wpi-journey-footer.wpi-sp-footer,
  footer.wpi-journey-footer.wpi-sp-footer,
  .wpi-sp-footer.wpi-global-footer,
  .footer-section {
    margin-bottom: 0 !important;
    padding-bottom: clamp(1.35rem, 2.4vw, 2rem) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    background-color: #000 !important;
  }

  .wpi-journey-footer.wpi-sp-footer::after,
  footer.wpi-journey-footer.wpi-sp-footer::after,
  .wpi-sp-footer.wpi-global-footer::after,
  .footer-section::after {
    display: none !important;
    content: none !important;
  }

  .wpi-journey-footer-inner,
  .wpi-journey-footer-inner.container-wide,
  .wpi-sp-footer-inner,
  .footer-inner {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    overflow: visible !important;
  }

  .wpi-journey-footer-tagline {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
}

@media (max-width: 767px) {
  .wpi-journey-footer.wpi-sp-footer,
  footer.wpi-journey-footer.wpi-sp-footer,
  .wpi-sp-footer.wpi-global-footer,
  .footer-section {
    padding-bottom: calc(1.15rem + env(safe-area-inset-bottom, 0px)) !important;
  }
}

@media (max-width: 900px) {
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown,
  .wpi-global-header .main-nav .wpi-nav-dropdown,
  .wpi-sp-header .main-nav .wpi-nav-dropdown,
  .wpi-standard-header .main-nav .wpi-nav-dropdown {
    position: static !important;
    margin-bottom: 0 !important;
    overflow: visible !important;
  }

  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown-row,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row,
  .wpi-global-header .main-nav .wpi-nav-dropdown-row,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-row,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-row {
    position: relative !important;
    z-index: 2 !important;
  }

  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu {
    display: none !important;
    max-height: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body > .wpi-mobile-menu-portal.main-nav > .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: .75rem 0 1rem 0 !important;
    padding: .85rem 0 .1rem .8rem !important;
    border-top: 1px solid rgba(255,255,255,.12) !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
    overflow: visible !important;
    z-index: 1 !important;
    box-sizing: border-box !important;
  }

  body > .wpi-mobile-menu-portal.main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-global-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu {
    display: flex !important;
    flex-direction: column !important;
    gap: .28rem !important;
  }

  body > .wpi-mobile-menu-portal.main-nav > .wpi-mobile-services-menu > a,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu > a,
  .wpi-global-header .main-nav > .wpi-mobile-services-menu > a,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu > a,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu > a {
    position: relative !important;
    min-height: 2.65rem !important;
    padding: .68rem .85rem .68rem 1.05rem !important;
    border-left: 2px solid rgba(210,4,4,.62) !important;
    border-radius: .7rem !important;
    background: rgba(255,255,255,.035) !important;
    box-sizing: border-box !important;
  }
}

/* ========================================================================== 
   v1.0.212 Proper mobile Services submenu flow fix
   - Uses the real nested Services dropdown on mobile instead of the extra
     sibling menu, so the submenu opens directly below the Services row.
   - Prevents overlap by keeping the dropdown in normal document flow.
   - Scoped to mobile/portrait drawer only; desktop/tablet desktop nav untouched.
   ========================================================================== */
@media (max-width: 900px) {
  /* The old sibling mobile list caused inconsistent spacing/overlap on real devices. */
  body > .wpi-mobile-menu-portal.main-nav > .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu,
  body > .wpi-mobile-menu-portal.main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-global-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-menu {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown,
  .wpi-global-header .main-nav .wpi-nav-dropdown,
  .wpi-sp-header .main-nav .wpi-nav-dropdown,
  .wpi-standard-header .main-nav .wpi-nav-dropdown {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
    z-index: auto !important;
  }

  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown-row,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row,
  .wpi-global-header .main-nav .wpi-nav-dropdown-row,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-row,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-row {
    position: relative !important;
    z-index: 2 !important;
    display: flex !important;
    align-items: stretch !important;
    width: 100% !important;
    min-height: 3.45rem !important;
    margin: 0 !important;
    overflow: hidden !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-radius: .95rem !important;
    background: rgba(255,255,255,.045) !important;
    box-sizing: border-box !important;
  }

  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    min-height: 3.45rem !important;
    margin: 0 !important;
    padding: .95rem 1rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
  }

  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret {
    position: static !important;
    flex: 0 0 3.4rem !important;
    width: 3.4rem !important;
    min-width: 3.4rem !important;
    min-height: 3.45rem !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-left: 1px solid rgba(255,255,255,.13) !important;
    border-radius: 0 !important;
    background: rgba(255,255,255,.06) !important;
    transform: none !important;
  }

  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret {
    background: rgba(210,4,4,.24) !important;
    transform: none !important;
  }

  /* Closed state: nested menu is completely out of flow. */
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown:not(.is-open) > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:not(.is-open) > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav .wpi-nav-dropdown:not(.is-open) > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown:not(.is-open) > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown:not(.is-open) > .wpi-nav-dropdown-menu,
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown:hover:not(.is-open) > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:hover:not(.is-open) > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav .wpi-nav-dropdown:hover:not(.is-open) > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown:hover:not(.is-open) > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown:hover:not(.is-open) > .wpi-nav-dropdown-menu,
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown:focus-within:not(.is-open) > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown:focus-within:not(.is-open) > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav .wpi-nav-dropdown:focus-within:not(.is-open) > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown:focus-within:not(.is-open) > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown:focus-within:not(.is-open) > .wpi-nav-dropdown-menu {
    display: none !important;
    max-height: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    overflow: hidden !important;
  }

  /* Open state: submenu sits just below Services and pushes all later links down. */
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu {
    position: static !important;
    inset: auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    margin: .55rem 0 .65rem !important;
    padding: .6rem 0 0 .78rem !important;
    gap: .28rem !important;
    border: 0 !important;
    border-top: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    overflow: visible !important;
    transform: none !important;
    transition: none !important;
    box-sizing: border-box !important;
  }

  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu::before,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu::before,
  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu::before,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu::before,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu::before {
    display: none !important;
    content: none !important;
  }

  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu > a,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu > a,
  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu > a,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu > a,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu > a {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    min-height: 2.65rem !important;
    margin: 0 !important;
    padding: .68rem .85rem .68rem 1.05rem !important;
    border: 0 !important;
    border-left: 2px solid rgba(210,4,4,.62) !important;
    border-radius: .7rem !important;
    background: rgba(255,255,255,.035) !important;
    color: rgba(255,255,255,.92) !important;
    font-size: .88rem !important;
    line-height: 1.22 !important;
    text-align: left !important;
    white-space: normal !important;
    box-sizing: border-box !important;
  }

  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu > .wpi-nav-dropdown-cta,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu > .wpi-nav-dropdown-cta,
  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu > .wpi-nav-dropdown-cta,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu > .wpi-nav-dropdown-cta,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open > .wpi-nav-dropdown-menu > .wpi-nav-dropdown-cta {
    margin-top: .25rem !important;
    justify-content: center !important;
    text-align: center !important;
    border-left: 0 !important;
    background: #d20404 !important;
    color: #fff !important;
  }
}

/* ========================================================================== 
   v1.0.213 Deep mobile submenu, tablet service hero, and Best For QA fixes
   ========================================================================== */
@media (min-width: 1181px) {
  .wpi-mobile-services-panel {
    display: none !important;
  }
}

@media (max-width: 1180px) {
  html,
  body {
    overflow-x: hidden !important;
  }

  /* Hide both old mobile submenu experiments and the desktop dropdown on mobile. */
  .wpi-mobile-services-menu,
  body > .wpi-mobile-menu-portal.main-nav > .wpi-mobile-services-menu,
  .wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu,
  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu,
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown > .wpi-nav-dropdown-menu {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  .wpi-global-header .main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-sp-header .main-nav,
  .wpi-standard-header .main-nav,
  body > .wpi-mobile-menu-portal.main-nav {
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: .55rem !important;
    text-align: left !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  body.menu-open .wpi-global-header .main-nav,
  body.wpi-menu-open .wpi-global-header .main-nav,
  body.menu-open .site-header.wpi-global-header .main-nav,
  body.wpi-menu-open .site-header.wpi-global-header .main-nav,
  body.menu-open .wpi-sp-header .main-nav,
  body.wpi-menu-open .wpi-sp-header .main-nav,
  body.menu-open .wpi-standard-header .main-nav,
  body.wpi-menu-open .wpi-standard-header .main-nav,
  body.menu-open > .wpi-mobile-menu-portal.main-nav,
  body.wpi-menu-open > .wpi-mobile-menu-portal.main-nav {
    display: flex !important;
  }

  .wpi-global-header .main-nav > a,
  .site-header.wpi-global-header .main-nav > a,
  .wpi-sp-header .main-nav > a,
  .wpi-standard-header .main-nav > a,
  body > .wpi-mobile-menu-portal.main-nav > a {
    position: static !important;
    float: none !important;
    clear: both !important;
    z-index: auto !important;
    order: initial !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 3.45rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin: 0 !important;
    padding: .95rem 1rem !important;
    box-sizing: border-box !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-radius: .95rem !important;
    background: rgba(255,255,255,.045) !important;
    color: #fff !important;
    font-size: .98rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    text-decoration: none !important;
    white-space: normal !important;
    transform: none !important;
  }

  .wpi-global-header .main-nav > .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown,
  body > .wpi-mobile-menu-portal.main-nav > .wpi-nav-dropdown {
    position: static !important;
    float: none !important;
    clear: both !important;
    z-index: auto !important;
    order: initial !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
    transform: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown-row,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-row,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-row,
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown-row {
    position: static !important;
    display: flex !important;
    align-items: stretch !important;
    width: 100% !important;
    min-height: 3.45rem !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    border: 1px solid rgba(255,255,255,.13) !important;
    border-radius: .95rem !important;
    background: rgba(255,255,255,.045) !important;
    overflow: hidden !important;
    transform: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label,
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-label {
    position: static !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    min-height: 3.45rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin: 0 !important;
    padding: .95rem 1rem !important;
    box-sizing: border-box !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #fff !important;
    font-size: .98rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    text-decoration: none !important;
    transform: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret {
    position: static !important;
    flex: 0 0 3.45rem !important;
    width: 3.45rem !important;
    min-width: 3.45rem !important;
    min-height: 3.45rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-left: 1px solid rgba(255,255,255,.13) !important;
    border-radius: 0 !important;
    background: rgba(255,255,255,.055) !important;
    color: #fff !important;
    font-size: .92rem !important;
    line-height: 1 !important;
    transform: none !important;
    cursor: pointer !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret,
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown.is-open .wpi-nav-dropdown-row > .wpi-nav-dropdown-caret {
    background: rgba(210,4,4,.25) !important;
  }

  .wpi-mobile-services-panel,
  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel,
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel {
    position: static !important;
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: .7rem 0 .55rem !important;
    padding: .75rem 0 .25rem .75rem !important;
    gap: .3rem !important;
    box-sizing: border-box !important;
    border-top: 1px solid rgba(255,255,255,.12) !important;
    border-left: 2px solid #d20404 !important;
    border-radius: 0 0 .85rem .85rem !important;
    background: rgba(0,0,0,.22) !important;
    box-shadow: none !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
  }

  .wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-mobile-services-panel,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown.is-open > .wpi-mobile-services-panel,
  .wpi-sp-header .main-nav .wpi-nav-dropdown.is-open > .wpi-mobile-services-panel,
  .wpi-standard-header .main-nav .wpi-nav-dropdown.is-open > .wpi-mobile-services-panel,
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown.is-open > .wpi-mobile-services-panel {
    display: flex !important;
  }

  .wpi-mobile-services-panel > a,
  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel > a,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel > a,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel > a,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel > a,
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel > a {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 2.7rem !important;
    margin: 0 !important;
    padding: .68rem .85rem .68rem 1rem !important;
    box-sizing: border-box !important;
    border: 0 !important;
    border-left: 2px solid rgba(210,4,4,.62) !important;
    border-radius: .7rem !important;
    background: rgba(255,255,255,.035) !important;
    color: rgba(255,255,255,.92) !important;
    font-size: .88rem !important;
    font-weight: 750 !important;
    line-height: 1.22 !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    text-decoration: none !important;
    white-space: normal !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
  }

  .wpi-mobile-services-panel > .wpi-nav-dropdown-cta,
  .wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel > .wpi-nav-dropdown-cta,
  .site-header.wpi-global-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel > .wpi-nav-dropdown-cta,
  .wpi-sp-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel > .wpi-nav-dropdown-cta,
  .wpi-standard-header .main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel > .wpi-nav-dropdown-cta,
  body > .wpi-mobile-menu-portal.main-nav .wpi-nav-dropdown > .wpi-mobile-services-panel > .wpi-nav-dropdown-cta {
    justify-content: center !important;
    text-align: center !important;
    border-left: 0 !important;
    background: #d20404 !important;
    color: #fff !important;
    font-weight: 850 !important;
    margin-top: .2rem !important;
  }
}

/* Tablet individual-service heroes should align like the mobile hero: centered, balanced, and not split awkwardly. */
@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-individual-service-page .wpi-isvc-hero,
  .wpi-individual-service-page .wpi-isvc-hero.wpi-editable-hero {
    overflow: hidden !important;
    min-height: auto !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    grid-template-columns: 1fr !important;
    width: min(calc(100% - 3rem), 58rem) !important;
    max-width: min(calc(100% - 3rem), 58rem) !important;
    min-height: 0 !important;
    padding-top: clamp(3.4rem, 5vw, 5.2rem) !important;
    padding-bottom: clamp(4.8rem, 6vw, 6.7rem) !important;
    gap: 2.2rem !important;
    text-align: center !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-copy {
    width: 100% !important;
    max-width: 54rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-copy .eyebrow {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-copy h1 {
    width: 100% !important;
    max-width: 54rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
    font-size: clamp(3.2rem, 6.25vw, 5.1rem) !important;
    line-height: .98 !important;
    text-align: center !important;
    text-wrap: balance !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-copy h1 span,
  .wpi-individual-service-page .wpi-isvc-hero-copy p {
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-copy p {
    max-width: 43rem !important;
    font-size: clamp(1.08rem, 1.75vw, 1.26rem) !important;
    line-height: 1.55 !important;
  }

  .wpi-individual-service-page .wpi-isvc-actions {
    justify-content: center !important;
    align-items: center !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-media {
    position: relative !important;
    inset: auto !important;
    order: 2 !important;
    width: min(100%, 44rem) !important;
    max-width: 44rem !important;
    min-height: clamp(18rem, 30vw, 23rem) !important;
    height: clamp(18rem, 30vw, 23rem) !important;
    margin: 0 auto !important;
    transform: none !important;
    border-radius: 1.35rem !important;
    overflow: hidden !important;
  }

  .wpi-individual-service-page .wpi-isvc-hero-media img,
  .wpi-individual-service-page .wpi-isvc-hero-media video {
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
  }
}

/* Best For card images: keep cards consistent after the unique image repair. */
@media (max-width: 1180px) {
  .wpi-individual-service-page .wpi-isvc-best-grid {
    align-items: stretch !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card {
    height: 100% !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card figure {
    flex: 0 0 auto !important;
    height: clamp(13rem, 26vw, 20rem) !important;
    min-height: clamp(13rem, 26vw, 20rem) !important;
    overflow: hidden !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card figure img,
  .wpi-individual-service-page .wpi-isvc-best-card figure video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-caption {
    flex: 1 1 auto !important;
  }
}

/* ========================================================================== 
   v1.0.214 Real-mobile submenu final reset + Best For layout polish
   ========================================================================== */
@media (min-width: 901px) {
  .wpi-mobile-services-panel-flow {
    display: none !important;
  }
}

@media (max-width: 900px) {
  /* Use one flow-based mobile Services submenu only. Hide every older duplicate. */
  .wpi-mobile-services-menu,
  body > .wpi-mobile-menu-portal.main-nav > .wpi-mobile-services-menu,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .wpi-global-header .main-nav > .wpi-mobile-services-menu,
  .wpi-sp-header .main-nav > .wpi-mobile-services-menu,
  .wpi-standard-header .main-nav > .wpi-mobile-services-menu,
  .wpi-nav-dropdown > .wpi-mobile-services-panel:not(.wpi-mobile-services-panel-flow) {
    display: none !important;
    height: 0 !important;
    max-height: 0 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  body > .wpi-mobile-menu-portal.main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-global-header .main-nav,
  .wpi-sp-header .main-nav,
  .wpi-standard-header .main-nav {
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: .55rem !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }

  body.menu-open > .wpi-mobile-menu-portal.main-nav,
  body.wpi-menu-open > .wpi-mobile-menu-portal.main-nav,
  body.menu-open .site-header.wpi-global-header .main-nav,
  body.wpi-menu-open .site-header.wpi-global-header .main-nav,
  body.menu-open .wpi-global-header .main-nav,
  body.wpi-menu-open .wpi-global-header .main-nav,
  body.menu-open .wpi-sp-header .main-nav,
  body.wpi-menu-open .wpi-sp-header .main-nav,
  body.menu-open .wpi-standard-header .main-nav,
  body.wpi-menu-open .wpi-standard-header .main-nav {
    display: flex !important;
  }

  body > .wpi-mobile-menu-portal.main-nav > a,
  .site-header.wpi-global-header .main-nav > a,
  .wpi-global-header .main-nav > a,
  .wpi-sp-header .main-nav > a,
  .wpi-standard-header .main-nav > a,
  body > .wpi-mobile-menu-portal.main-nav > .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown,
  .wpi-global-header .main-nav > .wpi-nav-dropdown,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown,
  body > .wpi-mobile-menu-portal.main-nav > .wpi-mobile-services-panel-flow,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-panel-flow,
  .wpi-global-header .main-nav > .wpi-mobile-services-panel-flow,
  .wpi-sp-header .main-nav > .wpi-mobile-services-panel-flow,
  .wpi-standard-header .main-nav > .wpi-mobile-services-panel-flow {
    position: static !important;
    float: none !important;
    clear: both !important;
    z-index: auto !important;
    order: initial !important;
    transform: none !important;
    box-sizing: border-box !important;
  }

  body > .wpi-mobile-menu-portal.main-nav > .wpi-nav-dropdown,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown,
  .wpi-global-header .main-nav > .wpi-nav-dropdown,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body > .wpi-mobile-menu-portal.main-nav > .wpi-mobile-services-panel-flow,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-panel-flow,
  .wpi-global-header .main-nav > .wpi-mobile-services-panel-flow,
  .wpi-sp-header .main-nav > .wpi-mobile-services-panel-flow,
  .wpi-standard-header .main-nav > .wpi-mobile-services-panel-flow {
    display: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: -.2rem 0 .25rem 0 !important;
    padding: .35rem 0 .4rem .85rem !important;
    border: 0 !important;
    border-left: 2px solid #d20404 !important;
    border-radius: 0 0 .85rem .85rem !important;
    background: rgba(0,0,0,.18) !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    overflow: visible !important;
  }

  body > .wpi-mobile-menu-portal.main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-panel-flow,
  .site-header.wpi-global-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-panel-flow,
  .wpi-global-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-panel-flow,
  .wpi-sp-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-panel-flow,
  .wpi-standard-header .main-nav > .wpi-nav-dropdown.is-open + .wpi-mobile-services-panel-flow {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: .22rem !important;
  }

  body > .wpi-mobile-menu-portal.main-nav > .wpi-mobile-services-panel-flow > a,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-panel-flow > a,
  .wpi-global-header .main-nav > .wpi-mobile-services-panel-flow > a,
  .wpi-sp-header .main-nav > .wpi-mobile-services-panel-flow > a,
  .wpi-standard-header .main-nav > .wpi-mobile-services-panel-flow > a {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 2.45rem !important;
    margin: 0 !important;
    padding: .62rem .85rem .62rem 1rem !important;
    border: 0 !important;
    border-left: 2px solid rgba(210,4,4,.62) !important;
    border-radius: .55rem !important;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(255,255,255,.92) !important;
    font-size: .84rem !important;
    font-weight: 760 !important;
    line-height: 1.22 !important;
    letter-spacing: .035em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    text-decoration: none !important;
    white-space: normal !important;
    box-sizing: border-box !important;
  }

  body > .wpi-mobile-menu-portal.main-nav > .wpi-mobile-services-panel-flow > .wpi-nav-dropdown-cta,
  .site-header.wpi-global-header .main-nav > .wpi-mobile-services-panel-flow > .wpi-nav-dropdown-cta,
  .wpi-global-header .main-nav > .wpi-mobile-services-panel-flow > .wpi-nav-dropdown-cta,
  .wpi-sp-header .main-nav > .wpi-mobile-services-panel-flow > .wpi-nav-dropdown-cta,
  .wpi-standard-header .main-nav > .wpi-mobile-services-panel-flow > .wpi-nav-dropdown-cta {
    margin-top: .25rem !important;
    justify-content: center !important;
    text-align: center !important;
    border-left: 0 !important;
    background: #d20404 !important;
    color: #fff !important;
    font-weight: 850 !important;
  }
}

.wpi-individual-service-page .wpi-isvc-best .section-heading,
.wpi-individual-service-page .wpi-isvc-best .section-heading.container-narrow {
  width: min(calc(100% - 2rem), 82rem) !important;
  max-width: 82rem !important;
}

.wpi-individual-service-page .wpi-isvc-best .section-heading h2 {
  max-width: 78rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (min-width: 1181px) {
  .wpi-individual-service-page .wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(5) {
    grid-column: 2 !important;
  }
  .wpi-individual-service-page .wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(6) {
    grid-column: 3 !important;
  }
}

/* ========================================================================== 
   v1.0.215 True mobile drawer reset
   - Mobile uses a separate, simple drawer so the Services links can never overlap
     Portfolio / Events / Merch / Contact.
   - Desktop/tablet desktop nav keeps the existing dropdown.
   ========================================================================== */
.wpi-mobile-drawer-nav {
  display: none;
}

@media (max-width: 900px) {
  /* Kill every old mobile menu/portal on real mobile. The v1.0.215 drawer below is the only visible mobile nav. */
  body > .wpi-mobile-menu-portal.main-nav,
  body.menu-open > .wpi-mobile-menu-portal.main-nav,
  body.wpi-menu-open > .wpi-mobile-menu-portal.main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-global-header .main-nav,
  .wpi-sp-header .main-nav,
  .wpi-standard-header .main-nav,
  body.menu-open .site-header.wpi-global-header .main-nav,
  body.wpi-menu-open .site-header.wpi-global-header .main-nav,
  body.menu-open .wpi-global-header .main-nav,
  body.wpi-menu-open .wpi-global-header .main-nav,
  body.menu-open .wpi-sp-header .main-nav,
  body.wpi-menu-open .wpi-sp-header .main-nav,
  body.menu-open .wpi-standard-header .main-nav,
  body.wpi-menu-open .wpi-standard-header .main-nav {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
  }

  .site-header.wpi-global-header,
  .wpi-global-header.site-header {
    position: relative !important;
    overflow: visible !important;
  }

  .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  .wpi-global-header.site-header .wpi-mobile-drawer-nav {
    position: fixed !important;
    top: var(--wpi-mobile-menu-top, 6.75rem) !important;
    left: max(.45rem, env(safe-area-inset-left)) !important;
    right: max(.45rem, env(safe-area-inset-right)) !important;
    z-index: 999999 !important;
    display: none !important;
    flex-direction: column !important;
    gap: .45rem !important;
    max-height: calc(100dvh - var(--wpi-mobile-menu-top, 6.75rem) - 1rem) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    padding: .55rem .45rem calc(.9rem + env(safe-area-inset-bottom)) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: .95rem !important;
    background: rgba(0,0,0,.96) !important;
    box-shadow: 0 1.4rem 3rem rgba(0,0,0,.45) !important;
    box-sizing: border-box !important;
  }

  body.menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  body.wpi-menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  body.menu-open .wpi-global-header.site-header .wpi-mobile-drawer-nav,
  body.wpi-menu-open .wpi-global-header.site-header .wpi-mobile-drawer-nav {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .wpi-mobile-drawer-nav a,
  .wpi-mobile-drawer-link,
  .wpi-mobile-drawer-services-label {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 3.1rem !important;
    margin: 0 !important;
    padding: .82rem .9rem !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: .75rem !important;
    background: rgba(255,255,255,.045) !important;
    color: #fff !important;
    font-family: var(--font-heading, "Clash Display", sans-serif) !important;
    font-size: .92rem !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    letter-spacing: .02em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
    white-space: normal !important;
  }

  .wpi-mobile-drawer-services {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  .wpi-mobile-drawer-services-label::after {
    content: "" !important;
    width: .48rem !important;
    height: .48rem !important;
    margin-left: auto !important;
    border-right: 2px solid #fff !important;
    border-bottom: 2px solid #fff !important;
    transform: rotate(45deg) !important;
    opacity: .9 !important;
  }

  .wpi-mobile-drawer-submenu {
    display: flex !important;
    flex-direction: column !important;
    gap: .12rem !important;
    width: calc(100% - .8rem) !important;
    margin: .35rem 0 .55rem .8rem !important;
    padding: .35rem 0 .35rem .65rem !important;
    border-left: 2px solid #d20404 !important;
    background: transparent !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  .wpi-mobile-drawer-submenu a {
    min-height: 2.32rem !important;
    padding: .6rem .72rem !important;
    border: 0 !important;
    border-radius: .45rem !important;
    background: transparent !important;
    color: rgba(255,255,255,.9) !important;
    font-size: .8rem !important;
    line-height: 1.2 !important;
    letter-spacing: .025em !important;
    box-shadow: none !important;
  }

  .wpi-mobile-drawer-submenu a:hover,
  .wpi-mobile-drawer-submenu a:focus-visible {
    background: rgba(210,4,4,.16) !important;
  }

  .wpi-mobile-drawer-cta {
    min-height: 3.35rem !important;
    justify-content: center !important;
    margin-top: .2rem !important;
    border-color: #d20404 !important;
    background: #d20404 !important;
    color: #fff !important;
    text-align: center !important;
  }
}

@media (min-width: 901px) {
  .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  .wpi-global-header.site-header .wpi-mobile-drawer-nav {
    display: none !important;
  }
}


/* ========================================================================== 
   v1.0.216 Global single-service Best For alignment
   - Applies the wider Best For heading and centered six-card second row to
     every individual service page, not only Fireworks Displays.
   ========================================================================== */
.wpi-individual-service-page .wpi-isvc-best,
main.wpi-individual-service-page .wpi-isvc-best {
  overflow: visible !important;
}

.wpi-individual-service-page .wpi-isvc-best > .section-heading,
.wpi-individual-service-page .wpi-isvc-best > .section-heading.container-narrow,
main.wpi-individual-service-page .wpi-isvc-best > .section-heading,
main.wpi-individual-service-page .wpi-isvc-best > .section-heading.container-narrow {
  width: min(calc(100% - 2rem), 88rem) !important;
  max-width: 88rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.wpi-individual-service-page .wpi-isvc-best > .section-heading h2,
main.wpi-individual-service-page .wpi-isvc-best > .section-heading h2 {
  width: min(100%, 82rem) !important;
  max-width: 82rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
  text-wrap: balance !important;
}

.wpi-individual-service-page .wpi-isvc-best-grid,
main.wpi-individual-service-page .wpi-isvc-best-grid {
  justify-content: center !important;
  align-items: stretch !important;
  overflow: visible !important;
}

@media (min-width: 1181px) {
  .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6,
  main.wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(5),
  main.wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(5) {
    grid-column: 2 !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(6),
  main.wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(6) {
    grid-column: 3 !important;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-individual-service-page .wpi-isvc-best > .section-heading,
  .wpi-individual-service-page .wpi-isvc-best > .section-heading.container-narrow,
  main.wpi-individual-service-page .wpi-isvc-best > .section-heading,
  main.wpi-individual-service-page .wpi-isvc-best > .section-heading.container-narrow {
    width: min(calc(100% - 2rem), 70rem) !important;
    max-width: 70rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best > .section-heading h2,
  main.wpi-individual-service-page .wpi-isvc-best > .section-heading h2 {
    width: min(100%, 66rem) !important;
    max-width: 66rem !important;
    font-size: clamp(2.9rem, 5.1vw, 4rem) !important;
    line-height: 1.02 !important;
  }
}

@media (max-width: 767px) {
  .wpi-individual-service-page .wpi-isvc-best > .section-heading,
  .wpi-individual-service-page .wpi-isvc-best > .section-heading.container-narrow,
  main.wpi-individual-service-page .wpi-isvc-best > .section-heading,
  main.wpi-individual-service-page .wpi-isvc-best > .section-heading.container-narrow {
    width: min(calc(100% - 1.5rem), 36rem) !important;
    max-width: 36rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best > .section-heading h2,
  main.wpi-individual-service-page .wpi-isvc-best > .section-heading h2 {
    width: min(100%, 35rem) !important;
    max-width: 35rem !important;
    font-size: clamp(2.65rem, 9.5vw, 3.55rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -.018em !important;
  }
}

/* ========================================================================== 
   v1.0.217 Final mobile drawer reset + global Best For layout hardening
   - Real mobile uses only the clean drawer nav, never the legacy .main-nav or portal.
   - Services links are always in normal flow under Services, so no overlap is possible.
   - Best For heading/6-card centering applies from the shared section classes.
   ========================================================================== */
@media (max-width: 900px) {
  body.menu-open,
  body.wpi-menu-open {
    overflow-x: hidden !important;
  }

  /* Do not let any previous mobile menu implementation show on real phones. */
  body > .wpi-mobile-menu-portal,
  body > .wpi-mobile-menu-portal.main-nav,
  body.menu-open > .wpi-mobile-menu-portal,
  body.wpi-menu-open > .wpi-mobile-menu-portal,
  .site-header .main-nav,
  .site-header.wpi-global-header .main-nav,
  .wpi-global-header .main-nav,
  .wpi-sp-header .main-nav,
  .wpi-standard-header .main-nav,
  body.menu-open .site-header .main-nav,
  body.wpi-menu-open .site-header .main-nav,
  body.menu-open .site-header.wpi-global-header .main-nav,
  body.wpi-menu-open .site-header.wpi-global-header .main-nav,
  body.menu-open .wpi-global-header .main-nav,
  body.wpi-menu-open .wpi-global-header .main-nav,
  body.menu-open .wpi-sp-header .main-nav,
  body.wpi-menu-open .wpi-sp-header .main-nav,
  body.menu-open .wpi-standard-header .main-nav,
  body.wpi-menu-open .wpi-standard-header .main-nav {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
    left: -9999px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    min-height: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
  }

  .site-header,
  .site-header.wpi-global-header,
  .wpi-global-header.site-header,
  .wpi-sp-header.site-header,
  .wpi-standard-header.site-header {
    position: relative !important;
    z-index: 2147483000 !important;
    overflow: visible !important;
  }

  .site-header .wpi-mobile-drawer-nav,
  .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  .wpi-global-header.site-header .wpi-mobile-drawer-nav,
  .wpi-sp-header.site-header .wpi-mobile-drawer-nav,
  .wpi-standard-header.site-header .wpi-mobile-drawer-nav {
    position: fixed !important;
    top: var(--wpi-mobile-menu-top, 6.75rem) !important;
    left: max(.45rem, env(safe-area-inset-left)) !important;
    right: max(.45rem, env(safe-area-inset-right)) !important;
    z-index: 2147483001 !important;
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: .45rem !important;
    width: auto !important;
    max-height: calc(100dvh - var(--wpi-mobile-menu-top, 6.75rem) - .8rem) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: .55rem .45rem calc(.95rem + env(safe-area-inset-bottom)) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: .95rem !important;
    background: rgba(0,0,0,.975) !important;
    box-shadow: 0 1.5rem 3rem rgba(0,0,0,.55) !important;
    transform: none !important;
  }

  body.menu-open .site-header .wpi-mobile-drawer-nav,
  body.wpi-menu-open .site-header .wpi-mobile-drawer-nav,
  body.menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  body.wpi-menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  body.menu-open .wpi-global-header.site-header .wpi-mobile-drawer-nav,
  body.wpi-menu-open .wpi-global-header.site-header .wpi-mobile-drawer-nav,
  body.menu-open .wpi-sp-header.site-header .wpi-mobile-drawer-nav,
  body.wpi-menu-open .wpi-sp-header.site-header .wpi-mobile-drawer-nav,
  body.menu-open .wpi-standard-header.site-header .wpi-mobile-drawer-nav,
  body.wpi-menu-open .wpi-standard-header.site-header .wpi-mobile-drawer-nav {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .wpi-mobile-drawer-nav .wpi-mobile-drawer-link,
  .wpi-mobile-drawer-nav > a:not(.wpi-mobile-drawer-cta),
  .wpi-mobile-drawer-services-label {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    min-height: 3.05rem !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: .8rem .9rem !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: .78rem !important;
    background: rgba(255,255,255,.045) !important;
    color: #fff !important;
    font-family: var(--font-heading, var(--display), sans-serif) !important;
    font-size: .9rem !important;
    font-weight: 850 !important;
    line-height: 1.18 !important;
    letter-spacing: .02em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    white-space: normal !important;
  }

  .wpi-mobile-drawer-services {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    overflow: visible !important;
  }

  .wpi-mobile-drawer-services-label::after {
    content: none !important;
  }

  .wpi-mobile-drawer-submenu {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    gap: .08rem !important;
    width: calc(100% - .85rem) !important;
    max-width: calc(100% - .85rem) !important;
    height: auto !important;
    max-height: none !important;
    box-sizing: border-box !important;
    margin: .38rem 0 .58rem .85rem !important;
    padding: .28rem 0 .28rem .62rem !important;
    border-left: 2px solid #d20404 !important;
    border-radius: 0 !important;
    background: transparent !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
  }

  .wpi-mobile-drawer-submenu a {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    min-height: 2.2rem !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: .5rem .65rem !important;
    border: 0 !important;
    border-radius: .42rem !important;
    background: transparent !important;
    color: rgba(255,255,255,.88) !important;
    font-family: var(--font-heading, var(--display), sans-serif) !important;
    font-size: .78rem !important;
    font-weight: 750 !important;
    line-height: 1.18 !important;
    letter-spacing: .02em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    white-space: normal !important;
  }

  .wpi-mobile-drawer-cta {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 3.35rem !important;
    box-sizing: border-box !important;
    margin: .15rem 0 0 !important;
    padding: .85rem 1rem !important;
    border: 1px solid #d20404 !important;
    border-radius: .78rem !important;
    background: #d20404 !important;
    color: #fff !important;
    font-family: var(--font-heading, var(--display), sans-serif) !important;
    font-size: .88rem !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    letter-spacing: .025em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    text-decoration: none !important;
  }
}

@media (min-width: 901px) {
  .site-header .wpi-mobile-drawer-nav,
  .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  .wpi-global-header.site-header .wpi-mobile-drawer-nav,
  .wpi-sp-header.site-header .wpi-mobile-drawer-nav,
  .wpi-standard-header.site-header .wpi-mobile-drawer-nav {
    display: none !important;
  }
}

/* Best For heading and 6-card row centering: use only shared classes so it applies to every service. */
.wpi-isvc-best > .section-heading,
.wpi-isvc-best > .section-heading.container-narrow,
.wpi-individual-service-page .wpi-isvc-best > .section-heading,
.wpi-individual-service-page .wpi-isvc-best > .section-heading.container-narrow {
  width: min(calc(100% - 2rem), 92rem) !important;
  max-width: 92rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.wpi-isvc-best > .section-heading h2,
.wpi-individual-service-page .wpi-isvc-best > .section-heading h2 {
  width: min(100%, 88rem) !important;
  max-width: 88rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

@media (min-width: 1181px) {
  .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6,
  .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(5),
  .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(5) {
    grid-column: 2 !important;
  }

  .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(6),
  .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(6) {
    grid-column: 3 !important;
  }
}


/* ========================================================================== 
   v1.0.218 Final mobile submenu reset + real Best For centering
   - Real mobile uses only the purpose-built .wpi-mobile-drawer-nav.
   - Legacy cloned body portal and .main-nav mobile dropdowns are fully disabled.
   - Services submenu is normal document flow under Services, never absolute/fixed.
   - 6-card Best For grids use flex wrapping so the 2-card row centers reliably.
   ========================================================================== */
@media (max-width: 900px) {
  html body > .wpi-mobile-menu-portal,
  html body > nav.wpi-mobile-menu-portal,
  html body > .wpi-mobile-menu-portal.main-nav,
  html body.menu-open > .wpi-mobile-menu-portal,
  html body.wpi-menu-open > .wpi-mobile-menu-portal,
  html body.wpi-mobile-portal-ready.menu-open > .wpi-mobile-menu-portal,
  html body.wpi-mobile-portal-ready.wpi-menu-open > .wpi-mobile-menu-portal,
  html body.wpi-mobile-portal-ready.menu-open:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav,
  html body.wpi-mobile-portal-ready.wpi-menu-open:not(.home):not(.front-page) > .wpi-mobile-menu-portal.main-nav {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: fixed !important;
    inset: auto auto auto -99999px !important;
    width: 1px !important;
    height: 1px !important;
    max-width: 1px !important;
    max-height: 1px !important;
    overflow: hidden !important;
  }

  html body .site-header .main-nav:not(.wpi-mobile-drawer-nav),
  html body .site-header.wpi-global-header .main-nav:not(.wpi-mobile-drawer-nav),
  html body .wpi-global-header.site-header .main-nav:not(.wpi-mobile-drawer-nav),
  html body .wpi-sp-header.site-header .main-nav:not(.wpi-mobile-drawer-nav),
  html body .wpi-standard-header.site-header .main-nav:not(.wpi-mobile-drawer-nav),
  html body.menu-open .site-header .main-nav:not(.wpi-mobile-drawer-nav),
  html body.wpi-menu-open .site-header .main-nav:not(.wpi-mobile-drawer-nav),
  html body.menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-drawer-nav),
  html body.wpi-menu-open .site-header.wpi-global-header .main-nav:not(.wpi-mobile-drawer-nav),
  html body.wpi-mobile-portal-ready .site-header .main-nav:not(.wpi-mobile-drawer-nav),
  html body.wpi-mobile-portal-ready .site-header.wpi-global-header .main-nav:not(.wpi-mobile-drawer-nav) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
    left: -99999px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    max-width: 1px !important;
    max-height: 1px !important;
    min-height: 0 !important;
    overflow: hidden !important;
  }

  html body .site-header,
  html body .site-header.wpi-global-header,
  html body .wpi-global-header.site-header {
    overflow: visible !important;
    isolation: auto !important;
    z-index: 2147483000 !important;
  }

  html body .site-header .wpi-mobile-drawer-nav,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  html body .wpi-global-header.site-header .wpi-mobile-drawer-nav,
  html body .wpi-sp-header.site-header .wpi-mobile-drawer-nav,
  html body .wpi-standard-header.site-header .wpi-mobile-drawer-nav {
    position: fixed !important;
    top: var(--wpi-mobile-menu-top, 6.75rem) !important;
    left: max(.55rem, env(safe-area-inset-left)) !important;
    right: max(.55rem, env(safe-area-inset-right)) !important;
    z-index: 2147483646 !important;
    display: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: .48rem !important;
    width: auto !important;
    max-height: calc(100dvh - var(--wpi-mobile-menu-top, 6.75rem) - .8rem) !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: .6rem .5rem calc(1rem + env(safe-area-inset-bottom)) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 1rem !important;
    background: rgba(0,0,0,.985) !important;
    box-shadow: 0 1.4rem 3.2rem rgba(0,0,0,.62) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain !important;
    transform: none !important;
  }

  html body.menu-open .site-header .wpi-mobile-drawer-nav,
  html body.wpi-menu-open .site-header .wpi-mobile-drawer-nav,
  html body.menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  html body.wpi-menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  html body.menu-open .wpi-global-header.site-header .wpi-mobile-drawer-nav,
  html body.wpi-menu-open .wpi-global-header.site-header .wpi-mobile-drawer-nav,
  html body.menu-open .wpi-sp-header.site-header .wpi-mobile-drawer-nav,
  html body.wpi-menu-open .wpi-sp-header.site-header .wpi-mobile-drawer-nav,
  html body.menu-open .wpi-standard-header.site-header .wpi-mobile-drawer-nav,
  html body.wpi-menu-open .wpi-standard-header.site-header .wpi-mobile-drawer-nav {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  html body .wpi-mobile-drawer-nav .wpi-mobile-drawer-link,
  html body .wpi-mobile-drawer-nav > a:not(.wpi-mobile-drawer-cta),
  html body .wpi-mobile-drawer-nav .wpi-mobile-drawer-services-label {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    min-height: 3rem !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: .78rem .9rem !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: .78rem !important;
    background: rgba(255,255,255,.045) !important;
    color: #fff !important;
    font-family: var(--font-heading, var(--display), sans-serif) !important;
    font-size: .9rem !important;
    font-weight: 850 !important;
    line-height: 1.18 !important;
    letter-spacing: .02em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    white-space: normal !important;
    transform: none !important;
  }

  html body .wpi-mobile-drawer-services {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    overflow: visible !important;
    transform: none !important;
  }

  html body .wpi-mobile-drawer-services-label {
    margin-bottom: .42rem !important;
  }

  html body .wpi-mobile-drawer-submenu {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: .12rem !important;
    width: calc(100% - 1rem) !important;
    max-width: calc(100% - 1rem) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    box-sizing: border-box !important;
    margin: 0 0 .55rem 1rem !important;
    padding: .2rem 0 .22rem .68rem !important;
    border-left: 2px solid #d20404 !important;
    border-radius: 0 !important;
    background: transparent !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
    float: none !important;
    clear: both !important;
    z-index: auto !important;
  }

  html body .wpi-mobile-drawer-submenu a {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    min-height: 2.15rem !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    padding: .48rem .6rem !important;
    border: 0 !important;
    border-radius: .45rem !important;
    background: transparent !important;
    color: rgba(255,255,255,.9) !important;
    font-family: var(--font-heading, var(--display), sans-serif) !important;
    font-size: .78rem !important;
    font-weight: 760 !important;
    line-height: 1.18 !important;
    letter-spacing: .02em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    white-space: normal !important;
    transform: none !important;
  }

  html body .wpi-mobile-drawer-cta {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 3.2rem !important;
    box-sizing: border-box !important;
    margin: .05rem 0 0 !important;
    padding: .82rem 1rem !important;
    border: 1px solid #d20404 !important;
    border-radius: .78rem !important;
    background: #d20404 !important;
    color: #fff !important;
    font-family: var(--font-heading, var(--display), sans-serif) !important;
    font-size: .88rem !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    letter-spacing: .025em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    text-decoration: none !important;
  }
}

/* Make the Best For heading wider everywhere. */
.wpi-isvc-best > .section-heading,
.wpi-isvc-best > .section-heading.container-narrow,
.wpi-individual-service-page .wpi-isvc-best > .section-heading,
.wpi-individual-service-page .wpi-isvc-best > .section-heading.container-narrow,
main.wpi-individual-service-page .wpi-isvc-best > .section-heading,
main.wpi-individual-service-page .wpi-isvc-best > .section-heading.container-narrow {
  width: min(calc(100% - 2rem), 96rem) !important;
  max-width: 96rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.wpi-isvc-best > .section-heading h2,
.wpi-individual-service-page .wpi-isvc-best > .section-heading h2,
main.wpi-individual-service-page .wpi-isvc-best > .section-heading h2 {
  width: 100% !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  text-wrap: balance !important;
}

/* Center a 2-card final row when a Best For section has exactly six cards. */
@media (min-width: 1181px) {
  .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6,
  .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6,
  main.wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6,
  .wpi-isvc-best-grid:has(> .wpi-isvc-best-card:nth-child(6):last-child),
  .wpi-individual-service-page .wpi-isvc-best-grid:has(> .wpi-isvc-best-card:nth-child(6):last-child),
  main.wpi-individual-service-page .wpi-isvc-best-grid:has(> .wpi-isvc-best-card:nth-child(6):last-child) {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    gap: 0 !important;
    width: min(100%, 96rem) !important;
    max-width: 96rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card,
  .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card,
  main.wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card,
  .wpi-isvc-best-grid:has(> .wpi-isvc-best-card:nth-child(6):last-child) > .wpi-isvc-best-card,
  .wpi-individual-service-page .wpi-isvc-best-grid:has(> .wpi-isvc-best-card:nth-child(6):last-child) > .wpi-isvc-best-card,
  main.wpi-individual-service-page .wpi-isvc-best-grid:has(> .wpi-isvc-best-card:nth-child(6):last-child) > .wpi-isvc-best-card {
    flex: 0 0 25% !important;
    max-width: 25% !important;
    width: 25% !important;
    grid-column: auto !important;
    box-sizing: border-box !important;
  }
}

@media (min-width: 768px) and (max-width: 1180px) {
  .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6,
  .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6,
  main.wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    gap: 0 !important;
    width: min(100%, 92rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card,
  .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card,
  main.wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card {
    flex: 0 0 50% !important;
    max-width: 50% !important;
    width: 50% !important;
    grid-column: auto !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 767px) {
  .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card,
  .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card,
  main.wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }
}


/* ========================================================================== 
   v1.0.219 Final mobile submenu + services button alignment
   ========================================================================== */
@media (max-width: 900px) {
  /* The clean drawer submenu is CLOSED by default. It only opens after tapping Services. */
  html body .wpi-mobile-drawer-services {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  html body .wpi-mobile-drawer-services-toggle {
    appearance: none !important;
    -webkit-appearance: none !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: .78rem !important;
    background: rgba(255,255,255,.045) !important;
    cursor: pointer !important;
    text-align: left !important;
  }

  html body .wpi-mobile-drawer-services-toggle span {
    display: block !important;
    min-width: 0 !important;
  }

  html body .wpi-mobile-drawer-services-toggle .wpi-mobile-drawer-caret,
  html body .wpi-mobile-drawer-services-toggle::after {
    content: "" !important;
    display: block !important;
    width: .55rem !important;
    height: .55rem !important;
    margin-left: auto !important;
    flex: 0 0 .55rem !important;
    border-right: 2px solid currentColor !important;
    border-bottom: 2px solid currentColor !important;
    transform: rotate(45deg) !important;
    transition: transform .18s ease !important;
    opacity: .95 !important;
  }

  html body .wpi-mobile-drawer-services.is-open .wpi-mobile-drawer-services-toggle .wpi-mobile-drawer-caret,
  html body .wpi-mobile-drawer-services.is-open .wpi-mobile-drawer-services-toggle::after {
    transform: rotate(225deg) !important;
  }

  html body .wpi-mobile-drawer-services:not(.is-open) > .wpi-mobile-drawer-submenu,
  html body .wpi-mobile-drawer-services > .wpi-mobile-drawer-submenu[hidden] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    height: 0 !important;
    max-height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
  }

  html body .wpi-mobile-drawer-services.is-open > .wpi-mobile-drawer-submenu {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: calc(100% - 1rem) !important;
    max-width: calc(100% - 1rem) !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    margin: .45rem 0 .55rem 1rem !important;
    padding: .2rem 0 .22rem .68rem !important;
    border-left: 2px solid #d20404 !important;
    background: transparent !important;
    overflow: visible !important;
    pointer-events: auto !important;
  }

  html body .wpi-mobile-drawer-services.is-open > .wpi-mobile-drawer-submenu a {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    min-height: 2.15rem !important;
    padding: .48rem .6rem !important;
    border: 0 !important;
    border-radius: .45rem !important;
    background: transparent !important;
    color: rgba(255,255,255,.9) !important;
    font-size: .78rem !important;
    font-weight: 760 !important;
    line-height: 1.18 !important;
    text-align: left !important;
    text-transform: uppercase !important;
  }

  /* Main Services page: keep EXPLORE buttons left aligned on mobile. */
  html body .wpi-services-page .wpi-sp-services .wpi-sp-service-body a {
    margin-left: 0 !important;
    margin-right: auto !important;
    align-self: flex-start !important;
  }
}

/* v1.0.219 caret cleanup: use the real <i> caret only, not a duplicate pseudo caret. */
@media (max-width: 900px) {
  html body .wpi-mobile-drawer-services-toggle::after {
    content: none !important;
    display: none !important;
  }
  html body .wpi-mobile-drawer-services-toggle .wpi-mobile-drawer-caret {
    display: block !important;
    width: .55rem !important;
    height: .55rem !important;
    margin-left: auto !important;
    flex: 0 0 .55rem !important;
    border-right: 2px solid currentColor !important;
    border-bottom: 2px solid currentColor !important;
    transform: rotate(45deg) !important;
    transition: transform .18s ease !important;
    opacity: .95 !important;
  }
  html body .wpi-mobile-drawer-services.is-open .wpi-mobile-drawer-services-toggle .wpi-mobile-drawer-caret {
    transform: rotate(225deg) !important;
  }
}


/* ========================================================================== 
   v1.0.221 Final header breakpoint + preserved service content cleanup
   - Base is v1.0.219 to preserve restored single-service extra content.
   - Hamburger/mobile drawer is used through 1024px.
   - Desktop menu returns from 1025px.
   - Homepage service buttons align left on mobile.
   - Homepage Services rows stack safely on tablet so H3/copy cannot overlap.
   - Best For 6-card rows center the final row with one non-conflicting rule.
   ========================================================================== */
html,
body {
  max-width: 100% !important;
  overflow-x: hidden !important;
}

@media (max-width: 1024px) {
  html body .site-header,
  html body .site-header.wpi-global-header,
  html body .wpi-global-header.site-header,
  html body .wpi-sp-header.site-header,
  html body .wpi-standard-header.site-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 2147482500 !important;
    overflow: visible !important;
  }

  /* Hide every old desktop/legacy menu on tablet/mobile. */
  html body .site-header .main-nav,
  html body .site-header.wpi-global-header .main-nav,
  html body .wpi-global-header.site-header .main-nav,
  html body .wpi-sp-header.site-header .main-nav,
  html body .wpi-standard-header.site-header .main-nav,
  html body .wpi-mobile-menu-portal,
  html body .wpi-mobile-services-panel,
  html body .wpi-nav-dropdown-menu {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  /* Hamburger is the only menu trigger through 1024px. */
  html body .site-header .mobile-menu-toggle,
  html body .site-header.wpi-global-header .mobile-menu-toggle,
  html body .wpi-global-header.site-header .mobile-menu-toggle,
  html body .wpi-sp-header.site-header .mobile-menu-toggle,
  html body .wpi-standard-header.site-header .mobile-menu-toggle,
  html body .wpi-header-actions .mobile-menu-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    width: 3.65rem !important;
    height: 3.65rem !important;
    margin-left: .45rem !important;
    border: 1px solid rgba(255,255,255,.55) !important;
    border-radius: 999px !important;
    background: rgba(0,0,0,.48) !important;
    color: #fff !important;
    cursor: pointer !important;
    z-index: 2147482600 !important;
  }

  html body .site-header .mobile-menu-toggle span,
  html body .site-header .mobile-menu-toggle span::before,
  html body .site-header .mobile-menu-toggle span::after {
    width: 1.55rem !important;
    height: 2px !important;
    background: currentColor !important;
  }

  html body.menu-open .site-header .mobile-menu-toggle span,
  html body.wpi-menu-open .site-header .mobile-menu-toggle span {
    background: transparent !important;
  }

  html body.menu-open .site-header .mobile-menu-toggle span::before,
  html body.wpi-menu-open .site-header .mobile-menu-toggle span::before {
    top: 0 !important;
    transform: rotate(45deg) !important;
  }

  html body.menu-open .site-header .mobile-menu-toggle span::after,
  html body.wpi-menu-open .site-header .mobile-menu-toggle span::after {
    top: 0 !important;
    transform: rotate(-45deg) !important;
  }

  /* Drawer is completely closed by default, including the 1000px-1024px range. */
  html body .site-header .wpi-mobile-drawer-nav,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  html body .wpi-global-header.site-header .wpi-mobile-drawer-nav,
  html body .wpi-sp-header.site-header .wpi-mobile-drawer-nav,
  html body .wpi-standard-header.site-header .wpi-mobile-drawer-nav {
    display: none !important;
    position: fixed !important;
    top: var(--wpi-mobile-menu-top, 6.95rem) !important;
    left: max(1rem, env(safe-area-inset-left)) !important;
    right: max(1rem, env(safe-area-inset-right)) !important;
    width: auto !important;
    max-width: none !important;
    max-height: calc(100dvh - var(--wpi-mobile-menu-top, 6.95rem) - 1rem) !important;
    margin: 0 !important;
    padding: .9rem !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    border-radius: 1rem !important;
    background: rgba(8,8,10,.98) !important;
    box-shadow: 0 1.2rem 3.5rem rgba(0,0,0,.45) !important;
    z-index: 2147482550 !important;
    transform: none !important;
  }

  html body.menu-open .site-header .wpi-mobile-drawer-nav,
  html body.wpi-menu-open .site-header .wpi-mobile-drawer-nav,
  html body.menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  html body.wpi-menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  html body.menu-open .wpi-global-header.site-header .wpi-mobile-drawer-nav,
  html body.wpi-menu-open .wpi-global-header.site-header .wpi-mobile-drawer-nav,
  html body.menu-open .wpi-sp-header.site-header .wpi-mobile-drawer-nav,
  html body.wpi-menu-open .wpi-sp-header.site-header .wpi-mobile-drawer-nav,
  html body.menu-open .wpi-standard-header.site-header .wpi-mobile-drawer-nav,
  html body.wpi-menu-open .wpi-standard-header.site-header .wpi-mobile-drawer-nav {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: .45rem !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  html body .wpi-mobile-drawer-link,
  html body .wpi-mobile-drawer-services-toggle,
  html body .wpi-mobile-drawer-cta {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    box-sizing: border-box !important;
    min-height: 3.2rem !important;
    padding: .82rem .95rem !important;
    border-radius: .78rem !important;
    text-align: left !important;
    text-decoration: none !important;
    line-height: 1.15 !important;
    white-space: normal !important;
  }

  html body .wpi-mobile-drawer-services-toggle {
    border: 1px solid rgba(255,255,255,.16) !important;
    background: rgba(255,255,255,.045) !important;
    color: #fff !important;
  }

  html body .wpi-mobile-drawer-caret {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    width: .62rem !important;
    height: .62rem !important;
    margin-left: .8rem !important;
    border-right: 2px solid currentColor !important;
    border-bottom: 2px solid currentColor !important;
    transform: rotate(45deg) !important;
    transition: transform .18s ease !important;
  }

  html body .wpi-mobile-drawer-services.is-open .wpi-mobile-drawer-caret {
    transform: rotate(-135deg) !important;
  }

  html body .wpi-mobile-drawer-submenu[hidden],
  html body .wpi-mobile-drawer-services:not(.is-open) .wpi-mobile-drawer-submenu {
    display: none !important;
  }

  html body .wpi-mobile-drawer-services.is-open .wpi-mobile-drawer-submenu:not([hidden]) {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    gap: .15rem !important;
    width: 100% !important;
    margin: .38rem 0 .38rem 1rem !important;
    padding: .2rem 0 .2rem .7rem !important;
    border-left: 2px solid #d20404 !important;
    background: transparent !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: none !important;
  }

  html body .wpi-mobile-drawer-submenu a {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding: .5rem .55rem !important;
    border-radius: .45rem !important;
    color: rgba(255,255,255,.92) !important;
    font-size: .8rem !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    text-align: left !important;
    white-space: normal !important;
  }
}

@media (min-width: 1025px) {
  html body .site-header .mobile-menu-toggle,
  html body .site-header .wpi-mobile-drawer-nav,
  html body .wpi-mobile-menu-portal {
    display: none !important;
  }

  html body .site-header .main-nav {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

/* Homepage Services: mobile EXPLORE button should align left, not center/full-width. */
@media (max-width: 767px) {
  html body .home .services-section .service-row a,
  html body .front-page .services-section .service-row a,
  html body .services-section .service-row a {
    justify-self: start !important;
    align-self: flex-start !important;
    width: auto !important;
    min-width: 8.75rem !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: auto !important;
    padding-left: 1.2rem !important;
    padding-right: 1.2rem !important;
    text-align: center !important;
  }
}

/* Homepage Services tablet: one safe stack prevents title/copy overlap. */
@media (min-width: 768px) and (max-width: 1024px) {
  html body .services-section .services-list {
    padding-top: 0 !important;
    display: grid !important;
    gap: 1rem !important;
  }

  html body .services-section .service-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: .85rem !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 1.35rem !important;
    align-items: start !important;
  }

  html body .services-section .service-row h3,
  html body .services-section .service-row p,
  html body .services-section .service-row a {
    position: static !important;
    grid-column: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    transform: none !important;
  }

  html body .services-section .service-row h3 {
    line-height: 1.08 !important;
  }

  html body .services-section .service-row p {
    line-height: 1.45 !important;
  }

  html body .services-section .service-row a {
    justify-self: start !important;
    width: auto !important;
    min-width: 8.75rem !important;
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
}

/* Single service Best For: one clean shared layout and centered 6-card second row. */
html body .wpi-isvc-best > .section-heading,
html body .wpi-isvc-best > .section-heading.container-narrow,
html body .wpi-individual-service-page .wpi-isvc-best > .section-heading,
html body .wpi-individual-service-page .wpi-isvc-best > .section-heading.container-narrow,
html body main.wpi-individual-service-page .wpi-isvc-best > .section-heading,
html body main.wpi-individual-service-page .wpi-isvc-best > .section-heading.container-narrow {
  width: min(calc(100% - 2rem), 98rem) !important;
  max-width: 98rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

html body .wpi-isvc-best > .section-heading h2,
html body .wpi-individual-service-page .wpi-isvc-best > .section-heading h2,
html body main.wpi-individual-service-page .wpi-isvc-best > .section-heading h2 {
  max-width: 92rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
  text-wrap: balance !important;
}

@media (min-width: 1025px) {
  html body .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6,
  html body .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6,
  html body main.wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 0 !important;
    justify-content: center !important;
    align-items: stretch !important;
  }

  html body .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card,
  html body .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card,
  html body main.wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card {
    width: auto !important;
    max-width: none !important;
    flex: none !important;
  }

  html body .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(5),
  html body .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(5),
  html body main.wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(5) {
    grid-column: 2 !important;
  }

  html body .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(6),
  html body .wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(6),
  html body main.wpi-individual-service-page .wpi-isvc-best-grid.wpi-isvc-best-grid-count-6 > .wpi-isvc-best-card:nth-child(6) {
    grid-column: 3 !important;
  }
}

/* ========================================================================== 
   v1.0.224 Best For layout polish — content-safe
   Source base: v1.0.222 exact-copy build. This block only changes layout/image
   sizing for the Best For section and does not hide/remove any text content.
   ========================================================================== */
.wpi-individual-service-page .wpi-isvc-best,
main.wpi-individual-service-page .wpi-isvc-best {
  padding-top: 4.5rem !important;
  padding-bottom: 5.4rem !important;
  overflow: visible !important;
}

.wpi-individual-service-page .wpi-isvc-best > .section-heading,
.wpi-individual-service-page .wpi-isvc-best > .section-heading.container-narrow,
main.wpi-individual-service-page .wpi-isvc-best > .section-heading,
main.wpi-individual-service-page .wpi-isvc-best > .section-heading.container-narrow {
  width: min(calc(100% - 2rem), 96rem) !important;
  max-width: 96rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

.wpi-individual-service-page .wpi-isvc-best > .section-heading h2,
main.wpi-individual-service-page .wpi-isvc-best > .section-heading h2 {
  width: min(100%, 92rem) !important;
  max-width: 92rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
  text-wrap: balance !important;
}

.wpi-individual-service-page .wpi-isvc-best-grid,
.wpi-individual-service-page .wpi-isvc-best-grid.container-wide,
main.wpi-individual-service-page .wpi-isvc-best-grid,
main.wpi-individual-service-page .wpi-isvc-best-grid.container-wide {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: stretch !important;
  gap: 0 !important;
  width: min(calc(100% - 2rem), 96rem) !important;
  max-width: 96rem !important;
  margin: 3rem auto 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow: visible !important;
}

.wpi-individual-service-page .wpi-isvc-best-grid > .wpi-isvc-best-card,
main.wpi-individual-service-page .wpi-isvc-best-grid > .wpi-isvc-best-card {
  position: relative !important;
  flex: 0 0 25% !important;
  width: 25% !important;
  max-width: 25% !important;
  height: clamp(17.5rem, 19vw, 21.25rem) !important;
  min-height: 0 !important;
  max-height: 21.25rem !important;
  box-sizing: border-box !important;
  margin: 0 0 3.35rem !important;
  border: .28rem solid #fff !important;
  overflow: visible !important;
  grid-column: auto !important;
}

.wpi-individual-service-page .wpi-isvc-best-grid > .wpi-isvc-best-card figure,
main.wpi-individual-service-page .wpi-isvc-best-grid > .wpi-isvc-best-card figure {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  overflow: hidden !important;
  background: #111 !important;
}

.wpi-individual-service-page .wpi-isvc-best-grid > .wpi-isvc-best-card figure img,
.wpi-individual-service-page .wpi-isvc-best-grid > .wpi-isvc-best-card figure video,
main.wpi-individual-service-page .wpi-isvc-best-grid > .wpi-isvc-best-card figure img,
main.wpi-individual-service-page .wpi-isvc-best-grid > .wpi-isvc-best-card figure video {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* Keep the real Best For title + description visible. */
.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption,
main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .35rem !important;
  width: min(90%, 21rem) !important;
  max-width: 21rem !important;
  min-height: 3.35rem !important;
  padding: .72rem 1.05rem !important;
  bottom: -2.15rem !important;
  overflow: visible !important;
}

.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption span,
main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption span {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #030303 !important;
  font-size: .96rem !important;
  line-height: 1.15 !important;
}

.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption p,
main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption p {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  margin: 0 !important;
  max-width: 100% !important;
  font-size: .7rem !important;
  line-height: 1.25 !important;
  font-weight: 500 !important;
  color: #202020 !important;
}

@media (min-width: 768px) and (max-width: 1024px) {
  .wpi-individual-service-page .wpi-isvc-best-grid,
  .wpi-individual-service-page .wpi-isvc-best-grid.container-wide,
  main.wpi-individual-service-page .wpi-isvc-best-grid,
  main.wpi-individual-service-page .wpi-isvc-best-grid.container-wide {
    width: min(calc(100% - 2rem), 52rem) !important;
    max-width: 52rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-grid > .wpi-isvc-best-card,
  main.wpi-individual-service-page .wpi-isvc-best-grid > .wpi-isvc-best-card {
    flex-basis: 50% !important;
    width: 50% !important;
    max-width: 50% !important;
    height: 18.25rem !important;
    max-height: 18.25rem !important;
  }
}

@media (max-width: 767px) {
  .wpi-individual-service-page .wpi-isvc-best,
  main.wpi-individual-service-page .wpi-isvc-best {
    padding-top: 3.8rem !important;
    padding-bottom: 4.7rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-grid,
  .wpi-individual-service-page .wpi-isvc-best-grid.container-wide,
  main.wpi-individual-service-page .wpi-isvc-best-grid,
  main.wpi-individual-service-page .wpi-isvc-best-grid.container-wide {
    width: min(calc(100% - 1.5rem), 28rem) !important;
    max-width: 28rem !important;
    margin-top: 2.55rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-grid > .wpi-isvc-best-card,
  main.wpi-individual-service-page .wpi-isvc-best-grid > .wpi-isvc-best-card {
    flex-basis: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 15.75rem !important;
    max-height: 15.75rem !important;
    margin-bottom: 3.65rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption,
  main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption {
    width: min(92%, 22rem) !important;
    bottom: -2.35rem !important;
  }
}


/* v1.0.227 - Fireworks Safety planning text styling only */
.wpi-isvc-safety-details {
  max-width: 58rem;
  margin-top: 2.25rem;
  padding: clamp(1.45rem, 3vw, 2.4rem);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1.4rem;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.03));
  box-shadow: 0 1.3rem 3.5rem rgba(0, 0, 0, 0.24);
}

.wpi-isvc-safety-details p {
  margin: 0 0 1.1rem;
  color: rgba(255, 255, 255, 0.82);
  font-size: clamp(1rem, 1.1vw, 1.16rem);
  line-height: 1.75;
}

.wpi-isvc-safety-details p:last-child {
  margin-bottom: 0;
}

.wpi-isvc-safety-details ul {
  margin: 1.35rem 0 1.35rem;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.wpi-isvc-safety-details li {
  position: relative;
  min-height: 3rem;
  display: flex;
  align-items: center;
  padding: 0.78rem 0.95rem 0.78rem 2.35rem;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 0.9rem;
  background: rgba(0, 0, 0, 0.2);
  color: rgba(255, 255, 255, 0.88);
  font-size: 0.98rem;
  line-height: 1.35;
}

.wpi-isvc-safety-details li::before {
  content: "";
  position: absolute;
  left: 0.95rem;
  top: 50%;
  width: 0.5rem;
  height: 0.5rem;
  transform: translateY(-50%);
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 0 0.32rem rgba(221, 34, 47, 0.16);
}

@media (max-width: 767px) {
  .wpi-isvc-safety-details {
    margin-top: 1.6rem;
    border-radius: 1.15rem;
  }

  .wpi-isvc-safety-details ul {
    grid-template-columns: 1fr;
    gap: 0.62rem;
  }

  .wpi-isvc-safety-details li {
    min-height: auto;
    padding-top: 0.82rem;
    padding-bottom: 0.82rem;
    font-size: 0.98rem;
  }
}

/* ========================================================================== 
   v1.0.230 Old-theme restore visual fixes
   - Mobile Best For captions get more room so title/description do not overlap.
   - Fireworks Safety planning text is dark on the white content panel.
   - Empty Why/Proof card panels are hidden when no card rows exist.
   ========================================================================== */
.wpi-isvc-why-cards:empty {
  display: none !important;
}

.wpi-isvc-safety-details {
  background: #ffffff !important;
  border: 1px solid rgba(5, 5, 5, 0.12) !important;
  box-shadow: 0 1.1rem 3rem rgba(5, 5, 5, 0.10) !important;
}

.wpi-isvc-safety-details,
.wpi-isvc-safety-details p,
.wpi-isvc-safety-details li {
  color: #050505 !important;
}

.wpi-isvc-safety-details p {
  color: rgba(5, 5, 5, 0.86) !important;
}

.wpi-isvc-safety-details li {
  background: #f7f7f7 !important;
  border-color: rgba(5, 5, 5, 0.12) !important;
  color: rgba(5, 5, 5, 0.9) !important;
}

@media (max-width: 767px) {
  .wpi-individual-service-page .wpi-isvc-best-grid > .wpi-isvc-best-card,
  main.wpi-individual-service-page .wpi-isvc-best-grid > .wpi-isvc-best-card {
    margin-bottom: 5.35rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption,
  main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption {
    width: min(94%, 23rem) !important;
    min-height: 5.2rem !important;
    padding: .9rem 1.05rem !important;
    gap: .42rem !important;
    bottom: -3.35rem !important;
    border-width: .28rem !important;
    border-radius: 1.8rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption span,
  main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption span {
    font-size: 1rem !important;
    line-height: 1.15 !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption p,
  main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption p {
    font-size: .78rem !important;
    line-height: 1.32 !important;
  }
}

/* ========================================================================== 
   v1.0.231 Best For tablet/mobile card fix only
   - Keeps the existing single-service content untouched.
   - Restores desktop-style image cards on tablet/mobile with larger captions.
   ========================================================================== */
@media (max-width: 1180px) {
  .wpi-individual-service-page .wpi-isvc-best,
  main.wpi-individual-service-page .wpi-isvc-best {
    overflow: visible !important;
    padding-bottom: 6.4rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-grid,
  main.wpi-individual-service-page .wpi-isvc-best-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 5.4rem 1.5rem !important;
    align-items: stretch !important;
    overflow: visible !important;
    margin-top: 3rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card,
  main.wpi-individual-service-page .wpi-isvc-best-card {
    position: relative !important;
    display: block !important;
    min-height: 26rem !important;
    height: auto !important;
    margin: 0 !important;
    border: .32rem solid #fff !important;
    border-radius: .35rem !important;
    background: #111 !important;
    overflow: visible !important;
    box-shadow: none !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card figure,
  main.wpi-individual-service-page .wpi-isvc-best-card figure {
    display: block !important;
    width: 100% !important;
    height: 26rem !important;
    min-height: 26rem !important;
    max-height: 26rem !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #111 !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card img,
  .wpi-individual-service-page .wpi-isvc-best-card video,
  main.wpi-individual-service-page .wpi-isvc-best-card img,
  main.wpi-individual-service-page .wpi-isvc-best-card video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption,
  main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption {
    position: absolute !important;
    left: 50% !important;
    bottom: -2.9rem !important;
    transform: translateX(-50%) rotate(-3deg) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .42rem !important;
    width: min(92%, 24rem) !important;
    min-height: 7.35rem !important;
    height: auto !important;
    margin: 0 !important;
    padding: .9rem 1.25rem !important;
    border: .38rem solid #010101 !important;
    border-radius: 1.75rem !important;
    background: #fff !important;
    box-shadow: 0 0 .45rem rgba(0,0,0,.25) !important;
    text-align: center !important;
    z-index: 5 !important;
    box-sizing: border-box !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption span,
  main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption span {
    position: static !important;
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
    color: #000 !important;
    font-size: 1.06rem !important;
    line-height: 1.16 !important;
    font-weight: 850 !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption p,
  main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption p {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    color: #1d1d1d !important;
    font-size: .84rem !important;
    line-height: 1.34 !important;
    font-weight: 600 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
}

@media (max-width: 767px) {
  .wpi-individual-service-page .wpi-isvc-best,
  main.wpi-individual-service-page .wpi-isvc-best {
    padding-bottom: 5.8rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-grid,
  main.wpi-individual-service-page .wpi-isvc-best-grid {
    grid-template-columns: 1fr !important;
    gap: 5rem !important;
    width: min(calc(100% - 1.4rem), 34rem) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card,
  main.wpi-individual-service-page .wpi-isvc-best-card {
    min-height: clamp(21rem, 66vw, 25rem) !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card figure,
  main.wpi-individual-service-page .wpi-isvc-best-card figure {
    height: clamp(21rem, 66vw, 25rem) !important;
    min-height: clamp(21rem, 66vw, 25rem) !important;
    max-height: clamp(21rem, 66vw, 25rem) !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption,
  main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption {
    bottom: -2.75rem !important;
    width: min(94%, 25rem) !important;
    min-height: 7.1rem !important;
    padding: .85rem 1rem !important;
    border-width: .34rem !important;
    border-radius: 1.55rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption span,
  main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption span {
    font-size: 1rem !important;
    line-height: 1.14 !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption p,
  main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption p {
    font-size: .8rem !important;
    line-height: 1.3 !important;
  }
}

@media (max-width: 390px) {
  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption,
  main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption {
    min-height: 7.5rem !important;
    width: min(96%, 23rem) !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption span,
  main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption span {
    font-size: .95rem !important;
  }

  .wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption p,
  main.wpi-individual-service-page .wpi-isvc-best-card .wpi-isvc-best-caption p {
    font-size: .76rem !important;
    line-height: 1.28 !important;
  }
}

/* Final breakpoint authority: tablet navigation starts at 1100px. */
@media (max-width: 1100px) {
  html body .site-header.wpi-global-header,
  html body .site-header.wpi-global-header.container-wide {
    position: absolute !important;
    top: 1.25rem !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    display: grid !important;
    grid-template-columns: minmax(8.5rem, 1fr) auto !important;
    align-items: center !important;
    width: min(calc(100% - 2rem), var(--container)) !important;
    margin: 0 !important;
    overflow: visible !important;
    z-index: 2147482500 !important;
  }

  html body .site-header.wpi-global-header > .main-nav,
  html body > .wpi-mobile-menu-portal {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  html body .site-header.wpi-global-header .wpi-header-actions {
    grid-column: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
  }

  html body .site-header.wpi-global-header .mobile-menu-toggle,
  html body .site-header.wpi-global-header .wpi-header-actions .mobile-menu-toggle {
    position: relative !important;
    inset: auto !important;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  html body .site-header.wpi-global-header .wpi-mobile-drawer-nav {
    display: none !important;
    position: absolute !important;
    top: calc(100% + .75rem) !important;
    left: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: none !important;
    max-height: calc(100vh - 9rem) !important;
    margin: 0 !important;
    overflow-y: auto !important;
    transform: none !important;
  }

  html body.menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  html body.wpi-menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

@media (min-width: 1101px) {
  html body .site-header.wpi-global-header .mobile-menu-toggle,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-nav {
    display: none !important;
  }

  html body .site-header.wpi-global-header > .main-nav {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

/* v1.0.240: timer first, contained sticky header second, one drawer system. */
@media (max-width: 1100px) {
  html body .wpi-mobile-header-structured > .announcement {
    position: relative !important;
    inset: auto !important;
    z-index: 2147482600 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
    background: #000 !important;
  }

  html body .site-header.wpi-global-header,
  html body .site-header.wpi-global-header.container-wide {
    position: sticky !important;
    top: 0 !important;
    left: auto !important;
    right: auto !important;
    width: min(calc(100% - 2.5rem), 72rem) !important;
    max-width: 72rem !important;
    min-height: 6.5rem !important;
    margin: 0 auto !important;
    padding: .75rem 0 !important;
    transform: none !important;
    background: rgba(5,5,5,.94) !important;
    backdrop-filter: blur(14px) !important;
    -webkit-backdrop-filter: blur(14px) !important;
  }

  html body .site-header.wpi-global-header > .main-nav,
  html body > .wpi-mobile-menu-portal {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  html body .site-header.wpi-global-header .mobile-menu-toggle,
  html body .site-header.wpi-global-header .wpi-header-actions .mobile-menu-toggle {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  html body .site-header.wpi-global-header .wpi-mobile-drawer-nav {
    display: none !important;
    position: absolute !important;
    top: calc(100% + .65rem) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    max-height: calc(100dvh - 8.5rem) !important;
    margin: 0 !important;
    transform: none !important;
  }

  html body.menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  html body.wpi-menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav {
    display: flex !important;
    flex-direction: column !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

/* Individual service H2 headings: no added character spacing. */
html body .wpi-individual-service-page .wpi-isvc-unique h2,
html body main.wpi-individual-service-page .wpi-isvc-unique h2,
html body .wpi-individual-service-page .wpi-isvc-best .section-heading h2,
html body main.wpi-individual-service-page .wpi-isvc-best .section-heading h2 {
  letter-spacing: 0 !important;
}

html body .wpi-individual-service-page .wpi-isvc-best .section-heading h2,
html body main.wpi-individual-service-page .wpi-isvc-best .section-heading h2 {
  font-size: clamp(2.35rem, 3.5vw, 3.4rem) !important;
  line-height: 1.06 !important;
}

/* Mobile From Idea to Ignition timeline: vertical progress and step markers. */
@media (max-width: 767px) {
  html body .process-section .process-steps {
    --wpi-process-progress: 0;
    position: relative !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.15rem !important;
    padding: .25rem 0 .25rem 2.35rem !important;
    border: 0 !important;
    overflow: visible !important;
  }

  html body .process-section .process-steps::after,
  html body .process-section .process-steps::before {
    content: "" !important;
    position: absolute !important;
    display: block !important;
    top: .8rem !important;
    bottom: .8rem !important;
    left: .43rem !important;
    width: 2px !important;
    height: auto !important;
    border: 0 !important;
    transform-origin: top center !important;
    pointer-events: none !important;
  }

  html body .process-section .process-steps::after {
    z-index: 0 !important;
    background: rgba(255,255,255,.25) !important;
  }

  html body .process-section .process-steps::before {
    z-index: 1 !important;
    background: var(--red) !important;
    top: .8rem !important;
    bottom: auto !important;
    width: 2px !important;
    height: var(--wpi-process-progress-percent, 0%) !important;
    max-height: calc(100% - 1.6rem) !important;
    transform: none !important;
    will-change: height !important;
  }

  html body .process-section .process-steps article {
    position: relative !important;
    min-height: 0 !important;
    padding: 1.25rem 1.15rem !important;
  }

  html body .process-section .process-steps article::before {
    content: "" !important;
    position: absolute !important;
    display: block !important;
    z-index: 3 !important;
    top: 1.55rem !important;
    left: -2.27rem !important;
    width: .88rem !important;
    height: .88rem !important;
    border: 2px solid rgba(255,255,255,.82) !important;
    border-radius: 50% !important;
    background: #000 !important;
  }

  html body .process-section .process-steps article.is-process-active::before {
    border-color: var(--red) !important;
    background: var(--red) !important;
  }

  html body .process-section .process-steps > .process-gift {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    display: block !important;
    width: 7.25rem !important;
    max-width: 7.25rem !important;
    height: auto !important;
    justify-self: start !important;
    align-self: start !important;
    margin: .2rem 0 0 -1.95rem !important;
    object-fit: contain !important;
  }

  html body .wpi-individual-service-page .wpi-isvc-best .section-heading h2,
  html body main.wpi-individual-service-page .wpi-isvc-best .section-heading h2 {
    font-size: clamp(1.9rem, 7vw, 2.3rem) !important;
    line-height: 1.08 !important;
  }
}

/* v1.0.241: full-width mobile header and white mobile action text. */
@media (max-width: 767px) {
  html body .site-header.wpi-global-header,
  html body .site-header.wpi-global-header.container-wide {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
    border-radius: 0 !important;
  }

  html body .site-header.wpi-global-header .mobile-menu-toggle,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-nav a,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-link,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-services-toggle,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
  }

  html body .site-header.wpi-global-header .wpi-header-cart,
  html body .site-header.wpi-global-header .wpi-header-cart-icon,
  html body .site-header.wpi-global-header .wpi-header-cart-icon svg,
  html body .site-header.wpi-global-header .wpi-header-cart-icon path {
    color: #fff !important;
    fill: #fff !important;
    stroke: #fff !important;
  }
}

/* Strong final authority for the long Best For page heading. */
html body main.wpi-individual-service-page section.wpi-isvc-best > .section-heading h2,
html body .wpi-individual-service-page section.wpi-isvc-best > .section-heading h2 {
  font-size: clamp(2.35rem, 3.5vw, 3.4rem) !important;
  line-height: 1.06 !important;
  letter-spacing: 0 !important;
}

@media (max-width: 767px) {
  html body main.wpi-individual-service-page section.wpi-isvc-best > .section-heading h2,
  html body .wpi-individual-service-page section.wpi-isvc-best > .section-heading h2 {
    font-size: clamp(1.9rem, 7vw, 2.3rem) !important;
    line-height: 1.08 !important;
  }
}

/* ========================================================================== 
   v1.0.242 FINAL AUTHORITY — must remain last in this stylesheet
   ========================================================================== */
@media (max-width: 1100px) {
  html body .site-header.wpi-global-header,
  html body .site-header.wpi-global-header.container-wide {
    position: sticky !important;
    top: 0 !important;
    left: auto !important;
    right: auto !important;
    height: 6.5rem !important;
    min-height: 6.5rem !important;
    max-height: 6.5rem !important;
    width: min(calc(100% - 2.5rem), 72rem) !important;
    max-width: 72rem !important;
    margin: 0 auto !important;
    padding: .7rem 1rem !important;
    display: grid !important;
    grid-template-columns: minmax(8.75rem, 1fr) auto !important;
    align-items: center !important;
    align-content: center !important;
    gap: 1rem !important;
    transform: none !important;
    overflow: visible !important;
    background: rgba(5,5,5,.96) !important;
  }

  html body .site-header.wpi-global-header > .main-nav,
  html body.menu-open .site-header.wpi-global-header > .main-nav,
  html body.wpi-menu-open .site-header.wpi-global-header > .main-nav,
  html body.home.menu-open .site-header.wpi-global-header > .main-nav,
  html body.home.wpi-menu-open .site-header.wpi-global-header > .main-nav,
  html body.front-page.menu-open .site-header.wpi-global-header > .main-nav,
  html body.front-page.wpi-menu-open .site-header.wpi-global-header > .main-nav,
  html body > .wpi-mobile-menu-portal,
  html body.menu-open > .wpi-mobile-menu-portal,
  html body.wpi-menu-open > .wpi-mobile-menu-portal {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    max-width: 0 !important;
    max-height: 0 !important;
    overflow: hidden !important;
  }

  html body .site-header.wpi-global-header .wpi-mobile-drawer-nav {
    display: none !important;
    position: absolute !important;
    top: calc(100% + .55rem) !important;
    left: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: calc(100dvh - 8rem) !important;
    margin: 0 !important;
    padding: .75rem !important;
    gap: .45rem !important;
    overflow-y: auto !important;
    transform: none !important;
  }

  html body.menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav,
  html body.wpi-menu-open .site-header.wpi-global-header .wpi-mobile-drawer-nav {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  html body .site-header.wpi-global-header .wpi-mobile-drawer-nav > a,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-services,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-services-toggle {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    min-height: 3.1rem !important;
    margin: 0 !important;
    transform: none !important;
  }

  html body .site-header.wpi-global-header .wpi-mobile-drawer-services {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
  }

  html body .site-header.wpi-global-header .wpi-mobile-drawer-services:not(.is-open) .wpi-mobile-drawer-submenu,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-submenu[hidden] {
    display: none !important;
  }
}

@media (max-width: 767px) {
  html body .site-header.wpi-global-header,
  html body .site-header.wpi-global-header.container-wide {
    width: 100% !important;
    max-width: none !important;
    height: 6rem !important;
    min-height: 6rem !important;
    max-height: 6rem !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }

  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta {
    border: 1px solid #fff !important;
    background: transparent !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    box-shadow: none !important;
  }
}

/* v1.0.243 LAST RULES — tablet/mobile header authority. */
@media (max-width: 1100px) {
  html body .site-header.wpi-global-header,
  html body .site-header.wpi-global-header.container-wide {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
    border-radius: 0 !important;
  }

  html body .site-header.wpi-global-header .mobile-menu-toggle span {
    position: relative !important;
    display: block !important;
    width: 1.55rem !important;
    height: 2px !important;
    background: #fff !important;
  }

  html body .site-header.wpi-global-header .mobile-menu-toggle span::before,
  html body .site-header.wpi-global-header .mobile-menu-toggle span::after {
    content: "" !important;
    position: absolute !important;
    display: block !important;
    left: 0 !important;
    width: 1.55rem !important;
    height: 2px !important;
    background: #fff !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  html body .site-header.wpi-global-header .mobile-menu-toggle span::before { top: -.5rem !important; }
  html body .site-header.wpi-global-header .mobile-menu-toggle span::after { top: .5rem !important; }

  html body.menu-open .site-header.wpi-global-header .mobile-menu-toggle span,
  html body.wpi-menu-open .site-header.wpi-global-header .mobile-menu-toggle span { background: transparent !important; }
  html body.menu-open .site-header.wpi-global-header .mobile-menu-toggle span::before,
  html body.wpi-menu-open .site-header.wpi-global-header .mobile-menu-toggle span::before { top: 0 !important; transform: rotate(45deg) !important; }
  html body.menu-open .site-header.wpi-global-header .mobile-menu-toggle span::after,
  html body.wpi-menu-open .site-header.wpi-global-header .mobile-menu-toggle span::after { top: 0 !important; transform: rotate(-45deg) !important; }
}

@media (max-width: 767px) {
  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta:link,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta:visited,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta:hover,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta:focus,
  html body .site-header.wpi-global-header .wpi-mobile-drawer-cta:active {
    border: 1px solid #fff !important;
    background: transparent !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    opacity: 1 !important;
  }
}
