  :root{
    --cream:#F5F0E6;
    --cream-light:#FCFAF4;
    --green:#6F7F4C;
    --green-dark:#3E4A2B;
    --ink:#23261E;
    --ink-muted:#565A4C;
    --ink-faint:#8C8D80;
    --gold:#C1A15E;
    --gold-deep:#8A6F3D;
    --gold-pale:#E4CFA0;
    --border:#DCD6C4;
    --sand:#EFE7D3;
    --serif: Georgia, 'Iowan Old Style', 'Times New Roman', serif;
    --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --container: 1180px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:var(--sans);
    color:var(--ink);
    background:var(--cream);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  h1,h2,h3{font-family:var(--serif);margin:0;line-height:1.15;color:var(--ink);}
  section{scroll-margin-top:84px;}
  .wrap{max-width:var(--container);margin:0 auto;padding:0 32px;}
  .eyebrow{
    display:inline-block;
    font-size:13px;
    font-weight:600;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--green);
    margin-bottom:14px;
  }
  .btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:14px 26px;
    border-radius:6px;
    font-weight:600;
    font-size:14.5px;
    letter-spacing:.02em;
    border:1.5px solid transparent;
    cursor:pointer;
    transition:transform .15s ease, background .2s ease, border-color .2s ease, color .2s ease;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn-primary{background:var(--green);color:#fff;}
  .btn-primary:hover{background:var(--green-dark);}
  .btn-outline{background:transparent;border-color:var(--green);color:var(--green);}
  .btn-outline:hover{background:var(--green);color:#fff;}
  .btn-outline.on-dark{border-color:rgba(255,255,255,.55);color:#fff;}
  .btn-outline.on-dark:hover{background:#fff;color:var(--green-dark);}
  .btn-cream{background:var(--cream-light);color:var(--green-dark);}
  .btn-cream:hover{background:#fff;}

  /* ===== Header ===== */
  header{
    position:fixed;
    top:0;left:0;right:0;
    z-index:100;
    background:transparent;
    transition:background .3s ease, box-shadow .3s ease, padding .3s ease;
  }
  header.scrolled{
    background:rgba(245,240,230,.92);
    backdrop-filter:blur(8px);
    box-shadow:0 1px 0 var(--border);
  }
  header.header-static{
    background:rgba(245,240,230,.96);
    backdrop-filter:blur(8px);
    box-shadow:0 1px 0 var(--border);
  }
  .nav-inner{
    max-width:var(--container);
    margin:0 auto;
    padding:16px 32px;
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .brand{display:flex;align-items:center;gap:10px;}
  .brand img{height:58px;width:auto;object-fit:contain;}
  .brand span{
    font-family:var(--serif);
    font-weight:700;
    font-size:19px;
    letter-spacing:.01em;
    color:var(--ink);
  }
  nav ul{
    list-style:none;
    display:flex;
    gap:34px;
    margin:0;padding:0;
  }
  nav a.navlink{
    font-size:14.5px;
    font-weight:500;
    color:var(--ink);
    position:relative;
    padding:4px 0;
  }
  nav a.navlink::after{
    content:"";
    position:absolute;left:0;right:100%;bottom:-2px;
    height:2px;background:var(--gold);
    transition:right .25s ease;
  }
  nav a.navlink:hover::after{right:0;}
  .nav-right{display:flex;align-items:center;gap:22px;}
  .nav-phone{
    display:flex;align-items:center;gap:7px;
    font-size:14px;font-weight:600;color:var(--green-dark);
  }
  .burger{
    display:none;
    flex-direction:column;
    gap:5px;
    background:none;border:none;cursor:pointer;padding:6px;
  }
  .burger span{width:24px;height:2px;background:var(--ink);display:block;}

  /* ===== Hero ===== */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    overflow:hidden;
    background:var(--cream);
  }
  .hero-photo{
    position:absolute;
    top:-60px;right:0;bottom:-60px;
    width:52%;
    background-size:cover;
    background-position:center;
    will-change:transform;
  }
  .hero-scrim{
    position:absolute;
    top:0;right:0;bottom:0;
    width:52%;
    background:linear-gradient(90deg, var(--cream) 0%, rgba(245,240,230,.55) 30%, rgba(245,240,230,0) 62%);
  }
  .hero-inner{
    position:relative;
    z-index:2;
    max-width:var(--container);
    margin:0 auto;
    width:100%;
    padding:150px 32px 60px;
  }
  .hero-content{
    max-width:560px;
    animation:hero-in .8s cubic-bezier(.2,.7,.2,1) both;
    animation-delay:.15s;
  }
  @keyframes hero-in{
    from{opacity:0; transform:translateY(18px);}
    to{opacity:1; transform:none;}
  }
  @media (prefers-reduced-motion: reduce){
    .hero-content{animation:none;}
  }
  .hero h1{
    font-size:clamp(34px,4.6vw,54px);
    font-weight:700;
    color:var(--ink);
    margin-bottom:20px;
  }
  .hero-sub{
    font-size:17px;
    color:var(--ink-muted);
    max-width:460px;
    margin-bottom:32px;
  }
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px;}
  .hero-tag{
    font-size:13px;
    font-weight:600;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink-faint);
  }

  /* Road strip + truck */
  .hero-road{
    position:relative;
    z-index:2;
    height:200px;
    border-top:1px solid rgba(35,38,30,.12);
    overflow:hidden;
  }
  .road-line{
    position:absolute;
    left:0;right:0;
    bottom:34px;
    height:3px;
    background-image:repeating-linear-gradient(90deg, var(--gold) 0 26px, transparent 26px 54px);
    animation:road-move .9s linear infinite;
    opacity:.85;
  }
  .truck{
    position:absolute;
    bottom:32px;
    left:-300px;
    width:260px;
    filter:drop-shadow(0 10px 12px rgba(35,38,30,.25));
    animation:drive-in 6.5s cubic-bezier(.25,1.1,.3,1) forwards;
    animation-delay:.5s;
  }
  .truck img{width:100%;height:auto;display:block;}
  .truck.parked{animation:none;left:calc(100% - 320px);}
  .dust{
    position:absolute;
    bottom:8px;
    left:-14px;
    width:10px;height:10px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(140,141,128,.55), rgba(140,141,128,0) 70%);
    opacity:0;
  }
  .truck.driving .dust{animation:puff .9s ease-out infinite;}
  .dust:nth-child(2){animation-delay:.15s !important;}
  .dust:nth-child(3){animation-delay:.3s !important;}

  @keyframes drive-in{ to{ left:calc(100% - 320px); } }
  @keyframes road-move{ from{background-position:0 0;} to{background-position:-80px 0;} }
  @keyframes puff{
    0%{opacity:.55; transform:translate(0,0) scale(.5);}
    100%{opacity:0; transform:translate(-26px,-14px) scale(1.4);}
  }

  @media (prefers-reduced-motion: reduce){
    .truck{animation:none; left:calc(100% - 320px);}
    .road-line{animation:none;}
    .contact-closer-truck{right:0;}
    .contact-closer-truck-wrap.in-view .contact-closer-truck{animation:none;}
  }

  /* ===== Scroll reveal ===== */
  .reveal{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
  }
  .reveal.in-view{opacity:1;transform:none;}
  .services-grid .reveal:nth-child(2).in-view,
  .trait-grid .reveal:nth-child(2).in-view{transition-delay:.1s;}
  .services-grid .reveal:nth-child(3).in-view,
  .trait-grid .reveal:nth-child(3).in-view{transition-delay:.2s;}
  .services-grid .reveal:nth-child(4).in-view{transition-delay:.3s;}
  .services-grid .reveal:nth-child(5).in-view{transition-delay:.4s;}
  .stats-grid .reveal:nth-child(2).in-view{transition-delay:.1s;}
  .stats-grid .reveal:nth-child(3).in-view{transition-delay:.2s;}
  .stats-grid .reveal:nth-child(4).in-view{transition-delay:.3s;}
  @media (prefers-reduced-motion: reduce){
    .reveal{opacity:1;transform:none;transition:none;}
  }

  /* ===== Stats ===== */
  .stats{
    position:relative;
    background-size:cover;
    background-position:center;
    isolation:isolate;
  }
  .stats::before{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(35,38,30,.86), rgba(62,74,43,.82));
    z-index:-1;
  }
  .stats-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:24px;
    padding:64px 0;
  }
  .stat-num{
    font-family:var(--serif);
    font-size:44px;
    font-weight:700;
    color:#fff;
  }
  .stat-label{
    font-size:13.5px;
    color:rgba(245,240,230,.75);
    margin-top:6px;
  }

  /* ===== Generic section spacing ===== */
  .section{padding:96px 0;}
  .section-head{max-width:640px;margin-bottom:52px;}
  .section-head h2{font-size:clamp(26px,3vw,36px);margin-bottom:16px;}
  .section-head p{color:var(--ink-muted);font-size:16px;}

  /* ===== Our Story ===== */
  .story-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:64px;
    align-items:start;
  }
  .story-grid p{color:var(--ink-muted);margin:0 0 18px;font-size:15.5px;}
  .name-card{
    background:var(--cream-light);
    border:1px solid var(--border);
    border-radius:10px;
    padding:24px 26px;
    margin-top:8px;
  }
  .name-card h3{font-size:15px;color:var(--green-dark);margin-bottom:8px;font-family:var(--sans);font-weight:700;letter-spacing:.02em;text-transform:uppercase;}
  .name-card p{margin:0;color:var(--ink-muted);font-size:14.5px;}
  .story-photo{position:relative;overflow:hidden;border-radius:12px;}
  .story-photo img{
    border-radius:12px;
    width:100%;
    height:380px;
    object-fit:cover;
    transition:transform .6s ease;
  }
  .story-photo:hover img{transform:scale(1.05);}
  .story-caption{
    position:absolute;
    left:20px;right:20px;bottom:20px;
    background:rgba(252,250,244,.94);
    border-radius:8px;
    padding:14px 16px;
    font-size:13px;
    color:var(--ink-muted);
    box-shadow:0 6px 18px rgba(35,38,30,.12);
  }
  .story-caption strong{color:var(--ink);font-style:italic;font-family:var(--serif);}

  /* ===== Who we are ===== */
  .who{background:var(--sand);}
  .who-top{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:56px;
    align-items:center;
    margin-bottom:52px;
  }
  .who-photo{border-radius:12px;overflow:hidden;}
  .who-photo img{border-radius:12px;height:320px;width:100%;object-fit:cover;transition:transform .6s ease;}
  .who-photo:hover img{transform:scale(1.05);}
  .who-top p{color:var(--ink-muted);font-size:16px;margin-top:16px;}
  .trait-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
    gap:22px;
  }
  .trait-card{
    background:var(--cream-light);
    border:1px solid var(--border);
    border-radius:10px;
    padding:26px;
    transition:box-shadow .25s ease, transform .25s ease;
  }
  .trait-card:hover{box-shadow:0 14px 28px rgba(35,38,30,.1); transform:translateY(-3px);}
  .trait-card .num{
    font-family:var(--serif);
    font-size:13px;
    color:var(--gold-deep);
    font-weight:700;
    letter-spacing:.08em;
  }
  .trait-card h3{font-size:18px;margin:10px 0 8px;}
  .trait-card p{margin:0;color:var(--ink-muted);font-size:14.5px;}

  /* ===== Services ===== */
  .services-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:26px;
  }
  .service-card{
    background:var(--cream-light);
    border:1px solid var(--border);
    border-radius:12px;
    overflow:hidden;
    transition:box-shadow .25s ease, transform .25s ease;
  }
  .service-card:hover{box-shadow:0 16px 30px rgba(35,38,30,.12); transform:translateY(-3px);}
  .service-image-wrap{position:relative;height:168px;overflow:hidden;}
  .service-image-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease;}
  .service-card:hover .service-image-wrap img{transform:scale(1.06);}
  .service-body{padding:34px 24px 26px;position:relative;}
  .service-icon{
    width:48px;height:48px;
    border-radius:9px;
    background:var(--cream-light);
    display:flex;align-items:center;justify-content:center;
    color:var(--green);
    position:absolute;
    top:-26px;left:22px;
    border:3px solid var(--cream-light);
    box-shadow:0 6px 14px rgba(35,38,30,.18);
    transition:transform .25s ease;
  }
  .service-icon.gold{color:var(--gold-deep);}
  .service-card:hover .service-icon{transform:scale(1.08) rotate(-4deg);}
  .service-card .num{
    font-family:var(--serif);
    font-size:12.5px;
    color:var(--ink-faint);
    font-weight:700;
    letter-spacing:.08em;
    display:block;
    margin-bottom:8px;
  }
  .service-card h3{font-size:17px;margin-bottom:8px;}
  .service-card p{margin:0;color:var(--ink-muted);font-size:14px;}

  /* ===== Assurance ===== */
  .assurance{
    background:var(--green-dark);
    color:var(--cream);
  }
  .assurance .eyebrow{color:var(--gold-pale);}
  .assurance h2{color:#fff;}
  .section-head p.assurance-sub{color:rgba(245,240,230,.92);max-width:640px;font-size:16px;margin-bottom:48px;}
  .assurance-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px;
  }
  .assurance-card{
    background:rgba(252,250,244,.06);
    border:1px solid rgba(252,250,244,.18);
    border-radius:10px;
    padding:30px 28px;
  }
  .assurance-card h3{color:#fff;font-size:18px;margin-bottom:10px;}
  .assurance-card p{margin:0;color:rgba(245,240,230,.9);font-size:14.5px;line-height:1.65;}

  /* ===== Commitment CTA ===== */
  .commitment{
    position:relative;
    min-height:520px;
    display:flex;
    align-items:center;
    background-size:cover;
    background-position:center;
    isolation:isolate;
  }
  .commitment::before{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(90deg, rgba(35,38,30,.82), rgba(35,38,30,.42));
    z-index:-1;
  }
  .commitment-inner{max-width:620px;padding:80px 0;}
  .commitment .eyebrow{color:var(--gold-pale);}
  .commitment h2{
    color:#fff;
    font-size:clamp(26px,3.4vw,38px);
    margin-bottom:18px;
  }
  .commitment p.lead{color:rgba(245,240,230,.85);font-size:16px;margin-bottom:32px;}
  .commitment-ctas{display:flex;gap:14px;flex-wrap:wrap;}

  /* ===== Contact / Footer ===== */
  footer{background:var(--ink);color:var(--cream);}
  .footer-top{
    display:grid;
    grid-template-columns:1.2fr 1fr 1.2fr;
    gap:48px;
    padding:72px 0 48px;
    border-bottom:1px solid rgba(245,240,230,.12);
  }
  .footer-brand .brand{margin-bottom:16px;}
  .footer-brand .brand span{color:var(--cream);}
  .footer-brand .brand img{filter:brightness(0) invert(1);}
  .footer-brand p{color:rgba(245,240,230,.6);font-size:14px;max-width:280px;}
  footer h4{
    font-size:13px;
    text-transform:uppercase;
    letter-spacing:.1em;
    color:var(--gold);
    margin:0 0 18px;
    font-weight:600;
  }
  footer ul{list-style:none;margin:0;padding:0;}
  footer ul li{margin-bottom:12px;}
  footer ul a{color:rgba(245,240,230,.75);font-size:14.5px;}
  footer ul a:hover{color:#fff;}
  .footer-contact li{display:flex;gap:10px;color:rgba(245,240,230,.75);font-size:14.5px;align-items:flex-start;}
  .footer-contact svg{flex-shrink:0;margin-top:2px;color:var(--gold);}
  .footer-bottom{
    padding:22px 0;
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-size:13px;
    color:rgba(245,240,230,.5);
  }

  /* ===== Responsive ===== */
  @media (max-width:960px){
    nav ul, .nav-phone{display:none;}
    .burger{display:flex;}
    .hero-photo,.hero-scrim{width:100%;opacity:.35;}
    .hero-scrim{background:linear-gradient(180deg, var(--cream) 10%, rgba(245,240,230,.2) 60%, rgba(245,240,230,.75) 100%);}
    .hero-inner{padding-top:120px;}
    .story-grid,.who-top,.assurance-grid{grid-template-columns:1fr;}
    .story-photo img{height:280px;}
    .trait-grid,.services-grid{grid-template-columns:1fr 1fr;}
    .stats-grid{grid-template-columns:1fr 1fr;}
    .footer-top{grid-template-columns:1fr;gap:36px;}
  }
  @media (max-width:600px){
    .wrap{padding:0 20px;}
    .trait-grid,.services-grid{grid-template-columns:1fr;}
    .stats-grid{grid-template-columns:1fr 1fr;}
    .hero h1{font-size:32px;}
    .footer-bottom{flex-direction:column;gap:8px;align-items:flex-start;}
    .truck{width:150px;}
  }

  /* Mobile nav panel */
  .mobile-nav{
    position:fixed;
    inset:0 0 0 auto;
    width:78%;
    max-width:320px;
    background:var(--cream-light);
    box-shadow:-8px 0 30px rgba(35,38,30,.15);
    transform:translateX(100%);
    transition:transform .3s ease;
    z-index:200;
    padding:28px 26px;
  }
  .mobile-nav.open{transform:translateX(0);}
  .mobile-nav ul{list-style:none;padding:0;margin:0 0 24px;}
  .mobile-nav li{margin-bottom:18px;}
  .mobile-nav a{font-size:16px;font-weight:600;}
  .scrim-overlay{
    position:fixed;inset:0;background:rgba(35,38,30,.35);
    opacity:0;pointer-events:none;transition:opacity .3s ease;z-index:150;
  }
  .scrim-overlay.open{opacity:1;pointer-events:auto;}

  /* ===== Nav active state ===== */
  nav a.navlink.active{color:var(--green);}
  nav a.navlink.active::after{right:0;background:var(--green);}
  .mobile-nav a.navlink.active{color:var(--green);}

  /* ===== Page banner (sub-pages) ===== */
  .page-banner{
    position:relative;
    padding:168px 0 72px;
    background-size:cover;
    background-position:center;
    isolation:isolate;
  }
  .page-banner::before{
    content:"";
    position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(35,38,30,.7), rgba(62,74,43,.72));
    z-index:-1;
  }
  .page-banner .eyebrow{color:var(--gold-pale);}
  .page-banner h1{color:#fff;font-size:clamp(30px,4vw,44px);margin-bottom:12px;text-shadow:0 2px 10px rgba(0,0,0,.3);}
  .page-banner p{color:rgba(245,240,230,.88);max-width:560px;font-size:16px;margin:0;text-shadow:0 1px 6px rgba(0,0,0,.25);}
  .page-banner.plain{background:var(--green-dark);}
  .page-banner.strong::before{background:linear-gradient(180deg, rgba(24,27,19,.86), rgba(46,56,31,.88));}

  /* ===== Routes map ===== */
  .map-section{background:var(--cream-light);}
  .map-wrap{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:48px;
    align-items:start;
  }
  .map-frame{
    background:var(--green-dark);
    border-radius:14px;
    padding:18px;
    position:relative;
    overflow:hidden;
  }
  .map-frame svg{width:100%;height:auto;display:block;}
  .map-dots circle{fill:rgba(245,240,230,.22);}

  /* Filter tabs */
  .map-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
  .map-filter-btn{
    padding:8px 16px;
    border-radius:20px;
    border:1.5px solid var(--border);
    background:var(--cream-light);
    color:var(--ink-muted);
    font-family:var(--sans);
    font-size:13.5px;
    font-weight:600;
    cursor:pointer;
    transition:background .18s ease, color .18s ease, border-color .18s ease, transform .12s ease;
  }
  .map-filter-btn:hover{border-color:var(--green); color:var(--green); transform:translateY(-1px);}
  .map-filter-btn.active{background:var(--green); border-color:var(--green); color:#fff;}
  .map-filter-btn:focus-visible{outline:2px solid var(--green); outline-offset:2px;}

  /* Lanes. Order matters: base, kind, filter-dimmed, focus-faded, active */
  .route-line{
    display:none;
    fill:none;
    stroke:var(--gold-pale);
    stroke-width:6;
    stroke-dasharray:22 18;
    opacity:.6;
    transition:opacity .3s ease, stroke-width .3s ease;
  }
  .route-line.trunk{opacity:.85; stroke-width:7;}
  .route-line.link{opacity:.42;}
  .route-line.dimmed{opacity:.06;}
  .has-focus .route-line{opacity:.07;}
  .route-line.active, .has-focus .route-line.active{opacity:1; stroke-width:9; stroke-dasharray:none;}

  /* Traffic signals: one dot each way on every lane. Cheap halo (stroke) instead of a filter,
     because there are dozens of them animating at once. */
  .shipment-dot{
    fill:#fff;
    stroke:rgba(255,255,255,.32);
    stroke-width:9;
    opacity:.95;
    pointer-events:none;
    transition:opacity .3s ease;
  }
  .shipment-dot.back{fill:var(--gold); stroke:rgba(193,161,94,.38);}
  .shipment-dot.dimmed{opacity:0;}
  .has-focus .shipment-dot{opacity:0;}
  .has-focus .shipment-dot.active{opacity:1;}

  /* Towns and hubs */
  .route-dot{
    cursor:pointer;
    transition:opacity .3s ease, transform .2s ease;
    transform-box:fill-box;
    transform-origin:center;
    outline:none;
  }
  .pin-hit{fill:transparent;stroke:none;}
  .pin-truck{filter:drop-shadow(0 3px 3px rgba(0,0,0,.5));transition:filter .2s ease;}
  .route-dot:hover, .route-dot:focus-visible, .route-dot.active, .route-dot.pinned{transform:scale(1.25);}
  .route-dot.hub:hover, .route-dot.hub:focus-visible, .route-dot.hub.active, .route-dot.hub.pinned{transform:scale(1.12);}
  .route-dot.dimmed{opacity:.15;}
  .has-focus .route-dot{opacity:.3;}
  .route-dot.active, .route-dot.linked, .has-focus .route-dot.active, .has-focus .route-dot.linked{opacity:1;}
  .route-dot.linked .pin-truck, .route-dot.active .pin-truck, .route-dot.pinned .pin-truck{filter:drop-shadow(0 0 7px rgba(228,207,160,.95)) drop-shadow(0 3px 3px rgba(0,0,0,.5));}
  .route-dot:focus-visible .pin-hit{stroke:var(--gold-pale);stroke-width:4;}
  .route-pulse{
    fill:none;
    stroke:var(--gold-pale);
    stroke-width:6;
    opacity:0;
    animation:pulse-ring 3s ease-out infinite;
    transition:opacity .3s ease;
    pointer-events:none;
    transform-box:fill-box;
    transform-origin:center;
  }
  .route-pulse.dimmed{animation:none; opacity:0;}
  @keyframes pulse-ring{
    0%{opacity:.7; transform:scale(1);}
    100%{opacity:0; transform:scale(2.6);}
  }
  .map-city-label{
    font-family:var(--sans);
    font-size:34px;
    fill:rgba(245,240,230,.9);
    font-weight:700;
    pointer-events:none;
  }

  /* Tooltip (multi-line, anchored to the node) */
  .map-tooltip{
    position:absolute;
    left:0; top:0;
    visibility:hidden;
    background:var(--ink);
    color:#fff;
    font-size:12.5px;
    font-weight:500;
    line-height:1.45;
    padding:8px 12px;
    border-radius:8px;
    pointer-events:none;
    white-space:pre;
    opacity:0;
    transition:opacity .12s ease, visibility .12s ease;
    z-index:5;
    box-shadow:0 8px 20px rgba(35,38,30,.35);
  }
  .map-tooltip.visible{opacity:1; visibility:visible;}
  .map-tooltip .tt-title{font-weight:700; font-size:13px;}

  .map-legend{display:flex;gap:22px;margin-top:0;flex-wrap:wrap;}
  .map-legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-muted);}
  .map-legend-dot{width:9px;height:9px;border-radius:50%;background:var(--gold-deep);display:inline-block;}
  .map-legend-dot.hub{background:var(--green-dark);}
  .map-legend-truck{height:20px;width:auto;display:inline-block;}
  .map-legend-truck.hub{height:28px;}
  .map-legend-dot.signal, .map-legend-dot.signal-back{width:11px;height:11px;border:2px solid var(--green-dark);box-sizing:border-box;}
  .map-legend-dot.signal{background:#fff;}
  .map-legend-dot.signal-back{background:var(--gold); margin-left:-4px;}

  /* Readout. A div with its own class so the generic .map-copy p rule can't override it. */
  .map-readout{
    margin-top:16px;
    min-height:6.4em;
    font-size:14px;
    line-height:1.55;
    color:var(--ink-muted);
  }
  .map-readout .ro-title{font-family:var(--serif); font-size:19px; font-weight:700; color:var(--ink); margin-bottom:4px;}
  .map-readout .ro-line{font-weight:500;}
  .map-readout .ro-line strong{color:var(--green); font-weight:700;}
  .map-readout .ro-default{font-weight:600; color:var(--green);}
  .map-readout .ro-sub{margin-top:2px;}
  .map-copy p{color:var(--ink-muted);margin:0 0 16px;font-size:15.5px;}
  .map-copy p.map-note{font-size:12.5px; color:var(--ink-faint); margin:18px 0 0;}
  .map-city-list{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:4px 14px;
    margin-top:22px;
    padding-top:22px;
    border-top:1px solid var(--border);
  }
  .map-city-list button{
    all:unset;
    font-size:13px;
    color:var(--ink-muted);
    padding:4px 6px;
    margin:-4px -6px;
    border-radius:5px;
    cursor:pointer;
    transition:background .15s ease, color .15s ease;
    display:block;
  }
  .map-city-list button:hover, .map-city-list button:focus-visible{background:rgba(111,127,76,.1); color:var(--green);}
  .map-city-list button.active, .map-city-list button.pinned{background:var(--green); color:#fff;}
  .map-city-list button.linked{background:rgba(111,127,76,.16); color:var(--green-dark);}
  .map-city-list button.dimmed{opacity:.35;}
  .map-city-list button.dimmed.active, .map-city-list button.dimmed.linked, .map-city-list button.dimmed.pinned{opacity:1;}
  @media (prefers-reduced-motion: reduce){
    .route-pulse{animation:none;opacity:0;}
    .shipment-dot{display:none;}
  }
  @media (max-width:960px){
    .map-wrap{grid-template-columns:1fr;}
    .map-city-list{grid-template-columns:1fr 1fr;}
    .map-readout{min-height:0;}
  }

  /* ===== Explore grid (home) ===== */
  .explore-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:20px;
  }
  .explore-card{
    display:block;
    background:var(--cream-light);
    border:1px solid var(--border);
    border-radius:12px;
    padding:26px 22px;
    transition:box-shadow .25s ease, transform .25s ease, border-color .25s ease;
  }
  .explore-card:hover{box-shadow:0 14px 28px rgba(35,38,30,.1); transform:translateY(-3px); border-color:var(--green);}
  .explore-num{
    font-family:var(--serif);
    font-size:12.5px;
    color:var(--gold-deep);
    font-weight:700;
    letter-spacing:.08em;
    display:block;
    margin-bottom:10px;
  }
  .explore-card h3{font-size:17px;margin-bottom:8px;}
  .explore-card p{margin:0 0 14px;color:var(--ink-muted);font-size:14px;}
  .explore-arrow{font-size:13.5px;font-weight:600;color:var(--green);}

  /* ===== Contact page ===== */
  .contact-grid{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:20px;
  }
  .contact-grid > *{grid-column:span 2;}
  .contact-grid > :nth-child(4):nth-last-child(2){grid-column:2 / span 2;}
  .contact-grid > :nth-child(5):last-child{grid-column:4 / span 2;}
  .contact-card{
    display:block;
    background:var(--cream-light);
    border:1px solid var(--border);
    border-radius:12px;
    padding:26px 22px;
    transition:box-shadow .25s ease, transform .25s ease;
  }
  a.contact-card:hover{box-shadow:0 14px 28px rgba(35,38,30,.1); transform:translateY(-3px);}
  .contact-card .service-icon{position:static;box-shadow:none;border:none;margin-bottom:14px;}
  .contact-card h3{font-size:16px;margin-bottom:6px;}
  .contact-card p{margin:0;color:var(--ink-muted);font-size:14px;word-break:break-word;}

  @media (max-width:960px){
    .explore-grid{grid-template-columns:1fr 1fr;}
    .contact-grid{grid-template-columns:1fr 1fr;}
    .contact-grid > *, .contact-grid > :nth-child(4):nth-last-child(2), .contact-grid > :nth-child(5):last-child{grid-column:auto;}
  }
  @media (max-width:600px){
    .explore-grid{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr;}
    .contact-grid > *{grid-column:auto;}
  }

  /* ===== Meet the team ===== */
  .team-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:28px 24px;
  }
  .team-card{text-align:center;}
  .team-photo{
    width:100%;
    aspect-ratio:1/1;
    border-radius:50%;
    overflow:hidden;
    margin-bottom:16px;
    box-shadow:0 8px 20px rgba(35,38,30,.12);
    border:3px solid var(--cream-light);
  }
  .team-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .team-card h3{font-size:16px;margin:0 0 3px;}
  .team-role{font-size:13px;color:var(--gold-deep);font-weight:600;letter-spacing:.02em;}
  .team-sub{font-size:12px;color:var(--ink-faint);margin-top:2px;}
  .team-photo.placeholder{
    display:flex;align-items:center;justify-content:center;
    background:var(--green);
    color:#fff;
    font-family:var(--serif);
    font-weight:700;
    font-size:32px;
  }
  @media (max-width:960px){
    .team-grid{grid-template-columns:repeat(3,1fr);}
  }
  @media (max-width:600px){
    .team-grid{grid-template-columns:1fr 1fr;gap:24px 16px;}
  }

  /* ===== Contact page closer ===== */
  .contact-closer{background:var(--cream-light);}
  .contact-closer-inner{
    display:grid;
    grid-template-columns:1fr auto;
    gap:40px;
    align-items:center;
  }
  .contact-closer-inner h2{font-size:clamp(24px,3vw,32px);margin-bottom:14px;}
  .contact-closer-inner p{color:var(--ink-muted);margin:0 0 22px;max-width:440px;}
  .contact-closer-truck-wrap{
    position:relative;
    width:320px;
    height:144px;
    max-width:100%;
    overflow:hidden;
  }
  .contact-closer-truck{
    position:absolute;
    top:0;
    right:-360px;
    width:320px;
    filter:drop-shadow(0 8px 10px rgba(35,38,30,.2));
  }
  .contact-closer-truck-wrap.in-view .contact-closer-truck{
    animation:sail-drive-in 3.4s cubic-bezier(.25,1.1,.3,1) forwards;
    animation-delay:.3s;
  }
  @keyframes sail-drive-in{ to{ right:0; } }
  @media (max-width:800px){
    .contact-closer-inner{grid-template-columns:1fr;text-align:center;}
    .contact-closer-inner p{margin-left:auto;margin-right:auto;}
    .contact-closer-truck-wrap{width:240px;height:108px;margin:0 auto;}
    .contact-closer-truck{width:240px;}
  }
