/* =====================================================================
   Flasher Fleet Solutions — V2 (dark / industrial redesign)
   Clone of shop63805.wixsite.com/my-site-3
   ===================================================================== */

:root{
  --black:    #0a0a0a;
  --black-2:  #111214;
  --panel:    #16181b;
  --yellow:   #ffcb05;
  --red:      #e2231a;
  --red-dark: #b81610;
  --white:    #ffffff;
  --gray:     #b6b9bf;
  --gray-dim: #8a8d93;
  --line:     #2a2d31;
  --container:99%;
  --fdisp:    'Oswald', 'Barlow Condensed', sans-serif;
  --fbody:    'Inter', system-ui, sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--black);color:var(--white);
  font-family:var(--fbody);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
h1,h2,h3,h4{margin:0;line-height:1.05;}
ul{margin:0;padding:0;list-style:none;}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px;}





/*CTA color changing*/

span.shutter-cta__label:hover {
    color: #fff;
}

.v2-quotecta__btn, a.btn.btn-red, .btn.btn-red {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 18px 46px;
    font-size: 15px;
}



/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;
  font-family:var(--fdisp);font-weight:600;text-transform:uppercase;letter-spacing:1.5px;
  font-size:13px;padding:14px 28px;border:1px solid var(--white);background:transparent;color:#fff;
  transition:.2s;
}
.btn:hover{background:var(--red);border-color:var(--red);color:#fff;}
.btn-red{background:var(--red);border-color:var(--red);color:#fff;}
.btn-red:hover{background:var(--red-dark);border-color:var(--red-dark);}
.btn-yellow{background:var(--yellow);border-color:var(--yellow);color:#000;}
.btn-yellow:hover{background:#fff;border-color:#fff;}

/* tiny index/section tag */
.tag{
  display:inline-block;background:var(--yellow);color:#000;font-family:var(--fdisp);font-weight:700;
  font-size:12px;letter-spacing:2px;text-transform:uppercase;padding:4px 12px;margin-bottom:18px;
}
.tag-red{background:var(--red);color:#fff;}

/* ---------- header ---------- */
.v2-header{
  position:fixed;top:0;left:0;right:0;z-index:100;background:#000;
  border-bottom:1px solid var(--line);
}
.v2-header .inner{display:flex;align-items:center;justify-content:space-between;height:96px;gap:20px;}
.v2-logo{display:flex;align-items:center;gap:10px;}
.v2-logo img{height:56px;width:auto;}
.v2-logo__img{height:56px;width:auto;display:block;}
.v2-logo .wordmark{font-family:var(--fdisp);font-weight:700;letter-spacing:1px;text-transform:uppercase;font-size:18px;color:#fff;line-height:1;}
.v2-logo .wordmark span{color:var(--yellow);}
.v2-nav{display:flex;align-items:center;gap:38px;margin-left:auto;}
.v2-nav a{font-family:var(--fdisp);font-weight:600;text-transform:uppercase;letter-spacing:1.5px;font-size:20px;color:#dcdcdc;transition:color .2s;white-space:nowrap;}
.v2-nav a:hover,.v2-nav a.active{color:var(--yellow);}
.v2-nav a.btn{font-size:16px;padding:14px 26px !important;color:#fff;}
.v2-nav a.btn:hover{color:#fff;}
.v2-burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px;}
.v2-burger span{width:24px;height:2px;background:#fff;}

/* ---------- locations dropdown ---------- */
.v2-nav .has-dropdown{position:relative;display:inline-flex;align-items:center;}
.v2-nav .has-dropdown > a{display:inline-flex;align-items:center;gap:6px;}
.v2-nav .caret{font-size:.7em;line-height:1;transition:transform .2s;}
.v2-nav .has-dropdown:hover .caret{transform:rotate(180deg);}
.v2-nav .dropdown{
  position:absolute;top:100%;left:0;min-width:210px;
  display:flex;flex-direction:column;gap:0;
  background:#000;border:1px solid var(--line);border-top:2px solid var(--yellow);
  padding:6px 0;margin-top:18px;
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s;
  z-index:120;
}
/* hover bridge so the menu doesn't close in the gap between trigger and panel */
.v2-nav .has-dropdown::after{content:"";position:absolute;top:100%;left:0;right:0;height:24px;}
.v2-nav .has-dropdown:hover .dropdown,
.v2-nav .has-dropdown:focus-within .dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.v2-nav .dropdown a{
  display:block;padding:10px 20px;font-size:15px;letter-spacing:1px;
  color:#dcdcdc;white-space:nowrap;
}
.v2-nav .dropdown a:hover{color:var(--yellow);background:rgba(255,203,5,.06);}

/* ---------- hero ---------- */
.v2-hero{background:#000;}
/* black title band */
.v2-hero-bar{background:#000;padding:120px 0 24px;}
.v2-hero-title{
  font-family:'Inter',sans-serif;font-weight:900;color:#E4BC11;
  text-transform:uppercase;font-size:clamp(1.4rem,3.85vw,54px);line-height:1.05;letter-spacing:-1px;white-space:nowrap;
}
/* full-bleed image with overlaid bottom content */
.v2-hero-media{
  position:relative;min-height:78vh;display:flex;align-items:flex-end;
  padding-bottom:44px;background-color:#000;overflow:hidden;
  background-position:center;background-size:cover;background-repeat:no-repeat;
}
/* full-bleed autoplay hero video sitting behind the overlaid bottom content */
.v2-hero-video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  pointer-events:none;background:#000;
}
.v2-hero-media .container{position:relative;z-index:1;}
/* mobile-only hero overlay (badge + tagline top-left, CTA bottom-left) — hidden on desktop */
.v2-hero-mobile{display:none;}
.v2-hero-badge{
  align-self:flex-start;background:var(--red);color:#fff;
  font-family:'Inter',sans-serif;font-weight:900;text-transform:uppercase;
  font-size:13px;letter-spacing:.5px;line-height:1;padding:8px 12px;border-radius:2px;
}
.v2-hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;width:100%;}
.v2-hero-left{max-width:560px;}
.v2-hero-sub{
  font-family:'Inter',sans-serif;font-weight:900;color:#fff;text-transform:uppercase;
  font-size:clamp(24px,5vw,40px);line-height:1;margin-bottom:0;
  background:rgba(0,0,0,.55);padding:24px 26px;max-width:528px;
  display:flex;align-items:center;min-height:144px;
}
.v2-hero-redbox{background:var(--red);padding:22px 28px;max-width:528px;}
.v2-hero-redbox p{
  font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;color:#000;
  font-size:clamp(16px,2.4vw,22px);line-height:1.32;margin:0;
}
/* Learn More — Wix-style "Shutters" reveal (JS-driven, staggered slats) */
.shutter-cta{
  --sc-bg:#000;                  /* button fill  */
  --sc-text:#fdbf12;             /* amber text   */
  --sc-w:365.41px;               /* width        */
  --sc-h:134.45px;               /* height       */
  --sc-ease:cubic-bezier(0.22,1,0.36,1);
  position:relative;display:inline-block;
  width:var(--sc-w);max-width:100%;height:var(--sc-h);
  text-decoration:none;cursor:pointer;outline:none;
  /* black backplate fills any sub-pixel seams between slats once revealed */
  background-color:transparent;transition:background-color 0s linear 1.85s;
}
.shutter-cta:focus-visible{box-shadow:0 0 0 3px var(--sc-text),0 0 0 6px rgba(0,0,0,.45);}
.shutter-cta__slats{position:absolute;inset:0;display:flex;overflow:hidden;z-index:1;}
.shutter-cta__slat{
  flex:1 1 0;background:var(--sc-bg);
  transform:scaleX(0);transform-origin:center;
  transition:transform var(--sc-dur,650ms) var(--sc-ease);
  transition-delay:calc(var(--d) * var(--sc-stagger,45ms));
  will-change:transform;
}
/* single crisp label on top — never sliced, so no broken letters or seams */
.shutter-cta__label{
  position:absolute;inset:0;z-index:2;
  display:flex;align-items:center;justify-content:center;gap:10px;
  color:var(--sc-text);
  font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;
  font-size:clamp(18px,2.4vw,24px);line-height:1;letter-spacing:1.5px;
  text-transform:uppercase;white-space:nowrap;user-select:none;
  opacity:0;transition:opacity .4s ease 1.6s;
}
.shutter-cta__label svg{width:1.05em;height:1.05em;flex:none;}
/* settle slightly >1 so adjacent black slats overlap — kills the seam line */
.shutter-cta.is-closed .shutter-cta__slat{transform:scaleX(1.08);}
.shutter-cta.is-closed .shutter-cta__label{opacity:1;}
.shutter-cta.is-closed{background-color:var(--sc-bg);}

/* ---- hero reveal / shutter animations ---- */
@keyframes ffsRevealLeft{
  from{-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0);}
  to{-webkit-clip-path:inset(0 0 0 0);clip-path:inset(0 0 0 0);}
}
.anim-reveal{animation:ffsRevealLeft 1.2s cubic-bezier(.22,.61,.36,1) both;}
@media (prefers-reduced-motion:reduce){
  .anim-reveal{animation:none;}
  .shutter-cta,.shutter-cta__slat,.shutter-cta__label{transition:none;}
  .shutter-cta__slat{transform:scaleX(1);}
  .shutter-cta__label{opacity:1;}
}

/* ---------- section label divider ---------- */
.v2-divider{
  background-color:#000;text-align:center;padding:64px 0;
  background-position:center;background-size:cover;background-repeat:no-repeat;
}
.v2-divider h2{font-family:'Inter',sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:4px;font-size:clamp(28px,5vw,42px);color:#fff;}

/* ---------- service rows ---------- */
.v2-service{
  position:relative;background:var(--black);
  min-height:1080px;display:flex;align-items:center;padding:80px 0;
}
.v2-service .row{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;width:100%;}
.v2-service .row.reverse .text{order:2;}
/* 001 / 002 … tag — flush to the left viewport edge, near the top */
.v2-service .tag{
  position:absolute;left:0;top:56px;margin:0;
  display:inline-flex;align-items:center;
  width:145.67px;height:32.06px;padding:0 18px;
  background:var(--yellow);color:#000;
  font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;font-size:24px;line-height:31px;letter-spacing:1px;
}
.v2-service .text h2{font-family:'Inter',sans-serif;font-weight:900;text-transform:uppercase;font-size:clamp(2.6rem,6vw,78px);line-height:1;letter-spacing:-1px;margin-bottom:26px;color:#fff;}
.v2-service .text p{font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;color:#fff;font-size:clamp(18px,2.4vw,27px);line-height:1.3;margin:0 0 34px;max-width:620px;}
.v2-service .media{position:relative;display:flex;justify-content:flex-end;perspective:1200px;}
.v2-service .media img,.v2-service .media video{width:100%;max-width:890px;object-fit:cover;border:1px solid var(--line);display:block;}
/* portrait media (e.g. Amber Market video) */
.v2-service .media--tall .tilt-rotate{max-width:588px;margin-left:auto;}
.v2-service .media--tall video,.v2-service .media--tall img{aspect-ratio:588 / 755;}
/* portrait media aspect ratio scales with viewport width */
@media (max-width:1600px){
  .v2-service .media--tall video,.v2-service .media--tall img{aspect-ratio:588 / 660;}
}
@media (min-width:1601px){
  .v2-service .media--tall video,.v2-service .media--tall img{aspect-ratio:588 / 490;}
}

/* dotted texture band (same image as behind the UPFITTING heading) */
.dot-band{height:160px;background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;}

/* wipe text reveal — animation ONLY (font/size/color stay on the element).
   Hidden state is gated behind .is-armed, which JS adds — so if JS never runs
   the text stays fully visible instead of clipped to black. */
.reveal-wipe.is-armed{
  clip-path:var(--rw-hidden, inset(0 100% 0 0));
  -webkit-clip-path:var(--rw-hidden, inset(0 100% 0 0));
  transition:clip-path var(--rw-dur,750ms) cubic-bezier(0.55,0.085,0.68,0.53),
             -webkit-clip-path var(--rw-dur,750ms) cubic-bezier(0.55,0.085,0.68,0.53);
  will-change:clip-path;
}
.reveal-wipe.is-armed.is-shown{clip-path:inset(0 0 0 0);-webkit-clip-path:inset(0 0 0 0);}
@media (prefers-reduced-motion:reduce){
  .reveal-wipe.is-armed{transition:none;clip-path:inset(0);-webkit-clip-path:inset(0);}
}

/* 3D top-to-bottom fold reveal — gated behind .is-armed so JS-fail = visible */
.tilt-rotate{display:block;transform-style:preserve-3d;}
.v2-service .media .tilt-rotate{width:100%;max-width:890px;}
.tilt-rotate.is-armed{
  transform-origin:center center;
  transform:rotateX(-78deg) translateY(-60px) scale(0.9);
  opacity:0;
  transition:transform 2.4s cubic-bezier(0.16,1,0.3,1), opacity 1.6s ease-out;
  will-change:transform,opacity;
}
.tilt-rotate.is-armed.is-in{
  transform:rotateX(0deg) rotateY(0deg) rotateZ(0deg) translate(0,0) scale(1);
  opacity:1;
}
@media (prefers-reduced-motion:reduce){
  .tilt-rotate.is-armed{transition:none;transform:none;opacity:1;}
}

/* slide-in from the left — gated behind .is-armed so JS-fail = visible */
.slide-left.is-armed{
  opacity:0;transform:translateX(-90px);
  transition:transform var(--sl-dur,900ms) cubic-bezier(0.22,1,0.36,1), opacity calc(var(--sl-dur,900ms) * 0.8) ease;
  will-change:transform,opacity;
}
.slide-left.is-armed.is-in{opacity:1;transform:translateX(0);}
@media (prefers-reduced-motion:reduce){
  .slide-left.is-armed{transition:none;transform:none;opacity:1;}
}

/* ---------- about (yellow panel) ---------- */
.v2-about{position:relative;background:var(--yellow);color:#000;padding:56px 0 70px;text-align:center;}
.about-corner{position:absolute;width:29.28px;height:29.77px;background:#000;}
.about-corner--tl{top:18px;left:24px;}
.about-corner--tr{top:18px;right:24px;}
.about-corner--bl{bottom:18px;left:24px;}
.about-corner--br{bottom:18px;right:24px;}
.about-heading{
  font-family:'Inter',sans-serif;font-weight:900;color:#000;text-transform:uppercase;
  line-height:1.1;font-size:clamp(34px,5vw,63px);letter-spacing:-.5px;margin-bottom:28px;
}
.about-heading__sm{display:block;font-size:clamp(24px,3.4vw,42px);}
.v2-about p {
    font-family: 'IBM Plex Mono', 'Courier New', monospace;
    font-weight: 400;
    color: #000;
    font-size: clamp(17px, 1.9vw, 24px);
    line-height: 1.31;
    max-width: 980px;
    margin: 0 auto 20px;
}
/* flame banner image (Serving Heat. Upfitting Fleet.) */
.about-banner-img{display:block;width:100%;height:auto;margin:40px auto 0;border-radius:4px;}

/* ---------- updates ---------- */
.v2-updates{
  position:relative;
  background:var(--black);
  padding:120px 0 120px;
  /* min-height:1556px; */
}
.upd-corner{position:absolute;width:29.28px;height:29.77px;background:var(--yellow);}
.upd-corner--tl{top:24px;left:24px;}
.upd-corner--tr{top:24px;right:24px;}
.upd-corner--bl{bottom:24px;left:24px;}
.upd-corner--br{bottom:24px;right:24px;}
.v2-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;max-width:1860px;margin:0 auto;}
.v2-card{text-align:left;}
.v2-card__media{
  position:relative;
  width:100%;
  /* max-width:418px; */
  aspect-ratio:418 / 519;overflow:hidden;
  background:#111;border-radius:2px;
}
.v2-card__video,
.v2-card__image{
  width:100%;height:100%;object-fit:cover;display:block;
}
.v2-card__logo{
  position:absolute;left:18px;top:18px;z-index:2;
  width:auto;max-width:min(70%,300px);max-height:130px;
  padding:12px 14px;object-fit:contain;
  background:rgba(0,0,0,.66);border:1px solid rgba(255,255,255,.18);border-radius:2px;
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
}
.v2-card--wrap-guys .v2-card__image{
  object-fit:cover;
  object-position:center;
}
.v2-card h3{
  font-family:'Inter',sans-serif;font-weight:900;color:#fdbf12;text-transform:uppercase;
  font-size:clamp(28px,2.2vw,40px);line-height:1;letter-spacing:-.5px;margin:34px 0 22px;
}
.v2-card p{
  font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;color:#fff;
  font-size:clamp(16px,1.25vw,22px);line-height:1.32;max-width:461px;margin:0;
}
.v2-card .ffs-link{color:#fff;text-decoration:underline;}

/* ---------- contact / get in touch ---------- */
.v2-contact{
  position:relative;min-height:1089px;padding:60px 24px;
  display:flex;align-items:flex-start;justify-content:center;
  background-color:#000;background-position:center;background-size:cover;background-repeat:no-repeat;
}
.contact-card{background:#fff;color:#000;width:100%;max-width:678px;padding:30px 10px;margin-top:24px;}
.contact-card__title{
  font-family:'Inter',sans-serif;font-weight:900;color:#000;text-transform:uppercase;
  font-size:clamp(38px,4.6vw,63px);line-height:1.1;letter-spacing:-1px;margin:0;
}
.contact-card__sub{
  font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;color:#000;text-transform:uppercase;
  font-size:18px;line-height:23px;letter-spacing:.5px;margin:6px 0 26px;
}
/* ---------- primary quote CTA (full-bleed video band) ---------- */
.v2-quotecta{
  position:relative;overflow:hidden;background:#000;
  min-height:62vh;display:flex;align-items:center;justify-content:center;
  padding:110px 24px;text-align:center;
}
.v2-quotecta__video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  z-index:0;pointer-events:none;
}
/* dark gradient scrim so the white text stays readable over the footage */
.v2-quotecta::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.72) 100%);
}
.v2-quotecta__inner{position:relative;z-index:2;max-width:780px;}
.v2-quotecta__inner .tag{margin:0 0 22px;}
.v2-quotecta__title{
  font-family:'Inter',sans-serif;font-weight:900;color:#fff;text-transform:uppercase;
  font-size:63px;line-height:1;letter-spacing:-1.5px;margin:0;
}
.v2-quotecta__sub{
  font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;color:#e8e8e8;
  font-size:clamp(17px,1.9vw,24px);line-height:1.45;max-width:640px;margin:24px auto 38px;
}
.v2-quotecta__btn{
  display:inline-flex;align-items:center;gap:8px;padding:18px 46px;font-size:15px;
}
@media (max-width:720px){
  .v2-quotecta{min-height:auto;padding:80px 20px;}
}
.v2-form{max-width:none;margin:0;}
.v2-form .frow{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.v2-field{margin-bottom:22px;}
.v2-field label{
  display:block;font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;text-transform:uppercase;
  letter-spacing:1px;font-size:15px;line-height:20px;color:#000;margin-bottom:8px;
}
.v2-field input,.v2-field textarea{
  width:100%;background:transparent;border:0;border-bottom:1px solid #000;color:#000;
  padding:8px 2px;font-family:'IBM Plex Mono','Courier New',monospace;font-size:15px;transition:border-color .2s;
}
.v2-field input:focus,.v2-field textarea:focus{outline:none;border-bottom-width:2px;}
.v2-field textarea{min-height:110px;resize:vertical;}
.v2-form .submit-wrap{text-align:center;margin-top:14px;}
.contact-submit{
  background:#000;border-color:#000;color:#fff;border-radius:0;padding:14px 44px;
  font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;letter-spacing:2px;text-transform:uppercase;
}
.contact-submit:hover{background:var(--red);border-color:var(--red);color:#fff;}
.v2-form-note{display:none;text-align:center;margin-top:16px;color:#0a7d32;font-weight:600;}

/* ---------- footer ---------- */
.v2-footer{
  position:relative;overflow:hidden;
  background-color:#000;background-image:url('/wp-content/uploads/2026/06/footer-bg.png');
  background-position:center;background-size:cover;background-repeat:no-repeat;
  border-top:1px solid var(--line);padding:70px 0;
}
.footer-logo-link{display:inline-block;width:100%;max-width:872px;}
.footer-logo{display:block;width:100%;height:auto;margin:0;}
/* shutter reveal — slats cover the whole footer, then retract left→right (like the hero button) */
.footer-shutter__mask{position:absolute;inset:0;z-index:3;display:flex;overflow:hidden;pointer-events:none;}
.footer-shutter__mask i{flex:1 1 0;background:#000;transform:scaleX(0);transform-origin:center;}
.shutter-reveal.is-armed .footer-shutter__mask i{transform:scaleX(1.05);}
.shutter-reveal.is-armed.is-open .footer-shutter__mask i{
  transform:scaleX(0);
  transition:transform .55s cubic-bezier(0.22,1,0.36,1);
  transition-delay:calc((13 - var(--d)) * 55ms);  /* right -> left */
}
@media (prefers-reduced-motion:reduce){
  .shutter-reveal.is-armed .footer-shutter__mask i{transform:scaleX(0);}
}

/* ---------- end bar (info columns + quote) ---------- */
.v2-endbar{background:var(--yellow);color:#000;display:flex;align-items:flex-start;padding:56px 24px;}
.endbar-inner{flex:1;max-width:1860px;margin:0 auto;display:grid;grid-template-columns:1.1fr 0.9fr;gap:50px;}
.endbar-left{padding-left:0;display:flex;flex-direction:column;justify-content:flex-start;gap:36px;}
.endbar-cols{display:flex;gap:56px;flex-wrap:wrap;}
.endbar-group{display:flex;flex-direction:column;gap:16px;min-width:150px;}
/* small bold column heading above each group */
.endbar-group__title{
  font-family:'Inter',sans-serif;font-weight:800;color:#000;text-transform:uppercase;
  font-size:14px;letter-spacing:2px;margin:0 0 4px;padding-bottom:10px;
  border-bottom:2px solid rgba(0,0,0,.25);
}
.endbar-links{display:flex;flex-direction:column;gap:10px;}
.endbar-links a{
  font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;color:#000;text-transform:uppercase;
  font-size:18px;line-height:24px;letter-spacing:.5px;margin:0;transition:opacity .2s;
}
.endbar-links a:hover{opacity:.6;}
.endbar-info{display:flex;flex-direction:column;gap:3px;}
.endbar-info + .endbar-info{margin-top:14px;}
.endbar-info__city{
  font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;color:#000;text-transform:uppercase;
  font-size:18px;line-height:24px;letter-spacing:.5px;margin:0;transition:opacity .2s;
}
.endbar-info__city:hover{opacity:.65;}
.endbar-info__phone{
  font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;color:#000;text-transform:uppercase;
  font-size:16px;line-height:22px;letter-spacing:.5px;text-decoration:none;margin-top:4px;transition:opacity .2s;
}
.endbar-info__phone:hover{opacity:.65;}
.endbar-info__link{
  font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;color:#000;text-transform:uppercase;
  font-size:14px;line-height:20px;letter-spacing:1px;text-decoration:underline;text-underline-offset:3px;
  opacity:.75;transition:opacity .2s;
}
.endbar-info__link:hover{opacity:1;}
.endbar-copy{padding-top:24px;border-top:1px solid rgba(0,0,0,.2);}
.endbar-copy p{font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;color:#000;text-transform:uppercase;font-size:14px;line-height:1.5;letter-spacing:.5px;margin:0;}

.endbar-title{font-family:'Inter',sans-serif;font-weight:900;color:#000;text-transform:uppercase;font-size:clamp(30px,3.2vw,41px);line-height:1;letter-spacing:-1px;margin:0 0 30px;}
.endbar-field{margin-bottom:34px;}
.endbar-field label{display:block;font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;color:#000;text-transform:uppercase;font-size:15px;line-height:20px;letter-spacing:1px;margin-bottom:10px;}
.endbar-field input{width:100%;background:transparent;border:0;border-bottom:1px solid #000;color:#000;padding:8px 2px;font-family:'IBM Plex Mono','Courier New',monospace;font-size:15px;transition:border-color .2s;}
.endbar-field input:focus{outline:none;border-bottom-width:2px;}
.endbar-btn{width:100%;background:#000;color:#fff;border:0;cursor:pointer;padding:16px;font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;font-size:16px;line-height:19px;text-transform:uppercase;letter-spacing:1.5px;transition:background .2s;}
.endbar-btn:hover{background:var(--red);}
@media (max-width:900px){
  .v2-endbar{min-height:auto;}
  .endbar-inner{grid-template-columns:1fr;gap:40px;}
  .endbar-cols{gap:32px;}
  .endbar-left{padding-left:0;}
}

.v2-footer .top{display:grid;grid-template-columns:1.4fr 1fr 1.4fr;gap:40px;align-items:start;}
.v2-footer .f-logo .wordmark{font-family:var(--fdisp);font-weight:700;text-transform:uppercase;letter-spacing:1px;font-size:26px;line-height:1;}
.v2-footer .f-logo .wordmark span{color:var(--yellow);}
.v2-footer .f-logo img{height:48px;margin-bottom:10px;}
.v2-footer .f-logo p{color:var(--gray-dim);font-size:13px;margin:14px 0 0;max-width:260px;}
.v2-footer .f-nav h4,.v2-footer .f-quote h4{font-family:var(--fdisp);text-transform:uppercase;letter-spacing:2px;font-size:14px;color:#fff;margin-bottom:16px;}
.v2-footer .f-nav a{display:block;color:var(--gray);font-size:14px;margin-bottom:10px;}
.v2-footer .f-nav a:hover{color:var(--yellow);}
.v2-footer .f-quote .qrow{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.v2-footer .f-quote input{width:100%;background:#141414;border:1px solid var(--line);color:#fff;padding:11px 12px;font-size:14px;margin-bottom:14px;}
.v2-footer .f-quote input:focus{outline:none;border-color:var(--yellow);}
.v2-footer .bottom{border-top:1px solid var(--line);margin-top:40px;padding-top:20px;text-align:center;color:var(--gray-dim);font-size:12px;letter-spacing:1px;}

/* ---------- introduction ---------- */
.v2-intro{background:var(--black);padding:90px 0;}
.v2-intro-copy{
  font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;color:#fff;
  font-size:clamp(20px,2.6vw,34px);line-height:1.34;max-width:1100px;margin:0;
}
.v2-intro-tagline{
  font-family:'Inter',sans-serif;font-weight:900;color:#fdbf12;text-transform:uppercase;
  font-size:clamp(24px,3.4vw,48px);line-height:1.15;letter-spacing:-1px;margin:0 0 28px;
}

/* ---------- arrow glyph (↗) — force text/monochrome presentation ----------
   Some OSes render U+2197 as a blue emoji glyph. Force text presentation so it
   inherits the link color instead of showing as a colored emoji. */
.arr{
  color:inherit;
  font-family:'IBM Plex Mono','Courier New',monospace;
  font-variant-emoji:text;
  -webkit-text-fill-color:currentColor;
}

/* ---------- service preview card links ---------- */
.v2-card__link,.v2-loc__link,.v2-about-cta .arr,.v2-quote-cta__btn .arr{display:inline-flex;align-items:center;gap:6px;}
.v2-card__link{
  margin-top:18px;font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;
  text-transform:uppercase;letter-spacing:1.5px;font-size:15px;color:#fdbf12;
  border-bottom:1px solid transparent;padding-bottom:2px;transition:border-color .2s,color .2s;
}
.v2-card__link:hover{color:#fff;border-color:#fff;}
.v2-card__link .arr{font-size:1.1em;}

/* portfolio teaser CTA (reuses yellow .v2-about panel) */
.v2-about-cta{margin-top:30px;}

/* ---------- primary quote CTA (reuses .v2-divider band) ---------- */
.v2-quote-cta{padding:96px 0;}
.v2-quote-cta h2{font-family:'Inter',sans-serif;font-weight:900;letter-spacing:-1px;}
.v2-quote-cta__sub{
  font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;color:#fff;
  font-size:clamp(16px,1.9vw,24px);line-height:1.35;max-width:760px;margin:20px auto 0;
}
.v2-quote-cta__btn{margin-top:30px;}

/* ---------- locations strip ---------- */
.v2-locations{
  position:relative;background-color:#000;padding:110px 0 120px;
  background-position:center;background-size:cover;background-repeat:no-repeat;
  background-attachment:fixed;
}
/* gradient scrim — darker at the edges, keeps the interceptor photo visible */
.v2-locations::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.55) 45%,rgba(0,0,0,.85) 100%);
}
.v2-locations .container{position:relative;z-index:1;}

/* heading block */
.v2-loc-head{text-align:center;max-width:780px;margin:0 auto 56px;}
.v2-loc-head .tag{margin:0 0 18px;}
.v2-loc-title{
  font-family:'Inter',sans-serif;font-weight:900;color:#fff;text-transform:uppercase;
  font-size:clamp(34px,5vw,64px);line-height:1;letter-spacing:-1.5px;margin:0;
}
.v2-loc-intro{
  font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;font-style:normal;
  color:rgb(232,232,232);font-size:24px;line-height:35px;margin:18px auto 0;max-width:560px;
}

/* cards */
.v2-loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;max-width:1200px;margin:0 auto;}
.v2-loc{
  position:relative;display:flex;flex-direction:column;gap:8px;
  padding:44px 40px 38px;overflow:hidden;
  background:rgba(14,15,17,.66);border:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  transition:border-color .25s,transform .25s,background .25s,box-shadow .25s;
}
/* top accent bar that slides in on hover */
.v2-loc::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:var(--red);transform:scaleX(0);transform-origin:left;
  transition:transform .35s cubic-bezier(.22,1,.36,1);
}
.v2-loc:hover{
  border-color:rgba(255,203,5,.55);transform:translateY(-6px);
  background:rgba(20,21,24,.78);box-shadow:0 24px 60px rgba(0,0,0,.5);
}
.v2-loc:hover::before{transform:scaleX(1);}
.v2-loc__state{font-family:'IBM Plex Mono','Courier New',monospace;text-transform:uppercase;color:var(--yellow);letter-spacing:3px;font-size:14px;}
.v2-loc__city{font-family:'Inter',sans-serif;font-weight:900;text-transform:uppercase;color:#fff;font-size:clamp(34px,4.4vw,58px);line-height:1;letter-spacing:-1px;}
.v2-loc__name{font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;font-style:normal;color:rgb(207,210,216);font-size:20px;line-height:28px;margin-top:14px;}
.v2-loc__link{
  margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);
  font-family:'IBM Plex Mono','Courier New',monospace;text-transform:uppercase;
  letter-spacing:1.5px;font-size:14px;color:#fdbf12;transition:color .2s;
}
.v2-loc:hover .v2-loc__link{color:#fff;}
.v2-loc:hover .v2-loc__link .arr{transform:translate(3px,-3px);}
.v2-loc__link .arr{transition:transform .25s;}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .v2-loc-grid{grid-template-columns:1fr;gap:24px;}
  .v2-service{min-height:auto;padding:96px 0 60px;}
  .v2-service .row{grid-template-columns:1fr;gap:26px;}
  .v2-service .row.reverse .text{order:0;}
  .v2-service .media{justify-content:flex-start;}
  .v2-service .media img,.v2-service .media video{height:300px;max-width:100%;}
  .v2-service .media--tall .tilt-rotate{margin:0 auto;max-width:420px;}
  .v2-service .media--tall video,.v2-service .media--tall img{height:auto;max-width:420px;aspect-ratio:588 / 1048;}
  .v2-updates{min-height:auto;}
  .v2-cards{grid-template-columns:1fr;justify-items:center;}
  .v2-card{max-width:418px;}
  .v2-card__logo{left:14px;top:14px;max-width:min(72%,260px);max-height:110px;padding:10px 12px;}
  .v2-card h3,.v2-card p{text-align:left;}
  .v2-footer .top{grid-template-columns:1fr;gap:30px;}
}
/* ---------- laptop / small-desktop: keep full nav but scale it so it fits one line ---------- */
@media (max-width:1280px) and (min-width:721px){
  .v2-header .inner{gap:14px;}
  .v2-nav{gap:24px;}
  .v2-nav a{font-size:16px;letter-spacing:1px;}
  .v2-nav a.btn{font-size:14px;padding:12px 20px !important;}
  .v2-logo img,.v2-logo__img{height:46px;}
}
@media (max-width:1040px) and (min-width:721px){
  .v2-nav{gap:18px;}
  .v2-nav a{font-size:14px;letter-spacing:.5px;}
  .v2-nav a.btn{font-size:13px;padding:10px 16px !important;}
}
@media (max-width:720px){
  .v2-nav{display:none;position:fixed;top:96px;left:0;right:0;background:#000;flex-direction:column;gap:0;padding:10px 24px 24px;border-bottom:1px solid var(--line);}
  .v2-nav.open{display:flex;}
  .v2-nav a{padding:13px 0;border-bottom:1px solid var(--line);}
  .v2-burger{display:flex;}
  .v2-form .frow,.v2-footer .f-quote .qrow{grid-template-columns:1fr;}
  .v2-contact{min-height:auto;}
  .v2-footer{padding:70px 0 30px;}
  /* mobile hero: video with overlaid badge + tagline (top-left) and CTA (bottom-left) */
  .v2-hero-media{min-height:60vh;padding:0;}
  .v2-hero-bottom{display:none;}
  .v2-hero-mobile{
    display:flex;flex-direction:column;align-items:flex-start;gap:14px;
    position:absolute;inset:0;z-index:2;padding:18px;
  }
  .v2-hero-mobile__copy{
    font-family:'IBM Plex Mono','Courier New',monospace;font-weight:400;color:#fff;
    font-size:15px;line-height:1.35;margin:0;max-width:300px;
    background:rgba(0,0,0,.55);padding:12px 14px;
  }
  /* push the CTA to the bottom-left */
  .v2-hero-mobile__btn{margin-top:auto;font-size:13px;padding:13px 22px;}
  /* allow the long headline to wrap on narrow phones instead of overflowing */
  .v2-hero-title{white-space:normal;font-size:clamp(1.6rem,7vw,2.6rem);line-height:1.1;}
}

/* =====================================================================
   SUBPAGE STYLES moved out for maintainability:
     /upfitting/     -> upfitting-style.css
     /amber-market/  -> amber-market-style.css
   Each is loaded after this file on its own page.
   ===================================================================== */

/* =========================================================
   FORM STATUS BANNERS (WordPress quote/contact submissions)
   ========================================================= */
.ffs-form-status{
  margin:0 0 18px;padding:12px 16px;border-radius:6px;
  font-family:'Inter',sans-serif;font-size:14px;font-weight:600;line-height:1.45;
}
.ffs-form-status--ok{background:#0f3d1e;color:#d4f5dd;border:1px solid #1c6b35;}
.ffs-form-status--err{background:#3d0f0f;color:#f5d4d4;border:1px solid #8a2020;}

/* =========================================================
   LEGAL / POLICY PAGES (plain, no hero)
   ========================================================= */
.legal-page{padding:160px 0 96px;background:var(--black);}
.legal-page .container{max-width:880px;}
.legal-page__head{border-bottom:2px solid var(--yellow);padding-bottom:22px;margin-bottom:40px;}
.legal-page__title{
  font-family:'Inter',sans-serif;font-weight:900;color:var(--yellow);
  text-transform:uppercase;font-size:clamp(30px,5vw,52px);line-height:1.05;letter-spacing:-1px;
}
.legal-page__updated{
  font-family:'IBM Plex Mono','Courier New',monospace;color:var(--gray-dim);
  font-size:13px;letter-spacing:1px;margin:14px 0 0;
}
.legal-page__body{color:var(--gray);font-size:16px;line-height:1.8;}
.legal-page__body h2{
  font-family:'Inter',sans-serif;font-weight:800;color:#fff;text-transform:uppercase;
  font-size:22px;letter-spacing:.5px;line-height:1.2;margin:42px 0 14px;
}
.legal-page__body h3{
  font-family:'Inter',sans-serif;font-weight:700;color:#fff;
  font-size:18px;margin:28px 0 10px;
}
.legal-page__body p{margin:0 0 18px;}
.legal-page__body a{color:var(--yellow);text-decoration:underline;text-underline-offset:3px;}
.legal-page__body a:hover{color:#fff;}
.legal-page__body ul{list-style:disc;padding-left:22px;margin:0 0 18px;}
.legal-page__body ul li{margin:0 0 8px;}
.legal-page__body strong{color:#fff;}
