/*
Theme Name: Bellino Theme
Author: Cade
Version: 1.0
*/

:root{
  --navy:#0a1e46;
  --navy-2:#122c63;
  --navy-3:#183671;
  --red:#e11f2d;
  --red-dark:#c71a26;
  --blue-accent:#244fb0;
  --gold:#d9a420;
  --gold-dark:#b98815;
  --wave-h:90px;
  --white:#ffffff;
  --text:#13233e;
  --text-soft:#5d6b7d;
  --line:#d8dee7;
  --shadow:0 18px 40px rgba(13,27,56,.10);
  --shadow-soft:0 12px 26px rgba(13,27,56,.08);
  --radius:22px;
  --container:1220px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  font-family:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--text);
  background:#fff;
  line-height:1.55;
  overflow-x:hidden;
}

/* Scroll-in sections (paired with main.js; respects prefers-reduced-motion) */
@media (prefers-reduced-motion: no-preference){
  main > section.site-reveal{
    opacity:0;
    transform:translate3d(0, 28px, 0);
    transition:
      opacity .7s cubic-bezier(0.22, 1, 0.36, 1),
      transform .7s cubic-bezier(0.22, 1, 0.36, 1);
  }

  main > section.site-reveal.is-visible{
    opacity:1;
    transform:none;
  }
}

img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; }
svg{ display:block; }

.container{
  width:min(var(--container), calc(100% - 34px));
  margin:0 auto;
}

/* HEADER */
.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(255,255,255,.98);
  border-bottom:1px solid rgba(19,35,62,.08);
  box-shadow:0 4px 14px rgba(16,24,40,.04);
}

.header-topbar{
  position:relative;
  background:var(--navy);
  color:#fff;
  border-bottom:2px solid rgba(217,164,32,.95);
}

/* Remove decorative stars (they crowd mobile) */
.header-topbar::before,
.header-topbar::after{
  content:none;
}

.header-topbar-row{
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.countdown-wrap{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  font-size:13px;
}

.countdown-label{
  font-weight:800;
  color:rgba(255,255,255,.86);
  text-transform:uppercase;
  letter-spacing:.06em;
}

.countdown-value{
  font-weight:900;
  color:#fff;
}

.countdown-stars{
  color:var(--gold);
  font-size:11px;
  letter-spacing:.24em;
}

.header-social{
  display:flex;
  align-items:center;
  gap:10px;
}

.header-social a{
  width:30px;
  height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  transition:background .16s ease, transform .16s ease;
}

.header-social a:hover{
  background:rgba(255,255,255,.16);
  transform:translateY(-2px);
}

.header-social svg{
  width:16px;
  height:16px;
  fill:#fff;
}

.header-main{
  min-height:92px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.brand img{
  height:72px;
  width:auto;
  object-fit:contain;
}

.site-nav{
  display:flex;
  align-items:center;
  gap:28px;
}

.site-nav a{
  font-size:15px;
  font-weight:800;
  color:var(--text);
}

.site-nav a:hover{
  color:var(--red);
}

.header-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 24px;
  border-radius:14px;
  background:linear-gradient(180deg, var(--navy-3) 0%, var(--navy) 100%);
  color:#fff !important;
  font-weight:900;
  box-shadow:0 10px 22px rgba(10,30,70,.22);
  transition:transform .16s ease, box-shadow .16s ease;
}

.header-cta:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 28px rgba(10,30,70,.28);
}

.menu-toggle{
  display:none;
  width:46px;
  height:46px;
  border:1px solid rgba(19,35,62,.14);
  border-radius:12px;
  background:#fff;
  cursor:pointer;
  padding:0;
}

.menu-toggle span{
  display:block;
  width:18px;
  height:2px;
  background:var(--text);
  margin:4px auto;
  border-radius:999px;
}

/* BUTTONS */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:56px;
  padding:14px 26px;
  border-radius:14px;
  font-size:15px;
  font-weight:900;
  letter-spacing:-.01em;
  transition:transform .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease;
  border:2px solid transparent;
  position:relative;
}

.btn:hover{ transform:translateY(-2px); }
.btn:active{ transform:translateY(0); }

.btn-primary{
  background:linear-gradient(180deg, var(--red) 0%, var(--red-dark) 100%);
  color:#fff;
  box-shadow:0 10px 22px rgba(225,31,45,.18);
}

.btn-primary:hover{
  box-shadow:0 16px 28px rgba(225,31,45,.24);
}

.btn-gold{
  background:linear-gradient(180deg, #e2b43b 0%, var(--gold-dark) 100%);
  color:#0d1d3f;
  box-shadow:0 10px 22px rgba(217,164,32,.24);
}

.btn-gold-cta{
  min-height:52px;
  padding:0 24px;
  border-radius:14px;
  font-weight:900;
  box-shadow:0 10px 22px rgba(217,164,32,.24);
  transition:transform .16s ease, box-shadow .16s ease;
}

.btn-gold-cta:hover{
  box-shadow:0 16px 28px rgba(217,164,32,.30);
}

.btn-gold:hover{
  box-shadow:0 16px 28px rgba(217,164,32,.30);
}

.btn-outline-light{
  background:transparent;
  border-color:rgba(255,255,255,.28);
  color:#fff;
}

.btn-outline-light:hover{
  background:rgba(255,255,255,.08);
}

.btn-outline-dark{
  background:#fff;
  border-color:rgba(19,35,62,.14);
  color:var(--text);
}

.btn-outline-dark:hover{
  background:#f8f8f6;
}

/* Navy solid CTA (same structure as .btn-primary) — locator + products fundraising links */
.btn-navy-cta{
  background:linear-gradient(180deg, var(--navy-3) 0%, var(--navy) 100%);
  color:#fff;
  border-color:transparent;
  box-shadow:0 10px 22px rgba(10,30,70,.22);
}

.btn-navy-cta:hover{
  box-shadow:0 16px 28px rgba(10,30,70,.28);
}

.btn-full{ width:100%; }

/* GENERAL */
.section-kicker{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:10px 18px;
  border-radius:999px;
  background:#fff;
  color:var(--navy);
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin:0 0 18px;
  border:1px solid rgba(19,35,62,.10);
  box-shadow:0 8px 18px rgba(13,27,56,.06);
}

.section-kicker-dark{
  background:rgba(255,255,255,.10);
  color:#fff;
  border:none;
  box-shadow:none;
}

.section{
  position:relative;
  padding:96px 0;
}

.section-white{
  background:#fff;
  overflow:hidden;
}

.section.section-white::before,
.content-section::before,
.white-section::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(248,248,246,.96) 100%),
    url("/images/fireworks-pattern.png");
  background-repeat:no-repeat, repeat;
  background-position:0 0, 0 0;
  background-size:cover, 520px;
  opacity:.065;
  pointer-events:none;
  z-index:0;
}

.section.section-white > *,
.content-section > *,
.white-section > *{
  position:relative;
  z-index:1;
}

.content-section,
.white-section{
  position:relative;
  background:#fff;
  overflow:hidden;
}

.content-section{ padding:96px 0; }

@media (min-width:900px){
  .section.section-white::before,
  .content-section::before,
  .white-section::before{
    background-size:cover, 680px;
    opacity:.07;
  }
}

@media (max-width:520px){
  .section.section-white::before,
  .content-section::before,
  .white-section::before{
    background-size:cover, 500px;
    opacity:.055;
  }
}

.section-dark{
  position:relative;
  background:linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);
  color:#fff;
  overflow:hidden;
}

.section h2,
.closing-cta h2,
.app-section h2{
  margin:0 0 14px;
  font-size:clamp(32px, 3vw, 56px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.section-white h2,
.app-section h2{ color:var(--text); }

.section-dark h2{ color:#fff; }

.section-lead{
  margin:0 0 16px;
  font-size:17px;
  line-height:1.75;
  color:var(--text-soft);
}

.section-lead-dark{
  color:rgba(255,255,255,.84);
}

.section-head{
  margin-bottom:34px;
}

.center-head{
  text-align:center;
  max-width:980px;
  margin:0 auto 40px;
}

.center-copy{
  max-width:860px;
  margin-left:auto;
  margin-right:auto;
}

.section-wave{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  line-height:0;
  z-index:1;
}

.section-wave svg{
  width:100%;
  height:90px;
}

.white-to-blue-wave path{ fill:var(--navy); }
.dark-wave path{ fill:#fff; }
.bfund3-band .dark-wave path{ stroke:none; }
.dark-wave .fund-wave-gold-path{
  fill:none;
}

/*
  Home #fundraising → #about: section stays solid navy (no fade = no pattern above wave).
  Wave strip: navy above the curve; About-matched pattern below curve (mask); gold stroke on top.
*/
section#fundraising.fundraising-section.section-dark{
  overflow:visible;
  z-index:2;
  padding-bottom:0;
  background:var(--navy);
}

section#fundraising .section-wave.dark-wave{
  isolation:isolate;
  z-index:3;
  bottom:0;
  pointer-events:none;
}

section#fundraising .section-wave.dark-wave::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:var(--navy);
}

section#fundraising .section-wave.dark-wave::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background-color:#d8d4cd;
  background-image:
    linear-gradient(
      180deg,
      rgba(255,255,255,.14) 0%,
      rgba(216,212,205,.22) 100%
    ),
    url("images/fireworks-pattern.jpg");
  background-repeat:no-repeat, repeat;
  background-position:0 0, 0 0;
  background-size:cover, min(420px, 92vw);
  background-attachment:fixed, fixed;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M0,52 C180,96 392,114 716,86 C1018,60 1212,18 1440,54 L1440,120 L0,120 Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M0,52 C180,96 392,114 716,86 C1018,60 1212,18 1440,54 L1440,120 L0,120 Z'/%3E%3C/svg%3E");
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center bottom;
  mask-position:center bottom;
}

/* iOS Safari: avoid fixed-background artifacts in masked layers */
@supports (-webkit-touch-callout: none){
  section#fundraising .section-wave.dark-wave::after{
    background-attachment:scroll, scroll;
  }
}

section#fundraising .section-wave svg.fund-wave-fill-svg{
  position:relative;
  z-index:2;
  pointer-events:none;
  opacity:0;
}

section#fundraising .section-wave svg.fund-wave-gold-svg{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  width:100%;
  height:var(--wave-h, 90px);
  z-index:3;
  pointer-events:none;
  overflow:visible;
}

@media (min-width:900px){
  section#fundraising .section-wave.dark-wave::after{
    background-size:cover, 560px;
  }
}

@media (max-width:520px){
  section#fundraising .section-wave.dark-wave::after{
    background-size:cover, 380px;
  }
}

section#about.about-section{
  z-index:1;
  margin-top:calc(-1 * (var(--wave-h) + 16px));
  padding-top:calc(96px + var(--wave-h) + 16px);
}

/* STARS */
.hero-stars,
.dark-stars{
  position:absolute;
  z-index:1;
  color:#ffffff;
  font-size:13px;
  letter-spacing:.5em;
  user-select:none;
}

.hero-stars-left{ top:84px; left:8%; }
.hero-stars-right{ top:132px; right:10%; }
.dark-stars-left{ top:64px; left:8%; }
.dark-stars-right{ top:96px; right:8%; }

/*
  .section.section-white > * sets position:relative (higher specificity than .dark-stars),
  which overrides position:absolute and turns star rows into full-width in-flow blocks—
  a darker band under the locator/products seam on desktop.
*/
.section.section-white.products-section > .dark-stars{
  position:absolute;
  width:max-content;
  max-width:min(240px, calc(100% - 32px));
}

/* Missouri hero: remove decorative stars (felt forced) */
.missouri-page .hero-stars{
  display:none;
}

/* Missouri filter headings: remove white kicker pill, use gold */
.missouri-page #mo-filter-section .section-kicker{
  display:block;
  width:fit-content;
  text-align:center;
  background:transparent;
  border:none;
  box-shadow:none;
  padding:0;
  min-height:0;
  border-radius:0;
  color:var(--gold);
  margin:0 auto 12px;
}

.missouri-page #mo-filter-section .ne-city-label{
  color:var(--gold);
}

/* Add a top gold divider to final CTA section */
.missouri-page .ia-final-v2::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.55) 0%, rgba(217,164,32,.95) 50%, rgba(255,255,255,.55) 100%);
}

/* HERO */
.hero{
  position:relative;
  min-height:760px;
  overflow:hidden;
  background:var(--navy);
}

.hero-slides{
  position:absolute;
  inset:0;
}

.hero-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity 1400ms ease;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-attachment:fixed;
  transform:scale(1.03);
}

/* iOS Safari ignores/fakes fixed backgrounds; avoid jank */
@supports (-webkit-touch-callout: none){
  .hero-slide{
    background-attachment:scroll;
  }
}

.hero-slide.is-active{
  opacity:1;
}

.hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(10,30,70,.92) 0%, rgba(10,30,70,.78) 42%, rgba(10,30,70,.40) 100%),
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.38));
}

.hero-inner{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  min-height:760px;
  padding:124px 0 116px;
}

.hero-copy{
  max-width:760px;
  color:#fff;
}

.hero-copy-rotator{
  position:relative;
}

.hero-copy-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transform:translateY(12px);
  transition:opacity .85s ease, transform .85s ease;
  pointer-events:none;
}

.hero-copy-slide.is-active{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

.hero h1{
  margin:0 0 18px;
  font-size:clamp(42px, 5vw, 57px);
  line-height:.96;
  letter-spacing:-.05em;
}

.hero-heading-flash{
  animation:appFlash 1.2s ease-in-out infinite alternate;
}

.hero-h1-line{
  display:block;
}

.hero-h1-deal-line{
  display:block;
  margin-top:12px;
  font-size:clamp(46px, 9vw, 94px);
  letter-spacing:-.045em;
  line-height:.92;
}

.hero-text{
  max-width:690px;
  margin:0;
  font-size:18px;
  line-height:1.75;
  color:rgba(255,255,255,.88);
}

.hero-buttons{
  margin:34px 0;
}

.button-row{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}

.hero-stats{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:14px;
  max-width:760px;
}

.hero-stat{
  padding:18px 16px 16px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  border-bottom:4px solid rgba(217,164,32,.92);
  border-radius:16px;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.hero-stat:hover{
  transform:translateY(-4px);
  background:rgba(255,255,255,.11);
  box-shadow:0 18px 28px rgba(0,0,0,.18);
}

.hero-stat strong{
  display:block;
  margin-bottom:6px;
  font-size:24px;
  line-height:1;
  font-weight:900;
}

.hero-stat span{
  display:block;
  color:rgba(255,255,255,.84);
  font-size:13px;
  font-weight:800;
}

.hero-wave{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  line-height:0;
  z-index:2;
}

.hero-wave svg{
  width:100%;
  height:96px;
}

.hero-wave path{
  fill:var(--red);
  stroke:rgba(217,164,32,.85);
  stroke-width:4px;
  vector-effect:non-scaling-stroke;
  paint-order:stroke fill;
}

/* STATES */
.states-band{
  position:relative;
  background:linear-gradient(180deg, var(--red) 0%, #c91b27 100%);
  padding:22px 0 24px;
}

.states-band::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:5px;
  background:linear-gradient(90deg, rgba(255,255,255,.75) 0%, rgba(217,164,32,.95) 50%, rgba(255,255,255,.75) 100%);
}

.states-band-head{
  display:flex;
  justify-content:center;
  margin:0 0 14px;
}

.states-band-title{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:0;
  border-radius:0;
  background:transparent;
  border:none;
  box-shadow:none;
}

.states-band-heading{
  margin:0;
  color:#fff;
  font-size:18px;
  font-weight:1000;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.states-band-stars{
  color:#fff;
  font-weight:900;
  letter-spacing:.12em;
  text-shadow:0 10px 18px rgba(0,0,0,.28);
}

.states-grid{
  display:grid;
  grid-template-columns:repeat(7, 1fr);
  gap:12px;
}

.states-grid-ten{
  grid-template-columns:repeat(5, 1fr);
}

.state-card{
  min-height:102px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 10px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.20);
  border-bottom:5px solid rgba(255,255,255,.32);
  border-radius:16px;
  transition:transform .16s ease, background .16s ease, box-shadow .16s ease;
  box-shadow:0 10px 18px rgba(0,0,0,.14);
  overflow:hidden;
  position:relative;
}

.state-card::before{
  content:"";
  position:absolute;
  inset:-50% auto auto -30%;
  width:120%;
  height:100%;
  background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.22) 50%, transparent 70%);
  opacity:0;
  transition:opacity .18s ease, transform .38s ease;
}

.state-card:hover{
  transform:translateY(-5px) scale(1.035);
  background:rgba(255,255,255,.20);
  box-shadow:0 18px 26px rgba(0,0,0,.18);
}

.state-card:hover::before{
  opacity:1;
  transform:translateX(18%) rotate(8deg);
}

.state-card img{
  width:50px;
  height:32px;
  object-fit:contain;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.18));
  transition:transform .16s ease, filter .16s ease;
}

.state-card:hover img{
  transform:translateY(-2px) scale(1.08);
  filter:drop-shadow(0 10px 14px rgba(0,0,0,.24));
}

.state-card span{
  color:#fff;
  font-size:13px;
  font-weight:900;
  text-align:center;
}

/* LAYOUT */
.two-col{
  display:grid;
  grid-template-columns:1.04fr .96fr;
  gap:30px;
  align-items:center;
}

.content-block p{
  margin:0 0 16px;
  font-size:16px;
  line-height:1.75;
  color:var(--text-soft);
}

.content-block-dark p{
  color:rgba(255,255,255,.82);
}

.feature-list{
  list-style:none;
  padding:0;
  margin:22px 0 0;
  display:grid;
  gap:10px;
}

.feature-list li{
  position:relative;
  padding-left:18px;
  color:var(--text);
  font-size:15px;
  font-weight:800;
  line-height:1.55;
}

.feature-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:9px;
  width:8px;
  height:8px;
  border-radius:999px;
  background:var(--red);
}

.feature-list-dark li{
  color:#fff;
}

/* One continuous patterned band: locator → products → America 250 (shared tile, no seam) */
.summer-shop-band{
  position:relative;
  background-color:#d8d4cd;
  background-image:url("images/fireworks-pattern.jpg");
  background-repeat:repeat;
  background-position:0 0;
  background-size:min(420px, 92vw);
  background-attachment:fixed;
  overflow-x:hidden;
}

.summer-shop-band::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:linear-gradient(
    180deg,
    rgba(255,255,255,.14) 0%,
    rgba(216,212,205,.22) 100%
  );
  background-repeat:no-repeat;
  background-size:cover;
  background-position:0 0;
  background-attachment:fixed;
  opacity:1;
}

.summer-shop-band > *{
  position:relative;
  z-index:1;
}

.summer-shop-band .usa250-badge-bridge-wrap{
  z-index:60;
}

.summer-shop-band .section.section-white.locator-section,
.summer-shop-band .section.section-white.products-section,
.summer-shop-band .usa250-section{
  background:none;
  background-image:none;
}

.summer-shop-band .section.section-white.locator-section::before,
.summer-shop-band .section.section-white.products-section::before,
.summer-shop-band .usa250-section::before{
  content:none;
  display:none;
}

.summer-shop-band .locator-section{
  padding-bottom:40px;
}

.summer-shop-band .products-section{
  padding-top:152px;
  padding-bottom:56px;
}

.summer-shop-band .usa250-section{
  padding-top:118px;
}

@media (min-width:900px){
  .summer-shop-band{
    background-size:560px;
  }

  .summer-shop-band .locator-section{
    padding-bottom:22px;
  }

  .summer-shop-band .products-section{
    padding-top:118px;
  }
}

@media (max-width:520px){
  .summer-shop-band{
    background-size:380px;
  }

  .summer-shop-band .locator-section{
    padding-bottom:28px;
  }

  .summer-shop-band .products-section{
    padding-top:132px;
    padding-bottom:48px;
  }

  .summer-shop-band .usa250-section{
    padding-top:102px;
  }
}

/* LOCATOR — fireworks pattern (paths relative to this CSS file: styles.css/styles.css)
   Shared with locations page hero + locator stack to match index #locations */
.section.section-white.locator-section,
.locations-hero-v2,
.section.section-white.locations-locator-combo,
.locations-footprint.section.section-white,
.product-filter-section{
  background-color:#d8d4cd;
  background-image:url("images/fireworks-pattern.jpg");
  background-repeat:repeat;
  background-position:0 0;
  background-size:min(420px, 92vw);
}

/* Higher specificity than .section.section-white::before + media queries — full reset */
.section.section-white.locator-section::before,
.locations-hero-v2::before,
.section.section-white.locations-locator-combo::before,
.locations-footprint.section.section-white::before,
.product-filter-section::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:linear-gradient(
    180deg,
    rgba(255,255,255,.14) 0%,
    rgba(216,212,205,.22) 100%
  );
  background-repeat:no-repeat;
  background-size:cover;
  background-position:0 0;
  opacity:1;
}

@media (min-width:900px){
  .section.section-white.locator-section,
  .locations-hero-v2,
  .section.section-white.locations-locator-combo,
  .locations-footprint.section.section-white,
  .product-filter-section,
  .ne-statewide-standalone,
  .bfund3-story.section-white,
  .bfund3-opportunity.section-white{
    background-size:560px;
  }

  .locator-panel-head,
  .about-hero-v2{
    background-size:560px;
  }
}

@media (max-width:520px){
  .section.section-white.locator-section,
  .locations-hero-v2,
  .section.section-white.locations-locator-combo,
  .locations-footprint.section.section-white,
  .product-filter-section,
  .ne-statewide-standalone,
  .bfund3-story.section-white,
  .bfund3-opportunity.section-white{
    background-size:380px;
  }

  .locator-panel-head,
  .about-hero-v2{
    background-size:380px;
  }
}

/* Locations page: lock pattern + scrim to viewport so #state-pages bottom matches app wave (no gradient “restart”) */
.section.section-white.locations-locator-combo,
.locations-footprint.section.section-white,
.locations-hero-v2,
.product-filter-section,
.ne-statewide-standalone{
  background-attachment:fixed;
}

.section.section-white.locations-locator-combo::before,
.locations-footprint.section.section-white::before,
.locations-hero-v2::before,
.product-filter-section::before,
.ne-statewide-standalone::before{
  background-attachment:fixed;
}

.locator-section .section-kicker:not(.app-kicker),
.locations-hero-v2 .section-kicker:not(.app-kicker),
.locations-locator-combo .section-kicker:not(.app-kicker),
.locations-footprint .section-kicker:not(.app-kicker),
.product-filter-section .section-kicker:not(.app-kicker){
  background:transparent;
  border:none;
  box-shadow:none;
  padding:0;
  min-height:auto;
  border-radius:0;
  color:var(--gold);
}

.locator-copy .locator-buttons{
  margin-top:28px;
}

.locator-extra{
  margin-top:18px;
  display:grid;
  gap:12px;
}

.locator-extra-card{
  padding:14px 14px 12px;
  border-radius:18px;
  border:1px solid rgba(19,35,62,.10);
  border-left:5px solid var(--red);
  background:#fff;
  box-shadow:0 10px 18px rgba(13,27,56,.05);
}

.locator-extra-card strong{
  display:block;
  color:var(--navy);
  font-size:15px;
  font-weight:900;
  letter-spacing:-.02em;
  margin:0 0 4px;
}

.locator-extra-card span{
  display:block;
  color:var(--text-soft);
  font-size:13px;
  line-height:1.5;
  font-weight:650;
}

@media (min-width:900px){
  .locator-section .container.two-col{
    align-items:start;
  }
}

.locator-panel{
  background:#fff;
  border:1px solid var(--line);
  border-bottom:5px solid var(--gold);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
}

/* Heavy default shadow reads as a dark slab on the shared patterned band above #products */
.summer-shop-band .locator-panel{
  box-shadow:0 6px 20px rgba(13,27,56,.045);
}

.locator-panel-head{
  position:relative;
  padding:20px 22px;
  background-color:var(--navy);
  background-image:url("images/blue-bellino-texture.jpg");
  background-repeat:repeat;
  background-position:0 0;
  background-size:min(420px, 92vw);
  color:#fff;
  display:grid;
  gap:4px;
  overflow:hidden;
}

.locator-panel-head::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:linear-gradient(
    180deg,
    rgba(10,30,70,.42) 0%,
    rgba(10,30,70,.62) 100%
  );
}

.locator-panel-head > *{
  position:relative;
  z-index:1;
}

.locator-panel-head strong{ font-size:18px; }

.locator-panel-head span{
  color:rgba(255,255,255,.78);
  font-size:14px;
  font-weight:700;
}

.locator-panel-head small{
  color:rgba(255,255,255,.78);
  font-size:13px;
  line-height:1.55;
  font-weight:700;
}

.locator-panel-map{
  min-height:360px;
  background:linear-gradient(180deg, #eef1f5 0%, #f8f8f6 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}

.locator-placeholder{
  max-width:320px;
  text-align:center;
}

.locator-placeholder strong{
  display:block;
  font-size:22px;
  margin-bottom:8px;
  color:var(--navy);
}

.locator-placeholder p{
  margin:0;
  color:var(--text-soft);
}

.locator-panel-bottom{
  padding:22px;
  display:grid;
  gap:18px;
  border-top:1px solid var(--line);
}

.locator-panel-bottom strong{
  display:block;
  margin-bottom:6px;
  font-size:18px;
  color:var(--text);
}

.locator-panel-bottom p{
  margin:0;
  color:var(--text-soft);
}

/* PRODUCTS */
.section.section-white.products-section{
  background-color:#d8d4cd;
  background-image:url("images/fireworks-pattern.jpg");
  background-repeat:repeat;
  background-position:0 0;
  background-size:min(420px, 92vw);
}

.section.section-white.products-section::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:linear-gradient(
    180deg,
    rgba(255,255,255,.14) 0%,
    rgba(216,212,205,.22) 100%
  );
  background-repeat:no-repeat;
  background-size:cover;
  background-position:0 0;
  opacity:1;
}

.section.section-white.products-section > *{
  position:relative;
  z-index:1;
}

.products-section{
  padding-top:170px;
  overflow:visible;
  position:relative;
  z-index:1;
}

.section.section-white.products-section .product-card{
  border:1px solid var(--line);
  border-bottom:6px solid var(--red);
}

.products-promo-wrap{
  position:absolute;
  top:0;
  left:0;
  right:0;
  z-index:6;
  transform:translateY(-50%);
  pointer-events:none;
}

.products-promo-badge{
  width:min(760px, calc(100% - 34px));
  margin:0 auto;
  text-align:center;
  padding:18px 24px 16px;
  border:1px solid rgba(19,35,62,.10);
  border-radius:24px;
  background:#ffffff;
  opacity:1;
  box-shadow:0 16px 34px rgba(4,14,36,.20);
  transition:transform .16s ease, box-shadow .16s ease;
  position:relative;
  overflow:hidden;
}

.products-promo-badge:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 38px rgba(4,14,36,.24);
}

.products-promo-stars{
  display:flex;
  justify-content:center;
  gap:10px;
  margin-bottom:8px;
  color:var(--gold);
  font-size:18px;
  line-height:1;
}

.products-promo-badge p{
  margin:0;
  color:var(--navy);
  font-size:15px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.products-head-large h2{
  font-size:clamp(40px, 4vw, 68px);
  max-width:980px;
  margin-left:auto;
  margin-right:auto;
}

.products-head-large .section-lead{
  font-size:19px;
}

.products-section .section-kicker{
  background:transparent;
  border:none;
  box-shadow:none;
  padding:0;
  min-height:auto;
  border-radius:0;
  color:var(--gold);
}

.product-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:18px;
}

.product-card{
  background:#fff;
  border:1px solid rgba(255,255,255,.10);
  border-bottom:5px solid var(--gold);
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 18px 36px rgba(5,12,28,.22);
  transition:transform .16s ease, box-shadow .16s ease;
  display:flex;
  flex-direction:column;
  height:100%;
}

.product-card:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 40px rgba(5,12,28,.28);
}

.product-image-wrap{
  background:#f3f4f6;
  min-height:240px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}

.product-image-wrap img{
  width:100%;
  height:220px;
  object-fit:contain;
}

.product-card-body{
  padding:22px 20px;
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:0;
}

.product-card h3{
  margin:0 0 10px;
  font-size:22px;
  letter-spacing:-.03em;
  color:var(--text);
}

.product-card-subnote{
  display:flex;
  align-items:center;
  margin:-4px 0 12px;
  color:var(--red);
  font-size:12px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.swirl-underline{
  position:relative;
  display:inline-block;
  padding-bottom:10px;
}

.swirl-underline::after{
  content:"";
  position:absolute;
  left:-2px;
  right:-2px;
  bottom:1px;
  height:10px;
  background-repeat:no-repeat;
  background-position:center bottom;
  background-size:100% 100%;
  opacity:.9;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 18'%3E%3Cpath d='M2 12c18-10 32 10 50 0s32-10 66 0' fill='none' stroke='%23d91f2d' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.product-card p{
  margin:0;
  color:var(--text-soft);
  line-height:1.7;
}

.product-card-view{
  display:inline-flex;
  align-items:center;
  align-self:flex-start;
  margin-top:auto;
  padding-top:14px;
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
  color:var(--gold);
  text-decoration:none;
  transition:color .15s ease, opacity .15s ease;
}

.product-card-view:hover{
  color:var(--gold-dark);
  text-decoration:underline;
}

.product-card-view:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:2px;
  border-radius:4px;
}

.button-row-center{
  justify-content:center;
  margin-top:28px;
}

/* USA 250 — same pattern treatment as locator (fireworks-pattern.jpg + light scrim) */
.usa250-section{
  position:relative;
  background-color:#d8d4cd;
  background-image:url("images/fireworks-pattern.jpg");
  background-repeat:repeat;
  background-position:0 0;
  background-size:min(420px, 92vw);
  overflow-x:hidden;
  overflow-y:visible;
  z-index:5;
  isolation:isolate;
  padding:130px 0 0;
}

.usa250-section::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:linear-gradient(
    180deg,
    rgba(255,255,255,.14) 0%,
    rgba(216,212,205,.22) 100%
  );
  background-repeat:no-repeat;
  background-size:cover;
  background-position:0 0;
  opacity:1;
}

.usa250-section > *{
  position:relative;
  z-index:1;
}

.usa250-badge-bridge-wrap{
  position:relative;
  height:0;
  z-index:60;
  pointer-events:none;
}

.usa250-badge-bridge{
  margin:0 auto;
  position:absolute;
  left:50%;
  top:18px;
  transform:translate(-50%, -50%);
  width:min(560px, calc(100% - 34px));
  max-width:560px;
  text-align:center;
  padding:18px 24px 16px;
  border:1px solid rgba(19,35,62,.10);
  border-radius:20px;
  background:#ffffff;
  box-shadow:0 12px 28px rgba(13,27,56,.10);
  transition:transform .16s ease, box-shadow .16s ease;
  pointer-events:auto;
}

.usa250-badge-bridge:hover{
  transform:translate(-50%, calc(-50% - 4px));
  box-shadow:0 20px 36px rgba(13,27,56,.14);
}

.usa250-mini-stars{
  display:flex;
  justify-content:center;
  gap:10px;
  margin-bottom:8px;
  color:var(--gold);
  font-size:18px;
  line-height:1;
}

.usa250-badge-bridge p{
  margin:0;
  font-size:15px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--navy);
}

.usa250-shell{
  max-width:1160px;
  margin:0 auto;
  padding-bottom:88px;
}

@media (min-width:900px){
  .usa250-section{
    background-size:560px;
  }
}

@media (max-width:520px){
  .usa250-section{
    background-size:380px;
  }
}

.usa250-grid{
  display:grid;
  grid-template-columns:1fr 1.08fr;
  gap:42px;
  align-items:center;
}

.usa250-copy h3{
  margin:0 0 18px;
  font-size:clamp(34px, 3.2vw, 60px);
  line-height:1;
  letter-spacing:-.05em;
  color:var(--navy);
  max-width:620px;
}

.usa250-copy p{
  margin:0 0 28px;
  max-width:620px;
  font-size:17px;
  line-height:1.8;
  color:var(--text-soft);
}

.usa250-bottom-ribbon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  padding:0 28px;
  margin-bottom:22px;
  background:linear-gradient(180deg, var(--red) 0%, #bf1722 100%);
  color:#fff;
  border-radius:999px;
  font-weight:900;
  font-size:14px;
  letter-spacing:.05em;
  text-transform:uppercase;
  box-shadow:0 12px 22px rgba(225,31,45,.14);
  transition:transform .16s ease, box-shadow .16s ease;
}

.usa250-bottom-ribbon:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 30px rgba(225,31,45,.20);
}

.usa250-visual{
  position:relative;
  min-height:600px;
  width:100%;
}

.usa250-photo-panel{
  position:absolute;
  inset:0;
  border-radius:30px;
  overflow:hidden;
  box-shadow:0 18px 34px rgba(10,30,70,.12);
  background:#0f1f3d;
  border-bottom:5px solid var(--blue-accent);
}

.usa250-photo-img{
  position:absolute;
  inset:0;
  top:auto;
  left:auto;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
  z-index:0;
}

.usa250-photo-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:none;
  opacity:0;
}

.usa250-stat-card{
  position:relative;
  background:#ffffff;
  border:1px solid var(--line);
  border-bottom:6px solid var(--blue-accent);
  border-radius:24px;
  padding:24px 26px 22px;
  box-shadow:0 18px 34px rgba(10,30,70,.12);
  overflow:hidden;
  transition:transform .16s ease, box-shadow .16s ease;
}

.usa250-stat-card:hover{
  transform:translateY(-5px);
  box-shadow:0 24px 40px rgba(10,30,70,.16);
}

.usa250-stat-card-inline{
  max-width:360px;
}

.usa250-stat-stars{
  display:flex;
  gap:10px;
  margin-bottom:12px;
  color:var(--gold);
  font-size:18px;
  line-height:1;
}

.usa250-stat-card strong{
  display:block;
  margin-bottom:10px;
  font-size:62px;
  line-height:.9;
  font-weight:900;
  letter-spacing:-.06em;
  color:var(--navy);
}

.usa250-stat-card p{
  margin:0;
  max-width:235px;
  font-size:16px;
  line-height:1.65;
  color:#4c5f79;
}

.usa250-cta{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  min-height:64px;
  padding:0 24px;
  border-radius:18px;
  background:linear-gradient(90deg, #e62a36 0%, #d91f2d 46%, #1f56b2 100%);
  color:#fff;
  font-size:16px;
  font-weight:900;
  letter-spacing:-.02em;
  box-shadow:0 16px 28px rgba(20,44,99,.16);
  transition:transform .16s ease, box-shadow .16s ease;
}

.usa250-cta:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 36px rgba(20,44,99,.22);
}

.usa250-cta-icon{
  font-size:24px;
  line-height:1;
}

.usa250-cta-overlay{
  position:absolute;
  left:50%;
  bottom:-28px;
  transform:translateX(-50%);
  min-width:320px;
  z-index:3;
}

.usa250-cta-overlay:hover{
  transform:translateX(-50%) translateY(-4px);
}

.usa250-gold-divider{
  width:100%;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.55) 0%, rgba(217,164,32,.95) 50%, rgba(255,255,255,.55) 100%);
}

/* Between #usa250 and closing band / #fundraising — not inside .usa250-section (avoids z-index + overflow clipping on mobile) */
.summer-shop-band > .usa250-gold-divider{
  position:relative;
  z-index:8;
  display:block;
  flex-shrink:0;
}

.usa250-exclusive{
  margin-top:84px;
}

.usa250-exclusive-head{
  text-align:center;
  max-width:980px;
  margin:0 auto 34px;
}

.usa250-exclusive-stars{
  margin-bottom:10px;
  color:var(--gold);
  font-size:18px;
  letter-spacing:.34em;
  line-height:1;
}

.usa250-exclusive-head h2{
  margin:0 0 14px;
  color:var(--navy);
  font-size:clamp(34px, 3.6vw, 58px);
  line-height:1.02;
  letter-spacing:-.05em;
}

.usa250-flag-underline{
  position:relative;
  width:min(460px, 100%);
  height:16px;
  margin:18px auto 18px;
  border-radius:999px;
  overflow:hidden;
  background:
    linear-gradient(
      90deg,
      #244fb0 0%,
      #244fb0 18%,
      #d91f2d 18%,
      #d91f2d 31%,
      #ffffff 31%,
      #ffffff 44%,
      #d91f2d 44%,
      #d91f2d 57%,
      #ffffff 57%,
      #ffffff 70%,
      #d91f2d 70%,
      #d91f2d 83%,
      #ffffff 83%,
      #ffffff 100%
    );
  box-shadow:0 10px 18px rgba(13,27,56,.08);
  border:1px solid rgba(19,35,62,.08);
}

.usa250-flag-underline span{
  position:absolute;
  left:9%;
  top:50%;
  transform:translate(-50%, -50%);
  color:var(--gold);
  font-size:12px;
  letter-spacing:.22em;
  white-space:nowrap;
}

.usa250-product-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:18px;
}

.usa250-product-card{
  background:#fff;
  border:1px solid var(--line);
  border-bottom:5px solid var(--red);
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 18px 32px rgba(13,27,56,.08);
  transition:transform .16s ease, box-shadow .16s ease;
  display:flex;
  flex-direction:column;
  height:100%;
}

.usa250-product-card:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 38px rgba(13,27,56,.13);
}

.usa250-product-image{
  min-height:220px;
  background:linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}

.usa250-product-image img{
  width:100%;
  height:190px;
  object-fit:contain;
}

.usa250-product-body{
  padding:22px 20px 24px;
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:0;
}

.usa250-product-body h3{
  margin:0 0 10px;
  color:var(--navy);
  font-size:24px;
  line-height:1.05;
  letter-spacing:-.03em;
}

.usa250-product-body p{
  margin:0;
  color:var(--text-soft);
  font-size:15px;
  line-height:1.72;
}

/* FUNDRAISING */
@keyframes fundraisingHeadingFlash{
  0%{
    color:var(--gold);
    text-shadow:0 0 0 rgba(217,164,32,0);
  }
  100%{
    color:#fff;
    text-shadow:0 0 22px rgba(255,255,255,.28);
  }
}

.fundraising-intro{
  position:relative;
  z-index:2;
  padding:8px 0 40px;
}

.fundraising-intro .container{
  text-align:center;
}

.fundraising-intro-stars{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:clamp(14px, 3.5vw, 28px);
  margin:0 0 16px;
  color:var(--gold);
  font-size:clamp(15px, 2vw, 20px);
  letter-spacing:0;
  user-select:none;
}

.fundraising-intro-stars span{
  line-height:1;
  text-shadow:0 0 14px rgba(217,164,32,.35);
}

.fundraising-intro-kicker{
  margin:0 0 14px;
  font-size:clamp(12px, 1.35vw, 14px);
  font-weight:900;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold);
}

.fundraising-intro-heading{
  margin:0 0 18px;
  font-size:clamp(34px, 4.2vw, 62px);
  line-height:1.02;
  letter-spacing:-.045em;
  font-weight:900;
  color:#fff;
}

.fundraising-heading-flash{
  display:inline-block;
  animation:fundraisingHeadingFlash 1.25s ease-in-out infinite alternate;
}

@media (prefers-reduced-motion: reduce){
  .fundraising-heading-flash{
    animation:none;
    color:var(--gold);
    text-shadow:none;
  }
}

.fundraising-intro-deck{
  margin:0 auto;
  max-width:52ch;
  font-size:clamp(16px, 1.85vw, 19px);
  line-height:1.65;
  font-weight:600;
  color:rgba(255,255,255,.78);
}

.fundraising-section .fundraising-detail .fundraising-detail-title{
  margin:0 0 14px;
  font-size:clamp(28px, 2.75vw, 50px);
  line-height:1.06;
  letter-spacing:-.04em;
  font-weight:900;
  color:#fff;
}

.fundraising-left{
  display:grid;
  gap:18px;
}

.fundraising-layout{
  align-items:start;
  align-content:start;
}

/* Stronger than .two-col (align-items:center): keep columns top-aligned so card grids never sit mid-column */
.fundraising-section .container.two-col.fundraising-layout{
  align-items:start;
  align-content:start;
  padding-bottom:56px;
}

.fundraising-section .fundraising-left,
.fundraising-section .fundraising-detail{
  min-width:0;
}

.fundraising-section .fund-support-grid,
.fundraising-section .fundraising-mini-grid{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

/* Home: solid navy (no texture image) */
.fundraising-section.section-dark{
  background:var(--navy);
}

.fundraising-section.section-dark > *{
  position:relative;
  z-index:1;
}

/* Home #fundraising: plain label, no pill — red title-case */
.fundraising-section .fundraising-detail > .section-kicker.section-kicker-dark{
  display:block;
  width:fit-content;
  min-height:0;
  padding:0;
  border-radius:0;
  background:transparent;
  border:none;
  box-shadow:none;
  color:var(--red);
  text-transform:none;
  letter-spacing:.02em;
}

.fundraising-carousel-card{
  position:relative;
}

.fund-carousel{
  position:relative;
  border-radius:24px;
  overflow:hidden;
  border-bottom:5px solid var(--red);
  box-shadow:0 18px 36px rgba(5,12,28,.22);
  background:rgba(255,255,255,.06);
}

.fund-slide{ display:none; }
.fund-slide.is-active{ display:block; }

.fund-slide img{
  width:100%;
  height:520px;
  object-fit:cover;
}

.fund-carousel-btn{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:46px;
  height:46px;
  border:none;
  border-radius:999px;
  background:rgba(10,30,70,.78);
  color:#fff;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  transition:transform .16s ease, background .16s ease;
}

.fund-carousel-btn:hover{
  transform:translateY(-50%) scale(1.08);
  background:rgba(10,30,70,.94);
}

.fund-carousel-btn.prev{ left:14px; }
.fund-carousel-btn.next{
  left:auto;
  right:14px;
}

.fund-carousel-dots{
  position:absolute;
  left:50%;
  bottom:16px;
  transform:translateX(-50%);
  display:flex;
  gap:8px;
}

.fund-dot{
  width:10px;
  height:10px;
  border:none;
  border-radius:999px;
  background:rgba(255,255,255,.46);
  cursor:pointer;
  transition:transform .16s ease, background .16s ease;
}

.fund-dot.is-active{
  background:#fff;
  transform:scale(1.18);
}

.fund-support-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.fund-support-card{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:16px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.08);
  transition:transform .16s ease, background .16s ease, box-shadow .16s ease;
}

.fund-support-card:hover{
  transform:translateY(-4px);
  background:rgba(255,255,255,.12);
  box-shadow:0 16px 28px rgba(0,0,0,.16);
}

.fund-support-icon{
  width:40px;
  height:40px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg, rgba(225,31,45,.92), rgba(199,26,38,.95));
  color:#fff;
  font-size:18px;
  font-weight:900;
  flex:0 0 auto;
}

.fund-support-card strong{
  display:block;
  color:#fff;
  font-size:15px;
  margin-bottom:4px;
}

.fund-support-card span{
  display:block;
  color:rgba(255,255,255,.78);
  font-size:13px;
  line-height:1.5;
}

.fundraising-detail{
  position:relative;
}

.fundraising-mini-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:12px;
  margin:24px 0 28px;
}

.fund-mini-card{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:16px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.06));
  box-shadow:0 10px 22px rgba(0,0,0,.14);
  transition:transform .18s ease, background .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.fund-mini-card:hover{
  transform:translateY(-2px);
  background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.07));
  border-color:rgba(255,255,255,.22);
  box-shadow:0 14px 30px rgba(0,0,0,.18);
}

.fund-mini-icon{
  width:42px;
  height:42px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg, #e2b43b 0%, var(--gold-dark) 100%);
  color:var(--navy);
  font-size:18px;
  font-weight:900;
  flex:0 0 auto;
  box-shadow:0 10px 18px rgba(217,164,32,.18);
}

.fund-mini-card strong{
  display:block;
  color:#fff;
  font-size:15px;
  margin-bottom:4px;
}

.fund-mini-card span{
  display:block;
  color:rgba(255,255,255,.78);
  font-size:13px;
  line-height:1.5;
}

/* Match .usa250-stat-card: vertical rhythm (mark → title → copy), not cramped icon row */
.fundraising-section .fund-support-grid{
  gap:16px;
}

.fundraising-section .fundraising-mini-grid{
  gap:16px;
  margin-top:26px;
  margin-bottom:30px;
}

.fundraising-section .fund-support-card,
.fundraising-section .fund-mini-card{
  flex-direction:column;
  align-items:stretch;
  background:#fff;
  border:1px solid var(--line);
  border-bottom:6px solid var(--blue-accent);
  border-radius:24px;
  padding:22px 24px 20px;
  box-shadow:0 18px 34px rgba(10,30,70,.12);
  gap:0;
  transition:transform .16s ease, box-shadow .16s ease;
}

.fundraising-section .fund-support-card:hover,
.fundraising-section .fund-mini-card:hover{
  transform:translateY(-5px);
  box-shadow:0 24px 40px rgba(10,30,70,.16);
  background:#fff;
  border-color:var(--line);
  border-bottom-color:var(--blue-accent);
}

.fundraising-section .fund-support-icon,
.fundraising-section .fund-mini-icon{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  width:auto;
  max-width:none;
  min-width:0;
  padding:0;
  margin:0 0 12px;
  align-self:flex-start;
  background:transparent;
  border-radius:0;
  box-shadow:none;
}

.fundraising-section .fund-support-icon svg,
.fundraising-section .fund-mini-icon svg{
  width:40px;
  height:40px;
  flex-shrink:0;
  display:block;
}

.fundraising-section .fund-support-icon svg{
  color:var(--red);
}

.fundraising-section .fund-mini-icon svg{
  color:var(--blue-accent);
}

.fundraising-section .fund-support-card > div:not(.fund-support-icon),
.fundraising-section .fund-mini-card > div:not(.fund-mini-icon){
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  min-width:0;
}

.fundraising-section .fund-support-card strong,
.fundraising-section .fund-mini-card strong{
  color:var(--navy);
  font-size:17px;
  font-weight:900;
  letter-spacing:-.02em;
  line-height:1.22;
  margin:0;
}

.fundraising-section .fund-support-card span,
.fundraising-section .fund-mini-card span{
  color:#4c5f79;
  font-size:15px;
  line-height:1.62;
  margin:0;
}

/* ABOUT */
.section.section-white.about-section{
  background:transparent;
  overflow:visible;
}

.section.section-white.about-section::before{
  content:none;
}

.section.section-white.about-section > *{
  position:relative;
  z-index:1;
}

.about-section .section-kicker:not(.app-kicker){
  display:block;
  min-height:auto;
  padding:0;
  border-radius:0;
  background:transparent;
  border:none;
  box-shadow:none;
  color:var(--gold);
}

.about-layout{
  align-items:start;
}

.about-layout .content-block{
  overflow:visible;
}

.about-photo-card{
  border-radius:26px;
  overflow:hidden;
  box-shadow:0 18px 36px rgba(13,27,56,.10);
  border-bottom:5px solid var(--blue-accent);
  background:#f7f8fb;
  width:100%;
  max-width:min(100%, 520px);
  justify-self:center;
}

.about-photo-card img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4/3;
  object-fit:cover;
}

/* Stacked / tablet: taller frame so cover crop isn’t as tight vertically */
@media (max-width:1100px){
  .about-photo-card img{
    aspect-ratio:4/5;
  }
}

/* Desktop two-col: full column height like original; tablet/stacked stays capped above */
@media (min-width:1101px){
  .about-layout .about-photo-card{
    max-width:none;
    justify-self:stretch;
  }

  .about-layout .about-photo-card img{
    width:100%;
    min-height:540px;
    height:auto;
    aspect-ratio:auto;
    object-fit:cover;
  }
}

.stats-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:16px;
  margin-top:26px;
  overflow:visible;
}

.stat-box{
  background:#fff;
  border:1px solid var(--line);
  border-bottom:5px solid var(--blue-accent);
  border-radius:22px;
  padding:26px 30px 26px 32px;
  box-shadow:var(--shadow-soft);
  min-height:154px;
  overflow:visible;
  isolation:isolate;
  transition:transform .16s ease, box-shadow .16s ease;
}

.stat-box:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 30px rgba(13,27,56,.12);
}

.stat-box strong{
  display:block;
  margin:0 0 8px;
  padding:0;
  font-size:34px;
  line-height:1.25;
  font-weight:900;
  color:var(--red);
  letter-spacing:0;
  overflow:visible;
  text-indent:.22em;
  text-rendering:geometricPrecision;
}

.stat-box span{
  display:block;
  color:var(--text);
  font-size:15px;
  font-weight:800;
  line-height:1.55;
}

.stat-box-feature{
  background:#fff;
}

/* CLOSING CTA */
.closing-cta{
  position:relative;
  overflow:visible;
  background:linear-gradient(180deg, var(--red) 0%, var(--red-dark) 100%);
  color:#fff;
  padding:104px 0 84px;
  z-index:2;
}

.closing-cta::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.45) 0%, rgba(217,164,32,.98) 50%, rgba(255,255,255,.45) 100%);
  z-index:4;
}

.closing-top-wave-wrap{
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:56px;
  z-index:3;
  pointer-events:none;
  line-height:0;
  overflow:visible;
}

.closing-wave-stars{
  position:absolute;
  left:0;
  right:0;
  top:8px;
  bottom:auto;
  height:48px;
  z-index:4;
  pointer-events:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 24px;
}

.closing-wave-stars span{
  position:static;
  color:var(--gold);
  font-size:16px;
  line-height:1;
  transform:none;
  text-shadow:0 2px 10px rgba(10,30,70,.16);
  opacity:.95;
}

.closing-cta-row{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:26px;
  align-items:center;
}

.closing-copy h2{
  color:#fff;
  max-width:760px;
}

.closing-copy p{
  margin:0;
  color:rgba(255,255,255,.90);
  font-size:17px;
  line-height:1.75;
  max-width:720px;
}

.closing-buttons{
  justify-content:flex-end;
}

.closing-bottom-divider{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.55) 0%, rgba(217,164,32,.95) 50%, rgba(255,255,255,.55) 100%);
}

/* APP SECTION */
.app-section{
  position:relative;
  background:transparent;
  overflow:hidden;
  padding:0;
}

.app-section::before{
  content:none;
}

.app-section > *{
  position:relative;
  z-index:1;
}

/* Shared band so About + App are one continuous shade */
.about-app-band{
  position:relative;
  background-color:#d8d4cd;
  background-image:url("images/fireworks-pattern.jpg");
  background-repeat:repeat;
  background-position:0 0;
  background-size:min(420px, 92vw);
  background-attachment:fixed;
  overflow:hidden;
}

.about-app-band::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:linear-gradient(
    180deg,
    rgba(255,255,255,.14) 0%,
    rgba(216,212,205,.22) 100%
  );
  background-repeat:no-repeat;
  background-size:cover;
  background-position:0 0;
  background-attachment:fixed;
  opacity:1;
}

.about-app-band > *{
  position:relative;
  z-index:1;
}

.app-shell{
  padding:58px 0 66px;
}

@media (min-width:900px){
  .about-app-band{ background-size:560px; }
}

@media (max-width:520px){
  .about-app-band{ background-size:380px; }
}

.app-grid{
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:40px;
  align-items:center;
}

.app-kicker{
  background:#fff;
  color:var(--red);
  border:1px solid rgba(225,31,45,.12);
  box-shadow:none;
}

/* Keep app-style bubble when nested (section-specific rules + .content-block p font reset) */
.content-block .section-kicker.app-kicker{
  display:inline-flex;
  width:auto;
  max-width:100%;
  font-size:12px;
  line-height:1.25;
  font-weight:900;
  color:var(--red);
}

.app-heading{
  max-width:700px;
  font-size:clamp(38px, 4vw, 70px);
  line-height:.98;
  letter-spacing:-.05em;
}

.app-heading-flash{
  animation:appFlash 1.2s ease-in-out infinite alternate;
}

@keyframes appFlash{
  0%{
    color:var(--gold);
    text-shadow:0 0 0 rgba(217,164,32,0);
  }
  100%{
    color:var(--red);
    text-shadow:0 0 16px rgba(225,31,45,.12);
  }
}

.app-lead{
  margin:0 0 28px;
  font-size:18px;
  line-height:1.85;
  color:var(--text-soft);
  max-width:700px;
}

.app-points{
  display:grid;
  gap:18px;
  margin-bottom:28px;
}

.app-point{
  display:grid;
  grid-template-columns:64px 1fr;
  gap:16px;
  align-items:start;
  padding:0 0 20px;
  border-bottom:1px solid rgba(19,35,62,.10);
}

.app-point-icon{
  width:56px;
  height:56px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg, var(--red) 0%, var(--red-dark) 100%);
  color:#fff;
  font-size:22px;
  font-weight:900;
  box-shadow:0 12px 20px rgba(225,31,45,.14);
}

.app-point-icon img{
  display:block;
  width:40px;
  height:auto;
  max-height:21px;
  object-fit:contain;
  object-position:center;
  filter:brightness(0) invert(1);
}

.app-point strong{
  display:block;
  margin-bottom:4px;
  font-size:19px;
  color:var(--text);
  letter-spacing:-.02em;
}

.app-point span{
  display:block;
  font-size:15px;
  line-height:1.7;
  color:var(--text-soft);
  max-width:520px;
}

.app-store-row{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin:0 0 30px;
}

.app-store-inline{
  display:flex;
  align-items:center;
  gap:14px;
  min-height:86px;
  padding:14px 18px;
  border:1px solid rgba(19,35,62,.12);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 18px rgba(13,27,56,.04);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
  -webkit-tap-highlight-color:transparent;
}

.app-store-inline:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 28px rgba(13,27,56,.08);
  border-color:rgba(19,35,62,.18);
}

.app-store-inline:focus{
  outline:none;
}

.app-store-inline:focus-visible{
  outline:2px solid var(--gold);
  outline-offset:3px;
}

.app-store-inline-icon{
  width:56px;
  height:56px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg, #e2b43b 0%, var(--gold-dark) 100%);
  color:var(--navy);
  font-size:30px;
  font-weight:900;
  flex:0 0 auto;
}

.app-store-inline-icon-play{
  font-size:22px;
}

.app-store-inline-copy strong{
  display:block;
  margin-bottom:4px;
  font-size:18px;
  line-height:1.3;
  color:var(--text);
  letter-spacing:-.02em;
}

.app-store-inline-copy small{
  display:block;
  font-size:14px;
  line-height:1.55;
  color:var(--text-soft);
}

.app-buttons{
  margin-top:6px;
}

.app-visual{
  display:flex;
  justify-content:center;
}

.app-visual-shell{
  position:relative;
  width:min(100%, 470px);
  min-height:auto;
  padding:0;
  background:none;
  border:none;
  box-shadow:none;
  overflow:visible;
}

.app-phone-stars{
  position:absolute;
  top:-28px;
  left:50%;
  transform:translateX(-50%);
  color:var(--gold);
  font-size:18px;
  letter-spacing:.32em;
  line-height:1;
  white-space:nowrap;
}

.app-phone-showcase{
  width:100%;
  min-height:auto;
  border-radius:0;
  background:none;
  border:none;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}

.app-phone-showcase img{
  width:100%;
  max-width:300px;
  height:auto;
  object-fit:contain;
}

@media (min-width:901px) and (max-width:1100px){
  .app-visual-shell{
    width:min(100%, 520px);
  }

  .app-phone-showcase img{
    max-width:min(360px, 100%);
  }
}

@media (min-width:1101px){
  .app-visual-shell{
    width:min(100%, 560px);
  }

  .app-phone-showcase img{
    max-width:min(440px, 100%);
  }
}

@media (min-width:1320px){
  .app-phone-showcase img{
    max-width:min(480px, 100%);
  }
}

.app-footer-divider{
  width:100%;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.55) 0%, rgba(217,164,32,.95) 50%, rgba(255,255,255,.55) 100%);
}

/* FOOTER */
.site-footer{
  background:#06152f;
  color:#fff;
  padding:28px 0;
}

.footer-row{
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:24px;
  align-items:center;
}

.footer-brand{
  display:flex;
  align-items:center;
  gap:14px;
}

.footer-brand img{
  height:52px;
  width:auto;
}

.footer-brand p{
  margin:0;
  color:rgba(255,255,255,.76);
  font-size:14px;
  font-weight:700;
}

.footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
}

.footer-links a{
  color:rgba(255,255,255,.86);
  font-size:14px;
  font-weight:800;
}

.footer-social{
  display:flex;
  align-items:center;
  gap:10px;
}

.footer-social a{
  width:34px;
  height:34px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .16s ease, transform .16s ease;
}

.footer-social a:hover{
  background:rgba(255,255,255,.16);
  transform:translateY(-2px);
}

.footer-social svg{
  width:17px;
  height:17px;
  fill:#fff;
}

/* RESPONSIVE */
@media (max-width:1200px){
  .states-grid-ten{
    grid-template-columns:repeat(5, 1fr);
  }
}

@media (min-width:1201px){
  .state-card{
    min-height:114px;
  }

  .state-card img{
    width:66px;
    height:42px;
  }
}

@media (max-width:1100px){
  .two-col,
  .usa250-grid,
  .closing-cta-row,
  .footer-row,
  .app-grid{
    grid-template-columns:1fr;
  }

  .product-grid{ grid-template-columns:repeat(2, 1fr); }
  .usa250-product-grid{ grid-template-columns:repeat(2, 1fr); }
  .states-grid{ grid-template-columns:repeat(4, 1fr); }
  .closing-buttons{ justify-content:flex-start; }

  .usa250-visual{
    min-height:0;
    aspect-ratio:auto;
    width:100%;
    margin-top:18px;
  }

  .usa250-photo-panel{
    position:relative;
    inset:auto;
    height:auto;
  }

  .usa250-photo-img{
    position:relative;
    inset:auto;
    width:100%;
    height:auto;
  }

  .app-visual{
    justify-content:flex-start;
  }
}

@media (max-width:900px){
  .menu-toggle{ display:inline-block; }

  .site-nav{
    display:none;
    position:absolute;
    top:136px;
    left:16px;
    right:16px;
    background:#fff;
    border:1px solid rgba(19,35,62,.10);
    border-radius:18px;
    padding:14px;
    box-shadow:0 18px 38px rgba(13,28,56,.12);
    flex-direction:column;
    align-items:stretch;
    gap:8px;
  }

  .site-nav.is-open{ display:flex; }

  .site-nav a{
    padding:12px 14px;
    border-radius:12px;
  }

  .site-nav a:hover{
    background:#f6f6f4;
  }

  .hero{
    min-height:740px;
  }

  .hero-inner{
    min-height:740px;
    padding:112px 0 96px;
    align-items:flex-start;
  }

  /* HERO TABLET FIX: keep buttons/stats below the active slide text */
  .hero-copy-rotator{
    display:block;
    height:auto !important;
  }

  .hero-copy-slide{
    position:relative;
    inset:auto;
    opacity:1 !important;
    transform:none !important;
    pointer-events:auto;
  }

  .hero-copy-slide:not(.is-active){
    display:none;
  }

  .hero-stats{
    grid-template-columns:1fr;
    max-width:420px;
  }

  .fund-support-grid,
  .fundraising-mini-grid,
  .stats-grid{
    grid-template-columns:1fr;
  }

  .usa250-cta-overlay{
    min-width:280px;
  }

  .app-store-row{
    flex-direction:column;
  }

  .states-grid-ten{
    grid-template-columns:repeat(3, 1fr);
  }

  .products-section{
    padding-top:144px;
  }

  .summer-shop-band .products-section{
    padding-top:136px;
  }
}

@media (max-width:700px){
  .header-topbar::before,
  .header-topbar::after{
    display:none;
  }

  .header-topbar-row{
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    padding:10px 0;
  }

  .brand img{
    height:58px;
  }

  /* HERO MOBILE FIX */
  .hero,
  .hero-inner{
    min-height:auto;
  }

  .hero-inner{
    padding:64px 0 72px;
    align-items:flex-start;
  }

  .hero-copy{
    max-width:100%;
  }

  .hero-copy-rotator{
    display:block;
    height:auto !important;
  }

  .hero-copy-slide{
    position:relative;
    inset:auto;
    opacity:1 !important;
    transform:none !important;
    pointer-events:auto;
  }

  .hero-copy-slide:not(.is-active){
    display:none;
  }

  .hero h1{
    font-size:clamp(34px, 11vw, 52px);
    line-height:1.02;
    margin:0 0 14px;
    max-width:100%;
  }

  .hero-h1-deal-line{
    margin-top:10px;
    font-size:clamp(34px, 14vw, 62px);
    line-height:.9;
  }

  .hero-text{
    max-width:100%;
    font-size:16px;
    line-height:1.6;
    margin:0 0 18px;
  }

  .hero-buttons{
    margin:22px 0 18px;
  }

  .hero-buttons .btn{
    width:100%;
    min-height:54px;
  }

  .hero-stats{
    grid-template-columns:1fr;
    max-width:100%;
    margin-top:8px;
  }

  .hero-stat{
    padding:16px 16px 14px;
  }

  .hero-overlay{
    background:
      linear-gradient(180deg, rgba(10,30,70,.88) 0%, rgba(10,30,70,.78) 58%, rgba(10,30,70,.68) 100%),
      linear-gradient(180deg, rgba(0,0,0,.14), rgba(0,0,0,.30));
  }

  .states-grid,
  .states-grid-ten{
    grid-template-columns:repeat(2, 1fr);
  }

  .product-grid,
  .usa250-product-grid{
    grid-template-columns:1fr;
  }

  .section{
    padding:78px 0;
  }

  .button-row{
    flex-direction:column;
    align-items:stretch;
  }

  .footer-brand{
    flex-direction:column;
    align-items:flex-start;
  }

  .hero-wave svg,
  .section-wave svg{
    height:68px;
  }
  :root{ --wave-h:68px; }

  section#about.about-section{
    margin-top:calc(-1 * (var(--wave-h) + 12px));
    padding-top:calc(78px + var(--wave-h) + 12px);
  }

  .closing-top-wave-wrap{
    top:-62px;
    height:64px;
  }

  .closing-top-wave-svg{
    height:64px;
  }

  .closing-wave-stars{
    height:64px;
  }

  .closing-wave-stars span{
    font-size:14px;
  }

  .closing-wave-stars span:nth-child(1){ left:7%; top:29px; }
  .closing-wave-stars span:nth-child(2){ left:21%; top:24px; }
  .closing-wave-stars span:nth-child(3){ left:35%; top:20px; }
  .closing-wave-stars span:nth-child(4){ left:50%; top:18px; }
  .closing-wave-stars span:nth-child(5){ left:65%; top:20px; }
  .closing-wave-stars span:nth-child(6){ left:79%; top:25px; }
  .closing-wave-stars span:nth-child(7){ left:93%; top:30px; }

  .products-promo-badge{
    padding:16px 18px 14px;
  }

  .products-promo-badge p{
    font-size:13px;
  }

  .products-promo-stars{
    font-size:16px;
    gap:8px;
  }

  .usa250-section{
    padding-top:110px;
  }

  .summer-shop-band .usa250-section{
    padding-top:98px;
  }

  .usa250-photo-panel{
    border-radius:22px;
  }

  .usa250-copy h3{
    font-size:clamp(30px, 8vw, 46px);
  }

  .usa250-stat-card strong{
    font-size:52px;
  }

  .usa250-cta{
    font-size:16px;
    min-height:64px;
  }

  .usa250-cta-overlay{
    left:50%;
    right:auto;
    width:calc(100% - 30px);
    min-width:0;
  }

  .usa250-exclusive{
    margin-top:64px;
  }

  .usa250-flag-underline{
    height:14px;
  }

  .usa250-flag-underline span{
    font-size:10px;
    letter-spacing:.18em;
  }

  .hero-stars,
  .dark-stars{
    display:none;
  }

  .fund-slide img{
    height:360px;
  }

  .footer-social{
    justify-content:flex-start;
  }

  .app-visual-shell{
    width:100%;
    padding:0;
  }

  .app-phone-showcase img{
    max-width:260px;
  }

  .app-phone-stars{
    font-size:16px;
  }
}
/* =========================================================
   BELLINO FUNDRAISING PAGE V3
   fundraising.html only
   ========================================================= */

.bfund3-hero{
  position:relative;
  overflow:hidden;
  /* Solid base to avoid darker band above wave */
  background:var(--red);
  color:#fff;
  padding:68px 0 92px;
}

.bfund3-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:url("images/bellino-background-texture-red.png");
  background-repeat:repeat;
  background-position:0 0;
  background-size:min(680px, 115vw);
  opacity:.16;
  mix-blend-mode:soft-light;
  -webkit-mask-image:linear-gradient(180deg, #000 0%, #000 calc(100% - 140px), transparent 100%);
  mask-image:linear-gradient(180deg, #000 0%, #000 calc(100% - 140px), transparent 100%);
}

.bfund3-hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(900px 420px at 16% 0%, rgba(255,255,255,.08), transparent 62%),
    radial-gradient(720px 380px at 86% 8%, rgba(255,255,255,.07), transparent 60%),
    radial-gradient(520px 320px at 50% 40%, rgba(255,255,255,.05), transparent 60%);
  opacity:.55;
  pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg, #000 0%, #000 calc(100% - 140px), transparent 100%);
  mask-image:linear-gradient(180deg, #000 0%, #000 calc(100% - 140px), transparent 100%);
}

.bfund3-stars{
  position:absolute;
  z-index:2;
  color:#fff;
  font-size:14px;
  letter-spacing:.48em;
  user-select:none;
}

.bfund3-hero-copy .bfund3-hero-stars{
  display:flex;
  align-items:center;
  gap:clamp(10px, 2vw, 18px);
  margin:0 0 10px;
  color:#fff;
  font-size:clamp(13px, 1.4vw, 16px);
  line-height:1;
  letter-spacing:0;
  user-select:none;
  opacity:.9;
}

.bfund3-hero-copy .bfund3-hero-stars span{
  text-shadow:0 0 12px rgba(217,164,32,.35);
}

.bfund3-hero-grid{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:30px;
  align-items:start;
}

.bfund3-hero-copy h1{
  margin:0 0 18px;
  font-size:clamp(38px, 4.2vw, 64px);
  line-height:1.02;
  letter-spacing:-.05em;
}

.bfund3-hero-lead{
  margin:0 0 20px;
  max-width:760px;
  font-size:16.5px;
  line-height:1.75;
  color:rgba(255,255,255,.88);
}

.bfund3-hero-points{
  display:grid;
  gap:14px;
  margin-bottom:20px;
  max-width:720px;
}

.bfund3-hero-point{
  padding:16px 16px 14px;
  border-radius:18px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  border-left:5px solid rgba(217,164,32,.95);
  box-shadow:0 12px 22px rgba(0,0,0,.10);
}

.bfund3-hero-point strong{
  display:block;
  margin-bottom:4px;
  color:#fff;
  font-size:16px;
  line-height:1.2;
  font-weight:900;
}

.bfund3-hero-point span{
  display:block;
  color:rgba(255,255,255,.80);
  font-size:14px;
  line-height:1.6;
  font-weight:700;
}

.bfund3-hero-tagline{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 10px;
  max-width:720px;
  margin-top:6px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,.2);
}

/* Mini cards: match .bfund3-band-card solid gold bottom bar (slimmer than band cards) */
.bfund3-hero-tagline span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:0;
  padding:5px 11px 7px;
  border-radius:12px;
  background:rgba(255,255,255,.97);
  border:1px solid rgba(255,255,255,.32);
  border-bottom:3px solid rgba(217,164,32,.92);
  box-shadow:0 6px 14px rgba(13,27,56,.1);
  color:var(--navy);
  font-size:10.5px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  line-height:1.2;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
}

.bfund3-hero-tagline span:hover{
  transform:translateY(-2px);
  background:#fff;
  border-top-color:rgba(255,255,255,.55);
  border-left-color:rgba(255,255,255,.55);
  border-right-color:rgba(255,255,255,.55);
  border-bottom-color:rgba(217,164,32,.92);
  box-shadow:0 10px 20px rgba(13,27,56,.14);
}

.bfund3-hero-form-wrap{
  position:relative;
}

.bfund3-form-card{
  background:#fff;
  border:1px solid rgba(19,35,62,.10);
  border-bottom:6px solid var(--red);
  border-radius:26px;
  overflow:hidden;
  box-shadow:0 22px 42px rgba(5,12,28,.22);
  transform:translateY(6px);
  opacity:0;
  animation:bfund3FadeUp .55s ease .10s forwards;
}

.bfund3-form-top{
  padding:18px 22px 16px;
  background:
    radial-gradient(900px 220px at 12% 0%, rgba(217,164,32,.18), transparent 60%),
    radial-gradient(760px 220px at 88% 10%, rgba(36,79,176,.10), transparent 62%),
    linear-gradient(180deg, #ffffff 0%, #f7f8fb 100%);
  border-bottom:1px solid rgba(19,35,62,.10);
}

.bfund3-form-top span{
  display:block;
  margin-bottom:10px;
  color:var(--gold);
  font-size:14px;
  letter-spacing:.22em;
  line-height:1;
}

.bfund3-form-top strong{
  display:block;
  color:var(--navy);
  font-size:22px;
  line-height:1.12;
  letter-spacing:-.03em;
}

.bfund3-form-top small{
  display:block;
  margin-top:8px;
  color:rgba(19,35,62,.72);
  font-size:13px;
  line-height:1.55;
  font-weight:700;
}

.bfund3-form-top::after{
  content:"";
  display:block;
  height:4px;
  margin-top:14px;
  border-radius:999px;
  background:linear-gradient(
    90deg,
    var(--navy) 0%,
    #ffffff 24%,
    var(--red) 52%,
    #ffffff 78%,
    var(--navy) 100%
  );
  opacity:.85;
}

.bfund3-form{
  display:block;
  padding:22px;
}

.bfund3-form .wpcf7{
  width:100%;
}

.bfund3-form .wpcf7 > form{
  margin:0;
  display:block;
}

.bfund3-form .wpcf7-form-control-wrap{
  display:block;
}

.bfund3-form .wpcf7 form br{
  display:none;
}

/* CF7 fundraising template uses an inner `.bfund3-form-grid` wrapper (see CF7 form editor). */
.bfund3-form .wpcf7 form .bfund3-form-grid{
  display:grid;
  gap:14px;
  width:100%;
  min-width:0;
}

.bfund3-form .wpcf7 form label{
  display:grid;
  gap:8px;
  width:100%;
  min-width:0;
  margin:0;
}

.bfund3-form .wpcf7 form label > span{
  color:var(--navy);
  font-size:13px;
  font-weight:900;
  letter-spacing:.01em;
}

.bfund3-form .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.bfund3-form .wpcf7 textarea,
.bfund3-form .wpcf7 select{
  width:100%;
  border:1px solid rgba(19,35,62,.16);
  border-radius:16px;
  background:linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
  padding:14px 14px;
  font:inherit;
  color:var(--text);
  outline:none;
  box-shadow:0 1px 0 rgba(19,35,62,.04);
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease, transform .16s ease;
}

.bfund3-form .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):hover,
.bfund3-form .wpcf7 textarea:hover,
.bfund3-form .wpcf7 select:hover{
  border-color:rgba(19,35,62,.28);
}

.bfund3-form .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):focus,
.bfund3-form .wpcf7 textarea:focus,
.bfund3-form .wpcf7 select:focus{
  border-color:rgba(36,79,176,.62);
  box-shadow:0 0 0 4px rgba(36,79,176,.12), 0 10px 26px rgba(13,27,56,.10);
  background:#fff;
}

.bfund3-form .wpcf7 textarea{
  resize:vertical;
  min-height:140px;
}

.bfund3-form .wpcf7 input::placeholder,
.bfund3-form .wpcf7 textarea::placeholder{
  color:rgba(19,35,62,.46);
}

/* Let CF7 submit use the theme’s `.btn` classes (matches “needs-to-be”) */
.bfund3-form .wpcf7 input[type="submit"].btn,
.bfund3-form .wpcf7 .wpcf7-submit.btn{
  appearance:none;
  -webkit-appearance:none;
}

.bfund3-form .wpcf7-not-valid-tip{
  margin-top:6px;
  font-size:12.5px;
  font-weight:800;
}

.bfund3-form .wpcf7-response-output{
  margin:14px 0 0;
  border-radius:16px;
  padding:12px 14px;
  font-weight:800;
}

@media (min-width: 920px){
  .bfund3-form .wpcf7 form .bfund3-form-grid{
    grid-template-columns:1fr 1fr;
    align-items:start;
  }

  .bfund3-form .wpcf7 form .wpcf7-response-output{
    grid-column:1 / -1;
  }
}

.bfund3-form .wpcf7 form .bfund3-span-2{
  grid-column:1 / -1;
}

.bfund3-form label{
  display:grid;
  gap:8px;
}

.bfund3-form label span{
  color:var(--navy);
  font-size:13px;
  font-weight:900;
  letter-spacing:.01em;
}

.bfund3-form input,
.bfund3-form textarea{
  width:100%;
  border:1px solid rgba(19,35,62,.16);
  border-radius:16px;
  background:linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
  padding:14px 14px;
  font:inherit;
  color:var(--text);
  outline:none;
  box-shadow:0 1px 0 rgba(19,35,62,.04);
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease, transform .16s ease;
}

.bfund3-form input:hover,
.bfund3-form textarea:hover{
  border-color:rgba(19,35,62,.28);
}

.bfund3-form input:focus,
.bfund3-form textarea:focus{
  border-color:rgba(36,79,176,.62);
  box-shadow:0 0 0 4px rgba(36,79,176,.12), 0 10px 26px rgba(13,27,56,.10);
  background:#fff;
}

.bfund3-form textarea{
  resize:vertical;
  min-height:140px;
}

.bfund3-form input::placeholder,
.bfund3-form textarea::placeholder{
  color:rgba(19,35,62,.46);
}

.bfund3-form .btn{
  padding:14px 16px;
  border-radius:16px;
  font-weight:900;
  letter-spacing:.01em;
  box-shadow:0 18px 34px rgba(225,31,45,.22);
}

.bfund3-form .btn:focus{
  outline:none;
  box-shadow:0 0 0 4px rgba(225,31,45,.14), 0 18px 34px rgba(225,31,45,.22);
}

.bfund3-span-2{ grid-column:1 / -1; }

@media (min-width: 920px){
  .bfund3-form-grid{
    grid-template-columns:1fr 1fr;
    align-items:start;
  }
}

.bfund3-hero-wave{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  line-height:0;
  z-index:2;
}

.bfund3-hero-wave svg{
  width:100%;
  height:96px;
}

.bfund3-hero-wave path{
  fill:var(--navy);
  stroke:rgba(217,164,32,.85);
  stroke-width:4px;
  vector-effect:non-scaling-stroke;
  paint-order:stroke fill;
}

@keyframes bfund3FadeUp{
  from{ opacity:0; transform:translateY(10px); }
  to{ opacity:1; transform:translateY(0); }
}

@media (prefers-reduced-motion: reduce){
  .bfund3-form-card{
    animation:none;
    opacity:1;
    transform:none;
  }
}

.bfund3-band{
  position:relative;
  background:var(--navy);
  padding:56px 0 112px;
  overflow:hidden;
}

.bfund3-band::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 280px at 14% 0%, rgba(255,255,255,.16), transparent 60%),
    radial-gradient(860px 260px at 86% 10%, rgba(10,30,70,.14), transparent 62%);
  opacity:0;
  pointer-events:none;
}

.bfund3-band::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:0;
  background:transparent;
}

.bfund3-band-head{
  text-align:center;
  max-width:860px;
  margin:0 auto 22px;
  position:relative;
  z-index:1;
}

.bfund3-band-stars{
  display:flex;
  justify-content:center;
  gap:14px;
  color:var(--gold);
  margin:0 0 10px;
  opacity:.95;
}

.bfund3-band-stars span{
  line-height:1;
  text-shadow:0 0 14px rgba(217,164,32,.35);
}

.bfund3-band-kicker{
  margin:0 0 14px !important;
  font-size:clamp(12px, 1.35vw, 14px) !important;
  text-transform:uppercase;
  letter-spacing:.18em;
}

.bfund3-band-heading{
  margin:0 0 18px;
  color:#fff;
  font-size:clamp(34px, 4.2vw, 62px);
  line-height:1.05;
  letter-spacing:-.04em;
}

.bfund3-band-flash{
  display:inline-block;
  animation:fundraisingHeadingFlash 1.25s ease-in-out infinite alternate;
}

@media (prefers-reduced-motion: reduce){
  .bfund3-band-flash{
    animation:none;
    color:var(--gold);
  }
}

.bfund3-band-deck{
  margin:0 auto;
  max-width:52ch;
  font-size:16px;
  line-height:1.75;
  color:rgba(255,255,255,.82);
}

.bfund3-band-head h2{
  margin:0 0 10px;
  color:#fff;
  font-size:clamp(26px, 2.5vw, 40px);
  line-height:1.08;
  letter-spacing:-.04em;
}

.bfund3-band-lead{
  margin:0;
  color:rgba(255,255,255,.84);
  font-size:16px;
  line-height:1.75;
  font-weight:600;
}

.bfund3-band-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
  position:relative;
  z-index:1;
}

.bfund3-band-card{
  min-height:118px;
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:18px 18px 16px;
  background:rgba(255,255,255,.97);
  border:1px solid rgba(255,255,255,.32);
  border-bottom:4px solid rgba(217,164,32,.92);
  border-radius:22px;
  box-shadow:0 14px 28px rgba(13,27,56,.14);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, background .16s ease;
}

.bfund3-band-card:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 34px rgba(13,27,56,.18);
  border-top-color:rgba(255,255,255,.55);
  border-left-color:rgba(255,255,255,.55);
  border-right-color:rgba(255,255,255,.55);
  border-bottom-color:rgba(217,164,32,.92);
  background:#fff;
}

.bfund3-band-icon{
  width:46px;
  height:46px;
  border-radius:18px;
  display:grid;
  place-items:center;
  background:transparent;
  border:none;
  box-shadow:none;
  color:var(--gold);
  font-weight:900;
  line-height:1;
  flex:0 0 auto;
}

/* Fundraising page kicker: remove pill + use gold text */
.bfund3-hero .section-kicker,
.bfund3-story .section-kicker,
.bfund3-story-groups .section-kicker,
.bfund3-band .section-kicker,
.bfund3-process .section-kicker{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  padding:0 !important;
  min-height:auto !important;
}

.bfund3-hero .section-kicker,
.bfund3-story .section-kicker,
.bfund3-story-groups .section-kicker,
.bfund3-band .section-kicker,
.bfund3-process .section-kicker{
  color:var(--gold) !important;
}

/* Hero stars: keep them clear of the kicker/headline */
.bfund3-stars{
  opacity:.75;
  pointer-events:none;
}

.bfund3-stars-right{ top:72px; right:max(17px, calc((100% - min(var(--container), calc(100% - 34px))) / 2)); }

/* Groups carousel sizing (fix oversized image on mobile) */
.bfund3-groups-photo{
  background:transparent;
  border-bottom:none;
  box-shadow:none;
}

.bfund3-groups-carousel{
  border-bottom:5px solid var(--red);
}

.bfund3-groups-carousel .fund-slide img{
  height:560px;
}

@media (max-width:1100px){
  .bfund3-groups-carousel .fund-slide img{
    height:420px;
  }
}

@media (max-width:700px){
  .bfund3-groups-carousel .fund-slide img{
    height:clamp(280px, 58vw, 380px);
  }
  .bfund3-stars-right{ top:56px; right:17px; }
}

/* White sections: subtle patriotic star speckle (very light)
   Parallax: same fixed-attachment treatment as index #locations / .summer-shop-band */
.bfund3-story.section-white{
  background-color:#d8d4cd;
  background-image:url("images/fireworks-pattern.jpg");
  background-repeat:repeat;
  background-position:0 0;
  background-size:min(420px, 92vw);
  background-attachment:fixed;
  overflow-x:hidden;
  overflow-y:visible;
}

.bfund3-story.section-white::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:linear-gradient(
    180deg,
    rgba(255,255,255,.14) 0%,
    rgba(216,212,205,.22) 100%
  );
  background-repeat:no-repeat;
  background-size:cover;
  background-position:0 0;
  background-attachment:fixed;
  opacity:1;
}

.bfund3-story.section-white > *{
  position:relative;
  z-index:1;
}

/* Match index fundraising → about transition (navy above curve, patterned below, gold stroke) */
.bfund3-band .section-wave.dark-wave{
  isolation:isolate;
  z-index:3;
  bottom:0;
  pointer-events:none;
}

.bfund3-band .section-wave.dark-wave::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:var(--navy);
}

.bfund3-band .section-wave.dark-wave::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background-color:#d8d4cd;
  background-image:
    linear-gradient(
      180deg,
      rgba(255,255,255,.14) 0%,
      rgba(216,212,205,.22) 100%
    ),
    url("images/fireworks-pattern.jpg");
  background-repeat:no-repeat, repeat;
  background-position:0 0, 0 0;
  background-size:cover, min(420px, 92vw);
  background-attachment:fixed, fixed;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M0,48 C220,92 456,110 722,82 C1000,54 1200,16 1440,46 L1440,120 L0,120 Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='%23fff' d='M0,48 C220,92 456,110 722,82 C1000,54 1200,16 1440,46 L1440,120 L0,120 Z'/%3E%3C/svg%3E");
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center bottom;
  mask-position:center bottom;
}

.bfund3-band .section-wave.dark-wave svg{
  position:relative;
  z-index:2;
  pointer-events:none;
}

.bfund3-band .section-wave.dark-wave .bfund3-wave-fill{
  fill:transparent;
  stroke:none;
}
.bfund3-band .section-wave.dark-wave .bfund3-wave-stroke{
  fill:none;
  stroke:rgba(217,164,32,.85);
  stroke-width:4px;
  vector-effect:non-scaling-stroke;
  paint-order:stroke fill;
}

@media (min-width:900px){
  .bfund3-band .section-wave.dark-wave::after{
    background-size:100% min(2400px, 220vh), 560px;
  }
}

@media (max-width:520px){
  .bfund3-band .section-wave.dark-wave::after{
    background-size:100% min(2400px, 220vh), 380px;
  }
}

.bfund3-band-icon svg{
  width:22px;
  height:22px;
}

@media (min-width:701px){
  .bfund3-band-icon{
    width:56px;
    height:56px;
  }

  .bfund3-band-icon svg{
    width:32px;
    height:32px;
  }
}

.bfund3-band-text{
  min-width:0;
}

.bfund3-band-card strong{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font-size:18px;
  font-weight:900;
  line-height:1.15;
}

.bfund3-band-card span{
  display:block;
  color:var(--text-soft);
  font-size:14px;
  line-height:1.62;
  font-weight:650;
}

.bfund3-story-grid{
  align-items:start;
  padding-bottom:0;
}

/* Fundraising story: tighten copy + add scannable highlights */
.bfund3-story .content-block{
  max-width:640px;
}

.bfund3-story .content-block p{
  max-width:62ch;
}

.bfund3-story .section-lead{
  margin-bottom:16px;
}

.bfund3-story-panel{
  margin-top:18px;
  padding:22px 20px 20px;
  border-radius:22px;
  background:#fff;
  border:1px solid rgba(19,35,62,.10);
  border-bottom:5px solid var(--red);
  box-shadow:0 18px 34px rgba(5,12,28,.10);
}

.bfund3-story-panel p{
  color:rgba(19,35,62,.72);
  margin:0 0 14px;
}

.bfund3-story-panel p:last-of-type{
  margin-bottom:0;
}

.bfund3-story-panel .feature-list{
  margin-top:16px;
}

.bfund3-story-panel .feature-list li{
  color:var(--navy);
  font-weight:900;
}

.bfund3-story-panel .feature-list li::before{
  background:var(--gold);
}

.bfund3-story-highlights{
  margin:14px 0 18px;
  padding:16px 16px 14px;
  border:1px solid rgba(19,35,62,.10);
  border-left:4px solid var(--gold);
  border-radius:18px;
  background:linear-gradient(180deg, rgba(245,247,251,.9) 0%, rgba(255,255,255,1) 100%);
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}

.bfund3-story-highlight strong{
  display:block;
  margin:0 0 6px;
  color:var(--navy);
  font-size:14px;
  font-weight:900;
  letter-spacing:-.01em;
}

.bfund3-story-highlight span{
  display:block;
  color:rgba(19,35,62,.72);
  font-size:13px;
  line-height:1.5;
  font-weight:650;
}

@media (max-width:900px){
  .bfund3-story-highlights{
    grid-template-columns:1fr;
  }
}

.bfund3-story-photo{
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 18px 36px rgba(13,27,56,.10);
  background:#f5f7fb;
}

.bfund3-story-carousel{
  border-radius:28px;
  border-bottom:5px solid var(--blue-accent);
}

.bfund3-story-carousel .fund-slide img{
  height:460px;
}

.bfund3-process{
  padding-top:112px;
  padding-bottom:94px;
}

.bfund3-process-stars{
  display:flex;
  justify-content:center;
  gap:14px;
  color:var(--gold);
  margin:0 0 10px;
  opacity:.95;
}

.bfund3-process-stars span{
  line-height:1;
  text-shadow:0 0 14px rgba(217,164,32,.35);
}

.bfund3-process-kicker{
  margin:0 0 14px !important;
  font-size:clamp(12px, 1.35vw, 14px) !important;
  text-transform:uppercase;
  letter-spacing:.18em;
}

.bfund3-process-heading{
  margin:0 0 18px;
  color:#fff;
  font-size:clamp(34px, 4.2vw, 62px);
  line-height:1.05;
  letter-spacing:-.04em;
}

.bfund3-process-flash{
  display:inline-block;
  animation:fundraisingHeadingFlash 1.25s ease-in-out infinite alternate;
}

@media (prefers-reduced-motion: reduce){
  .bfund3-process-flash{
    animation:none;
    color:var(--gold);
  }
}

.bfund3-process-deck{
  margin:0 auto;
  max-width:52ch;
  font-size:16px;
  line-height:1.75;
  color:rgba(255,255,255,.82);
}

.bfund3-process-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:18px;
}

.bfund3-process-card{
  padding:26px 22px 24px;
  border-radius:22px;
  background:#fff;
  border:1px solid rgba(19,35,62,.12);
  border-bottom:4px solid var(--gold);
  box-shadow:0 18px 34px rgba(6,16,38,.22);
  position:relative;
  overflow:hidden;
  transition:
    transform .22s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow .22s cubic-bezier(0.22, 1, 0.36, 1),
    border-top-color .2s ease,
    border-left-color .2s ease,
    border-right-color .2s ease,
    border-bottom-color .2s ease;
}

.bfund3-process-card:hover{
  transform:translateY(-4px);
  box-shadow:0 26px 44px rgba(6,16,38,.30);
  border-top-color:rgba(19,35,62,.18);
  border-left-color:rgba(19,35,62,.18);
  border-right-color:rgba(19,35,62,.18);
  border-bottom-color:var(--gold);
}

.bfund3-process-icon{
  width:48px;
  height:48px;
  margin-bottom:16px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:transparent;
  border:none;
  box-shadow:none;
  color:var(--gold);
}

.bfund3-process-icon svg{
  width:22px;
  height:22px;
  display:block;
  transition:transform .35s cubic-bezier(0.22, 1, 0.36, 1);
}

.bfund3-process-card:hover .bfund3-process-icon svg{
  transform:scale(1.06);
}

@media (min-width:701px){
  .bfund3-process-icon{
    width:72px;
    height:72px;
    margin-bottom:18px;
    border-radius:18px;
  }

  .bfund3-process-icon svg{
    width:40px;
    height:40px;
  }
}

/* Process section: remove extra star decoration for a cleaner look */
.bfund3-process .dark-stars{
  display:none;
}

.bfund3-process-card h3{
  margin:0 0 10px;
  color:var(--navy);
  font-size:20px;
  line-height:1.08;
  letter-spacing:-.03em;
}

.bfund3-process-card p{
  margin:0;
  color:rgba(19,35,62,.74);
  font-size:15px;
  line-height:1.72;
}

.bfund3-groups-stars{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:clamp(14px, 3.5vw, 28px);
  color:var(--gold);
  margin:0 0 10px;
  opacity:.95;
}

.bfund3-groups-stars span{
  line-height:1;
  text-shadow:0 0 14px rgba(217,164,32,.35);
}

.bfund3-groups-kicker{
  margin:0 0 14px !important;
  font-size:clamp(12px, 1.35vw, 14px) !important;
  text-transform:uppercase;
  letter-spacing:.18em;
}

.bfund3-groups-heading{
  margin:0 0 14px;
  color:var(--navy);
  font-size:clamp(34px, 3.6vw, 58px);
  line-height:1.02;
  letter-spacing:-.05em;
}

.bfund3-groups-flash{
  display:inline-block;
  animation:fundraisingHeadingFlash 1.25s ease-in-out infinite alternate;
}

/* Light patterned background: avoid white flash text */
.bfund3-story-groups .bfund3-groups-flash{
  animation:none;
  color:var(--gold);
  text-shadow:0 0 14px rgba(217,164,32,.22);
}

@media (prefers-reduced-motion: reduce){
  .bfund3-groups-flash{
    animation:none;
    color:var(--gold);
  }
}

.bfund3-groups-deck{
  margin-bottom:0;
  font-size:16px;
  line-height:1.75;
  color:rgba(19,35,62,.72);
}

.bfund3-gold-divider{
  width:100%;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.55) 0%, rgba(217,164,32,.95) 50%, rgba(255,255,255,.55) 100%);
}

/* Place dividers at section boundaries (fundraising page) */
.bfund3-process{
  position:relative;
}

.bfund3-process::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.55) 0%, rgba(217,164,32,.95) 50%, rgba(255,255,255,.55) 100%);
  z-index:2;
}

.bfund3-process .bfund3-gold-divider{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
}

.bfund3-story{
  position:relative;
  padding-bottom:40px;
}

.bfund3-story-intro h2{
  margin:0 0 14px;
  color:var(--navy);
  font-size:clamp(34px, 3.6vw, 58px);
  line-height:1.02;
  letter-spacing:-.05em;
}

.bfund3-story .bfund3-gold-divider{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
}

/* Fundraising: remove the extra navy block between white → dark sections */
.bfund3-story .section-wave.white-to-blue-wave{
  display:none;
}

/* Fundraising: remove straight divider line at story boundary */
.bfund3-story .bfund3-gold-divider{ display:none !important; }

.bfund3-opportunity{
  position:relative;
  padding-top:96px;
  padding-bottom:0;
}

/* Match bfund3-story patterned white background + parallax (fixed attachment) */
.bfund3-opportunity.section-white{
  background-color:#d8d4cd;
  background-image:url("images/fireworks-pattern.jpg");
  background-repeat:repeat;
  background-position:0 0;
  background-size:min(420px, 92vw);
  background-attachment:fixed;
  overflow-x:hidden;
  overflow-y:visible;
}

.bfund3-opportunity.section-white::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:linear-gradient(
    180deg,
    rgba(255,255,255,.14) 0%,
    rgba(216,212,205,.22) 100%
  );
  background-repeat:no-repeat;
  background-size:cover;
  background-position:0 0;
  background-attachment:fixed;
  opacity:1;
}

.bfund3-opportunity.section-white > *{
  position:relative;
  z-index:1;
}

.bfund3-opportunity-head{
  text-align:center;
  max-width:960px;
  margin:0 auto 34px;
}

.bfund3-opportunity-stars{
  margin-bottom:10px;
  color:var(--gold);
  font-size:18px;
  letter-spacing:.28em;
  line-height:1;
}

.bfund3-opportunity-head h2{
  margin:0 0 14px;
  color:var(--navy);
  font-size:clamp(34px, 3.5vw, 58px);
  line-height:1.02;
  letter-spacing:-.05em;
}

.bfund3-flag-rule{
  position:relative;
  width:min(460px, 100%);
  height:12px;
  margin:18px auto 0;
  border-radius:999px;
  overflow:hidden;
  background:
    linear-gradient(
      90deg,
      #244fb0 0%,
      #244fb0 18%,
      #d91f2d 18%,
      #d91f2d 31%,
      #ffffff 31%,
      #ffffff 44%,
      #d91f2d 44%,
      #d91f2d 57%,
      #ffffff 57%,
      #ffffff 70%,
      #d91f2d 70%,
      #d91f2d 83%,
      #ffffff 83%,
      #ffffff 100%
    );
  border:1px solid rgba(19,35,62,.08);
  box-shadow:0 8px 14px rgba(13,27,56,.08);
}

.bfund3-flag-rule span{
  position:absolute;
  left:9%;
  top:50%;
  transform:translate(-50%, -50%);
  color:var(--gold);
  font-size:10px;
  letter-spacing:.14em;
  white-space:nowrap;
}

.bfund3-opportunity-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:18px;
  padding-bottom:48px;
}

.bfund3-opportunity-card{
  padding:24px 20px 22px;
  border-radius:22px;
  background:#fff;
  border:1px solid var(--line);
  border-bottom:5px solid var(--red);
  box-shadow:0 14px 28px rgba(13,27,56,.07);
  transition:
    transform .22s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow .22s cubic-bezier(0.22, 1, 0.36, 1),
    border-top-color .2s ease,
    border-left-color .2s ease,
    border-right-color .2s ease,
    border-bottom-color .2s ease;
}

.bfund3-opportunity-card:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 36px rgba(13,27,56,.12);
  border-top-color:rgba(19,35,62,.14);
  border-left-color:rgba(19,35,62,.14);
  border-right-color:rgba(19,35,62,.14);
  border-bottom-color:var(--red);
}

.bfund3-opportunity-card strong{
  display:block;
  margin-bottom:10px;
  color:var(--navy);
  font-size:21px;
  line-height:1.12;
  font-weight:900;
  letter-spacing:-.03em;
}

.bfund3-opportunity-card p{
  margin:0;
  color:var(--text-soft);
  line-height:1.72;
  font-size:15px;
}

.bfund3-story-groups{
  position:relative;
  z-index:1;
  padding-top:48px;
  margin-top:0;
}

.bfund3-story-groups .content-block p{
  color:rgba(19,35,62,.72);
}

.bfund3-groups-head{
  padding-bottom:26px;
}

.bfund3-groups-head .bfund3-groups-stars{
  margin-bottom:10px;
  font-size:18px;
  line-height:1;
}

.bfund3-groups-layout{
  align-items:start;
  padding-bottom:48px;
}

.bfund3-groups-photo{
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 18px 36px rgba(0,0,0,.16);
  border-bottom:5px solid var(--red);
  background:#10234f;
}

.bfund3-groups-photo img{
  width:100%;
  height:100%;
  min-height:560px;
  object-fit:cover;
}

.bfund3-groups-list{
  display:grid;
  gap:14px;
  margin-top:28px;
}

.bfund3-groups-item{
  padding:18px 18px 16px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(19,35,62,.10);
  border-bottom:5px solid var(--red);
  box-shadow:0 18px 34px rgba(5,12,28,.10);
}

.bfund3-groups-item strong{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font-size:17px;
  line-height:1.2;
  font-weight:900;
}

.bfund3-groups-item span{
  display:block;
  color:rgba(19,35,62,.72);
  line-height:1.68;
  font-size:15px;
}

@media (max-width:1100px){
  .bfund3-hero-grid,
  .bfund3-story-grid,
  .bfund3-groups-layout{
    grid-template-columns:1fr;
  }

  .bfund3-groups-photo{
    max-width:820px;
    margin-left:auto;
    margin-right:auto;
  }

  .bfund3-band-grid,
  .bfund3-process-grid,
  .bfund3-opportunity-grid{
    grid-template-columns:repeat(2, 1fr);
  }

  .bfund3-story-photo img,
  .bfund3-groups-photo img{
    min-height:420px;
  }
}

@media (max-width:900px){
  .bfund3-hero{
    padding-top:82px;
  }

  .bfund3-hero-grid{
    gap:22px;
  }
}

@media (max-width:700px){
  .bfund3-stars{
    display:none;
  }

  .bfund3-hero{
    padding:72px 0 96px;
  }

  .bfund3-hero-copy h1{
    font-size:clamp(36px, 10vw, 52px);
    line-height:1.02;
  }

  .bfund3-hero-lead{
    font-size:16px;
    line-height:1.66;
  }

  .bfund3-band-grid,
  .bfund3-process-grid,
  .bfund3-opportunity-grid{
    grid-template-columns:1fr;
  }

  .bfund3-story-photo img,
  .bfund3-groups-photo img{
    min-height:320px;
  }

  /* Mobile: keep groups carousel photo tall like story photo */
  .bfund3-groups-photo img{
    min-height:460px;
  }

  .bfund3-form{
    padding:18px;
  }

  .bfund3-form-top{
    padding:18px 18px 16px;
  }

  .bfund3-form-top strong{
    font-size:22px;
  }

  .bfund3-flag-rule{
    height:14px;
  }

  .bfund3-flag-rule span{
    font-size:10px;
    letter-spacing:.14em;
  }

  .bfund3-hero-tagline{
    gap:8px;
    padding-top:18px;
  }

  .bfund3-hero-tagline span{
    padding:6px 12px 8px;
    font-size:11px;
  }
}

/* =========================================================
   ABOUT PAGE V5
   paste at bottom of stylesheet
   ========================================================= */

.about-page{
  background:#fff;
}

/* HERO — same texture + scrim as index #locations .locator-panel-head */
.about-hero-v2{
  position:relative;
  overflow:hidden;
  background-color:var(--navy);
  background-image:url("images/blue-bellino-texture.jpg");
  background-repeat:repeat;
  background-position:0 0;
  background-size:min(420px, 92vw);
  color:#fff;
  padding:88px 0 118px;
}

.about-hero-v2::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:linear-gradient(
    180deg,
    rgba(10,30,70,.42) 0%,
    rgba(10,30,70,.62) 100%
  );
}

.about-hero-v2-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:34px;
  align-items:center;
}

.about-hero-v2-copy{
  max-width:760px;
}

.about-hero-v2-copy .about-hero-v2-stars,
.ne-hero-v3-copy .ne-hero-v3-stars{
  display:flex;
  align-items:center;
  gap:clamp(10px, 2vw, 18px);
  margin:0 0 10px;
  color:#fff;
  font-size:clamp(13px, 1.4vw, 16px);
  line-height:1;
  letter-spacing:0;
  user-select:none;
  opacity:.9;
}

.about-hero-v2-copy .about-hero-v2-stars span,
.ne-hero-v3-copy .ne-hero-v3-stars span{
  text-shadow:0 0 12px rgba(217,164,32,.35);
}

/* Aside cluster: align to .container edge (not viewport %) */
.about-hero-v2 > .about-hero-v2-stars-aside,
.ne-hero-v3.product-hero-v1 > .hero-stars.about-hero-v2-stars-aside{
  top:88px;
  right:max(17px, calc((100% - min(var(--container), calc(100% - 34px))) / 2));
  letter-spacing:.48em;
}

.about-hero-v2-copy h1{
  margin:0 0 18px;
  font-size:clamp(44px, 5vw, 72px);
  line-height:.96;
  letter-spacing:-.05em;
}

.about-hero-v2-copy h1 .about-hero-v2-h1-red,
.ne-hero-v3-copy h1 .about-hero-v2-h1-red{
  color:var(--red);
  font-weight:inherit;
}

.about-hero-v2-text{
  margin:0 0 28px;
  max-width:720px;
  color:rgba(255,255,255,.88);
  font-size:18px;
  line-height:1.8;
}

.about-hero-v2-buttons{
  margin:0 0 30px;
}

.about-hero-v2-stats{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:14px;
  max-width:760px;
}

.about-hero-v2-stat{
  padding:18px 16px 16px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  border-bottom:4px solid rgba(217,164,32,.92);
  border-radius:18px;
  box-shadow:0 18px 28px rgba(0,0,0,.12);
}

.about-hero-v2-stat strong{
  display:block;
  margin-bottom:6px;
  font-size:28px;
  line-height:1;
  font-weight:900;
  color:#fff;
}

.about-hero-v2-stat span{
  display:block;
  color:rgba(255,255,255,.82);
  font-size:13px;
  font-weight:800;
}

.about-hero-v2-visual{
  position:relative;
  min-height:620px;
}

.about-hero-v2-image-main{
  position:absolute;
  inset:0 0 92px 0;
  border-radius:28px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  box-shadow:0 24px 42px rgba(3,10,26,.26);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
}

.about-hero-v2-image-main::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.24)),
    linear-gradient(90deg, rgba(10,30,70,.04), rgba(10,30,70,.12));
}

.about-hero-v2-panel{
  position:absolute;
  left:28px;
  right:28px;
  bottom:0;
  padding:24px 24px 22px;
  border-radius:24px;
  background:#fff;
  border:1px solid rgba(19,35,62,.10);
  border-bottom:6px solid var(--red);
  box-shadow:0 18px 38px rgba(5,12,28,.20);
}

.about-hero-v2-panel-kicker{
  margin-bottom:10px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.about-hero-v2-panel h3{
  margin:0 0 10px;
  color:var(--navy);
  font-size:28px;
  line-height:1.05;
  letter-spacing:-.03em;
}

.about-hero-v2-panel p{
  margin:0;
  color:var(--text-soft);
  font-size:15px;
  line-height:1.72;
}

.about-hero-v2-wave{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  line-height:0;
  z-index:2;
}

.about-hero-v2-wave svg{
  width:100%;
  height:96px;
}

.about-hero-v2-wave path{
  fill:var(--red);
  stroke:rgba(217,164,32,.85);
  stroke-width:4px;
  vector-effect:non-scaling-stroke;
  paint-order:stroke fill;
}

/* STATES */

/* SCROLLING TICKER */
.about-marquee{
  position:relative;
  background:#fff;
  border-top:1px solid rgba(19,35,62,.06);
  border-bottom:none;
  overflow:hidden;
}

.about-marquee-track{
  display:flex;
  width:max-content;
  animation:aboutMarqueeScroll 32s linear infinite;
  will-change:transform;
}

.about-marquee-group{
  display:flex;
  align-items:center;
  gap:22px;
  padding:18px 0;
  white-space:nowrap;
}

.about-marquee-group span{
  color:var(--navy);
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.about-marquee-swoosh{
  width:28px;
  height:18px;
  position:relative;
  flex:0 0 auto;
}

.about-marquee-swoosh::before{
  content:"✦";
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  color:var(--gold);
  font-size:15px;
  line-height:1;
}

.about-marquee-swoosh::after{
  content:"";
  position:absolute;
  left:10px;
  top:8px;
  width:16px;
  height:6px;
  border-top:2px solid rgba(225,31,45,.78);
  border-radius:999px;
  transform:rotate(-14deg);
}

@keyframes aboutMarqueeScroll{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(-50%); }
}

/* HUGE INFLATABLES SECTION */
/* About: reuse locations locator-combo section styles */
.about-summer-visit{
  position:relative;
  padding:0;
}

/* Reworked to match Locations page hub layout */
.about-summer-visit .locations-hub-grid{
  padding-top:48px;
  padding-bottom:72px;
}

.about-summer-visit .locator-panel-map.about-summer-map{
  padding:16px;
  background:linear-gradient(180deg, #eef1f5 0%, #f8f8f6 100%);
}

.about-summer-visit .about-summer-grid{
  margin:0;
}

.about-summer-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
  align-items:stretch;
}

.about-summer-photo{
  min-height:260px;
  border-radius:26px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  box-shadow:0 18px 36px rgba(13,27,56,.10);
  border-bottom:5px solid var(--blue-accent);
  overflow:hidden;
}

/* STORY MAIN */
.about-story-main{
  /* This block can live inside .locations-locator-combo on About,
     so it should inherit the shared patterned background. */
  background:transparent;
  padding-top:56px;
  padding-bottom:0;
}

.about-story-main-grid{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:34px;
  align-items:center;
}

.about-story-main-visual{
  min-height:540px;
}

.about-story-main-photo{
  width:100%;
  height:100%;
  min-height:540px;
  border-radius:28px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  box-shadow:0 18px 36px rgba(13,27,56,.10);
  border-bottom:5px solid var(--blue-accent);
}

.about-story-points{
  display:grid;
  gap:16px;
  margin-top:24px;
}

.about-story-point{
  padding:18px 18px 16px;
  border:1px solid rgba(19,35,62,.10);
  border-left:5px solid var(--red);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 18px rgba(13,27,56,.05);
}

.about-story-point strong{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font-size:17px;
  font-weight:900;
}

.about-story-point p{
  margin:0;
  color:var(--text-soft);
  font-size:15px;
  line-height:1.7;
}

/* HOW IT GREW */
.about-growth-band{
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);
  color:#fff;
  padding:110px 0 124px;
  margin-top:0;
}

.about-growth-wave{
  position:absolute;
  left:0;
  right:0;
  line-height:0;
  z-index:2;
}

.about-growth-wave-top{
  top:-1px;
  height:110px;
  /* Wave “cap” matches #summer-visit / .locations-locator-combo (pattern + scrim), not flat white */
}

.about-growth-wave-top::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background-color:#d8d4cd;
  background-image:
    linear-gradient(
      180deg,
      rgba(255,255,255,.14) 0%,
      rgba(216,212,205,.22) 100%
    ),
    url("images/fireworks-pattern.jpg");
  background-repeat:no-repeat, repeat;
  background-position:0 0, 0 0;
  background-size:cover, min(420px, 92vw);
  background-attachment:fixed, fixed;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0,0 L0,66 C186,102 408,110 722,88 C1020,68 1224,26 1440,48 L1440,0 Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0,0 L0,66 C186,102 408,110 722,88 C1020,68 1224,26 1440,48 L1440,0 Z'/%3E%3C/svg%3E");
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
}

@media (min-width:900px){
  .about-growth-wave-top::before{
    background-size:cover, 560px;
  }
}

@media (max-width:520px){
  .about-growth-wave-top::before{
    background-size:cover, 380px;
  }
}

.about-growth-wave-bottom{
  bottom:-1px;
  height:110px;
  /* Same locator-band stack as .locations-locator-combo + .about-growth-wave-top */
}

.about-growth-wave-bottom::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background-color:#d8d4cd;
  background-image:
    linear-gradient(
      180deg,
      rgba(255,255,255,.14) 0%,
      rgba(216,212,205,.22) 100%
    ),
    url("images/fireworks-pattern.jpg");
  background-repeat:no-repeat, repeat;
  background-position:0 0, 0 0;
  background-size:cover, min(420px, 92vw);
  background-attachment:fixed, fixed;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0,34 C200,82 426,106 724,82 C1014,58 1214,18 1440,48 L1440,120 L0,120 Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0,34 C200,82 426,106 724,82 C1014,58 1214,18 1440,48 L1440,120 L0,120 Z'/%3E%3C/svg%3E");
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
}

@media (min-width:900px){
  .about-growth-wave-bottom::before{
    background-size:cover, 560px;
  }
}

@media (max-width:520px){
  .about-growth-wave-bottom::before{
    background-size:cover, 380px;
  }
}

.about-growth-head{
  position:relative;
  z-index:3;
  max-width:920px;
  margin:0 auto 34px;
  text-align:center;
}

.about-growth-kicker{
  margin-bottom:10px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.about-growth-head h2{
  margin:0 0 12px;
  color:#fff;
  font-size:clamp(36px, 3.8vw, 60px);
  line-height:1.02;
  letter-spacing:-.05em;
}

.about-growth-head p{
  margin:0;
  color:rgba(255,255,255,.82);
  font-size:18px;
  line-height:1.72;
}

.about-growth-timeline{
  position:relative;
  z-index:3;
  display:grid;
  gap:16px;
  max-width:1020px;
  margin:0 auto;
}

.about-growth-step{
  padding:26px 26px 22px;
  border-radius:24px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.10);
  border-left:6px solid var(--gold);
  box-shadow:0 18px 30px rgba(0,0,0,.14);
}

.about-growth-step-top{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:16px;
  align-items:center;
  margin-bottom:14px;
}

.about-growth-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(225,31,45,.18);
  color:#fff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.about-growth-step h3{
  margin:0;
  color:#fff;
  font-size:22px;
  line-height:1.08;
  letter-spacing:-.03em;
}

.about-growth-mini{
  color:rgba(255,255,255,.68);
  font-size:13px;
  font-weight:800;
  text-align:right;
}

.about-growth-step p{
  margin:0;
  color:rgba(255,255,255,.86);
  font-size:15px;
  line-height:1.82;
}

.about-growth-flag{
  position:relative;
  z-index:3;
  width:min(1080px, calc(100% - 34px));
  height:18px;
  margin:34px auto 0;
  border-radius:999px;
  overflow:hidden;
  background:
    linear-gradient(
      90deg,
      #244fb0 0%,
      #244fb0 16%,
      #d91f2d 16%,
      #d91f2d 28%,
      #ffffff 28%,
      #ffffff 40%,
      #d91f2d 40%,
      #d91f2d 52%,
      #ffffff 52%,
      #ffffff 64%,
      #d91f2d 64%,
      #d91f2d 76%,
      #ffffff 76%,
      #ffffff 88%,
      #d91f2d 88%,
      #d91f2d 100%
    );
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 12px 22px rgba(0,0,0,.14);
}

.about-growth-flag span{
  position:absolute;
  left:10%;
  top:50%;
  width:84px;
  height:100%;
  transform:translate(-50%, -50%);
  background:
    radial-gradient(circle at 16px 50%, var(--gold) 0 6px, transparent 7px),
    radial-gradient(circle at 40px 50%, var(--gold) 0 6px, transparent 7px),
    radial-gradient(circle at 64px 50%, var(--gold) 0 6px, transparent 7px);
}

/* WHAT STILL MATTERS */
.about-values{
  padding-top:76px;
  padding-bottom:88px;
}

.about-values-kicker{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0 0 14px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  line-height:1;
}

.about-values-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:18px;
}

.about-value-card{
  padding:24px 22px 22px;
  border:1px solid var(--line);
  border-bottom:5px solid var(--red);
  border-radius:24px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}

.about-value-card h3{
  margin:0 0 10px;
  color:var(--navy);
  font-size:22px;
  line-height:1.08;
  letter-spacing:-.03em;
}

.about-value-card p{
  margin:0;
  color:var(--text-soft);
  font-size:15px;
  line-height:1.74;
}

/* RESPONSIVE */
@media (max-width:1100px){
  .about-hero-v2-grid,
  .about-story-main-grid{
    grid-template-columns:1fr;
  }

  .about-values-grid{
    grid-template-columns:1fr;
  }

  .about-summer-grid{
    grid-template-columns:1fr;
  }

  .about-hero-v2-visual{
    min-height:560px;
  }
}

@media (max-width:900px){
  .about-hero-v2{
    padding-top:76px;
  }

  .about-hero-v2-stats{
    grid-template-columns:1fr;
    max-width:420px;
  }

  .about-growth-step-top{
    grid-template-columns:1fr;
    gap:10px;
    align-items:start;
  }

  .about-growth-mini{
    text-align:left;
  }
}

@media (max-width:700px){
  .about-hero-v2{
    padding:72px 0 94px;
  }

  .about-hero-v2-copy h1{
    font-size:clamp(36px, 10vw, 52px);
    line-height:1.02;
  }

  .about-hero-v2-text,
  .about-growth-head p,
  .about-summer-sub{
    font-size:16px;
    line-height:1.66;
  }

  .about-hero-v2-buttons{
    margin-bottom:22px;
  }

  .about-hero-v2-visual{
    min-height:500px;
  }

  .about-hero-v2-image-main{
    inset:0 0 110px 0;
  }

  .about-hero-v2-panel{
    left:14px;
    right:14px;
    padding:20px 18px 18px;
  }

  .about-hero-v2-panel h3{
    font-size:24px;
  }

  .about-marquee-group{
    gap:16px;
    padding:14px 0;
  }

  .about-marquee-group span{
    font-size:12px;
  }

  .about-summer-visit{
    padding-top:72px;
    padding-bottom:76px;
  }

  .about-summer-title{
    font-size:clamp(32px, 9vw, 48px);
  }

  .about-summer-stars{
    gap:12px;
    font-size:15px;
  }

  .about-summer-photo{
    min-height:220px;
  }

  .about-growth-band{
    padding-top:88px;
    padding-bottom:100px;
  }

  .about-growth-wave-top{
    height:72px;
  }

  .about-growth-wave-bottom{
    height:72px;
  }

  .about-growth-flag{
    height:14px;
    margin-top:24px;
  }

  .about-story-main-photo{
    min-height:260px;
  }
}
/* =========================================================
   LOCATIONS PAGE V2
   paste at bottom of stylesheet
   ========================================================= */

.locations-page{
  background:#fff;
}

/* HERO — base + pattern: index .locator-section (rules grouped under LOCATOR above) */
.locations-hero-v2{
  position:relative;
  overflow:hidden;
  padding:84px 0 94px;
}

.locations-hero-v2-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:30px;
  align-items:start;
}

.locations-hero-v2-copy{
  max-width:760px;
}

.locations-hero-v2-copy h1{
  margin:0 0 18px;
  color:var(--navy);
  font-size:clamp(44px, 5vw, 70px);
  line-height:.96;
  letter-spacing:-.05em;
}

.locations-hero-v2-text{
  margin:0 0 24px;
  max-width:720px;
  color:var(--text-soft);
  font-size:18px;
  line-height:1.82;
}

.locations-hero-v2-buttons{
  margin:0 0 28px;
}

.locations-hero-v2-quick{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:14px;
  max-width:760px;
}

.locations-hero-v2-quick-card{
  padding:18px 16px 16px;
  border-radius:20px;
  background:#fff;
  border:1px solid rgba(19,35,62,.10);
  border-bottom:5px solid var(--blue-accent);
  box-shadow:var(--shadow-soft);
}

.locations-hero-v2-quick-card strong{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font-size:26px;
  line-height:1;
  font-weight:900;
}

.locations-hero-v2-quick-card span{
  display:block;
  color:var(--text-soft);
  font-size:13px;
  line-height:1.5;
  font-weight:800;
}

.locations-hero-v2-side{
  display:grid;
  gap:18px;
}

.locations-hero-v2-photo{
  min-height:360px;
  border-radius:28px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  box-shadow:0 18px 36px rgba(13,27,56,.10);
  border-bottom:5px solid var(--blue-accent);
  position:relative;
  overflow:hidden;
}

.locations-hero-v2-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(10,30,70,.08) 100%);
}

.locations-hero-v2-info{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.locations-hero-v2-info-card{
  padding:20px 18px 18px;
  border-radius:22px;
  background:#fff;
  border:1px solid rgba(19,35,62,.10);
  box-shadow:var(--shadow-soft);
}

.locations-hero-v2-info-card span{
  display:block;
  margin-bottom:8px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.locations-hero-v2-info-card strong{
  display:block;
  margin-bottom:8px;
  color:var(--navy);
  font-size:22px;
  line-height:1.08;
  letter-spacing:-.03em;
}

.locations-hero-v2-info-card p{
  margin:0;
  color:var(--text-soft);
  font-size:14px;
  line-height:1.7;
}

.locations-hero-v2-wave{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  line-height:0;
  z-index:2;
}

.locations-hero-v2-wave svg{
  width:100%;
  height:96px;
}

.locations-hero-v2-wave path{
  fill:var(--red);
  stroke:rgba(217,164,32,.85);
  stroke-width:4px;
  vector-effect:non-scaling-stroke;
  paint-order:stroke fill;
}

/* STATES BAND VARIATION */
.locations-states-band-v2{
  position:relative;
  background:linear-gradient(180deg, var(--red) 0%, #c91b27 100%);
  padding:20px 0 26px;
}

.locations-states-band-v2::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:5px;
  background:linear-gradient(90deg, rgba(255,255,255,.75) 0%, rgba(217,164,32,.95) 50%, rgba(255,255,255,.75) 100%);
}

.locations-states-head{
  text-align:center;
  max-width:900px;
  margin:0 auto 24px;
}

.locations-states-head h2{
  margin:0 0 10px;
  color:#fff;
  font-size:clamp(30px, 3vw, 50px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.locations-states-head p{
  margin:0;
  color:rgba(255,255,255,.84);
  font-size:16px;
  line-height:1.72;
}

/* Locator stack sections: padding lives on inner grids; other combo sections keep their own padding */
.section.section-white.locations-locator-combo#locator,
.section.section-white.locations-locator-combo#summer-visit,
.section.section-white.locations-locator-combo#ne-locator,
.section.section-white.locations-locator-combo#ia-locator,
.section.section-white.locations-locator-combo#az-locator,
.section.section-white.locations-locator-combo#sd-locator,
.section.section-white.locations-locator-combo#ks-locator,
.section.section-white.locations-locator-combo#mo-locator,
.section.section-white.locations-locator-combo#tx-locator,
.section.section-white.locations-locator-combo#ok-locator,
.section.section-white.locations-locator-combo#ar-locator,
.section.section-white.locations-locator-combo#il-locator{
  padding:0;
}

.locations-locator-combo .locations-hub-grid{
  padding-top:48px;
}

/* SCROLL STRIP */
.locations-marquee{
  position:relative;
  background:transparent;
  border-top:1px solid rgba(19,35,62,.06);
  border-bottom:none;
  overflow:hidden;
}

.locations-marquee-track{
  display:flex;
  width:max-content;
  animation:locationsMarqueeScroll 34s linear infinite;
  will-change:transform;
}

.locations-marquee-group{
  display:flex;
  align-items:center;
  gap:22px;
  padding:18px 0;
  white-space:nowrap;
}

.locations-marquee-group span{
  color:var(--navy);
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.locations-marquee-swoosh{
  display:block;
  flex:0 0 auto;
  width:36px;
  height:24px;
  object-fit:contain;
  object-position:center;
  /* Black artwork 2192 navy/blue */
  filter:brightness(0) saturate(100%) invert(13%) sepia(52%) saturate(1450%) hue-rotate(198deg) brightness(0.88) contrast(1.06);
}


@keyframes locationsMarqueeScroll{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(-50%); }
}

/* LOCATOR HUB (section wrapper is .locations-locator-combo) */
.locations-hub-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px;
  align-items:start;
}

.locations-hub-copy h2{
  margin:0 0 14px;
  color:var(--navy);
  font-size:clamp(36px, 3.4vw, 58px);
  line-height:1.02;
  letter-spacing:-.05em;
}

.locations-hub-copy p{
  margin:0 0 16px;
  color:var(--text-soft);
  font-size:17px;
  line-height:1.8;
}

.locations-hub-list{
  display:grid;
  gap:14px;
  margin-top:24px;
}

.locations-hub-item{
  padding:18px 18px 16px;
  border:1px solid rgba(19,35,62,.10);
  border-left:5px solid var(--blue-accent);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 18px rgba(13,27,56,.05);
}

.locations-hub-item strong{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font-size:17px;
  font-weight:900;
}

.locations-hub-item p{
  margin:0;
  color:var(--text-soft);
  font-size:15px;
  line-height:1.72;
}

.locations-hub-locator{
  background:#fff;
  border:1px solid var(--line);
  border-bottom:6px solid var(--red);
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 18px 38px rgba(13,27,56,.10);
}

.locations-hub-locator-top{
  padding:22px 24px 20px;
  background:linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);
  color:#fff;
}

.locations-hub-locator-top span{
  display:block;
  margin-bottom:8px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.locations-hub-locator-top strong{
  display:block;
  font-size:26px;
  line-height:1.08;
  letter-spacing:-.03em;
}

.locations-hub-locator-top p{
  margin:10px 0 0;
  color:rgba(255,255,255,.78);
  font-size:14px;
  line-height:1.65;
}

.locations-hub-locator-map{
  min-height:430px;
  background:linear-gradient(180deg, #eef2f7 0%, #f8f8f6 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
}

.locations-hub-placeholder{
  max-width:360px;
  text-align:center;
}

.locations-hub-placeholder strong{
  display:block;
  margin-bottom:10px;
  color:var(--navy);
  font-size:24px;
  line-height:1.1;
}

.locations-hub-placeholder p{
  margin:0;
  color:var(--text-soft);
  font-size:15px;
  line-height:1.75;
}

.locations-hub-locator-bottom{
  padding:22px 24px 24px;
  border-top:1px solid var(--line);
}

.locations-hub-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

/* STATE DESTINATIONS (inside .locations-locator-combo on locations.html) */
.locations-locator-combo .locations-destinations{
  padding:52px 0 96px;
}

.locations-destinations-head{
  text-align:center;
  max-width:920px;
  margin:0 auto 30px;
}

.locations-destinations-head .section-kicker{
  margin-bottom:14px;
}

.locations-destinations-head h2{
  margin:0 0 12px;
  color:var(--navy);
  font-size:clamp(36px, 3.8vw, 60px);
  line-height:1.02;
  letter-spacing:-.05em;
}

.locations-destinations-head p{
  margin:0;
  color:var(--text-soft);
  font-size:17px;
  line-height:1.8;
}

.locations-destination-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
}

.locations-destination-card{
  display:block;
  padding:22px 20px 20px;
  border:1px solid var(--line);
  border-bottom:5px solid var(--blue-accent);
  border-radius:24px;
  background:#fff;
  box-shadow:var(--shadow-soft);
  transition:transform .16s ease, box-shadow .16s ease;
}

.locations-destination-card:hover{
  transform:translateY(-6px);
  box-shadow:0 22px 34px rgba(13,27,56,.12);
}

.locations-destination-top{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:14px;
}

.locations-destination-top img{
  width:58px;
  height:38px;
  object-fit:contain;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.12));
}

.locations-destination-top strong{
  color:var(--navy);
  font-size:22px;
  line-height:1.08;
  letter-spacing:-.03em;
}

.locations-destination-card p{
  margin:0 0 18px;
  color:var(--text-soft);
  font-size:15px;
  line-height:1.72;
}

.locations-destination-link{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.locations-destination-link > span:first-of-type{
  color:var(--red);
  font-size:13px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  white-space:nowrap;
}

/* img + filter: mask on external SVG is unreliable on desktop WebKit/Chromium */
.locations-destination-link .locations-destination-swoosh{
  display:block;
  flex:0 0 auto;
  width:40px;
  height:22px;
  object-fit:contain;
  object-position:center right;
  /* Black artwork → navy/blue (match topbar vibe) */
  filter:brightness(0) saturate(100%) invert(13%) sepia(52%) saturate(1450%) hue-rotate(198deg) brightness(0.88) contrast(1.06);
}

/* APP */
.locations-app-section{
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);
  color:#fff;
  padding:104px 0 96px;
}

.locations-app-wave{
  position:absolute;
  left:0;
  right:0;
  line-height:0;
  z-index:2;
}

.locations-app-wave-top{
  top:-22px;
  height:110px;
  /* Same layers + fixed attachment as .locations-locator-combo (gradient uses cover like ::before, not restarted in the strip) */
  background-color:#d8d4cd;
  background-image:
    linear-gradient(
      180deg,
      rgba(255,255,255,.14) 0%,
      rgba(216,212,205,.22) 100%
    ),
    url("images/fireworks-pattern.jpg");
  background-repeat:no-repeat, repeat;
  background-position:0 0, 0 0;
  background-size:cover, min(420px, 92vw);
  background-attachment:fixed, fixed;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0,0 L0,66 C186,102 408,110 722,88 C1020,68 1224,26 1440,48 L1440,0 Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0,0 L0,66 C186,102 408,110 722,88 C1020,68 1224,26 1440,48 L1440,0 Z'/%3E%3C/svg%3E");
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center bottom;
  mask-position:center bottom;
}

@media (min-width:900px){
  .locations-app-wave-top{
    background-size:cover, 560px;
  }
}

@media (max-width:520px){
  .locations-app-wave-top{
    background-size:cover, 380px;
  }
}

/* Same locator-band stack as .locations-app-wave-top + #state-pages */
.locations-app-wave-bottom{
  bottom:-22px;
  height:110px;
  background-color:#d8d4cd;
  background-image:
    linear-gradient(
      180deg,
      rgba(255,255,255,.14) 0%,
      rgba(216,212,205,.22) 100%
    ),
    url("images/fireworks-pattern.jpg");
  background-repeat:no-repeat, repeat;
  background-position:0 0, 0 0;
  background-size:cover, min(420px, 92vw);
  background-attachment:fixed, fixed;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0,34 C200,82 426,106 724,82 C1014,58 1214,18 1440,48 L1440,120 L0,120 Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0,34 C200,82 426,106 724,82 C1014,58 1214,18 1440,48 L1440,120 L0,120 Z'/%3E%3C/svg%3E");
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center bottom;
  mask-position:center bottom;
}

.locations-app-wave-stroke{
  position:absolute;
  left:0;
  right:0;
  top:0;
  width:100%;
  height:100%;
  pointer-events:none;
  z-index:1;
}

.locations-app-wave .locations-app-wave-stroke path{
  fill:none;
  stroke:rgba(217,164,32,.85);
  stroke-width:4px;
  vector-effect:non-scaling-stroke;
}

@media (min-width:900px){
  .locations-app-wave-bottom{
    background-size:cover, 560px;
  }
}

@media (max-width:520px){
  .locations-app-wave-bottom{
    background-size:cover, 380px;
  }
}

.locations-app-grid{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:28px;
  align-items:center;
}

.locations-app-copy h2{
  margin:0 0 14px;
  color:#fff;
  font-size:clamp(36px, 3.8vw, 60px);
  line-height:1.02;
  letter-spacing:-.05em;
}

.locations-app-copy p:not(.locations-app-kicker){
  margin:0 0 16px;
  color:rgba(255,255,255,.84);
  font-size:17px;
  line-height:1.72;
}

.locations-app-kicker-stars{
  display:flex;
  justify-content:flex-start;
  align-items:center;
  gap:14px;
  margin:0 0 12px;
  color:var(--gold);
}

.locations-app-kicker-stars span{
  line-height:1;
  text-shadow:0 0 14px rgba(217,164,32,.35);
}

.locations-app-kicker{
  margin:0 0 14px;
  font-size:clamp(12px, 1.35vw, 14px);
  font-weight:900;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--gold);
  line-height:1;
}

.locations-app-points{
  display:grid;
  gap:14px;
  margin:18px 0 22px;
}

.locations-app-point{
  display:grid;
  grid-template-columns:58px 1fr;
  gap:14px;
  align-items:start;
  padding:0 0 18px;
  border-bottom:1px solid rgba(255,255,255,.10);
}

.locations-app-point-icon{
  width:52px;
  height:52px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg, var(--red) 0%, var(--red-dark) 100%);
  color:#fff;
  font-size:20px;
  font-weight:900;
  box-shadow:0 12px 20px rgba(225,31,45,.14);
}

.locations-app-point-swoosh{
  display:block;
  width:34px;
  height:18px;
  object-fit:contain;
  filter:brightness(0) invert(1);
}

.locations-app-point strong{
  display:block;
  margin-bottom:4px;
  color:#fff;
  font-size:18px;
  letter-spacing:-.02em;
}

.locations-app-point span{
  display:block;
  color:rgba(255,255,255,.78);
  font-size:15px;
  line-height:1.7;
}

.locations-app-visual{
  display:flex;
  justify-content:center;
  flex-direction:column;
  align-items:center;
}

.locations-app-actions{
  margin-top:18px;
  justify-content:center;
  width:100%;
}

@media (min-width:900px){
  .locations-app-actions{
    margin-top:22px;
  }
}

.locations-app-shell{
  position:relative;
  width:min(100%, 470px);
  padding:0;
  background:none;
  border:none;
  box-shadow:none;
  overflow:visible;
}

.locations-app-stars{
  position:absolute;
  top:-28px;
  left:50%;
  transform:translateX(-50%);
  color:var(--gold);
  font-size:18px;
  letter-spacing:.32em;
  line-height:1;
  white-space:nowrap;
}

.locations-app-phone{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
}

.locations-app-phone img{
  width:100%;
  max-width:360px;
  height:auto;
  object-fit:contain;
}

.locations-app-flag{
  display:none;
}

.locations-app-flag span{
  display:none;
}

/* FOOTPRINT */
.locations-footprint{
  padding-top:76px;
  padding-bottom:88px;
}

.locations-footprint-grid{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:34px;
  align-items:center;
}

.locations-footprint-copy h2{
  margin:0 0 14px;
  color:var(--navy);
  font-size:clamp(36px, 3.8vw, 60px);
  line-height:1.02;
  letter-spacing:-.05em;
}

.locations-footprint-copy p{
  margin:0 0 16px;
  color:var(--text-soft);
  font-size:17px;
  line-height:1.8;
}

.locations-footprint-points{
  display:grid;
  gap:16px;
  margin-top:24px;
}

.locations-footprint-point{
  padding:18px 18px 16px;
  border:1px solid rgba(19,35,62,.10);
  border-left:5px solid var(--blue-accent);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 18px rgba(13,27,56,.05);
}

.locations-footprint-point strong{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font-size:17px;
  font-weight:900;
}

.locations-footprint-point p{
  margin:0;
  color:var(--text-soft);
  font-size:15px;
  line-height:1.72;
}

.locations-footprint-photo{
  min-height:540px;
  border-radius:28px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  box-shadow:0 18px 36px rgba(13,27,56,.10);
  border-bottom:5px solid var(--blue-accent);
}

/* FINAL CTA */
.locations-final{
  position:relative;
  overflow:visible;
  background:linear-gradient(180deg, var(--red) 0%, var(--red-dark) 100%);
  color:#fff;
  padding:104px 0 84px;
  z-index:2;
}

/* Match index .closing-cta — clean top gold divider, no wave/stars */
.locations-final::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.45) 0%, rgba(217,164,32,.98) 50%, rgba(255,255,255,.45) 100%);
  z-index:4;
}

.locations-final-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:26px;
  align-items:center;
}

.locations-final-copy h2{
  margin:0 0 14px;
  color:#fff;
  font-size:clamp(34px, 3vw, 56px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.locations-final-copy p{
  margin:0;
  color:rgba(255,255,255,.90);
  font-size:17px;
  line-height:1.75;
  max-width:720px;
}

.locations-final-actions{
  justify-content:flex-end;
}

/* RESPONSIVE */
@media (max-width:1100px){
  .locations-hero-v2-grid,
  .locations-hub-grid,
  .locations-app-grid,
  .locations-footprint-grid,
  .locations-final-grid{
    grid-template-columns:1fr;
  }

  .locations-destination-grid{
    grid-template-columns:repeat(2, 1fr);
  }
}

@media (max-width:900px){
  .locations-hero-v2{
    padding-top:76px;
  }

  .locations-hero-v2-quick{
    grid-template-columns:1fr;
    max-width:420px;
  }

  .locations-hero-v2-info{
    grid-template-columns:1fr;
  }
}

@media (max-width:700px){
  .locations-locator-combo .locations-destinations{
    padding:40px 0 72px;
  }

  .locations-locator-combo .locations-hub-grid{
    padding-top:36px;
  }

  .locations-hero-v2{
    padding:72px 0 88px;
  }

  .locations-hero-v2-copy h1{
    font-size:clamp(36px, 10vw, 52px);
    line-height:1.02;
  }

  .locations-hero-v2-text,
  .locations-hub-copy p,
  .locations-destinations-head p,
  .locations-app-copy p,
  .locations-footprint-copy p{
    font-size:16px;
    line-height:1.66;
  }

  .locations-marquee-group{
    gap:16px;
    padding:14px 0;
  }

  .locations-marquee-group span{
    font-size:12px;
  }

  .locations-destination-grid{
    grid-template-columns:1fr;
  }

  .locations-app-wave-top{
    height:72px;
  }

  .locations-app-wave-bottom{
    height:72px;
  }

  .locations-footprint-photo{
    min-height:280px;
  }

  .locations-app-shell{
    width:100%;
    padding:16px;
  }

  .locations-app-phone img{
    max-width:260px;
  }

  .locations-app-stars{
    font-size:16px;
    right:14px;
    top:14px;
  }

  .locations-app-flag span{
    font-size:10px;
    letter-spacing:.26em;
  }
}
/* =========================================================
   NEBRASKA PAGE V4
   paste at bottom of stylesheet
   ========================================================= */

.nebraska-page{
  background:#fff;
}

/* HERO */
.ne-hero-v3{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(760px 380px at 84% 16%, rgba(217,164,32,.14), transparent 62%),
    radial-gradient(860px 440px at 18% 12%, rgba(36,79,176,.18), transparent 62%),
    linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);
  color:#fff;
  padding:84px 0 122px;
}

.ne-hero-v3-bg{
  position:absolute;
  inset:0;
  background-image:url('images/bellino-hero2.jpg');
  background-size:cover;
  background-position:center;
  opacity:.14;
}

.ne-hero-v3-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(10,30,70,.86) 0%, rgba(10,30,70,.72) 50%, rgba(10,30,70,.46) 100%),
    linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.18));
}

/* PRODUCT DETAIL HERO VARIANT */
.product-detail-hero-v3{
  background:
    radial-gradient(760px 380px at 86% 14%, rgba(217,164,32,.18), transparent 62%),
    radial-gradient(860px 440px at 16% 12%, rgba(225,31,45,.16), transparent 62%),
    radial-gradient(920px 460px at 18% 80%, rgba(36,79,176,.18), transparent 62%),
    linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);
}

.product-detail-page .ne-hero-v3-bg{
  background-image:url('images/fright-night.png');
  opacity:.10;
}

.ne-hero-v3-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.04fr .96fr;
  gap:34px;
  align-items:start;
}

.ne-hero-v3-copy{
  max-width:760px;
}

.ne-hero-v3-copy h1{
  margin:0 0 18px;
  font-size:clamp(44px, 5vw, 72px);
  line-height:.96;
  letter-spacing:-.05em;
}

.ne-hero-v3-text{
  margin:0 0 16px;
  max-width:720px;
  color:rgba(255,255,255,.90);
  font-size:18px;
  line-height:1.8;
}

.ne-hero-v3-buttons{
  margin:26px 0 30px;
}

.ne-hero-v3-stats{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:14px;
  max-width:760px;
}

.ne-hero-v3-stat{
  padding:18px 16px 16px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  border-bottom:4px solid rgba(217,164,32,.92);
  border-radius:18px;
  box-shadow:0 18px 28px rgba(0,0,0,.12);
}

.ne-hero-v3-stat strong{
  display:block;
  margin-bottom:6px;
  font-size:24px;
  line-height:1;
  font-weight:900;
  color:#fff;
}

.ne-hero-v3-stat span{
  display:block;
  color:rgba(255,255,255,.82);
  font-size:13px;
  font-weight:800;
}

.ne-hero-v3-side{
  display:grid;
  gap:20px;
  align-content:start;
  min-width:0;
}

.ne-hero-v3-feature{
  padding:22px 22px 20px;
  border-radius:26px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 20px 32px rgba(0,0,0,.14);
  backdrop-filter:blur(6px);
}

.ne-hero-v3-feature-top{
  display:grid;
  grid-template-columns:88px 1fr;
  gap:16px;
  align-items:center;
  margin-bottom:18px;
}

.ne-hero-v3-feature-top img{
  width:88px;
  height:64px;
  object-fit:contain;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.20));
}

.ne-hero-v3-feature-top span{
  display:block;
  margin-bottom:6px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.ne-hero-v3-feature-top strong{
  display:block;
  color:#fff;
  font-size:28px;
  line-height:1.05;
  letter-spacing:-.03em;
}

.ne-hero-v3-pill-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.ne-hero-v3-pill-row span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  color:#fff;
  font-size:13px;
  font-weight:800;
}

.ne-hero-v3-photo-shell{
  position:relative;
  /* Room for badge centered on bottom edge (half out of photo) */
  margin-bottom:clamp(36px, 5vw, 52px);
}

.ne-hero-v3-photo{
  min-height:clamp(380px, 42vw, 580px);
  border-radius:28px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  box-shadow:0 24px 42px rgba(3,10,26,.26);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  position:relative;
}

.ne-hero-v3-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.26)),
    linear-gradient(90deg, rgba(10,30,70,.04), rgba(10,30,70,.12));
}

.ne-hero-v3-badge{
  position:absolute;
  left:50%;
  right:auto;
  bottom:0;
  z-index:2;
  transform:translate(-50%, 50%);
  padding:26px 32px 24px;
  border-radius:26px;
  background:#fff;
  border:1px solid rgba(19,35,62,.10);
  border-bottom:6px solid var(--red);
  box-shadow:0 22px 44px rgba(5,12,28,.24);
  display:inline-block;
  max-width:min(400px, calc(100% - 28px));
  text-align:center;
}

/* Missouri hero: make badge feel integrated, not a sticker */
.missouri-page .ne-hero-v3-badge{
  left:18px;
  right:auto;
  bottom:16px;
  transform:none;
  padding:12px 14px 12px;
  border-radius:16px;
  max-width:none;
  width:auto;
  text-align:left;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(255,255,255,.22);
  border-bottom:0;
  border-left:5px solid var(--red);
  box-shadow:0 16px 28px rgba(5,12,28,.18);
  backdrop-filter:saturate(140%) blur(8px);
}

.missouri-page .ne-hero-v3-badge strong{
  font-size:20px;
}

.ne-hero-v3-badge span{
  display:block;
  margin-bottom:10px;
  color:var(--gold);
  font-size:clamp(12px, 1.1vw, 14px);
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.ne-hero-v3-badge strong{
  display:block;
  color:var(--navy);
  font-size:clamp(26px, 3vw, 36px);
  line-height:1.05;
  letter-spacing:-.03em;
}

.ne-hero-v3-wave{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  line-height:0;
  z-index:2;
}

.ne-hero-v3-wave svg{
  width:100%;
  height:96px;
}

.ne-hero-v3-wave path{
  fill:var(--red);
  stroke:rgba(217,164,32,.85);
  stroke-width:4px;
  vector-effect:non-scaling-stroke;
  paint-order:stroke fill;
}

/* STATES BAND */
.ne-states-band-v3{
  padding-top:16px;
}

.is-current-state{
  background:rgba(255,255,255,.22);
  box-shadow:0 18px 28px rgba(0,0,0,.18);
}

/* MARQUEE */
.ne-marquee-v3{
  position:relative;
  background:#fff;
  border-top:1px solid rgba(19,35,62,.06);
  border-bottom:1px solid rgba(19,35,62,.08);
  overflow:hidden;
}

.ne-marquee-v3-track{
  display:flex;
  width:max-content;
  animation:neMarqueeV3Scroll 32s linear infinite;
  will-change:transform;
}

.ne-marquee-v3-group{
  display:flex;
  align-items:center;
  gap:22px;
  padding:18px 0;
  white-space:nowrap;
}

.ne-marquee-v3-group span{
  color:var(--navy);
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.ne-marquee-v3-swoosh{
  width:28px;
  height:18px;
  position:relative;
  flex:0 0 auto;
}

.ne-marquee-v3-swoosh::before{
  content:"✦";
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  color:var(--gold);
  font-size:15px;
  line-height:1;
}

.ne-marquee-v3-swoosh::after{
  content:"";
  position:absolute;
  left:10px;
  top:8px;
  width:16px;
  height:6px;
  border-top:2px solid rgba(225,31,45,.78);
  border-radius:999px;
  transform:rotate(-14deg);
}

@keyframes neMarqueeV3Scroll{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(-50%); }
}

/* LOCATOR */
.ne-locator-v3{
  background:#fff;
  padding:82px 0 76px;
}

.ne-locator-v3-grid{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:34px;
  align-items:start;
}

.ne-locator-v3-copy h2{
  margin:0 0 14px;
  color:var(--text);
  font-size:clamp(34px, 3.2vw, 56px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.ne-locator-v3-copy p{
  margin:0 0 16px;
  color:var(--text-soft);
  font-size:16px;
  line-height:1.8;
}

.ne-locator-v3-points{
  display:grid;
  gap:16px;
  margin-top:24px;
}

.ne-locator-v3-point{
  padding:18px 18px 16px;
  border:1px solid rgba(19,35,62,.10);
  border-left:5px solid var(--red);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 18px rgba(13,27,56,.05);
}

.ne-locator-v3-point strong{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font-size:17px;
  font-weight:900;
}

.ne-locator-v3-point p{
  margin:0;
  color:var(--text-soft);
  font-size:15px;
  line-height:1.7;
}

.ne-locator-v3-panel{
  background:#fff;
  border:1px solid var(--line);
  border-bottom:5px solid var(--red);
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--shadow);
}

.ne-locator-v3-panel-top{
  padding:22px 24px;
  background:var(--navy);
  color:#fff;
  display:grid;
  gap:6px;
}

.ne-locator-v3-panel-top span{
  color:var(--gold);
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.ne-locator-v3-panel-top strong{
  font-size:26px;
  line-height:1.05;
  letter-spacing:-.03em;
}

.ne-locator-v3-panel-top p{
  margin:0;
  color:rgba(255,255,255,.82);
  font-size:14px;
  line-height:1.7;
}

.ne-locator-v3-panel-map{
  min-height:380px;
  background:linear-gradient(180deg, #eef1f5 0%, #f8f8f6 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
}

.ne-locator-v3-placeholder{
  max-width:360px;
  text-align:center;
}

.ne-locator-v3-placeholder strong{
  display:block;
  margin-bottom:8px;
  font-size:24px;
  color:var(--navy);
}

.ne-locator-v3-placeholder p{
  margin:0;
  color:var(--text-soft);
  line-height:1.75;
}

.ne-locator-v3-panel-bottom{
  padding:22px;
  border-top:1px solid var(--line);
}

/* GOLD DIVIDER */
.ne-gold-divider{
  width:100%;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.55) 0%, rgba(217,164,32,.95) 50%, rgba(255,255,255,.55) 100%);
}

/* VISIBILITY */
.ne-visibility-v3{
  position:relative;
  background:
    radial-gradient(520px 200px at 10% 18%, rgba(36,79,176,.06), transparent 70%),
    radial-gradient(520px 220px at 90% 22%, rgba(225,31,45,.05), transparent 70%),
    #fff;
  padding:78px 0 84px;
}

/* Nebraska: visibility sits inside #ne-locator patterned combo — one continuous tile + scrim */
.locations-locator-combo#ne-locator .ne-visibility-v3,
.locations-locator-combo#ia-locator .ne-visibility-v3,
.locations-locator-combo#az-locator .ne-visibility-v3,
.locations-locator-combo#sd-locator .ne-visibility-v3,
.locations-locator-combo#ks-locator .ne-visibility-v3,
.locations-locator-combo#mo-locator .ne-visibility-v3,
.locations-locator-combo#tx-locator .ne-visibility-v3,
.locations-locator-combo#ok-locator .ne-visibility-v3,
.locations-locator-combo#ar-locator .ne-visibility-v3,
.locations-locator-combo#il-locator .ne-visibility-v3{
  background:none;
  padding-top:clamp(32px, 4.5vw, 48px);
  padding-bottom:clamp(40px, 5vw, 56px);
}

/* City filter stacked in same patterned / parallax band as locator + visibility */
.locations-locator-combo#ne-locator .ne-filter-section,
.locations-locator-combo#ia-locator .ne-filter-section,
.locations-locator-combo#az-locator .ne-filter-section,
.locations-locator-combo#sd-locator .ne-filter-section,
.locations-locator-combo#ks-locator .ne-filter-section,
.locations-locator-combo#mo-locator .ne-filter-section,
.locations-locator-combo#tx-locator .ne-filter-section,
.locations-locator-combo#ok-locator .ne-filter-section,
.locations-locator-combo#ar-locator .ne-filter-section,
.locations-locator-combo#il-locator .ne-filter-section{
  background:none;
  padding-top:clamp(36px, 5vw, 52px);
  padding-bottom:88px;
}

.ne-visibility-v3-head{
  max-width:920px;
  margin:0 auto 30px;
  text-align:center;
}

.ne-visibility-v3-stars{
  display:flex;
  justify-content:center;
  gap:16px;
  margin:0 0 14px;
  color:var(--gold);
  font-size:18px;
  line-height:1;
  text-shadow:0 4px 12px rgba(10,30,70,.08);
}

.ne-mini-kicker{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0 0 14px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  line-height:1;
}

.ne-visibility-v3-head h2{
  margin:0 0 14px;
  color:var(--navy);
  font-size:clamp(36px, 3.8vw, 60px);
  line-height:1.02;
  letter-spacing:-.05em;
}

.ne-gold-flash{
  animation:neGoldFlash 1.6s ease-in-out infinite alternate;
}

@keyframes neGoldFlash{
  0%{
    color:var(--navy);
    text-shadow:0 0 0 rgba(217,164,32,0);
  }
  100%{
    color:var(--gold);
    text-shadow:0 0 18px rgba(217,164,32,.16);
  }
}

.ne-visibility-v3-head p{
  max-width:780px;
  margin:0 auto;
  color:var(--text-soft);
  font-size:17px;
  line-height:1.8;
}

.ne-visibility-v3-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
  align-items:stretch;
}

.ne-visibility-v3-photo{
  min-height:240px;
  border-radius:26px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  box-shadow:0 18px 36px rgba(13,27,56,.10);
  border-bottom:5px solid var(--blue-accent);
  overflow:hidden;
}

/* FILTER SECTION (standalone on other state pages; Nebraska nests inside #ne-locator) */
.ne-filter-section{
  position:relative;
  background:#fff;
  padding-top:78px;
  padding-bottom:88px;
}

/* Match fundraising bfund3-groups-head (stars + flat gold kicker + heading + deck) */
.ne-filter-head-v2{
  text-align:center;
}

.ne-filter-head-v2 .section-kicker{
  background:transparent !important;
  border:none !important;
  box-shadow:none !important;
  padding:0 !important;
  min-height:auto !important;
  color:var(--gold) !important;
}

.ne-filter-shell{
  padding:22px;
  border:1px solid rgba(19,35,62,.08);
  border-radius:28px;
  background:#f8fafc;
  box-shadow:0 14px 26px rgba(13,27,56,.05);
}

.ne-filter-toolbar{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  margin:0 0 28px;
}

.ne-filter-btn{
  min-height:48px;
  padding:12px 18px;
  border-radius:999px;
  border:1px solid rgba(19,35,62,.10);
  background:#fff;
  color:var(--navy);
  font-size:14px;
  font-weight:900;
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
  box-shadow:0 10px 18px rgba(13,27,56,.05);
}

.ne-filter-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 24px rgba(13,27,56,.08);
}

.ne-filter-btn.is-active{
  background:linear-gradient(180deg, var(--red) 0%, var(--red-dark) 100%);
  color:#fff;
  border-color:transparent;
  box-shadow:0 14px 24px rgba(225,31,45,.18);
}

.ne-filter-results{
  display:grid;
  gap:22px;
}

.ne-city-panel{
  padding:28px 26px 24px;
  border:1px solid var(--line);
  border-bottom:5px solid var(--red);
  border-radius:26px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}

.ne-city-panel-head{
  margin:0 0 22px;
}

.ne-city-panel-head h3{
  margin:0 0 10px;
  color:var(--text);
  font-size:clamp(30px, 2.7vw, 48px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.ne-city-panel-head p{
  max-width:860px;
  margin:0;
  color:var(--text-soft);
  font-size:17px;
  line-height:1.8;
}

.ne-city-label{
  margin-bottom:10px;
  color:var(--red);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.ne-location-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
}

.ne-location-grid-rich{
  align-items:stretch;
}

.ne-location-card{
  padding:20px 18px 18px;
  border:1px solid rgba(19,35,62,.10);
  border-bottom:5px solid var(--blue-accent);
  border-radius:22px;
  background:#fff;
  box-shadow:var(--shadow-soft);
  transition:transform .16s ease, box-shadow .16s ease;
  display:grid;
  gap:10px;
}

.ne-location-card:hover{
  transform:translateY(-5px);
  box-shadow:0 20px 30px rgba(13,27,56,.12);
}

.ne-location-card strong{
  color:var(--navy);
  font-size:18px;
  line-height:1.35;
  font-weight:900;
}

.ne-location-card span{
  color:var(--red);
  font-size:14px;
  font-weight:800;
}

.ne-location-card-rich{
  padding:0;
  overflow:hidden;
  gap:0;
}

/* Stand photo is the first row of the same card — no grid gap (parent .ne-location-card uses gap:10px). */
.ne-location-card-rich .ne-location-card-stand{
  display:block;
  width:100%;
  border-radius:22px 22px 0 0;
  background-repeat:no-repeat;
}

/* Rich location cards: navy texture topper (same treatment as .locator-panel-head / fundraising form) */
.ne-location-card-rich .locator-panel-head.ne-location-card-topper{
  margin:0;
  border-radius:22px 22px 0 0;
  min-height:128px;
  align-content:center;
}

.ne-location-card-rich:has(.ne-location-card-stand) .locator-panel-head.ne-location-card-topper{
  border-radius:0;
}

.ne-location-card-rich .locator-panel-head.ne-location-card-topper strong{
  color:#fff;
}

.ne-location-card-body{
  padding:18px 18px 16px;
  display:grid;
  gap:10px;
}

.ne-location-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.ne-location-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(225,31,45,.10);
  color:var(--red) !important;
  font-size:11px !important;
  font-weight:900 !important;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.ne-google-link{
  width:38px;
  height:38px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(19,35,62,.10);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 16px rgba(13,27,56,.08);
  transition:transform .16s ease, box-shadow .16s ease;
}

.ne-google-link:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 22px rgba(13,27,56,.12);
}

.ne-google-link img{
  width:20px;
  height:20px;
  object-fit:contain;
}

.ne-location-card-rich h4{
  margin:0;
  color:var(--navy);
  font-size:20px;
  line-height:1.25;
  letter-spacing:-.03em;
}

.ne-location-schedule{
  margin:0;
  font-size:14px;
  font-weight:700;
  color:var(--text-soft);
  line-height:1.45;
}

.ne-location-card-links{
  display:flex;
  align-items:center;
  gap:14px;
}

.ne-location-card-links a{
  color:var(--red);
  font-size:14px;
  font-weight:900;
}

.location-detail-page .location-detail-cta-stack{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:4px;
}

.location-detail-page .location-detail-info-card{
  align-self:stretch;
}

/* Tent SEO pages will replace this placeholder link */
.ne-location-tent-placeholder{
  color:var(--red);
  font-size:14px;
  font-weight:900;
  opacity:.5;
  cursor:default;
  user-select:none;
}

/* STATEWIDE STANDALONE — same fireworks tile + fixed scrim as #ne-locator / .locations-locator-combo */
.ne-statewide-standalone{
  position:relative;
  background-color:#d8d4cd;
  background-image:url("images/fireworks-pattern.jpg");
  background-repeat:repeat;
  background-position:0 0;
  background-size:min(420px, 92vw);
  background-attachment:fixed;
  overflow-x:hidden;
  padding:74px 0 88px;
}

.ne-statewide-standalone::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:linear-gradient(
    180deg,
    rgba(255,255,255,.14) 0%,
    rgba(216,212,205,.22) 100%
  );
  background-repeat:no-repeat;
  background-size:cover;
  background-position:0 0;
  background-attachment:fixed;
  opacity:1;
}

.ne-statewide-standalone > *{
  position:relative;
  z-index:1;
}

.ne-statewide-standalone-shell{
  padding:28px 26px 24px;
  border:1px solid var(--line);
  border-bottom:5px solid var(--red);
  border-radius:26px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}

.ne-statewide-standalone-head{
  margin:0 0 22px;
}

.ne-statewide-kicker{
  margin-bottom:10px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.ne-statewide-standalone-head h2{
  margin:0 0 10px;
  color:var(--text);
  font-size:clamp(30px, 2.7vw, 48px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.ne-statewide-standalone-head p{
  max-width:860px;
  margin:0;
  color:var(--text-soft);
  font-size:17px;
  line-height:1.8;
}

.ne-statewide-columns{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
}

.ne-statewide-card{
  padding:24px 22px 22px;
  border:1px solid var(--line);
  border-bottom:5px solid var(--blue-accent);
  border-radius:24px;
  background:#fff;
  box-shadow:var(--shadow-soft);
}

.ne-statewide-card h4{
  margin:0 0 14px;
  color:var(--navy);
  font-size:24px;
  line-height:1.05;
  letter-spacing:-.03em;
}

.ne-statewide-card ul{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:10px;
}

.ne-statewide-card li{
  position:relative;
  padding-left:18px;
  color:var(--text);
  font-size:15px;
  line-height:1.6;
  font-weight:800;
}

.ne-statewide-card li::before{
  content:"";
  position:absolute;
  left:0;
  top:10px;
  width:8px;
  height:8px;
  border-radius:999px;
  background:var(--gold);
}

/* APP */
.ne-app-v3{
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);
  color:#fff;
  padding:118px 0 118px;
}

.ne-app-v3-wave{
  position:absolute;
  left:0;
  right:0;
  line-height:0;
  z-index:2;
}

.ne-app-v3-wave-line{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  pointer-events:none;
  z-index:1;
}

.ne-app-v3-wave-line path{
  fill:none;
  stroke:rgba(217,164,32,.85);
  stroke-width:4px;
  vector-effect:non-scaling-stroke;
}

/* Same locator-band stack + SVG mask as .locations-app-wave (empty divs in fireworks-nebraska.html) */
.ne-app-v3-wave-top{
  top:-22px;
  height:110px;
  background-color:#d8d4cd;
  background-image:
    linear-gradient(
      180deg,
      rgba(255,255,255,.14) 0%,
      rgba(216,212,205,.22) 100%
    ),
    url("images/fireworks-pattern.jpg");
  background-repeat:no-repeat, repeat;
  background-position:0 0, 0 0;
  background-size:cover, min(420px, 92vw);
  background-attachment:fixed, fixed;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0,0 L0,66 C186,102 408,110 722,88 C1020,68 1224,26 1440,48 L1440,0 Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0,0 L0,66 C186,102 408,110 722,88 C1020,68 1224,26 1440,48 L1440,0 Z'/%3E%3C/svg%3E");
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center bottom;
  mask-position:center bottom;
}

@media (min-width:900px){
  .ne-app-v3-wave-top{
    background-size:cover, 560px;
  }
}

@media (max-width:520px){
  .ne-app-v3-wave-top{
    background-size:cover, 380px;
  }
}

.ne-app-v3-wave-bottom{
  bottom:-1px;
  height:110px;
  background-color:#d8d4cd;
  background-image:
    linear-gradient(
      180deg,
      rgba(255,255,255,.14) 0%,
      rgba(216,212,205,.22) 100%
    ),
    url("images/fireworks-pattern.jpg");
  background-repeat:no-repeat, repeat;
  background-position:0 0, 0 0;
  background-size:cover, min(420px, 92vw);
  background-attachment:fixed, fixed;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0,34 C200,82 426,106 724,82 C1014,58 1214,18 1440,48 L1440,120 L0,120 Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0,34 C200,82 426,106 724,82 C1014,58 1214,18 1440,48 L1440,120 L0,120 Z'/%3E%3C/svg%3E");
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center bottom;
  mask-position:center bottom;
}

@media (min-width:900px){
  .ne-app-v3-wave-bottom{
    background-size:cover, 560px;
  }
}

@media (max-width:520px){
  .ne-app-v3-wave-bottom{
    background-size:cover, 380px;
  }
}

.ne-app-v3-grid{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:34px;
  align-items:center;
}

.ne-app-v3-copy h2{
  margin:0 0 14px;
  color:#fff;
  font-size:clamp(34px, 3.2vw, 56px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.ne-app-v3-copy p{
  margin:0 0 16px;
  color:rgba(255,255,255,.84);
  font-size:17px;
  line-height:1.8;
}

.ne-app-v3-points{
  display:grid;
  gap:14px;
  margin:26px 0 28px;
}

.ne-app-v3-point{
  display:grid;
  grid-template-columns:56px 1fr;
  gap:14px;
  align-items:start;
  padding:16px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.08);
}

.ne-app-v3-icon{
  width:46px;
  height:46px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(180deg, rgba(225,31,45,.92), rgba(199,26,38,.95));
  color:#fff;
  font-size:18px;
  font-weight:900;
  box-shadow:0 10px 18px rgba(225,31,45,.16);
}

.ne-app-v3-point strong{
  display:block;
  margin-bottom:4px;
  color:#fff;
  font-size:16px;
}

.ne-app-v3-point span{
  display:block;
  color:rgba(255,255,255,.78);
  font-size:14px;
  line-height:1.6;
}

.ne-app-v3-visual{
  display:flex;
  justify-content:center;
}

.ne-app-v3-shell{
  position:relative;
  width:min(100%, 470px);
  padding:18px;
  border-radius:30px;
  background:
    radial-gradient(900px 420px at 24% 0%, rgba(255,255,255,.98), transparent 62%),
    linear-gradient(180deg, #f7f9fc 0%, #edf2f8 100%);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 24px 42px rgba(13,27,56,.20);
  overflow:hidden;
}

.ne-app-v3-stars{
  position:absolute;
  top:16px;
  right:18px;
  color:var(--gold);
  font-size:18px;
  letter-spacing:.32em;
  line-height:1;
}

.ne-app-v3-phone{
  width:100%;
  border-radius:22px;
  background:
    linear-gradient(135deg, rgba(10,30,70,.02), rgba(36,79,176,.05)),
    #ffffff;
  border:1px solid rgba(19,35,62,.10);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:12px 12px 18px;
}

.ne-app-v3-phone img{
  width:100%;
  max-width:300px;
  height:auto;
  object-fit:contain;
}

.ne-app-v3-flag{
  position:relative;
  margin:12px 10px 0;
  height:12px;
  border-radius:999px;
  overflow:hidden;
  background:
    linear-gradient(
      90deg,
      #244fb0 0%,
      #244fb0 16%,
      #d91f2d 16%,
      #d91f2d 28%,
      #ffffff 28%,
      #ffffff 40%,
      #d91f2d 40%,
      #d91f2d 52%,
      #ffffff 52%,
      #ffffff 64%,
      #d91f2d 64%,
      #d91f2d 76%,
      #ffffff 76%,
      #ffffff 88%,
      #d91f2d 88%,
      #d91f2d 100%
    );
  box-shadow:0 -1px 0 rgba(19,35,62,.04);
}

.ne-app-v3-flag span{
  position:absolute;
  left:8%;
  top:50%;
  transform:translate(-50%, -50%);
  color:var(--gold);
  font-size:12px;
  letter-spacing:.34em;
  white-space:nowrap;
  pointer-events:none;
}

/* FINAL */
.ne-final-v3{
  position:relative;
  background:linear-gradient(180deg, var(--red) 0%, var(--red-dark) 100%);
  color:#fff;
  padding:84px 0 74px;
  overflow:hidden;
}

.ne-final-v3::before{
  content:"★ ★ ★ ★ ★ ★ ★";
  position:absolute;
  left:0;
  right:0;
  top:8px;
  text-align:center;
  color:var(--gold);
  font-size:18px;
  letter-spacing:3.8rem;
  line-height:1;
  opacity:.95;
  white-space:nowrap;
}

.ne-final-v3-grid{
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:26px;
  align-items:center;
}

.ne-final-v3-copy h2{
  margin:0 0 14px;
  color:#fff;
  max-width:760px;
  font-size:clamp(34px, 3vw, 56px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.ne-final-v3-copy p{
  margin:0;
  color:rgba(255,255,255,.92);
  font-size:17px;
  line-height:1.75;
  max-width:720px;
}

.ne-final-v3-actions{
  justify-content:flex-end;
}

.ne-final-v3-divider{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.55) 0%, rgba(217,164,32,.95) 50%, rgba(255,255,255,.55) 100%);
}

/* Illinois expansion page: remove the bottom divider stripe so the final red CTA
   flows cleanly into the footer like the Locations page. */
.illinois-page .ne-final-v3-divider{
  display:none;
}

/* Illinois: final CTA should match Locations final (no wave above, gold lines top+bottom). */
.illinois-page .ne-app-v3-wave-bottom{
  display:none;
}

.illinois-page .ne-final-v3{
  padding:104px 0 84px;
}

/* Replace star strip with the Locations-style gold divider line. */
.illinois-page .ne-final-v3::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.45) 0%, rgba(217,164,32,.98) 50%, rgba(255,255,255,.45) 100%);
  z-index:4;
  opacity:1;
}

/* Add matching bottom gold divider line. */
.illinois-page .ne-final-v3::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.45) 0%, rgba(217,164,32,.98) 50%, rgba(255,255,255,.45) 100%);
  z-index:4;
  opacity:1;
}

/* Arkansas: final CTA should match Locations final (straight band + gold lines, no wave/stars). */
.arkansas-page .ne-final-v3-divider{
  display:none;
}

.arkansas-page .ne-app-v3-wave-bottom{
  display:none;
}

.arkansas-page .ne-final-v3{
  padding:104px 0 84px;
}

.arkansas-page .ne-final-v3::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.45) 0%, rgba(217,164,32,.98) 50%, rgba(255,255,255,.45) 100%);
  z-index:4;
  opacity:1;
}

.arkansas-page .ne-final-v3::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.45) 0%, rgba(217,164,32,.98) 50%, rgba(255,255,255,.45) 100%);
  z-index:4;
  opacity:1;
}

/* RESPONSIVE */
@media (max-width:1100px){
  .ne-hero-v3-grid,
  .ne-locator-v3-grid,
  .ne-app-v3-grid,
  .ne-final-v3-grid{
    grid-template-columns:1fr;
  }

  .ne-visibility-v3-grid,
  .ne-statewide-columns{
    grid-template-columns:1fr;
  }

  .ne-location-grid{
    grid-template-columns:repeat(2, 1fr);
  }

  .ne-final-v3-actions{
    justify-content:flex-start;
  }
}

@media (max-width:900px){
  .ne-hero-v3{
    padding-top:76px;
  }

  .ne-hero-v3-stats{
    grid-template-columns:1fr;
    max-width:420px;
  }

  .ne-hero-v3-feature-top{
    grid-template-columns:72px 1fr;
  }
}

@media (max-width:700px){
  .ne-hero-v3{
    padding:72px 0 94px;
  }

  .ne-hero-v3-copy h1{
    font-size:clamp(36px, 10vw, 52px);
    line-height:1.02;
  }

  .ne-hero-v3-text,
  .ne-filter-head-v2 p,
  .ne-city-panel-head p,
  .ne-visibility-v3-head p,
  .ne-app-v3-copy p,
  .ne-statewide-standalone-head p{
    font-size:16px;
    line-height:1.66;
  }

  .ne-hero-v3-photo{
    min-height:min(52vw, 280px);
  }

  .ne-hero-v3-badge{
    left:50%;
    right:auto;
    bottom:0;
    transform:translate(-50%, 50%);
    max-width:calc(100% - 24px);
    padding:18px 20px 16px;
    border-radius:20px;
    border-bottom-width:5px;
  }

  .ne-hero-v3-badge strong{
    font-size:clamp(22px, 6.2vw, 30px);
  }

  .missouri-page .ne-hero-v3-badge{
    left:18px;
    transform:none;
    max-width:none;
  }

  .ne-marquee-v3-group{
    gap:16px;
    padding:14px 0;
  }

  .ne-marquee-v3-group span{
    font-size:12px;
  }

  .ne-visibility-v3{
    padding-top:72px;
    padding-bottom:76px;
  }

  .locations-locator-combo#ne-locator .ne-visibility-v3,
  .locations-locator-combo#ia-locator .ne-visibility-v3,
  .locations-locator-combo#az-locator .ne-visibility-v3,
  .locations-locator-combo#sd-locator .ne-visibility-v3,
  .locations-locator-combo#ks-locator .ne-visibility-v3,
  .locations-locator-combo#mo-locator .ne-visibility-v3,
  .locations-locator-combo#tx-locator .ne-visibility-v3,
  .locations-locator-combo#ok-locator .ne-visibility-v3,
  .locations-locator-combo#ar-locator .ne-visibility-v3,
  .locations-locator-combo#il-locator .ne-visibility-v3{
    padding-top:36px;
    padding-bottom:44px;
  }

  .locations-locator-combo#ne-locator .ne-filter-section,
  .locations-locator-combo#ia-locator .ne-filter-section,
  .locations-locator-combo#az-locator .ne-filter-section,
  .locations-locator-combo#sd-locator .ne-filter-section,
  .locations-locator-combo#ks-locator .ne-filter-section,
  .locations-locator-combo#mo-locator .ne-filter-section,
  .locations-locator-combo#tx-locator .ne-filter-section,
  .locations-locator-combo#ok-locator .ne-filter-section,
  .locations-locator-combo#ar-locator .ne-filter-section,
  .locations-locator-combo#il-locator .ne-filter-section{
    padding-top:28px;
    padding-bottom:72px;
  }

  .ne-visibility-v3-head h2,
  .ne-filter-head-v2 .bfund3-groups-heading,
  .ne-statewide-standalone-head h2{
    font-size:clamp(32px, 9vw, 48px);
  }

  .ne-visibility-v3-stars{
    gap:12px;
    font-size:15px;
  }

  .ne-location-grid{
    grid-template-columns:1fr;
  }

  .ne-filter-toolbar{
    justify-content:flex-start;
  }

  .ne-filter-shell{
    padding:16px;
  }

  .ne-app-v3{
    padding-top:96px;
    padding-bottom:96px;
  }

  .ne-app-v3-wave-top,
  .ne-app-v3-wave-bottom{
    height:88px;
  }

  .ne-app-v3-shell{
    width:100%;
    padding:16px;
  }

  .ne-app-v3-phone img{
    max-width:260px;
  }

  .ne-app-v3-stars{
    font-size:16px;
    right:14px;
    top:14px;
  }

  .ne-app-v3-flag span{
    font-size:10px;
    letter-spacing:.26em;
  }

  .ne-final-v3::before{
    font-size:14px;
    letter-spacing:1.2rem;
    top:10px;
  }
}
/* =========================================================
   IOWA PAGE V4
   paste at bottom of stylesheet
   ========================================================= */

.iowa-page{
  /* Let patterned sections meet edge-to-edge; avoid a solid white band behind <main>. */
  background:transparent;
}

.arizona-page{
  background:transparent;
}

.south-dakota-page{
  background:transparent;
}

.south-dakota-page .ne-hero-v3-bg{
  background-image:url('images/bellino-fireworks-tempe-arizona.jpg');
  opacity:.12;
}

.kansas-page{
  background:transparent;
}

.kansas-page .ne-hero-v3-bg{
  background-image:url('images/bellino-fireworks-kansas-color-waves.png');
  opacity:.12;
}

.missouri-page{
  background:transparent;
}

.missouri-page .ne-hero-v3-bg{
  background-image:url('images/best-fireworks-in-missouri.png');
  opacity:.12;
}

.texas-page{
  background:transparent;
}

.texas-page .ne-hero-v3-bg{
  background-image:url('images/bellino-fireworks-texas-rip-the-sky.png');
  opacity:.12;
}

.oklahoma-page{
  background:transparent;
}

.oklahoma-page .ne-hero-v3-bg{
  background-image:url('images/oklahoma-fireworks-near-me.png');
  opacity:.12;
}

.arkansas-page{
  background:transparent;
}

.arkansas-page .ne-hero-v3-bg{
  background-image:url('images/best-fireworks-deals-arkansas.png');
  opacity:.12;
}

.illinois-page{
  background:transparent;
}

.illinois-page .ne-hero-v3-bg{
  background-image:url('images/illinois-red-fireworks-discounts.png');
  opacity:.12;
}

.btn-blue-solid{
  background:linear-gradient(180deg, var(--blue-accent) 0%, #1d43a0 100%);
  color:#fff;
  box-shadow:0 10px 22px rgba(36,79,176,.22);
}

.btn-blue-solid:hover{
  box-shadow:0 16px 28px rgba(36,79,176,.28);
}

/* HERO */
.ia-hero-v2{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(820px 430px at 84% 14%, rgba(217,164,32,.10), transparent 62%),
    radial-gradient(760px 430px at 14% 10%, rgba(36,79,176,.14), transparent 62%),
    linear-gradient(180deg, #f8fafc 0%, #f1f4f8 100%);
  padding:96px 0 130px;
}

.ia-hero-v2-bg{
  position:absolute;
  inset:0;
  background-image:url('images/bellino-fireworks-tempe-arizona.jpg');
  background-size:cover;
  background-position:center;
  opacity:.06;
}

.ia-hero-v2-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.90), rgba(255,255,255,.95)),
    linear-gradient(90deg, rgba(255,255,255,.84), rgba(255,255,255,.72));
}

.ia-hero-v2-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:42px;
  align-items:center;
}

.ia-hero-v2-copy .section-kicker,
.ia-hero-v2-copy .section-kicker-dark{
  color:var(--gold);
}

.ia-hero-v2-copy h1{
  margin:0 0 18px;
  color:var(--navy);
  font-size:clamp(52px, 6vw, 84px);
  line-height:.93;
  letter-spacing:-.065em;
  max-width:760px;
}

.ia-hero-v2-text{
  margin:0 0 16px;
  max-width:720px;
  color:var(--text-soft);
  font-size:18px;
  line-height:1.82;
}

.ia-hero-v2-buttons{
  margin:28px 0 28px;
}

.ia-hero-v2-ribbon{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  overflow:hidden;
  min-height:92px;
  border-radius:999px;
  border:3px solid var(--blue-accent);
  background:#fff;
  box-shadow:0 20px 34px rgba(13,27,56,.08);
  max-width:930px;
}

.ia-hero-v2-ribbon span{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 24px;
  color:var(--navy);
  font-size:20px;
  font-weight:900;
  letter-spacing:-.03em;
  text-transform:uppercase;
  text-align:center;
}

.ia-hero-v2-ribbon span:nth-child(1){
  background:#ffffff;
}

.ia-hero-v2-ribbon span:nth-child(2){
  background:#f6dddd;
  border-left:1px solid rgba(19,35,62,.08);
  border-right:1px solid rgba(19,35,62,.08);
}

.ia-hero-v2-ribbon span:nth-child(3){
  background:#e5ebf8;
}

.ia-hero-v2-ribbon-stars{
  position:absolute;
  left:24px;
  bottom:14px;
  display:flex;
  gap:10px;
  color:var(--gold);
  font-size:16px;
  line-height:1;
}

.ia-hero-v2-side{
  display:grid;
  gap:18px;
}

.ia-hero-v2-media{
  position:relative;
  min-height:328px;
  border-radius:34px;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(6,18,48,.08), rgba(6,18,48,.26)),
    url('images/bellino-fireworks-tempe-arizona.jpg') center/cover no-repeat;
  border:1px solid rgba(19,35,62,.10);
  box-shadow:0 22px 38px rgba(13,27,56,.12);
}

.ia-hero-v2-media::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,0) 28%, rgba(7,18,46,.58) 100%);
}

.ia-hero-v2-media-badge{
  position:absolute;
  top:18px;
  left:18px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:42px;
  padding:8px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(19,35,62,.08);
  color:var(--navy);
  font-size:13px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  box-shadow:0 12px 24px rgba(13,27,56,.10);
  z-index:2;
}

.ia-hero-v2-media-badge::before{
  content:"★ ★ ★";
  color:var(--gold);
  font-size:12px;
  letter-spacing:.12em;
}

.ia-hero-v2-media-copy{
  position:absolute;
  left:24px;
  right:24px;
  bottom:24px;
  z-index:2;
  padding:22px 22px 18px;
  border-radius:24px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(8px);
}

.ia-hero-v2-media-copy span{
  display:inline-block;
  margin-bottom:8px;
  color:#ffd870;
  font-size:12px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.ia-hero-v2-media-copy strong{
  display:block;
  max-width:420px;
  color:#fff;
  font-size:34px;
  line-height:1.02;
  letter-spacing:-.04em;
}

.ia-hero-v2-feature{
  padding:24px 24px 22px;
  border-radius:30px;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(19,35,62,.08);
  box-shadow:0 20px 34px rgba(13,27,56,.08);
}

.ia-hero-v2-feature-top{
  display:grid;
  grid-template-columns:92px 1fr;
  gap:16px;
  align-items:center;
  margin-bottom:18px;
}

.ia-hero-v2-feature-top img{
  width:92px;
  height:70px;
  object-fit:contain;
  filter:drop-shadow(0 8px 14px rgba(13,27,56,.08));
}

.ia-hero-v2-feature-top span{
  display:block;
  margin-bottom:6px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.ia-hero-v2-feature-top strong{
  display:block;
  color:var(--navy);
  font-size:34px;
  line-height:1.02;
  letter-spacing:-.04em;
}

.ia-hero-v2-pill-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.ia-hero-v2-pill-row span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:8px 16px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(19,35,62,.10);
  color:var(--navy);
  font-size:14px;
  font-weight:800;
  box-shadow:0 8px 16px rgba(13,27,56,.05);
}

.ia-hero-v2-wave{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  line-height:0;
  z-index:2;
}

.ia-hero-v2-wave svg{
  width:100%;
  height:108px;
}

.ia-hero-v2-wave path{
  fill:#ffffff;
}

/* STATES */
.ia-states-band-v2{
  padding-top:8px;
  padding-bottom:10px;
  /* Deprecated: Iowa/Arizona now use the Nebraska-style red state band. */
  background:transparent;
}

.is-current-state{
  background:rgba(255,255,255,.22);
  box-shadow:0 18px 28px rgba(0,0,0,.18);
}

/* MARQUEE */
.ia-marquee{
  position:relative;
  background:#fff;
  border-top:1px solid rgba(19,35,62,.06);
  border-bottom:1px solid rgba(19,35,62,.08);
  overflow:hidden;
}

.ia-marquee-track{
  display:flex;
  width:max-content;
  animation:iaMarqueeScroll 32s linear infinite;
  will-change:transform;
}

.ia-marquee-group{
  display:flex;
  align-items:center;
  gap:22px;
  padding:18px 0;
  white-space:nowrap;
}

.ia-marquee-group span{
  color:var(--navy);
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.ia-marquee-swoosh{
  width:28px;
  height:18px;
  position:relative;
  flex:0 0 auto;
}

.ia-marquee-swoosh::before{
  content:"✦";
  position:absolute;
  left:0;
  top:50%;
  transform:translateY(-50%);
  color:var(--gold);
  font-size:15px;
  line-height:1;
}

.ia-marquee-swoosh::after{
  content:"";
  position:absolute;
  left:10px;
  top:8px;
  width:16px;
  height:6px;
  border-top:2px solid rgba(225,31,45,.78);
  border-radius:999px;
  transform:rotate(-14deg);
}

@keyframes iaMarqueeScroll{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(-50%); }
}

/* LOCATOR */
.ia-locator-v2{
  background:#fff;
  padding:84px 0 78px;
}

.ia-locator-v2-grid{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:34px;
  align-items:start;
}

.ia-locator-v2-copy h2{
  margin:0 0 14px;
  color:var(--text);
  font-size:clamp(34px, 3.2vw, 56px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.ia-locator-v2-copy p{
  margin:0 0 16px;
  color:var(--text-soft);
  font-size:16px;
  line-height:1.8;
}

.ia-locator-v2-points{
  display:grid;
  gap:16px;
  margin-top:24px;
}

.ia-locator-v2-point{
  padding:18px 18px 16px;
  border:1px solid rgba(19,35,62,.10);
  border-left:5px solid var(--red);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 18px rgba(13,27,56,.05);
}

.ia-locator-v2-point strong{
  display:block;
  margin-bottom:6px;
  color:var(--navy);
  font-size:17px;
  font-weight:900;
}

.ia-locator-v2-point p{
  margin:0;
  color:var(--text-soft);
  font-size:15px;
  line-height:1.7;
}

.ia-locator-v2-panel{
  background:#fff;
  border:1px solid var(--line);
  border-bottom:5px solid var(--red);
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--shadow);
}

.ia-locator-v2-panel-top{
  padding:22px 24px;
  background:var(--navy);
  color:#fff;
  display:grid;
  gap:6px;
}

.ia-locator-v2-panel-top span{
  color:var(--gold);
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.ia-locator-v2-panel-top strong{
  font-size:26px;
  line-height:1.05;
  letter-spacing:-.03em;
}

.ia-locator-v2-panel-top p{
  margin:0;
  color:rgba(255,255,255,.82);
  font-size:14px;
  line-height:1.7;
}

.ia-locator-v2-panel-map{
  min-height:380px;
  background:linear-gradient(180deg, #eef1f5 0%, #f8f8f6 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
}

.ia-locator-v2-placeholder{
  max-width:360px;
  text-align:center;
}

.ia-locator-v2-placeholder strong{
  display:block;
  margin-bottom:8px;
  font-size:24px;
  color:var(--navy);
}

.ia-locator-v2-placeholder p{
  margin:0;
  color:var(--text-soft);
  line-height:1.75;
}

.ia-locator-v2-panel-bottom{
  padding:22px;
  border-top:1px solid var(--line);
}

/* VISIBILITY */
.ia-visibility-v2{
  position:relative;
  background:
    radial-gradient(520px 200px at 10% 18%, rgba(36,79,176,.06), transparent 70%),
    radial-gradient(520px 220px at 90% 22%, rgba(225,31,45,.05), transparent 70%),
    #fff;
  padding:78px 0 84px;
}

.ia-visibility-v2-head{
  max-width:920px;
  margin:0 auto 30px;
  text-align:center;
}

.ia-visibility-v2-stars{
  display:flex;
  justify-content:center;
  gap:16px;
  margin:0 0 14px;
  color:var(--gold);
  font-size:18px;
  line-height:1;
}

.ia-mini-kicker{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0 0 14px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  line-height:1;
}

.ia-visibility-v2-head h2{
  margin:0 0 14px;
  color:var(--navy);
  font-size:clamp(36px, 3.8vw, 60px);
  line-height:1.02;
  letter-spacing:-.05em;
}

.ia-gold-flash{
  animation:iaGoldFlash 1.6s ease-in-out infinite alternate;
}

@keyframes iaGoldFlash{
  0%{
    color:var(--navy);
    text-shadow:0 0 0 rgba(217,164,32,0);
  }
  100%{
    color:var(--gold);
    text-shadow:0 0 18px rgba(217,164,32,.16);
  }
}

.ia-visibility-v2-head p{
  max-width:780px;
  margin:0 auto;
  color:var(--text-soft);
  font-size:17px;
  line-height:1.8;
}

.ia-visibility-v2-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
}

.ia-visibility-v2-photo{
  min-height:240px;
  border-radius:26px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  box-shadow:0 18px 36px rgba(13,27,56,.10);
  border-bottom:5px solid var(--red);
  overflow:hidden;
}

/* FILTER - RED SECTION */
.ia-filter-section{
  position:relative;
  background:linear-gradient(180deg, #ff1f30 0%, var(--red-dark) 100%);
  padding:86px 0 94px;
}

.ia-filter-head{
  max-width:920px;
  margin:0 auto 26px;
  text-align:center;
}

.ia-filter-head h2{
  margin:0 0 14px;
  color:#fff;
  font-size:clamp(34px, 3.2vw, 56px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.ia-filter-head p{
  max-width:760px;
  margin:0 auto;
  color:rgba(255,255,255,.90);
  font-size:17px;
  line-height:1.8;
}

.ia-filter-shell{
  padding:24px;
  border:1px solid rgba(255,255,255,.12);
  border-bottom:5px solid var(--blue-accent);
  border-radius:28px;
  background:rgba(255,255,255,.10);
  box-shadow:0 18px 32px rgba(10,30,70,.14);
  backdrop-filter:blur(6px);
}

.ia-filter-toolbar{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
  margin:0 0 28px;
}

.ia-filter-btn{
  min-height:48px;
  padding:12px 18px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.20);
  background:rgba(255,255,255,.92);
  color:var(--navy);
  font-size:14px;
  font-weight:900;
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
  box-shadow:0 10px 18px rgba(10,30,70,.08);
}

.ia-filter-btn:hover{
  transform:translateY(-2px);
}

.ia-filter-btn.is-active{
  background:linear-gradient(180deg, var(--red) 0%, var(--red-dark) 100%);
  color:#fff;
  border-color:transparent;
  box-shadow:0 14px 24px rgba(225,31,45,.20);
}

.ia-filter-results{
  display:grid;
  gap:22px;
}

.ia-city-panel{
  padding:28px 26px 24px;
  border:1px solid rgba(19,35,62,.08);
  border-bottom:5px solid var(--blue-accent);
  border-radius:26px;
  background:#fff;
  box-shadow:0 14px 24px rgba(13,27,56,.08);
}

.ia-city-panel-head{
  margin:0 0 22px;
}

.ia-city-label{
  margin-bottom:10px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.ia-city-panel-head h3{
  margin:0 0 10px;
  color:var(--text);
  font-size:clamp(30px, 2.7vw, 48px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.ia-city-panel-head p{
  max-width:860px;
  margin:0;
  color:var(--text-soft);
  font-size:17px;
  line-height:1.8;
}

.ia-location-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:16px;
}

.ia-location-card{
  overflow:hidden;
  border:1px solid rgba(19,35,62,.10);
  border-bottom:5px solid var(--gold);
  border-radius:22px;
  background:#fff;
  box-shadow:var(--shadow-soft);
  transition:transform .16s ease, box-shadow .16s ease;
}

.ia-location-card:hover{
  transform:translateY(-5px);
  box-shadow:0 20px 30px rgba(13,27,56,.12);
}

.ia-location-card-photo{
  min-height:138px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  position:relative;
}

.ia-location-card-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.18));
}

.ia-location-card-body{
  padding:18px 18px 16px;
  display:grid;
  gap:10px;
}

.ia-location-card-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.ia-location-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(225,31,45,.10);
  color:var(--red);
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.ia-google-link{
  width:38px;
  height:38px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(19,35,62,.10);
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 16px rgba(13,27,56,.08);
  transition:transform .16s ease, box-shadow .16s ease;
}

.ia-google-link:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 22px rgba(13,27,56,.12);
}

.ia-google-link img{
  width:20px;
  height:20px;
  object-fit:contain;
}

.ia-location-card h4{
  margin:0;
  color:var(--navy);
  font-size:20px;
  line-height:1.25;
  letter-spacing:-.03em;
}

.ia-location-card-links{
  display:flex;
  align-items:center;
  gap:14px;
}

.ia-location-card-links a{
  color:var(--red);
  font-size:14px;
  font-weight:900;
}

/* TRANSITION SECTION ABOVE FINAL CTA */
.ia-transition-section{
  position:relative;
  background:#fff7f2;
  padding:98px 0 96px;
  overflow:hidden;
}

.ia-transition-wave-top,
.ia-transition-wave-bottom{
  position:absolute;
  left:0;
  right:0;
  line-height:0;
  z-index:1;
}

.ia-transition-wave-top{
  top:-1px;
}

.ia-transition-wave-bottom{
  bottom:-1px;
}

.ia-transition-wave-top svg,
.ia-transition-wave-bottom svg{
  width:100%;
  height:110px;
}

.ia-transition-wave-top path{
  fill:#ffffff;
}

.ia-transition-wave-bottom path{
  fill:var(--red);
}

.ia-transition-inner{
  position:relative;
  z-index:2;
}

.ia-transition-head{
  max-width:900px;
  margin:0 auto 30px;
  text-align:center;
}

.ia-transition-head h2{
  margin:0 0 14px;
  color:var(--navy);
  font-size:clamp(34px, 3.2vw, 54px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.ia-transition-head p{
  max-width:760px;
  margin:0 auto;
  color:var(--text-soft);
  font-size:17px;
  line-height:1.8;
}

.ia-transition-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:18px;
}

.ia-transition-card{
  padding:24px 22px 22px;
  border-radius:26px;
  background:#fff;
  border:1px solid rgba(19,35,62,.08);
  border-bottom:5px solid var(--gold);
  box-shadow:0 18px 30px rgba(13,27,56,.08);
}

.ia-transition-card span{
  display:inline-block;
  margin-bottom:10px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.ia-transition-card h3{
  margin:0 0 10px;
  color:var(--navy);
  font-size:26px;
  line-height:1.06;
  letter-spacing:-.03em;
}

.ia-transition-card p{
  margin:0;
  color:var(--text-soft);
  font-size:15px;
  line-height:1.75;
}

/* GOLD DIVIDER */
.ia-gold-divider{
  width:100%;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.55) 0%, rgba(217,164,32,.95) 50%, rgba(255,255,255,.55) 100%);
}

/* FINAL */
.ia-final-v2{
  position:relative;
  background:linear-gradient(180deg, #ff1f30 0%, var(--red-dark) 100%);
  color:#fff;
  padding:96px 0 78px;
  overflow:hidden;
}

.ia-final-v2-grid{
  display:grid;
  grid-template-columns:1.12fr .88fr;
  gap:26px;
  align-items:center;
}

.ia-final-v2-copy h2{
  margin:0 0 14px;
  color:#fff;
  max-width:760px;
  font-size:clamp(34px, 3vw, 56px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.ia-final-v2-copy p{
  margin:0;
  color:rgba(255,255,255,.92);
  font-size:17px;
  line-height:1.75;
  max-width:720px;
}

.ia-final-v2-actions{
  justify-content:flex-end;
}

.ia-final-v2-stars{
  position:absolute;
  left:0;
  right:0;
  top:14px;
  display:flex;
  justify-content:center;
  gap:36px;
  color:var(--gold);
  font-size:18px;
  line-height:1;
  pointer-events:none;
}

.ia-final-v2-divider{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:6px;
  background:linear-gradient(90deg, rgba(255,255,255,.55) 0%, rgba(217,164,32,.95) 50%, rgba(255,255,255,.55) 100%);
}

/* RESPONSIVE */
@media (max-width:1100px){
  .ia-hero-v2-grid,
  .ia-locator-v2-grid,
  .ia-final-v2-grid,
  .ia-transition-grid{
    grid-template-columns:1fr;
  }

  .ia-visibility-v2-grid{
    grid-template-columns:1fr;
  }

  .ia-location-grid{
    grid-template-columns:repeat(2, 1fr);
  }

  .ia-final-v2-actions{
    justify-content:flex-start;
  }
}

@media (max-width:900px){
  .ia-hero-v2{
    padding-top:78px;
  }

  .ia-hero-v2-ribbon{
    grid-template-columns:1fr;
    min-height:auto;
    border-radius:28px;
  }

  .ia-hero-v2-ribbon span{
    min-height:70px;
  }

  .ia-hero-v2-ribbon span:nth-child(2){
    border-left:none;
    border-right:none;
    border-top:1px solid rgba(19,35,62,.08);
    border-bottom:1px solid rgba(19,35,62,.08);
  }
}

@media (max-width:700px){
  .ia-hero-v2{
    padding:74px 0 96px;
  }

  .ia-hero-v2-copy h1{
    font-size:clamp(38px, 10vw, 54px);
    line-height:1.01;
  }

  .ia-hero-v2-text,
  .ia-filter-head p,
  .ia-city-panel-head p,
  .ia-visibility-v2-head p,
  .ia-final-v2-copy p,
  .ia-transition-head p{
    font-size:16px;
    line-height:1.66;
  }

  .ia-hero-v2-media{
    min-height:260px;
  }

  .ia-hero-v2-media-copy strong{
    font-size:28px;
  }

  .ia-hero-v2-feature-top{
    grid-template-columns:1fr;
  }

  .ia-hero-v2-feature-top strong{
    font-size:28px;
  }

  .ia-marquee-group{
    gap:16px;
    padding:14px 0;
  }

  .ia-marquee-group span{
    font-size:12px;
  }

  .ia-visibility-v2{
    padding-top:72px;
    padding-bottom:76px;
  }

  .ia-visibility-v2-head h2,
  .ia-filter-head h2,
  .ia-transition-head h2{
    font-size:clamp(32px, 9vw, 48px);
  }

  .ia-location-grid{
    grid-template-columns:1fr;
  }

  .ia-filter-toolbar{
    justify-content:flex-start;
  }

  .ia-filter-shell{
    padding:16px;
  }

  .ia-final-v2-stars{
    gap:18px;
    font-size:14px;
    top:12px;
  }
}

/* =========================================================
   STATE PAGE OVERRIDES
   Keep Iowa/Arizona aligned to Nebraska layout
   ========================================================= */
.iowa-page .ne-hero-v3-bg{
  background-image:url('images/bellino-fireworks-tempe-arizona.jpg');
  opacity:.12;
}

.arizona-page .ne-hero-v3-bg{
  background-image:url('images/bellino-fireworks-near-phoenix-az.jpg');
  opacity:.12;
}

.product-page .ne-hero-v3-bg{
  background-image:url('images/buy1product.png');
  opacity:.13;
}

.product-page .ne-hero-v3-wave path{
  fill:var(--red);
}

.product-page .ne-hero-v3-badge{
  right:auto;
  left:18px;
  bottom:18px;
  border-bottom-color:var(--gold);
}

.product-page .ne-hero-v3-badge strong{
  font-size:22px;
}

/* Product index hero: same atmosphere + layout rhythm as .about-hero-v2 */
.product-page .ne-hero-v3.product-hero-v1{
  background-color:var(--navy);
  background-image:url("images/blue-bellino-texture.jpg");
  background-repeat:repeat;
  background-position:0 0;
  background-size:min(420px, 92vw);
  padding:88px 0 118px;
}

.product-page .ne-hero-v3.product-hero-v1 .ne-hero-v3-bg{
  display:none;
}

.product-page .ne-hero-v3.product-hero-v1 .ne-hero-v3-overlay{
  background:linear-gradient(
    180deg,
    rgba(10,30,70,.42) 0%,
    rgba(10,30,70,.62) 100%
  );
}

.product-page .ne-hero-v3.product-hero-v1 .ne-hero-v3-grid{
  grid-template-columns:1.02fr .98fr;
  align-items:center;
}

.product-page .ne-hero-v3.product-hero-v1 .ne-hero-v3-text{
  margin:0 0 28px;
  color:rgba(255,255,255,.88);
}

.product-page .ne-hero-v3.product-hero-v1 .ne-hero-v3-buttons{
  margin:0 0 30px;
}

.product-page .ne-hero-v3.product-hero-v1 .ne-hero-v3-stat strong{
  font-size:28px;
  line-height:1;
}

.product-filter-head-patriotic{
  position:relative;
  padding:28px 22px 22px;
  border-radius:30px;
  border:1px solid rgba(19,35,62,.08);
  background:
    radial-gradient(620px 240px at 20% 12%, rgba(36,79,176,.10), transparent 60%),
    radial-gradient(620px 240px at 84% 12%, rgba(225,31,45,.10), transparent 60%),
    linear-gradient(180deg, #ffffff 0%, #f7f9fc 100%);
  box-shadow:0 18px 30px rgba(13,27,56,.08);
  margin-bottom:18px;
}

.product-filter-head-stars{
  position:absolute;
  top:14px;
  right:18px;
  color:var(--gold);
  font-weight:900;
  letter-spacing:.28em;
  font-size:12px;
  opacity:.95;
  pointer-events:none;
}

.product-page .ne-hero-v3-feature-top img{
  width:78px;
  height:56px;
}

.product-hero-patriot{
  padding:20px 20px 18px;
  border-radius:26px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 20px 32px rgba(0,0,0,.14);
  backdrop-filter:blur(6px);
}

.product-hero-patriot-top{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:12px;
  align-items:center;
  margin-bottom:10px;
}

.product-hero-patriot-stars{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:64px;
  height:40px;
  border-radius:999px;
  background:transparent;
  color:var(--gold);
  font-weight:900;
  letter-spacing:.18em;
  border:none;
  box-shadow:none;
}

.product-hero-patriot-top span{
  display:block;
  margin-bottom:6px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.product-hero-patriot-top strong{
  display:block;
  color:#fff;
  font-size:24px;
  line-height:1.05;
  letter-spacing:-.03em;
}

.product-hero-patriot p{
  margin:0 0 14px;
  color:rgba(255,255,255,.86);
  font-size:14px;
  line-height:1.75;
}

/* =========================================================
   PRODUCT PAGES (CATEGORY + DETAIL)
   premium, patriotic, WooCommerce-style layout
   ========================================================= */

.sr-only{
  position:absolute !important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

.product-page{
  background:#fff;
}

.product-hero{
  position:relative;
  overflow:hidden;
  color:#fff;
  padding:92px 0 122px;
  background:
    radial-gradient(760px 380px at 82% 12%, rgba(217,164,32,.18), transparent 62%),
    radial-gradient(860px 440px at 14% 14%, rgba(36,79,176,.24), transparent 62%),
    linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);
}

.product-hero-bg{
  position:absolute;
  inset:0;
  background-image:url('images/bellino-hero2.jpg');
  background-size:cover;
  background-position:center;
  opacity:.14;
}

.product-hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(10,30,70,.86) 0%, rgba(10,30,70,.72) 50%, rgba(10,30,70,.46) 100%),
    linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.18));
}

.product-hero-grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:34px;
  align-items:center;
}

.product-hero-copy h1{
  margin:0 0 16px;
  font-size:clamp(44px, 5.1vw, 74px);
  line-height:.95;
  letter-spacing:-.055em;
}

.product-hero-text{
  margin:0 0 18px;
  max-width:760px;
  color:rgba(255,255,255,.90);
  font-size:18px;
  line-height:1.8;
}

.product-hero-actions{
  margin:24px 0 22px;
}

.product-hero-badges{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.product-hero-badges span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  color:#fff;
  font-size:13px;
  font-weight:900;
  letter-spacing:.02em;
}

.product-hero-feature{
  padding:22px 22px 20px;
  border-radius:26px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 20px 32px rgba(0,0,0,.14);
  backdrop-filter:blur(6px);
}

.product-hero-feature-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
}

.product-hero-feature-top span{
  display:block;
  margin-bottom:4px;
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.product-hero-feature-top strong{
  display:block;
  font-size:32px;
  line-height:1.02;
  letter-spacing:-.04em;
}

.product-hero-flag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:78px;
  height:42px;
  border-radius:999px;
  background:#fff;
  color:var(--navy);
  font-weight:900;
  letter-spacing:.14em;
  border:1px solid rgba(19,35,62,.14);
  box-shadow:0 14px 28px rgba(0,0,0,.16);
}

.product-hero-feature p{
  margin:0 0 14px;
  color:rgba(255,255,255,.86);
  font-size:15px;
  line-height:1.75;
}

.product-hero-wave{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  line-height:0;
  z-index:2;
}

.product-hero-wave svg{
  width:100%;
  height:96px;
}

.product-hero-wave path{
  fill:var(--red);
}

/* CATEGORY FILTER + GRID (pattern + parallax: shared with .locations-hero-v2, see LOCATOR block) */
.product-filter-section{
  position:relative;
  overflow:hidden;
  padding:84px 0 92px;
}

.product-filter-section > .container{
  position:relative;
  z-index:2;
}

.product-filter-head{
  max-width:920px;
  margin:0 auto 18px;
  text-align:center;
}

.product-filter-head h2{
  margin:0 0 12px;
  color:var(--navy);
  font-size:clamp(34px, 3.2vw, 54px);
  line-height:1.04;
  letter-spacing:-.04em;
}

.product-filter-head p{
  margin:0 auto;
  max-width:780px;
  color:var(--text-soft);
  font-size:17px;
  line-height:1.8;
}

.product-filter-shell{
  margin-top:22px;
  padding:22px;
  border-radius:34px;
  background:#fff;
  border:1px solid rgba(19,35,62,.08);
  box-shadow:0 22px 38px rgba(13,27,56,.08);
}

.product-filter-shell-clean{
  position:relative;
  padding-top:28px;
}

.product-filter-shell-clean::before{
  content:"";
  position:absolute;
  left:22px;
  right:22px;
  top:14px;
  height:6px;
  border-radius:999px;
  overflow:hidden;
  background:
    linear-gradient(
      90deg,
      var(--blue-accent) 0%,
      var(--blue-accent) 16%,
      var(--red) 16%,
      var(--red) 28%,
      #ffffff 28%,
      #ffffff 40%,
      var(--red) 40%,
      var(--red) 52%,
      #ffffff 52%,
      #ffffff 64%,
      var(--red) 64%,
      var(--red) 76%,
      #ffffff 76%,
      #ffffff 88%,
      var(--red) 88%,
      var(--red) 100%
    );
  border:1px solid rgba(19,35,62,.08);
  box-shadow:0 12px 22px rgba(13,27,56,.08);
  opacity:.92;
}

.product-filter-head{
  position:relative;
}

.product-filter-head::after{
  content:"★ ★ ★ ★ ★";
  position:absolute;
  right:0;
  top:0;
  color:var(--gold);
  font-weight:900;
  letter-spacing:.30em;
  font-size:12px;
  opacity:.92;
  pointer-events:none;
}

/* Product red transition section (remove orange feel) */
.product-transition-red{
  background:linear-gradient(180deg, #ff1f30 0%, var(--red-dark) 100%);
}

.product-transition-red .ia-transition-head h2{
  color:#fff;
}

.product-transition-red .ia-transition-head p{
  color:rgba(255,255,255,.90);
}

.product-transition-red .ia-transition-card{
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.12);
  border-bottom-color:rgba(217,164,32,.92);
  box-shadow:0 18px 30px rgba(0,0,0,.14);
}

.product-transition-red .ia-transition-card span,
.product-transition-red .ia-transition-card h3{
  color:#fff;
}

.product-transition-red .ia-transition-card p{
  color:rgba(255,255,255,.86);
}

.product-transition-red .ia-transition-wave-top path{
  fill:#fff;
}

/* Products page: keep the top wave cap on the exact same pattern stack as the
   surrounding `.product-filter-section` (no extra tint / lighter wash). */
.product-page .product-transition-red .ia-transition-wave-top{
  height:110px;
  overflow:hidden;
}

.product-page .product-transition-red .ia-transition-wave-top svg{
  opacity:0;
}

.product-page .product-transition-red .ia-transition-wave-top::before,
.product-page .product-transition-red .ia-transition-wave-top::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0,38 C188,88 416,108 724,80 C1010,54 1216,20 1440,48 L1440,0 L0,0 Z'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath fill='white' d='M0,38 C188,88 416,108 724,80 C1010,54 1216,20 1440,48 L1440,0 L0,0 Z'/%3E%3C/svg%3E");
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  -webkit-mask-position:center;
  mask-position:center;
}

/* Base pattern layer (matches `.product-filter-section`). */
.product-page .product-transition-red .ia-transition-wave-top::before{
  background-color:#d8d4cd;
  background-image:url("images/fireworks-pattern.jpg");
  background-repeat:repeat;
  background-position:0 0;
  background-size:min(420px, 92vw);
  background-attachment:fixed;
}

/* Scrim overlay layer (matches `.product-filter-section::before`). */
.product-page .product-transition-red .ia-transition-wave-top::after{
  background-image:linear-gradient(
    180deg,
    rgba(255,255,255,.14) 0%,
    rgba(216,212,205,.22) 100%
  );
  background-repeat:no-repeat;
  background-size:cover;
  background-position:0 0;
  opacity:1;
  background-attachment:fixed;
}

@media (min-width:900px){
  .product-page .product-transition-red .ia-transition-wave-top::before{
    background-size:560px;
  }
}

@media (max-width:520px){
  .product-page .product-transition-red .ia-transition-wave-top::before{
    background-size:380px;
  }
}

.product-transition-red .ia-transition-head .section-kicker{
  background:transparent;
  border:none;
  box-shadow:none;
  color:var(--gold);
  padding:0;
  min-height:auto;
  margin:0 0 12px;
  letter-spacing:.10em;
}

.product-transition-red .ia-transition-head .section-kicker::before,
.product-transition-red .ia-transition-head .section-kicker::after{
  content:"★ ★ ★";
  color:rgba(255,255,255,.92);
  font-weight:900;
  letter-spacing:.22em;
  margin:0 14px;
}

.product-filter-controls{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:18px;
}

.product-filter-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

.product-filter-btn{
  border:1px solid rgba(19,35,62,.10);
  background:#fff;
  color:var(--navy);
  font-size:13px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:10px 14px;
  border-radius:999px;
  box-shadow:0 10px 18px rgba(13,27,56,.06);
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.product-filter-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 16px 24px rgba(13,27,56,.10);
}

.product-filter-btn.is-active{
  background:linear-gradient(180deg, var(--red) 0%, var(--red-dark) 100%);
  color:#fff;
  border-color:rgba(225,31,45,.55);
  box-shadow:0 18px 28px rgba(225,31,45,.18);
}

.product-search{
  flex:1 1 320px;
  max-width:440px;
}

.product-search-input{
  width:100%;
  min-height:46px;
  border-radius:999px;
  border:1px solid rgba(19,35,62,.10);
  background:#fff;
  padding:10px 16px;
  color:var(--navy);
  font-size:14px;
  font-weight:700;
  outline:none;
  box-shadow:0 12px 22px rgba(13,27,56,.06);
}

.product-search-input::placeholder{
  color:rgba(19,35,62,.52);
  font-weight:700;
}

.product-search-input:focus{
  border-color:rgba(36,79,176,.38);
  box-shadow:0 16px 26px rgba(36,79,176,.12);
}

.product-category-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
}

.product-category-card{
  display:flex;
  flex-direction:column;
  border-radius:26px;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(19,35,62,.08);
  border-bottom:5px solid var(--gold);
  box-shadow:0 18px 30px rgba(13,27,56,.08);
  transform:translateY(0);
  transition:transform .16s ease, box-shadow .16s ease;
  min-height:280px;
}

.product-category-card:hover{
  transform:translateY(-3px);
  box-shadow:0 26px 42px rgba(13,27,56,.14);
}

.product-category-card-media{
  height:132px;
  background-size:cover;
  background-position:center;
  position:relative;
}

.product-category-card-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.28));
}

.product-category-card-body{
  padding:18px 18px 16px;
  display:flex;
  flex-direction:column;
  gap:10px;
  flex:1;
}

.product-category-badge{
  display:inline-flex;
  align-self:flex-start;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(36,79,176,.10);
  color:var(--blue-accent);
  border:1px solid rgba(36,79,176,.18);
  font-size:11px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}

.product-category-card h3{
  margin:0;
  color:var(--navy);
  font-size:22px;
  line-height:1.12;
  letter-spacing:-.03em;
}

.product-category-card h3{
  position:relative;
  padding-bottom:10px;
}

.product-category-card h3::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:68px;
  height:4px;
  border-radius:3px;
  background:var(--blue-accent);
  opacity:1;
}

.product-category-card p{
  margin:0;
  color:var(--text-soft);
  font-size:14px;
  line-height:1.75;
}

.product-category-cta{
  margin-top:auto;
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--red);
  font-size:13px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}

.product-category-cta{
  padding-bottom:2px;
  border-bottom:2px solid rgba(225,31,45,.26);
}

.product-category-card:hover .product-category-cta{
  border-bottom-color:rgba(217,164,32,.56);
}

.product-category-card:hover .product-category-card-body h3::after{
  width:96px;
}

.product-category-cta::after{
  content:"→";
  transform:translateY(-1px);
}

/* PRODUCT DETAIL */
.product-detail-page{
  background:#fff;
}

.product-detail-hero{
  position:relative;
  overflow:hidden;
  padding:86px 0 112px;
  color:#fff;
  background:
    radial-gradient(820px 420px at 86% 16%, rgba(217,164,32,.18), transparent 62%),
    radial-gradient(820px 420px at 14% 14%, rgba(225,31,45,.18), transparent 62%),
    linear-gradient(180deg, var(--navy) 0%, var(--navy-2) 100%);
}

.product-detail-hero-bg{
  position:absolute;
  inset:0;
  background-image:url('images/bellino-header-2.jpg');
  background-size:cover;
  background-position:center;
  opacity:.14;
}

.product-detail-hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(10,30,70,.90) 0%, rgba(10,30,70,.74) 54%, rgba(10,30,70,.52) 100%),
    linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.22));
}

.product-detail-hero-inner{
  position:relative;
  z-index:2;
}

.product-breadcrumb{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  color:rgba(255,255,255,.86);
  font-size:13px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:16px;
}

.product-breadcrumb a{
  color:rgba(255,255,255,.92);
  border-bottom:1px solid rgba(255,255,255,.20);
}

.product-breadcrumb a:hover{
  border-bottom-color:rgba(255,255,255,.46);
}

.product-detail-hero-top{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:22px;
  flex-wrap:wrap;
}

.product-detail-hero-top h1{
  margin:0 0 10px;
  font-size:clamp(42px, 4.6vw, 70px);
  line-height:.96;
  letter-spacing:-.055em;
}

.product-detail-hero-text{
  margin:0;
  max-width:820px;
  color:rgba(255,255,255,.90);
  font-size:16px;
  line-height:1.8;
}

.product-detail-hero-actions{
  margin-left:auto;
}

.product-detail-hero-wave{
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  line-height:0;
  z-index:3;
  pointer-events:none;
}

.product-detail-hero-wave svg{
  width:100%;
  height:96px;
  display:block;
}

.product-detail-hero-wave path{
  fill:#fff;
}

.product-long-description{
  color:var(--text);
  font-size:17px;
  line-height:1.85;
}

.product-long-description > *:first-child{
  margin-top:0;
}

.product-long-description p{
  margin:0 0 1em;
}

.product-long-description ul,
.product-long-description ol{
  margin:0 0 1em 1.2em;
}

.product-detail-section{
  background:#fff;
  padding:84px 0 66px;
}

.product-detail-grid{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:34px;
  align-items:start;
}

.product-gallery-main{
  min-height:460px;
  border-radius:28px;
  background:#fff;
  border:1px solid rgba(19,35,62,.10);
  box-shadow:0 18px 30px rgba(13,27,56,.10);
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}

.product-gallery-main img{
  width:100%;
  height:100%;
  max-height:520px;
  object-fit:contain;
  display:block;
}

.product-gallery-thumbs{
  display:flex;
  gap:10px;
  margin-top:14px;
}

.product-thumb{
  width:56px;
  height:56px;
  border-radius:16px;
  border:1px solid rgba(19,35,62,.12);
  background:
    radial-gradient(circle at 30% 30%, rgba(217,164,32,.24), transparent 56%),
    linear-gradient(180deg, #fff, #f4f6fa);
  cursor:pointer;
  box-shadow:0 10px 20px rgba(13,27,56,.06);
  transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}

.product-thumb:hover{
  transform:translateY(-1px);
  box-shadow:0 16px 24px rgba(13,27,56,.10);
}

.product-thumb.is-active{
  border-color:rgba(225,31,45,.45);
  box-shadow:0 18px 26px rgba(225,31,45,.14);
}

.product-summary{
  padding:24px 24px 22px;
  border-radius:30px;
  background:#fff;
  border:1px solid rgba(19,35,62,.08);
  box-shadow:0 14px 26px rgba(13,27,56,.06);
}

.product-summary-top{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}

.product-sku,
.product-stock{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(19,35,62,.10);
  font-size:11px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:var(--navy);
  background:#fff;
}

.product-stock{
  border-color:rgba(217,164,32,.26);
  background:rgba(217,164,32,.12);
}

.product-summary h2{
  margin:0 0 10px;
  color:var(--navy);
  font-size:clamp(32px, 3vw, 44px);
  line-height:1.06;
  letter-spacing:-.04em;
  position:relative;
  padding-bottom:12px;
}

.product-summary h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:84px;
  height:4px;
  border-radius:3px;
  background:var(--blue-accent);
}

.product-subtitle{
  margin:0 0 16px;
  color:var(--text-soft);
  font-size:15px;
  line-height:1.85;
}

.product-specs{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:12px;
  margin:18px 0 18px;
}

.product-spec{
  padding:14px 14px 12px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(19,35,62,.10);
  box-shadow:0 10px 18px rgba(13,27,56,.05);
  border-left:4px solid rgba(36,79,176,.60);
}

.product-spec strong{
  display:block;
  color:var(--navy);
  font-weight:900;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:6px;
}

.product-spec span{
  display:block;
  color:var(--text);
  font-weight:900;
  font-size:16px;
}

.product-buybox{
  display:grid;
  grid-template-columns:.42fr .58fr;
  gap:14px;
  padding:16px;
  border-radius:22px;
  background:#fff;
  border:1px solid rgba(19,35,62,.10);
  box-shadow:none;
  margin-top:6px;
}

.product-buybox-price span{
  display:block;
  color:var(--text-soft);
  font-size:12px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  margin-bottom:6px;
}

.product-buybox-price strong{
  display:block;
  color:var(--navy);
  font-size:28px;
  line-height:1;
  letter-spacing:-.03em;
}

.btn-full{
  width:100%;
  justify-content:center;
}

.product-buybox-actions{
  display:grid;
  gap:10px;
}

.product-points{
  display:grid;
  gap:14px;
  margin-top:18px;
}

.product-point{
  padding:14px 14px 12px;
  border-radius:20px;
  border:1px solid rgba(19,35,62,.10);
  background:#fff;
  box-shadow:none;
  border-left:5px solid rgba(36,79,176,.70);
}

.product-point strong{
  display:block;
  color:var(--navy);
  font-weight:900;
  font-size:14px;
  margin-bottom:6px;
  letter-spacing:-.02em;
}

.product-point p{
  margin:0;
  color:var(--text-soft);
  font-size:14px;
  line-height:1.75;
}

.kicker-gold-simple{
  color:var(--gold);
  font-weight:900;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  margin-bottom:10px;
}

/* VIDEO SECTION */
.product-video-section{
  background:#fff;
  padding:12px 0 88px;
}

.product-video-shell{
  padding:22px;
  border-radius:34px;
  background:linear-gradient(180deg, #ffffff 0%, #f6f8fc 100%);
  border:1px solid rgba(19,35,62,.08);
  box-shadow:0 22px 38px rgba(13,27,56,.08);
}

.product-video-head{
  max-width:860px;
  margin:0 auto 16px;
  text-align:center;
}

.product-video-head h2{
  margin:0 0 12px;
  color:var(--navy);
  font-size:clamp(30px, 2.7vw, 44px);
  letter-spacing:-.04em;
  line-height:1.06;
}

.product-video-head p{
  margin:0 auto;
  color:var(--text-soft);
  font-size:16px;
  line-height:1.8;
}

.product-video-embed{
  width:100%;
  border-radius:28px;
  overflow:hidden;
  border:1px solid rgba(19,35,62,.10);
  box-shadow:0 22px 38px rgba(13,27,56,.12);
  background:#000;
  aspect-ratio:16 / 9;
}

.product-video-embed iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}

/* RELATED */
.product-related{
  background:#fff;
  padding:0 0 92px;
}

.product-related-head{
  max-width:920px;
  margin:0 auto 18px;
  text-align:center;
}

.product-related-head h2{
  margin:0 0 12px;
  color:var(--navy);
  font-size:clamp(32px, 3vw, 50px);
  letter-spacing:-.04em;
  line-height:1.05;
}

.product-related-head p{
  margin:0 auto;
  max-width:780px;
  color:var(--text-soft);
  font-size:16px;
  line-height:1.8;
}

.product-related-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:16px;
}

.product-related-card{
  display:flex;
  flex-direction:column;
  border-radius:26px;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(19,35,62,.08);
  box-shadow:0 18px 30px rgba(13,27,56,.08);
  transition:transform .16s ease, box-shadow .16s ease;
}

.product-related-card:hover{
  transform:translateY(-3px);
  box-shadow:0 26px 42px rgba(13,27,56,.14);
}

.product-related-photo{
  height:clamp(155px, 12vw, 190px);
  position:relative;
  overflow:hidden;
}

.product-related-photo-img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  /* Slightly bias up so artwork/labels aren’t chopped */
  object-position:50% 35%;
}

.product-related-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.22));
}

.product-related-body{
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.product-related-body strong{
  color:var(--navy);
  font-size:18px;
  letter-spacing:-.03em;
  position:relative;
  padding-bottom:10px;
}

.product-related-body strong::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:64px;
  height:4px;
  border-radius:3px;
  background:var(--blue-accent);
}

.product-related-body span{
  color:var(--text-soft);
  font-size:13px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}

/* RESPONSIVE */
@media (max-width:1100px){
  .product-hero-grid,
  .product-detail-grid{
    grid-template-columns:1fr;
  }

  .product-related-grid,
  .product-category-grid{
    grid-template-columns:repeat(2, 1fr);
  }
}

@media (max-width:700px){
  .product-hero{
    padding:74px 0 96px;
  }

  .product-filter-shell,
  .product-video-shell{
    padding:16px;
  }

  .product-category-grid,
  .product-related-grid{
    grid-template-columns:1fr;
  }

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