/* S.T.A.R. Concrete Pumping - design system
   Concrete, steel and a safety stripe. Dark hero surfaces, poured-gray paper, one accent. */

/* Self-hosted web fonts (SIL Open Font License, see assets/fonts/LICENSE.txt). Latin subset only. */
@font-face{
  font-family:'Barlow Condensed';
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url(../assets/fonts/barlow-condensed-600.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@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');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Barlow Condensed';
  font-style:normal;
  font-weight:800;
  font-display:swap;
  src:url(../assets/fonts/barlow-condensed-800.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Barlow';
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url(../assets/fonts/barlow-400.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Barlow';
  font-style:italic;
  font-weight:400;
  font-display:swap;
  src:url(../assets/fonts/barlow-400-italic.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Barlow';
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url(../assets/fonts/barlow-600.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --ink:#0F1113;
  --ink-2:#1B1F23;
  --ink-3:#2A3036;
  --steel:#5B6670;
  --steel-soft:#8A949D;
  --paper:#F2F1ED;
  --paper-deep:#E6E4DE;
  --card:#FFFFFF;
  --line:#D5D3CC;
  --line-dark:rgba(255,255,255,.14);
  --accent:#E01B22;
  --accent-deep:#B51B1B;
  --accent-ink:#FFFFFF;
  --gold:#FFCC00;
  --ok:#2E8B57;
  --text:#15181B;
  --text-soft:#454C53;
  --text-faint:#5A6168;
  --on-dark:#F5F3EE;
  --on-dark-soft:#C9CCCF;
  --on-dark-faint:#8F969C;
  --shadow:0 1px 2px rgba(15,17,19,.08),0 12px 32px rgba(15,17,19,.10);
  --r:8px;
  --display:'Barlow Condensed','Arial Narrow',sans-serif;
  --body:'Barlow',system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
body{background:var(--paper);color:var(--text);font-family:var(--body);font-size:1.04rem;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,.btn,.eyebrow,nav,.crumbs,.stat b,.chip,label,.tab,.num{font-family:var(--display)}
h1,h2,h3{text-wrap:balance;line-height:1.02;letter-spacing:-.005em;text-transform:uppercase}
h2{font-weight:800}
img,svg,iframe,video{max-width:100%}
img{display:block;height:auto}
a{color:var(--accent-deep)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:var(--accent-ink);padding:8px 12px;z-index:100}
.skip:focus{left:8px}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
section{padding:80px 0}
section.tight{padding:48px 0}
.eyebrow{display:inline-flex;align-items:center;gap:.6em;font-size:.82rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-deep)}
.eyebrow::before{content:"";width:28px;height:3px;background:var(--accent)}
.sect-head{max-width:720px;margin-bottom:40px}
.sect-head h2{font-size:clamp(2rem,4vw,3rem);margin:.3em 0 .25em}
.sect-head p{color:var(--text-soft);font-size:1.08rem}
.center{text-align:center}.center .sect-head{margin-left:auto;margin-right:auto}
.dark{background:var(--ink);color:var(--on-dark)}
.dark .eyebrow{color:var(--gold)}
.dark .sect-head p,.dark p{color:var(--on-dark-soft)}
.dark h2,.dark h3{color:var(--on-dark)}
.dark a{color:#FFCC00}
.deep{background:var(--paper-deep)}

/* stripe */
.stripe{height:6px;background:repeating-linear-gradient(135deg,var(--accent) 0 18px,var(--ink) 18px 36px)}

/* header */
header.site{position:sticky;top:0;z-index:60;background:var(--ink);border-bottom:1px solid var(--line-dark)}
.bar{display:flex;align-items:center;gap:18px;height:72px}
.brand img{height:40px;width:auto}
nav.main{margin-left:auto;display:flex;gap:2px;align-items:center}
nav.main>a{text-decoration:none;color:var(--on-dark-soft);font-weight:600;font-size:1rem;letter-spacing:.04em;text-transform:uppercase;padding:9px 11px;border-radius:6px}
nav.main>a:hover,nav.main>a[aria-current="page"]{color:#fff;background:var(--ink-3)}
.bar-cta{display:flex;gap:8px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;background:var(--ink);color:var(--on-dark);text-decoration:none;font-weight:700;font-size:1.02rem;letter-spacing:.05em;text-transform:uppercase;padding:13px 22px;border-radius:var(--r);border:1px solid var(--ink);cursor:pointer;white-space:nowrap;transition:transform .15s ease,background .15s ease,border-color .15s}
.btn:hover{background:var(--ink-3)}
.btn.accent{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.accent:hover{background:#C8151B}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.btn.ghost:hover{background:rgba(15,17,19,.06)}
.btn.ghost.light{color:var(--on-dark);border-color:rgba(255,255,255,.55)}
.btn.ghost.light:hover{background:rgba(255,255,255,.08)}
.btn.small{padding:9px 14px;font-size:.9rem}
.btn.phone{background:var(--accent);border-color:var(--accent);color:#fff}
header.site .btn.ghost{color:var(--on-dark);border-color:rgba(255,255,255,.4)}
.menu-toggle{display:none}
@media (max-width:1100px){nav.main>a{padding:9px 8px;font-size:.92rem}}
@media (max-width:960px){
  nav.main,.bar-cta{display:none}
  .menu-toggle{display:inline-flex;margin-left:auto;appearance:none;background:none;border:1.5px solid rgba(255,255,255,.4);border-radius:6px;padding:9px 12px;cursor:pointer;font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--on-dark)}
  .mobile-nav{display:none;position:fixed;inset:72px 0 0 0;background:var(--ink);z-index:55;overflow:auto;padding:14px 22px 90px;border-top:1px solid var(--line-dark)}
  .mobile-nav.open{display:block}
  .mobile-nav a{display:block;text-decoration:none;color:var(--on-dark);font-family:var(--display);font-weight:700;font-size:1.3rem;text-transform:uppercase;letter-spacing:.04em;padding:14px 4px;border-bottom:1px solid var(--line-dark)}
}
@media (min-width:961px){.mobile-nav{display:none!important}}

/* hero */
.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--ink);color:var(--on-dark);min-height:min(88vh,760px);display:flex;align-items:flex-end}
.hero .bg{position:absolute;inset:0;z-index:-2}
.hero .bg img,.hero .bg video{width:100%;height:100%;object-fit:cover;object-position:60% 40%}
@keyframes drift{from{transform:scale(1.02)}to{transform:scale(1.12) translate(-1.5%,-2%)}}
.hero .tint{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(15,17,19,.92) 0%,rgba(15,17,19,.72) 45%,rgba(15,17,19,.25) 85%),linear-gradient(180deg,rgba(15,17,19,.35) 0%,rgba(15,17,19,.1) 40%,rgba(15,17,19,.92) 100%)}
.hero-inner{padding:120px 0 72px;max-width:820px}
.hero-inner .eyebrow{color:var(--gold)}
.hero-inner h1{font-size:clamp(2.9rem,7vw,5.6rem);font-weight:800;margin:14px 0 16px;color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.5)}
.hero-inner h1 em{font-style:normal;color:var(--gold)}
.hero-inner p{font-size:1.22rem;color:var(--on-dark-soft);max-width:36em}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 22px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:.5em;font-size:.86rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--on-dark);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);border-radius:4px;padding:7px 12px;backdrop-filter:blur(2px)}
.chip i{width:8px;height:8px;background:var(--gold);display:inline-block}

/* stat band */
.stats{background:var(--ink-2);color:var(--on-dark);border-top:1px solid var(--line-dark)}
.stats .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.stat{padding:26px 20px;border-right:1px solid var(--line-dark)}
.stat:last-child{border-right:0}
.stat b{display:block;font-size:2.6rem;font-weight:800;line-height:1;color:var(--gold)}
.stat span{display:block;font-size:.86rem;letter-spacing:.08em;text-transform:uppercase;color:var(--on-dark-faint);margin-top:6px}
@media (max-width:720px){.stat{border-right:0;border-bottom:1px solid var(--line-dark)}}

/* page hero */
.page-hero{background:var(--ink);color:var(--on-dark);padding:64px 0 52px;position:relative;overflow:hidden}
.page-hero.img{min-height:420px;display:flex;align-items:flex-end}
.page-hero .bg{position:absolute;inset:0;z-index:0}
.page-hero .bg img{width:100%;height:100%;object-fit:cover;opacity:.42}
.page-hero .wrap{position:relative;z-index:1}
.page-hero .eyebrow{color:var(--gold)}
.page-hero h1{font-size:clamp(2.4rem,5.4vw,4rem);font-weight:800;margin:.3em 0 .3em;color:#fff}
.page-hero p{color:var(--on-dark-soft);max-width:46em;font-size:1.14rem}
.crumbs{font-size:.84rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--on-dark-faint);margin-bottom:14px}
.crumbs a{color:var(--on-dark-soft);text-decoration:none}

/* cards + grids */
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.g3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.g4{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);overflow:hidden;position:relative}
.card .pad{padding:24px 22px}
.card h3{font-size:1.45rem;font-weight:800;margin-bottom:8px}
.card p{font-size:.98rem;color:var(--text-soft);line-height:1.55}
.card .go{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-family:var(--display);font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-size:.9rem;color:var(--ink);text-decoration:none}
.card .go:hover{color:var(--accent-deep)}
.card img.thumb{width:100%;height:210px;object-fit:cover}
.card.link{display:block;text-decoration:none;color:inherit;transition:transform .15s}
.card.link:hover{background:var(--paper-deep)}
.card.link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.card.link:hover::after{transform:scaleX(1)}
.dark .card{background:var(--ink-2);border-color:var(--line-dark);color:var(--on-dark)}
.dark .card p{color:var(--on-dark-soft)}
.dark .card .go{color:var(--gold)}
.icard{padding:24px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.icard .ico{width:46px;height:46px;border-radius:8px;background:var(--paper-deep);color:var(--ink);display:grid;place-items:center}
.icard .ico svg{width:24px;height:24px}
.dark .icard .ico{background:var(--ink-3);color:var(--gold)}
.num{font-size:3rem;font-weight:800;color:var(--gold);line-height:1}

/* reach finder section (the finder itself is css/reach.css) */
.reach{background:var(--ink);color:var(--on-dark)}

/* fleet table */
.fleet-table{width:100%;border-collapse:collapse;font-size:.98rem}
.fleet-table th{text-align:left;font-family:var(--display);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.84rem;color:var(--text-faint);padding:10px 12px;border-bottom:2px solid var(--ink)}
.fleet-table td{padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.fleet-table td:first-child{font-family:var(--display);font-weight:800;font-size:1.4rem;white-space:nowrap}
.fleet-table .fit{font-size:.9rem;color:var(--text-soft)}
@media (max-width:720px){.fleet-table thead{display:none}.fleet-table tr{display:block;border-bottom:2px solid var(--line);padding:10px 0}.fleet-table td{display:block;border:0;padding:4px 0}.fleet-table td::before{content:attr(data-l);font-family:var(--display);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);display:block}}

/* two column body */
.two{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.9fr);gap:44px;align-items:start}
.prose h2{font-size:1.9rem;margin:34px 0 12px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:1.3rem;margin:24px 0 8px}
.prose p{margin-bottom:15px;color:var(--text-soft)}
.prose p b,.prose li b{color:var(--text)}
.prose ul{margin:0 0 15px 1.2em;color:var(--text-soft)}
.prose li{margin-bottom:7px}
.prose img{border-radius:10px;box-shadow:var(--shadow);margin:8px 0 18px}
.aside{position:sticky;top:92px;display:flex;flex-direction:column;gap:16px}
.aside .card .pad{padding:20px}
.aside h3{font-size:1.15rem}
.aside ul{list-style:none}
.aside li{border-bottom:1px solid var(--line)}
.aside li:last-child{border-bottom:0}
.aside li a{display:block;text-decoration:none;color:var(--text);font-family:var(--display);font-weight:600;letter-spacing:.03em;padding:10px 2px}
.aside li a:hover{color:var(--accent-deep)}
.callcard{background:var(--ink);color:var(--on-dark);border-radius:10px;padding:24px;box-shadow:var(--shadow)}
.callcard b{font-family:var(--display);font-size:1.3rem;text-transform:uppercase;display:block;margin-bottom:6px;color:#fff}
.callcard p{font-size:.92rem;color:var(--on-dark-soft);margin-bottom:14px}
.callcard .btn{width:100%}
.callcard .btn+ .btn{margin-top:9px}
@media (max-width:900px){.two{grid-template-columns:minmax(0,1fr)}.aside{position:static}}

/* checklist / steps */
.steps{counter-reset:s;display:grid;gap:14px}
.step{display:grid;grid-template-columns:54px 1fr;gap:16px;align-items:start;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px 20px}
.step::before{counter-increment:s;content:counter(s,decimal-leading-zero);font-family:var(--display);font-size:2rem;font-weight:800;color:var(--accent);line-height:1}
.step h3{font-size:1.25rem;margin-bottom:4px}
.step p{color:var(--text-soft);font-size:.96rem}
.dark .step{background:var(--ink-2);border-color:var(--line-dark)}

/* FAQ */
.faq{max-width:820px}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:8px;margin-bottom:10px;box-shadow:var(--shadow)}
.faq summary{cursor:pointer;list-style:none;font-family:var(--display);font-weight:700;font-size:1.15rem;padding:16px 46px 16px 20px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:18px;top:50%;transform:translateY(-50%);font-size:1.4rem;color:var(--accent-deep)}
.faq details[open] summary::after{content:"-"}
.faq .a{padding:0 20px 18px;color:var(--text-soft)}

/* gallery */
.shots{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.shots figure{margin:0;border-radius:8px;overflow:hidden;background:var(--ink-2);aspect-ratio:4/3;position:relative}
.shots img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}

.shots figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 12px 10px;font-family:var(--display);font-weight:600;letter-spacing:.05em;text-transform:uppercase;font-size:.82rem;color:#fff;background:linear-gradient(180deg,transparent,rgba(0,0,0,.75))}
.placeholder{background:repeating-linear-gradient(135deg,#2A3036 0 14px,#1B1F23 14px 28px);display:grid;place-items:center;color:var(--on-dark-faint);font-family:var(--display);font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;text-align:center;padding:20px}

/* CTA band */
.cta-band{background:var(--ink);color:var(--on-dark);text-align:center;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;inset:auto 0 0 0;height:6px;background:repeating-linear-gradient(135deg,var(--accent) 0 18px,transparent 18px 36px)}
.cta-band h2{font-size:clamp(2rem,4vw,3.2rem);color:#fff;margin-bottom:10px}
.cta-band p{color:var(--on-dark-soft);max-width:40em;margin:0 auto 24px}
.cta-band .hero-ctas{justify-content:center}

/* forms */
form.lead{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:28px;box-shadow:var(--shadow)}
.dark form.lead{background:var(--ink-2);border-color:var(--line-dark)}
.frow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:13px}
.frow3{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}
label{display:block;font-weight:600;font-size:.86rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);margin:13px 0 5px}
.dark label{color:var(--on-dark-soft)}
input,textarea,select{width:100%;font-family:var(--body);font-size:1rem;color:var(--text);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:12px 13px}
.dark input,.dark textarea,.dark select{background:var(--ink);border-color:var(--line-dark);color:#fff}
input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);border-color:var(--accent)}
/* date and time inputs: WebKit gives them an intrinsic width that ignores width:100%, so they overflow the form on iPhone. Force them to the same box as the text inputs. */
input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:none;appearance:none;display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;height:calc(1.2em + 26px);min-height:calc(1.2em + 26px);line-height:1.2;margin:0}
input::-webkit-date-and-time-value{text-align:left;min-height:1.2em}
input::-webkit-datetime-edit{padding:0;line-height:1.2}
input::-webkit-datetime-edit-fields-wrapper,input::-webkit-datetime-edit-text,input::-webkit-datetime-edit-month-field,input::-webkit-datetime-edit-day-field,input::-webkit-datetime-edit-year-field,input::-webkit-datetime-edit-hour-field,input::-webkit-datetime-edit-minute-field,input::-webkit-datetime-edit-ampm-field{padding:0}
fieldset{border:0;margin-top:14px}
legend{font-family:var(--display);font-weight:600;font-size:.86rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-soft);margin-bottom:6px}
.dark legend{color:var(--on-dark-soft)}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opts label{margin:0;cursor:pointer;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:10px 14px;text-transform:none;letter-spacing:0;font-size:.98rem;display:inline-flex;gap:8px;align-items:center}
.dark .opts label{background:var(--ink);border-color:var(--line-dark);color:var(--on-dark)}
.opts input{width:auto}
.opts label:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.form-note{font-size:.86rem;color:var(--text-faint);margin-top:12px}
.dark .form-note{color:var(--on-dark-faint)}
.sent-ok{display:none;text-align:center;padding:40px 10px}
.sent-ok h3{font-size:1.7rem;margin-bottom:8px}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
@media (max-width:640px){.frow,.frow3{grid-template-columns:1fr}}

/* job cards */
.job{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;background:var(--card);border:1px solid var(--line);border-left:6px solid var(--accent);border-radius:8px;padding:20px 22px;text-decoration:none;color:inherit;transition:transform .15s}
.job:hover{border-left-width:10px}
.job h3{font-size:1.5rem}
.job p{color:var(--text-soft);font-size:.96rem;margin-top:3px}
.job .tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.tag{font-family:var(--display);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;background:var(--paper-deep);border-radius:4px;padding:4px 8px;color:var(--text-soft)}
.tag.pay{background:var(--accent);color:var(--accent-ink)}
.page-hero .pay-line{font-family:var(--display);font-size:1.5rem;letter-spacing:.04em;text-transform:uppercase;color:var(--gold);text-shadow:0 1px 3px rgba(0,0,0,.6);margin-top:10px}
.dark .job{background:var(--ink-2);border-color:var(--line-dark);border-left-color:var(--accent);color:var(--on-dark)}
.dark .job p{color:var(--on-dark-soft)}
.dark .tag{background:var(--ink-3);color:var(--on-dark-soft)}
@media (max-width:600px){.job{grid-template-columns:1fr}}

/* locations */
.locs{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.loc{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px 22px}
.loc h3{font-size:1.4rem}
.loc .hq{font-family:var(--display);font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-deep)}
.loc p{color:var(--text-soft);font-size:.96rem;margin-top:4px}
.loc.todo{border-style:dashed;color:var(--text-faint)}
.map{border-radius:12px;overflow:hidden;background:var(--ink-2);border:1px solid var(--line-dark)}
.map svg{display:block;width:100%;height:auto}

/* markets strip */
.markets{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:0;border:1px solid var(--line-dark);border-radius:12px;overflow:hidden}
.mk{display:flex;flex-direction:column;text-decoration:none;color:var(--on-dark);padding:30px 26px 24px;border-right:1px solid var(--line-dark);background:var(--ink-2);min-height:250px;position:relative;transition:background .15s}
.mk:last-child{border-right:0}
.mk:hover{background:var(--ink-3)}
.mk .k{font-family:var(--display);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.mk h3{font-size:1.7rem;margin:8px 0 10px;color:#fff}
.mk p{font-size:.95rem;color:var(--on-dark-soft)}
.mk p{flex:1}
.mk .go{margin-top:18px;font-family:var(--display);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.88rem;color:var(--gold)}
@media (max-width:760px){.mk{border-right:0;border-bottom:1px solid var(--line-dark);min-height:0}}

/* quote */
.quote{background:var(--paper-deep);padding:56px 0}
.quote blockquote{font-family:var(--display);font-size:clamp(1.5rem,3vw,2.3rem);font-weight:600;line-height:1.2;max-width:28em;text-transform:uppercase}
.quote cite{display:block;margin-top:14px;font-style:normal;font-family:var(--body);font-size:.92rem;color:var(--text-faint)}

/* footer */
footer.site{background:var(--ink);color:var(--on-dark-soft);padding:60px 0 28px;border-top:6px solid var(--accent)}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:36px}
.foot-brand img{margin-bottom:14px}
.foot-brand p{font-size:.94rem;max-width:34em}
footer h4{font-family:var(--display);font-size:1rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;margin-bottom:12px}
footer ul{list-style:none}
footer li{margin-bottom:8px;font-size:.95rem}
footer a{color:var(--on-dark-soft);text-decoration:none}
footer a:hover{color:#fff}
.foot-base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:40px;padding-top:18px;border-top:1px solid var(--line-dark);font-size:.84rem;color:var(--on-dark-faint)}
.foot-credit{margin-top:10px;font-size:.8rem}
.foot-credit a{color:var(--on-dark-faint)}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* sticky call bar (mobile) */
.callbar{display:none}
@media (max-width:760px){
  .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;gap:8px;padding:10px 12px;background:rgba(15,17,19,.96);border-top:1px solid var(--line-dark);transition:transform .25s}
  .callbar .btn{flex:1;padding:12px}
  .callbar.callbar-hidden{transform:translateY(110%)}
  body{padding-bottom:70px}
}
/* narrow phones: 'Llamar al (281) 357-1555' and 'Pedir una bomba' need 372 px at full size, so the bar
   tightens first (less side padding) and under 360 px the labels get smaller; both still fit at 280 px */
@media (max-width:420px){
  .callbar{gap:6px;padding:10px 8px}
  .callbar .btn{padding:12px 8px}
}
@media (max-width:359px){.callbar .btn{font-size:.9rem;letter-spacing:.03em}}
@media (max-width:300px){.callbar .btn{padding:12px 6px;font-size:.8rem;letter-spacing:.02em}}

/* reveal */
.rv{opacity:1}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}}

/* preview banner */
.preview-note{background:var(--gold);color:#1B1400;font-family:var(--display);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.84rem;text-align:center;padding:8px 12px}

/* items waiting on Ken (preview) */
.tbd{display:inline-block;font-family:var(--display);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--gold);color:#1B1400;border-radius:4px;padding:3px 8px;margin:2px 0;vertical-align:middle}
.tbd::before{content:"Ken: ";font-weight:800}
.ken-list{list-style:none;display:grid;gap:8px}
.ken-list li{background:var(--card);border-left:5px solid var(--gold);border-radius:6px;padding:12px 14px;font-size:.98rem}
.dark .tbd{box-shadow:0 0 0 1px rgba(0,0,0,.3)}

/* fleet cards */
.fleet-card .fc-top{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}
.fleet-card .num{font-size:3.2rem}
.fleet-card .num small{font-size:1.2rem;margin-left:2px;color:var(--text-faint)}
.fleet-card .fc-model{font-family:var(--display);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.9rem;color:var(--text-soft)}
.fc-reach{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.fc-reach div{background:var(--paper-deep);border-radius:6px;padding:8px 10px}
.fc-reach b{display:block;font-family:var(--display);font-size:1.25rem;font-weight:800;line-height:1.1}
.fc-reach span{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}

/* turnstile slot */
.turnstile:empty{display:none}
.turnstile{margin:14px 0 4px}

/* design review fixes 10/3 */
.dark .prose p,.dark .prose li,.dark .prose ul{color:var(--on-dark-soft)}
.dark .prose p b,.dark .prose li b{color:#fff}
.dark .prose h2,.dark .prose h3{color:#fff}
.step::before{grid-row:span 2}
.reach .eyebrow{color:var(--gold)}
.fleet-card .num{color:var(--ink)}
.hero-inner{padding-top:120px;padding-bottom:72px;max-width:820px;padding-left:0;padding-right:0}
.hero .wrap.hero-inner{padding-left:22px;padding-right:22px}
input,select,textarea{scroll-margin-top:96px}
input:user-invalid,select:user-invalid,textarea:user-invalid{border-color:var(--accent);box-shadow:0 0 0 2px rgba(224,27,34,.25)}
.req{color:var(--accent);margin-left:3px}
.req-note{font-size:.84rem;color:var(--text-faint);margin-bottom:4px}
.dark .req-note{color:var(--on-dark-faint)}
.menu-toggle{min-height:44px;padding:9px 14px}
footer li a{display:inline-block;padding:7px 0}
footer li{margin-bottom:2px}
.card .pad a{display:inline-block;padding:6px 0}
.card .pad a.go{padding:6px 0}
.opts input,input[name=sms_ok]{width:20px;height:20px;accent-color:var(--accent)}
label.consent{font-size:1rem}
.foot-grid h2{font-family:var(--display);font-size:1rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;margin-bottom:12px}
.aside .card h2{font-size:1.15rem;font-weight:800;margin-bottom:8px}
.tbd{display:block;width:fit-content;max-width:100%;margin:6px 0;white-space:normal}
.preview-note a{color:#1B1400;font-weight:800}
@media (max-width:960px){.mobile-nav{position:absolute;inset:auto;top:100%;left:0;right:0;width:100%;height:calc(100dvh - 72px);box-sizing:border-box}}
.num.tbd-num{font-size:1.6rem;color:var(--on-dark-faint)}

/* accessibility QA fixes 10/3 */
::placeholder{color:#5B6670;opacity:1}
.dark ::placeholder{color:#8F969C;opacity:1}
.fc-reach span{color:var(--text-soft)}
.form-note{color:#5B6670}
.card .go{min-height:44px;display:inline-flex;align-items:center}
.loc a,.crumbs a,.preview-note a{display:inline-block;padding:11px 0}
.preview-note a{padding:4px 0}
footer li a{padding:10px 0}
.mk h2{font-size:1.7rem;margin:8px 0 10px;color:#fff}
.loc h2{font-size:1.4rem}
.card h2.door{font-size:1.45rem;font-weight:800;margin-bottom:8px}

.band-phone{margin-top:14px;color:var(--on-dark-soft)}
.band-phone a{color:#fff}

.foot-credit a{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--on-dark-soft);font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;font-size:.82rem;padding:8px 0}
.foot-credit img{height:36px;width:auto;border-radius:4px}
.foot-credit a:hover span{color:#fff}

/* Ken's checklist links */
.tbd{scroll-margin-top:110px}
.tbd:target{animation:kenflash 2.4s ease-out 1;box-shadow:0 0 0 4px var(--gold),0 0 0 9px rgba(255,204,0,.35)}
@keyframes kenflash{0%,60%{box-shadow:0 0 0 6px var(--gold),0 0 0 14px rgba(255,204,0,.45)}100%{box-shadow:0 0 0 4px var(--gold),0 0 0 9px rgba(255,204,0,.35)}}
.tbd .tbd-back{margin-left:8px;font-weight:600;text-transform:none;letter-spacing:0;color:#1B1400;text-decoration:underline;font-size:.74rem;padding:2px 0}
.ken-list li{padding:0}
.ken-list li>a{display:block;padding:14px 16px;text-decoration:none;color:var(--text)}
.ken-list li>a b{display:block;font-family:var(--display);font-size:1.15rem;text-transform:uppercase;letter-spacing:.03em}
.ken-list li>a span{display:block;font-size:.88rem;color:var(--text-faint);margin-top:3px}
.ken-list li:target{box-shadow:0 0 0 3px var(--gold)}
.ken-list li>a:hover{background:var(--paper-deep)}

/* maps: loaded on tap so no Google request happens until the visitor asks */
.map-slot{position:relative;min-height:260px;background:var(--ink-2) url(../assets/img/star/truck-at-tomball-office.jpg) center/cover no-repeat;display:grid;place-items:center;border-radius:10px;overflow:hidden}
.map-slot::before{content:"";position:absolute;inset:0;background:rgba(15,17,19,.45)}
.map-slot .map-load{position:relative;z-index:1;max-width:calc(100% - 32px);white-space:normal;text-align:center}
.map-slot iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-card .map-slot{border-radius:0;min-height:220px}
.map-wide{margin-top:18px}
.map-wide .map-slot{min-height:360px}

/* about: timeline */
.timeline{list-style:none;margin:18px 0 26px;padding:0;border-left:3px solid var(--accent)}
.timeline li{position:relative;padding:4px 0 18px 22px}
.timeline li::before{content:"";position:absolute;left:-9px;top:10px;width:15px;height:15px;border-radius:50%;background:var(--gold);border:3px solid var(--paper)}
.timeline b{display:block;font-family:var(--display);font-size:1.5rem;font-weight:800;line-height:1}
.timeline span{display:block;color:var(--text-soft);margin-top:4px}
.timeline .tbd{display:block;width:fit-content;max-width:100%;margin-top:6px}

/* mobile header polish */
@media (max-width:960px){
  .menu-toggle{display:inline-flex;align-items:center;gap:9px;margin-left:auto;background:var(--ink-3);border:1px solid rgba(255,255,255,.18);border-radius:8px;padding:0 14px;min-height:44px;font-family:var(--display);font-weight:700;font-size:1rem;letter-spacing:.08em;text-transform:uppercase;color:#fff}
  .menu-toggle::before{content:"";width:18px;height:2px;background:#fff;box-shadow:0 -6px 0 #fff,0 6px 0 #fff;border-radius:2px}
  .menu-toggle[aria-expanded="true"]{background:var(--accent);border-color:var(--accent)}
  .menu-toggle[aria-expanded="true"]::before{box-shadow:none;transform:rotate(45deg)}
  .brand img{height:38px}
  .mobile-nav a{font-size:1.25rem;padding:16px 4px;display:flex;align-items:center;justify-content:space-between}
  .mobile-nav a::after{content:"›";color:var(--on-dark-faint);font-size:1.4rem}
  .mobile-nav{padding-top:8px}
}

/* stat strips never wrap a value */
.stat b{white-space:nowrap}
@media (max-width:720px){
  .stats .wrap{grid-template-columns:1fr 1fr}
  .stat{padding:18px 14px;border-bottom:1px solid var(--line-dark)}
  .stat b{font-size:1.9rem}
  .stat span{font-size:.78rem}
}
@media (max-width:400px){.stat b{font-size:1.6rem}}

/* mobile QA fixes 10/3 evening */
@media (max-width:480px){form.lead{padding:22px 14px}}
@media (max-width:720px){.stats .wrap{grid-template-columns:1fr}.stat{padding:14px 16px}}
.tbd .tbd-back,.card .pad .tbd .tbd-back{display:inline-block;padding:10px 6px;margin:-10px 0}
.brand{display:inline-flex;align-items:center;min-height:44px}
.preview-note a{display:inline-block;padding:10px 0}
@media (max-width:960px){.mobile-nav{position:fixed;top:73px;left:0;right:0;bottom:0;height:auto;max-height:none;overflow:auto}}
.hero-infrastructure .page-hero .bg img{object-position:70% 60%}

/* spec and record tables */
table.specs{width:100%;border-collapse:collapse;margin:14px 0 8px;font-variant-numeric:tabular-nums}
table.specs th,table.specs td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
table.specs th{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.85rem;color:var(--text-soft)}
table.specs td:first-child{font-weight:600}
@media (max-width:480px){table.specs th,table.specs td{padding:8px 6px;font-size:.95rem}}

/* Ken guide bar (preview only) */
.ken-guide{position:fixed;left:0;right:0;bottom:0;z-index:80;background:#1B1400;color:#fff;border-top:4px solid var(--gold);padding:12px 16px;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;box-shadow:0 -6px 24px rgba(0,0,0,.35)}
.ken-guide .kg-text{font-size:.98rem;line-height:1.35;flex:1 1 260px}
.ken-guide .kg-text b{color:var(--gold);font-family:var(--display);font-size:1.1rem;letter-spacing:.02em}
.ken-guide .kg-btns{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ken-guide .btn.small{min-height:44px;padding:10px 14px}
.ken-guide .kg-all{color:var(--gold);font-weight:700;padding:10px 6px;min-height:44px;display:inline-flex;align-items:center;text-decoration:underline}
body.ken-mode{padding-bottom:140px}
body.ken-mode .callbar{display:none}
@media (max-width:480px){.ken-guide{padding:10px 12px}.ken-guide .kg-text{font-size:.92rem}body.ken-mode{padding-bottom:170px}}

/* public safe preview: the notes for Ken show only on Ken's own visits (html.ken, set in head) */
html:not(.ken) .tbd,html:not(.ken) .preview-note,html:not(.ken) .tbd-num{display:none !important}
/* Text that depends on an open question for Ken: hidden from the public, outlined on Ken's device */
html:not(.ken) .pending{display:none !important}
html.ken .pending{outline:2px dashed var(--gold);outline-offset:3px;border-radius:4px}
html.ken .card.pending,html.ken .quote.pending{outline-offset:-2px}
/* answered questions (Ken only): green, the answer first, the question after */
.tbd.done{background:#1E7B3A;color:#fff}
.tbd.done::before{content:none}
.tbd.done .tbd-ans{font-weight:800}
.tbd.done .tbd-q{font-weight:600;opacity:.85}
.tbd.done .tbd-back{color:#fff}
.tbd.done:target{box-shadow:0 0 0 4px #1E7B3A,0 0 0 9px rgba(30,123,58,.35)}
.ken-list li.done{border-left-color:#1E7B3A}
.ken-list li a span.ans{color:#1E7B3A;font-weight:700}

/* Ken's question list (content/ken.mjs): the question, the answers he can tap (each opens a text to Nick), the spot on the page */
.ken-hero p+p{margin-top:10px}
.ken-hero .ken-prog{height:10px;background:rgba(255,255,255,.16);border-radius:6px;overflow:hidden;max-width:420px;margin-top:20px}
.ken-hero .ken-prog span{display:block;height:100%;background:#2FA65A;border-radius:6px}
.ken-hero .ken-prog+p{margin-top:8px}
.ken-hero .ken-prog-txt b{color:#fff}
.ken-hero .ken-pc{font-size:.95rem;color:var(--on-dark-faint)}
.ken-sec{padding:44px 0 4px}
.ken-sec+.ken-sec{padding-top:32px}
#ken-done{padding-bottom:64px}
.ken-sec .sect-head{margin-bottom:16px}
.ken-sec .sect-head h2{font-size:clamp(1.8rem,3.6vw,2.4rem)}
.ken-qs{gap:12px;max-width:880px}
.ken-qs li.kq{padding:14px 16px;scroll-margin-top:96px}
.kq-q{display:flex;gap:10px;align-items:flex-start;font-weight:700;font-size:1.08rem;line-height:1.35;color:var(--text)}
.kq-n{flex:none;min-width:28px;height:28px;padding:0 7px;border-radius:14px;background:var(--gold);color:#1B1400;font-family:var(--display);font-weight:800;font-size:1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.kq-n.ok{background:#1E7B3A;color:#fff}
.kq-hint,.kq-spot,.kq-sent,.kq-ans,.kq-src{margin:6px 0 0 38px}
.kq-hint{font-size:.94rem;color:var(--text-faint);line-height:1.45}
.kq-taps{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0 38px}
.ka{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 16px;border-radius:var(--r);background:var(--gold);color:#1B1400;border:2px solid var(--gold);font-weight:700;font-size:1rem;line-height:1.2;text-decoration:none;text-align:center}
.ka:hover{background:#FFD83D;border-color:#FFD83D}
.ka.type{background:var(--card);border-color:#1B1400}
.ka.type:hover{background:var(--paper-deep)}
.kq-spot{font-size:.92rem;color:var(--text-faint)}
.kq-spot a,.kq-src a{color:var(--text);font-weight:600;display:inline-block;padding:9px 0;margin:-9px 0}
.kq-sent{font-size:.94rem;font-weight:700;color:#1E7B3A}
.ken-qs li.kq.sent{border-left-color:#1E7B3A}
.kq-ans{font-weight:700;color:#1E7B3A;font-size:1rem;line-height:1.4}
.kq-src{font-size:.88rem;color:var(--text-faint)}
.ken-fold summary{cursor:pointer;display:inline-flex;align-items:center;min-height:48px;padding:10px 18px;border-radius:var(--r);background:var(--card);border:1.5px solid var(--ink);font-family:var(--display);font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-size:1rem}
.ken-fold[open] summary{margin-bottom:12px}
body.hero-ken-checklist .callbar{display:none}
@media (max-width:520px){.kq-hint,.kq-spot,.kq-sent,.kq-ans,.kq-src,.kq-taps{margin-left:0}.ka{flex:1 1 auto}}
/* the guide bar's answers: on a phone they sit above Previous and Next, on a wide screen below */
.ken-guide .kg-taps{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 100%}
.ken-guide .ka.type{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.ken-guide .kg-sent{display:block;color:#7BE09B;font-weight:700;margin-top:2px}
.ken-guide .kg-q{display:block;font-weight:700;color:#fff;margin-top:4px}
.ken-guide .kg-how{display:block;font-size:.86rem;color:rgba(255,255,255,.78);margin-top:4px}
@media (min-width:721px){.ken-guide .kg-btns{order:2}.ken-guide .kg-taps{order:3}}

/* full driver application (apply-full) */
.sr{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
form.af{max-width:820px}
.af-progress{position:sticky;top:72px;z-index:5;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;background:var(--ink-2);margin:-28px -28px 6px;padding:14px 28px 12px;border-bottom:1px solid var(--line-dark)}
.af-step{font-family:var(--display);font-weight:800;font-size:1.05rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gold)}
.af-title{color:var(--on-dark-soft);font-size:.98rem}
.af-bar{display:block;flex:1 1 100%;height:4px;background:var(--ink-3);border-radius:2px;overflow:hidden;margin-top:4px}
.af-bar b{display:block;height:100%;width:14%;background:var(--gold);transition:width .25s ease}
fieldset.af-sec{margin:34px 0 0;padding:0;min-width:0}
fieldset.af-sec>legend{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;font-size:1.3rem;letter-spacing:.03em;color:#fff;margin:0 0 6px;padding:0;text-transform:uppercase}
.af-num{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--accent);color:#fff;font-size:1.05rem;font-weight:800;flex:0 0 34px}
fieldset.af-sec>legend small{flex:1 1 100%;display:block;font-family:var(--body);font-weight:400;font-size:.92rem;letter-spacing:0;text-transform:none;color:var(--on-dark-soft);line-height:1.5}
fieldset.af-sec fieldset{margin-top:12px;padding:0;min-width:0}
.repeater{margin-top:12px}
.repeater[hidden]{display:none}
.rep-row{position:relative;border:1px solid var(--line-dark);border-radius:10px;padding:4px 14px 14px;margin:12px 0}
.rep-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:10px 0 0}
.rep-n{font-family:var(--display);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gold)}
.rep-add{margin-top:8px}
.rep-add:disabled{opacity:.45;cursor:not-allowed}
.btn.ghost.light.small{min-height:40px;white-space:normal;text-align:center}
.af-eq{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:8px 12px;align-items:center}
.af-eq label.eq{margin:0;cursor:pointer;background:var(--ink);border:1px solid var(--line-dark);border-radius:6px;padding:10px 14px;text-transform:none;letter-spacing:0;font-size:.98rem;display:flex;gap:8px;align-items:center;color:var(--on-dark);min-height:46px}
.af-eq label.eq:has(input:checked){border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.af-eq input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex:0 0 20px}
.af-eq input[type=number]{margin:0}
label.check{display:flex;gap:10px;align-items:center;text-transform:none;letter-spacing:0;font-size:1rem;font-weight:500;color:var(--on-dark);margin-top:13px;min-height:46px}
label.check input{width:20px;height:20px;accent-color:var(--accent);flex:0 0 20px}
.consents label.consent{display:flex;gap:12px;align-items:flex-start;text-transform:none;letter-spacing:0;font-weight:400;font-size:1rem;line-height:1.5;color:var(--on-dark);margin:14px 0 0;padding:12px 14px;background:var(--ink);border:1px solid var(--line-dark);border-radius:8px}
.consents label.consent:has(input:checked){border-color:var(--gold)}
.consents label.consent input{width:22px;height:22px;flex:0 0 22px;margin-top:2px;accent-color:var(--accent)}
.consents input.sig{font-family:var(--display);font-size:1.4rem;letter-spacing:.02em}
.consents input[readonly]{opacity:.8}
.af-send{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.af-privacy{margin-top:12px}
.sent-ok .ok-head{font-family:var(--display);font-size:1.7rem;text-transform:uppercase}
.sent-ok .ok-next{margin-top:14px;font-weight:600}
.sent-ok .ok-next a{color:var(--gold)}
@media (max-width:640px){.af-eq{grid-template-columns:minmax(0,1fr) 96px}}
@media (max-width:480px){.af-progress{margin:-22px -14px 6px;padding:12px 14px 10px}.rep-row{padding:2px 10px 10px}fieldset.af-sec>legend{font-size:1.15rem}}
/* 10/4: dark sections that are not .dark still get light text (reach finder intro was dark gray on black) */
.reach .sect-head p,.reach p{color:var(--on-dark-soft)}
.reach .sect-head h2{color:var(--on-dark)}
/* 10/4: menu button shows a real X when open; current page marked; call and request inside the open menu */
@media (max-width:960px){
  .menu-toggle[aria-expanded="true"]::before{width:16px;height:16px;box-shadow:none;transform:none;border-radius:0;background:linear-gradient(45deg,transparent calc(50% - 1.25px),#fff calc(50% - 1.25px),#fff calc(50% + 1.25px),transparent calc(50% + 1.25px)),linear-gradient(-45deg,transparent calc(50% - 1.25px),#fff calc(50% - 1.25px),#fff calc(50% + 1.25px),transparent calc(50% + 1.25px))}
  .mobile-nav a[aria-current="page"]{color:var(--gold);box-shadow:inset 4px 0 0 var(--accent);padding-left:14px}
  .mnav-cta{display:grid;gap:10px;margin-top:22px;padding-bottom:24px}
  .mobile-nav .mnav-cta a{border-bottom:0;padding:0;font-size:1rem}
  .mobile-nav .mnav-cta a::after{content:none}
  .mobile-nav .mnav-btn{display:flex;align-items:center;justify-content:center;min-height:54px;border-radius:8px;letter-spacing:.06em}
  .mobile-nav .mnav-btn.call{background:var(--ink-3);border:1px solid rgba(255,255,255,.25);color:#fff}
  .mobile-nav .mnav-btn.req{background:var(--accent);color:#fff}
  .mobile-nav .mnav-link{display:block;min-height:44px;line-height:44px;text-align:center;color:var(--gold);text-transform:none;font-family:var(--body,inherit);font-weight:600;letter-spacing:0;text-decoration:underline;text-underline-offset:3px}
  body.menu-open{overflow:hidden}
}
/* 10/4: links inside dark sections were brand red on near black (2.8 to 1); gold reads at 12 to 1 */
.page-hero p a:not(.btn):not(.tbd-back),.dark p a:not(.btn):not(.tbd-back),.reach p a:not(.btn):not(.tbd-back),.cta-band p a:not(.btn):not(.tbd-back),.hero-inner p a:not(.btn):not(.tbd-back){color:var(--gold);text-decoration-color:rgba(255,204,0,.6)}
/* reach finder: what the numbers mean on a job (fleet page). The finder itself is css/reach.css (10/5/2026). */
.reach-explain{margin-top:28px;background:var(--ink-2);border:1px solid var(--line-dark);border-radius:12px;padding:20px 22px}
.reach .reach-explain h3{color:var(--on-dark);margin:0 0 12px}
.reach-explain ol{margin:0;padding-left:1.3em;display:grid;grid-template-columns:1fr 1fr;gap:10px 32px}
.reach-explain li{color:var(--on-dark-soft);font-size:.95rem;line-height:1.5}
.reach-explain li b{color:var(--on-dark)}
.reach .reach-explain .src{margin:14px 0 0;font-size:.8rem;color:var(--on-dark-faint)}
@media (max-width:900px){.reach-explain ol{grid-template-columns:1fr}}
@media (max-width:480px){.reach-explain{padding:16px 14px}}
/* 10/5 Spanish site: the language toggle, "English | Espa\00f1ol", in the header of every page that has a twin, on
   the phone and the computer. The current language is marked (gold); the other one opens the same page in that
   language. The full words always show: on a small phone the logo and the menu button make the room. */
.lang-switch{flex:none;display:inline-flex;align-items:stretch;margin-left:0;border:1px solid rgba(255,255,255,.45);border-radius:8px;overflow:hidden}
.lang-switch>a,.lang-switch>span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:40px;padding:0 12px;font-family:var(--body);font-weight:700;font-size:.95rem;letter-spacing:0;text-transform:none;text-decoration:none;color:var(--on-dark);white-space:nowrap}
.lang-switch>*+*{border-left:1px solid rgba(255,255,255,.45)}
.lang-switch>span[aria-current]{background:var(--gold);color:#1B1400}
.lang-switch>a:hover{background:rgba(255,255,255,.1);color:#fff;text-decoration:underline;text-underline-offset:3px}
.lang-switch>a:focus-visible{outline:3px solid var(--gold);outline-offset:-3px;border-radius:7px}
/* The computer header between the phone layout (960 px) and a wide screen, on one line.
   English: the look of the live site (logo, menu and dispatch button as they were), the toggle where the old
   "Empleos" link was. Under 1024 px the gaps, the menu links' side padding and the toggle tighten a little so the
   dispatch button keeps its place on the line.
   Spanish: the menu names run longer (Flota y alcance, Ubicaciones), so up to 1199 px the menu keeps its 1100 px size
   (a little smaller under 1090 px), and under 1070 px, where menu, toggle and dispatch button cannot share the line,
   the dispatch button waits for a wider screen (the number is in the hero, the bands and the footer of every page).
   Measured 10/6 at 961 to 1280 px, English against the live site. */
@media (min-width:961px){nav.main>a{white-space:nowrap}}
@media (min-width:961px) and (max-width:1023px){
  html:not([lang=es]) header.site .bar{gap:12px}
  html:not([lang=es]) nav.main>a{padding:9px 6px}
  html:not([lang=es]) .lang-switch>a,html:not([lang=es]) .lang-switch>span{padding:0 8px;font-size:.92rem}
}
@media (min-width:961px) and (max-width:1199px){html[lang=es] header.site .bar{gap:12px}html[lang=es] nav.main>a{padding:9px 8px;font-size:.92rem}}
@media (min-width:961px) and (max-width:1089px){html[lang=es] nav.main>a{padding:9px 7px;font-size:.9rem}}
@media (min-width:961px) and (max-width:1069px){html[lang=es] header.site .bar-cta{display:none}}
@media (max-width:960px){
  header.site .bar{gap:8px}
  .lang-switch{margin-left:auto}
  header.site .menu-toggle{margin-left:0}
  /* 10/6 Nick: a page without a language toggle (Ken's question page, the office inbox) keeps the menu button at the
     right edge, the same place as on every other page, instead of next to the logo. */
  header.site nav.main+.bar-cta+.menu-toggle{margin-left:auto}
  .lang-switch>a,.lang-switch>span{min-height:44px}
}
header.site .brand{flex-shrink:0}
header.site .brand img{object-fit:contain}
@media (max-width:479px){
  .lang-switch>a,.lang-switch>span{padding:0 9px;font-size:.9rem}
  header.site .brand img{height:32px}
  header.site .menu-toggle{font-size:0;gap:0;padding:0 13px}
}
@media (max-width:359px){
  header.site .bar{padding-left:16px;padding-right:16px}
  .lang-switch>a,.lang-switch>span{padding:0 7px;font-size:.85rem}
  header.site .brand img{height:28px}
}
/* Tap targets: every link and button at least 44 px tall on a phone without changing the look.
   Side lists and the footer base link get a 44 px row; links inside running text get invisible
   vertical padding (inline padding does not move the lines, it only widens what a finger can hit). */
.aside li a{display:flex;align-items:center;min-height:44px;padding-top:8px;padding-bottom:8px}
.foot-base a{display:inline-flex;align-items:center;min-height:44px}
p a:not([class]){padding-top:12px;padding-bottom:12px}
.card .pad p a[href^="tel:"]{padding-top:10px;padding-bottom:10px}
