/* ==========================================================================
   HONEST AV — Site stylesheet
   Ported from React/Tailwind source (src/index.css + components)
   Applies site-wide via functions.php enqueue.
   ========================================================================== */

/* ---------- 1. Fonts ---------- */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800;900&display=swap');

/* ---------- 2. Design tokens (HSL — matches React index.css) ---------- */
:root{
  --hav-background: 220 27% 97%;
  --hav-foreground: 220 60% 4%;
  --hav-card: 0 0% 100%;
  --hav-card-foreground: 220 60% 4%;
  --hav-primary: 355 82% 51%;
  --hav-primary-foreground: 0 0% 100%;
  --hav-secondary: 214 60% 24%;
  --hav-secondary-foreground: 0 0% 100%;
  --hav-muted: 217 17% 43%;
  --hav-muted-foreground: 210 17% 60%;
  --hav-accent: 216 42% 96%;
  --hav-accent-foreground: 214 60% 24%;
  --hav-brand-red: 355 82% 51%;
  --hav-brand-red-dark: 355 84% 43%;
  --hav-brand-blue: 214 60% 24%;
  --hav-brand-blue-mid: 216 67% 36%;
  --hav-brand-blue-dark: 215 62% 16%;
  --hav-brand-muted: 217 17% 43%;
  --hav-brand-dim: 210 17% 60%;
  --hav-brand-bg: 220 27% 97%;
  --hav-brand-bg2: 216 42% 96%;
  --hav-border: 0 0% 0% / 0.08;
  --hav-radius: 0.5rem;
  --hav-font-head: 'Poppins', sans-serif;
  --hav-font-body: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

/* ---------- 3a. Hide theme's default page title output (we render our own hero) ---------- */
body.hav .page-header,
body.hav h1.entry-title,
body.hav .elementor-page-title,
body.hav .page-title,
body.hav header.site-header h1,
body.hav .wp-block-post-title,
body.hav .entry-header{ display:none !important; }

/* ---------- 3. Resets & base ---------- */
.hav body, body.hav-body{ background: hsl(var(--hav-card)); color: hsl(var(--hav-foreground)); font-family: var(--hav-font-head); -webkit-font-smoothing: antialiased; }
.hav *,.hav *::before,.hav *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
section[id]{ scroll-margin-top: 96px; }

/* Apply Poppins globally on Elementor pages that have .hav class on body */
/* Scoped to content-body only so we don't force dark blue on white-on-dark sections */
.hav main h1,.hav main h2,.hav main h3,.hav main h4,.hav main h5,.hav main h6,
.hav .elementor-widget-html h1,.hav .elementor-widget-html h2,.hav .elementor-widget-html h3,.hav .elementor-widget-html h4,.hav .elementor-widget-html h5,.hav .elementor-widget-html h6{ font-family: var(--hav-font-head); }
/* Dark-bg sections keep their white headings (defined in each section block) */

/* Every section that needs white text on dark bg — force white via specific selectors */
body.hav .hav-every h2, body.hav .hav-every h3, body.hav .hav-every h4, body.hav .hav-every p { color: inherit; }
body.hav .hav-midcta h1, body.hav .hav-midcta h2, body.hav .hav-midcta h3, body.hav .hav-midcta p,
body.hav .hav-cost h1, body.hav .hav-cost h2, body.hav .hav-cost h3, body.hav .hav-cost p,
body.hav .hav-finalcta h1, body.hav .hav-finalcta h2, body.hav .hav-finalcta h3, body.hav .hav-finalcta p,
body.hav .hav-hero h1, body.hav .hav-hero p, body.hav .hav-hero span,
body.hav .hav-phero-img h1, body.hav .hav-phero-img p, body.hav .hav-phero-img span { color: inherit; }

/* ---------- 4. Utility classes ---------- */
.hav-container{ max-width: 1200px; margin: 0 auto; padding: 0 24px; }
@media (min-width:768px){ .hav-container{ padding: 0 60px; } }

.hav-eyebrow{ display:inline-flex; align-items:center; gap:10px; font-family:var(--hav-font-head); font-size:11px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color: hsl(var(--hav-brand-red)); }
.hav-eyebrow::before{ content:''; display:inline-block; width:22px; height:2px; background: hsl(var(--hav-brand-red)); border-radius:2px; flex-shrink:0; }
.hav-eyebrow--center{ justify-content:center; }
.hav-eyebrow--center::after{ content:''; display:inline-block; width:22px; height:2px; background: hsl(var(--hav-brand-red)); border-radius:2px; flex-shrink:0; }

.hav-section-title{ font-family:var(--hav-font-head); color:hsl(var(--hav-secondary)); font-weight:800; line-height:1.1; margin:14px 0 14px; letter-spacing:-1px; font-size: clamp(26px, 3.2vw, 40px); }
.hav-section-title .hl{ color: hsl(var(--hav-primary)); }

.hav-section-subtitle{ font-family:var(--hav-font-body); color:hsl(var(--hav-brand-muted)); line-height:1.78; font-size:16px; max-width:720px; }
.hav-center{ text-align:center; }
.hav-center .hav-section-subtitle{ margin-left:auto; margin-right:auto; }

/* Buttons — match React source (BtnRed in primitives.tsx) */
.hav-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--hav-font-head); font-weight:700; font-size:13px; letter-spacing:0.5px; text-transform:uppercase; padding:16px 34px; border-radius:5px; border:2px solid transparent; cursor:pointer; transition:all .3s ease; text-decoration:none; line-height:1; white-space:nowrap; position:relative; overflow:hidden; }
body.hav .hav-btn--primary,
.hav-btn--primary{ background: hsl(var(--hav-primary)) !important; color: hsl(var(--hav-primary-foreground)) !important; border-color: hsl(var(--hav-primary)) !important; box-shadow: 0 4px 20px rgba(232,25,44,.35) !important; }
body.hav .hav-btn--primary:hover,
.hav-btn--primary:hover{ background: hsl(var(--hav-brand-red-dark)) !important; border-color: hsl(var(--hav-brand-red-dark)) !important; transform: translateY(-4px); box-shadow: 0 8px 28px rgba(232,25,44,.45) !important; color:#fff !important; }
.hav-btn--primary:active{ transform: translateY(0); box-shadow: 0 4px 14px rgba(232,25,44,.3) !important; }
.hav-btn--ghost{ background: transparent; color:#fff; border-color: rgba(255,255,255,.24); }
.hav-btn--ghost:hover{ border-color: rgba(255,255,255,.65); background: rgba(255,255,255,.06); transform: translateY(-4px); color:#fff; }
.hav-btn--blue{ background: linear-gradient(135deg, hsl(var(--hav-brand-blue-mid)), hsl(var(--hav-secondary))); color:#fff; border-color: transparent; box-shadow:0 4px 20px rgba(25,52,96,.28); letter-spacing:.5px; }
.hav-btn--blue:hover{ transform: translateY(-4px); box-shadow:0 8px 28px rgba(25,52,96,.38); color:#fff; }
.hav-btn--outline-red{ background: transparent; color: hsl(var(--hav-primary)); border-color: hsl(var(--hav-primary)); }
.hav-btn--outline-red:hover{ background: hsl(var(--hav-primary)); color:#fff; }
.hav-btn--lg{ padding:16px 38px; font-size:13px; letter-spacing:1.5px; }
/* About page CTA uses rounded-[6px] + stronger shadow (bump specificity with body.hav) */
body.hav .hav-about__cta .hav-btn--primary{ border-radius: 6px !important; padding: 18px 40px !important; letter-spacing: 1.5px !important; box-shadow: 0 8px 28px rgba(232,25,44,.4) !important; }
body.hav .hav-about__cta .hav-btn--primary:hover{ box-shadow: 0 12px 36px rgba(232,25,44,.55) !important; }
.hav-btn--sm{ padding:10px 22px; font-size:13px; text-transform:none; letter-spacing:0; box-shadow: 0 2px 10px rgba(232,25,44,.32) !important; border-radius:6px !important; }
.hav-btn--sm:hover{ box-shadow: 0 6px 20px rgba(232,25,44,.45) !important; }

/* ================================================================
   NAVBAR + MEGA MENU
   ================================================================ */
.hav-nav{ position: fixed; top:0; left:0; right:0; z-index:200; display:grid; grid-template-columns:auto 1fr auto; align-items:center; padding:0 24px; height:72px; background: rgba(255,255,255,.97); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom:1px solid rgba(0,0,0,.08); transition: all .3s ease; }
body.admin-bar .hav-nav{ top: 32px; }
@media (max-width: 782px){ body.admin-bar .hav-nav{ top: 46px; } }
@media (max-width: 600px){ body.admin-bar .hav-nav{ top: 0; } }
@media(min-width:768px){ .hav-nav{ padding:0 60px; } }
.hav-nav.is-scrolled{ box-shadow: 0 4px 24px rgba(25,52,96,.09); }
/* Hide the Elementor wrapper container for nav (becomes zero-height) so content below isn't pushed */
.elementor-location-header{ position: relative; height: 72px; }
.elementor-location-header > *{ position: absolute; inset: 0; }
body.admin-bar .elementor-location-header{ height: 72px; }

.hav-logo{ display:flex; align-items:center; gap:11px; text-decoration:none; }
.hav-logo__mark{ width:36px; height:36px; background: hsl(var(--hav-primary)); border-radius:6px; display:flex; align-items:center; justify-content:center; font-family:var(--hav-font-head); font-weight:900; font-size:12px; color:#fff; box-shadow:0 2px 10px rgba(232,25,44,.32); transition: transform .3s ease; flex-shrink:0; }
.hav-logo:hover .hav-logo__mark{ transform: scale(1.1) rotate(-3deg); }
.hav-logo__word{ font-family:var(--hav-font-head); font-weight:800; font-size:15px; color: hsl(var(--hav-secondary)); letter-spacing:-0.2px; white-space:nowrap; }
.hav-logo__word em{ color: hsl(var(--hav-primary)); font-style: normal; }

.hav-nav__links{ display:none; justify-content:center; }
@media(min-width:1024px){ .hav-nav__links{ display:flex; align-items:center; } }
.hav-nav__item{ position:relative; }
.hav-nav__link{ display:inline-flex; align-items:center; gap:5px; font-family:var(--hav-font-head); font-size:14px; font-weight:600; color: hsl(var(--hav-secondary)); padding:8px 14px; border-radius:6px; text-decoration:none; white-space:nowrap; transition: all .2s ease; cursor:pointer; }
.hav-nav__link:hover,.hav-nav__item.is-open > .hav-nav__link{ color: hsl(var(--hav-primary)); background: rgba(232,25,44,.05); }
.hav-nav__link.is-active{ color: hsl(var(--hav-primary)); }
.hav-nav__caret{ width:0; height:0; border-left:3px solid transparent; border-right:3px solid transparent; border-top: 3.5px solid currentColor; opacity:.5; margin-top:2px; transition: transform .2s ease; }
.hav-nav__item.is-open .hav-nav__caret{ transform: rotate(180deg); }

.hav-nav__right{ display:none; align-items:center; justify-self:end; gap:10px; }
@media(min-width:1024px){ .hav-nav__right{ display:flex; } }
.hav-nav__phone{ display:inline-flex; align-items:center; gap:7px; font-family:var(--hav-font-head); font-size:14px; font-weight:700; color: hsl(var(--hav-secondary)); text-decoration:none; transition: color .2s ease; white-space:nowrap; }
.hav-nav__phone:hover{ color: hsl(var(--hav-primary)); }
.hav-nav__phone svg{ stroke: hsl(var(--hav-primary)); width:14px; height:14px; }
.hav-nav__cta{ margin-left:8px; }

/* Mega menu */
.hav-mega{ position:absolute; top:100%; left:50%; transform: translateX(-50%); padding-top:12px; z-index:50; visibility:hidden; opacity:0; transition: opacity .25s ease, visibility 0s linear .25s; min-width:360px; pointer-events:none; }
.hav-nav__item.is-open .hav-mega{ visibility:visible; opacity:1; transition: opacity .25s ease, visibility 0s linear 0s; pointer-events:auto; }
.hav-mega__panel{ background:#fff; border:1px solid rgba(0,0,0,.08); border-radius:12px; box-shadow: 0 20px 60px rgba(25,52,96,.15); padding:8px; }
.hav-mega__heading{ padding:8px 12px 4px; font-family:var(--hav-font-head); font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color: hsl(var(--hav-muted-foreground)); }
.hav-mega__item{ display:flex; align-items:flex-start; gap:12px; padding:12px; border-radius:8px; text-decoration:none; transition: background .2s ease; color: inherit; }
.hav-mega__item:hover{ background: hsl(var(--hav-accent)); }
.hav-mega__icon{ width:36px; height:36px; background: rgba(232,25,44,.1); border-radius:8px; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition: all .2s ease; }
.hav-mega__icon svg{ width:16px; height:16px; stroke: hsl(var(--hav-primary)); }
.hav-mega__item:hover .hav-mega__icon{ background: rgba(232,25,44,.2); transform: scale(1.1); }
.hav-mega__title{ display:block; font-family:var(--hav-font-head); font-size:14px; font-weight:600; color: hsl(var(--hav-secondary)); }
.hav-mega__item:hover .hav-mega__title{ color: hsl(var(--hav-primary)); }
.hav-mega__desc{ display:block; font-family:var(--hav-font-body); font-size:12px; color: hsl(var(--hav-muted-foreground)); margin-top:2px; }
.hav-mega__footer{ border-top:1px solid rgba(0,0,0,.08); margin-top:8px; padding:10px 12px 4px; }
.hav-mega__footer a{ font-family:var(--hav-font-head); font-size:12px; font-weight:700; color: hsl(var(--hav-primary)); text-decoration:none; }
.hav-mega__footer a:hover{ text-decoration: underline; }

/* Mobile nav */
.hav-nav__burger{ display:block; justify-self:end; background:none; border:none; padding:4px; cursor:pointer; color: hsl(var(--hav-secondary)); }
@media(min-width:1024px){ .hav-nav__burger{ display:none; } }
.hav-mobile-menu{ display:none; position:absolute; top:72px; left:0; right:0; background:#fff; border-bottom:1px solid rgba(0,0,0,.08); box-shadow:0 10px 30px rgba(0,0,0,.1); padding:24px; flex-direction:column; gap:12px; z-index:100; }
.hav-mobile-menu.is-open{ display:flex; animation: hav-fadeup .3s ease both; }
.hav-mobile-menu a{ font-family:var(--hav-font-head); font-size:14px; font-weight:600; color: hsl(var(--hav-secondary)); padding:8px 0; text-decoration:none; }
.hav-mobile-menu a:hover{ color: hsl(var(--hav-primary)); }
.hav-mobile-menu .hav-btn{ width:100%; margin-top:8px; }

/* ================================================================
   HERO (home)
   ================================================================ */
.hav-hero{ position: relative; min-height: 100vh; display:flex; align-items:center; justify-content:center; padding: 120px 24px 100px; overflow: hidden; isolation: isolate; }
@media(min-width:768px){ .hav-hero{ padding: 120px 60px 100px; } }
.hav-hero__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-3; }
.hav-hero__overlay{ position:absolute; inset:0; background: linear-gradient(135deg, rgba(6,12,26,.55), rgba(13,26,53,.4) 50%, rgba(6,12,26,.5)); z-index:-2; }
.hav-hero__pattern{ position:absolute; inset:0; z-index:-1; background-image: url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.012'%3E%3Cpath d='M40 30L50 40L40 50L30 40Z'/%3E%3C/g%3E%3C/svg%3E"); }
.hav-hero__glow{ position:absolute; border-radius:50%; pointer-events:none; z-index:-1; }
.hav-hero__glow--red{ width:800px; height:800px; top:-260px; right:-220px; background: radial-gradient(circle, rgba(232,25,44,.1), transparent 68%); animation: hav-glowpulse 6s ease-in-out infinite alternate; }
.hav-hero__glow--blue{ width:600px; height:600px; bottom:-200px; left:-150px; background: radial-gradient(circle, rgba(30,77,155,.2), transparent 70%); }
.hav-hero__content{ position: relative; max-width: 860px; text-align: center; color:#fff; }
.hav-hero__eyebrow{ display:inline-flex; align-items:center; justify-content:center; gap:12px; font-family:var(--hav-font-head); font-size:11px; font-weight:700; letter-spacing:4px; text-transform:uppercase; color: hsl(var(--hav-primary)); margin-bottom:26px; }
.hav-hero__eyebrow::before,.hav-hero__eyebrow::after{ content:''; display:inline-block; width:30px; height:2px; background: hsl(var(--hav-primary)); border-radius:2px; animation: hav-expandLine 1s ease .3s both; transform-origin: left; }
body.hav .hav-hero__title,
.hav-hero__title{ font-family:var(--hav-font-head) !important; font-weight:900 !important; line-height:1.06 !important; color:#fff !important; margin: 0 0 22px !important; letter-spacing:-1.5px; font-size: clamp(32px, 5vw, 58px); }
.hav-hero__title .hl{ color: hsl(var(--hav-primary)); position: relative; }
.hav-hero__title .hl::after{ content:''; position:absolute; left:0; right:0; bottom:-4px; height:3px; background: rgba(232,25,44,.3); border-radius:2px; transform: scaleX(0); transform-origin: left; animation: hav-expandLine .8s ease 1s both; }
.hav-hero__subtitle{ font-family:var(--hav-font-body); font-size:17px; line-height:1.78; color: rgba(255,255,255,.58); max-width:640px; margin: 0 auto 44px; }
.hav-hero__ctas{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.hav-hero__stats{ display:flex; justify-content:center; margin-top:66px; padding-top:44px; border-top:1px solid rgba(255,255,255,.1); }
.hav-hero__stat{ padding: 0 44px; text-align:center; }
.hav-hero__stat + .hav-hero__stat{ border-left:1px solid rgba(255,255,255,.1); }
.hav-hero__stat-num{ font-family:var(--hav-font-head); font-size:40px; font-weight:900; color:#fff; letter-spacing:-2px; line-height:1; }
.hav-hero__stat-num em{ color: hsl(var(--hav-primary)); font-style:normal; }
.hav-hero__stat-label{ font-family:var(--hav-font-head); font-size:11px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color: rgba(255,255,255,.36); margin-top:7px; }
.hav-hero__badges{ display:flex; flex-wrap:wrap; justify-content:center; gap:24px; margin-top:48px; }
.hav-hero__badge{ display:inline-flex; align-items:center; gap:10px; padding: 10px 18px; background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius: 100px; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); font-family:var(--hav-font-head); font-size:12px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color: rgba(255,255,255,.92); transition: all .3s ease; }
.hav-hero__badge:hover{ background: rgba(255,255,255,.1); border-color: rgba(232,25,44,.5); transform: translateY(-2px); }
.hav-hero__badge svg{ width:18px; height:18px; flex-shrink:0; }
.hav-hero__stars{ display:flex; gap:1px; }
.hav-hero__stars svg{ width:14px; height:14px; fill: hsl(var(--hav-primary)); }
.hav-hero__badge--bbb svg{ width:30px; height:18px; }
.hav-hero__badge--clutch svg{ width:22px; height:22px; }
@media(max-width:640px){ .hav-hero__badges{ gap:14px; } .hav-hero__badge{ font-size:11px; padding: 8px 14px; } }

/* ================================================================
   GENERIC PAGE HERO (non-home)
   ================================================================ */
.hav-phero{ position:relative; padding: 120px 24px 100px; background: linear-gradient(135deg, hsl(var(--hav-brand-blue-dark)), hsl(var(--hav-secondary))); color:#fff; text-align:center; overflow:hidden; isolation:isolate; }
@media(min-width:768px){ .hav-phero{ padding: 140px 60px 110px; } }
.hav-phero__pattern{ position:absolute; inset:0; z-index:-1; background-image: url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.02'%3E%3Cpath d='M40 30L50 40L40 50L30 40Z'/%3E%3C/g%3E%3C/svg%3E"); opacity:.6; }
.hav-phero__eyebrow{ color: hsl(var(--hav-primary)); justify-content:center; }
.hav-phero__title{ font-family:var(--hav-font-head); font-weight:800; color:#fff; font-size: clamp(32px, 4.2vw, 52px); line-height:1.1; letter-spacing:-1px; margin: 18px auto 16px; max-width: 820px; }
.hav-phero__title .hl{ color: hsl(var(--hav-primary)); }
.hav-phero__subtitle{ font-family:var(--hav-font-body); font-size:18px; line-height:1.75; color: rgba(255,255,255,.72); max-width:700px; margin: 0 auto; }

/* ================================================================
   PROBLEM SECTION
   ================================================================ */
.hav-problem{ padding: 100px 24px; background: hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-problem{ padding: 100px 60px; } }
.hav-problem__head{ max-width: 900px; margin: 0 auto 56px; text-align:center; }
.hav-problem__grid{ display:grid; grid-template-columns: 1fr; gap:20px; max-width: 1100px; margin: 0 auto; }
@media(min-width:768px){ .hav-problem__grid{ grid-template-columns: repeat(2, 1fr); } }
@media(min-width:1024px){ .hav-problem__grid{ grid-template-columns: repeat(4, 1fr); } }
.hav-problem__card{ background:#fff; border:1px solid rgba(0,0,0,.08); border-radius:12px; padding:28px; transition: all .3s ease; }
.hav-problem__card:hover{ transform: translateY(-4px); box-shadow: 0 20px 48px rgba(25,52,96,.12); border-color: rgba(232,25,44,.2); }
.hav-problem__icon{ width:48px; height:48px; background: rgba(232,25,44,.1); border-radius:10px; display:inline-flex; align-items:center; justify-content:center; margin-bottom:16px; }
.hav-problem__icon svg{ width:22px; height:22px; stroke: hsl(var(--hav-primary)); }
.hav-problem__card h3{ font-family:var(--hav-font-head); font-size:16px; font-weight:700; color: hsl(var(--hav-secondary)); line-height:1.3; margin:0 0 10px; }
.hav-problem__card p{ font-family:var(--hav-font-body); font-size:14px; line-height:1.7; color: hsl(var(--hav-brand-muted)); margin:0; }
/* Problem section image strip (replaces previous callout) */
.hav-problem__media{ max-width: 1100px; margin: 56px auto 0; display:grid; grid-template-columns: 1fr; gap:18px; }
@media(min-width:768px){ .hav-problem__media{ grid-template-columns: 2fr 1fr; gap: 24px; } }
.hav-problem__media-main, .hav-problem__media-side{ position:relative; border-radius: 14px; overflow:hidden; aspect-ratio: 16/9; box-shadow: 0 16px 48px rgba(25,52,96,.12); }
.hav-problem__media-side{ aspect-ratio: 4/5; }
@media(max-width:767px){ .hav-problem__media-side{ aspect-ratio: 16/9; } }
.hav-problem__media img{ width:100%; height:100%; object-fit:cover; transition: transform .8s ease; }
.hav-problem__media-main:hover img,
.hav-problem__media-side:hover img{ transform: scale(1.05); }
.hav-problem__media-main::after{ content:''; position:absolute; inset:0; background: linear-gradient(135deg, rgba(232,25,44,.0), rgba(15,34,64,.35)); }
.hav-problem__media-side::after{ content:''; position:absolute; inset:0; background: linear-gradient(135deg, rgba(15,34,64,.45), rgba(232,25,44,.15)); }
.hav-problem__media-pull{ position:absolute; bottom:24px; left:24px; right:24px; color:#fff; z-index:2; }
.hav-problem__media-pull .kicker{ display:inline-block; font-family:var(--hav-font-head); font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color: hsl(var(--hav-primary)); margin-bottom:6px; }
.hav-problem__media-pull .quote{ font-family:var(--hav-font-head); font-size:16px; font-weight:700; line-height:1.4; color:#fff; margin:0; }
@media(min-width:768px){ .hav-problem__media-pull .quote{ font-size:20px; max-width: 580px; } }

/* ================================================================
   INTRO SECTION (text + media)
   ================================================================ */
.hav-intro{ padding: 100px 24px; background: hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-intro{ padding: 100px 60px; } }
.hav-intro__grid{ display:grid; grid-template-columns: 1fr; gap:48px; max-width:1200px; margin: 0 auto; align-items:center; }
@media(min-width:1024px){ .hav-intro__grid{ grid-template-columns: 55fr 45fr; gap:72px; } }
.hav-intro__title{ font-family:var(--hav-font-head); font-weight:800; line-height:1.12; letter-spacing:-0.6px; color: hsl(var(--hav-secondary)); margin: 0 0 22px; font-size: clamp(1.6rem, 3.2vw, 2.3rem); }
.hav-intro__title .hl{ color: hsl(var(--hav-primary)); }
.hav-intro__text p{ font-family:var(--hav-font-body); color: hsl(var(--hav-brand-muted)); font-size:16px; line-height:1.8; margin: 0 0 16px; }
.hav-intro__text a{ color: hsl(var(--hav-primary)); font-weight:600; text-decoration:none; }
.hav-intro__text a:hover{ text-decoration: underline; }
.hav-intro__btn{ margin-top:18px; }

.hav-intro__media{ position: relative; aspect-ratio: 4/3; border-radius:12px; overflow:hidden; background: linear-gradient(135deg, hsl(var(--hav-brand-blue-dark)), hsl(var(--hav-secondary))); box-shadow: 0 24px 64px rgba(25,52,96,.18); cursor: pointer; transition: all .5s ease; }
.hav-intro__media:hover{ transform: translateY(-8px); box-shadow: 0 32px 72px rgba(25,52,96,.28); }
.hav-intro__media img{ width:100%; height:100%; object-fit:cover; transition: transform .7s ease; }
.hav-intro__media:hover img{ transform: scale(1.05); }
.hav-intro__media::before{ content:''; position:absolute; inset:0; background: linear-gradient(135deg, rgba(25,52,96,.25), transparent); z-index:1; }
.hav-intro__media::after{ content:''; position:absolute; inset:18px; border:1px solid rgba(255,255,255,.07); border-radius:8px; z-index:1; pointer-events:none; }
.hav-intro__play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; z-index:2; }
.hav-intro__play-btn{ width:72px; height:72px; background: rgba(232,25,44,.9); border-radius:50%; display:flex; align-items:center; justify-content:center; transition: all .3s ease; box-shadow: 0 4px 24px rgba(232,25,44,.5); position:relative; }
.hav-intro__media:hover .hav-intro__play-btn{ transform: scale(1.1); background: hsl(var(--hav-primary)); }
.hav-intro__play-btn svg{ width:24px; height:24px; fill:#fff; margin-left:3px; }
.hav-intro__play-btn::before{ content:''; position:absolute; inset:0; border-radius:50%; border:2px solid rgba(255,255,255,.3); animation: hav-ping 2s cubic-bezier(0,0,0.2,1) infinite; }
.hav-intro__caption{ position:absolute; bottom:0; left:0; right:0; padding: 40px 20px 20px; background: linear-gradient(to top, rgba(25,52,96,.9), transparent); z-index:2; }
.hav-intro__caption-row{ display:flex; align-items:center; gap:8px; }
.hav-intro__caption-dot{ width:8px; height:8px; background: hsl(var(--hav-primary)); border-radius:50%; animation: hav-pulse 2s ease-in-out infinite; }
.hav-intro__caption-text{ font-family:var(--hav-font-head); font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color: rgba(255,255,255,.7); }

/* ================================================================
   TRUST BAR (marquee)
   ================================================================ */
.hav-trustbar{ padding: 60px 0; background: hsl(var(--hav-brand-bg2)); overflow:hidden; border-top: 1px solid rgba(0,0,0,.06); border-bottom: 1px solid rgba(0,0,0,.06); }
.hav-trustbar__label{ text-align:center; font-family:var(--hav-font-head); font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color: hsl(var(--hav-brand-muted)); margin-bottom:36px; }
.hav-trustbar__track{ display:flex; gap:72px; align-items:center; animation: hav-marquee 35s linear infinite; width: max-content; }
.hav-trustbar__logo{ flex-shrink:0; height:32px; display:flex; align-items:center; opacity:.45; transition: opacity .25s ease; color: hsl(var(--hav-secondary)); filter: grayscale(1); }
.hav-trustbar__logo:hover{ opacity: 1; filter: grayscale(0); }
.hav-trustbar__logo svg{ height:100%; width:auto; }
.hav-trustbar__logo--text{ font-family:var(--hav-font-head); font-size:22px; font-weight:800; letter-spacing:-0.6px; }

/* ================================================================
   EVERYTHING YOU NEED (2-col with 4 image cards)
   ================================================================ */
.hav-every{ position:relative; padding: 100px 24px; overflow:hidden; isolation:isolate; background-color: hsl(var(--hav-brand-blue-dark)); }
@media(min-width:768px){ .hav-every{ padding: 100px 60px; } }
.hav-every__bg-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.hav-every__overlay{ position:absolute; inset:0; background: linear-gradient(135deg, hsla(215, 62%, 16%, .82), hsla(215, 62%, 16%, .76), hsla(214, 60%, 24%, .88)); z-index:-1; }
.hav-every__grid{ max-width:1200px; margin: 0 auto; display:grid; grid-template-columns:1fr; gap:48px; align-items:center; }
@media(min-width:1024px){ .hav-every__grid{ grid-template-columns: 1fr 1fr; gap:64px; } }
body.hav .hav-every__copy h2,
.hav-every__copy h2{ color:#fff !important; font-family:var(--hav-font-head); font-weight:800; font-size: clamp(28px, 3.6vw, 46px); line-height:1.05; letter-spacing:-1px; margin: 18px 0 24px; }
body.hav .hav-every__copy h2 .hl,
.hav-every__copy h2 .hl{ color: hsl(var(--hav-primary)) !important; }
body.hav .hav-every__copy p,
.hav-every__copy p{ color: rgba(255,255,255,.85) !important; font-family:var(--hav-font-body); font-size:16px; line-height:1.8; max-width:520px; margin: 0 0 36px; }
.hav-every__links{ display:flex; flex-direction:column; gap:16px; max-width:420px; }
.hav-every__link{ display:inline-flex; align-items:center; gap:12px; font-family:var(--hav-font-head); font-size:13px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color: hsl(var(--hav-primary)); border-bottom:1px solid rgba(232,25,44,.4); padding-bottom:12px; text-decoration:none; transition: border-color .3s ease; }
.hav-every__link:hover{ border-color: hsl(var(--hav-primary)); }
.hav-every__link svg{ width:16px; height:16px; stroke: hsl(var(--hav-primary)); transition: transform .2s ease; }
.hav-every__link:hover svg{ transform: translateX(4px); }

.hav-every__cards{ display:grid; grid-template-columns: 1fr 1fr; gap:18px; }
.hav-every__card{ position:relative; border-radius:14px; overflow:hidden; aspect-ratio: 4/3.4; cursor:pointer; box-shadow: 0 12px 40px rgba(0,0,0,.45); transition: all .5s cubic-bezier(0.2,0.8,0.2,1); border: 1px solid rgba(255,255,255,.06); }
.hav-every__card:hover{ transform: translateY(-8px); box-shadow: 0 24px 64px rgba(232,25,44,.35); border-color: rgba(232,25,44,.4); }
.hav-every__card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition: transform .8s cubic-bezier(0.2,0.8,0.2,1); }
.hav-every__card:hover img{ transform: scale(1.12); }
.hav-every__card-overlay{ position:absolute; inset:0; background: linear-gradient(to top, rgba(10,18,45,.96) 10%, rgba(15,34,64,.55) 60%, rgba(15,34,64,.15) 100%); transition: all .5s ease; }
.hav-every__card:hover .hav-every__card-overlay{ background: linear-gradient(to top, rgba(232,25,44,.65) 10%, rgba(15,34,64,.5) 60%, rgba(15,34,64,.15) 100%); }
.hav-every__card-body{ position:absolute; bottom:0; left:0; right:0; padding: 24px; }
.hav-every__card-bar{ width:22px; height:3px; background: hsl(var(--hav-primary)); border-radius:2px; margin-bottom:14px; transition: width .5s ease; }
.hav-every__card:hover .hav-every__card-bar{ width:48px; }
body.hav .hav-every__card h4,
.hav-every__card h4{ font-family:var(--hav-font-head) !important; font-size:17px !important; font-weight:800 !important; color:#fff !important; line-height:1.25 !important; letter-spacing:-0.3px; margin: 0 0 8px !important; }
body.hav .hav-every__card p,
.hav-every__card p{ font-family:var(--hav-font-body); font-size:13px !important; color: rgba(255,255,255,.78) !important; line-height:1.55; margin:0; }

/* ================================================================
   PLAN STEPS (3-step process)
   ================================================================ */
.hav-plan{ padding: 100px 24px; background: hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-plan{ padding: 100px 60px; } }
.hav-plan__head{ text-align:center; max-width:820px; margin: 0 auto 56px; }
.hav-plan__grid{ display:grid; grid-template-columns:1fr; gap:32px; max-width:1100px; margin: 0 auto; }
@media(min-width:768px){ .hav-plan__grid{ grid-template-columns: repeat(3, 1fr); } }
.hav-plan__step{ position:relative; padding: 32px 28px 28px 28px; background:#fff; border-radius:12px; border:1px solid rgba(0,0,0,.05); box-shadow: 0 4px 20px rgba(25,52,96,.05); }
.hav-plan__num{ font-family:var(--hav-font-head); font-size:44px; font-weight:900; color: hsl(var(--hav-primary)); line-height:1; letter-spacing:-2px; margin-bottom:14px; }
.hav-plan__step h3{ font-family:var(--hav-font-head); font-size:20px; font-weight:700; color: hsl(var(--hav-secondary)); margin: 0 0 10px; }
.hav-plan__step p{ font-family:var(--hav-font-body); font-size:15px; line-height:1.75; color: hsl(var(--hav-brand-muted)); margin:0; }

/* ================================================================
   MID CTA — "A Production Partner That Delivers"
   ================================================================ */
.hav-midcta{ padding: 100px 24px; background: linear-gradient(135deg, hsl(var(--hav-secondary)), hsl(var(--hav-brand-blue-dark))); color:#fff; }
@media(min-width:768px){ .hav-midcta{ padding: 100px 60px; } }
.hav-midcta__wrap{ max-width: 1000px; margin: 0 auto; text-align:center; }
.hav-midcta__eyebrow{ color: hsl(var(--hav-primary)); justify-content:center; }
.hav-midcta__eyebrow::before,.hav-midcta__eyebrow::after{ background: hsl(var(--hav-primary)); }
.hav-midcta__title{ color:#fff; font-family:var(--hav-font-head); font-weight:800; font-size: clamp(28px, 3.8vw, 44px); letter-spacing:-1px; line-height:1.1; margin: 18px 0 36px; }
.hav-midcta__list{ display:grid; grid-template-columns:1fr; gap:16px; margin-bottom:40px; text-align:left; max-width:680px; margin-left:auto; margin-right:auto; }
@media(min-width:640px){ .hav-midcta__list{ grid-template-columns: 1fr 1fr; } }
.hav-midcta__item{ display:flex; align-items:flex-start; gap:12px; font-family:var(--hav-font-body); font-size:15px; color: rgba(255,255,255,.85); }
.hav-midcta__item svg{ width:20px; height:20px; stroke: hsl(var(--hav-primary)); flex-shrink:0; margin-top:2px; }
.hav-midcta__sub{ font-family:var(--hav-font-body); font-size:14px; color: rgba(255,255,255,.6); margin-top:16px; }

/* ================================================================
   SOLUTIONS — 3 cards with image backgrounds
   ================================================================ */
.hav-solutions{ padding: 100px 24px; background: hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-solutions{ padding: 100px 60px; } }
.hav-solutions__head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:24px; max-width:1200px; margin: 0 auto 48px; }
.hav-solutions__head > div:first-child{ max-width:620px; }
.hav-solutions__grid{ display:grid; grid-template-columns:1fr; gap:24px; max-width:1200px; margin: 0 auto; }
@media(min-width:768px){ .hav-solutions__grid{ grid-template-columns: repeat(3, 1fr); } }
.hav-solutions__card{ position:relative; aspect-ratio: 3/4; border-radius:14px; overflow:hidden; cursor:pointer; box-shadow: 0 16px 48px rgba(25,52,96,.12); transition: all .5s ease; }
.hav-solutions__card:hover{ transform: translateY(-6px); box-shadow: 0 24px 64px rgba(232,25,44,.2); }
.hav-solutions__card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition: transform .7s ease; }
.hav-solutions__card:hover img{ transform: scale(1.08); }
.hav-solutions__card-overlay{ position:absolute; inset:0; background: linear-gradient(to top, rgba(10,18,45,.95), rgba(15,34,64,.6) 45%, transparent); }
.hav-solutions__card-body{ position:absolute; bottom:0; left:0; right:0; padding: 28px; color:#fff; }
.hav-solutions__card-tag{ display:inline-block; padding:4px 10px; background: hsl(var(--hav-primary)); color:#fff; font-family:var(--hav-font-head); font-size:10px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; border-radius:4px; margin-bottom:12px; }
.hav-solutions__card h3{ font-family:var(--hav-font-head); font-size:22px; font-weight:800; line-height:1.2; margin: 0 0 8px; color:#fff; letter-spacing:-0.4px; }
.hav-solutions__card p{ font-family:var(--hav-font-body); font-size:14px; line-height:1.6; color: rgba(255,255,255,.75); margin:0; }

/* ================================================================
   WHY US — Numbered reasons
   ================================================================ */
.hav-whyus{ padding: 100px 24px; background: hsl(var(--hav-brand-bg)); }
@media(min-width:768px){ .hav-whyus{ padding: 100px 60px; } }
.hav-whyus__head{ max-width:860px; margin: 0 auto 56px; text-align:center; }
.hav-whyus__grid{ display:grid; grid-template-columns:1fr; gap:20px; max-width:1100px; margin: 0 auto; }
@media(min-width:768px){ .hav-whyus__grid{ grid-template-columns: 1fr 1fr; } }
.hav-whyus__card{ display:flex; gap:20px; padding:28px; background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:12px; transition: all .3s ease; }
.hav-whyus__card:hover{ transform: translateY(-3px); box-shadow: 0 16px 40px rgba(25,52,96,.1); border-color: rgba(232,25,44,.15); }
.hav-whyus__num{ flex-shrink:0; font-family:var(--hav-font-head); font-size:32px; font-weight:900; color: hsl(var(--hav-primary)); line-height:1; letter-spacing:-1px; min-width:50px; }
.hav-whyus__card h3{ font-family:var(--hav-font-head); font-size:18px; font-weight:700; color: hsl(var(--hav-secondary)); margin:0 0 8px; }
.hav-whyus__card p{ font-family:var(--hav-font-body); font-size:14px; line-height:1.7; color: hsl(var(--hav-brand-muted)); margin:0; }
.hav-whyus__badges{ display:flex; flex-wrap:wrap; justify-content:center; gap:16px; max-width:1000px; margin: 48px auto 0; padding: 28px; background:#fff; border-radius:12px; border:1px solid rgba(0,0,0,.06); }
.hav-whyus__badge{ display:inline-flex; align-items:center; gap:8px; font-family:var(--hav-font-head); font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color: hsl(var(--hav-secondary)); }
.hav-whyus__badge::before{ content:''; width:6px; height:6px; background: hsl(var(--hav-primary)); border-radius:50%; }

/* ================================================================
   TESTIMONIALS
   ================================================================ */
.hav-testimonials{ padding: 100px 24px; background: hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-testimonials{ padding: 100px 60px; } }
.hav-testimonials__head{ max-width:720px; margin: 0 auto 56px; text-align:center; }
.hav-testimonials__grid{ display:grid; grid-template-columns:1fr; gap:24px; max-width:1200px; margin: 0 auto; }
@media(min-width:768px){ .hav-testimonials__grid{ grid-template-columns: 1fr 1fr; } }
.hav-testimonial{ padding: 32px; background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:14px; position:relative; transition: all .3s ease; }
.hav-testimonial:hover{ transform: translateY(-3px); box-shadow: 0 16px 40px rgba(25,52,96,.08); }
.hav-testimonial__stars{ display:flex; gap:2px; margin-bottom:16px; }
.hav-testimonial__stars svg{ width:16px; height:16px; fill: hsl(var(--hav-primary)); stroke: hsl(var(--hav-primary)); }
.hav-testimonial__quote{ font-family:var(--hav-font-body); font-size:16px; line-height:1.7; color: hsl(var(--hav-secondary)); margin: 0 0 24px; }
.hav-testimonial__author{ display:flex; align-items:center; gap:14px; }
.hav-testimonial__avatar{ width:44px; height:44px; border-radius:50%; background: linear-gradient(135deg, hsl(var(--hav-brand-blue-mid)), hsl(var(--hav-secondary))); color:#fff; font-family:var(--hav-font-head); font-size:14px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.hav-testimonial__name{ font-family:var(--hav-font-head); font-size:14px; font-weight:700; color: hsl(var(--hav-secondary)); }
.hav-testimonial__role{ font-family:var(--hav-font-body); font-size:13px; color: hsl(var(--hav-brand-muted)); }

/* ================================================================
   CASE STUDIES
   ================================================================ */
.hav-cases{ padding: 100px 24px; background: hsl(var(--hav-brand-bg)); }
@media(min-width:768px){ .hav-cases{ padding: 100px 60px; } }
.hav-cases__head{ max-width:720px; margin: 0 auto 56px; text-align:center; }
.hav-cases__grid{ display:grid; grid-template-columns:1fr; gap:24px; max-width:1200px; margin: 0 auto; }
@media(min-width:768px){ .hav-cases__grid{ grid-template-columns: repeat(3, 1fr); } }
.hav-case{ background:#fff; border-radius:14px; overflow:hidden; border:1px solid rgba(0,0,0,.06); transition: all .3s ease; display:flex; flex-direction:column; }
.hav-case:hover{ transform: translateY(-4px); box-shadow: 0 20px 56px rgba(25,52,96,.12); }
.hav-case__media{ position:relative; aspect-ratio: 16/10; overflow:hidden; }
.hav-case__media img{ width:100%; height:100%; object-fit:cover; transition: transform .6s ease; }
.hav-case:hover .hav-case__media img{ transform: scale(1.05); }
.hav-case__tag{ position:absolute; top:14px; left:14px; padding:5px 10px; background: hsl(var(--hav-primary)); color:#fff; font-family:var(--hav-font-head); font-size:10px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; border-radius:4px; }
.hav-case__body{ padding:24px; flex:1; display:flex; flex-direction:column; }
.hav-case__kicker{ font-family:var(--hav-font-head); font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color: hsl(var(--hav-brand-muted)); margin-bottom:8px; }
.hav-case__title{ font-family:var(--hav-font-head); font-size:18px; font-weight:700; color: hsl(var(--hav-secondary)); line-height:1.3; margin: 0 0 12px; }
.hav-case__desc{ font-family:var(--hav-font-body); font-size:14px; line-height:1.7; color: hsl(var(--hav-brand-muted)); margin: 0 0 20px; flex:1; }
.hav-case__stats{ display:grid; grid-template-columns: repeat(3, 1fr); gap:12px; padding-top:20px; border-top:1px solid rgba(0,0,0,.08); margin-bottom:16px; }
.hav-case__stat{ text-align:left; }
.hav-case__stat-num{ font-family:var(--hav-font-head); font-size:22px; font-weight:900; color: hsl(var(--hav-secondary)); letter-spacing:-0.5px; line-height:1; }
.hav-case__stat-num em{ color: hsl(var(--hav-primary)); font-style:normal; }
.hav-case__stat-label{ font-family:var(--hav-font-body); font-size:11px; color: hsl(var(--hav-brand-muted)); margin-top:4px; }
.hav-case__link{ display:inline-flex; align-items:center; gap:6px; font-family:var(--hav-font-head); font-size:12px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color: hsl(var(--hav-primary)); text-decoration:none; }
.hav-case__link:hover{ text-decoration:underline; }

/* ================================================================
   COST OF STAYING PUT
   ================================================================ */
.hav-cost{ padding: 100px 24px; background: linear-gradient(135deg, hsl(var(--hav-foreground)), hsl(var(--hav-brand-blue-dark))); color:#fff; }
@media(min-width:768px){ .hav-cost{ padding: 100px 60px; } }
.hav-cost__wrap{ max-width:1000px; margin:0 auto; text-align:center; }
.hav-cost__title{ color:#fff; font-family:var(--hav-font-head); font-weight:900; font-size: clamp(28px, 4vw, 48px); letter-spacing:-1px; line-height:1.1; margin: 18px 0 24px; }
.hav-cost__title .hl{ color: hsl(var(--hav-primary)); }
.hav-cost__text{ font-family:var(--hav-font-body); font-size:17px; line-height:1.75; color: rgba(255,255,255,.78); max-width:720px; margin: 0 auto 36px; }
.hav-cost__chips{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-bottom:40px; }
.hav-cost__chip{ display:inline-flex; align-items:center; gap:8px; padding:10px 16px; background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:100px; font-family:var(--hav-font-head); font-size:13px; font-weight:600; color:#fff; }
.hav-cost__chip::before{ content:''; width:6px; height:6px; background: hsl(var(--hav-primary)); border-radius:50%; }

/* ================================================================
   FAQ (accordion)
   ================================================================ */
.hav-faq{ padding: 100px 24px; background: hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-faq{ padding: 100px 60px; } }
.hav-faq__head{ max-width:720px; margin: 0 auto 48px; text-align:center; }
.hav-faq__list{ max-width:820px; margin: 0 auto; }
.hav-faq__item{ border-bottom:1px solid rgba(0,0,0,.08); padding: 0; }
body.hav .hav-faq__q,
.hav-faq__q{ display:flex !important; align-items:flex-start !important; justify-content:space-between !important; gap:24px; padding: 24px 0 !important; cursor:pointer; font-family:var(--hav-font-head) !important; font-size:18px !important; font-weight:700 !important; color: hsl(var(--hav-secondary)) !important; line-height:1.4 !important; margin:0; transition: color .2s ease; background:none !important; border:none !important; width:100%; text-align:left !important; }
body.hav .hav-faq__q:hover,
.hav-faq__q:hover{ color: hsl(var(--hav-primary)) !important; background: transparent !important; }
.hav-faq__item.is-open .hav-faq__q{ color: hsl(var(--hav-primary)) !important; }
.hav-faq__icon{ flex-shrink:0; width:24px; height:24px; display:flex; align-items:center; justify-content:center; transition: transform .3s ease; }
.hav-faq__icon svg{ width:16px; height:16px; stroke: hsl(var(--hav-primary)); stroke-width:2.5; fill:none; }
.hav-faq__item.is-open .hav-faq__icon{ transform: rotate(180deg); }
.hav-faq__a{ display:none; font-family:var(--hav-font-body); font-size:15px; line-height:1.8; color: hsl(var(--hav-brand-muted)); }
body.hav .hav-faq__item.is-open .hav-faq__a,
.hav-faq__item.is-open .hav-faq__a{ display:block; padding: 0 0 24px; animation: hav-fadeup .3s ease both; }

/* ================================================================
   BLOG SECTION
   ================================================================ */
.hav-blog{ padding: 100px 24px; background: hsl(var(--hav-brand-bg2)); }
@media(min-width:768px){ .hav-blog{ padding: 100px 60px; } }
.hav-blog__head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:24px; max-width:1200px; margin: 0 auto 48px; }
.hav-blog__head > div:first-child{ max-width:620px; }
.hav-blog__grid{ display:grid; grid-template-columns:1fr; gap:24px; max-width:1200px; margin: 0 auto; }
@media(min-width:768px){ .hav-blog__grid{ grid-template-columns: repeat(3, 1fr); } }
.hav-blog__card{ display:flex; flex-direction:column; background:#fff; border-radius:14px; overflow:hidden; border:1px solid rgba(0,0,0,.06); transition: all .3s ease; text-decoration:none; color:inherit; }
.hav-blog__card:hover{ transform: translateY(-4px); box-shadow: 0 16px 48px rgba(25,52,96,.1); }
.hav-blog__media{ aspect-ratio:16/10; overflow:hidden; }
.hav-blog__media img{ width:100%; height:100%; object-fit:cover; transition: transform .6s ease; }
.hav-blog__card:hover .hav-blog__media img{ transform: scale(1.05); }
.hav-blog__body{ padding:24px; flex:1; display:flex; flex-direction:column; }
.hav-blog__cat{ display:inline-block; font-family:var(--hav-font-head); font-size:10px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color: hsl(var(--hav-primary)); margin-bottom:10px; }
.hav-blog__title{ font-family:var(--hav-font-head); font-size:17px; font-weight:700; color: hsl(var(--hav-secondary)); line-height:1.35; margin: 0 0 10px; }
.hav-blog__excerpt{ font-family:var(--hav-font-body); font-size:14px; line-height:1.7; color: hsl(var(--hav-brand-muted)); margin: 0 0 16px; flex:1; }
.hav-blog__meta{ display:flex; align-items:center; justify-content:space-between; padding-top:14px; border-top:1px solid rgba(0,0,0,.06); font-family:var(--hav-font-head); font-size:12px; font-weight:700; color: hsl(var(--hav-primary)); }
.hav-blog__time{ color: hsl(var(--hav-brand-dim)); font-weight:500; }

/* ================================================================
   FINAL CTA
   ================================================================ */
.hav-finalcta{ padding: 100px 24px; background: linear-gradient(135deg, hsl(var(--hav-brand-blue-dark)), hsl(var(--hav-secondary)), hsl(var(--hav-brand-blue-dark))); color:#fff; }
@media(min-width:768px){ .hav-finalcta{ padding: 120px 60px; } }
.hav-finalcta__wrap{ max-width:980px; margin:0 auto; text-align:center; }
.hav-finalcta__eyebrow{ color: hsl(var(--hav-primary)); justify-content:center; }
.hav-finalcta__eyebrow::before,.hav-finalcta__eyebrow::after{ background: hsl(var(--hav-primary)); }
.hav-finalcta__title{ color:#fff; font-family:var(--hav-font-head); font-weight:900; font-size: clamp(32px, 5vw, 56px); letter-spacing:-1.5px; line-height:1.05; margin: 20px 0 20px; }
.hav-finalcta__title .hl{ color: hsl(var(--hav-primary)); }
.hav-finalcta__sub{ font-family:var(--hav-font-body); font-size:17px; line-height:1.75; color: rgba(255,255,255,.72); max-width:660px; margin: 0 auto 40px; }
.hav-finalcta__ctas{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-bottom:36px; }
.hav-finalcta__features{ display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.hav-finalcta__features span{ display:inline-flex; align-items:center; gap:9px; padding:11px 20px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.15); border-radius:100px; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); font-family:var(--hav-font-head); font-size:13px; font-weight:600; color: rgba(255,255,255,.92); }
.hav-finalcta__features span::before{ content:''; width:18px; height:18px; border-radius:50%; background:hsl(var(--hav-primary)); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:11px; font-weight:800; line-height:1; flex-shrink:0; }
.hav-finalcta__features span::before{ content:'✓'; }

/* Hidden Cost — proper strip list (2-col bars with red X) */
.hav-cost__list{ display:grid; grid-template-columns:1fr 1fr; gap:14px; max-width:780px; margin:0 auto 40px; text-align:left; }
@media(max-width:600px){ .hav-cost__list{ grid-template-columns:1fr; } }
.hav-cost__item{ display:flex; align-items:center; gap:13px; padding:16px 20px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:12px; font-family:var(--hav-font-head); font-size:14.5px; font-weight:600; color:#fff; transition:all .25s ease; }
.hav-cost__item:hover{ background:rgba(255,255,255,.08); border-color:rgba(232,25,44,.4); }
.hav-cost__item-x{ width:26px; height:26px; border-radius:50%; background:rgba(232,25,44,.22); color:hsl(var(--hav-primary)); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.hav-cost__item-x svg{ width:13px; height:13px; }

/* ================================================================
   INNER PAGE HERO (with bg image + overlay)
   ================================================================ */
.hav-phero-img{ position:relative; min-height: 80vh; display:flex; align-items:center; justify-content:center; padding: 120px 24px; overflow:hidden; isolation:isolate; color:#fff; }
@media(min-width:768px){ .hav-phero-img{ padding: 140px 60px; } }
.hav-phero-img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.hav-phero-img__overlay{ position:absolute; inset:0; background: linear-gradient(135deg, rgba(12,28,56,.78), rgba(25,52,96,.62) 50%, rgba(18,40,82,.75)); z-index:-1; }
.hav-phero-img__pattern{ position:absolute; inset:0; z-index:-1; background-image: url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.016'%3E%3Cpath d='M40 30L50 40L40 50L30 40Z'/%3E%3C/g%3E%3C/svg%3E"); }
.hav-phero-img__content{ position:relative; max-width:860px; text-align:center; }
.hav-phero-img__eyebrow{ display:inline-flex; align-items:center; justify-content:center; gap:12px; font-family:var(--hav-font-head); font-size:11px; font-weight:700; letter-spacing:4px; text-transform:uppercase; color: hsl(var(--hav-primary)); margin-bottom:24px; }
.hav-phero-img__eyebrow::before,.hav-phero-img__eyebrow::after{ content:''; display:inline-block; width:28px; height:2px; background: hsl(var(--hav-primary)); border-radius:2px; }
body.hav .hav-phero-img__title,
.hav-phero-img__title{ font-family:var(--hav-font-head) !important; font-weight:900 !important; line-height:1.06 !important; color:#fff !important; margin: 0 0 20px !important; letter-spacing:-1.5px; font-size: clamp(32px, 5vw, 58px); }
body.hav .hav-phero-img__title .hl,
.hav-phero-img__title .hl{ color: hsl(var(--hav-primary)) !important; }
.hav-phero-img__subtitle{ font-family:var(--hav-font-body); font-size:17px; line-height:1.78; color: rgba(255,255,255,.85) !important; max-width:640px; margin: 0 auto 40px; }
.hav-phero-img__ctas{ display:flex; justify-content:center; gap:14px; flex-wrap:wrap; }

/* ================================================================
   SERVICES OVERVIEW GRID (event production / AV services)
   ================================================================ */
.hav-svcs{ padding: 100px 24px; background: hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-svcs{ padding: 100px 60px; } }
.hav-svcs__head{ max-width: 1200px; margin: 0 auto 56px; }
.hav-svcs__head .hav-section-subtitle{ max-width: 680px; }
.hav-svcs__grid{ display:grid; grid-template-columns:1fr; gap:20px; max-width: 1200px; margin: 0 auto; }
@media(min-width:640px){ .hav-svcs__grid{ grid-template-columns: 1fr 1fr; } }
@media(min-width:1024px){ .hav-svcs__grid--3{ grid-template-columns: 1fr 1fr 1fr; } }
.hav-svcs__card{ background: hsl(var(--hav-card)); border: 1px solid hsl(var(--hav-border)); border-radius: 16px; padding: 32px; transition: all .3s ease; height: 100%; }
.hav-svcs__card:hover{ transform: translateY(-6px); box-shadow: 0 16px 48px rgba(25,52,96,.1); border-color: rgba(25,45,112,.15); }
.hav-svcs__icon{ width: 48px; height: 48px; background: rgba(232,25,44,.1); border: 1px solid rgba(232,25,44,.2); border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; transition: all .3s ease; color: hsl(var(--hav-primary)); font-family: var(--hav-font-head); font-weight: 900; font-size: 13px; }
.hav-svcs__card:hover .hav-svcs__icon{ background: rgba(232,25,44,.2); transform: scale(1.05); }
.hav-svcs__icon svg{ width: 22px; height: 22px; }
.hav-svcs__card h3{ font-family: var(--hav-font-head); font-size: 17px; font-weight: 700; color: hsl(var(--hav-secondary)); letter-spacing: -0.3px; margin: 0 0 10px; }
.hav-svcs__card p{ font-family: var(--hav-font-body); font-size: 14px; line-height: 1.7; color: hsl(var(--hav-brand-muted)); margin: 0; }

/* ================================================================
   CONTACT PAGE
   ================================================================ */
.hav-contact{ padding: 100px 24px; background: hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-contact{ padding: 100px 60px; } }
.hav-contact__wrap{ max-width: 1000px; margin: 0 auto; }
.hav-contact__head{ text-align: center; margin-bottom: 56px; }
.hav-contact__eyebrow{ font-family: var(--hav-font-head); font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: hsl(var(--hav-primary)); margin-bottom: 16px; }
.hav-contact__title{ font-family: var(--hav-font-head); font-weight: 800; color: hsl(var(--hav-secondary)); line-height: 1.1; letter-spacing: -0.8px; margin: 0 0 20px; font-size: clamp(32px, 4vw, 48px); }
.hav-contact__title .hl{ color: hsl(var(--hav-primary)); }
.hav-contact__sub{ font-family: var(--hav-font-body); font-size: 18px; color: hsl(var(--hav-brand-muted)); line-height: 1.7; max-width: 640px; margin: 0 auto; }
.hav-contact__grid{ display:grid; grid-template-columns:1fr; gap:24px; }
@media(min-width:768px){ .hav-contact__grid{ grid-template-columns: repeat(3, 1fr); } }
.hav-contact__card{ text-align: center; padding: 32px 28px; background: hsl(var(--hav-brand-bg)); border: 1px solid hsl(var(--hav-border)); border-radius: 14px; transition: all .3s ease; }
.hav-contact__card:hover{ transform: translateY(-4px); box-shadow: 0 16px 40px rgba(25,52,96,.1); }
.hav-contact__card-icon{ width: 48px; height: 48px; margin: 0 auto 16px; background: rgba(232,25,44,.1); border: 1px solid rgba(232,25,44,.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: hsl(var(--hav-primary)); }
.hav-contact__card-icon svg{ width: 20px; height: 20px; }
.hav-contact__card-label{ font-family: var(--hav-font-head); font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: hsl(var(--hav-muted-foreground)); margin-bottom: 8px; }
.hav-contact__card a,
.hav-contact__card-value{ font-family: var(--hav-font-head); font-size: 18px; font-weight: 700; color: hsl(var(--hav-secondary)); text-decoration: none; transition: color .2s ease; display: block; }
.hav-contact__card a:hover{ color: hsl(var(--hav-primary)); }

/* ================================================================
   RESOURCES PAGE
   ================================================================ */
.hav-resources{ padding: 100px 24px; background: hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-resources{ padding: 100px 60px; } }
.hav-resources__wrap{ max-width: 1100px; margin: 0 auto; }
.hav-resources__head{ text-align: center; margin-bottom: 56px; }
.hav-resources__grid{ display:grid; grid-template-columns:1fr; gap:24px; }
@media(min-width:768px){ .hav-resources__grid{ grid-template-columns: repeat(3, 1fr); } }
.hav-resources__card{ background: hsl(var(--hav-brand-bg)); border: 1px solid hsl(var(--hav-border)); border-radius: 14px; padding: 28px; transition: all .3s ease; }
.hav-resources__card:hover{ transform: translateY(-4px); box-shadow: 0 12px 32px rgba(25,52,96,.1); }
.hav-resources__icon{ width: 48px; height: 48px; background: rgba(232,25,44,.1); border: 1px solid rgba(232,25,44,.2); border-radius: 10px; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; color: hsl(var(--hav-primary)); }
.hav-resources__icon svg{ width: 20px; height: 20px; }
.hav-resources__card h3{ font-family: var(--hav-font-head); font-size: 18px; font-weight: 800; color: hsl(var(--hav-secondary)); margin: 0 0 10px; }
.hav-resources__card p{ font-family: var(--hav-font-body); font-size: 14px; line-height: 1.7; color: hsl(var(--hav-brand-muted)); margin: 0 0 16px; }
.hav-resources__soon{ font-family: var(--hav-font-head); font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: hsl(var(--hav-primary)); }
.hav-resources__footer{ text-align: center; margin-top: 56px; }
.hav-resources__footer a{ display: inline-flex; align-items: center; gap: 8px; font-family: var(--hav-font-head); font-size: 13px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: hsl(var(--hav-primary)); text-decoration: none; border-bottom: 2px solid rgba(232,25,44,.4); padding-bottom: 4px; transition: border-color .2s ease; }
.hav-resources__footer a:hover{ border-color: hsl(var(--hav-primary)); }

/* ================================================================
   QUOTE PAGE (hero + inline form card)
   ================================================================ */
.hav-quotepage{ padding: 100px 24px; background: hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-quotepage{ padding: 100px 60px; } }
.hav-quotepage__wrap{ max-width: 800px; margin: 0 auto; text-align: center; }
.hav-quotepage__eyebrow{ font-family: var(--hav-font-head); font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: hsl(var(--hav-primary)); margin-bottom: 16px; }
.hav-quotepage__title{ font-family: var(--hav-font-head); font-weight: 800; color: hsl(var(--hav-secondary)); line-height: 1.1; letter-spacing: -0.8px; margin: 0 0 24px; font-size: clamp(32px, 4vw, 48px); }
.hav-quotepage__title .hl{ color: hsl(var(--hav-primary)); }
.hav-quotepage__sub{ font-family: var(--hav-font-body); font-size: 18px; color: hsl(var(--hav-brand-muted)); line-height: 1.7; margin: 0 0 40px; }
.hav-quotepage__card{ background: hsl(var(--hav-brand-bg)); border: 1px solid hsl(var(--hav-border)); border-radius: 16px; padding: 40px; text-align: left; }
.hav-quotepage__card .hav-form__footer{ justify-content: flex-start; }

/* ================================================================
   "COMING SOON" SUB-PAGE
   ================================================================ */
.hav-comingsoon{ min-height: 60vh; padding: 120px 24px; max-width: 1200px; margin: 0 auto; }
@media(min-width:768px){ .hav-comingsoon{ padding: 120px 60px; } }
.hav-comingsoon__eyebrow{ font-family: var(--hav-font-head); font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: hsl(var(--hav-primary)); margin-bottom: 16px; }
.hav-comingsoon h1{ font-family: var(--hav-font-head); font-weight: 900; color: hsl(var(--hav-secondary)); font-size: clamp(28px, 4vw, 44px); line-height: 1.1; letter-spacing: -0.8px; margin: 0 0 20px; }
.hav-comingsoon h1 .hl{ color: hsl(var(--hav-primary)); }
.hav-comingsoon p{ font-family: var(--hav-font-body); color: hsl(var(--hav-brand-muted)); font-size: 17px; line-height: 1.78; max-width: 680px; margin: 0 0 28px; }
.hav-comingsoon__cta{ display: inline-flex; align-items: center; gap: 8px; font-family: var(--hav-font-head); font-size: 13px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: hsl(var(--hav-primary)); text-decoration: none; border-bottom: 2px solid rgba(232,25,44,.4); padding-bottom: 4px; transition: border-color .2s ease; }
.hav-comingsoon__cta:hover{ border-color: hsl(var(--hav-primary)); }

/* ================================================================
   ABOUT PAGE
   ================================================================ */
.hav-about{ padding: 100px 24px; background: hsl(var(--hav-card)); min-height: calc(100vh - 72px - 300px); }
@media(min-width:768px){ .hav-about{ padding: 100px 60px; } }
.hav-about__wrap{ max-width: 860px; margin: 0 auto; }
.hav-about__header{ text-align: center; margin-bottom: 48px; }
.hav-about__eyebrow{ font-family: var(--hav-font-head); font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: hsl(var(--hav-primary)); margin-bottom: 16px; }
.hav-about__title{ font-family: var(--hav-font-head); font-weight: 800; color: hsl(var(--hav-secondary)); line-height: 1.1; letter-spacing: -0.8px; margin: 0 0 20px; font-size: clamp(32px, 4vw, 48px); }
.hav-about__title .hl{ color: hsl(var(--hav-primary)); }
.hav-about__body p{ font-family: var(--hav-font-body); color: hsl(var(--hav-brand-muted)); font-size: 16px; line-height: 1.85; margin: 0 0 24px; }
.hav-about__body p:last-child{ margin-bottom: 0; }
.hav-about__cta{ text-align: center; margin-top: 48px; }

/* ================================================================
   FOOTER
   ================================================================ */
.hav-footer{ background: hsl(var(--hav-brand-bg2)); border-top: 3px solid hsl(var(--hav-primary)); padding: 68px 24px 0; }
@media(min-width:768px){ .hav-footer{ padding: 68px 60px 0; } }
.hav-footer__top{ max-width:1200px; margin: 0 auto; display:grid; grid-template-columns:1fr; gap:40px; padding-bottom:56px; border-bottom:1px solid rgba(0,0,0,.08); }
@media(min-width:768px){ .hav-footer__top{ grid-template-columns: 2fr 1fr 1fr 1fr 1fr; gap:52px; } }
.hav-footer__brand p{ font-family:var(--hav-font-body); font-size:13px; color: hsl(var(--hav-brand-muted)); line-height:1.78; margin: 18px 0 24px; max-width:260px; }
.hav-footer__contact{ display:flex; flex-direction:column; gap:10px; margin-bottom:22px; }
.hav-footer__contact a,.hav-footer__contact span{ display:inline-flex; align-items:center; gap:8px; font-family:var(--hav-font-head); font-size:13px; font-weight:600; color: hsl(var(--hav-secondary)); text-decoration:none; transition: color .2s ease; }
.hav-footer__contact a:hover{ color: hsl(var(--hav-primary)); }
.hav-footer__contact svg{ width:13px; height:13px; stroke: hsl(var(--hav-primary)); flex-shrink:0; }
.hav-footer__social{ display:flex; gap:8px; }
.hav-footer__social a{ width:36px; height:36px; background:#fff; border:1px solid rgba(0,0,0,.08); border-radius:7px; display:flex; align-items:center; justify-content:center; font-family:var(--hav-font-head); font-size:12px; font-weight:700; color: hsl(var(--hav-secondary)); text-decoration:none; transition: all .2s ease; }
.hav-footer__social a:hover{ background: hsl(var(--hav-secondary)); color:#fff; border-color: hsl(var(--hav-secondary)); transform: translateY(-2px); }
.hav-footer__col h4{ font-family:var(--hav-font-head); font-size:10.5px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color: hsl(var(--hav-secondary)); margin: 0 0 18px; }
.hav-footer__col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:11px; }
.hav-footer__col a{ font-family:var(--hav-font-body); font-size:13px; color: hsl(var(--hav-brand-muted)); text-decoration:none; transition: color .2s ease; }
.hav-footer__col a:hover{ color: hsl(var(--hav-primary)); }
.hav-footer__bottom{ max-width:1200px; margin:0 auto; padding: 24px 0; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:14px; }
.hav-footer__copy{ font-family:var(--hav-font-body); font-size:12px; color: hsl(var(--hav-brand-dim)); }
.hav-footer__badges{ display:flex; gap:8px; flex-wrap:wrap; }
.hav-footer__badge{ display:inline-flex; align-items:center; gap:5px; background:#fff; border:1px solid rgba(0,0,0,.08); border-radius:5px; padding:5px 11px; font-family:var(--hav-font-head); font-size:10px; font-weight:700; letter-spacing:0.5px; text-transform:uppercase; color: hsl(var(--hav-secondary)); }
.hav-footer__badge::before{ content:''; width:5px; height:5px; background: hsl(var(--hav-primary)); border-radius:50%; flex-shrink:0; }
.hav-footer__legal{ display:flex; gap:18px; }
.hav-footer__legal a{ font-family:var(--hav-font-body); font-size:12px; color: hsl(var(--hav-brand-dim)); text-decoration:none; transition: color .2s ease; }
.hav-footer__legal a:hover{ color: hsl(var(--hav-secondary)); }

/* ================================================================
   FLOATING CTA (fixed bottom-right)
   ================================================================ */
.hav-floatcta{ position:fixed; bottom: 24px; right: 24px; z-index:150; opacity:0; transform: translateY(20px); transition: all .4s ease; pointer-events:none; }
.hav-floatcta.is-visible{ opacity:1; transform: translateY(0); pointer-events:auto; }
.hav-floatcta a{ display:inline-flex; align-items:center; gap:8px; background: hsl(var(--hav-primary)); color:#fff; padding: 14px 22px; border-radius: 100px; font-family:var(--hav-font-head); font-size:13px; font-weight:700; letter-spacing:0.5px; text-decoration:none; box-shadow: 0 8px 32px rgba(232,25,44,.45); transition: all .2s ease; }
.hav-floatcta a:hover{ background: hsl(var(--hav-brand-red-dark)); transform: translateY(-2px); box-shadow: 0 12px 40px rgba(232,25,44,.55); color:#fff; }

/* ================================================================
   REVEAL ANIMATIONS (JS toggles .is-in)
   ================================================================ */
.hav-reveal{ opacity:0; transform: translateY(18px); transition: opacity .8s ease, transform .8s ease; }
.hav-reveal.is-in{ opacity:1; transform: translateY(0); }
.hav-reveal--d1{ transition-delay: .14s; }
.hav-reveal--d2{ transition-delay: .28s; }
.hav-reveal--d3{ transition-delay: .42s; }
.hav-reveal--d4{ transition-delay: .56s; }
.hav-reveal--d5{ transition-delay: .70s; }

/* ================================================================
   KEYFRAMES
   ================================================================ */
@keyframes hav-fadeup { from{ opacity:0; transform: translateY(18px); } to{ opacity:1; transform: translateY(0); } }
@keyframes hav-glowpulse { 0%{ opacity:.7; transform: scale(1); } 100%{ opacity:1; transform: scale(1.09); } }
@keyframes hav-marquee { 0%{ transform: translateX(0); } 100%{ transform: translateX(-50%); } }
@keyframes hav-float { 0%{ transform: translateY(0) scale(1); opacity:.5; } 100%{ transform: translateY(-30px) scale(1.1); opacity:.8; } }
@keyframes hav-expandLine { from{ transform: scaleX(0); } to{ transform: scaleX(1); } }
@keyframes hav-ping { 75%,100% { transform: scale(2); opacity:0; } }
@keyframes hav-pulse { 50%{ opacity: .5; } }

/* ================================================================
   QUOTE MODAL
   ================================================================ */
.hav-modal{ position: fixed; inset: 0; z-index: 300; display: none; align-items: center; justify-content: center; padding: 16px; background: rgba(11,13,21,.6); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); animation: hav-fadeup .3s ease both; }
.hav-modal.is-open{ display: flex; }
body.hav-modal-open{ overflow: hidden; }
.hav-modal__panel{ position: relative; width: 100%; max-width: 560px; max-height: 92vh; overflow-y: auto; background: #fff; border-radius: 16px; box-shadow: 0 28px 90px rgba(25,52,96,.3); border: 1px solid rgba(0,0,0,.08); animation: hav-fadeup .4s ease both; }
.hav-modal__accent{ height: 4px; width: 100%; background: hsl(var(--hav-primary)); border-radius: 16px 16px 0 0; }
.hav-modal__close{ position: absolute; top: 16px; right: 16px; width: 36px; height: 36px; border-radius: 50%; background: hsl(var(--hav-accent)); color: hsl(var(--hav-secondary)); border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all .2s ease; font-size: 16px; line-height: 1; }
.hav-modal__close:hover{ background: hsl(var(--hav-secondary)); color: #fff; }
.hav-modal__body{ padding: 28px 32px 32px; }
@media(min-width:640px){ .hav-modal__body{ padding: 36px 40px 40px; } }
.hav-modal__eyebrow{ font-family: var(--hav-font-head); font-size: 10px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase; color: hsl(var(--hav-primary)); margin-bottom: 12px; }
.hav-modal__title{ font-family: var(--hav-font-head); font-weight: 800; font-size: 22px; line-height: 1.25; letter-spacing: -0.5px; color: hsl(var(--hav-secondary)); margin: 0 0 10px; }
@media(min-width:640px){ .hav-modal__title{ font-size: 28px; } }
.hav-modal__subtitle{ font-family: var(--hav-font-body); font-size: 14px; line-height: 1.65; color: hsl(var(--hav-brand-muted)); margin: 0 0 24px; }

.hav-form{ display: grid; grid-template-columns: 1fr; gap: 14px; }
@media(min-width:640px){ .hav-form{ grid-template-columns: 1fr 1fr; } }
.hav-form__row{ display: flex; flex-direction: column; gap: 6px; }
.hav-form__row--full{ grid-column: 1 / -1; }
.hav-form__label{ font-family: var(--hav-font-head); font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: hsl(var(--hav-secondary) / .8); }
.hav-form__label .req{ color: hsl(var(--hav-primary)); }
.hav-form__input,
.hav-form__textarea{ width: 100%; padding: 11px 14px; font-family: var(--hav-font-body); font-size: 14px; color: hsl(var(--hav-secondary)); background: #fff; border: 1px solid hsl(var(--hav-border)); border-radius: 6px; outline: none; transition: all .2s ease; }
.hav-form__input::placeholder,
.hav-form__textarea::placeholder{ color: hsl(var(--hav-brand-dim)); }
.hav-form__input:focus,
.hav-form__textarea:focus{ border-color: hsl(var(--hav-primary)); box-shadow: 0 0 0 3px rgba(232,25,44,.15); }
.hav-form__textarea{ resize: vertical; min-height: 84px; font-family: var(--hav-font-body); }
.hav-form__double{ grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

.hav-form__footer{ grid-column: 1 / -1; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; margin-top: 8px; }
@media(min-width:640px){ .hav-form__footer{ flex-direction: row; align-items: center; gap: 16px; } }
.hav-form__note{ font-family: var(--hav-font-body); font-size: 11px; color: hsl(var(--hav-brand-dim)); line-height: 1.5; }
.hav-form__submit{ width: 100%; }
@media(min-width:640px){ .hav-form__submit{ width: auto; } }

.hav-form__status{ grid-column: 1 / -1; padding: 12px 14px; border-radius: 8px; font-family: var(--hav-font-body); font-size: 14px; display: none; }
.hav-form__status.is-success{ display: block; background: rgba(34,197,94,.1); color: rgb(21,128,61); border: 1px solid rgba(34,197,94,.3); }
.hav-form__status.is-error{ display: block; background: rgba(239,68,68,.1); color: rgb(185,28,28); border: 1px solid rgba(239,68,68,.3); }

/* ================================================================
   RESPONSIVE ADJUSTMENTS
   ================================================================ */
@media(max-width:767px){
  .hav-hero__stats{ flex-direction:column; gap:24px; }
  .hav-hero__stat + .hav-hero__stat{ border-left:none; border-top:1px solid rgba(255,255,255,.1); padding-top:24px; }
  /* Footer mobile */
  .hav-footer{ padding: 48px 24px 0; }
  .hav-footer__top{ gap: 36px; padding-bottom: 36px; grid-template-columns: 1fr; }
  .hav-footer__brand p{ max-width: 100%; }
  .hav-footer__bottom{ flex-direction: column; align-items: flex-start; gap: 16px; padding: 20px 0; text-align: left; }
  .hav-footer__badges{ flex-wrap: wrap; }
  .hav-footer__legal{ flex-wrap: wrap; gap: 14px; }
  /* About page */
  .hav-about{ padding: 60px 24px; }
  .hav-about__header{ margin-bottom: 32px; }
  .hav-about__cta{ margin-top: 32px; }
  /* Navbar mobile: reduce padding */
  .hav-nav{ padding: 0 16px; grid-template-columns: auto 1fr auto; }
  .hav-nav__links{ display: none; }
  /* Admin bar overlaps on mobile when present */
}
@media(min-width:768px) and (max-width:1023px){
  .hav-footer__top{ grid-template-columns: 1fr 1fr 1fr; gap: 32px; }
  .hav-footer__brand{ grid-column: 1 / -1; }
}

/* ====================================================================
   ===============   HOMEPAGE V2 (Design Brief, Apr 2026)  ============
   Light theme retained per client; blue+red headlines, white space.
   ==================================================================== */

/* ---------- New logo (red/navy diamond + wordmark + tagline) ---------- */
.hav-logo__diamond{ width:38px; height:38px; flex-shrink:0; }
.hav-logo__txt{ display:flex; flex-direction:column; line-height:1; gap:3px; }
.hav-logo__word2{ font-family:var(--hav-font-head); font-weight:800; font-size:18px; letter-spacing:-0.3px; color:hsl(var(--hav-secondary)); }
.hav-logo__word2 em{ font-style:normal; background:hsl(var(--hav-primary)); color:#fff; padding:1px 5px; border-radius:4px; margin-left:2px; }
.hav-logo__tag{ font-family:var(--hav-font-head); font-weight:600; font-size:8px; letter-spacing:2.4px; text-transform:uppercase; color:hsl(var(--hav-brand-muted)); }

/* ---------- HERO V2 (dark cinematic, left content + stat cards) ---------- */
.hav-hero2{ position:relative; overflow:hidden; isolation:isolate; padding:140px 24px 90px; background:hsl(var(--hav-brand-blue-dark)); }
@media(min-width:768px){ .hav-hero2{ padding:160px 60px 100px; } }
.hav-hero2__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.hav-hero2__overlay{ position:absolute; inset:0; z-index:-1; background:linear-gradient(110deg, rgba(9,18,38,.88) 0%, rgba(12,28,56,.66) 48%, rgba(15,34,64,.38) 100%); }
.hav-hero2--solo .hav-hero2__overlay{ background:linear-gradient(110deg, rgba(9,18,38,.86) 0%, rgba(12,28,56,.6) 55%, rgba(15,34,64,.34) 100%); }
.hav-hero2__pattern{ position:absolute; inset:0; z-index:-1; background-image:url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.02'%3E%3Cpath d='M40 30L50 40L40 50L30 40Z'/%3E%3C/g%3E%3C/svg%3E"); }
.hav-hero2__wrap{ max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:48px; align-items:center; }
@media(min-width:1024px){ .hav-hero2__wrap{ grid-template-columns:1.15fr .85fr; gap:56px; } }
.hav-hero2__eyebrow{ display:inline-flex; align-items:center; gap:10px; font-family:var(--hav-font-head); font-size:12px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:hsl(var(--hav-primary)); margin-bottom:22px; }
.hav-hero2__eyebrow::before{ content:''; width:26px; height:2px; background:hsl(var(--hav-primary)); border-radius:2px; }
body.hav .hav-hero2__title,
.hav-hero2__title{ font-family:var(--hav-font-head)!important; font-weight:900!important; color:#fff!important; font-size:clamp(32px,4.4vw,52px)!important; line-height:1.08!important; letter-spacing:-1.2px; margin:0 0 22px!important; }
.hav-hero2__title .hl{ color:hsl(var(--hav-primary))!important; }
.hav-hero2__sub{ font-family:var(--hav-font-body); font-size:17px; line-height:1.75; color:rgba(255,255,255,.72)!important; max-width:560px; margin:0 0 32px; }
.hav-hero2__ctas{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:32px; }
.hav-hero2__proof{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; }
.hav-proof-item{ display:inline-flex; align-items:center; gap:9px; padding:9px 15px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.13); border-radius:10px; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.hav-proof-item__brand{ font-family:var(--hav-font-head); font-weight:700; font-size:13px; color:#fff; }
.hav-proof-item__stars{ display:flex; gap:1px; }
.hav-proof-item__stars svg{ width:13px; height:13px; fill:#FFB400; }
.hav-proof-item__score{ font-family:var(--hav-font-head); font-weight:700; font-size:13px; color:#fff; }
.hav-proof-item__label{ font-family:var(--hav-font-head); font-weight:600; font-size:11px; letter-spacing:.5px; color:rgba(255,255,255,.8); }
.hav-proof-item svg.havc-shield{ width:16px; height:16px; }

/* Hero stat cards (2x2) */
.hav-hero2__stats{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.hav-statcard{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:14px; padding:24px 22px; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); transition:all .3s ease; }
.hav-statcard:hover{ background:rgba(255,255,255,.1); border-color:rgba(232,25,44,.4); transform:translateY(-3px); }
.hav-statcard__icon{ width:38px; height:38px; border-radius:9px; background:rgba(232,25,44,.16); display:flex; align-items:center; justify-content:center; margin-bottom:14px; color:hsl(var(--hav-primary)); }
.hav-statcard__icon svg{ width:19px; height:19px; }
.hav-statcard__num{ font-family:var(--hav-font-head); font-weight:900; font-size:30px; color:#fff; line-height:1; letter-spacing:-1px; }
.hav-statcard__num em{ color:hsl(var(--hav-primary)); font-style:normal; }
.hav-statcard__label{ font-family:var(--hav-font-head); font-weight:600; font-size:12px; letter-spacing:.5px; color:rgba(255,255,255,.62); margin-top:7px; }

/* ---------- SOLUTIONS GRID (9 image cards) ---------- */
.hav-sol{ padding:100px 24px; background:hsl(var(--hav-brand-blue-dark)); position:relative; }
@media(min-width:768px){ .hav-sol{ padding:100px 60px; } }
.hav-sol__wrap{ max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:44px; }
@media(min-width:1024px){ .hav-sol__wrap{ grid-template-columns:.8fr 2.2fr; gap:48px; align-items:start; } }
.hav-sol__copy .hav-eyebrow{ color:hsl(var(--hav-primary)); }
body.hav .hav-sol__copy h2,
.hav-sol__copy h2{ font-family:var(--hav-font-head)!important; font-weight:800!important; color:#fff!important; font-size:clamp(26px,3vw,38px)!important; line-height:1.1!important; letter-spacing:-.8px; margin:14px 0 18px!important; }
.hav-sol__copy h2 .hl{ color:hsl(var(--hav-primary))!important; }
.hav-sol__copy p{ font-family:var(--hav-font-body); font-size:15px; line-height:1.8; color:rgba(255,255,255,.7)!important; margin:0 0 28px; }
.hav-sol__grid{ display:grid; grid-template-columns:1fr; gap:16px; }
@media(min-width:560px){ .hav-sol__grid{ grid-template-columns:1fr 1fr; } }
@media(min-width:900px){ .hav-sol__grid{ grid-template-columns:1fr 1fr 1fr; } }
.hav-sol__card{ position:relative; aspect-ratio:4/3; border-radius:14px; overflow:hidden; text-decoration:none; box-shadow:0 12px 36px rgba(0,0,0,.4); border:1px solid rgba(255,255,255,.06); transition:all .45s cubic-bezier(.2,.8,.2,1); }
.hav-sol__card:hover{ transform:translateY(-6px); box-shadow:0 22px 56px rgba(232,25,44,.32); border-color:rgba(232,25,44,.45); }
.hav-sol__card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.8,.2,1); }
.hav-sol__card:hover img{ transform:scale(1.1); }
.hav-sol__card-ov{ position:absolute; inset:0; background:linear-gradient(to top, rgba(9,18,38,.92) 8%, rgba(12,28,56,.45) 55%, rgba(12,28,56,.1) 100%); transition:all .45s ease; }
.hav-sol__card:hover .hav-sol__card-ov{ background:linear-gradient(to top, rgba(232,25,44,.62) 8%, rgba(12,28,56,.4) 55%, rgba(12,28,56,.1) 100%); }
.hav-sol__card-body{ position:absolute; left:0; right:0; bottom:0; padding:20px; display:flex; align-items:center; gap:11px; }
.hav-sol__card-ic{ width:34px; height:34px; border-radius:8px; background:rgba(255,255,255,.16); display:flex; align-items:center; justify-content:center; flex-shrink:0; color:#fff; }
.hav-sol__card-ic svg{ width:18px; height:18px; }
.hav-sol__card h3{ font-family:var(--hav-font-head)!important; font-weight:700!important; font-size:15px!important; color:#fff!important; line-height:1.25!important; margin:0!important; }

/* ---------- COMPARISON TABLE (Honest AV vs Typical Venue) ---------- */
.hav-cmp{ padding:100px 24px; background:hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-cmp{ padding:100px 60px; } }
.hav-cmp__wrap{ max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:48px; align-items:center; }
@media(min-width:1024px){ .hav-cmp__wrap{ grid-template-columns:.85fr 1.15fr; gap:60px; } }
.hav-cmp__copy h2{ margin-top:14px; }
.hav-cmp__table{ display:grid; grid-template-columns:1fr auto 1fr; align-items:stretch; gap:0; border-radius:16px; overflow:hidden; border:1px solid hsl(var(--hav-border)); box-shadow:0 16px 48px rgba(25,52,96,.1); }
.hav-cmp__col{ padding:28px 24px; }
.hav-cmp__col--hav{ background:hsl(var(--hav-secondary)); }
.hav-cmp__col--venue{ background:#fff; }
.hav-cmp__col-head{ font-family:var(--hav-font-head); font-weight:800; font-size:14px; letter-spacing:.5px; text-transform:uppercase; margin-bottom:20px; padding-bottom:16px; border-bottom:1px solid rgba(255,255,255,.15); }
.hav-cmp__col--hav .hav-cmp__col-head{ color:#fff; }
.hav-cmp__col--venue .hav-cmp__col-head{ color:hsl(var(--hav-brand-muted)); border-bottom-color:hsl(var(--hav-border)); }
.hav-cmp__row{ display:flex; align-items:center; gap:11px; padding:11px 0; font-family:var(--hav-font-body); font-size:14px; }
.hav-cmp__col--hav .hav-cmp__row{ color:#fff; }
.hav-cmp__col--venue .hav-cmp__row{ color:hsl(var(--hav-brand-muted)); }
.hav-cmp__ic{ width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.hav-cmp__ic--check{ background:hsl(var(--hav-secondary)); color:#fff; border:1.5px solid rgba(255,255,255,.5); }
.hav-cmp__ic--x{ background:hsl(var(--hav-brand-bg2)); color:hsl(var(--hav-primary)); }
.hav-cmp__ic svg{ width:13px; height:13px; }
.hav-cmp__vs{ display:flex; align-items:center; justify-content:center; background:hsl(var(--hav-brand-bg)); padding:0 4px; }
.hav-cmp__vs span{ width:46px; height:46px; border-radius:50%; background:hsl(var(--hav-primary)); color:#fff; font-family:var(--hav-font-head); font-weight:800; font-size:14px; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 18px rgba(232,25,44,.4); }
@media(max-width:640px){ .hav-cmp__table{ grid-template-columns:1fr; } .hav-cmp__vs{ padding:14px 0; } }

/* ---------- 4-STEP PROCESS ---------- */
.hav-proc{ padding:100px 24px; background:hsl(var(--hav-brand-bg)); }
@media(min-width:768px){ .hav-proc{ padding:100px 60px; } }
.hav-proc__head{ text-align:center; max-width:820px; margin:0 auto 56px; }
.hav-proc__grid{ position:relative; max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:32px; }
@media(min-width:768px){ .hav-proc__grid{ grid-template-columns:repeat(4,1fr); gap:24px; } .hav-proc__grid::before{ content:''; position:absolute; top:27px; left:12%; right:12%; height:2px; background:hsl(var(--hav-primary)); opacity:.22; } }
.hav-proc__step{ text-align:center; position:relative; }
.hav-proc__num{ width:56px; height:56px; margin:0 auto 18px; border-radius:50%; background:hsl(var(--hav-primary)); color:#fff; font-family:var(--hav-font-head); font-weight:800; font-size:22px; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 22px rgba(232,25,44,.35); position:relative; z-index:1; }
.hav-proc__step h3{ font-family:var(--hav-font-head); font-weight:700; font-size:19px; color:hsl(var(--hav-secondary)); margin:0 0 10px; }
.hav-proc__step p{ font-family:var(--hav-font-body); font-size:14px; line-height:1.7; color:hsl(var(--hav-brand-muted)); margin:0; }
.hav-proc__promise{ text-align:center; margin-top:48px; font-family:var(--hav-font-head); font-weight:600; font-size:15px; color:hsl(var(--hav-secondary)); }
.hav-proc__promise .hl{ color:hsl(var(--hav-primary)); }

/* ---------- OUTCOME / RISK TWO-PANEL ---------- */
.hav-or{ padding:100px 24px; background:hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-or{ padding:100px 60px; } }
.hav-or__grid{ max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:24px; }
@media(min-width:900px){ .hav-or__grid{ grid-template-columns:1fr 1fr; } }
.hav-or__card{ position:relative; border-radius:18px; overflow:hidden; min-height:440px; display:flex; flex-direction:column; justify-content:flex-end; padding:40px; isolation:isolate; }
.hav-or__card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.hav-or__card-ov{ position:absolute; inset:0; z-index:-1; }
.hav-or__card--good .hav-or__card-ov{ background:linear-gradient(to top, rgba(12,28,56,.95) 20%, rgba(15,34,64,.6)); }
.hav-or__card--bad .hav-or__card-ov{ background:linear-gradient(to top, rgba(9,18,38,.96) 20%, rgba(30,12,18,.7)); }
.hav-or__eyebrow{ font-family:var(--hav-font-head); font-size:11px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:hsl(var(--hav-primary)); margin-bottom:14px; }
body.hav .hav-or__card h2,
.hav-or__card h2{ font-family:var(--hav-font-head)!important; font-weight:800!important; color:#fff!important; font-size:25px!important; line-height:1.2!important; margin:0 0 22px!important; }
.hav-or__card h2 .hl{ color:hsl(var(--hav-primary))!important; }
.hav-or__list{ list-style:none; padding:0; margin:0 0 26px; display:flex; flex-direction:column; gap:12px; }
.hav-or__list li{ display:flex; align-items:center; gap:11px; font-family:var(--hav-font-body); font-size:15px; color:rgba(255,255,255,.88); }
.hav-or__list-ic{ width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.hav-or__card--good .hav-or__list-ic{ background:hsl(var(--hav-primary)); color:#fff; }
.hav-or__card--bad .hav-or__list-ic{ background:rgba(232,25,44,.2); color:hsl(var(--hav-primary)); }
.hav-or__list-ic svg{ width:13px; height:13px; }
.hav-or__ctas{ display:flex; flex-wrap:wrap; gap:12px; }

/* ---------- TRUSTED LOGOS GRID (under testimonials) ---------- */
.hav-trustgrid{ margin-top:48px; }
.hav-trustgrid__label{ text-align:center; font-family:var(--hav-font-head); font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:hsl(var(--hav-brand-muted)); margin-bottom:28px; }
.hav-trustgrid__row{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:32px 52px; }
.hav-trustgrid__logo{ font-family:var(--hav-font-head); font-weight:800; font-size:21px; color:hsl(var(--hav-secondary)); opacity:.42; filter:grayscale(1); transition:all .25s ease; letter-spacing:-.5px; }
.hav-trustgrid__logo:hover{ opacity:.85; filter:grayscale(0); }

/* Hero V2 solo (inner pages — no stat cards) */
.hav-hero2--solo .hav-hero2__wrap{ grid-template-columns:1fr; }
.hav-hero2--solo{ padding:130px 24px 80px; }
@media(min-width:768px){ .hav-hero2--solo{ padding:150px 60px 90px; } }
.hav-hero2--solo .hav-hero2__content{ max-width:780px; }

/* ====================================================================
   ====  EVENT PRODUCTION + AV SERVICES PAGES (Design Briefs, May)  ====
   ==================================================================== */

/* ---------- Hero 4th "trust" card (text, not a number) ---------- */
.hav-statcard--trust .hav-statcard__num{ font-size:15px; line-height:1.3; letter-spacing:0; }
.hav-statcard--trust .hav-statcard__num em{ display:none; }

/* ---------- TRUST STRIP — icon categories (no blue bg, dark band) ---------- */
.hav-tcats{ background:hsl(var(--hav-foreground)); padding:44px 24px; }
@media(min-width:768px){ .hav-tcats{ padding:48px 60px; } }
.hav-tcats__lead{ max-width:1000px; margin:0 auto 32px; text-align:center; font-family:var(--hav-font-body); font-size:15px; line-height:1.7; color:rgba(255,255,255,.7); }
.hav-tcats__row{ max-width:1200px; margin:0 auto; display:grid; grid-template-columns:repeat(2,1fr); gap:24px 20px; }
@media(min-width:680px){ .hav-tcats__row{ grid-template-columns:repeat(3,1fr); } }
@media(min-width:1024px){ .hav-tcats__row{ grid-template-columns:repeat(6,1fr); } }
.hav-tcats__item{ text-align:center; display:flex; flex-direction:column; align-items:center; gap:12px; }
.hav-tcats__ic{ width:46px; height:46px; border-radius:12px; background:rgba(232,25,44,.14); display:flex; align-items:center; justify-content:center; color:hsl(var(--hav-primary)); }
.hav-tcats__ic svg{ width:22px; height:22px; }
.hav-tcats__label{ font-family:var(--hav-font-head); font-size:12px; font-weight:600; line-height:1.4; color:rgba(255,255,255,.82); }

/* ---------- INTRO problems (2-col image + copy + checklist) ---------- */
.hav-prob2{ padding:100px 24px; background:hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-prob2{ padding:100px 60px; } }
.hav-prob2__grid{ max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:48px; align-items:center; }
@media(min-width:1024px){ .hav-prob2__grid{ grid-template-columns:1fr 1fr 0.7fr; gap:48px; align-items:start; } }
.hav-prob2__img{ border-radius:14px; overflow:hidden; aspect-ratio:4/3.4; box-shadow:0 18px 50px rgba(25,52,96,.16); }
.hav-prob2__img img{ width:100%; height:100%; object-fit:cover; }
.hav-prob2__copy h2{ margin-top:14px; }
.hav-prob2__copy p{ font-family:var(--hav-font-body); font-size:15px; line-height:1.8; color:hsl(var(--hav-brand-muted)); margin:0 0 16px; }
.hav-prob2__copy .em{ color:hsl(var(--hav-secondary)); font-weight:700; }
.hav-prob2__link{ display:inline-flex; align-items:center; gap:8px; font-family:var(--hav-font-head); font-size:13px; font-weight:700; color:hsl(var(--hav-primary)); text-decoration:none; margin-top:8px; }
.hav-prob2__list{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:13px; }
.hav-prob2__list li{ display:flex; align-items:center; gap:11px; font-family:var(--hav-font-body); font-size:14px; color:hsl(var(--hav-brand-muted)); }
.hav-prob2__list-ic{ width:22px; height:22px; border-radius:50%; background:hsl(var(--hav-primary)); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.hav-prob2__list-ic svg{ width:12px; height:12px; }

/* ---------- GUIDE (dark, image + 4 pillars) ---------- */
.hav-guide{ background:hsl(var(--hav-brand-blue-dark)); padding:90px 24px; position:relative; overflow:hidden; isolation:isolate; }
@media(min-width:768px){ .hav-guide{ padding:96px 60px; } }
.hav-guide__grid{ max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:48px; align-items:center; }
@media(min-width:1024px){ .hav-guide__grid{ grid-template-columns:1fr 1.1fr; gap:56px; } }
.hav-guide__img{ border-radius:14px; overflow:hidden; aspect-ratio:16/11; box-shadow:0 20px 56px rgba(0,0,0,.45); }
.hav-guide__img img{ width:100%; height:100%; object-fit:cover; }
.hav-guide__eyebrow{ color:hsl(var(--hav-primary)); }
body.hav .hav-guide__title, .hav-guide__title{ font-family:var(--hav-font-head)!important; font-weight:800!important; color:#fff!important; font-size:clamp(24px,2.8vw,34px)!important; line-height:1.2!important; letter-spacing:-.6px; margin:14px 0 16px!important; }
.hav-guide__title .hl{ color:hsl(var(--hav-primary))!important; }
.hav-guide__sub{ font-family:var(--hav-font-body); font-size:15px; line-height:1.8; color:rgba(255,255,255,.7)!important; margin:0 0 28px; }
.hav-guide__pillars{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.hav-guide__pillar-ic{ width:42px; height:42px; border-radius:10px; background:rgba(232,25,44,.16); display:flex; align-items:center; justify-content:center; color:hsl(var(--hav-primary)); margin-bottom:12px; }
.hav-guide__pillar-ic svg{ width:20px; height:20px; }
.hav-guide__pillar h4{ font-family:var(--hav-font-head); font-size:15px; font-weight:700; color:#fff; margin:0 0 5px; }
.hav-guide__pillar p{ font-family:var(--hav-font-body); font-size:13px; line-height:1.6; color:rgba(255,255,255,.62); margin:0; }
.hav-guide__promise{ margin-top:28px; font-family:var(--hav-font-head); font-weight:700; font-size:18px; color:hsl(var(--hav-primary)); }

/* ---------- EVENT TYPE / SERVICE card grid (image-forward, wraps) ---------- */
.hav-etypes{ padding:90px 24px; background:hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-etypes{ padding:96px 60px; } }
.hav-etypes__head{ text-align:center; max-width:840px; margin:0 auto 48px; }
.hav-etypes__grid{ max-width:1200px; margin:0 auto; display:grid; grid-template-columns:repeat(2,1fr); gap:18px; }
@media(min-width:680px){ .hav-etypes__grid{ grid-template-columns:repeat(3,1fr); } }
@media(min-width:1024px){ .hav-etypes__grid{ grid-template-columns:repeat(4,1fr); } }
.hav-etypes__card{ position:relative; aspect-ratio:4/3.2; border-radius:12px; overflow:hidden; text-decoration:none; box-shadow:0 10px 30px rgba(0,0,0,.35); transition:all .4s cubic-bezier(.2,.8,.2,1); }
.hav-etypes__card:hover{ transform:translateY(-5px); box-shadow:0 18px 44px rgba(232,25,44,.28); }
.hav-etypes__card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.hav-etypes__card:hover img{ transform:scale(1.1); }
.hav-etypes__card-ov{ position:absolute; inset:0; background:linear-gradient(to top, rgba(9,18,38,.92) 5%, rgba(12,28,56,.4) 60%, rgba(12,28,56,.1)); transition:all .4s ease; }
.hav-etypes__card:hover .hav-etypes__card-ov{ background:linear-gradient(to top, rgba(232,25,44,.6) 5%, rgba(12,28,56,.4) 60%, rgba(12,28,56,.1)); }
.hav-etypes__card-body{ position:absolute; left:0; right:0; bottom:0; padding:16px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.hav-etypes__card h3{ font-family:var(--hav-font-head)!important; font-size:14px!important; font-weight:700!important; color:#fff!important; line-height:1.25!important; margin:0!important; }
.hav-etypes__card-arrow{ width:26px; height:26px; border-radius:50%; background:hsl(var(--hav-primary)); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.hav-etypes__card-arrow svg{ width:13px; height:13px; }

/* ---------- P.E.E.P. / AV SYSTEMS — Z-pattern alternating rows ---------- */
.hav-peep{ padding:90px 24px; background:hsl(var(--hav-card)); }
@media(min-width:768px){ .hav-peep{ padding:96px 60px; } }
.hav-peep__head{ text-align:center; max-width:900px; margin:0 auto 56px; }
.hav-peep__row{ max-width:1200px; margin:0 auto 36px; display:grid; grid-template-columns:1fr; gap:36px; align-items:center; }
@media(min-width:900px){ .hav-peep__row{ grid-template-columns:1fr 1fr; gap:52px; } .hav-peep__row--flip .hav-peep__media{ order:2; } }
.hav-peep__media{ border-radius:14px; overflow:hidden; aspect-ratio:16/10; box-shadow:0 16px 48px rgba(25,52,96,.16); }
.hav-peep__media img{ width:100%; height:100%; object-fit:cover; }
.hav-peep__num{ font-family:var(--hav-font-head); font-weight:900; font-size:40px; color:hsl(var(--hav-primary)); line-height:1; letter-spacing:-2px; }
.hav-peep__kicker{ display:inline-block; font-family:var(--hav-font-head); font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:hsl(var(--hav-primary)); margin:14px 0 6px; }
.hav-peep__title{ font-family:var(--hav-font-head); font-weight:800; font-size:clamp(20px,2.2vw,26px); line-height:1.2; color:hsl(var(--hav-secondary)); margin:0 0 8px; letter-spacing:-.4px; }
.hav-peep__lead{ font-family:var(--hav-font-body); font-size:14px; color:hsl(var(--hav-brand-muted)); margin:0 0 18px; }
.hav-peep__list{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
.hav-peep__list li{ display:flex; align-items:center; gap:9px; font-family:var(--hav-font-body); font-size:13.5px; color:hsl(var(--hav-brand-muted)); }
.hav-peep__list-ic{ width:18px; height:18px; border-radius:50%; background:hsl(var(--hav-primary)); color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.hav-peep__list-ic svg{ width:10px; height:10px; }

/* ---------- DIFFERENCE — uses .hav-cmp; add CTA row ---------- */
.hav-cmp__ctas{ grid-column:1/-1; display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-top:36px; }

/* ---------- BENEFITS strip (icon + title + subtitle row) ---------- */
.hav-benefits{ padding:60px 24px; background:hsl(var(--hav-brand-bg)); border-top:1px solid hsl(var(--hav-border)); border-bottom:1px solid hsl(var(--hav-border)); }
@media(min-width:768px){ .hav-benefits{ padding:64px 60px; } }
.hav-benefits__row{ max-width:1200px; margin:0 auto; display:grid; grid-template-columns:repeat(2,1fr); gap:28px 24px; }
@media(min-width:680px){ .hav-benefits__row{ grid-template-columns:repeat(3,1fr); } }
@media(min-width:1024px){ .hav-benefits__row{ grid-template-columns:repeat(6,1fr); } }
.hav-benefit{ text-align:center; }
.hav-benefit__ic{ width:44px; height:44px; margin:0 auto 12px; border-radius:50%; background:rgba(232,25,44,.1); display:flex; align-items:center; justify-content:center; color:hsl(var(--hav-primary)); }
.hav-benefit__ic svg{ width:20px; height:20px; }
.hav-benefit h4{ font-family:var(--hav-font-head); font-size:14px; font-weight:700; color:hsl(var(--hav-secondary)); margin:0 0 4px; }
.hav-benefit p{ font-family:var(--hav-font-body); font-size:12px; line-height:1.5; color:hsl(var(--hav-brand-muted)); margin:0; }

/* ---------- "More Than Equipment" pill separator (AV page) ---------- */
.hav-pillsep{ padding:54px 24px; background:hsl(var(--hav-card)); }
.hav-pillsep__row{ max-width:1100px; margin:0 auto; display:flex; flex-wrap:wrap; justify-content:center; gap:14px; }
.hav-pillsep__pill{ display:inline-flex; align-items:center; gap:9px; padding:12px 20px; background:hsl(var(--hav-brand-bg2)); border:1px solid hsl(var(--hav-border)); border-radius:100px; font-family:var(--hav-font-head); font-size:13px; font-weight:600; color:hsl(var(--hav-secondary)); }
.hav-pillsep__pill svg{ width:16px; height:16px; color:hsl(var(--hav-primary)); }

/* ---------- EQUIPMENT & LABOR two-column (AV page) ---------- */
.hav-eqlab{ padding:90px 24px; background:hsl(var(--hav-brand-bg)); }
@media(min-width:768px){ .hav-eqlab{ padding:96px 60px; } }
.hav-eqlab__grid{ max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:28px; }
@media(min-width:900px){ .hav-eqlab__grid{ grid-template-columns:1fr 1fr; } }
.hav-eqlab__card{ background:#fff; border:1px solid hsl(var(--hav-border)); border-radius:16px; padding:32px; box-shadow:0 12px 36px rgba(25,52,96,.08); }
.hav-eqlab__head{ display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.hav-eqlab__head-ic{ width:42px; height:42px; border-radius:10px; background:rgba(232,25,44,.1); display:flex; align-items:center; justify-content:center; color:hsl(var(--hav-primary)); }
.hav-eqlab__head-ic svg{ width:20px; height:20px; }
.hav-eqlab__head h3{ font-family:var(--hav-font-head); font-size:19px; font-weight:700; color:hsl(var(--hav-secondary)); margin:0; }
.hav-eqlab__list{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:11px 20px; }
.hav-eqlab__list li{ display:flex; align-items:center; gap:9px; font-family:var(--hav-font-body); font-size:13.5px; color:hsl(var(--hav-brand-muted)); }
.hav-eqlab__list li::before{ content:''; width:6px; height:6px; border-radius:50%; background:hsl(var(--hav-primary)); flex-shrink:0; }
.hav-eqlab__note{ text-align:center; font-family:var(--hav-font-head); font-weight:700; font-size:18px; color:hsl(var(--hav-primary)); margin-top:36px; }

/* 5-step process reuse .hav-proc but allow 5 cols */
@media(min-width:768px){ .hav-proc__grid--5{ grid-template-columns:repeat(5,1fr); } }

/* ============================================================
   HOME v3 — Gabe round-3 (Problem icons, Production Partner, When Production Fails)
   ============================================================ */

/* §2 Problem — light dotted bg + 5-icon reality row */
body.hav .hav-intro--reality{ background:hsl(var(--hav-brand-bg)); background-image:radial-gradient(rgba(25,45,112,.07) 1.2px, transparent 1.2px); background-size:24px 24px; }
.hav-intro--reality .hav-intro__media img{ border-radius:22px; }
.hav-intro__stats{ display:flex; flex-wrap:wrap; margin-top:36px; border-top:1px solid hsl(var(--hav-border)); padding-top:30px; }
.hav-intro__stat{ flex:1 1 0; min-width:130px; text-align:center; padding:6px 14px; }
.hav-intro__stat + .hav-intro__stat{ border-left:1px solid hsl(var(--hav-border)); }
.hav-intro__stat-ic{ display:inline-flex; align-items:center; justify-content:center; color:hsl(var(--hav-primary)); margin-bottom:12px; }
.hav-intro__stat-ic svg{ width:30px; height:30px; }
.hav-intro__stat-label{ font-family:var(--hav-font-head); font-weight:700; font-size:14px; line-height:1.35; color:hsl(var(--hav-secondary)); }
@media(max-width:760px){ .hav-intro__stat{ flex:1 1 45%; padding:14px 8px; } .hav-intro__stat:nth-child(odd){ border-left:0; } }

/* §3 Solutions — "A Better Production Partner": 4 cards + image feature panel */
.hav-pp{ padding:88px 24px; background:hsl(var(--hav-brand-bg)); background-image:radial-gradient(rgba(25,45,112,.05) 1.2px, transparent 1.2px); background-size:24px 24px; }
.hav-pp__wrap{ max-width:1240px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.hav-pp__copy h2{ margin:14px 0 18px; }
.hav-pp__lead{ font-family:var(--hav-font-body); font-size:16px; line-height:1.8; color:hsl(var(--hav-brand-muted)); margin:0; }
.hav-pp__cards{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:30px; }
.hav-pp__card{ background:#fff; border:1px solid hsl(var(--hav-border)); border-radius:16px; padding:22px 20px; cursor:pointer; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; text-align:left; }
.hav-pp__card:hover{ transform:translateY(-4px); box-shadow:0 16px 40px rgba(25,45,112,.12); }
.hav-pp__card.is-active{ border-color:hsl(var(--hav-primary)); box-shadow:0 16px 44px rgba(232,25,44,.16); }
.hav-pp__card-ic{ width:50px; height:50px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:hsl(var(--hav-brand-bg2)); margin-bottom:14px; transition:.25s; }
.hav-pp__card-ic svg{ width:24px; height:24px; color:hsl(var(--hav-secondary)); }
.hav-pp__card--accent .hav-pp__card-ic{ background:rgba(232,25,44,.10); }
.hav-pp__card--accent .hav-pp__card-ic svg{ color:hsl(var(--hav-primary)); }
.hav-pp__card h3{ font-family:var(--hav-font-head); font-size:16px; line-height:1.25; color:hsl(var(--hav-secondary)); margin:0 0 9px; }
.hav-pp__card.is-active h3{ color:hsl(var(--hav-primary)); }
.hav-pp__card p{ font-size:13px; color:hsl(var(--hav-brand-muted)); line-height:1.55; margin:0; }
.hav-pp__panel{ position:relative; border-radius:24px; overflow:hidden; box-shadow:0 34px 80px rgba(15,34,64,.24); display:flex; flex-direction:column; min-height:540px; }
.hav-pp__panel-imgwrap{ position:relative; height:340px; overflow:hidden; }
.hav-pp__panel-img{ width:100%; height:100%; object-fit:cover; display:block; transition:opacity .3s ease; }
.hav-pp__panel-arrow{ position:absolute; top:50%; left:-22px; transform:translateY(-50%); width:46px; height:46px; border-radius:50%; background:hsl(var(--hav-secondary)); color:#fff; border:0; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 8px 22px rgba(15,34,64,.3); z-index:3; transition:.2s; }
.hav-pp__panel-arrow:hover{ background:hsl(var(--hav-primary)); }
.hav-pp__panel-arrow svg{ width:20px; height:20px; }
.hav-pp__panel-body{ background:hsl(var(--hav-blue-dark)); color:#fff; padding:30px 32px 36px; flex:1; }
.hav-pp__panel-ic{ width:50px; height:50px; border-radius:50%; background:#fff; display:inline-flex; align-items:center; justify-content:center; margin-bottom:16px; }
.hav-pp__panel-ic svg{ width:24px; height:24px; color:hsl(var(--hav-secondary)); }
.hav-pp__panel-title{ font-family:var(--hav-font-head); font-size:22px; font-weight:700; margin:0 0 10px; color:#fff; }
.hav-pp__panel-desc{ font-size:15px; line-height:1.75; color:rgba(255,255,255,.84); margin:0; }
@media(max-width:980px){ .hav-pp__wrap{ grid-template-columns:1fr; gap:40px; } .hav-pp__panel{ min-height:0; } .hav-pp__panel-arrow{ left:10px; } }
@media(max-width:520px){ .hav-pp__cards{ grid-template-columns:1fr; } }

/* §9 replacement — "When Production Fails, Everyone Notices" (The Cost of Staying Put) */
.hav-prodfail{ position:relative; overflow:hidden; padding:100px 24px; }
.hav-prodfail__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hav-prodfail__ov{ position:absolute; inset:0; z-index:1; background:linear-gradient(100deg, rgba(9,18,38,.95) 0%, rgba(12,28,56,.88) 42%, rgba(15,34,64,.55) 100%); }
.hav-prodfail__wrap{ position:relative; z-index:2; max-width:1240px; margin:0 auto; }
.hav-prodfail__inner{ max-width:700px; }
.hav-prodfail .hav-eyebrow{ color:hsl(var(--hav-primary)); }
.hav-prodfail__title{ font-family:var(--hav-font-head); font-weight:800; color:#fff; font-size:clamp(34px,5vw,52px); line-height:1.08; margin:14px 0 22px; }
.hav-prodfail__title .hl{ color:hsl(var(--hav-primary)); }
.hav-prodfail__sub{ font-family:var(--hav-font-body); font-size:17px; line-height:1.75; color:rgba(255,255,255,.86); margin:0 0 30px; max-width:640px; }
.hav-prodfail__chips{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:34px; }
.hav-prodfail__chip{ display:inline-flex; align-items:center; gap:11px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:100px; padding:9px 22px 9px 10px; color:#fff; font-family:var(--hav-font-head); font-weight:600; font-size:14px; }
.hav-prodfail__chip-ic{ width:30px; height:30px; border-radius:50%; background:hsl(var(--hav-primary)); display:inline-flex; align-items:center; justify-content:center; flex:none; }
.hav-prodfail__chip-ic svg{ width:16px; height:16px; color:#fff; }
.hav-prodfail__badge{ position:absolute; top:42px; right:50px; z-index:2; border:2px solid hsl(var(--hav-primary)); color:#fff; border-radius:12px; padding:10px 18px; font-family:var(--hav-font-head); font-weight:700; letter-spacing:.1em; font-size:15px; display:flex; align-items:center; gap:10px; background:rgba(9,18,38,.45); box-shadow:0 0 24px rgba(232,25,44,.4); }
.hav-prodfail__badge svg{ width:18px; height:18px; color:hsl(var(--hav-primary)); }
@media(max-width:860px){ .hav-prodfail__badge{ display:none; } }

/* Fix: .hav-pp__card is a <button> — keep it white in hover/focus/active (no red fill, no UA button styling) */
body.hav .hav-pp__card{ -webkit-appearance:none; appearance:none; font:inherit; color:inherit; }
body.hav .hav-pp__card,
body.hav .hav-pp__card:hover,
body.hav .hav-pp__card:focus,
body.hav .hav-pp__card:active,
body.hav .hav-pp__card.is-active{ background:#fff; }
body.hav .hav-pp__card:focus{ outline:none; }
body.hav .hav-pp__card:focus-visible{ outline:2px solid hsl(var(--hav-primary)); outline-offset:3px; }

/* §6 "Events That Run Smoothly" — replaces the old Outcome/Risk row */
.hav-runsmooth{ position:relative; background:hsl(var(--hav-blue-dark)); padding:90px 24px; overflow:hidden; }
.hav-runsmooth__wrap{ max-width:1240px; margin:0 auto; display:grid; grid-template-columns:1.05fr .95fr; gap:54px; align-items:center; }
.hav-runsmooth .hav-eyebrow{ color:hsl(var(--hav-primary)); }
.hav-runsmooth__copy h2{ color:#fff; font-family:var(--hav-font-head); font-weight:800; font-size:clamp(30px,4vw,44px); line-height:1.12; margin:14px 0 18px; }
.hav-runsmooth__copy h2 .hl{ color:hsl(var(--hav-primary)); }
.hav-runsmooth__copy > p{ color:rgba(255,255,255,.82); font-size:16px; line-height:1.75; margin:0 0 24px; max-width:560px; }
.hav-runsmooth__list{ list-style:none; margin:0 0 30px; padding:0; display:grid; gap:14px; }
.hav-runsmooth__list li{ display:flex; align-items:center; gap:12px; color:#fff; font-family:var(--hav-font-head); font-weight:600; font-size:15.5px; }
.hav-runsmooth__list-ic{ width:26px; height:26px; border-radius:50%; background:hsl(var(--hav-primary)); display:inline-flex; align-items:center; justify-content:center; flex:none; }
.hav-runsmooth__list-ic svg{ width:15px; height:15px; color:#fff; }
.hav-runsmooth__ctas{ display:flex; flex-wrap:wrap; gap:14px; }
.hav-runsmooth__media img{ width:100%; height:100%; max-height:470px; object-fit:cover; border-radius:22px; box-shadow:0 30px 70px rgba(0,0,0,.42); }
@media(max-width:900px){ .hav-runsmooth__wrap{ grid-template-columns:1fr; gap:36px; } }

/* §4 "Built Around Hospitality — Not Venue Commissions" — text + comparison panel */
.hav-hosp{ padding:90px 24px; background:hsl(var(--hav-brand-bg)); }
.hav-hosp__wrap{ max-width:1240px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:54px; align-items:center; }
.hav-hosp__copy h2{ margin:14px 0 16px; }
.hav-hosp__copy > p{ color:hsl(var(--hav-brand-muted)); font-size:16px; line-height:1.75; margin:0 0 20px; }
.hav-hosp__copy h3{ font-family:var(--hav-font-head); font-size:20px; color:hsl(var(--hav-secondary)); margin:0 0 10px; }
.hav-hosp__note{ display:flex; align-items:flex-start; gap:12px; background:#fff; border:1px solid hsl(var(--hav-border)); border-left:4px solid hsl(var(--hav-primary)); border-radius:12px; padding:16px 18px; margin-top:10px; font-family:var(--hav-font-head); font-weight:600; font-size:14.5px; color:hsl(var(--hav-secondary)); line-height:1.55; }
.hav-hosp__note svg{ width:22px; height:22px; color:hsl(var(--hav-primary)); flex:none; }
.hav-hosp__table{ background:#fff; border:1px solid hsl(var(--hav-border)); border-radius:20px; overflow:hidden; box-shadow:0 24px 60px rgba(25,45,112,.10); }
.hav-hosp__thead{ display:grid; grid-template-columns:1fr 1fr; }
.hav-hosp__thead > div{ padding:18px 20px; font-family:var(--hav-font-head); font-weight:700; font-size:14px; }
.hav-hosp__thead .t-typical{ background:hsl(var(--hav-brand-bg2)); color:hsl(var(--hav-brand-muted)); }
.hav-hosp__thead .t-hav{ background:hsl(var(--hav-secondary)); color:#fff; }
.hav-hosp__row{ display:grid; grid-template-columns:1fr 1fr; border-top:1px solid hsl(var(--hav-border)); }
.hav-hosp__cell{ padding:15px 20px; display:flex; align-items:center; gap:10px; font-size:14px; line-height:1.4; }
.hav-hosp__cell--typical{ color:hsl(var(--hav-brand-muted)); }
.hav-hosp__cell--hav{ color:hsl(var(--hav-secondary)); font-weight:600; border-left:1px solid hsl(var(--hav-border)); }
.hav-hosp__cell svg{ width:19px; height:19px; flex:none; }
.hav-hosp__cell--typical svg{ color:#9aa3b2; }
.hav-hosp__cell--hav svg{ color:#16a34a; }
@media(max-width:900px){ .hav-hosp__wrap{ grid-template-columns:1fr; gap:34px; } }

/* Signal/system flow diagram (Audio page etc.) */
.hav-flow{ padding:74px 24px; background:hsl(var(--hav-brand-bg2)); }
.hav-flow__chain{ max-width:1140px; margin:0 auto; display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:center; gap:6px; }
.hav-flow__node{ display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; width:104px; }
.hav-flow__ic{ width:62px; height:62px; border-radius:16px; background:#fff; border:1px solid hsl(var(--hav-border)); display:flex; align-items:center; justify-content:center; box-shadow:0 8px 20px rgba(25,45,112,.08); }
.hav-flow__ic svg{ width:28px; height:28px; color:hsl(var(--hav-secondary)); }
.hav-flow__label{ font-family:var(--hav-font-head); font-weight:600; font-size:12.5px; color:hsl(var(--hav-secondary)); line-height:1.3; }
.hav-flow__arrow{ color:hsl(var(--hav-primary)); display:flex; align-items:center; padding-top:18px; }
.hav-flow__arrow svg{ width:22px; height:22px; }
@media(max-width:780px){ .hav-flow__chain{ flex-direction:column; } .hav-flow__arrow{ transform:rotate(90deg); padding:0; } .hav-flow__node{ width:auto; } }

/* Platform-logo strip (Video/Livestream/Hybrid) */
.hav-plats{ padding:56px 24px; background:#fff; text-align:center; }
.hav-plats__lead{ font-family:var(--hav-font-body); font-size:15px; color:hsl(var(--hav-brand-muted)); max-width:720px; margin:0 auto; }
.hav-plats__row{ display:flex; flex-wrap:wrap; gap:18px 42px; justify-content:center; align-items:center; max-width:920px; margin:24px auto 0; }
.hav-plats__logo{ font-family:var(--hav-font-head); font-weight:700; font-size:21px; color:hsl(var(--hav-secondary)); opacity:.7; letter-spacing:.01em; }

/* LED "VS" quick comparison panel */
.hav-vs{ padding:20px 0; }
.hav-vs__panel{ max-width:1100px; margin:0 auto; background:#0F2252; border-radius:22px; padding:34px 30px; display:grid; grid-template-columns:1fr auto 1fr; gap:24px; align-items:center; box-shadow:0 24px 60px rgba(15,34,64,.2); }
.hav-vs__col h4{ font-family:var(--hav-font-head); font-size:13px; letter-spacing:.12em; text-transform:uppercase; margin:0 0 16px; }
.hav-vs__col--win h4{ color:hsl(var(--hav-primary)); } .hav-vs__col--lose h4{ color:rgba(255,255,255,.55); }
.hav-vs__col ul{ list-style:none; margin:0; padding:0; display:grid; gap:11px; }
.hav-vs__col li{ display:flex; align-items:flex-start; gap:9px; color:#fff; font-size:14px; line-height:1.4; }
.hav-vs__col--lose li{ color:rgba(255,255,255,.6); }
.hav-vs__col li svg{ width:17px; height:17px; flex:none; margin-top:2px; }
.hav-vs__col--win li svg{ color:#22c55e; } .hav-vs__col--lose li svg{ color:rgba(255,255,255,.4); }
.hav-vs__badge{ width:54px; height:54px; border-radius:50%; background:hsl(var(--hav-primary)); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--hav-font-head); font-weight:800; font-size:15px; }
@media(max-width:760px){ .hav-vs__panel{ grid-template-columns:1fr; } .hav-vs__badge{ margin:0 auto; } }

/* 3x3 example gallery */
.hav-gallery{ padding:64px 24px; }
.hav-gallery__head{ text-align:center; max-width:760px; margin:0 auto 36px; }
.hav-gallery__grid{ max-width:1120px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.hav-gallery__grid img{ width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:12px; display:block; }
@media(max-width:700px){ .hav-gallery__grid{ grid-template-columns:1fr 1fr; } }

/* Virtual scenes showcase (Livestream) */
.hav-scenes{ position:relative; background:#0F2252; padding:84px 24px; }
.hav-scenes__wrap{ max-width:1240px; margin:0 auto; display:grid; grid-template-columns:1fr 1.1fr; gap:50px; align-items:center; }
.hav-scenes__copy h2{ color:#fff; font-family:var(--hav-font-head); font-weight:800; font-size:clamp(26px,3.4vw,38px); line-height:1.15; margin:14px 0 16px; }
.hav-scenes__copy h2 .hl{ color:hsl(var(--hav-primary)); }
.hav-scenes__copy > p{ color:rgba(255,255,255,.8); font-size:15.5px; line-height:1.7; margin:0 0 26px; }
.hav-scenes__feat{ display:grid; gap:18px; }
.hav-scenes__feat-item{ display:flex; gap:14px; align-items:flex-start; }
.hav-scenes__feat-ic{ width:44px; height:44px; border-radius:11px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); display:flex; align-items:center; justify-content:center; flex:none; }
.hav-scenes__feat-ic svg{ width:22px; height:22px; color:hsl(var(--hav-primary)); }
.hav-scenes__feat-item h4{ font-family:var(--hav-font-head); color:#fff; font-size:16px; margin:0 0 4px; }
.hav-scenes__feat-item p{ color:rgba(255,255,255,.72); font-size:13.5px; line-height:1.55; margin:0; }
.hav-scenes__screen{ border-radius:16px; overflow:hidden; box-shadow:0 30px 70px rgba(0,0,0,.45); position:relative; }
.hav-scenes__screen img{ width:100%; display:block; aspect-ratio:16/10; object-fit:cover; }
.hav-scenes__screen-tag{ position:absolute; top:14px; right:14px; background:rgba(15,34,64,.8); border:1px solid rgba(255,255,255,.2); color:#fff; font-family:var(--hav-font-head); font-size:11px; font-weight:700; letter-spacing:.08em; padding:6px 12px; border-radius:8px; }
.hav-scenes__thumbs{ display:flex; gap:8px; margin-top:10px; }
.hav-scenes__thumbs img{ flex:1; aspect-ratio:1; object-fit:cover; border-radius:8px; }
@media(max-width:900px){ .hav-scenes__wrap{ grid-template-columns:1fr; gap:34px; } }

/* Fix: prevent CSS grid/flex blowout from images (min-width:auto default) causing horizontal overflow */
.hav-scenes__wrap > *, .hav-pp__wrap > *, .hav-hosp__wrap > *, .hav-runsmooth__wrap > *, .hav-flow__node{ min-width:0; }
.hav-scenes__screen, .hav-scenes__screen img, .hav-scenes__thumbs img{ max-width:100%; }
.hav-scenes__thumbs{ min-width:0; }
.hav-gallery__grid{ grid-template-columns:repeat(3,minmax(0,1fr)); }
@media(max-width:700px){ .hav-gallery__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
html, body{ overflow-x:hidden; }

/* ===== Gabe 13-June Home fixes ===== */
/* Wider page width site-wide */
body.hav .hav-hero2__wrap, body.hav .hav-intro__grid, body.hav .hav-pp__wrap, body.hav .hav-hosp__wrap,
body.hav .hav-runsmooth__wrap, body.hav .hav-proc__head, body.hav .hav-proc__grid, body.hav .hav-solutions__head,
body.hav .hav-solutions__grid, body.hav .hav-testimonials__head, body.hav .hav-testimonials__grid,
body.hav .hav-cases__wrap, body.hav .hav-faq__head, body.hav .hav-faq__list, body.hav .hav-blog__head,
body.hav .hav-blog__grid, body.hav .hav-finalcta__wrap{ max-width:1380px; }
/* Hero: 3 stat blocks moved down */
body.hav .hav-hero2__stats{ align-self:end; }
/* Intro: video placeholder play button */
.hav-intro__video{ position:relative; }
.hav-intro__play{ position:absolute; inset:0; margin:auto; width:74px; height:74px; border-radius:50%; background:hsl(var(--hav-primary)); display:flex; align-items:center; justify-content:center; box-shadow:0 12px 34px rgba(232,25,44,.42); cursor:pointer; }
.hav-intro__play svg{ width:30px; height:30px; color:#fff; margin-left:4px; }
/* Events: darker blue overlay */
body.hav #event-types .hav-solutions__card-overlay{ background:linear-gradient(180deg, rgba(9,18,38,.30) 0%, rgba(9,18,38,.88) 100%) !important; }
/* WHY chart: Typical In-House AV header red, Honest AV navy; Typical cells red */
body.hav .hav-hosp__thead .t-typical{ background:hsl(var(--hav-primary)) !important; color:#fff !important; }
body.hav .hav-hosp__cell--typical{ color:hsl(var(--hav-primary)); }
body.hav .hav-hosp__cell--typical svg{ color:hsl(var(--hav-primary)); }
/* WHY + Plan read as one continuous section */
body.hav #why{ padding-bottom:22px !important; }
body.hav #process{ padding-top:22px !important; }
/* Final CTA background picture */
body.hav .hav-finalcta--bg{ position:relative; overflow:hidden; }
.hav-finalcta__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.hav-finalcta__ov{ position:absolute; inset:0; background:linear-gradient(120deg, rgba(15,34,64,.92), rgba(12,28,56,.86)); z-index:1; }
body.hav .hav-finalcta--bg .hav-finalcta__wrap{ position:relative; z-index:2; }

/* Wider page width — extend to EP/AV/sub-page component wraps (site-wide) */
body.hav .hav-prob2__grid, body.hav .hav-guide__grid, body.hav .hav-sol__wrap, body.hav .hav-tcats__row,
body.hav .hav-peep__row, body.hav .hav-eqlab__grid, body.hav .hav-etypes__grid, body.hav .hav-etypes__head,
body.hav .hav-benefits__row, body.hav .hav-pillsep__row, body.hav .hav-flow__chain, body.hav .hav-plats__row,
body.hav .hav-scenes__wrap, body.hav .hav-vs__panel, body.hav .hav-gallery__grid, body.hav .hav-ctabar > div,
body.hav .hav-peep__head, body.hav .hav-tcats, body.hav .hav-sol__grid{ max-width:1380px; }
body.hav .hav-tcats__row, body.hav .hav-plats__row{ margin-left:auto; margin-right:auto; }
