/* ==========================================================================
   V2.30 — DESIGN SYSTEM
   Replaces 25 ad-hoc font sizes, 21 section paddings and 14 radius values
   with one scale each. Everything below derives from these tokens.
   ========================================================================== */

@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;
  src:url('/assets/fonts/barlow-condensed-700.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;
  src:url('/assets/fonts/plex-400.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;
  src:url('/assets/fonts/plex-600.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;
  src:url('/assets/fonts/plex-700.woff2') format('woff2')}

:root{
  /* Barlow Condensed is now DISPLAY ONLY — page headlines and section headings.
     It closes up below ~28px and goes monotonous when used everywhere. */
  --display:'Barlow Condensed','Helvetica Neue Condensed','Arial Narrow',Arial,sans-serif;
  /* IBM Plex Sans carries everything else — body, labels, buttons, card titles,
     specs. Drawn for technical documentation, so it holds up bold and small. */
  --ui:'IBM Plex Sans','Helvetica Neue',Arial,sans-serif;
  --body:var(--ui);

  /* Six steps. Nothing outside this scale. */
  --t-xs:0.75rem;    /* 12px — labels, eyebrows, legal */
  --t-sm:0.875rem;   /* 14px — captions, meta */
  --t-base:1rem;     /* 16px — body */
  --t-lg:1.1875rem;  /* 19px — lead paragraphs */
  --t-xl:clamp(1.5rem,1.15rem + 1.6vw,2.125rem);   /* section headings */
  --t-2xl:clamp(2.25rem,1.5rem + 3.4vw,4.25rem);   /* page headlines */

  /* Spacing. 8pt scale. Section rhythm uses --s-9 / --s-11 only. */
  --s-1:4px;  --s-2:8px;   --s-3:12px;  --s-4:16px; --s-5:24px;
  --s-6:32px; --s-7:40px;  --s-8:48px;  --s-9:64px; --s-10:80px; --s-11:96px;

  /* Two radii. Not fourteen. */
  --radius:6px;
  --radius-lg:12px;

  --measure:64ch;
}

html{-webkit-text-size-adjust:100%}
body{font-family:var(--body);font-size:var(--t-base);line-height:1.6;
  font-weight:400;-webkit-font-smoothing:antialiased}

/* DISPLAY: page headlines and section headings only. */
h1,h2,.stage-headline,.lot-hero h1,.brand{font-family:var(--display)}
/* UI: every piece of small bold copy. Plex is legible at 12-19px where the
   condensed face was not, so these read better WITHOUT growing. */
h3,.btn,.eyebrow,.section-eyebrow,.lot-tally,.lot-newtag,.badge,.nav a,
.bottom-actions a,.lot-price,.lot-buyrent,.lot-spec,.link-action,
.stage-solution,.stage-solution-title,.stage-product-name,.stage-view-link,
.stage-contracts strong,.stage-contracts span,.news-card h3,.news-card span,
.card h3,.panel h3,label,input,select,textarea,button{font-family:var(--ui)}

h1,.lot-hero h1{font-size:var(--t-2xl);line-height:.94;letter-spacing:-.005em;font-weight:700;
  text-transform:uppercase}
h2{font-size:var(--t-xl);line-height:1.02;letter-spacing:-.005em;font-weight:700}
h3{font-size:var(--t-lg);line-height:1.25;font-weight:600;letter-spacing:-.005em}
.lead{font-size:var(--t-lg);line-height:1.5;color:var(--muted);max-width:var(--measure)}
p{max-width:var(--measure)}

.eyebrow,.section-eyebrow,.lot-tally,.lot-newtag,.badge{
  font-family:var(--ui);font-size:var(--t-xs);font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;line-height:1.2}

/* One section rhythm. Every section, every page. */
.section,.lot-cat,.page-hero,.home-news,.home-about,.darrell,.lot-want{
  padding-top:var(--s-9);padding-bottom:var(--s-9)}

/* Buttons: one shape, one size, clear primary/secondary split. */
.btn{display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--ui);font-size:var(--t-sm);font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  padding:14px var(--s-5);border-radius:var(--radius);text-decoration:none;
  min-height:48px;border:2px solid transparent;transition:background .15s,color .15s}
.btn{background:var(--red);color:#fff}
.btn:hover{background:#c8151d}
.btn.dark{background:var(--ink);color:#fff}
.btn.dark:hover{background:#000}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
/* Secondary actions are links, not buttons. This is what kills the button soup. */
.link-action{font-family:var(--ui);font-weight:600;font-size:var(--t-sm);
  letter-spacing:.03em;text-transform:uppercase;text-decoration:none;
  border-bottom:2px solid var(--red);padding-bottom:2px;display:inline-block}

:where(a,button,input,select,textarea):focus-visible{
  outline:3px solid var(--red);outline-offset:2px}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}

:root{--red:#e31b23;--ink:#16181b;--muted:#5d6268;--line:#dfe2e5;--paper:#fff;--soft:#f3f4f5;--max:1180px;--radius:10px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;line-height:1.45;font-size:18px}a{color:inherit}img{max-width:100%;display:block}.wrap{width:min(var(--max),calc(100% - 40px));margin:auto}.top{background:#111;color:#fff;font-size:14px}.top .wrap{display:flex;justify-content:flex-end;padding:7px 0}.top a{font-weight:800;text-decoration:none}.header{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--line)}.head{height:78px;display:flex;align-items:center;gap:26px}.brand{text-decoration:none;font-weight:900;font-size:29px;letter-spacing:-1.5px;white-space:nowrap}.brand b{color:var(--red)}.brand small{display:block;font-size:11px;letter-spacing:2.8px;color:#555;margin-top:-6px}.nav{margin-left:auto;display:flex;align-items:center;gap:24px}.nav a{text-decoration:none;font-size:14px;font-weight:900;letter-spacing:.3px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;background:var(--red);color:#fff!important;text-decoration:none!important;font-weight:900;border-radius:var(--radius);border:2px solid var(--red);cursor:pointer}.btn.dark{background:#151719;border-color:#151719}.btn.ghost{background:#fff;color:#111!important;border-color:#111}.mobile-actions,.mobile-toggle,.bottom-actions{display:none}.hero{padding:var(--s-9) 0 26px}.eyebrow{font-size:13px;font-weight:900;letter-spacing:1.8px;text-transform:uppercase;color:var(--red)}h1,h2,h3{line-height:1.03;margin:0 0 14px;letter-spacing:-1.4px}h1{font-size:clamp(42px,6vw,76px);max-width:950px}h2{font-size:clamp(32px,4vw,52px)}h3{font-size:25px}.lead{font-size:22px;color:#444;max-width:780px;margin:0 0 24px}.need-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px;margin:24px 0 62px}.need{position:relative;min-height:270px;overflow:hidden;border-radius:var(--radius);background:#333;color:#fff;text-decoration:none}.need.big{grid-column:span 6;min-height:390px}.need.small{grid-column:span 3}.need img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;filter:brightness(.72)}.need:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.88))}.need-copy{position:absolute;z-index:2;left:22px;right:18px;bottom:19px}.need-copy strong{font-size:27px;display:block;line-height:1.05}.need-copy span{font-size:15px;color:#eee}.section{padding:var(--s-9) 0}.soft{background:var(--soft)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:25px}.section-head p{max-width:600px;color:var(--muted);margin:0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.card img{height:245px;width:100%;object-fit:cover}.card-body{padding:20px}.badges{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.badge{font-size:12px;font-weight:900;letter-spacing:.8px;padding:5px 8px;border-radius:var(--radius);background:#111;color:#fff}.badge.red{background:var(--red)}.price{font-size:32px;font-weight:900;margin:7px 0}.price.pending{font-size:18px;color:#555}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{padding:34px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.panel p{color:var(--muted)}.darrell{background:#17191b;color:#fff}.darrell .split{align-items:center}.portrait{width:240px;height:240px;border-radius:50%;background:#34373b;display:grid;place-items:center;font-size:70px;font-weight:900;margin:auto;border:8px solid #fff}.footer{padding:var(--s-9) 0 100px;background:#0f1012;color:#ccc;font-size:15px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.footer a{color:#fff}.page-hero{padding:var(--s-9) 0 35px;background:#f4f5f6}.page-hero h1{font-size:clamp(40px,5vw,66px)}.content{padding:var(--s-9) 0}.content p,.content li{max-width:850px}.quick{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}.specs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:28px 0}.spec{padding:16px;background:#f4f5f6;border-radius:var(--radius)}.form{max-width:720px;display:grid;gap:15px}.form label{font-weight:800;font-size:15px}.form input,.form textarea,.form select{width:100%;font:inherit;padding:14px;border:2px solid #bbb;border-radius:var(--radius);background:#fff}.form textarea{min-height:130px}.notice{padding:16px;border-left:5px solid var(--red);background:#fff5f5;margin:22px 0}.source-note{font-size:13px;color:#666;margin-top:30px}.article-list{display:grid;gap:12px}.article-link{padding:20px;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none}.article-link:hover{border-color:#999}@media(max-width:900px){body{font-size:18px}.top,.nav{display:none}.head{height:66px}.brand{font-size:25px}.mobile-actions{margin-left:auto;display:flex;gap:8px}.mobile-actions a{font-weight:900;text-decoration:none;font-size:14px;padding:11px}.mobile-toggle{display:block;border:0;background:#111;color:#fff;border-radius:var(--radius);padding:10px 12px;font-weight:900}.mobile-menu{display:none;position:absolute;top:66px;left:0;right:0;background:#fff;border-bottom:1px solid #bbb;padding:12px 20px}.mobile-menu.open{display:grid}.mobile-menu a{padding:15px 5px;border-bottom:1px solid #eee;text-decoration:none;font-weight:900}.hero{padding-top:32px}.lead{font-size:19px}.need-grid{grid-template-columns:1fr 1fr;margin-bottom:35px}.need.big,.need.small{grid-column:auto;min-height:245px}.need-copy strong{font-size:21px}.cards{grid-template-columns:1fr}.card img{height:auto;max-height:340px}.split{grid-template-columns:1fr}.section{padding:var(--s-9) 0}.section-head{display:block}.section-head .btn{margin-top:15px}.specs{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.bottom-actions{position:fixed;z-index:50;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid #aaa;box-shadow:0 -3px 12px #0002}.bottom-actions a{text-align:center;padding:15px 4px;text-decoration:none;font-size:12px;font-weight:900}.bottom-actions a:first-child{background:var(--red);color:#fff}.wrap{width:min(var(--max),calc(100% - 28px))}}@media(max-width:520px){h1{font-size:42px}.need-grid{grid-template-columns:1fr}.need.big,.need.small{min-height:220px}.need.big:first-child,.need.big:nth-child(2){min-height:270px}.btn{width:100%;min-height:56px;font-size:17px}.quick .btn{width:100%}.panel{padding:25px}.portrait{width:190px;height:190px}}
.portrait img{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}.teaser{display:flex;align-items:center;min-height:300px}.price{font-size:2rem;font-weight:900;line-height:1.05;margin:.5rem 0 1rem}.page-hero{padding:3.5rem 0 2rem;background:#f2f2f2}.page-hero h1{margin:.25rem 0}.page-hero .lead{max-width:720px}

/* V2.1 header/readability fixes */
.head{gap:18px}
.nav{gap:14px;min-width:0}
.nav a:not(.btn){white-space:nowrap;padding:12px 2px;font-size:13px}
.nav .btn{white-space:nowrap;padding:10px 15px;min-height:44px;font-size:13px}
@media (max-width:1120px){
  .top,.nav{display:none}
  .head{height:68px}
  .mobile-actions{margin-left:auto;display:flex;gap:8px}
  .mobile-actions a{font-weight:900;text-decoration:none;font-size:14px;padding:11px}
  .mobile-toggle{display:block;border:0;background:#111;color:#fff;border-radius:var(--radius);padding:11px 13px;font-weight:900}
  .mobile-menu{display:none;position:absolute;top:68px;left:0;right:0;background:#fff;border-bottom:1px solid #bbb;padding:12px 20px;box-shadow:0 8px 20px #0002}
  .mobile-menu.open{display:grid}
  .mobile-menu a{padding:16px 5px;border-bottom:1px solid #eee;text-decoration:none;font-weight:900}
}
/* Make portrait source images behave inside the circular frame. */
.portrait{overflow:hidden}
.portrait img{width:100%;height:100%;object-fit:cover}

/* V2.2 visual QA refinements */
.mobile-menu{display:none}
.header{box-shadow:0 2px 10px rgba(0,0,0,.04)}
.head{height:72px}
.brand{font-size:27px}
.nav{gap:18px}
.nav a:not(.btn){font-size:12px;letter-spacing:.45px;padding:18px 0}
.nav .btn{padding:10px 14px}
.hero{padding:var(--s-9) 0 20px}
.hero h1{font-size:clamp(42px,5.25vw,66px);max-width:860px}
.hero .lead{max-width:720px;margin-top:4px}
.need-grid{gap:12px;margin-top:28px;margin-bottom:48px}
.need{border-radius:var(--radius);transition:transform .15s ease,box-shadow .15s ease}
.need:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.15)}
.need.big{min-height:360px}
.need.small{min-height:240px}
.need-copy strong{font-size:24px}
.need.small .need-copy strong{font-size:21px}
.need.small .need-copy span{display:block;margin-top:4px;font-size:13px;line-height:1.25}
.need-graphic{background:#202326}
.need-graphic:after{background:linear-gradient(transparent,rgba(0,0,0,.75))}
.compaction-graphic{background:linear-gradient(145deg,#f5c400 0 56%,#202326 56% 100%)}
.compaction-graphic .graphic-label{position:absolute;top:24px;left:22px;font-size:15px;font-weight:900;letter-spacing:1.5px;color:#111;background:#fff;padding:7px 9px;border-radius:var(--radius);z-index:2}
.marking-graphic{background:#33383c;overflow:hidden}
.road-lines{position:absolute;inset:-20% -15%;transform:rotate(-18deg);background:linear-gradient(90deg,transparent 0 17%,#f4c400 17% 20%,transparent 20% 47%,#fff 47% 53%,transparent 53% 80%,#f4c400 80% 83%,transparent 83% 100%);opacity:.95}
.section{padding:var(--s-9) 0}
.section-head{align-items:center;margin-bottom:22px}
.section-head h2{margin-bottom:8px}
.sales-grid{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);max-width:820px}
.featured-sale{display:grid;grid-template-columns:1.1fr .9fr}
.featured-sale img{height:100%;min-height:310px}
.teaser{min-height:310px}
.card{box-shadow:0 2px 8px rgba(0,0,0,.035)}
.card-body h3{margin-bottom:10px}
.split .panel h2{font-size:clamp(30px,3.2vw,44px)}
.panel{padding:30px}
.darrell{padding:var(--s-9) 0}
.darrell .portrait{width:220px;height:220px}
.footer{padding-top:38px}
@media(max-width:1120px){.mobile-menu{display:none}.mobile-menu.open{display:grid}}
@media(max-width:900px){
  .hero h1{font-size:clamp(40px,9vw,58px)}
  .need.big,.need.small{min-height:250px}
  .sales-grid,.featured-sale{grid-template-columns:1fr}
  .featured-sale img{height:auto;min-height:0;max-height:380px;object-fit:cover}
}
@media(max-width:520px){
  .hero{padding-top:26px}
  .hero h1{font-size:40px}
  .hero .lead{font-size:18px}
  .need-grid{gap:10px}
  .need.big:first-child,.need.big:nth-child(2){min-height:250px}
  .need.big,.need.small{min-height:205px}
  .need-copy{left:17px;bottom:15px}
  .need-copy strong,.need.small .need-copy strong{font-size:21px}
  .section{padding:var(--s-9) 0}
  .section-head h2{font-size:34px}
  .darrell .portrait{width:170px;height:170px}
}

/* V2.3 navigation + government purchasing refinement */
.brand small{font-size:10px;letter-spacing:.15px;margin-top:-3px;text-transform:none;font-weight:700;color:#555}
.nav-drop{position:relative;display:flex;align-items:center}
.nav-drop>a span{font-size:14px;margin-left:3px}
.dropdown{display:none;position:absolute;top:calc(100% + 12px);left:-20px;background:#fff;border-top:3px solid var(--red);box-shadow:0 12px 28px rgba(0,0,0,.16);padding:14px;z-index:100}
.nav-drop:hover .dropdown,.nav-drop:focus-within .dropdown{display:grid}
.solutions-menu{width:390px;gap:2px}
.solutions-menu>a{display:block!important;padding:13px 14px!important;border-bottom:1px solid #eee;font-size:14px!important}
.solutions-menu>a:last-child{border:0}
.solutions-menu small{display:block;margin-top:3px;color:#666;font-size:12px;font-weight:500;letter-spacing:0}
.equipment-menu{width:760px;grid-template-columns:repeat(3,1fr);gap:24px;padding:25px;left:-170px}
.equipment-menu>div{display:flex;flex-direction:column;gap:8px}
.equipment-menu strong{font-size:13px;border-bottom:2px solid var(--red);padding-bottom:7px}
.equipment-menu a{font-size:13px!important;font-weight:700!important;padding:3px 0!important;white-space:normal!important}
.equipment-landing{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.equipment-landing>a{padding:26px;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;background:#fff}
.equipment-landing strong{display:block;font-size:24px;margin-bottom:7px}
.equipment-landing span{color:var(--muted)}
.gov-hero h1{max-width:1000px}
.gov-options{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:28px}
.gov-card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px;background:#fff}
.gov-card h2{font-size:38px;margin-top:5px}
.gov-card p{color:var(--muted)}
.gov-card a{font-weight:900}
.gov-help{display:flex;align-items:center;justify-content:space-between;gap:30px;background:var(--soft);padding:30px;border-radius:var(--radius-lg);margin:28px 0}
.gov-help h2{font-size:38px;margin-top:5px}
.gov-help p{margin-bottom:0;color:var(--muted)}
@media(max-width:1120px){.nav-drop{display:block}.dropdown{display:none!important}.brand small{font-size:9px}}
@media(max-width:700px){.equipment-landing,.gov-options{grid-template-columns:1fr}.gov-help{display:block}.gov-help .btn{margin-top:18px}.gov-card{padding:24px}.gov-card h2,.gov-help h2{font-size:32px}.brand small{max-width:190px;white-space:normal;line-height:1.05;margin-top:1px}}

/* V2.4 state-specific government purchasing */
.state-pick{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:center;padding:28px 0 42px;border-bottom:1px solid var(--line)}
.state-pick h2{font-size:42px;margin:5px 0 10px}.state-pick p{color:var(--muted);margin:0}.state-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.state-button{display:flex;flex-direction:column;justify-content:center;min-height:110px;padding:18px;border:2px solid #17191b;border-radius:var(--radius);text-decoration:none;background:#fff}.state-button:hover{background:#17191b;color:#fff}.state-button strong{font-size:28px}.state-button span{font-size:13px;font-weight:800}.state-button.muted{border-color:#bbb}.state-section{padding:var(--s-9) 0;border-bottom:1px solid var(--line)}.state-section>h2{font-size:44px;margin:5px 0 12px}.state-lead{font-size:20px;max-width:920px;color:#45484b}.gov-card h3{font-size:28px;margin:5px 0 10px}.sc-state{background:#f5f6f7;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);padding-left:max(24px,calc((100vw - 1180px)/2));padding-right:max(24px,calc((100vw - 1180px)/2))}.sc-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:28px 0}.sc-proof article{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px}.proof-label{display:block;color:var(--red);font-size:11px;font-weight:900;letter-spacing:1.2px;margin-bottom:9px}.sc-proof strong{display:block;font-size:25px;margin-bottom:8px}.sc-proof p{color:var(--muted);margin:0}.fineprint{font-size:13px;color:var(--muted);margin-top:14px}.form select{width:100%;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;font:inherit}
@media(max-width:800px){.state-pick{grid-template-columns:1fr}.state-buttons{grid-template-columns:1fr 1fr}.state-button.muted{grid-column:1/-1;min-height:75px}.sc-proof{grid-template-columns:1fr}.state-section>h2,.state-pick h2{font-size:34px}}

/* V2.5 early partner logo bar */
.partner-strip{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:22px;margin:26px 0 34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;overflow:hidden}.partner-label{font-size:11px;font-weight:900;letter-spacing:1.7px;color:#6a6e73;white-space:nowrap;padding:18px 0}.partner-marquee{overflow:hidden;min-width:0;mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%)}.partner-track{display:flex;width:max-content;animation:dmiPartners 30s linear infinite}.partner-set{display:flex;align-items:center;gap:54px;padding-right:54px}.partner-logo{width:170px;height:78px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;padding:10px 8px}.partner-logo img{max-width:100%;max-height:56px;width:auto;height:auto;object-fit:contain}.partner-logo:nth-child(2) img,.partner-logo:nth-child(5) img{max-height:64px}.partner-strip:hover .partner-track{animation-play-state:paused}@keyframes dmiPartners{from{transform:translateX(0)}to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.partner-track{animation:none}.partner-set[aria-hidden="true"]{display:none}.partner-marquee{overflow-x:auto;mask-image:none;-webkit-mask-image:none}}@media(max-width:700px){.partner-strip{grid-template-columns:1fr;gap:0;margin:20px 0 26px}.partner-label{padding:12px 0 4px}.partner-logo{width:145px;height:68px}.partner-set{gap:34px;padding-right:34px}.partner-track{animation-duration:24s}.partner-marquee{margin-left:-8px;margin-right:-8px}}

/* V2.6 partner-first products, persistent menus, specs */
.nav-drop{padding-bottom:18px;margin-bottom:-18px}
.dropdown{top:100%;margin-top:0}
.nav-drop.open .dropdown{display:grid}
.partner-mark{display:inline-flex;align-items:center;padding:5px 9px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;font-size:11px;font-weight:900;letter-spacing:.8px;margin-bottom:12px}
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0}
.product-card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;overflow:hidden;text-decoration:none;color:inherit}
.product-card img{width:100%;height:220px;object-fit:contain;background:#f2f3f4;padding:10px}
.product-card .card-body{padding:20px}.product-card h3{font-size:24px;margin:4px 0 8px}.product-card p{color:var(--muted);margin:0 0 12px}
.spec-table{width:100%;border-collapse:collapse;margin:18px 0 24px}.spec-table th,.spec-table td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}.spec-table th{width:36%;font-size:13px}.spec-table td{font-size:14px}
.download-bar{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.download-bar a{display:inline-flex;align-items:center;min-height:48px}
.product-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:42px;align-items:center}.product-hero img{width:100%;max-height:440px;object-fit:contain;background:#f2f3f4;border-radius:var(--radius);padding:12px}
.solution-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}.solution-flow article{padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.solution-flow strong{display:block;font-size:20px;margin-bottom:6px}
.used-alt{padding:22px;border-left:4px solid var(--red);background:#f5f6f7;margin-top:28px}.used-alt h3{margin:0 0 6px}
.gov-logo{max-width:320px;width:100%;height:auto;margin:8px 0 16px}
@media(max-width:900px){.product-grid,.solution-flow,.product-hero{grid-template-columns:1fr}.product-card img{height:260px}.product-hero{gap:20px}}

/* V2.7 deeper partner product catalog */
.small-lead{font-size:18px;max-width:760px}.product-visual{min-height:320px;display:flex;align-items:center;justify-content:center;background:#f1f3f4;border-radius:var(--radius-lg)}.partner-tile{width:82%;min-height:220px;background:#fff;border:1px solid var(--line);border-top:6px solid var(--red);border-radius:var(--radius);padding:36px;display:flex;flex-direction:column;justify-content:center;font-size:14px;font-weight:900;letter-spacing:1px}.partner-tile strong{font-size:36px;letter-spacing:-1.2px;margin:8px 0}.partner-tile span{font-size:13px;color:var(--muted);font-weight:700;letter-spacing:0}.equipment-menu{width:860px;grid-template-columns:repeat(3,1fr);max-height:74vh;overflow:auto}.equipment-menu>div:nth-child(4),.equipment-menu>div:nth-child(5){margin-top:8px}@media(max-width:900px){.partner-tile{width:100%;min-height:180px}.partner-tile strong{font-size:30px}}

/* V2.9: image-first product and solution presentation */
.product-intro{max-width:760px;font-size:1.05rem;margin:0 0 24px;color:#3f454b}
.product-card{overflow:hidden;background:#fff}
.product-card .product-thumb{display:block;width:100%;height:190px;object-fit:contain;background:#f4f5f6;padding:12px;border-bottom:1px solid #e5e7e9}
.product-card:hover .product-thumb{transform:scale(1.015)}
.product-card .product-thumb{transition:transform .15s ease}
.solution-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:38px;align-items:center}
.solution-visual{background:#fff;border:1px solid #e1e4e6;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 8px 28px rgba(0,0,0,.06)}
.solution-visual img{display:block;width:100%;height:300px;object-fit:contain;background:#f5f6f7;padding:12px}
.solution-visual-caption{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-top:1px solid #e1e4e6}
.solution-visual-caption strong{font-size:.82rem;letter-spacing:.08em;color:#c9202f}
.solution-visual-caption span{font-size:.94rem;color:#454a4e}
.visual-products-intro{margin:34px 0 16px;max-width:820px}
.visual-products-intro h2{margin-bottom:6px}
.detail-product-image{display:block;width:100%;max-height:430px;object-fit:contain;background:#f5f6f7;border:1px solid #e1e4e6;border-radius:var(--radius-lg);padding:12px}
@media(max-width:900px){
 .solution-hero-grid{grid-template-columns:1fr;gap:20px}
 .solution-visual img{height:240px}
 .product-card .product-thumb{height:160px}
}
@media(max-width:600px){
 .solution-visual img{height:205px}
 .product-card .product-thumb{height:145px}
}

/* V2.10 image-first product galleries */
.product-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin:28px 0}.product-gallery > img{width:100%;height:210px;object-fit:cover;border:1px solid var(--line);border-radius:var(--radius);background:#f4f5f6}.product-gallery > img:first-child{grid-row:span 2;height:432px;object-fit:contain;padding:10px}.product-family-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0 42px}.product-family-card{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:#fff;text-decoration:none}.product-family-card img{width:100%;height:210px;object-fit:contain;background:#f4f5f6;padding:10px}.product-family-card .card-body{padding:18px}.product-family-card h3{margin:4px 0 8px}.solution-showcase{display:grid;grid-template-columns:1.15fr .85fr;gap:24px;align-items:center;margin:28px 0}.solution-showcase .image-stack{display:grid;grid-template-columns:1fr 1fr;gap:10px}.solution-showcase .image-stack img{width:100%;height:190px;object-fit:cover;border-radius:var(--radius);background:#f4f5f6}.solution-showcase .image-stack img:first-child{grid-column:span 2;height:300px;object-fit:contain}.partner-inline{display:inline-flex;align-items:center;gap:8px;font-weight:900;font-size:13px;letter-spacing:.8px;color:#555;text-transform:uppercase;margin-bottom:8px}.video-link{display:inline-flex;margin-top:10px;font-weight:900}.spec-callout{background:#111;color:#fff;padding:22px;border-radius:var(--radius);margin:28px 0}.spec-callout h3{margin-bottom:8px}.spec-callout p{margin:0;color:#ddd}@media(max-width:900px){.product-gallery,.product-family-grid,.solution-showcase{grid-template-columns:1fr}.product-gallery > img,.product-gallery > img:first-child{height:auto;max-height:360px;grid-row:auto}.solution-showcase .image-stack img,.solution-showcase .image-stack img:first-child{grid-column:auto;height:auto;max-height:320px}.solution-showcase .image-stack{grid-template-columns:1fr}}

/* V2.11 compact interactive product galleries */
.product-gallery{display:block;margin:26px 0 34px;max-width:900px}
.product-gallery-main{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.product-gallery-main img{display:block;width:100%;height:440px;object-fit:contain;background:#fff;padding:12px;border:0;border-radius:0}
.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:52px;border:0;border-radius:var(--radius);background:rgba(17,17,17,.78);color:#fff;font-size:28px;line-height:1;cursor:pointer;z-index:2}
.gallery-arrow.prev{left:10px}.gallery-arrow.next{right:10px}.gallery-arrow:hover{background:#111}
.product-gallery-thumbs{display:flex;gap:10px;margin-top:10px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:thin}
.product-gallery-thumb{flex:0 0 116px;height:78px;border:2px solid transparent;border-radius:var(--radius);background:#f4f5f6;padding:3px;cursor:pointer}
.product-gallery-thumb img{width:100%;height:100%;object-fit:contain;background:#fff;border:0;border-radius:var(--radius);padding:0}
.product-gallery-thumb.active{border-color:#e5232e}
.product-gallery-caption{font-size:13px;color:#666;margin-top:7px}
@media(max-width:700px){.product-gallery-main img{height:300px;padding:8px}.gallery-arrow{width:42px;height:48px}.product-gallery-thumb{flex-basis:96px;height:68px}}

/* V2.13 visual product upgrade */
.gallery-note{font-size:13px;color:var(--muted);margin:-20px 0 28px}.specs-cue{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:34px 0 8px;padding:16px 18px;border:1px solid var(--line);border-left:4px solid var(--red);border-radius:var(--radius);background:#fff}.specs-cue strong{font-size:16px}.specs-cue span{color:var(--muted);flex:1 1 380px}.specs-cue a{font-weight:900;text-decoration:none}.product-hero>.detail-product-image{background:#fff}@media(max-width:700px){.specs-cue{align-items:flex-start}.gallery-note{margin-top:-18px}}

/* V2.14 homepage + gallery QA */
@media(min-width:1121px){
}
.home-equipment-showcase{margin:30px 0 38px}
.home-showcase-head{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:12px}
.home-showcase-head h2{margin:2px 0 0;font-size:clamp(27px,3vw,40px)}
.home-showcase-head p{max-width:620px;margin:0;color:var(--muted)}
.homepage-gallery{max-width:none;width:100%;margin:0}
.homepage-gallery .product-gallery-main{background:#f7f8f9}
.homepage-gallery .product-gallery-main img{height:440px;object-fit:contain;padding:16px}
.homepage-gallery .product-gallery-thumbs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;overflow:visible;padding:4px 0 8px}
.homepage-gallery .product-gallery-thumb{width:100%;height:94px;min-width:0;flex:none;padding:4px}
.homepage-gallery .product-gallery-thumb img{display:block;width:100%;height:100%;object-fit:contain;margin:0;position:static}
.home-gallery-links{display:flex;gap:18px;flex-wrap:wrap;margin-top:8px}
.home-gallery-links a{font-weight:900;font-size:14px;text-decoration:none}
.product-gallery-thumb{overflow:hidden}
.product-gallery-thumb img{display:block!important;position:static!important;inset:auto!important;max-width:100%!important;max-height:100%!important;margin:0!important}
@media(max-width:900px){
  .home-showcase-head{display:block}
  .home-showcase-head p{margin-top:8px}
  .homepage-gallery .product-gallery-main img{height:330px}
  .homepage-gallery .product-gallery-thumbs{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px}
  .homepage-gallery .product-gallery-thumb{flex:0 0 112px;height:78px}
}
@media(max-width:520px){.homepage-gallery .product-gallery-main img{height:260px}.home-equipment-showcase{margin:22px 0 30px}}

/* V2.16 home hero: solution/partner product rotator beside headline */
.home-hero-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(520px,1.08fr);gap:46px;align-items:center}
.home-hero-copy{padding:18px 0 8px}
.home-hero-copy .home-headline{max-width:none;margin:.15em 0 .18em}
.home-hero-copy .home-subhead{max-width:660px;margin:0 0 22px}
.home-hero-actions{margin-bottom:0}
.hero-product-rotator{min-width:0}
.hero-product-main{position:relative;display:block;height:430px;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:#f6f7f8;text-decoration:none}
.hero-product-main img{display:block;width:100%;height:100%;object-fit:contain;padding:16px;background:#fff}
.hero-product-tag{position:absolute;left:14px;bottom:14px;background:rgba(17,17,17,.9);color:#fff;padding:9px 12px;border-radius:var(--radius);font-size:13px;letter-spacing:.25px}
.hero-product-tag b{letter-spacing:.8px}
.hero-product-thumbs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:9px}
.hero-product-thumb{height:64px;min-width:0;padding:3px;border:2px solid transparent;border-radius:var(--radius);background:#f1f2f3;overflow:hidden;cursor:pointer}
.hero-product-thumb img{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.hero-product-thumb.active{border-color:var(--red)}
.hero-product-thumb:hover,.hero-product-thumb:focus-visible{border-color:#777;outline:none}
.hero-product-thumb.active:hover,.hero-product-thumb.active:focus-visible{border-color:var(--red)}
.hero-gallery-hint{font-size:12px;color:#777;margin-top:5px;text-align:right}
.hero .partner-strip{margin-top:28px}
@media(max-width:1120px){.home-hero-grid{grid-template-columns:minmax(0,.88fr) minmax(430px,1.12fr);gap:28px}.hero-product-main{height:380px}.hero-product-thumb{height:58px}}
@media(max-width:900px){.home-hero-grid{grid-template-columns:1fr;gap:20px}.home-hero-copy{padding-bottom:0}.hero-product-main{height:340px}.hero-product-thumbs{display:flex;overflow-x:auto;gap:8px;padding-bottom:4px}.hero-product-thumb{flex:0 0 92px;height:64px}.hero-gallery-hint{text-align:left}.hero .partner-strip{margin-top:20px}}
@media(max-width:520px){.hero-product-main{height:270px}.hero-product-thumb{flex-basis:82px;height:58px}.home-hero-actions .btn{width:100%}}

/* V2.17 clickable partner logos */
.partner-logo{color:inherit;text-decoration:none;border-radius:var(--radius);transition:background .15s ease,box-shadow .15s ease,transform .15s ease}.partner-logo:hover,.partner-logo:focus-visible{background:#f4f5f6;box-shadow:0 0 0 2px rgba(178,20,34,.16);transform:translateY(-1px);outline:none}

/* V2.18 homepage Product Stage: follows approved above-fold mockup */
body.home-stage-active{}
.top{display:none}
.header{background:#050505;border:0;box-shadow:none;position:sticky;top:0}
.header .head{height:92px}
.header .brand{color:#fff;font-size:31px;line-height:.92}
.header .brand b{color:var(--red)}
.header .brand small{color:#ddd;font-size:11px;margin-top:8px;font-weight:800;letter-spacing:.1px}
.header .nav>a,.header .nav-drop>a{color:#fff}
.header .nav{gap:27px}
.header .nav .btn{background:var(--red);border-color:var(--red);padding:12px 22px}
.home-stage{padding:0;background:#fff;overflow:hidden}
.stage-grid{display:grid;grid-template-columns:minmax(350px,.38fr) minmax(0,.62fr);gap:34px;align-items:center;min-height:575px;padding-top:45px;padding-bottom:20px}
.stage-copy{align-self:center;padding:0 0 36px}
.stage-headline{font-size:clamp(60px,5.4vw,88px);line-height:.9;letter-spacing:-3px;font-weight:950;margin:0;max-width:590px;text-transform:uppercase}
.stage-headline span{display:block;color:var(--red)}
.stage-rule{width:58px;height:5px;background:var(--red);margin:24px 0 20px}
.stage-subhead{font-size:22px;line-height:1.35;margin:0 0 24px;color:#262626}
.stage-actions{display:grid;gap:10px;max-width:360px}
.stage-actions .btn{width:100%;justify-content:space-between;min-height:58px;font-size:16px;border-radius:var(--radius)}
.stage-actions .stage-primary{background:var(--red);border-color:var(--red)}
.stage-actions .stage-call{background:#fff;color:#111!important;border-color:#555;justify-content:center}
.stage-product{position:relative;min-width:0;padding-top:8px;align-self:stretch;display:grid;grid-template-columns:1fr 280px;grid-template-rows:minmax(360px,1fr) auto auto;column-gap:20px;align-items:end}
.stage-product-image{grid-column:1/-1;grid-row:1;display:flex;align-items:center;justify-content:center;min-height:390px;text-decoration:none;background:transparent}
.stage-product-image img{width:100%;height:420px;object-fit:contain;object-position:center center;mix-blend-mode:multiply}
.stage-product-info{grid-column:2;grid-row:2;align-self:start;padding:0 0 6px;display:grid;gap:5px}
.stage-partner-mark{max-width:145px;max-height:48px;object-fit:contain;object-position:left center;margin-bottom:4px}
.stage-solution-title{font-size:19px;line-height:1.05;letter-spacing:.1px}
.stage-product-name{font-size:15px;color:#444}
.stage-view-link{font-size:14px;font-weight:900;color:var(--red);text-decoration:none;margin-top:5px}
.stage-dots{grid-column:1;grid-row:2;display:flex;justify-content:center;gap:17px;align-self:center;padding-bottom:8px}
.stage-dot{width:14px;height:14px;border-radius:50%;border:0;background:#c8c8c8;padding:0;cursor:pointer}
.stage-dot.active{background:var(--red)}
.stage-solutions{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid #ddd;padding:0}
.stage-solution{border:0!important;border-right:1px solid #ddd!important;border-radius:0!important;background:#fff!important;height:120px!important;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#111;font-size:14px;font-weight:900;cursor:pointer;padding:9px!important;position:relative;overflow:visible!important}
.stage-solution:last-child{border-right:0!important}
.stage-solution::after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:3px;background:transparent}
.stage-solution.active{color:var(--red)}
.stage-solution.active::after{background:var(--red)}
.solution-icon{width:54px;height:40px;display:grid;place-items:center}
.solution-icon svg{width:54px;height:40px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.stage-partners{background:#050505;color:#fff;padding:22px 0 26px;border-top:1px solid #111}
.stage-partner-heading{text-align:center;font-size:13px;font-weight:900;letter-spacing:.5px;margin-bottom:12px;color:#eee}
.stage-partners .partner-marquee{mask-image:linear-gradient(90deg,transparent 0,#000 3%,#000 97%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 3%,#000 97%,transparent 100%)}
.stage-partners .partner-logo{height:74px;width:180px;color:#fff;text-decoration:none;font-weight:950;font-size:20px;line-height:.85;text-align:center}
.stage-partners .partner-logo img{max-height:52px;filter:grayscale(1) brightness(0) invert(1);opacity:.96}
.stage-partners .partner-logo:hover img{filter:none;background:#fff;border-radius:var(--radius);padding:4px;opacity:1}
.stage-partners .partner-text{display:flex;align-items:center;justify-content:center}
.stage-partners .partner-track{animation-duration:34s}
.stage-partners:hover .partner-track{animation-play-state:paused}
@media(max-width:1120px){
  .header .head{height:76px}.header .brand{font-size:27px}.stage-grid{grid-template-columns:.42fr .58fr;gap:18px;min-height:525px}.stage-headline{font-size:64px}.stage-product{grid-template-columns:1fr 230px}.stage-product-image img{height:360px}.stage-solutions{grid-template-columns:repeat(3,1fr)}.stage-solution:nth-child(3){border-right:0!important}.stage-solution{height:105px!important}.stage-partners{padding-top:18px}
}
@media(max-width:900px){
  .header{background:#fff}.header .brand{color:#111}.header .brand small{color:#555}.stage-grid{grid-template-columns:1fr;min-height:0;padding-top:34px}.stage-copy{padding-bottom:0}.stage-headline{font-size:clamp(48px,13vw,72px);max-width:620px}.stage-subhead br{display:none}.stage-actions{max-width:none}.stage-product{grid-template-columns:1fr;grid-template-rows:auto auto auto;padding-top:0}.stage-product-image{grid-column:1;grid-row:1;min-height:280px}.stage-product-image img{height:330px}.stage-product-info{grid-column:1;grid-row:2;padding:0 8px 10px}.stage-dots{grid-column:1;grid-row:3;padding:8px 0 16px}.stage-solutions{grid-template-columns:repeat(2,1fr);overflow:visible}.stage-solution:nth-child(3){border-right:1px solid #ddd!important}.stage-solution:nth-child(even){border-right:0!important}.stage-partners .partner-logo{width:150px}.stage-partners .partner-heading{font-size:11px}
}
@media(max-width:520px){.stage-headline{font-size:52px}.stage-product-image img{height:260px}.stage-solutions{grid-template-columns:repeat(2,1fr)}.stage-solution{height:95px!important}.stage-solution span:last-child{font-size:12px}.solution-icon,.solution-icon svg{width:46px;height:34px}.stage-partners{padding-bottom:88px}}


/* V2.19 refinements */
.stage-partner-text{font-size:20px;font-weight:950;line-height:.88;letter-spacing:-.5px;text-transform:uppercase;color:#111;margin-bottom:4px}
.stage-partner-text[hidden]{display:none!important}

/* Keep troublesome dark partner marks readable on black without requiring hover. */
.stage-partners .partner-logo-readable{background:#fff;border-radius:var(--radius);padding:8px 12px;height:62px;margin-top:6px;margin-bottom:6px}
.stage-partners .partner-logo-readable img{filter:none!important;opacity:1!important;max-height:44px!important;background:transparent!important;padding:0!important}
.stage-partners .partner-logo-readable:hover{background:#fff}

/* Product photography should float on the page instead of looking like an image rectangle inside a card. */
.product-card img,.product-family-card img,.product-hero>.detail-product-image{background:transparent!important;border:0!important;box-shadow:none!important;mix-blend-mode:multiply}
.product-card,.product-family-card{overflow:visible}
.product-card img,.product-family-card img{padding:6px 12px!important}
.product-hero>.detail-product-image{padding:8px!important}

/* When a gallery uses clean white-background product photography, make the white stage disappear visually. */
.product-gallery-main{background:transparent!important;border-color:#e4e5e7}
.product-gallery-main img[src*="/assets/images/products/"]{background:transparent!important;mix-blend-mode:multiply}
.product-gallery-thumb img[src*="/assets/images/products/"]{background:transparent!important;mix-blend-mode:multiply}

@media(max-width:700px){
  .stage-partner-text{font-size:18px}
  .stage-partners .partner-logo-readable{height:58px;padding:7px 10px}
}


/* V2.20 local DMI selling voice, purchasing proof, news and experience */
.stage-subhead{max-width:520px;font-size:19px;line-height:1.45}
.stage-contracts{display:grid;gap:7px;margin-top:18px;max-width:520px}
.stage-contracts a{display:grid;grid-template-columns:1fr;gap:2px;padding:9px 12px;border-left:4px solid var(--red);background:#f3f3f3;color:#111;text-decoration:none}
.stage-contracts strong{font-size:12px;letter-spacing:.35px}.stage-contracts span{font-size:11px;color:#555}
.stage-contracts a:hover{background:#e9e9e9}
.home-news{padding-top:52px;padding-bottom:52px}
.news-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.news-card{display:flex;flex-direction:column;min-height:190px;padding:24px;border-top:4px solid var(--red);background:#f4f5f6;color:#111;text-decoration:none}
.news-card span{font-size:11px;font-weight:900;letter-spacing:.8px;color:var(--red);margin-bottom:12px}.news-card strong{font-size:20px;line-height:1.2}.news-card em{font-style:normal;font-size:13px;font-weight:900;margin-top:auto;padding-top:18px}
.news-card:hover{background:#eceeef}
.home-about{background:#fff;padding:var(--s-9) 0}.about-local{display:grid;grid-template-columns:270px 1fr;gap:54px;align-items:center}.about-years{min-height:220px;background:#111;color:#fff;display:flex;flex-direction:column;justify-content:center;padding:30px;border-bottom:7px solid var(--red)}.about-years strong{font-size:48px;line-height:.95;color:#fff}.about-years span{font-size:16px;font-weight:800;margin-top:12px;text-transform:uppercase;letter-spacing:.6px}.about-copy h2{max-width:780px}.about-copy p{max-width:850px}.about-promise{font-size:20px}
@media(max-width:1120px){.stage-contracts{grid-template-columns:1fr}.stage-subhead{font-size:17px}.news-cards{grid-template-columns:1fr 1fr}.news-card:last-child{grid-column:1/-1}.about-local{grid-template-columns:220px 1fr;gap:34px}.about-years strong{font-size:40px}}
@media(max-width:900px){.stage-contracts{margin-bottom:12px}.news-cards{grid-template-columns:1fr}.news-card:last-child{grid-column:auto}.about-local{grid-template-columns:1fr}.about-years{min-height:150px}.about-years strong{font-size:42px}.home-about{padding:var(--s-9) 0}}

/* V2.21 partner marquee: full-color logos on black, readable at rest, no hover gimmicks */
.stage-partners .partner-logo{
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
  transition:none !important;
}
.stage-partners .partner-logo img{
  filter:none !important;
  opacity:1 !important;
  background:transparent;
  padding:0;
}
.stage-partners .partner-logo:hover,
.stage-partners .partner-logo:focus-visible{
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
  outline:2px solid rgba(255,255,255,.28);
  outline-offset:3px;
}
.stage-partners .partner-logo:hover img,
.stage-partners .partner-logo:focus-visible img{
  filter:none !important;
  background:transparent !important;
  padding:0 !important;
  opacity:1 !important;
}
/* Dark artwork needs a light field so it stays legible on the black marquee. */
.stage-partners .partner-logo-readable{
  background:#fff !important;
  border-radius:var(--radius);
  height:56px;
  margin-top:9px;
  margin-bottom:9px;
  padding:7px 12px;
}
.stage-partners .partner-logo-readable:hover,
.stage-partners .partner-logo-readable:focus-visible{
  background:#fff !important;
}
.stage-partners .partner-logo-readable img{
  max-height:42px;
}
/* Keep the logos moving; no hover pause on this brand strip. */
.stage-partners:hover .partner-track{animation-play-state:running !important}
.stage-partners .partner-text{
  color:#fff;
}

/* V2.22 — match approved homepage above-fold mockup: tighter, better balanced, image pulled up */
@media (min-width:1121px){
  .home-stage .stage-grid{
    grid-template-columns:minmax(390px,.39fr) minmax(0,.61fr);
    gap:26px;
    align-items:start;
    min-height:430px;
    padding-top:28px;
    padding-bottom:12px;
  }
  .home-stage .stage-copy{
    align-self:start;
    padding:0;
    overflow:visible;
    position:relative;
    z-index:3;
  }
  .home-stage .stage-headline{
    font-size:clamp(58px,4.7vw,74px);
    line-height:.88;
    letter-spacing:-2.5px;
    max-width:450px;
  }
  .home-stage .stage-rule{margin:17px 0 14px;width:48px;height:4px}
  .home-stage .stage-subhead{
    max-width:430px;
    font-size:16px;
    line-height:1.45;
    margin-bottom:16px;
  }
  .home-stage .stage-actions{
    grid-template-columns:1fr 1.12fr;
    gap:12px;
    max-width:540px;
  }
  .home-stage .stage-actions .btn{
    min-height:47px;
    font-size:13px;
    padding:10px 15px;
  }
  .home-stage .stage-contracts{
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    width:690px;
    max-width:none;
    margin-top:14px;
  }
  .home-stage .stage-contracts a{
    min-height:74px;
    padding:10px 12px;
    border-left:3px solid var(--red);
  }
  .home-stage .stage-contracts strong{font-size:10px;line-height:1.15}
  .home-stage .stage-contracts span{font-size:9px;line-height:1.25}

  .home-stage .stage-product{
    align-self:start;
    padding-top:0;
    min-height:0;
    grid-template-columns:minmax(0,1fr) 245px;
    grid-template-rows:300px auto;
    column-gap:16px;
  }
  .home-stage .stage-product-image{
    min-height:0;
    height:300px;
    align-items:flex-start;
    justify-content:center;
    padding-top:0;
  }
  .home-stage .stage-product-image img{
    height:300px;
    width:100%;
    object-fit:contain;
    object-position:center top;
  }
  .home-stage .stage-product-info{
    padding:0 0 4px;
    gap:4px;
  }
  .home-stage .stage-partner-mark{max-width:120px;max-height:38px;margin-bottom:2px}
  .home-stage .stage-partner-text{font-size:17px}
  .home-stage .stage-solution-title{font-size:16px}
  .home-stage .stage-product-name{font-size:12px}
  .home-stage .stage-view-link{font-size:12px;margin-top:3px}
  .home-stage .stage-dots{gap:12px;padding-bottom:6px}
  .home-stage .stage-dot{width:9px;height:9px}

  .home-stage .stage-solutions{margin-top:0}
  .home-stage .stage-solution{height:88px!important;gap:5px;font-size:11px}
  .home-stage .solution-icon,.home-stage .solution-icon svg{width:40px;height:30px}

  .home-stage .stage-partners{padding:12px 0 15px}
  .home-stage .stage-partner-heading{font-size:10px;margin-bottom:6px}
  .home-stage .stage-partners .partner-logo{height:54px;width:165px}
  .home-stage .stage-partners .partner-logo img{max-height:38px}
  .home-stage .stage-partners .partner-logo-readable{height:44px;margin-top:5px;margin-bottom:5px;padding:5px 10px}
  .home-stage .stage-partners .partner-logo-readable img{max-height:33px!important}
}

/* V2.23 — single-artwork partner marquee */
.partner-art-strip{background:#000;padding:0!important;overflow:hidden;border:0}
.partner-art-marquee{width:100%;overflow:hidden;line-height:0;background:#a69636}
.partner-art-track{display:flex;width:max-content;will-change:transform;animation:dmiPartnerArtScroll 34s linear infinite}
.partner-art-track img{display:block;flex:0 0 auto;width:auto;height:clamp(92px,8.1vw,132px);max-width:none;object-fit:contain}
@keyframes dmiPartnerArtScroll{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media (max-width:700px){.partner-art-track{animation-duration:27s}.partner-art-track img{height:96px}}
@media (prefers-reduced-motion:reduce){.partner-art-track{animation:none}}


/* V2.24 — static partner banner */
.partner-art-static{background:#a69636!important;line-height:0;overflow:hidden}
.partner-art-static>img{display:block;width:100%;height:auto;max-width:none;margin:0 auto}
@media (max-width:700px){.partner-art-static{overflow-x:hidden}.partner-art-static>img{width:auto;height:clamp(76px,24vw,104px);max-width:none;position:relative;left:50%;transform:translateX(-50%)}}

/* V2.25 — product image isolation pass */
img[src$="total-patcher-t7500-cutout.webp"],
img[src$="roadsaver-gallery-main-cutout.webp"]{background:transparent!important;mix-blend-mode:normal!important;box-shadow:none!important;border:0!important;}
.product-card img,.product-family-card img,.product-hero>.detail-product-image{background:transparent!important;}
/* Field and used-equipment photography intentionally retains its real environment. */


/* V2.26 scan-first solution + product system */
.section-eyebrow{margin:52px 0 8px;color:var(--red);font-size:12px;font-weight:900;letter-spacing:1.8px;text-transform:uppercase}
.section-block{margin-top:0}
.visual-products-intro{margin:0 0 18px;max-width:760px}
.visual-products-intro .section-eyebrow{margin-top:52px}
.visual-products-intro h2{font-size:clamp(34px,3.7vw,48px);margin:0 0 8px;line-height:1.02}
.visual-products-intro p{font-size:17px;line-height:1.45;color:var(--muted);margin:0}
.solution-showcase{margin:12px 0 54px;gap:42px}
.solution-showcase h2{font-size:clamp(36px,4vw,50px);margin-bottom:10px}
.solution-showcase p{font-size:17px;line-height:1.5;color:#4d5257}
.solution-showcase .image-stack{gap:4px;align-items:center}
.solution-showcase .image-stack img{background:transparent!important;border:0!important;border-radius:0!important}
.solution-showcase .image-stack img:first-child{height:330px;padding:0}
.solution-flow{margin:0 0 12px;gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.solution-flow article{position:relative;border:0;border-right:1px solid var(--line);border-radius:0;padding:26px 28px 28px;background:#fff;min-height:155px}
.solution-flow article:last-child{border-right:0}
.solution-flow .step-number{display:block;font-size:36px;line-height:1;font-weight:900;color:var(--red);letter-spacing:-2px;margin-bottom:15px}
.solution-flow strong{font-size:20px;line-height:1.1;margin-bottom:7px}.solution-flow span:not(.step-number){font-size:15px;color:var(--muted);line-height:1.4}
.product-grid{gap:18px;margin-top:18px}
.product-card.scan-card{border:1px solid #e0e3e5;box-shadow:0 2px 0 rgba(0,0,0,.02);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.product-card.scan-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.08);border-color:#c8ccd0}
.product-card.scan-card .product-thumb{height:210px;background:transparent!important;border-bottom:0;padding:14px 18px 0}
.product-card.scan-card .card-body{padding:17px 20px 22px;border-top:3px solid var(--red)}
.product-card.scan-card h3{font-size:27px;margin:3px 0 6px}.product-card.scan-card p{font-size:15px;line-height:1.42;min-height:42px}
.product-card.scan-card strong{font-size:14px;letter-spacing:.1px}
.material-visual{height:155px;display:flex;align-items:center;justify-content:center;padding:20px;background:#f4f5f6;font-size:27px;font-weight:900;letter-spacing:-.6px;text-align:center}
.scan-callout{margin-top:34px}
.used-alt.scan-callout{padding:24px 26px}.used-alt.scan-callout h3{font-size:25px}
/* Product detail: picture -> benefits/numbers -> documents */
.product-hero>.detail-product-image{background:transparent!important;border:0!important;padding:0!important;border-radius:0!important}
.detail-gallery{margin:12px 0 48px;padding-bottom:28px;border-bottom:1px solid var(--line)}
.detail-gallery>img{background:transparent}.detail-gallery>img:first-child{border:0;background:transparent}
.scan-spec-table{margin-top:10px;border-top:3px solid #17191b}.scan-spec-table th,.scan-spec-table td{padding:14px 14px}.scan-spec-table th{font-size:14px;text-transform:uppercase;letter-spacing:.5px}.scan-spec-table td{font-size:16px;font-weight:700}
.document-actions{padding:20px;background:#f3f4f5;border-radius:var(--radius);margin:24px 0 50px}.document-actions:before{content:'BROCHURES & TECHNICAL DOCUMENTS';width:100%;display:block;color:var(--red);font-size:11px;font-weight:900;letter-spacing:1.5px}
.content>.wrap>.section-eyebrow+h2{font-size:clamp(34px,3.7vw,48px);margin-bottom:10px}
@media(max-width:900px){.solution-showcase{gap:20px;margin-bottom:40px}.solution-flow{grid-template-columns:1fr;border:0}.solution-flow article{border:0;border-bottom:1px solid var(--line);min-height:0;padding:22px 4px}.solution-flow .step-number{font-size:30px}.product-card.scan-card .product-thumb{height:230px}.material-visual{height:130px}.section-eyebrow{margin-top:40px}}

.solution-material-visual{min-height:280px;display:flex;align-items:center;justify-content:center;font-size:clamp(28px,4vw,52px);font-weight:900;letter-spacing:-.03em;background:#f4f5f6;color:#151719}


/* --- v2.28 audit fixes --- */

/* Eyebrow red measured 4.29:1 on --soft (#f3f4f5); fails WCAG AA for small caps.
   A darker red on soft/tinted panels clears 4.5:1 without touching button red. */
:root{--red-on-soft:#c8151d}
.section.soft .eyebrow,.section.soft .section-eyebrow,
.page-hero .eyebrow,.soft .eyebrow,.state-pick .eyebrow,
.sc-state .eyebrow,.gov-help .eyebrow,.proof-label,
.news-card span,.notice .eyebrow,.callout .eyebrow,
.document-actions:before{color:var(--red-on-soft)}

/* Any red small text sitting on a tinted (non-white) panel needs the darker red.
   Red #e31b23 measures 4.29-4.44:1 on the greys used here; #c8151d clears 4.5:1. */
.card .eyebrow,.panel .eyebrow,.tint .eyebrow{color:var(--red-on-soft)}

/* Phone number is the primary CTA site-wide; never break it across lines. */
a[href^="tel:"]{white-space:nowrap}
.btn[href^="tel:"]{white-space:nowrap}

/* Used equipment: a single listing should read as a featured machine,
   not as a grid with one item in it. Grid engages from two listings up. */
.used-grid{display:grid;gap:26px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.used-grid.single,
.used-grid:has(> .card:only-child){grid-template-columns:minmax(0,1fr);gap:0}
.used-grid.single > .card,
.used-grid > .card:only-child{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);
  gap:0;align-items:stretch;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.used-grid.single > .card img,
.used-grid > .card:only-child img{width:100%;height:100%;min-height:380px;object-fit:cover}
.used-grid.single > .card .card-body,
.used-grid > .card:only-child .card-body{padding:38px 36px;display:flex;flex-direction:column;justify-content:center}
.used-grid.single > .card h2,
.used-grid > .card:only-child h2{font-size:clamp(28px,3.4vw,42px);line-height:1.05;margin:14px 0 6px}
.used-grid.single > .card .price,
.used-grid > .card:only-child .price{font-size:clamp(26px,3vw,36px);font-weight:800;margin-bottom:6px}
.used-grid.single > .card .quick,
.used-grid > .card:only-child .quick{margin-top:22px}
@media(max-width:820px){
  .used-grid.single > .card,
  .used-grid > .card:only-child{grid-template-columns:minmax(0,1fr)}
  .used-grid.single > .card img,
  .used-grid > .card:only-child img{min-height:240px}
  .used-grid.single > .card .card-body,
  .used-grid > .card:only-child .card-body{padding:26px 22px}
}
/* Keep the confirmation notice tied to the card rather than spanning the page. */
.used-note{max-width:900px}

/* Netlify form honeypot — never visible, never focusable. */
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

/* ==========================================================================
   V2.29 — "What's on the lot" used-equipment page
   The page is category-complete, not inventory-complete: every category DMI
   covers is always present, so a thin lot never reads as an empty page, and
   the redirect to new equipment happens where the visitor's interest already is.
   ========================================================================== */

.lot-hero{background:var(--soft);padding:var(--s-9) 0 44px;border-bottom:1px solid var(--line)}
.lot-hero h1{font-size:clamp(38px,6vw,68px);line-height:.98;letter-spacing:-.02em;margin:10px 0 14px}
.lot-hero .lead{max-width:640px;font-size:clamp(16px,1.5vw,19px);color:var(--muted);margin:0}
.lot-updated{margin:24px 0 0;font-size:14px;color:var(--muted);display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.lot-updated strong{color:var(--ink)}
.lot-dot{width:8px;height:8px;border-radius:50%;background:#1f9d4d;flex:none}
.lot-count{color:var(--ink);font-weight:700}

.lot-cat{padding:var(--s-9) 0}
.lot-cat.soft{background:var(--soft)}
.lot-cat-head{display:flex;align-items:baseline;justify-content:space-between;gap:18px;
  border-bottom:3px solid var(--ink);padding-bottom:12px;margin-bottom:28px;flex-wrap:wrap}
.lot-cat-head h2{font-size:clamp(24px,3vw,34px);line-height:1;margin:0;letter-spacing:-.01em}
.lot-tally{font-size:12px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;
  color:var(--muted);white-space:nowrap}
.lot-tally-has{color:var(--paper);background:var(--ink);padding:5px 11px;border-radius:var(--radius)}

.lot-row{display:grid;gap:22px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));align-items:start}
.lot-item{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper);
  display:flex;flex-direction:column}
.lot-shot{background:#fff;border-bottom:1px solid var(--line)}
.lot-shot img{display:block;width:100%;height:210px;object-fit:cover}
.lot-meta{padding:20px 20px 22px;display:flex;flex-direction:column;gap:0}
.lot-meta h3{font-size:20px;line-height:1.15;margin:0 0 6px}
.lot-price{font-size:28px;font-weight:900;letter-spacing:-.02em;margin:0 0 4px}
.lot-spec{font-size:14px;color:var(--muted);margin:0 0 14px;line-height:1.45}
.lot-buyrent{font-size:15px;font-weight:700;margin:0 0 14px}
.lot-meta .btn{display:block;text-align:center;margin:0 0 10px;white-space:nowrap}
.lot-ask{font-size:14px;font-weight:700;text-align:center}

/* A single listing in a category shouldn't stretch to fill the whole row. */
.lot-row:has(> .lot-item:only-child){grid-template-columns:minmax(0,460px)}

.lot-item-new{border-color:var(--ink)}
.lot-newtag{display:inline-block;font-size:11px;font-weight:900;letter-spacing:.09em;
  background:var(--ink);color:var(--paper);padding:4px 9px;border-radius:var(--radius);margin-bottom:10px;align-self:flex-start}

.lot-empty{font-size:16px;color:var(--muted);margin:0 0 18px}
.lot-newnote{margin:26px 0 0;padding:16px 20px;border-left:4px solid var(--red);
  background:var(--paper);font-size:15px;line-height:1.55;max-width:940px}
.lot-cat:not(.soft) .lot-newnote{background:var(--soft)}
.lot-newnote strong{display:inline}

.lot-want{background:var(--ink);color:var(--paper);padding:var(--s-9) 0}
.lot-want .eyebrow{color:#ff5a60}
.lot-want h2{font-size:clamp(26px,3.4vw,40px);line-height:1.02;margin:10px 0 14px;letter-spacing:-.015em}
.lot-want p{color:#d7d9dc;font-size:16px;line-height:1.6;margin:0 0 16px;max-width:480px}
.lot-want-grid{display:grid;gap:44px;grid-template-columns:minmax(0,1fr) minmax(0,420px);align-items:start}
.lot-want-call{margin:24px 0 0}
.lot-want-form{background:var(--paper);border-radius:var(--radius);padding:26px}
.lot-want-form label{display:block;font-size:13px;font-weight:800;color:var(--ink);margin:0 0 6px}
.lot-want-form input{width:100%;padding:11px 12px;margin:0 0 16px;border:1px solid #b9bec4;
  border-radius:var(--radius);font:inherit;font-size:15px;background:#fff;color:var(--ink)}
.lot-want-form input:focus-visible{outline:3px solid var(--red);outline-offset:1px;border-color:var(--ink)}
.lot-want-form .btn{width:100%;margin-top:4px}

@media(max-width:900px){
  .lot-want-grid{grid-template-columns:minmax(0,1fr);gap:30px}
  .lot-want p{max-width:none}
}
@media(max-width:560px){
  .lot-cat{padding:var(--s-9) 0}
  .lot-row{grid-template-columns:minmax(0,1fr)}
  .lot-row:has(> .lot-item:only-child){grid-template-columns:minmax(0,1fr)}
  .lot-shot img{height:190px}
  .lot-cat-head{border-bottom-width:2px}
}

/* ==========================================================================
   V2.30 — MOBILE RESTRUCTURE
   The mobile homepage ran ~20 screens with ~15 full-width CTAs, every section
   at identical weight. These rules give the page a hierarchy: one primary
   action per section, credentials condensed, redundant blocks removed.
   ========================================================================== */

@media(max-width:760px){

  /* --- Hero: headline gets bigger, not smaller. Condensed display earns it. */
  .stage-headline{font-size:clamp(2.75rem,11vw,4rem);line-height:.9}
  .home-stage .lead{font-size:var(--t-base);margin-bottom:var(--s-5)}

  /* Primary action leads; the phone number becomes a quieter second. */
  .home-stage .btn+.btn{background:transparent;color:var(--ink);border-color:var(--ink)}

  /* --- Contract credentials: three stacked blocks ate a full screen.
     Condense to a scannable list with the contract number leading. */
  .stage-contracts{display:block;border-top:1px solid var(--line);margin-top:var(--s-5);padding-top:var(--s-4)}
  .stage-contracts a{display:block;padding:var(--s-3) 0;border:0;
    border-bottom:1px solid var(--line);margin:0;text-decoration:none}
  .stage-contracts a:last-child{border-bottom:0}
  .stage-contracts strong{display:block;font-family:var(--display);font-size:var(--t-base);
    letter-spacing:.03em;text-transform:uppercase;color:var(--ink);line-height:1.15}
  .stage-contracts span{display:block;font-size:var(--t-xs);color:var(--muted);
    line-height:1.35;margin-top:2px}

  /* --- Solution router: 6 cells across was ~55px each. Two rows of three. */
  .stage-solutions{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stage-solution{min-height:88px;padding:var(--s-3) var(--s-2);gap:var(--s-2)}
  .stage-solution span{font-size:var(--t-xs);letter-spacing:.03em;line-height:1.15}
  .stage-solution svg{width:30px;height:30px}

  /* --- Partner band: six logos in one row on a gold road photo was illegible.
     Two rows of three on a flat dark ground, normalized optical weight. */
  .partner-art-strip,.partner-art-static{background:var(--ink);padding:var(--s-6) 0}
  .partner-art-strip img,.partner-art-static img{width:100%;height:auto;display:block}
  

  /* --- News: three full cards ran three screens. Show one, link the rest. */
  .news-cards{grid-template-columns:minmax(0,1fr);gap:var(--s-4)}
  .news-cards>*:nth-child(n+2){display:none}
  .home-news .btn{width:100%}

  /* --- Used: the "want to see more machines?" card sat next to a machine.
     Redundant on mobile; the section header link already says it. */
  .sales-grid .teaser{display:none}

  /* --- Two-panel row: stack with real separation rather than card borders. */
  .split{grid-template-columns:minmax(0,1fr);gap:var(--s-6)}
  .split .panel{border:0;border-top:3px solid var(--ink);border-radius:0;
    padding:var(--s-5) 0 0;background:transparent}

  /* --- "Since 1974" + "Built here. Still here." were two blocks, one job. */
  .about-years{display:inline-block;background:var(--ink);color:#fff;
    padding:var(--s-3) var(--s-4);border-radius:var(--radius);margin-bottom:var(--s-4);
    font-family:var(--display);font-size:var(--t-lg);line-height:1.1}
  .about-years strong{display:block;font-size:var(--t-xl);line-height:1}
  .about-years span{display:block;font-size:var(--t-xs);letter-spacing:.06em;text-transform:uppercase;opacity:.8}
  .about-copy>.eyebrow{display:none}

  /* --- Button hierarchy: one filled button per section, rest become links. */
  .section .btn.dark+.btn,.about-copy .btn+.btn{
    background:transparent;color:var(--ink);border-color:var(--ink)}

  /* --- Sticky bar was overlapping the footer's last rows. */
  body{padding-bottom:64px}
  .bottom-actions{font-size:var(--t-sm);letter-spacing:.03em}
  .bottom-actions a{min-height:52px;display:flex;align-items:center;justify-content:center}

  /* --- Kill the dead gaps: consecutive same-background sections double-pad. */
  .section+.section{padding-top:var(--s-8)}
  .section.soft+.section.soft{padding-top:0}
}

/* Tap targets everywhere, not just mobile. */
@media(pointer:coarse){
  a,button{min-height:44px}
  .lot-ask,.link-action{display:inline-flex;align-items:center;min-height:44px}
}

/* ==========================================================================
   V2.31 — feedback pass
   ========================================================================== */

/* --- 1. Rotator dots were sitting under the product info card.
   Give them their own full-width row beneath everything on the stage. --- */
/* .stage-dots is a grid child of .stage-product (image row 1, info row 2).
   It was sharing row 2 with the info card, which crowded it. Own row below. */
.stage-product-info{grid-column:1/-1!important;grid-row:2!important;
  justify-items:start;text-align:left}
.stage-dots{grid-column:1/-1!important;grid-row:3!important;
  justify-content:center;padding:var(--s-4) 0 var(--s-2)!important;
  position:relative;z-index:2;gap:14px}
.stage-dot{width:9px;height:9px;border-radius:50%;border:0;background:#c3c7cb;
  cursor:pointer;padding:0;transition:background .15s,transform .15s}
.stage-dot.active{background:var(--red);transform:scale(1.25)}
.stage-dot:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.stage-product-info{position:relative;z-index:1}

/* --- 2. Contract credentials. Rewritten as a plain flex column: the previous
   version used a ::before pseudo-element as a grid item and a max-width wider
   than its own column, which is what staggered and overlapped the cards. --- */
.stage-contracts{display:flex!important;flex-direction:column;gap:var(--s-2);
  margin-top:var(--s-5);max-width:100%!important;width:100%}
.stage-contracts a{
  display:block!important;width:100%;box-sizing:border-box;
  padding:var(--s-3) var(--s-4);
  border-left:4px solid var(--red);border-radius:0 var(--radius) var(--radius) 0;
  background:#fff;box-shadow:0 1px 2px rgba(20,22,25,.10);
  text-decoration:none;transition:box-shadow .14s,border-color .14s}
.stage-contracts a:hover{background:#fff;border-left-color:var(--ink);
  box-shadow:0 3px 10px rgba(20,22,25,.14)}
.stage-contracts strong{
  display:block;font-family:var(--ui);font-size:var(--t-base)!important;font-weight:700;
  letter-spacing:-.005em;text-transform:none;color:var(--ink);line-height:1.2}
.stage-contracts span{display:block;font-family:var(--ui);font-size:var(--t-xs)!important;
  font-weight:400;color:var(--muted);line-height:1.4;margin-top:2px;letter-spacing:0}
.stage-contracts-label{display:block;font-family:var(--ui);font-size:var(--t-xs);
  font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);margin:var(--s-5) 0 var(--s-2)}
.stage-contracts+.stage-contracts-label{margin-top:0}

/* --- 3. Partner strip was flush against the solution row and cut off the
   red active-underline. Give the router room to finish. --- */
.stage-solutions{margin-bottom:0;padding-bottom:3px}
.stage-solution::after{bottom:0}
.partner-art-static,.partner-art-strip{margin-top:var(--s-5)!important;
  border-top:1px solid var(--line)}

/* --- 4. With Plex carrying small copy, the tracking compensation the condensed
   face needed is gone. Card titles come back DOWN a step and stay readable. --- */
h3,.lot-meta h3,.stage-product-name,.stage-solution-title,
.news-card h3,.card h3,.panel h3{letter-spacing:-.005em}
.eyebrow,.section-eyebrow,.lot-tally,.lot-newtag,.badge,.bottom-actions a{
  letter-spacing:.08em}
.lot-meta h3{font-size:var(--t-lg);font-weight:600;line-height:1.25;margin-bottom:var(--s-2)}
.stage-solution{font-family:var(--ui);font-size:var(--t-xs)!important;font-weight:600!important;
  letter-spacing:.06em}
.lot-price{font-size:clamp(1.75rem,1.4rem + 1.4vw,2.375rem);letter-spacing:-.01em;
  line-height:1;margin-bottom:var(--s-2)}
.lot-spec{font-family:var(--body);letter-spacing:0;font-size:var(--t-base)}
.lot-buyrent{font-family:var(--display);font-size:var(--t-base);letter-spacing:.03em;
  text-transform:uppercase}

/* ==========================================================================
   V2.33 — About page
   ========================================================================== */
.about-intro{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:var(--s-8);align-items:start}
.about-intro-copy p{font-size:var(--t-lg);line-height:1.55}
.about-promise strong{font-family:var(--ui);font-weight:700;color:var(--ink)}
.about-facts{display:flex;flex-direction:column;gap:var(--s-4)}
.about-fact{border-left:4px solid var(--red);padding:var(--s-2) 0 var(--s-2) var(--s-4)}
.about-fact strong{display:block;font-family:var(--display);font-size:var(--t-xl);line-height:1}
.about-fact span{display:block;font-family:var(--ui);font-size:var(--t-sm);color:var(--muted);margin-top:2px}

.about-pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:var(--s-7) var(--s-8);margin-top:var(--s-6)}
.about-pillar h3{margin:0 0 var(--s-2);padding-top:var(--s-3);border-top:3px solid var(--ink)}
.about-pillar p{margin:0 0 var(--s-3)}

.about-contact .about-locations{display:grid;gap:var(--s-5);align-content:start}
.about-loc strong{display:block;font-family:var(--ui);font-size:var(--t-xs);font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:#9aa0a6;margin-bottom:var(--s-1)}
.about-loc p{margin:0;color:#e4e6e8;line-height:1.5}
.about-contact .quick{display:flex;gap:var(--s-3);flex-wrap:wrap;margin-top:var(--s-5)}
.about-contact .btn.ghost{color:#fff;border-color:#fff}
.about-contact .btn.ghost:hover{background:#fff;color:var(--ink)}

@media(max-width:860px){
  .about-intro{grid-template-columns:minmax(0,1fr);gap:var(--s-6)}
  .about-pillars{gap:var(--s-6)}
}
.footer-addr{font-size:var(--t-sm);line-height:1.55;margin-top:var(--s-3)}
.footer-addr span{color:#9aa0a6}

/* Service page: the form column stopped at ~60% and left the rest blank.
   The repair-shop scope now occupies it and answers what DMI actually services. */
.svc-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);
  gap:var(--s-8);align-items:start}
.svc-form{max-width:560px}
.svc-scope{background:var(--soft);border-radius:var(--radius);padding:var(--s-6)}
.svc-scope h3{margin:var(--s-2) 0 var(--s-3)}
.svc-list{margin:0 0 var(--s-4);padding-left:var(--s-5)}
.svc-list li{margin-bottom:var(--s-2);line-height:1.5}
.svc-note{font-size:var(--t-sm);line-height:1.55;padding-top:var(--s-4);
  border-top:1px solid var(--line)}
.svc-visit{margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--line)}
.svc-visit strong{display:block;font-family:var(--ui);font-size:var(--t-xs);font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--s-1)}
.svc-visit p{margin:0}
@media(max-width:860px){
  .svc-grid{grid-template-columns:minmax(0,1fr);gap:var(--s-6)}
  .svc-form{max-width:none}
}
.footer-social{display:flex;gap:var(--s-4);margin-top:var(--s-5);
  padding-top:var(--s-4);border-top:1px solid rgba(255,255,255,.14)}
.footer-social a{display:inline-flex;align-items:center;gap:var(--s-2);
  font-family:var(--ui);font-size:var(--t-sm);text-decoration:none;min-height:44px}
.footer-social a:hover{color:#fff}
.footer-social svg{flex:none}

/* ==========================================================================
   V2.41 — HERO. Single authoritative block. Supersedes V2.36–V2.40, which are
   deleted. No negative margins and no percentage bleed math: percentages on a
   grid item resolve against the grid area, not the viewport, which is why the
   previous version overflowed and pushed the caption off-screen.

   Layout: the hero section spans the FULL viewport. The copy column is padded
   in by the page gutter; the image column simply runs to the right edge because
   nothing constrains it. Deterministic.
   ========================================================================== */

:root{--gutter:clamp(20px,4.5vw,88px)}
.wrap{width:min(var(--max),calc(100% - (var(--gutter) * 2)))}

/* Hero opts out of the centred container entirely. */
.hero > .wrap.stage-grid,
.hero .stage-grid{
  width:100%!important;max-width:none!important;margin:0!important;
  padding:0 0 0 var(--gutter)!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1.7fr)!important;
  gap:clamp(24px,3vw,56px)!important;
  align-items:stretch!important;
  /* Height tracks WIDTH, not viewport height, so the frame stays near the
     3:2 of the source files. A frame taller than 3:2 makes object-fit:cover
     crop the SIDES and chop the machine's nose or tail off. */
  min-height:clamp(400px,39vw,780px)!important}

.stage-copy{align-self:center!important;padding:0!important;min-width:0;max-width:600px}

/* Product column: full height, runs to the viewport edge. */
.stage-product{
  position:relative!important;display:block!important;
  height:100%!important;width:100%!important;
  margin:0!important;padding:0!important;
  grid-template-columns:none!important;grid-template-rows:none!important;
  align-self:stretch!important}

.stage-product-image{
  display:block!important;height:100%!important;width:100%!important;
  min-height:0!important;padding:0!important;margin:0!important}
.stage-product-image img{
  width:100%!important;height:100%!important;
  aspect-ratio:auto!important;max-height:none!important;min-height:0!important;
  object-fit:cover!important;object-position:center center!important;
  mix-blend-mode:normal!important;
  border-radius:var(--radius) 0 0 var(--radius)!important;
  background:#fff;display:block}

/* Caption: inside the frame, bottom-right, inset by the page gutter so it can
   never leave the screen. */
.stage-product-info{
  position:absolute!important;
  right:var(--gutter)!important;bottom:clamp(16px,2.4vw,28px)!important;
  left:auto!important;top:auto!important;
  z-index:3!important;
  display:flex!important;flex-direction:column;align-items:flex-end;
  text-align:right;gap:2px;
  margin:0!important;padding:12px 16px!important;
  background:rgba(255,255,255,.88);backdrop-filter:blur(8px);
  border-radius:var(--radius);
  max-width:min(320px,44vw);
  grid-column:auto!important;grid-row:auto!important}
.stage-partner-text{font-size:var(--t-xs);color:var(--muted);font-weight:600;
  letter-spacing:.06em;text-transform:uppercase}
.stage-solution-title{font-size:var(--t-base)!important;line-height:1.15;
  font-weight:700;color:var(--ink);text-transform:none;letter-spacing:-.005em}
.stage-product-name{font-size:var(--t-sm)!important;line-height:1.35;color:var(--muted)}
.stage-view-link{font-size:var(--t-xs)!important;margin-top:4px;font-weight:600;
  letter-spacing:.05em;color:var(--red);text-decoration:none;
  border-bottom:2px solid var(--red);padding-bottom:1px}

/* Dots: inside the frame, bottom-left. */
.stage-dots{
  position:absolute!important;
  left:clamp(16px,2vw,28px)!important;bottom:clamp(20px,2.6vw,32px)!important;
  right:auto!important;top:auto!important;
  z-index:3!important;display:flex!important;gap:12px;
  justify-content:flex-start!important;padding:0!important;margin:0!important;
  grid-column:auto!important;grid-row:auto!important}
.stage-dot{width:9px;height:9px;border-radius:50%;border:0;padding:0;
  background:#c3c7cb;box-shadow:0 0 0 3px rgba(255,255,255,.75);cursor:pointer}
.stage-dot.active{background:var(--red)}

/* Left column type. */
.stage-headline{font-size:clamp(2.5rem,3.5vw,4.25rem)!important;line-height:.92;
  letter-spacing:-.01em}
.stage-subhead{max-width:36ch;font-size:var(--t-base);line-height:1.55;color:var(--muted)}
.stage-contracts{margin-top:var(--s-4);max-width:100%}

/* Solution router aligns with the copy column's gutter. */
.stage-solutions.wrap{width:calc(100% - (var(--gutter) * 2))}

@media(max-width:900px){
  .hero > .wrap.stage-grid,.hero .stage-grid{
    grid-template-columns:minmax(0,1fr)!important;
    padding:0 var(--gutter)!important;min-height:0!important;align-items:start!important}
  .stage-copy{align-self:start!important}
  .stage-product{height:auto!important}
  .stage-product-image img{
    height:clamp(240px,56vw,400px)!important;border-radius:var(--radius)!important}
  .stage-product-info{
    position:static!important;background:none;backdrop-filter:none;
    padding:12px 0 0!important;align-items:flex-start;text-align:left;
    max-width:none;right:auto!important;bottom:auto!important}
  .stage-dots{position:static!important;justify-content:center!important;
    padding:12px 0 0!important;left:auto!important;bottom:auto!important}
  .stage-dot{box-shadow:none}
}

/* --- V2.41a: verified fixes from headless rendering ------------------------ */

/* Below ~1100px the copy column's content (headline + lead + buttons + three
   contract cards) is taller than the width-derived frame height, which forces a
   portrait frame and makes object-fit:cover crop the machine's nose and tail.
   Measured at 1024px: frame was 596x631 against a 3:2 source. Stack instead. */
@media(max-width:1100px){
  .hero > .wrap.stage-grid,.hero .stage-grid{
    grid-template-columns:minmax(0,1fr)!important;
    padding:0 var(--gutter)!important;
    min-height:0!important;align-items:start!important;
    gap:var(--s-6)!important}
  .stage-copy{align-self:start!important;max-width:none}
  .stage-product{height:auto!important}
  .stage-product-image img{
    height:auto!important;aspect-ratio:3/2!important;
    object-fit:cover!important;border-radius:var(--radius)!important}
  .stage-product-info{
    position:absolute!important;right:16px!important;bottom:16px!important;
    max-width:min(280px,60%)}
  .stage-dots{position:absolute!important;left:16px!important;bottom:20px!important}
}

/* Mobile menu button was 8px past the viewport edge (measured 335→398 at
   390px wide), causing horizontal scroll on every page. */
@media(max-width:1120px){
  .site-header .wrap,.header-inner{padding-right:0}
  .mobile-toggle{margin-right:0;flex:0 0 auto}
}
@media(max-width:720px){
  .stage-product-info{
    position:static!important;background:none;backdrop-filter:none;
    padding:12px 0 0!important;align-items:flex-start;text-align:left;
    max-width:none;right:auto!important;bottom:auto!important}
  .stage-dots{position:static!important;justify-content:center!important;
    padding:12px 0 0!important;left:auto!important;bottom:auto!important}
  .stage-dot{box-shadow:none}
}
html,body{overflow-x:hidden}

/* At 1100–1440px the three contract cards make the copy column ~578px tall,
   which forces the frame to 1.29:1 against a 1.50:1 source — cropping the
   machine's nose and tail. Compacting the cards brings the column back under
   the width-derived height so the frame keeps its ratio. */
@media(min-width:1101px) and (max-width:1440px){
  .stage-contracts a{padding:9px 14px!important}
  .stage-contracts strong{font-size:var(--t-sm)!important}
  .stage-contracts span{font-size:11px!important}
  .stage-contracts{gap:6px!important;margin-top:var(--s-3)!important}
  .stage-contracts-label{margin-top:var(--s-4)!important}
  .stage-subhead{font-size:var(--t-sm)!important}
  .stage-headline{font-size:clamp(2.25rem,3.2vw,3.25rem)!important}
}

/* Measured at 390px: the copy column filled the entire first screen and the
   machine didn't appear until 1043px down. On a phone the image has to lead. */
@media(max-width:1100px){
  .hero > .wrap.stage-grid,.hero .stage-grid{grid-auto-flow:row}
  .stage-product{order:-1}
  .stage-product-image img{aspect-ratio:4/3!important}
}
@media(max-width:720px){
  .stage-headline{font-size:clamp(2.25rem,10vw,3rem)!important;margin-top:var(--s-2)}
  .stage-subhead{font-size:var(--t-base)!important}
  /* Three full contract cards ate a screen on their own. Tighten. */
  .stage-contracts a{padding:10px 14px!important}
  .stage-contracts strong{font-size:var(--t-sm)!important}
  .stage-contracts span{font-size:11px!important}
  .stage-contracts{gap:6px!important}
}

/* Measured: `.stage-product-image` kept height:100% from the desktop block, so
   the link box stayed 378px tall around a 263px image and pushed the caption
   and dots out past the parent, over the headline. */
@media(max-width:1100px){
  .stage-product-image{height:auto!important}
}

/* --- V2.42 ---------------------------------------------------------------- */

/* Square corners on the hero frame. The rounding only ever showed on the four
   photographic slots — on the white-ground cutouts it was invisible. */
.stage-product-image img{border-radius:0!important}

/* Breathing room under the nav. Measured gap between header and headline was
   73px at 1920 but collapsed to 34px at 1680, 21px at 1440 and 0px at 1280,
   because the copy is centred in a row whose height tracks viewport WIDTH.
   Padding on the hero section shifts the whole row down without changing the
   frame height. */
.hero{padding-top:clamp(20px,2vw,38px)!important}

@media(max-width:1100px){
  .stage-product-image img{border-radius:0!important}
}

/* ==========================================================================
   V2.43 — scrolling news banner
   Highway yellow, ink text (14.6:1). Duplicated track so the loop is seamless.
   Pauses on hover and on keyboard focus; goes static under
   prefers-reduced-motion, because an unstoppable marquee is hostile to read.
   ========================================================================== */
.newsbar{
  --news-yellow:#FFC72C;
  background:var(--news-yellow);color:var(--ink);
  overflow:hidden;position:relative;z-index:21;
  border-bottom:1px solid rgba(20,22,25,.18)}
.newsbar-track{display:flex;width:max-content;
  animation:newsbar-scroll 34s linear infinite}
.newsbar:hover .newsbar-track,
.newsbar:focus-within .newsbar-track{animation-play-state:paused}
.newsbar-set{display:flex;align-items:center;flex:none}
.newsbar-item{
  display:inline-flex;align-items:center;gap:8px;flex:none;
  font-family:var(--ui);font-size:var(--t-sm);font-weight:500;
  letter-spacing:.01em;line-height:1;padding:11px 0;color:var(--ink);
  text-decoration:none;white-space:nowrap}
.newsbar-item strong{font-weight:700}
/* Underline the words only — the arrow sits outside the underline. */
a.newsbar-item:hover .newsbar-label{text-decoration:underline;text-underline-offset:3px}
a.newsbar-item:hover{text-decoration:none}
.newsbar-arrow{text-decoration:none!important;display:inline-block}
a.newsbar-item:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.newsbar-date{font-weight:700}
.newsbar-arrow{font-weight:700}
.newsbar-sep{
  flex:none;width:7px;height:7px;margin:0 clamp(28px,4vw,64px);
  background:var(--red);transform:rotate(45deg)}
@keyframes newsbar-scroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
@media(prefers-reduced-motion:reduce){
  .newsbar-track{animation:none;width:100%;justify-content:center}
  .newsbar-set:nth-child(2){display:none}
  .newsbar-set{flex-wrap:wrap;justify-content:center}
}
@media(max-width:560px){
  .newsbar-item{font-size:var(--t-xs)}
  .newsbar-sep{margin:0 28px}
}

/* --- V2.43b: home headline + subhead matched to the USED page -------------- */
/* Measured before: home h1 67.2px @1920 but 46px @1440 and 41px @1280, against
   a flat 68px on /used/. Home subhead was 16px/14px against a 19px lead.
   Kerning was -3px (about -0.045em) — far too tight for the display face at
   these sizes; /used/ runs -0.02em. */
.stage-headline{
  font-size:var(--t-2xl)!important;      /* same token as .lot-hero h1 */
  line-height:.98!important;
  letter-spacing:-.02em!important;
  font-weight:700!important;
  max-width:none!important}
.stage-subhead{
  font-size:var(--t-lg)!important;       /* 19px, same as .lot-hero .lead */
  line-height:1.5!important;
  max-width:40ch!important}
@media(max-width:1100px){
  .stage-headline{font-size:var(--t-2xl)!important;letter-spacing:-.02em!important}
  .stage-subhead{font-size:var(--t-lg)!important}
}

/* --- V2.43c: hero geometry re-tuned for the larger matched headline --------
   Matching /used/ type made the copy column taller, forcing the frame portrait
   (measured 1.34 @1440, 1.06 @1280 against a 1.50 source — heavy side-crop of
   the machine). Two changes: stack earlier, and give the image more width in
   the band where side-by-side still works. */

/* Side-by-side only above 1300px now. */
@media(max-width:1150px){
  .hero > .wrap.stage-grid,.hero .stage-grid{
    grid-template-columns:minmax(0,1fr)!important;
    padding:0 var(--gutter)!important;
    min-height:0!important;align-items:start!important;
    gap:var(--s-6)!important;grid-auto-flow:row}
  .stage-copy{align-self:start!important;max-width:none}
  .stage-product{order:-1;height:auto!important;margin-right:0!important}
  .stage-product-image{height:auto!important}
  .stage-product-image img{
    height:auto!important;aspect-ratio:3/2!important;
    border-radius:0!important}
  .stage-product-info{
    position:absolute!important;right:16px!important;bottom:16px!important;
    max-width:min(300px,60%)}
  .stage-dots{position:absolute!important;left:16px!important;bottom:20px!important}
}

/* 1301–1560: more width to the frame so it keeps its ratio against the taller
   copy column, and compact contract cards to claw back vertical space. */
@media(min-width:1361px) and (max-width:1700px){
  /* Measured at 1440: copy column was 734px tall against a frame needing 597.
     Headline wrapped to 3 lines in a 437px column; subhead was choked to 374px
     by a 34ch cap; contract cards were 74px each. All three fixed here. */
  .hero > .wrap.stage-grid,.hero .stage-grid{
    grid-template-columns:minmax(0,1.05fr) minmax(0,1.9fr)!important}
  .stage-subhead{max-width:none!important}
  .stage-rule{margin:12px 0 10px!important}
  .stage-contracts-label{margin:12px 0 6px!important}
  .stage-contracts{gap:5px!important;margin-top:8px!important}
  .stage-contracts a{padding:7px 14px!important}
  .stage-contracts strong{font-size:14px!important;line-height:1.15!important}
  .stage-contracts span{font-size:11px!important;line-height:1.3!important;margin-top:1px!important}
}

/* 1241–1470 only: the subhead runs one line longer than the frame can absorb,
   pushing the ratio to 1.38 and clipping the machine's tow bar and tail. One
   step down on the subhead in this narrow band buys the line back. */
@media(min-width:1361px) and (max-width:1470px){
  .stage-subhead{font-size:var(--t-base)!important;line-height:1.5!important}
  .stage-actions{margin-bottom:0!important}
  .stage-rule{margin:10px 0 8px!important}
}

/* 1024–1360: stacking here pushed the headline 830px below the fold, and
   stretching the frame to the row height made it portrait (1.11) and clipped
   the machine. Instead the frame keeps its 3:2 and top-aligns; the copy column
   is simply allowed to be taller. Caption and dots pin to the image, not the row. */
@media(min-width:1151px) and (max-width:1360px){
  .hero > .wrap.stage-grid,.hero .stage-grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1.55fr)!important;
    align-items:start!important;min-height:0!important}
  .stage-copy{align-self:start!important}
  .stage-product{height:auto!important;align-self:start!important}
  .stage-product-image{height:auto!important}
  .stage-product-image img{height:auto!important;aspect-ratio:3/2!important}
  .stage-subhead{font-size:var(--t-base)!important}
  .stage-contracts a{padding:7px 14px!important}
  .stage-contracts strong{font-size:14px!important;line-height:1.15!important}
  .stage-contracts span{font-size:11px!important;line-height:1.3!important}
  .stage-contracts{gap:5px!important;margin-top:8px!important}
}

/* Tablet stacked: a full-width 3:2 frame ran 621px tall on a 768px-high screen
   and pushed the headline to the very bottom edge. 16:9 in this band shortens
   it by ~100px; the crop lands inside the machines' existing vertical padding. */
@media(min-width:768px) and (max-width:1150px){
  .stage-product-image img{aspect-ratio:16/10!important}
}

/* Phone: the caption must sit BELOW the image, not over it. This has to come
   last in the sheet — the max-width:1150px block above sets it absolute and
   would otherwise win on source order. */
@media(max-width:720px){
  .stage-product{position:relative!important}
  .stage-product-info{
    position:static!important;right:auto!important;bottom:auto!important;
    background:none!important;backdrop-filter:none!important;
    padding:12px 0 0!important;margin:0!important;
    align-items:flex-start!important;text-align:left!important;
    max-width:none!important}
  .stage-dots{
    position:static!important;left:auto!important;bottom:auto!important;
    justify-content:flex-start!important;padding:10px 0 0!important}
  .stage-dot{box-shadow:none}
  .stage-product-image img{aspect-ratio:3/2!important}
}

/* --- V2.44: social icons in the header ------------------------------------ */
.head-social{display:inline-flex;align-items:center;gap:14px;
  padding-left:18px;margin-left:4px;
  border-left:1px solid rgba(255,255,255,.22)}
/* Header renders on #050505; `color:inherit` resolved to body ink and the
   icons came out black-on-black. Match the nav links explicitly. */
.head-social a{display:inline-flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:50%;color:#fff;opacity:.72;
  transition:opacity .15s,background .15s}
.head-social a:hover{opacity:1;background:rgba(255,255,255,.12)}
.head-social a:focus-visible{outline:3px solid var(--red);outline-offset:2px;opacity:1}
.head-social svg{display:block}

/* Mobile menu gets labelled versions instead of bare glyphs. It renders on
   WHITE (measured rgb(255,255,255)) — the opposite of the header — so these
   take ink, not white. */
.mobile-social{display:flex;gap:22px;padding:14px 0 4px;margin-top:6px;
  border-top:1px solid var(--line)}
.mobile-social a{display:inline-flex;align-items:center;gap:8px;color:var(--ink);
  min-height:44px;text-decoration:none;font-family:var(--ui);
  font-size:var(--t-sm);font-weight:600}
.mobile-social a:hover{color:var(--red)}
.mobile-social a:focus-visible{outline:3px solid var(--red);outline-offset:2px}
.mobile-social svg{flex:none}
