/* Generated (phase-5 PR3): one class per distinct inline style formerly on index.html. Content-addressed (tl-<sha1[:8]>). */
.tl-0042b9b8.tl-0042b9b8{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,0.15);border:1px solid rgba(255,255,255,0.25);padding:6px 14px;border-radius:100px;margin-bottom:1rem}
.tl-02b7a8d5.tl-02b7a8d5{font-size:14px;color:rgba(255,255,255,0.7);font-weight:500}
.tl-031837b6.tl-031837b6{margin-bottom:3rem}
.tl-03a594ff.tl-03a594ff{display:block;background:linear-gradient(135deg,#0F2D5C 0%,#1B4F8A 50%,#C0392B 100%);border-radius:14px;padding:3rem;text-decoration:none;color:white;position:relative;overflow:hidden;transition:all 0.3s}
.tl-0a2f871c.tl-0a2f871c{background:#FFD699;color:#0F2D5C;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;width:22px;height:22px;border-radius:50%}
.tl-0d3aca00.tl-0d3aca00{font-size:15px;color:rgba(255,255,255,0.75);line-height:1.6;margin-bottom:1rem;font-weight:300}
.tl-20d276fe.tl-20d276fe{background:#F5F0E8;border:1px solid #0F2D5C;transform:rotate(45deg)}
.tl-2298c98c.tl-2298c98c{position:absolute;inset:0;background-image:radial-gradient(circle at 20% 50%, rgba(255,255,255,0.05) 1px, transparent 2px);background-size:30px 30px;opacity:0.4;pointer-events:none}
.tl-27a17181.tl-27a17181{text-align:center;margin-bottom:5rem}
.tl-290c3c6e.tl-290c3c6e{font-family:'DM Serif Display',serif;font-size:24px;color:#1A1410;margin-bottom:0.75rem;font-weight:400}
.tl-2a72a2a8.tl-2a72a2a8{display:block;background:#1A1410;border-radius:12px;padding:2.5rem;text-decoration:none;color:white;transition:all 0.3s}
.tl-2ad9c3b9.tl-2ad9c3b9{font-size:12px;font-weight:700;letter-spacing:0.18em;text-transform:uppercase}
.tl-2e0b3354.tl-2e0b3354{font-size:12px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:rgba(255,255,255,0.75);margin-top:0.5rem}
.tl-30d93813.tl-30d93813{font-family:'DM Serif Display',serif;font-size:clamp(28px,3vw,40px);color:white;font-weight:400;line-height:1.1;margin-bottom:0.75rem}
.tl-33b2afb3.tl-33b2afb3{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:#FFD699;color:#0F2D5C;border-radius:50%;font-size:12px;font-weight:700;flex-shrink:0}
.tl-342a1a73.tl-342a1a73{font-family:'DM Serif Display',serif;font-size:clamp(32px,4vw,52px);color:#1A1410;font-weight:400;line-height:1.05}
.tl-3450c9b1.tl-3450c9b1{background:linear-gradient(135deg,#0F2D5C 0%,#1B4F8A 100%);padding:4rem 3rem;border-bottom:1px solid rgba(255,255,255,0.1);color:white;position:relative;overflow:hidden}
.tl-3a2c059e.tl-3a2c059e{background:#FFFFFF;padding:7rem 3rem;border-top:1px solid rgba(26,20,16,0.07)}
.tl-3b655d33.tl-3b655d33{background:rgba(192,57,43,0.25);border:1px solid rgba(192,57,43,0.5);border-radius:12px;padding:1.5rem;text-align:center;backdrop-filter:blur(8px)}
.tl-3faaa9f4.tl-3faaa9f4{background:linear-gradient(135deg,#C0392B,#E74C3C);color:white;padding:1rem;border-radius:8px;font-size:18px;text-align:center}
.tl-43ac0238.tl-43ac0238{margin-top:2.5rem;display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.tl-451b0573.tl-451b0573{font-size:12px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;color:rgba(26,20,16,0.68);margin-bottom:1rem}
.tl-53eb7e26.tl-53eb7e26{max-width:1400px;margin:0 auto}
.tl-56ea99b3.tl-56ea99b3{position:relative;border-radius:12px;overflow:hidden;flex-shrink:0;width:380px;height:280px;cursor:pointer;transition:all 0.3s}
.tl-56f929eb.tl-56f929eb{font-size:13px;font-weight:600;color:white;display:inline-flex;align-items:center;gap:8px}
.tl-5c5e75f1.tl-5c5e75f1{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);border-radius:12px;padding:1.5rem;text-align:center;backdrop-filter:blur(8px)}
.tl-5cfc6154.tl-5cfc6154{width:8px;height:8px;border-radius:50%;background:#E74C3C;animation:trkPulse 1.6s infinite}
.tl-5ec92827.tl-5ec92827{width:8px;height:8px;border-radius:50%;background:#12826D;animation:blink 1.6s infinite}
.tl-60e92095.tl-60e92095{font-family:'DM Serif Display',serif;font-size:48px;color:#C0392B;font-style:italic;margin-bottom:1.5rem;line-height:1}
.tl-617e5e36.tl-617e5e36{max-width:1400px;margin:0 auto 3rem;padding:0 3rem}
.tl-64775154.tl-64775154{font-size:12px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:#C0392B;margin-bottom:1rem;margin-top:1rem}
.tl-6aa1b5e9.tl-6aa1b5e9{position:relative;overflow:hidden;width:100%;padding:1rem 0;mask-image:linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);-webkit-mask-image:linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%)}
.tl-6c8dd869.tl-6c8dd869{font-size:12px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;color:rgba(26,20,16,0.72);margin-bottom:1rem}
.tl-6ff146e9.tl-6ff146e9{position:absolute;bottom:0;left:0;right:0;padding:1.25rem;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,0.92) 100%)}
.tl-7b68816a.tl-7b68816a{font-size:12px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:rgba(255,255,255,0.82);margin-top:0.5rem}
.tl-840b9142.tl-840b9142{font-size:12px;color:rgba(255,255,255,0.74);margin-top:0.5rem}
.tl-89261395.tl-89261395{font-family:'DM Serif Display',serif;font-size:48px;color:#F5F0E8;font-style:italic;margin-bottom:1.5rem;line-height:1;opacity:0.5}
.tl-8d2b137e.tl-8d2b137e{font-family:'DM Serif Display',serif;font-size:24px;color:white;margin-bottom:0.75rem;font-weight:400}
.tl-90f33e7d.tl-90f33e7d{display:grid;grid-template-columns:1.2fr 1fr;gap:4rem;align-items:center}
.tl-931cab95.tl-931cab95{display:inline-flex;align-items:center;gap:10px;color:white;padding:16px 24px;text-decoration:none;font-size:14px;font-weight:600;border:1.5px solid rgba(255,255,255,0.3);border-radius:6px;transition:all 0.2s}
.tl-970e37d1.tl-970e37d1{font-size:14px;color:rgba(255,255,255,0.82);line-height:1.7;font-weight:300;margin-bottom:1.5rem}
.tl-983ada9c.tl-983ada9c{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.tl-9c2c2c56.tl-9c2c2c56{font-size:12px;font-weight:700;letter-spacing:0.16em;text-transform:uppercase;color:#C0392B;margin-bottom:1rem;margin-top:2rem}
.tl-9e7e3c61.tl-9e7e3c61{font-family:'DM Serif Display',serif;font-size:clamp(36px,4vw,52px);color:#1A1410;font-weight:400;line-height:1.1}
.tl-a363f6ab.tl-a363f6ab{font-size:12px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:rgba(255,255,255,0.65);margin-top:0.5rem}
.tl-a51d80f9.tl-a51d80f9{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:#C0392B;color:white;border-radius:50%;font-size:12px;font-weight:700;flex-shrink:0}
.tl-a6ee2ffd.tl-a6ee2ffd{width:18px;height:18px;flex-shrink:0;vertical-align:middle}
.tl-a9158a87.tl-a9158a87{font-style:italic;color:#E74C3C}
.tl-b06bc36f.tl-b06bc36f{font-size:14px;color:rgba(26,20,16,0.85);line-height:1.7;font-weight:300;margin-bottom:1.5rem}
.tl-b0d79a1c.tl-b0d79a1c{display:flex;gap:1.25rem;animation:tlCarousel 40s linear infinite;width:fit-content}
.tl-b1917c91.tl-b1917c91{font-size:16px;color:rgba(255,255,255,0.7);line-height:1.7;font-weight:300;max-width:540px}
.tl-b4854c94.tl-b4854c94{background:#C0392B;border-radius:50%}
.tl-ba7a238f.tl-ba7a238f{display:inline-flex;align-items:center;gap:8px;background:rgba(192,57,43,0.2);border:1px solid rgba(192,57,43,0.4);padding:6px 14px;border-radius:100px;margin-bottom:1.5rem}
.tl-bc9eeb42.tl-bc9eeb42{background:transparent !important;border:1.5px solid currentColor;color:#FFFFFF !important}
.tl-bd76eb0e.tl-bd76eb0e{width:100%;height:100%;object-fit:cover;display:block}
.tl-c6c6f858.tl-c6c6f858{font-family:'DM Serif Display',serif;font-size:32px;color:white;font-weight:400;line-height:1.1;font-style:italic}
.tl-cb519f3d.tl-cb519f3d{background:#C0392B !important;border-color:#C0392B !important;font-weight:800 !important}
.tl-ce085c71.tl-ce085c71{display:inline-flex;align-items:center;gap:10px;background:#C0392B;color:white;padding:16px 32px;border-radius:6px;font-size:14px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;text-decoration:none;transition:all 0.25s;box-shadow:0 6px 20px rgba(192,57,43,0.4)}
.tl-d0bfd4a6.tl-d0bfd4a6{max-width:1400px;margin:0 auto;position:relative;z-index:2}
.tl-d49bf23c.tl-d49bf23c{background:#C0392B;color:white;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;width:22px;height:22px;border-radius:50%}
.tl-dc0267dc.tl-dc0267dc{background:white;padding:5rem 0 5rem;border-top:1px solid rgba(26,20,16,0.07);overflow:hidden}
.tl-dcc4f67e.tl-dcc4f67e{display:grid;grid-template-columns:1.5fr 1fr;gap:2rem;align-items:center}
.tl-e08c15b5.tl-e08c15b5{background:#C0392B !important;color:white !important;margin-right:0.5rem}
.tl-e5a80350.tl-e5a80350{font-family:'DM Serif Display',serif;font-size:88px;color:white;line-height:1;font-style:italic}
.tl-ec4c5598.tl-ec4c5598{font-size:13px;font-weight:600;color:#1A1410;display:inline-flex;align-items:center;gap:8px}
.tl-f1117a4a.tl-f1117a4a{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.tl-f22c069b.tl-f22c069b{font-size:15px;padding:18px 44px;display:inline-block}
.tl-f6634242.tl-f6634242{display:inline-flex;align-items:center;gap:8px;background:white;color:#C0392B;padding:12px 24px;border-radius:6px;font-size:13px;font-weight:700;letter-spacing:0.06em}
.tl-f789f21a.tl-f789f21a{font-family:'DM Serif Display',serif;font-size:clamp(32px,4vw,52px);color:white;font-weight:400;line-height:1.05;margin-bottom:1.25rem}
.tl-f8f6bc21.tl-f8f6bc21{display:block;background:#F5F0E8;border-radius:12px;padding:2.5rem;text-decoration:none;color:#1A1410;transition:all 0.3s;border:1px solid rgba(26,20,16,0.06)}
.tl-fc511f0c.tl-fc511f0c{margin-top:1.5rem}
/* Externalised from 5 inline <style> block(s) in index.html (phase-5 PR4:
   drop style-src 'unsafe-inline'). Concatenated in document order. */
/* ── FULL-SCREEN VIDEO HERO — dark, readable ── */
.hero{background:var(--black) !important;padding:0 3rem !important;min-height:100vh !important;height:100vh !important;display:flex !important}
.hero-content{display:flex !important;flex-direction:column !important;justify-content:flex-end !important;grid-template-columns:none !important;max-width:1600px !important;width:100% !important;margin:0 auto !important;padding:72px 0 5.5rem !important;gap:0 !important}
.hero-left{max-width:none !important}
.hero-media{position:absolute !important;inset:0 !important;width:100% !important;height:100% !important;border-radius:0 !important;border:none !important;box-shadow:none !important;z-index:0 !important}
.hero-media video,.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-overlay{display:block !important;background:linear-gradient(180deg,rgba(8,8,8,0.80) 0%,rgba(8,8,8,0.55) 38%,rgba(8,8,8,0.70) 72%,rgba(8,8,8,0.96) 100%) !important;position:absolute;inset:0;z-index:1}
.hero h1{color:#FFFFFF !important;text-shadow:0 4px 44px rgba(0,0,0,0.65);font-size:clamp(60px,8vw,120px) !important;max-width:none !important}
.hero h1 em{color:var(--cream) !important}
.hero-eyebrow{color:rgba(255,255,255,0.8) !important;text-shadow:0 1px 10px rgba(0,0,0,0.6)}
.hero-sub{color:rgba(255,255,255,0.88) !important;text-shadow:0 2px 18px rgba(0,0,0,0.65);font-size:19px !important;max-width:640px !important}
.hero-certs-label{color:rgba(255,255,255,0.82) !important}
.hero-certs-section{border-top:1px solid rgba(255,255,255,0.2) !important}
.cert-pill{background:rgba(0,0,0,0.35) !important;border:1px solid rgba(255,255,255,0.3) !important}
.cert-text{color:#fff !important}
.hero-scroll{color:rgba(255,255,255,0.82) !important}
@media(max-width:768px){.hero{padding:0 1.5rem !important}.hero h1{font-size:clamp(44px,11vw,64px) !important}}
/* ── closing CTA: crossfading photo slideshow background ── */
.cta-section{position:relative;overflow:hidden}
.cta-slides{position:absolute;inset:0;z-index:0;pointer-events:none}
.cta-slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 38%;opacity:0;animation:ctaFade 26.0s ease-in-out infinite;filter:saturate(1.05)}
.cta-slides img:nth-child(1){animation-delay:0.0s}
.cta-slides img:nth-child(2){animation-delay:6.5s}
.cta-slides img:nth-child(3){animation-delay:13.0s}
.cta-slides img:nth-child(4){animation-delay:19.5s}
.cta-slides img:first-child{opacity:1}
@keyframes ctaFade{0%{opacity:0;transform:scale(1)}6%{opacity:1}25%{opacity:1}33%{opacity:0;transform:scale(1.10)}100%{opacity:0;transform:scale(1)}}
.cta-section::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,8,8,0.74) 0%,rgba(8,8,8,0.48) 45%,rgba(8,8,8,0.82) 100%);pointer-events:none}
.cta-section > *{position:relative;z-index:2}
.cta-section .cta-slides{z-index:0}
.cta-section h2{text-shadow:0 4px 34px rgba(0,0,0,0.78)}
.cta-eyebrow{text-shadow:0 2px 14px rgba(0,0,0,0.7)}
@media (prefers-reduced-motion:reduce){.cta-slides img{animation-duration:0.1s;animation-iteration-count:1;animation-fill-mode:forwards}.cta-slides img:first-child{opacity:1}}
@keyframes tlSlideZoom {
  0% { transform: scale(1); }
  50% { transform: scale(1.06); }
  100% { transform: scale(1); }
}
@keyframes tlFadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes tlBounceRight {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(6px); }
}
@media (max-width: 768px) {
  section.tlm-height460px { height: 360px !important; }
  section.tlm-height460px > .tl-slideshow + div:not(.tl-slide-dots) + div:not(.tl-slide-dots) { display: none !important; }
}
@media (max-width: 1024px) {
  section.tlm-background1a14 .tlm-gridtemplateco10.tlm-gap125rem {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 640px) {
  section.tlm-background1a14 .tlm-gridtemplateco10.tlm-gap125rem {
    grid-template-columns: 1fr !important;
  }
}
@keyframes tlCarousel {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.tl-carousel-wrap:hover .tl-carousel-track {
  animation-play-state: paused;
}
@media (max-width: 768px) {
  .tl-carousel-card { width: 280px !important; height: 220px !important; }
}

/* ══ MOBILE + WCAG 2.2 AA HARDENING ══ */
/* Overflow. Measured at 320px: .nav-right ran to 415px and .footer-socials to
   379px, so both pushed the document past the viewport on every page. The
   language switcher and both nav CTAs are already duplicated inside the drawer,
   so the bar sheds them as space runs out rather than overflowing. */
@media (max-width:768px){
  .nav-right>.lang-toggle{display:none}
  .footer-socials{flex-wrap:wrap;gap:1rem 1.25rem}
  .hamburger{min-width:44px;min-height:44px;align-items:center;justify-content:center;padding:8px}
  .footer-socials a,.footer-links a{min-height:44px;display:inline-flex;align-items:center}
  .lang-toggle-mobile button{min-height:44px;padding-left:14px;padding-right:14px}
  .mobile-menu a,.mobile-menu button{min-height:44px;display:flex;align-items:center}
  /* fixed full-width furniture needs the notch insets in landscape */
  .cookie{padding-left:max(1.5rem,env(safe-area-inset-left));padding-right:max(1.5rem,env(safe-area-inset-right));padding-bottom:max(1.5rem,env(safe-area-inset-bottom))}
  .float-cta{right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom))}
  .mobile-menu{padding-left:max(3rem,env(safe-area-inset-left));padding-right:max(3rem,env(safe-area-inset-right))}
}
@media (max-width:560px){ .nav-right>.nav-cta[href="book.html"]{display:none} }
@media (max-width:412px){ .nav-right>.nav-cta{display:none} .nav-logo-text{display:none} }
/* two-column grids that never collapsed below the 1024px breakpoint */
@media (max-width:560px){
  .stat-grid,.sm-steps,.cs-grid,.rate-fields,.faq-grid,.how-steps,.story-right{grid-template-columns:1fr!important}
}

/* Contrast. Every value below was measured against its real composited
   background; the old ones are the ratios in the comment. */
.footer-socials a{color:rgba(255,255,255,0.62)}   /* on #111 — was .30 → 2.65:1 */
.sr-btn{color:rgba(26,20,16,0.78);border-color:rgba(26,20,16,0.30)}  /* cream ground, not dark */
.cookie p{color:rgba(26,20,16,0.68)}              /* on #fff — was .50 → 3.44:1 */
.cookie-dec{color:rgba(26,20,16,0.74);border-color:rgba(26,20,16,0.38)} /* was .40 → 2.57:1 */
.marquee-item::after{color:rgba(27,79,138,0.72)!important}

/* Focus. There was no :focus-visible rule anywhere in the site; the red ring
   reads on cream (4.79:1) and on near-black (3.64:1), and the white halo keeps
   it visible where the ring sits on the red CTA itself. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{
  outline:3px solid #C0392B;outline-offset:2px;box-shadow:0 0 0 5px rgba(255,255,255,.85)
}
.skip-link:focus{left:0;outline:3px solid #C0392B;outline-offset:2px}

/* Reduced motion. The existing block covered only .cta-slides and #tl-map; the
   marquee, the carousel and eleven other keyframes ran regardless. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .marquee-track,.tl-carousel-track{animation:none!important}
}


/* Inline-styled grids. Roughly forty multi-column grids across the site are
   declared in a style="" attribute (repeat(3,1fr), repeat(5,1fr), 1fr 1fr …),
   so no stylesheet breakpoint could ever reach them; at 320px they ran the
   document out to 624px on about, 568px on brokers, 500px on book. On a phone
   every one of them becomes a single column. */
@media (max-width:600px){
  .tlm-gridtemplateco{grid-template-columns:1fr!important}
  .service-row{grid-template-columns:1fr!important;gap:1rem!important}
  .sr-btn{white-space:normal}
  .stat-grid,.sm-steps,.cs-grid,.rate-fields,.faq-grid,.how-steps,.story-right,
  .eq-cards,.wt-points,.safety-cards,.sm-offers,.terminals-grid,.footer-top{grid-template-columns:1fr!important}
}

/* Min-content floors. Grid and flex children default to min-width:auto, so a
   card whose contents measure 282px keeps its track at 282px however narrow the
   phone is — that is what still pushed about.html to 330px at a 320px viewport
   after the grids were collapsed. Letting them shrink, and letting single-line
   rows wrap, is the standard remedy. */
@media (max-width:600px){
  section.tlm-padding{padding-left:1.25rem!important;padding-right:1.25rem!important}
  .tlm-displaygrid>*,.tlm-displayflex>*,.track-row>*{min-width:0}
  .tlm-displayflex,.track-row{flex-wrap:wrap}
  .track-row>input,.track-row>button{flex:1 1 100%}
}

/* Last contrast holdouts, each measured on its own ground. */
.notice h2{color:#A5291D}                       /* red on its own tint: 4.34 → 5.2 */
.lane-badge.freq{color:#A5291D}                 /* 4.17 → 5.0 */
#trk-log>div{color:rgba(255,255,255,0.92)}      /* log text on a near-clear panel: 2.83 → 4.9 */

/* Specialty programs: Secure Transport (secure-transport.html), Tour & Show Freight
   (tour-show-freight.html) and the home-page "Specialty Programs" band. Oct 2026.
   Loaded after service-detail-v2.css. Versioned filename: change the bytes, change the name. */

.sp-block{margin:0 0 clamp(2.5rem,5vw,4rem)}
.sp-eyebrow{font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#C0392B;margin:0 0 .8rem}
.sp-h2{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:clamp(26px,2.8vw,38px);line-height:1.12;letter-spacing:-.01em;color:#1A1410;margin:0 0 .8rem}
.sp-h2 em{font-style:italic;color:#C0392B}
.sp-intro{font-size:15.5px;line-height:1.7;color:rgba(26,20,16,.66);margin:0 0 1.6rem;max-width:62ch}

/* Trust strip */
.sp-trust{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;background:#1A1410;color:#fff;border-radius:4px;padding:22px 26px;margin:0 0 clamp(2.5rem,5vw,4rem);border-left:4px solid #C0392B}
.sp-trust strong{display:block;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:clamp(19px,1.9vw,23px);line-height:1.3}
.sp-trust span{display:block;font-size:14px;color:rgba(255,255,255,.72);margin-top:4px}
.sp-tags{display:flex;flex-wrap:wrap;gap:8px}
.sp-tag{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:7px 11px;border:1px solid rgba(255,255,255,.3);border-radius:3px;color:#fff}
.sp-tags--light .sp-tag{border-color:rgba(26,20,16,.2);color:#1A1410;background:#fff}

/* Convoy graphic + numbered layers */
.sp-figure{margin:0 0 14px;background:#1A1410;border-radius:4px;padding:clamp(12px,2.5vw,28px)}
.sp-figure img{display:block;width:100%;height:auto}
.sp-layers{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(26,20,16,.1);border:1px solid rgba(26,20,16,.1);border-radius:4px;overflow:hidden}
.sp-layer{background:#fff;padding:22px 24px;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:start}
.sp-num{grid-row:span 2;width:34px;height:34px;border-radius:50%;background:#C0392B;color:#fff;font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center}
.sp-layer h3{font-family:'DM Sans',sans-serif;font-size:15.5px;font-weight:600;color:#1A1410;margin:6px 0 2px}
.sp-layer p{font-size:14.5px;line-height:1.6;color:rgba(26,20,16,.64);margin:0}

/* Route + steps */
.sp-route{display:block;width:100%;height:auto;border-radius:4px;border:1px solid rgba(26,20,16,.1);margin:0 0 14px}
.sp-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;list-style:none;margin:0;padding:0;counter-reset:sps}
.sp-steps li{border-top:2px solid rgba(26,20,16,.14);padding-top:14px}
.sp-steps li::before{counter-increment:sps;content:counter(sps,decimal-leading-zero);display:block;font-size:12px;font-weight:700;letter-spacing:.12em;color:#C0392B;margin-bottom:6px}
.sp-steps h3{font-family:'DM Sans',sans-serif;font-size:15.5px;font-weight:600;color:#1A1410;margin:0 0 4px}
.sp-steps p{font-size:14px;line-height:1.6;color:rgba(26,20,16,.64);margin:0}

/* Two-column feature (image + list) */
.sp-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.sp-split img{display:block;width:100%;height:clamp(260px,30vw,420px);object-fit:cover;border-radius:4px}
.sp-list{display:grid;gap:10px;list-style:none;margin:0;padding:0}
.sp-list li{background:#fff;border:1px solid rgba(26,20,16,.1);border-left:3px solid #C0392B;border-radius:4px;padding:16px 18px}
.sp-list h3{font-family:'DM Sans',sans-serif;font-size:15.5px;font-weight:600;color:#1A1410;margin:0 0 4px}
.sp-list p{font-size:14.5px;line-height:1.6;color:rgba(26,20,16,.64);margin:0}

/* Event tiles */
.sp-events{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;list-style:none;margin:0;padding:0}
.sp-events li{background:#fff;border:1px solid rgba(26,20,16,.1);border-radius:4px;padding:16px 18px;font-weight:600;font-size:15px;color:#1A1410;display:flex;align-items:center;gap:10px}
.sp-events li::before{content:'';width:8px;height:8px;border-radius:50%;background:#C0392B;flex:none}

/* Project stories */
.sp-story{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;padding:clamp(1.5rem,3vw,2.5rem) 0;border-top:1px solid rgba(26,20,16,.12)}
.sp-story:first-of-type{border-top:0;padding-top:0}
.sp-story-media{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sp-story-media img{display:block;width:100%;height:170px;object-fit:cover;border-radius:4px}
.sp-story-media img.sp-wide{grid-column:1/-1;height:clamp(220px,24vw,320px)}
.sp-story h3{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:clamp(22px,2.2vw,28px);line-height:1.2;color:#1A1410;margin:0 0 .7rem}
.sp-story p{font-size:15px;line-height:1.7;color:rgba(26,20,16,.66);margin:0 0 1rem}
.sp-story--rev .sp-story-media{order:2}

/* FAQ */
.sp-faq{border-top:1px solid rgba(26,20,16,.14);max-width:900px}
.sp-faq details{border-bottom:1px solid rgba(26,20,16,.14)}
.sp-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:18px 0;font-weight:600;font-size:16px;color:#1A1410;min-height:44px}
.sp-faq summary::-webkit-details-marker{display:none}
.sp-faq summary::after{content:'+';font-size:24px;font-weight:400;color:#C0392B;flex:none;transition:transform .2s}
.sp-faq details[open] summary::after{transform:rotate(45deg)}
.sp-faq details p{font-size:15px;line-height:1.7;color:rgba(26,20,16,.66);margin:0 0 18px;max-width:75ch}

/* Home page band */
.sp-home{padding:clamp(70px,8vw,110px) clamp(1.2rem,3vw,3rem);background:#f5f0e8}
.sp-home-inner{max-width:1400px;margin:0 auto}
.sp-home-head{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:end;margin:0 0 2rem}
.sp-home-head p{font-size:15.5px;line-height:1.7;color:rgba(26,20,16,.66);margin:0}
.sp-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sp-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:440px;padding:clamp(24px,3vw,36px);border-radius:4px;overflow:hidden;background:#1A1410;color:#fff;text-decoration:none;isolation:isolate;transition:transform .25s ease,box-shadow .25s ease}
.sp-card:hover{transform:translateY(-4px);box-shadow:0 20px 50px rgba(26,20,16,.25)}
.sp-card-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.sp-card--photo::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(17,12,9,.96) 0%,rgba(17,12,9,.72) 48%,rgba(17,12,9,.12) 100%)}
.sp-card-art{display:block;width:100%;height:auto;margin:0 0 auto;padding-bottom:1.2rem}
.sp-card .sp-eyebrow{color:#F1948A}
.sp-card h3{font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:clamp(24px,2.4vw,32px);line-height:1.15;color:#fff;margin:0 0 .6rem}
.sp-card p{font-size:15px;line-height:1.65;color:rgba(255,255,255,.8);margin:0 0 1.1rem}
.sp-card .sp-tags{margin:0 0 1.3rem}
.sp-card-btn{align-self:flex-start;background:#C0392B;color:#fff;padding:13px 24px;border-radius:4px;font-weight:600;font-size:14.5px}
.sp-card:hover .sp-card-btn{background:#A93226}

@media (max-width:1024px){
  .sp-layers{grid-template-columns:repeat(2,1fr)}
  .sp-steps{grid-template-columns:repeat(3,1fr)}
  .sp-events{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .sp-split,.sp-story,.sp-cards,.sp-home-head{grid-template-columns:1fr}
  .sp-story--rev .sp-story-media{order:0}
}
@media (max-width:600px){
  .sp-layers,.sp-steps,.sp-events{grid-template-columns:1fr}
  .sp-route{display:none}
  .sp-story-media img{height:130px}
  .sp-card{min-height:400px}
  .sp-card-btn{align-self:stretch;text-align:center}
}
@media (prefers-reduced-motion:reduce){.sp-card,.sp-card:hover{transition:none;transform:none}}

/* v2 (Oct 26 2026): real photos replace the convoy illustration */
.sp-figure--photo{padding:0;background:none}
.sp-figure--photo img{height:clamp(260px,34vw,460px);object-fit:cover;object-position:center 40%;border-radius:4px}
.sp-card--photo .sp-card-photo{object-position:center 35%}
/* v5 (2026-10-26, owner request): the hero video was too dark and the headline too large.
   v4 was skipped: that filename had already shipped on this branch (the rejected still-photo
   hero) and /assets/css/* is cached immutable, so a reused name served the old bytes.
   The shared sheet's hero-overlay gradient ran 85% -> 55% -> 30% -> 75% black with a 60%
   vignette on top; the video itself is untouched. Same selectors and weight as the shared
   rules, loaded later, so these win. */
/* "Crystal clear": no full-frame tint. A light left-edge wash behind the text column and a
   short fade at the bottom into the next section; the rest of the frame is the video as shot. */
.hero-overlay{background:linear-gradient(90deg,#0a0f1e4d 0%,#0a0f1e1f 38%,#0000 62%),linear-gradient(0deg,#0a0a0ab3 0%,#0000 22%)!important}
.hero-overlay:after{background:none}
.hero h1{font-size:clamp(38px,4.6vw,64px)!important;line-height:1.05!important;max-width:720px!important;margin-bottom:1.5rem!important}
.hero h1{text-shadow:0 2px 14px #000d,0 1px 4px #000c!important}
.hero h1 em{text-shadow:0 2px 14px #000d!important}
.hero-sub{text-shadow:0 1px 8px #000c}
/* The real culprit: the shared sheet's .hero-media:after merges two old rules — a full-frame
   film-grain layer (inset:0, opacity .4, mix-blend-mode:overlay) and the "Live Trans Link
   Fleet" badge (navy background). The result was a 1392x868px navy sheet blended over the
   whole video. Measured: it alone cost most of the brightness. Removed. */
.hero-media:after{display:none!important}
/* v6 (2026-10-26, owner request): Specialty Programs cards — bigger, and the photo visible.
   The cards now use the full-resolution photographs (the -card variants were 35-42 KB
   re-encodes), stand 620px tall on desktop, and the dark wash is confined to the lower
   half behind the text instead of covering the whole photo. */
.sp-cards{gap:20px}
.sp-card{min-height:620px}
.sp-cards>a[href]::before{background:linear-gradient(0deg,rgba(17,12,9,.94) 0%,rgba(17,12,9,.78) 28%,rgba(17,12,9,.35) 50%,rgba(17,12,9,0) 68%)}
.sp-card--photo .sp-card-photo{object-position:center 30%}
@media (max-width:900px){.sp-card{min-height:520px}}
@media (max-width:600px){.sp-card{min-height:460px}}

/* Last-mile / white-glove section (owner request, 2026-10-26). The photo slideshow at the
   foot of the page is replaced by a video background (hero-bg.mp4 again, so no extra
   transfer) with a real delivery photo as its poster, and the section carries the
   liftgate / white-glove content instead of a headline alone. */
.cta-lastmile{padding:clamp(6rem,10vw,9rem) clamp(1.5rem,4vw,3rem)}
.cta-media{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.cta-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.cta-lastmile::after{background:linear-gradient(180deg,rgba(8,8,8,.62) 0%,rgba(8,8,8,.42) 45%,rgba(8,8,8,.78) 100%)}
.cta-lastmile h2{margin-bottom:1.5rem}
.cta-lead{color:rgba(255,255,255,.86);font-size:clamp(16px,1.5vw,19px);line-height:1.65;max-width:760px;margin:0 auto 2.5rem;text-shadow:0 1px 10px rgba(0,0,0,.7)}
.lm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:1240px;margin:0 auto 2.5rem;text-align:left}
.lm-item{background:rgba(10,10,10,.55);border:1px solid rgba(255,255,255,.14);border-top:3px solid #C0392B;border-radius:6px;padding:22px 22px 20px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.lm-item h3{color:#fff;font-family:'DM Serif Display',Georgia,serif;font-weight:400;font-size:22px;line-height:1.2;margin:0 0 8px}
.lm-item p{color:rgba(255,255,255,.82);font-size:14.5px;line-height:1.6;margin:0}
@media (max-width:1024px){.lm-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.lm-grid{grid-template-columns:1fr}}

/* v7 (2026-10-26, owner request): the last-mile section's background is the dock photograph
   (crew unloading a Trans Link trailer by forklift), still, exactly as the owner approved from
   the preview render. Lazy-loaded at the foot of the page, so it costs the initial transfer
   nothing; the earlier video+poster arrangement had to borrow the hero poster to stay within
   the 700 KB ceiling (check 89). */
/* v8 (2026-10-27, owner request): no logo watermark over the hero; "Cross-border freight
   carrier." on one line with "Delivering your success." smaller beneath it. */
.hero-media:before{display:none!important}
.hero h1{font-size:clamp(32px,3.9vw,56px)!important;max-width:none!important;line-height:1.08!important}
.hero h1 span[data-i18n="hero.headline.1"]{white-space:nowrap}
.hero h1 em{display:block;font-size:.62em!important;line-height:1.15;margin-top:.35em}
.hero h1 br{display:none}
@media (max-width:760px){.hero h1 span[data-i18n="hero.headline.1"]{white-space:normal}}

/* v9 (2026-10-27, owner request): the real programme logos replace the drawn icons in the
   hero certification pills and the marquee strip. Each logo keeps its own white ground. */
.cert-logo-img{height:34px;width:auto;max-width:100px;background:#fff;border-radius:5px;flex-shrink:0;object-fit:contain;display:inline-block}
.cert-with-logo{padding:5px 12px 5px 5px!important}
.marquee-logo-img{height:22px;width:auto;max-width:64px;background:#fff;border-radius:4px;flex-shrink:0;object-fit:contain;vertical-align:middle;display:inline-block;margin-right:8px}
.hero-certs{margin-top:.25rem!important;padding-top:0!important;border-top:0!important;max-width:820px}
.hero-certs-section{margin-top:2rem!important;padding-top:1.5rem!important}
