/* ===========================================================
   BIG STAR RVs — component & section styles
   =========================================================== */

/* ---------- Promo bar ---------- */
.promobar{background:linear-gradient(90deg,var(--red-700,#b3151d),var(--red,#d81f27));color:#fff}
.promobar .wrap{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding:8px 20px;font-family:"Saira Condensed",sans-serif;font-weight:700;font-size:13.5px;letter-spacing:.08em;text-align:center}
.promobar__msg{line-height:1.35}
.promobar__cta{color:#fff;text-decoration:none;white-space:nowrap;border-bottom:2px solid rgba(255,255,255,.55);padding-bottom:1px;transition:border-color .15s}
.promobar__cta:hover{border-color:#fff}
@media (max-width:700px){.promobar .wrap{flex-direction:column;font-size:11.5px;letter-spacing:.06em;gap:4px;padding:8px 14px}.promobar__msg{line-height:1.4}.promobar__cta{min-height:24px;display:inline-flex;align-items:center;gap:4px}}

/* ---------- Header ---------- */
.topbar{
  background:linear-gradient(90deg,var(--navy-900),var(--navy-800));
  border-bottom:1px solid var(--hair);
  font-size:.84rem;color:var(--muted);
}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  min-height:40px;padding-block:6px}
.topbar a{color:var(--muted);transition:color .2s}
.topbar a:hover{color:var(--blue-bright)}
.topbar__set{display:flex;align-items:center;gap:1.4rem}
.topbar__set svg{width:14px;height:14px;vertical-align:-2px;margin-right:.4em;color:var(--blue)}
.topbar__phone{font-weight:700;color:#fff !important;letter-spacing:.01em}
.topbar__phone svg{color:var(--blue-bright)}
.topbar__phone:hover{color:var(--blue-bright) !important}
@media (max-width:600px){.topbar__set a:not(.topbar__phone){display:none}}
@media (max-width:760px){.topbar__set--hide{display:none}}

header.site{position:sticky;top:0;z-index:60;
  background:rgba(7,14,34,.82);backdrop-filter:blur(14px) saturate(140%);
  border-bottom:1px solid var(--hair);
  transition:padding .28s var(--ease),background .28s,box-shadow .28s}
header.site.shrink{background:rgba(6,12,28,.94);box-shadow:0 18px 40px -28px rgba(0,0,0,.9)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1.4rem;
  padding-block:16px;transition:padding .28s var(--ease)}
header.site.shrink .nav{padding-block:9px}
.brand img{height:54px;width:auto;transition:height .28s var(--ease)}
header.site.shrink .brand img{height:44px}
.nav__links{display:flex;align-items:center;gap:6px;margin:0;padding:0;list-style:none}
.nav__links a{
  font-family:var(--ff-disp);font-weight:500;text-transform:uppercase;letter-spacing:.01em;
  font-size:.9rem;color:var(--ink);padding:.6em .62em;border-radius:6px;position:relative;
  white-space:nowrap;transition:color .2s,background .2s;
}
.nav__links a::after{content:"";position:absolute;left:.7em;right:.7em;bottom:.34em;height:2px;
  background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .24s var(--ease)}
.nav__links a:hover{color:#fff}
.nav__links a:hover::after,.nav__links a.active::after{transform:scaleX(1)}

/* ---- Dropdowns ---- */
.nav__links{position:relative}
.has-sub{position:relative}
.nav__top{display:inline-flex;align-items:center;gap:.32em}
.caret{width:14px;height:14px;flex:none;transition:transform .24s var(--ease)}
.has-sub:hover .caret{transform:rotate(180deg)}
.sub-toggle{display:none}
.subnav{position:absolute;top:calc(100% + 10px);left:0;min-width:230px;margin:0;padding:8px;
  list-style:none;background:var(--navy-850);border:1px solid var(--hair-strong);border-radius:11px;
  box-shadow:0 26px 60px -24px rgba(0,0,0,.85);opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s;z-index:60}
.subnav::before{content:"";position:absolute;top:-10px;left:0;right:0;height:10px}
.has-sub:hover>.subnav,.has-sub:focus-within>.subnav{opacity:1;visibility:visible;transform:translateY(0)}
.subnav li{margin:0}
.subnav a{display:block;width:100%;padding:.62em .8em;border-radius:7px;white-space:nowrap;
  font-size:.92rem;letter-spacing:.01em}
.subnav a::after{display:none}
.subnav a:hover{background:rgba(42,147,255,.14);color:#fff}
/* ---- nested 3rd-level dropdown ---- */
.subnav .has-sub--nested{position:relative}
.subnav a.subnav__top{display:flex;align-items:center;justify-content:space-between;gap:.4em}
.caret-r{width:13px;height:13px;flex:none;transition:transform .2s var(--ease)}
.subnav--nested{position:absolute;top:-9px;left:calc(100% + 6px);min-width:208px;padding:8px;margin:0;
  list-style:none;background:var(--navy-850);border:1px solid var(--hair-strong);border-radius:11px;
  box-shadow:0 26px 60px -24px rgba(0,0,0,.85);opacity:0;visibility:hidden;transform:translateX(8px);
  transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s;z-index:61}
.subnav--nested::before{content:"";position:absolute;top:0;left:-8px;width:10px;height:100%}
.has-sub--nested:hover>.subnav--nested,.has-sub--nested:focus-within>.subnav--nested{opacity:1;visibility:visible;transform:translateX(0)}
.has-sub--nested:hover>.subnav__top{background:rgba(42,147,255,.14);color:#fff}
.has-sub--nested:hover>.subnav__top .caret-r{transform:translateX(2px)}
.nav__cta{display:flex;align-items:center;gap:.7rem}
.nav__phone{font-family:var(--ff-disp);font-weight:700;font-size:1.06rem;letter-spacing:.01em;
  color:#fff;display:flex;align-items:center;gap:.45rem;white-space:nowrap}
.nav__phone svg{width:18px;height:18px;color:var(--blue-bright)}
.nav__phone small{display:block;font-family:var(--ff-body);font-weight:500;font-size:.62rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2);line-height:1}
.burger{display:none;background:rgba(255,255,255,.05);border:1px solid var(--hair-strong);
  border-radius:8px;width:46px;height:42px;padding:0;align-items:center;justify-content:center}
.burger span{display:block;width:20px;height:2px;background:#fff;position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:20px;height:2px;
  background:#fff;transition:transform .25s var(--ease),top .25s}
.burger span::before{top:-6px}.burger span::after{top:6px}
.nav-open .burger span{background:transparent}
.nav-open .burger span::before{top:0;transform:rotate(45deg)}
.nav-open .burger span::after{top:0;transform:rotate(-45deg)}

@media (max-width:1240px){
  .nav__links{position:fixed;inset:0 0 0 auto;width:min(340px,86vw);flex-direction:column;
    align-items:stretch;gap:.2rem;background:var(--navy-900);border-left:1px solid var(--hair);
    padding:96px 22px 22px;transform:translateX(105%);transition:transform .34s var(--ease);z-index:55}
  .nav-open .nav__links{transform:none;box-shadow:-30px 0 80px -20px rgba(0,0,0,.8);overflow-y:auto}
  .nav__links a{font-size:1.12rem;padding:.85em .6em;border-bottom:1px solid var(--hair)}
  .nav__links a::after{display:none}
  /* dropdowns become tap-accordions in the drawer */
  .has-sub{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between}
  .has-sub>.nav__top{flex:1}
  .has-sub .caret{display:none}
  .sub-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
    background:transparent;border:0;color:var(--blue-bright);border-bottom:1px solid var(--hair)}
  .sub-toggle svg{width:20px;height:20px;transition:transform .25s var(--ease)}
  .sub-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
  .subnav{position:static;opacity:1;visibility:visible;transform:none;width:100%;flex-basis:100%;
    background:transparent;border:0;box-shadow:none;padding:0;max-height:0;overflow:hidden;
    transition:max-height .3s var(--ease)}
  .subnav a{padding:.7em .6em .7em 1.4em;border-bottom:1px solid var(--hair);color:var(--muted-2);font-size:1rem}
  /* nested level inside the drawer */
  .subnav .has-sub--nested{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;width:100%}
  .subnav a.subnav__top{flex:1;padding-left:1.4em}
  .subnav .has-sub--nested>.sub-toggle{border-bottom:1px solid var(--hair)}
  .caret-r{display:none}
  .subnav--nested{position:static;opacity:1;visibility:visible;transform:none;width:100%;flex-basis:100%;
    background:transparent;border:0;box-shadow:none;padding:0;max-height:0;overflow:hidden;transition:max-height .3s var(--ease)}
  .subnav--nested a{padding-left:2.6em}
  .burger{display:inline-flex}
  .nav__phone small{display:none}
  .nav-scrim{position:fixed;inset:0;background:rgba(4,8,20,.6);opacity:0;visibility:hidden;
    transition:opacity .3s;z-index:54}
  .nav-open .nav-scrim{opacity:1;visibility:visible}
}
@media (max-width:560px){
  .nav__cta .btn{display:none}
  .nav__phone{font-size:1.02rem}
}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;background:var(--navy-950)}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg .ph{position:absolute;inset:0;border:0;border-radius:0}
.hero__bg .ph::after{align-self:flex-end;margin:0 0 18px 18px}
.hero__bg::after{content:"";position:absolute;inset:0;
  background:
    linear-gradient(100deg,var(--navy-950) 18%,rgba(7,14,34,.86) 46%,rgba(7,14,34,.35) 74%,rgba(7,14,34,.62)),
    linear-gradient(0deg,var(--navy-950),transparent 42%)}
.hero__grid{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:48px;
  align-items:center;padding-block:clamp(56px,8vw,104px) clamp(64px,8vw,96px)}
.hero__eyebrow{margin-bottom:1.4rem}
.hero h1{margin-bottom:2rem;font-size:clamp(1.85rem,3.2vw,3rem)}
.hero h1 .ln{display:block}
.hero__sub{font-size:clamp(1.06rem,1.5vw,1.3rem);color:var(--muted);max-width:54ch;margin-bottom:.9rem}
.hero__micro{display:flex;align-items:center;gap:.6rem;color:var(--muted-2);font-size:.92rem;margin:1.6rem 0 2rem}
.hero__micro svg{width:18px;height:18px;color:var(--blue);flex:none}
.hero__actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-bottom:2.2rem}
.hero__stats{display:flex;gap:clamp(1.4rem,3vw,2.6rem);flex-wrap:wrap}
.hero__stats .st b{font-family:var(--ff-disp);font-weight:700;font-size:2rem;color:#fff;display:block;line-height:1}
.hero__stats .st span{font-size:.82rem;color:var(--muted-2);text-transform:uppercase;letter-spacing:.1em}

/* hero quote card */
.qcard{
  background:linear-gradient(165deg,rgba(20,42,82,.86),rgba(8,16,38,.92));
  border:1px solid var(--hair-strong);border-radius:var(--r-lg);
  padding:26px;box-shadow:0 40px 90px -50px rgba(0,0,0,1),inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(6px);
}
.qcard h3{font-size:1.5rem;margin-bottom:.3rem}
.qcard p{color:var(--muted);font-size:.94rem;margin:.2rem 0 1.2rem}
.qcard .field{margin-bottom:.7rem}
.qcard label{font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted-2);
  display:block;margin-bottom:.34rem;font-weight:600}
.qcard input,.qcard select{width:100%;background:rgba(5,10,24,.6);border:1px solid var(--hair-strong);
  border-radius:8px;color:#fff;padding:.7em .8em;font-family:inherit;font-size:.95rem;transition:border-color .2s,box-shadow .2s}
.qcard input::placeholder{color:var(--muted-2)}
.qcard input:focus,.qcard select:focus{outline:none;border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(42,147,255,.2)}
.qcard .row{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.qcard .btn{width:100%;margin-top:.5rem}
.qcard__foot{font-size:.78rem;color:var(--muted-2);text-align:center;margin-top:.8rem}

@media (max-width:980px){
  .hero__grid{grid-template-columns:1fr;gap:34px}
  .qcard{max-width:520px}
}

/* ---------- Action cards (4) ---------- */
.actions{margin-top:-44px;position:relative;z-index:5}
.actions__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.acard{padding:26px 24px 24px;display:flex;flex-direction:column;min-height:236px}
.acard__ic{width:52px;height:52px;border-radius:12px;display:grid;place-items:center;margin-bottom:16px;
  background:linear-gradient(165deg,rgba(42,147,255,.2),rgba(42,147,255,.04));
  border:1px solid var(--hair-strong)}
.acard__ic svg{width:26px;height:26px;color:var(--blue-bright)}
.acard.red .acard__ic{background:linear-gradient(165deg,rgba(224,31,43,.22),rgba(224,31,43,.05))}
.acard.red .acard__ic svg{color:var(--red-bright)}
.acard h3{font-size:1.34rem;margin-bottom:.5rem}
.acard p{color:var(--muted);font-size:.92rem;margin:0 0 1.1rem}
.acard .txtlink{margin-top:auto}
.acard__no{position:absolute;top:18px;right:22px;font-family:var(--ff-disp);font-weight:700;
  font-size:2.4rem;color:rgba(140,168,214,.1);line-height:1}
@media (max-width:980px){.actions__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.actions__grid{grid-template-columns:1fr}.actions{margin-top:-28px}}

/* ---------- Trust bar ---------- */
.trust{background:linear-gradient(90deg,var(--navy-850),var(--navy-800));
  border-block:1px solid var(--hair)}
.trust__vp{overflow:hidden;padding-block:22px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.trust__track{display:flex;align-items:center;width:max-content;animation:trust-scroll 38s linear infinite}
.trust__vp:hover .trust__track{animation-play-state:paused}
.trust__track .ti{flex:none;margin:0 30px}
@keyframes trust-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.trust__track{animation:none}.trust__vp{overflow-x:auto}}
.trust .ti{display:flex;align-items:center;gap:.7rem;font-family:var(--ff-disp);font-weight:600;
  text-transform:uppercase;letter-spacing:.04em;font-size:.95rem;color:var(--ink)}
.trust .ti svg{width:24px;height:24px;color:var(--blue-bright);flex:none}
