/* Rive-Nord Express - site styles, v3 (Quebec refresh: blue and white, green for calls to action). Tokens first; components below. */
:root{
  /* palette */
  --brand:#095797;--brand-d:#07467a;          /* Quebec blue: the identity colour */
  --ink:#223654;--ink-2:#1a2b46;--ink-3:#2e4a75;--ink-4:#3b5d8f;   /* deep navy: dark surfaces and their panels */
  --cta:#2f7d53;--cta-h:#256843;              /* green: calls to action only */
  --paper:#f7f9fc;--paper-2:#dae6f0;--white:#fff;   /* soft white, ice blue */
  --sky:#8fc3ef;--brand-2:#8fc3ef;            /* light blue accent for use on navy */
  --star:#f2b01e;--focus:#2a8be0;
  --txt:#1b2a41;--muted:#4f5f79;--mut-d:#c2d3e9;--line:#cfdbe8;--line-d:rgba(255,255,255,.2);
  --ok:#2f7d53;--err:#c2261b;
  --fd:"Archivo",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --fm:"JetBrains Mono",ui-monospace,"SFMono-Regular",Consolas,monospace;
  --wrap:1280px;--pad:clamp(1.1rem,4vw,3.25rem);--ease:cubic-bezier(.2,.8,.2,1);--hdr:80px;
  --cut:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,13px 100%,0 calc(100% - 13px));
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 16px);background:var(--ink)}
body{margin:0;font-family:var(--fd);font-size:1.0625rem;line-height:1.6;color:var(--txt);background:var(--ink);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video,svg{display:block;max-width:100%}
figure{margin:0}
img{height:auto}
a{color:var(--brand);text-underline-offset:.18em}
a:hover{color:var(--brand-d)}
.dark a{color:#fff}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
h1,h2,h3,h4{margin:0;font-stretch:62%;font-weight:800;line-height:.9;letter-spacing:.002em;text-transform:uppercase;text-wrap:balance}
h1{font-size:clamp(3.2rem,9.4vw,8.2rem);line-height:.84}
h2{font-size:clamp(2.5rem,5.8vw,4.9rem)}
h3{font-size:clamp(1.5rem,2.4vw,2rem);font-stretch:68%;line-height:1}
h4{font-size:1.15rem;font-stretch:75%;line-height:1.15}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.2em}
.w{width:min(100% - 2*var(--pad),var(--wrap));margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--brand);color:#fff;padding:.7rem 1rem;z-index:200;font-weight:700}
.skip:focus{left:8px;top:8px}
.lead{font-size:clamp(1.08rem,1.5vw,1.25rem);line-height:1.5;color:var(--muted);max-width:58ch}
.muted{color:var(--muted)}
.dark .lead,.dark .muted{color:var(--mut-d)}
.ico{width:1.1em;height:1.1em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* kicker: small mono label with a leading rule */
.lbl{display:flex;align-items:center;gap:.9rem;font-family:var(--fm);font-weight:500;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brand);margin-bottom:1.1rem;line-height:1.3}
.lbl::before{content:"";width:30px;height:2px;background:currentColor;flex:none}
.dark .lbl{color:var(--sky)}
.lbl--amber{display:inline-flex;gap:0;background:#fff;color:var(--brand)!important;padding:.38em .7em;font-weight:700}
.lbl--amber::before{display:none}

/* buttons: cut corners, mono caps */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.8em;min-height:52px;padding:.75em 1.5em;border:0;clip-path:var(--cut);
  font-family:var(--fm);font-weight:700;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer;
  transition:background .2s,color .2s,transform .25s var(--ease)}
.btn .ico{transition:transform .25s var(--ease)}
.btn:hover .ico{transform:translateX(4px)}
.btn--a{background:var(--cta);color:#fff}
.btn--a:hover{background:var(--cta-h);color:#fff}
.btn--b{background:var(--brand);color:#fff}
.btn--b:hover{background:var(--brand-d);color:#fff}
.btn--o{background:var(--paper-2);color:var(--txt)}
.btn--o:hover{background:var(--txt);color:#fff}
.dark .btn--o,.hero .btn--o,.hdr .btn--o,.mm .btn--o{background:rgba(255,255,255,.16);color:#fff}
/* on a Quebec-blue surface the green button gets a white edge so it stays a clear shape */
.ph .btn--a,.mm .btn--a,.plan--hi .btn--a{box-shadow:inset 0 0 0 2px rgba(255,255,255,.92)}
.dark .btn--o:hover,.hero .btn--o:hover{background:#fff;color:var(--ink)}
.btn:focus-visible{outline:0;background:#fff;color:var(--ink);box-shadow:inset 0 0 0 3px var(--focus)}
.btn--sm{min-height:44px;padding:.55em 1.1em;font-size:.74rem}
.btns{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}

/* header: clear over the hero; white with the blue logo once scrolled */
.hdr{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--hdr);color:#fff;transition:background .3s,box-shadow .3s,color .3s}
.hdr.is-stuck,.menu-open .hdr,.plain .hdr{background:#fff;color:var(--ink);box-shadow:0 1px 0 var(--line),0 10px 30px rgba(22,36,58,.08)}
@supports (backdrop-filter:blur(8px)){.hdr.is-stuck{background:rgba(255,255,255,.93);backdrop-filter:blur(12px)}}
.hdr__in{display:flex;align-items:center;gap:1.4rem;height:100%}
.logo{display:block;flex:none}
.logo img{height:54px;width:auto}
.logo .b{display:none}
.hdr.is-stuck .logo .w,.menu-open .hdr .logo .w,.plain .hdr .logo .w{display:none}
.hdr.is-stuck .logo .b,.menu-open .hdr .logo .b,.plain .hdr .logo .b{display:block}
.nav{display:none;margin-left:auto;align-items:center;gap:.1rem}
.nav a,.nav button{white-space:nowrap;font-family:var(--fm);font-weight:500;font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:inherit;text-decoration:none;background:none;
  border:0;padding:.7rem .6rem;cursor:pointer;display:inline-flex;align-items:center;gap:.4em;position:relative}
.nav a:hover,.nav button:hover{color:var(--sky)}
.hdr.is-stuck .nav>a:hover,.hdr.is-stuck .nav button:hover,.plain .hdr .nav>a:hover,.plain .hdr .nav button:hover{color:var(--brand)}
.nav>a[aria-current]::after{content:"";position:absolute;left:.6rem;right:.6rem;bottom:.2rem;height:2px;background:currentColor}
.dd{position:relative}
.dd__p{position:absolute;top:100%;left:-.4rem;min-width:310px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--brand);padding:.5rem;display:none;
  box-shadow:0 24px 60px rgba(22,36,58,.2)}
.dd__p--wide{min-width:540px;columns:2;column-gap:.4rem}
.nav .dd__p a{display:block;font-family:var(--fd);font-size:.98rem;font-weight:500;letter-spacing:0;text-transform:none;color:var(--txt);padding:.5rem .7rem;break-inside:avoid}
.nav .dd__p a:hover{background:var(--paper-2);color:var(--brand)}
.nav .dd__p a.all{color:var(--brand);font-family:var(--fm);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.dd.is-open .dd__p{display:block}
@media (hover:hover){.dd:hover .dd__p,.dd:focus-within .dd__p{display:block}}
.dd button .ico{width:.9em;height:.9em}
.hdr__r{margin-left:auto;display:flex;align-items:center;gap:.8rem}
.lang{display:inline-flex;border:1px solid var(--line-d);font-family:var(--fm);font-weight:700;font-size:.72rem;letter-spacing:.1em}
.lang a,.lang span{padding:.5rem .6rem;color:inherit;text-decoration:none;min-width:40px;text-align:center}
.lang span{background:#fff;color:var(--brand)}
.lang a:hover{background:rgba(255,255,255,.18);color:#fff}
.hdr.is-stuck .lang,.menu-open .hdr .lang,.plain .hdr .lang{border-color:var(--line)}
.hdr.is-stuck .lang span,.menu-open .hdr .lang span,.plain .hdr .lang span{background:var(--brand);color:#fff}
.hdr.is-stuck .lang a:hover,.menu-open .hdr .lang a:hover,.plain .hdr .lang a:hover{background:var(--paper-2);color:var(--brand)}
.tel{display:none;align-items:center;gap:.5em;color:inherit;text-decoration:none;font-family:var(--fm);font-weight:700;font-size:.84rem;letter-spacing:.06em;white-space:nowrap}
.tel:hover{color:var(--sky)}
.hdr.is-stuck .tel:hover,.menu-open .hdr .tel:hover,.plain .hdr .tel:hover{color:var(--brand)}
.hdr .btn{display:none;white-space:nowrap;letter-spacing:.12em;padding:.55em 1em}
.burger{width:46px;height:46px;border:0;background:none;color:inherit;cursor:pointer;display:grid;place-items:center}
.burger .ico{width:28px;height:28px}
.burger .x{display:none}
.menu-open .burger .x{display:block}
.menu-open .burger .m{display:none}
@media (min-width:560px){.tel{display:inline-flex}}
@media (min-width:1260px){.nav{display:flex}.hdr__r{margin-left:.6rem}.burger{display:none}.hdr .btn{display:inline-flex}}

/* mobile menu: a Quebec-blue sheet */
.mm{position:fixed;inset:var(--hdr) 0 0 0;z-index:99;background:var(--brand);color:#fff;overflow:auto;padding:1rem var(--pad) 7rem;display:none}
.menu-open .mm{display:block}
.menu-open{overflow:hidden}
.mm a{color:#fff;text-decoration:none}
.mm>a,.mm summary{display:flex;justify-content:space-between;align-items:center;padding:.9rem 0;border-bottom:1px solid rgba(255,255,255,.24);
  font-stretch:62%;font-weight:800;font-size:2rem;text-transform:uppercase;cursor:pointer;list-style:none;line-height:1}
.mm summary::-webkit-details-marker{display:none}
.mm summary::after{content:"+";font-family:var(--fm);font-weight:400;font-size:1.4rem;color:#fff}
.mm details[open] summary::after{content:"\2212"}
.mm details div{padding:.6rem 0 1rem;display:grid;gap:.1rem;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.mm details div a{padding:.55rem 0;color:#e2effb}
.mm .btns{margin-top:1.6rem}
@media (min-width:1260px){.mm{display:none!important}}

/* phone call bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:90;display:grid;grid-template-columns:1fr 1.3fr;background:#fff;padding:.5rem;gap:.5rem;
  border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(22,36,58,.1);padding-bottom:calc(.5rem + env(safe-area-inset-bottom))}
.mbar .btn{min-height:48px;font-size:.72rem;padding:.4em .5em;letter-spacing:.12em}
.mbar .btn--o{background:var(--paper-2);color:var(--ink)}
body{padding-bottom:calc(66px + env(safe-area-inset-bottom))}
@media (min-width:900px){.mbar{display:none}body{padding-bottom:0}}

/* packing tape divider */
.tapewrap{overflow:hidden;overflow:clip;padding:14px 0;margin:-36px 0;position:relative;z-index:5;pointer-events:none}
.tape{height:44px;background:var(--brand);color:#fff;display:flex;align-items:center;white-space:nowrap;overflow:hidden;width:max(70%,520px);
  transform:rotate(-1.2deg);transform-origin:0 50%;box-shadow:0 6px 18px rgba(0,0,0,.35);
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10%,calc(100% - 10px) 20%,100% 30%,calc(100% - 10px) 40%,100% 50%,calc(100% - 10px) 60%,100% 70%,calc(100% - 10px) 80%,100% 90%,calc(100% - 10px) 100%,0 100%);
  font-family:var(--fm);font-weight:700;letter-spacing:.2em;font-size:.72rem;text-transform:uppercase}
.tape--r{margin-left:auto;transform:rotate(1deg);transform-origin:100% 50%;
  clip-path:polygon(10px 0,100% 0,100% 100%,10px 100%,0 90%,10px 80%,0 70%,10px 60%,0 50%,10px 40%,0 30%,10px 20%,0 10%)}
.tape__run{display:flex;flex:none;gap:2.4rem;padding-right:2.4rem;animation:tape 44s linear infinite}
.tape__run span::before{content:"///";margin-right:2.4rem;opacity:.45}
@keyframes tape{to{transform:translateX(-50%)}}
@supports (animation-timeline:view()){
  .tapewrap .tape{animation:pull linear both;animation-timeline:view();animation-range:cover 0% cover 34%}
  @keyframes pull{from{translate:-102% 0}to{translate:0 0}}
  .tapewrap .tape--r{animation-name:pullr}
  @keyframes pullr{from{translate:102% 0}to{translate:0 0}}
  .rv{animation:rv linear both;animation-timeline:view();animation-range:cover 0% cover 14%}
  @keyframes rv{from{opacity:0;translate:0 28px}to{opacity:1;translate:0 0}}
}

/* sections */
.sec{padding:clamp(4rem,9vw,7.5rem) 0;position:relative;background:var(--paper)}
.sec--paper{background:#fff}
.sec--sky{background:var(--paper-2)}
.dark{background:var(--ink);color:#fff}
.sec.dark{background:var(--ink) radial-gradient(circle at 1px 1px,rgba(255,255,255,.055) 1px,transparent 1.5px) 0 0/26px 26px}
.sec__h{max-width:900px;margin-bottom:clamp(2rem,4.5vw,3.4rem)}
.sec__h p{margin-top:1.2rem}

/* home hero */
.hero{position:relative;min-height:max(680px,100svh);display:flex;flex-direction:column;justify-content:flex-end;color:#fff;background:var(--ink);overflow:hidden;isolation:isolate}
.hero__v{position:absolute;inset:0;z-index:-3}
.hero__v video{width:100%;height:100%;object-fit:cover}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;
  background:linear-gradient(90deg,rgba(20,38,64,.92) 0%,rgba(9,70,124,.62) 42%,rgba(9,87,151,.14) 74%,rgba(20,38,64,.34) 100%),linear-gradient(0deg,rgba(20,38,64,.95) 2%,transparent 42%),linear-gradient(180deg,rgba(20,38,64,.72),transparent 20%)}
@media (max-width:700px){.hero::before{background:linear-gradient(180deg,rgba(20,38,64,.82),rgba(9,70,124,.66) 50%,rgba(20,38,64,.96))}}   /* text spans the full width on phones: one even veil */
.hero::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.07;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero__main{position:relative;flex:1;display:flex;flex-direction:column;justify-content:flex-end}
.frame{position:absolute;inset:calc(var(--hdr) + 8px) calc(var(--pad) - 20px) 12px;pointer-events:none;z-index:0}
.frame i{position:absolute;width:22px;height:22px;border:2px solid rgba(255,255,255,.55)}
.frame i:nth-child(1){top:0;left:0;border-right:0;border-bottom:0}
.frame i:nth-child(2){top:0;right:0;border-left:0;border-bottom:0}
.frame i:nth-child(3){bottom:0;left:0;border-right:0;border-top:0}
.frame i:nth-child(4){bottom:0;right:0;border-left:0;border-top:0}
.frame b{position:absolute;top:6px;right:40px;display:flex;align-items:center;gap:.7em;font-family:var(--fm);font-weight:700;font-size:.7rem;letter-spacing:.2em;color:#fff;text-transform:uppercase}
.hero__in{position:relative;padding:calc(var(--hdr) + 3rem) 0 2.2rem;display:grid;gap:1.6rem;align-items:end}
.hero h1 em{font-style:normal;color:var(--sky)}
.hero .lead{color:#d3deee;margin-top:1.3rem;max-width:50ch}
.hero__side{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center}
.rate{display:inline-flex;align-items:center;gap:.6rem;padding:.55rem .9rem;border:1px solid var(--line-d);color:#fff;text-decoration:none;font-family:var(--fm);font-size:.72rem;letter-spacing:.08em;
  background:rgba(22,36,58,.5);min-height:52px}
.rate b{font-family:var(--fd);font-stretch:62%;font-size:1.5rem;line-height:1}
.rate:hover{color:#fff;border-color:var(--sky)}
.stars{color:var(--star);letter-spacing:.12em}
@media (min-width:1000px){.hero__in{grid-template-columns:1fr auto}.hero__side{flex-direction:column;align-items:flex-end}}
/* slim booking bar */
.book{position:relative;display:grid;gap:1px;background:var(--line-d);border-top:1px solid var(--line-d)}
.book>*{background:rgba(22,38,62,.9);padding:.75rem var(--pad)}
.book label{display:block;font-family:var(--fm);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sky);margin-bottom:.15rem}
.book input{background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.28);color:#fff;font-family:var(--fd);font-size:1.05rem;width:100%;min-height:38px;padding:.2rem 0;border-radius:0}
.book input::placeholder{color:#a9bdd8}
.book input:focus{outline:0;border-bottom-color:var(--sky)}
.book input[type=date]{color-scheme:dark}
.book__h{display:none;font-stretch:62%;font-weight:800;text-transform:uppercase;font-size:1.5rem;line-height:.95;align-content:center}
.book__h small{display:block;font-family:var(--fm);font-weight:500;font-size:.62rem;letter-spacing:.18em;color:var(--mut-d);margin-top:.35rem}
.book button{width:100%;clip-path:none;min-height:60px;height:100%}
.book .go{padding:0;margin:0;background:var(--cta)}
@supports (backdrop-filter:blur(8px)){.book>*{backdrop-filter:blur(10px)}}
@media (min-width:640px){.book{grid-template-columns:1fr 1fr}.book .go{grid-column:1/-1}}
@media (min-width:1000px){.book{grid-template-columns:auto 1fr 1fr 1fr auto}.book__h{display:grid}.book .go{grid-column:auto;min-width:230px}.book>*{padding:.9rem 1.5rem}.book>*:first-child{padding-left:var(--pad)}}

/* convoy strip: towns as truck boxes */
.convoy{background:var(--brand);border-block:1px solid rgba(255,255,255,.28);overflow:hidden;position:relative}
.convoy__t{display:flex;width:max-content;animation:convoy 70s linear infinite}
.convoy:hover .convoy__t,.convoy:focus-within .convoy__t{animation-play-state:paused}
@keyframes convoy{to{transform:translateX(-50%)}}
.car{display:flex;align-items:baseline;gap:.7rem;padding:1.05rem 1.6rem;border-right:1px solid var(--line-d);color:#fff;text-decoration:none;position:relative;white-space:nowrap}
.car::after{content:"";position:absolute;right:-5px;top:50%;width:9px;height:3px;background:var(--mut-d);opacity:.5;z-index:1}
.car b{font-stretch:62%;font-weight:800;font-size:1.7rem;line-height:1}
.car span{font-family:var(--fm);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:#dcebf9}
.car:hover{background:var(--brand-d);color:#fff}
.car--hub{background:#fff;color:var(--brand)}
.car--hub span{color:var(--brand)}
.car--hub:hover{background:var(--paper-2);color:var(--brand)}
.car--ld b{color:#cfe6fa}

/* inner page hero */
.ph{background:linear-gradient(118deg,#0a62ab 0%,var(--brand) 36%,#0c467e 72%,#17395f 100%);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.ph__in{display:grid;gap:2rem;padding:calc(var(--hdr) + clamp(1.6rem,4vw,3rem)) 0 clamp(3rem,6vw,4.6rem);align-items:center}
.ph h1{font-size:clamp(2.8rem,6.6vw,5.8rem)}
.ph .lead{color:#eaf3fc;margin-top:1.2rem}
.ph .lbl{color:#fff}
.ph .muted{color:#d6e6f6}
.ph__m{position:relative;aspect-ratio:4/3;overflow:hidden}
.ph__m img,.ph__m video{width:100%;height:100%;object-fit:cover;filter:saturate(.96) contrast(1.03)}
.ph__m::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,87,151,.55),transparent 42%)}
.ph__in>*{min-width:0}
.ph__map{width:100%}
@media (min-width:960px){
  .ph__in{grid-template-columns:1.1fr .9fr;min-height:560px}
  .ph__m{aspect-ratio:auto;position:absolute;top:0;bottom:0;right:0;width:46%;clip-path:polygon(16% 0,100% 0,100% 100%,0 100%)}
  .ph--map .ph__in{grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,3.5rem)}
  .ph--plain .ph__in{grid-template-columns:1fr;min-height:0}
}
.bc{display:flex;flex-wrap:wrap;gap:.5rem;font-family:var(--fm);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:#cfe3f6;margin:0 0 1.5rem;padding:0;list-style:none}
.bc a{color:#fff;text-decoration:none}
.bc a:hover{color:#fff;text-decoration:underline}
.bc li+li::before{content:"/";margin-right:.5rem;opacity:.5}

/* grids and media */
.g2{display:grid;gap:clamp(1.8rem,4vw,4rem)}
.g3,.g4{display:grid;gap:1rem}
@media (min-width:860px){.g2{grid-template-columns:1fr 1fr;align-items:center}.g2--flip>:first-child{order:2}.g3{grid-template-columns:repeat(3,1fr)}}
@media (min-width:600px){.g4{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.g4{grid-template-columns:repeat(4,1fr)}}
.pic{overflow:hidden;position:relative;background:var(--ink-2)}
.pic img,.pic video{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;filter:saturate(.97) contrast(1.03)}
.pic--tall img,.pic--tall video{aspect-ratio:9/16}
.pic::after{content:"";position:absolute;left:0;bottom:0;width:64px;height:6px;background:var(--brand)}

/* check list */
.chk{list-style:none;padding:0;margin:0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.chk li{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start;background:var(--paper);padding:1.15rem 1.2rem}
.sec--paper .chk li{background:#fff}
.sec--sky .chk li{background:var(--paper-2)}
.chk .ico{width:1.4rem;height:1.4rem;color:var(--brand);margin-top:.15rem;stroke-width:2.6}
.chk b{display:block;font-stretch:80%;font-weight:700;line-height:1.25}
.chk span{color:var(--muted);font-size:.95rem}
.dark .chk{background:var(--line-d);border-color:var(--line-d)}
.dark .chk li{background:var(--ink-2)}
.dark .chk .ico{color:var(--sky)}
.dark .chk span{color:var(--mut-d)}
@media (min-width:700px){.chk--2{grid-template-columns:1fr 1fr}.chk--3{grid-template-columns:repeat(3,1fr)}}
ul.chk--plain{background:none;border:0;gap:.7rem}
ul.chk--plain li{background:none!important;padding:0}

/* cards */
.card{background:#fff;border:1px solid var(--line);padding:1.6rem;position:relative;display:flex;flex-direction:column;gap:.6rem;text-decoration:none;color:var(--txt);
  transition:transform .3s var(--ease),border-color .2s,box-shadow .3s}
.card::after{content:"";position:absolute;left:0;bottom:0;width:48px;height:4px;background:var(--brand);transition:width .35s var(--ease)}
.card .lbl{margin-bottom:.4rem}
a.card:hover{transform:translateY(-4px);border-color:var(--brand);box-shadow:0 20px 44px rgba(22,36,58,.14);color:var(--txt)}
a.card:hover::after{width:100%}
.card p{margin:0;color:var(--muted);font-size:.98rem}
.go{margin-top:auto;padding-top:.9rem;font-family:var(--fm);font-weight:700;text-transform:uppercase;font-size:.7rem;letter-spacing:.18em;color:var(--brand);display:inline-flex;gap:.6em;align-items:center}
a:hover>.go .ico,a:hover .go .ico{transform:translateX(5px)}
.go .ico{transition:transform .25s var(--ease)}
.dark .card{background:var(--ink-2);border-color:var(--line-d);color:#fff}
.dark .card p{color:var(--mut-d)}
.dark .card::after{background:var(--sky)}
.dark .go{color:var(--sky)}

/* two directions: split photo panels with outlined words */
.duo{display:grid;background:var(--ink)}
.duo a{position:relative;min-height:clamp(420px,62vh,640px);display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(1.4rem,3vw,2.6rem);color:#fff;text-decoration:none;overflow:hidden;isolation:isolate}
.duo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(.88) contrast(1.05);transition:transform 1.1s var(--ease)}
.duo a::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(22,36,58,.95) 6%,rgba(22,36,58,.5) 55%,rgba(22,36,58,.35))}
.duo a:hover img{transform:scale(1.05)}
.duo .tag{position:absolute;top:clamp(1.2rem,3vw,2.2rem);left:clamp(1.4rem,3vw,2.6rem)}
.duo .code{position:absolute;top:clamp(1.3rem,3vw,2.3rem);right:clamp(1.4rem,3vw,2.6rem);font-family:var(--fm);font-size:.68rem;letter-spacing:.2em;color:rgba(255,255,255,.8)}
.duo .word{font-stretch:62%;font-weight:900;text-transform:uppercase;font-size:clamp(3.6rem,9.5vw,8.6rem);line-height:.82;color:transparent;-webkit-text-stroke:1.5px var(--sky);margin-bottom:.9rem}
.duo a:nth-child(2) .word{-webkit-text-stroke-color:#fff}
.duo h3{font-size:clamp(1.5rem,2.6vw,2.2rem)}
.duo p{margin:.6rem 0 0;color:#cfdaeb;max-width:44ch}
.duo .go{color:var(--sky);margin-top:1.1rem;padding-top:0}
@media (min-width:860px){.duo{grid-template-columns:1fr 1fr;gap:1px}}
@media (max-width:640px){.duo .code{display:none}}

/* services: tall numbered photo cards */
.svc{display:grid;gap:.9rem}
.svc a{position:relative;aspect-ratio:3/4;display:flex;flex-direction:column;justify-content:flex-end;padding:1.3rem;color:#fff;text-decoration:none;overflow:hidden;isolation:isolate;background:var(--ink-2)}
.svc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(.9) contrast(1.04);transition:transform .9s var(--ease)}
.svc a::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(22,36,58,.96) 8%,rgba(22,36,58,.5) 58%,rgba(22,36,58,.25))}
.svc a::after{content:"";position:absolute;left:0;bottom:0;width:48px;height:5px;background:var(--sky);transition:width .4s var(--ease)}
.svc a:hover{color:#fff}
.svc a:hover img{transform:scale(1.07)}
.svc a:hover::after{width:100%}
.svc .n{position:absolute;top:.7rem;right:1rem;font-stretch:62%;font-weight:900;font-size:clamp(3rem,5vw,4.4rem);line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.75)}
.svc h3{font-size:clamp(1.5rem,2.2vw,1.9rem)}
.svc p{margin:.5rem 0 0;font-size:.93rem;color:#cfdaeb}
.svc .go{color:var(--sky);padding-top:.8rem;margin-top:0}
@media (max-width:599px){.svc a{aspect-ratio:16/11}}
@media (min-width:600px){.svc{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.svc{grid-template-columns:repeat(4,1fr)}}

/* process: a numbered list on phones (and without the script); on wide screens one stage that holds still while the scroll walks through the steps */
.proc ol{list-style:none;margin:0;padding:0}
.proc li{position:relative;padding:0 0 2.6rem 4rem;border-left:2px dashed rgba(255,255,255,.22);margin-left:1.4rem}
.proc li:last-child{border-left-color:transparent;padding-bottom:0}
.proc h3{margin:0 0 .6rem;font-size:clamp(1.9rem,3.2vw,2.7rem)}
.proc__t{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-align:left;text-transform:inherit;letter-spacing:inherit;display:block;width:100%}
.proc__t .n{position:absolute;left:-1.5rem;top:-.2rem;width:3rem;height:3rem;background:var(--ink-3);border:1px solid var(--line-d);color:#fff;display:grid;place-items:center;
  font-family:var(--fm);font-stretch:100%;font-weight:700;font-size:.85rem;letter-spacing:.06em;transition:background .3s,color .3s,border-color .3s}
.proc li.on .n{background:var(--sky);color:var(--ink);border-color:var(--sky)}
.proc p{color:var(--mut-d);max-width:46ch}
.proc__d img{margin-top:1rem;aspect-ratio:16/9;object-fit:cover;width:100%;filter:saturate(.94)}
.proc__m{display:none}
@media (min-width:960px) and (min-height:560px){
  .js .proc{--sh:clamp(380px,60vh,540px);height:calc(var(--sh) + var(--n,4)*26vh)}
  .js .proc__pin{position:sticky;top:calc((100vh + var(--hdr) - var(--sh))/2);height:var(--sh);display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(2rem,4vw,4rem)}
  .js .proc__m{display:block;position:relative;min-width:0;overflow:hidden;background:var(--ink-2);border:1px solid var(--line-d)}
  .js .proc__m video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.94) contrast(1.03);clip-path:inset(100% 0 0 0);transition:clip-path .6s cubic-bezier(.7,0,.2,1)}
  .js .proc__m video:first-of-type,.js .proc__m video.on{clip-path:inset(0 0 0 0)}
  .js .proc__m::after{content:"";position:absolute;inset:auto 0 0 0;height:38%;background:linear-gradient(0deg,rgba(22,36,58,.85),transparent);pointer-events:none}
  .js .proc__cap{position:absolute;left:1.3rem;bottom:1.5rem;z-index:2;display:flex;align-items:baseline;gap:.55rem;font-family:var(--fm);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:#fff}
  .js .proc__cap b{color:var(--sky);font-size:1.15rem;font-weight:700}
  .js .proc__cap span{color:rgba(255,255,255,.6)}
  .js .proc__cap em{font-style:normal;font-weight:700;margin-left:.5rem;padding-left:1rem;border-left:1px solid rgba(255,255,255,.4)}
  .js .proc__bar{position:absolute;inset:auto 0 0 0;z-index:2;height:5px;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px}
  .js .proc__bar i{background:rgba(255,255,255,.25);overflow:hidden}
  .js .proc__bar u{display:block;height:100%;background:var(--sky);transform-origin:0 50%;transform:scaleX(0)}
  .js .proc ol{display:flex;flex-direction:column;justify-content:center;min-width:0;border-left:1px solid var(--line-d)}
  .js .proc li,.js .proc li:last-child{padding:0 0 0 1.5rem;margin:0 0 0 -2px;border-left:3px solid transparent;opacity:.45;transition:opacity .35s,border-color .35s}
  .js .proc li.on{opacity:1;border-left-color:var(--sky)}
  .js .proc li.done{opacity:.7}
  .js .proc li:hover{opacity:1}
  .js .proc h3{margin:0;font-size:clamp(1.5rem,2.3vw,2.15rem)}
  .js .proc__t{display:flex;align-items:center;gap:1rem;padding:.8rem 0;cursor:pointer}
  .js .proc__t:focus-visible{outline:2px solid var(--sky);outline-offset:4px}
  .js .proc__t .n{position:static;flex:none;width:2.5rem;height:2.5rem;font-size:.78rem}
  .js .proc li.done .n{border-color:var(--sky);color:var(--sky);background:transparent}
  .js .proc__d{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
  .js .proc__d>div{overflow:hidden;min-height:0}
  .js .proc li.on .proc__d{grid-template-rows:1fr}
  .js .proc__d p{padding:0 0 .9rem 3.5rem;font-size:.98rem;line-height:1.55;max-width:42ch}
  .js .proc__d img{display:none}
}

/* data plate (key numbers) */
.facts{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);position:relative}
.facts div{background:#fff;padding:1.6rem 1.4rem}
.facts b{display:block;font-stretch:62%;font-weight:800;font-size:clamp(2.6rem,5vw,4rem);line-height:.9;color:var(--brand);text-transform:uppercase}
.facts span{display:block;margin-top:.6rem;font-family:var(--fm);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);line-height:1.5}
@media (min-width:700px){.facts{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}
.dark .facts{border:1px solid rgba(255,255,255,.3);padding:14px;gap:0;background:var(--ink-2)
  radial-gradient(circle at 12px 12px,#7f93b3 3px,transparent 3.5px),radial-gradient(circle at calc(100% - 12px) 12px,#7f93b3 3px,transparent 3.5px),
  radial-gradient(circle at 12px calc(100% - 12px),#7f93b3 3px,transparent 3.5px),radial-gradient(circle at calc(100% - 12px) calc(100% - 12px),#7f93b3 3px,transparent 3.5px)}
.dark .facts div{background:none;border-left:1px solid var(--line-d);padding:1.4rem 1.5rem}
.dark .facts div:first-child{border-left:0}
.dark .facts b{color:var(--sky)}
.dark .facts span{color:var(--mut-d)}
@media (max-width:699px){.dark .facts div{border-left:0;border-top:1px solid var(--line-d)}.dark .facts div:first-child{border-top:0}}

/* reviews as job tickets */
.rvw{background:#fff;border:1px solid var(--line);padding:0 1.5rem 1.4rem;display:flex;flex-direction:column;gap:.9rem;position:relative}
.rvw::before{content:"";display:block;height:14px;margin:0 -1.5rem;background:radial-gradient(circle at 8px 0,var(--paper) 5px,transparent 5.5px) 0 0/16px 14px repeat-x}
.sec--paper .rvw{background:var(--paper)}
.sec--paper .rvw::before{background-image:radial-gradient(circle at 8px 0,#fff 5px,transparent 5.5px)}
.rvw .stars{font-size:1.05rem}
.rvw blockquote{margin:0;font-size:1.04rem;line-height:1.55}
.rvw footer{margin-top:auto;padding-top:.9rem;border-top:1px dashed var(--line);display:flex;justify-content:space-between;gap:1rem;align-items:center;
  font-family:var(--fm);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.rvw footer b{color:var(--txt)}
.rsum{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem 2rem;padding:1.6rem 1.8rem;background:var(--ink);color:#fff;margin-bottom:1rem}
.rsum b{font-stretch:62%;font-weight:800;font-size:5rem;line-height:.8;color:var(--sky)}
.rsum .stars{font-size:1.4rem}
.rsum p{margin:.2rem 0 0;color:var(--mut-d);font-size:.95rem}
.rsum .btn{margin-left:auto}

/* faq */
.faq{border-top:2px solid var(--brand);max-width:940px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1.2rem;align-items:center;padding:1.2rem 0;font-stretch:80%;font-weight:700;font-size:1.14rem;line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;width:34px;height:34px;background:var(--brand);color:#fff;display:grid;place-items:center;font-family:var(--fm);font-size:1.1rem;transition:background .2s}
.faq details[open] summary::after{content:"\2212";background:var(--ink);color:#fff}
.faq details>div{padding:0 3.2rem 1.4rem 0;color:var(--muted)}
.faq details>div p:last-child{margin-bottom:0}

/* prose, tables, plans */
.prose{max-width:72ch}
.prose h2{font-size:clamp(1.9rem,3.4vw,2.6rem);margin:2.6rem 0 .9rem;line-height:.95}
.prose h3{margin:1.7rem 0 .5rem}
.prose>*:first-child{margin-top:0}
.prose li{margin-bottom:.4em}
.note{border-left:5px solid var(--brand);background:#fff;padding:1.1rem 1.3rem;margin:1.7rem 0}
.sec--paper .note{background:var(--paper)}
.note p:last-child{margin:0}
table{border-collapse:collapse;width:100%;margin:1.2rem 0;font-size:.98rem}
th,td{text-align:left;padding:.85rem .9rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-family:var(--fm);text-transform:uppercase;font-size:.66rem;letter-spacing:.16em;color:var(--muted);border-bottom:2px solid var(--brand)}
td:first-child{font-weight:700;font-stretch:85%}
.tbl{overflow-x:auto}
.plan{border:1px solid var(--line);padding:1.9rem;background:#fff;display:flex;flex-direction:column;gap:.6rem;position:relative}
.plan--hi{background:var(--brand);color:#fff;border-color:var(--brand)}
.plan--hi p,.plan--hi li{color:#eaf3fc}
.plan h3{font-size:clamp(2.2rem,4vw,3.2rem)}
.plan ul{padding-left:1.1em;margin:.5rem 0 0}
.plan li{margin-bottom:.35em}
.plan .lbl{color:var(--brand)}

/* route board (service-area map). Two layouts per map: .bd--w (wide) and .bd--t (tall); the box picks the one that fits. */
.geo{display:grid;gap:1.8rem}
.geo>*{min-width:0}
.geo__r .lgd{margin-top:0}
@media (min-width:1000px){
  .geo{grid-template-columns:1.25fr .75fr;grid-template-rows:auto 1fr;column-gap:3.5rem;row-gap:1.6rem}
  .geo__m{grid-column:1;grid-row:1/3;align-self:center}
  .geo__h{grid-column:2;grid-row:1}
  .geo__r{grid-column:2;grid-row:2}
}
.mapfig{border:1px solid var(--line-d);background:var(--ink-2);min-width:0}
.mapfig figcaption{padding:.7rem 1rem;border-top:1px solid var(--line-d);font-family:var(--fm);font-size:.6rem;line-height:1.5;letter-spacing:.14em;text-transform:uppercase;color:#b3c6de}
.mapbox{container-type:inline-size}
.bd{display:block;width:100%;height:auto;font-family:var(--fm);-webkit-user-select:none;user-select:none}
.bd--t{display:none;max-width:520px;margin-inline:auto}
@container (max-width:679px){.bd--w{display:none}.bd--t{display:block}}
.mapbox--hero .bd--w{display:block}
.mapbox--hero .bd--t{display:none}
@container (max-width:559px){.mapbox--hero .bd--w{display:none}.mapbox--hero .bd--t{display:block}}
.bd .bg{fill:var(--ink-2)}
.bd .ln{fill:none;stroke:#34527f;stroke-width:9;stroke-linecap:round;stroke-linejoin:round}
.bd--t .ln{stroke-width:11}
.bd .lc{fill:none;stroke:#b9cde6;stroke-width:1.6;stroke-dasharray:1 9;stroke-linecap:round;stroke-linejoin:round}
.bd .hw{fill:none;stroke:var(--brand);stroke-width:18}
.bd .hwc{fill:none;stroke:rgba(255,255,255,.6);stroke-width:2;stroke-dasharray:14 12}
.bd .hwa{fill:#4c93d6}
.bd text{paint-order:stroke;stroke:var(--ink-2);stroke-width:5px;stroke-linejoin:round}
.bd .hwt,.bd .cmp text{fill:#b3c6de;font-weight:500}
.bd .cmp path{fill:#b3c6de}
.bd .rt{fill:none;stroke:var(--sky);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:10 9;opacity:0;transition:opacity .2s;animation:march 1s linear infinite;pointer-events:none}
.bd--t .rt{stroke-width:4}
.bd .node--ld .rt{stroke:#fff}
@keyframes march{to{stroke-dashoffset:-19}}
.bd .hit{fill:transparent;stroke:none}
.bd .nd{fill:var(--ink-2);stroke:#fff;stroke-width:3;transition:fill .2s,stroke .2s}
.bd--t .nd{stroke-width:4}
.bd .dim .nd{stroke:#7f9cc4}
.bd .ldn{fill:#fff;transition:fill .2s}
.bd .nm{fill:#f3f7fc;font-weight:700;transition:fill .2s}
.bd .km{fill:#b9cde6;font-weight:500}
.bd .trk{fill:#fff;pointer-events:none}
.bd .trk .cab{fill:var(--sky)}
.bd .trk--ld{fill:var(--sky)}
.bd .trk--ld .cab{fill:#fff}
.bd .node>.trk{opacity:0}
.bd a.node:hover>.trk,.bd a.node:focus-visible>.trk{opacity:1}
.bd a.node:hover .rt,.bd a.node:focus-visible .rt,.bd .hl .rt{opacity:1}
.bd a.node:hover .nd,.bd a.node:focus-visible .nd,.bd .hl .nd{fill:var(--sky);stroke:var(--sky)}
.bd a.node:hover .ldn,.bd a.node:focus-visible .ldn{fill:var(--sky)}
.bd a.node:hover .nm,.bd a.node:focus-visible .nm,.bd .hl .nm{fill:var(--sky)}
.bd a.node:hover .km,.bd a.node:focus-visible .km,.bd .hl .km{fill:#fff}
.bd a{outline:0;cursor:pointer}
.bd a:focus-visible .hit{stroke:var(--sky);stroke-width:1.5;stroke-dasharray:4 4}
.bd .hub{fill:#fff}
.bd .hubr{fill:none;stroke:rgba(255,255,255,.6);stroke-width:2}
.bd .hubt{fill:#fff;font-weight:700}
.bd .hubs{fill:#f3f7fc;font-weight:500}
.bd .pulse{fill:none;stroke:#fff;stroke-width:2;animation:pulse 2.8s ease-out infinite;transform-box:fill-box;transform-origin:center;pointer-events:none}
@keyframes pulse{from{transform:scale(.5);opacity:.9}to{transform:scale(3);opacity:0}}
.lgd{list-style:none;margin:1.6rem 0;padding:1.2rem 0;border-block:1px solid var(--line-d);display:grid;gap:.75rem;font-family:var(--fm);font-size:.74rem;letter-spacing:.08em}
.lgd li{display:flex;align-items:center;gap:1.1rem;color:#dfe8f5}
.lgd i{width:26px;height:11px;background:#fff;flex:none;position:relative}
.lgd i::after{content:"";position:absolute;right:-7px;top:1px;width:6px;height:9px;background:var(--sky)}
.lgd .ld i{background:var(--sky)}
.lgd .ld i::after{background:#fff}
.lgd .st{color:#c2d3e9}
.lgd .st i{background:none;width:14px;height:14px;border:3px solid #fff;border-radius:50%;margin:0 9px 0 10px}
.lgd .st i::after{display:none}
.grp{margin-top:1.1rem}
.grp h3{font-family:var(--fm);font-stretch:100%;font-weight:700;font-size:.68rem;letter-spacing:.2em;color:var(--sky);margin-bottom:.55rem}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;padding:0;margin:0}
.chips li{border:1px solid var(--line);padding:.4rem .75rem;font-size:.9rem;font-weight:600;color:var(--muted)}
.chips li:has(a){padding:0;border:0}
.chips a{display:block;padding:.4rem .75rem;border:1px solid var(--brand);color:var(--brand);text-decoration:none;transition:background .2s,color .2s}
.chips a:hover{background:var(--brand);color:#fff}
.dark .chips li{border-color:var(--line-d);color:#c2d3e9}
.dark .chips a{border-color:rgba(255,255,255,.4);color:#fff}
.dark .chips a:hover{background:#fff;border-color:#fff;color:var(--brand)}

/* call to action: the back of the truck */
.dock{background:var(--ink) radial-gradient(circle at 1px 1px,rgba(255,255,255,.055) 1px,transparent 1.5px) 0 0/26px 26px;padding:clamp(3rem,7vw,5.5rem) 0 0;position:relative;overflow:hidden;overflow:clip}
.dock__t{width:min(100% - 2*var(--pad),1120px);margin-inline:auto;position:relative}
.dock__top{height:26px;background:#dfe5ee;border-radius:10px 10px 0 0;display:flex;justify-content:center;align-items:center;gap:14px;position:relative}
.dock__top i{width:14px;height:8px;background:#e23b2e;border-radius:2px;box-shadow:0 0 12px rgba(226,59,46,.9)}
.dock__top i:first-child,.dock__top i:last-child{position:absolute;top:9px}
.dock__top i:first-child{left:18px}
.dock__top i:last-child{right:18px}
.dock__bay{position:relative;border-inline:clamp(12px,2.2vw,26px) solid #dfe5ee;background:#16263f repeating-linear-gradient(45deg,rgba(255,255,255,.04) 0 2px,transparent 2px 26px);overflow:hidden;overflow:clip}
.dock__bay::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,rgba(255,255,255,.035) 0 2px,transparent 2px 26px);pointer-events:none}
.dock__in{position:relative;padding:clamp(4.6rem,min(11vw,14vh),8.5rem) clamp(1.2rem,5vw,4rem) clamp(1.8rem,min(6vw,5.5vh),4.5rem);color:#fff;text-align:center}
.dock__in .lbl{justify-content:center;color:var(--sky)}
.dock__in h2{font-size:clamp(2.3rem,min(6.6vw,9.5vh),5.6rem)}
.dock__in p{color:#cbd8ec;max-width:54ch;margin:1.2rem auto 0}
.dock__in .btns{justify-content:center;align-items:center}
.dock__in .tel{display:inline-flex;font-size:1.15rem}
.dock__door{position:absolute;inset:0;background:repeating-linear-gradient(180deg,#eef2f7 0 30px,#cdd5e0 30px 33px);display:grid;place-items:center;
  box-shadow:0 10px 30px rgba(0,0,0,.6);transform:translateY(-84%);pointer-events:none}
.dock__door img{width:min(54%,420px);height:auto}
.dock__door::after{content:"";position:absolute;left:50%;bottom:16px;width:130px;height:12px;margin-left:-65px;background:#3a4558;border-radius:3px;box-shadow:0 2px 0 #1c2433}
.dock__bump{height:54px;background:#111a2a;border-top:6px solid #2a364b;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(10px,2vw,22px);position:relative}
.dock__bump::before{content:"";position:absolute;left:18%;right:18%;top:14px;bottom:14px;background:repeating-linear-gradient(-55deg,#fff 0 16px,var(--brand) 16px 32px);opacity:.95}
.dock__bump i{width:clamp(34px,7vw,74px);height:20px;background:#d5281d;border-radius:3px;box-shadow:0 0 16px rgba(213,40,29,.75);position:relative;z-index:1}
.dock__axle{height:clamp(28px,5vh,46px);display:flex;justify-content:space-between;padding:0 8%}
.dock__axle i{position:relative;width:clamp(64px,13vw,150px);border-radius:0 0 10px 10px;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.13) 0 2px,transparent 2px 9px),linear-gradient(90deg,#141a25 0 46%,transparent 46% 54%,#141a25 54% 100%)}
.dock__axle i::before{content:"";position:absolute;left:-7px;right:-7px;top:0;height:52%;background:#1c2740;border-bottom:3px solid #3a4a68}
.dock__t::after{content:"";position:absolute;left:-5%;right:-5%;top:100%;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3) 14%,rgba(255,255,255,.3) 86%,transparent)}
/* site.js adds .dock--pin when the truck fits the screen: it then holds still while the scroll rolls the door up.
   Without the script (or with reduced motion) the door is simply open. */
.dock--pin .dock__t{position:sticky;top:var(--dock-top,96px)}
.dock--pin::after{content:"";display:block;height:var(--dock-travel,80vh)}
.dock--pin .dock__door{will-change:transform}

/* partnership section and newcomer page */
.sec--tight{padding:clamp(1.4rem,3vw,2.2rem) 0}
.notice{border:1px solid var(--line);border-left:4px solid var(--brand);background:#fff;padding:1.15rem 1.4rem;max-width:900px}
.notice .lbl{margin-bottom:.45rem}
.notice p{margin:0;font-size:.95rem;line-height:1.55;color:var(--muted)}
.opt .lbl{color:var(--brand)}
.plate{background:var(--ink-2);color:#fff;max-width:980px;clip-path:var(--cut)}
.plate__h{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.95rem 1.5rem;background:var(--brand);color:#fff;font-family:var(--fm);font-weight:700;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}
.plate dl{margin:0}
.plate dl>div{display:grid;grid-template-columns:minmax(9rem,15rem) 1fr;gap:1.2rem;padding:1rem 1.5rem;border-top:1px solid var(--line-d)}
.plate dt{font-family:var(--fm);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mut-d);padding-top:.3rem}
.plate dd{margin:0;font-weight:600;font-stretch:92%;font-size:1.08rem;line-height:1.4}
@media (max-width:560px){.plate dl>div{grid-template-columns:1fr;gap:.25rem}}
.vault{display:grid;gap:1.6rem;align-items:start}
.vault__i{width:4.2rem;height:4.2rem;display:grid;place-items:center;background:#fff;color:var(--brand);clip-path:var(--cut)}
.vault__i .ico{width:1.9rem;height:1.9rem}
.vault h2{margin:.6rem 0 1rem}
.vault p{color:var(--mut-d);max-width:60ch}
.vault ul{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;gap:1px;background:var(--line-d);border:1px solid var(--line-d);max-width:760px}
.vault li{background:var(--ink-2);padding:.85rem 1.1rem;font-family:var(--fm);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:#dfe8f5}
@media (min-width:760px){.vault{grid-template-columns:auto 1fr;gap:2.4rem}.vault ul{grid-template-columns:1fr 1fr}}
.cando{display:grid;gap:1rem}
@media (min-width:760px){.cando{grid-template-columns:1fr 1fr}}
.cando__c{background:#fff;border:1px solid var(--line);border-top:4px solid var(--ok);padding:1.5rem}
.cando__c--no{border-top-color:var(--err)}
.sec--paper .cando__c{background:var(--paper)}
.cando h3{margin:0 0 1rem;font-size:1.5rem}
.cando ul{list-style:none;margin:0;padding:0;display:grid;gap:.8rem}
.cando li{display:grid;grid-template-columns:auto 1fr;gap:.8rem;align-items:start}
.cando .ico{width:1.3rem;height:1.3rem;margin-top:.2rem;stroke-width:2.6;color:var(--ok)}
.cando__c--no .ico{color:var(--err)}
.srcs{display:grid;gap:1rem}
@media (min-width:700px){.srcs{grid-template-columns:1fr 1fr}}
@media (min-width:1100px){.srcs{grid-template-columns:repeat(3,1fr)}}
.src{position:relative;display:flex;flex-direction:column;gap:.45rem;background:#fff;border:1px solid var(--line);padding:1.3rem 3rem 1.3rem 1.3rem;text-decoration:none;color:var(--txt);transition:border-color .2s,transform .2s}
.src:hover{border-color:var(--brand);color:var(--txt);transform:translateY(-2px)}
.src .lbl{color:var(--brand)}
.src b{font-stretch:88%;font-size:1.12rem;line-height:1.3}
.src>span:not(.lbl){color:var(--muted);font-size:.93rem}
.src .ico{position:absolute;right:1.1rem;top:1.2rem;width:1.15rem;height:1.15rem;color:var(--brand)}
.todo{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line);max-width:980px}
.todo li{background:#fff;padding:1.1rem 1.3rem 1.1rem 3.6rem;position:relative}
.todo input{position:absolute;left:1.2rem;top:1.15rem;width:1.5rem;height:1.5rem;accent-color:var(--brand);cursor:pointer}
.todo label{cursor:pointer;display:block}
.todo label b{font-stretch:86%;font-size:1.15rem}
.todo p{margin:.25rem 0 0;color:var(--muted);font-size:.98rem;max-width:70ch}
.todo input:checked~label b{text-decoration:line-through;color:var(--muted)}
.inq{background:var(--ink) radial-gradient(circle at 1px 1px,rgba(255,255,255,.055) 1px,transparent 1.5px) 0 0/26px 26px;color:#fff;padding:clamp(4rem,9vw,7rem) 0;border-top:4px solid var(--sky);scroll-margin-top:var(--hdr)}
.inq__in{display:grid;gap:2.4rem;align-items:center}
@media (min-width:900px){.inq__in{grid-template-columns:1.15fr .85fr;gap:4rem}}
.inq h2{margin:.7rem 0 1.1rem}
.inq .lead{color:#cbd8ec}
.inq .lbl{color:var(--sky)}
.inq__c{display:grid;gap:.8rem;justify-items:stretch;background:var(--ink-2);border:1px solid var(--line-d);padding:1.6rem}
.inq__c .btn{justify-content:center}
.inq__c ul{list-style:none;margin:.6rem 0 0;padding:1rem 0 0;border-top:1px solid var(--line-d);display:grid;gap:.6rem;font-size:.93rem;color:var(--mut-d)}
.inq__c li{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start}
.inq__c .ico{width:1.05rem;height:1.05rem;margin-top:.25rem;color:var(--sky);stroke-width:2.6}
.inq__c .btn .ico{width:1.15rem;height:1.15rem;margin:0;color:inherit;stroke-width:2}
@media print{.inq,.sec--sky,.btns{display:none}.todo{border:0}.todo li{break-inside:avoid}}

/* forms */
.form{background:#fff;border:1px solid var(--line);color:var(--txt);position:relative}
.form__hd{background:var(--brand);color:#fff;font-family:var(--fm);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;padding:.85rem clamp(1.2rem,3vw,2rem);display:flex;justify-content:space-between;gap:1rem}
.form__hd b{color:#fff}
.form__bd{padding:clamp(1.2rem,3vw,2rem)}
.f{display:grid;gap:.4rem;margin-bottom:1.05rem}
.f label,.f legend{font-family:var(--fm);font-weight:700;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}
.f small{color:var(--muted)}
input,select,textarea{font:inherit;font-size:1rem;width:100%;min-height:50px;padding:.6rem .8rem;border:1px solid #98a6ba;border-radius:0;background:#fff;color:var(--txt)}
textarea{min-height:110px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--brand)}
input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:0;accent-color:var(--brand);flex:none}
.f label.ck{display:flex;gap:.7rem;align-items:center;font-family:var(--fd);font-weight:500;font-size:.98rem;letter-spacing:0;text-transform:none}
.row{display:grid;gap:0 1rem}
@media (min-width:640px){.row{grid-template-columns:1fr 1fr}.row--3{grid-template-columns:2fr 1fr 1fr}}
fieldset{border:0;padding:0;margin:0;min-width:0}
.step>legend{font-stretch:62%;font-weight:800;font-size:2.1rem;text-transform:uppercase;margin-bottom:1.1rem;padding:0;line-height:.95}
.js .step{display:none}
.js .step.on{display:block}
.prog{display:flex;gap:.4rem;margin:0 0 1.5rem;list-style:none;padding:0}
.prog li{flex:1;height:6px;background:var(--line);font-size:0}
.prog li.on{background:var(--cta)}
.prog li.done{background:var(--brand)}
html:not(.js) .prog{display:none}
.fnav{display:flex;justify-content:space-between;gap:.8rem;margin-top:.6rem;flex-wrap:wrap}
.err{color:var(--err);font-size:.88rem;font-weight:600;display:none}
.bad input,.bad select{border-color:var(--err)}
.bad .err{display:block}
.fine{font-size:.86rem;color:var(--muted);margin:1rem 0 0}
.demo{display:none;border:2px dashed var(--brand);background:var(--paper-2);padding:1rem 1.2rem;margin-bottom:1.4rem}
.is-demo .demo{display:block}

/* contact rows */
.cl{list-style:none;padding:0;margin:0;display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.cl li{display:grid;grid-template-columns:auto 1fr;gap:1rem;background:var(--paper);padding:1.15rem 1.2rem}
.sec--paper .cl li{background:#fff}
.cl .ico{width:1.4rem;height:1.4rem;color:var(--brand);margin-top:.2rem}
.cl b{display:block;font-family:var(--fm);text-transform:uppercase;font-size:.64rem;letter-spacing:.18em;color:var(--muted);margin-bottom:.2rem}
.cl a{font-weight:700;text-decoration:none;font-size:1.15rem}
.hrs{border-collapse:collapse;width:auto;margin:.2rem 0 0;font-size:1rem}
.hrs td,.hrs td:first-child{border:0;padding:.1rem 1.4rem .1rem 0;font-weight:400;font-stretch:100%}

/* footer */
.ftr{background:#16263f linear-gradient(180deg,var(--brand) 0 7px,#fff 7px 9px,transparent 9px);color:#cddaec;padding:clamp(3.4rem,6vw,5rem) 0 2rem;font-size:.96rem}
.ftr a{color:#cddaec;text-decoration:none}
.ftr a:hover{color:#fff}
.ftr__g{display:grid;gap:2.2rem}
.ftr h2{font-family:var(--fm);font-stretch:100%;font-weight:700;font-size:.66rem;letter-spacing:.22em;color:var(--sky);margin-bottom:1rem;line-height:1.4}
.ftr ul{list-style:none;padding:0;margin:0;display:grid;gap:.45rem}
.ftr__b{margin-top:2.8rem;padding-top:1.3rem;border-top:1px solid var(--line-d);display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;justify-content:space-between;
  font-family:var(--fm);font-size:.66rem;letter-spacing:.1em;color:#a9bdd8;text-transform:uppercase}
.ftr .logo img{height:72px;margin-bottom:1.2rem}
@media (min-width:760px){.ftr__g{grid-template-columns:1.3fr 1fr 1fr 1fr 1.2fr}}

/* article list */
.post{display:grid;gap:.5rem;padding:1.7rem 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--txt)}
.post:first-of-type{border-top:2px solid var(--brand)}
.post h3{font-size:clamp(1.9rem,3.4vw,2.8rem);transition:color .2s}
.post:hover h3{color:var(--brand)}
.post p{margin:0;color:var(--muted);max-width:70ch}
.post .lbl{margin-bottom:.3rem}

.e404{min-height:72vh;display:grid;align-items:center;padding-top:var(--hdr)}
.e404 b{font-stretch:62%;font-weight:900;font-size:clamp(7rem,24vw,16rem);line-height:.78;color:transparent;-webkit-text-stroke:2px var(--sky);display:block}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .bd .trk,.bd .pulse{display:none}
  .tapewrap .tape,.rv{translate:none!important;opacity:1!important}
  .dock__door{transform:translateY(-84%)!important}
}
@media print{.hdr,.mbar,.mm,.tapewrap,.dock,.ftr,.convoy{display:none}body{padding:0;background:#fff}}

/* key numbers on the home page sit on a Quebec-blue band */
.sec--blue.dark{background:var(--brand) radial-gradient(circle at 1px 1px,rgba(255,255,255,.07) 1px,transparent 1.5px) 0 0/26px 26px}
.sec--blue .lbl{color:#fff}
.sec--blue .facts{background-color:var(--brand-d);border-color:rgba(255,255,255,.42)}
.sec--blue .facts b{color:#fff}
.sec--blue .facts span{color:#dcebf9}
.plan .lbl--amber{align-self:flex-start}

/* long-distance destinations: a straight scrolling band in the tape style (client, 2026-10-29) */
.cities{background:var(--brand);color:#fff;overflow:hidden;overflow:clip;border-block:1px solid rgba(255,255,255,.28)}
.cities__run{display:flex;width:max-content;animation:cities 90s linear infinite}
.pic--wide img,.pic--wide video{aspect-ratio:3/2}
.nw{white-space:nowrap}
.ph__m img[src*="perce-road"]{object-position:12% 50%}
.convoy__t{animation-duration:98s}
.cities:hover .cities__run{animation-play-state:paused}
.cities ul{display:flex;flex:none;list-style:none;margin:0;padding:0}
.cities li{display:flex;align-items:center;white-space:nowrap;padding:1.05rem 0;font-family:var(--fm);font-weight:700;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase}
.cities li::before{content:"///";margin:0 1.7rem;opacity:.5;font-weight:500}
@keyframes cities{to{transform:translateX(-50%)}}
/* the client's truck in the slanted hero panel: keep his lettering in frame */
.ph__m img[src*="client-truck"]{object-position:38% 50%}

/* Quebec refresh: small local marks */
.fdl{width:1em;height:1em;flex:none;fill:currentColor;display:inline-block;vertical-align:-.14em}
.ftr__b .fdl{margin-right:.6em;color:#fff}
@media (max-width:640px){.frame b{right:26px;font-size:.6rem;letter-spacing:.14em}}
