/*
Theme Name: TruckingKarma
Theme URI: https://truckingkarma.com
Author: TruckingKarma
Description: Custom theme for TruckingKarma, a trucking rate-confirmation transparency platform.
Version: 1.7.0
Text Domain: truckingkarma
*/


:root{--bg:#F3F5F1;--surf:#fff;--ink:#0B2016;--mute:#5B6B60;--line:#DCE6DC;--navy:#00542C;--brass:#F5B93D;--g:#1F8A63;--gb:#E2F3EB;--r:#C7443B;--rb:#FBE8E6;--acc:#00542C;--band:#00341B;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#081410;--surf:#0E1F17;--ink:#EAF3EC;--mute:#8FA69A;--line:#1D3A2A;--navy:#1F8A63;--brass:#F5B93D;--gb:#12301F;--rb:#33191A;--acc:#4FBF8C;--band:#052013}}
:root[data-theme="dark"]{--bg:#081410;--surf:#0E1F17;--ink:#EAF3EC;--mute:#8FA69A;--line:#1D3A2A;--navy:#1F8A63;--brass:#F5B93D;--gb:#12301F;--rb:#33191A;--acc:#4FBF8C;--band:#052013}
html{scroll-padding-top:env(safe-area-inset-top,0px);scroll-behavior:smooth}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.55 "IBM Plex Sans",system-ui,sans-serif}
h1,h2,h3{font-family:"Bricolage Grotesque","Helvetica Neue",Arial,sans-serif;line-height:1.08;margin:0;letter-spacing:-.02em}
a{color:inherit}
.w{max-width:1120px;margin:0 auto;padding:0 20px}
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:24px;height:60px}
.logo{display:flex;align-items:center;text-decoration:none}
.logo img{display:block}
.nav nav{display:none;gap:22px;margin-left:auto;font-size:15px;color:var(--mute)}
.nav nav a{text-decoration:none}.nav nav a:hover{color:var(--ink)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;padding:12px 18px;font:600 15px "IBM Plex Sans",sans-serif;cursor:pointer;text-decoration:none;background:var(--navy);color:#fff;white-space:nowrap}
:root[data-theme="dark"] .btn.p,:root:not([data-theme="light"]) .btn.p{}
.btn.o{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.block{display:flex;width:100%;box-sizing:border-box}
.trk-actions{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.trk-actions .btn{padding:14px 18px;font-size:15px}
.trk-actions p{margin:0}
.trk-modal-overlay{position:fixed;inset:0;background:rgba(8,20,16,.55);display:flex;align-items:flex-end;justify-content:center;z-index:50;padding:0}
.trk-modal-overlay[hidden]{display:none}
.trk-modal-card{background:var(--surf);color:var(--ink);border-radius:20px 20px 0 0;padding:24px 22px 28px;width:100%;max-width:480px;max-height:88vh;overflow-y:auto;position:relative;display:grid;gap:12px}
.trk-modal-card h3{font-size:20px;margin:0 18px 0 0}
.trk-modal-card .mute{color:var(--mute);font-size:14.5px;margin:0}
.trk-modal-card label{font-weight:600;font-size:14.5px;display:block;margin-bottom:6px}
.trk-modal-card select,.trk-modal-card textarea,.trk-modal-card input[type=text],.trk-modal-card input[type=tel]{width:100%;font:500 16px "IBM Plex Sans",sans-serif;padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);box-sizing:border-box;resize:vertical}
.trk-modal-close{position:absolute;top:16px;right:16px;background:none;border:0;font-size:26px;line-height:1;color:var(--mute);cursor:pointer;padding:4px}
.trk-flag-toggle{display:flex;gap:8px}
.trk-flag-toggle button{flex:1;border:1px solid var(--line);background:var(--bg);color:var(--mute);border-radius:10px;padding:10px;font:600 14.5px inherit;cursor:pointer}
.trk-flag-toggle button[data-t=green][aria-selected=true]{background:var(--gb);color:var(--g);border-color:var(--g)}
.trk-flag-toggle button[data-t=red][aria-selected=true]{background:var(--rb);color:var(--r);border-color:var(--r)}
@media(min-width:640px){
.trk-modal-overlay{align-items:center}
.trk-modal-card{border-radius:20px}
}
.nav .actions{display:flex;gap:8px;margin-left:auto}
.nav .actions .btn{padding:9px 14px}
/* Narrower phones (smaller reported CSS viewport width, even on a
   similar-size screen) don't have room for the logo plus two full-size
   header buttons and the 3-way search tabs at their default padding/font
   size — this tightens both just enough that labels like "Invite a
   carrier" and "USDOT number" stay on one line instead of wrapping. */
@media(max-width:400px){
.nav{gap:12px}
.nav .actions{gap:6px}
.nav .actions .btn{padding:8px 10px;font-size:13px}
.tabs button{padding:9px 3px;font-size:12.5px}
}
:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
.hero{padding:40px 0 28px;display:grid;gap:32px}
h1{font-size:clamp(36px,8.5vw,64px);font-weight:800}
.sub{color:var(--mute);font-size:18px;max-width:34em;margin:16px 0 24px}
.sbox{background:var(--surf);border:1px solid var(--line);border-radius:16px;padding:8px;box-shadow:0 12px 40px -18px rgba(12,26,46,.35)}
.tabs{display:flex;gap:4px;padding:4px}
.tabs button{flex:1;border:0;background:none;padding:9px 6px;border-radius:9px;font:500 14px "IBM Plex Sans",sans-serif;color:var(--mute);cursor:pointer;white-space:nowrap}
.tabs button[aria-selected=true]{background:var(--bg);color:var(--ink);font-weight:600}
.srow{display:flex;flex-direction:column;gap:8px;padding:4px}
.srow input{width:100%;font:500 18px "IBM Plex Sans",sans-serif;padding:15px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink)}
.try{font-size:14px;color:var(--mute);margin:12px 4px 4px}
.try button{background:none;border:0;padding:0;font:inherit;color:var(--acc);cursor:pointer;text-decoration:underline;margin-right:10px}
#res{margin-top:10px;display:grid;gap:10px}
.empty{padding:16px;border:1px dashed var(--line);border-radius:12px;color:var(--mute);font-size:15px}
.co{background:var(--surf);border:1px solid var(--line);border-radius:16px;padding:18px;display:grid;gap:14px}
.co.nj{border-style:dashed;background:transparent}
.top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.top h3{font-size:20px}
.ids{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13.5px;color:var(--mute);margin-top:6px;font-variant-numeric:tabular-nums}
.seal{flex:none;width:68px;text-align:center}
.seal b{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--gc,var(--navy));color:#fff;font:800 34px "Bricolage Grotesque",sans-serif;box-shadow:0 0 0 3px var(--surf),0 0 0 5px var(--gc,var(--brass));margin:0 2px 8px}
.seal span{font-size:11px;color:var(--mute);line-height:1.2;display:block}
.seal.none b{background:transparent;color:var(--mute);box-shadow:none;border:2px dashed var(--line);font-size:26px}
[data-g=A]{--gc:#1F8A63}[data-g=B]{--gc:#6FA23A}[data-g=C]{--gc:#C99A2E}[data-g=D]{--gc:#D0651E}[data-g=F]{--gc:#C7443B}
.st{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;padding:4px 10px;border-radius:99px;border:1px solid var(--line);width:fit-content}
.st svg{width:14px;height:14px;color:var(--brass)}
.bar{display:flex;height:8px;border-radius:9px;overflow:hidden;background:var(--line);gap:2px}
.bar i{display:block;transform-origin:left;animation:grow 1s .2s both cubic-bezier(.2,.8,.2,1)}
.bar .g{background:var(--g)}.bar .r{background:var(--r)}
@keyframes grow{from{transform:scaleX(0)}}
.cf{display:flex;justify-content:space-between;font-size:14px;margin-top:8px;font-variant-numeric:tabular-nums}
.cf .g{color:var(--g);font-weight:600}.cf .r{color:var(--r);font-weight:600}
.act{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;color:var(--mute)}
.act .btn{padding:9px 14px;font-size:14px}
.prev{display:none}
section{padding:56px 0}
h2{font-size:clamp(28px,5.5vw,42px);font-weight:800;max-width:16em}
.lead{color:var(--mute);font-size:18px;max-width:36em;margin:14px 0 0}
.two{display:grid;gap:16px;margin-top:32px}
.sig{background:var(--surf);border:1px solid var(--line);border-radius:18px;padding:24px}
.sig h3{font-size:22px;margin:14px 0 8px}
.sig p{margin:0;color:var(--mute)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:99px;font-weight:600;font-size:14px}
.chip svg{width:14px;height:14px}
.chip.g{background:var(--gb);color:var(--g)}.chip.r{background:var(--rb);color:var(--r)}
.scale{display:flex;gap:8px}
.scale b{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--gc);color:#fff;font:800 20px "Bricolage Grotesque",sans-serif;box-shadow:0 0 0 2px var(--surf),0 0 0 4px var(--gc)}
.note{margin-top:20px;padding:14px 16px;border-left:3px solid var(--acc);background:var(--surf);border-radius:0 12px 12px 0;font-size:15px;color:var(--mute)}
.grid3{display:grid;gap:14px;margin-top:32px}
.vgrid{display:grid;gap:12px;margin-top:32px;counter-reset:v}
.vcard{background:var(--surf);border:1px solid var(--line);border-radius:16px;padding:20px 20px 20px 62px;position:relative}
.vcard:before{counter-increment:v;content:counter(v);position:absolute;left:18px;top:20px;width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font:700 14px "Bricolage Grotesque",sans-serif}
.vcard h3{font-size:17.5px;margin-bottom:5px}
.vcard p{margin:0;color:var(--mute);font-size:15px}
.vbadge{display:flex;align-items:center;gap:10px;margin-top:28px;padding:14px 16px;background:var(--gb);border-radius:12px;color:var(--g);font-weight:600;font-size:14.5px}
.vbadge svg{width:20px;height:20px;flex:none}
.feat{border-top:2px solid var(--ink);padding-top:14px}
.feat h3{font-size:19px;margin-bottom:6px}.feat p{margin:0;color:var(--mute);font-size:15.5px}
.band{background:var(--band);color:#EAF0FA;border-radius:24px;padding:36px 22px;margin:0 -4px}
.band .lead{color:#A9B6CF}
.band .btn{background:#fff;color:#0C1A2E}
.band .btn.o{background:transparent;color:#fff;border-color:#3A4B70}
.band .scale{margin:24px 0}
.band .scale b{box-shadow:0 0 0 2px var(--band),0 0 0 4px var(--gc)}
.perks{display:grid;gap:12px;margin:20px 0 26px;padding:0;list-style:none;color:#D5DEEF}
.perks li{padding-left:26px;position:relative}
.perks li:before{content:"";position:absolute;left:0;top:8px;width:12px;height:6px;border-left:2px solid var(--brass);border-bottom:2px solid var(--brass);transform:rotate(-45deg)}
.steps{display:grid;gap:14px;margin-top:32px;counter-reset:s}
.step{background:var(--surf);border:1px solid var(--line);border-radius:16px;padding:20px 20px 20px 64px;position:relative}
.step:before{counter-increment:s;content:counter(s);position:absolute;left:18px;top:18px;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font:700 15px "Bricolage Grotesque",sans-serif}
.step h3{font-size:18px;margin-bottom:4px}.step p{margin:0;color:var(--mute);font-size:15px}
details{border-bottom:1px solid var(--line);padding:16px 0}
summary{font:700 18px "Bricolage Grotesque",sans-serif;cursor:pointer}
details p{color:var(--mute);margin:10px 0 0;max-width:40em}
footer{border-top:1px solid var(--line);padding:36px 0 44px;color:var(--mute);font-size:14.5px}
.fg{display:grid;gap:22px}
.fg nav{display:flex;gap:8px 20px;flex-wrap:wrap}
.fg a{text-decoration:none}
@media(min-width:760px){
.nav nav{display:flex}.nav .btn{margin-left:0}
.srow{flex-direction:row}.srow .btn{padding:0 26px}
.two{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:repeat(3,1fr);gap:28px}
.steps{grid-template-columns:repeat(3,1fr)}
.band{padding:56px;margin:0}.fg{grid-template-columns:1.4fr 1fr}
.pv{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}
}
@media(min-width:980px){
.hero{grid-template-columns:1.15fr .85fr;align-items:center;padding:72px 0 44px;gap:56px}
.prev{display:block;transform:rotate(1.5deg)}
}
.pv{display:grid;gap:16px;margin-top:32px}
@media(prefers-reduced-motion:reduce){.bar i{animation:none}html{scroll-behavior:auto}}
