/* A dedicated contrast layer for a polished, readable two-theme experience. */
:root {
  --surface: #ffffff;
  --soft-surface: #edf3f7;
  --deep-blue: #071e35;
  --canada-red: #d92d3f;
  --route-blue: #173e63;
}

body { background: var(--paper); }
.nav { box-shadow: 0 5px 26px rgba(6, 27, 47, .05); border-bottom: 2px solid rgba(217,45,63,.16); }
.brand { background: #fff; border-radius: 4px; padding: 2px 5px; }
.brand img, footer img { mix-blend-mode: normal; filter: none; }
.services { background: linear-gradient(135deg, #06192d 0%, #0d3454 100%); }
.hero::after { content: 'CANADA  ↔  USA'; position: absolute; z-index: 1; right: 7%; top: 22%; padding: 10px 14px; border-left: 3px solid var(--canada-red); color: #fff; background: rgba(5,24,42,.35); backdrop-filter: blur(7px); font: 700 .68rem var(--sans); letter-spacing: .18em; }
.hero::before { content: ''; position: absolute; z-index: 1; right: 7%; top: 28%; width: 180px; height: 1px; background: linear-gradient(90deg, var(--canada-red) 0 25%, rgba(255,255,255,.85) 25% 50%, var(--orange) 50% 75%, rgba(255,255,255,.5) 75%); }
.intro-strip { background: linear-gradient(100deg, #c42135 0%, #d92d3f 54%, #e76a18 100%); }
.service-banner { background: linear-gradient(125deg, rgba(255,255,255,.10), rgba(255,255,255,.02)); }
.form { background: var(--surface); padding: 32px; border: 1px solid var(--line); box-shadow: 0 16px 45px rgba(7, 30, 53, .07); }
.quote-form { background: rgba(7,30,53,.12); border-color: rgba(255,255,255,.45); box-shadow: none; }
.quote-form .light { color: #102b4a; }
.contact-info a { transition: color .2s; }
.contact-info a:hover { color: var(--orange); }

body.dark {
  --paper: #071727;
  --ink: #f4f8fc;
  --muted: #b5c7d7;
  --line: #2c4960;
  --surface: #0c253b;
  --soft-surface: #102d46;
  --night: #06192d;
}
body.dark .nav { background: rgba(6, 24, 42, .9); border-color: #294660; box-shadow: 0 5px 26px rgba(0,0,0,.28); }
body.dark .brand { background: #fff; }
body.dark .brand img, body.dark footer img { mix-blend-mode: normal; filter: none; }
body.dark .intro-strip { background: linear-gradient(100deg, #a91d31 0%, #d92d3f 54%, #e76a18 100%); }
body.dark .about, body.dark .contact { background: #071727; }
body.dark .services { background: linear-gradient(135deg, #041321 0%, #092945 100%); }
body.dark .services, body.dark .services h2, body.dark .services h3, body.dark .services .service-banner strong { color: #f4f8fc; }
body.dark .services .section-label span { color: #a8c0d4; }
body.dark .services .service-banner p { color: #d5e2ec; }
body.dark .service { border-color: rgba(203,221,235,.22); }
body.dark .service:hover { background: rgba(255,255,255,.06); }
body.dark .service p { color: #c6d6e3; }
body.dark .coverage { background-color: #071e35; }
body.dark .form { background: #0c253b; border-color: #31536e; box-shadow: 0 18px 44px rgba(0,0,0,.26); }
body.dark .quote-form { background: rgba(3,19,32,.36); border-color: rgba(255,255,255,.46); }
body.dark .form input, body.dark .form textarea { color: #f4f8fc; border-color: #42617a; }
body.dark .form input::placeholder, body.dark .form textarea::placeholder { color: #a7bbcc; opacity: 1; }
body.dark .form label { color: #c7d5df; }
body.dark .light { background: #f4f8fc; color: #102b4a; }
body.dark .ghost { border-color: rgba(255,255,255,.72); }
body.dark footer { background: #03101c; }
body.dark footer p, body.dark footer a { color: #e0ebf4; }

@media (max-width: 760px) {
  .form { padding: 24px 18px; }
  .brand { padding: 2px 4px; }
  .hero::after { top: 105px; right: 7%; font-size: .58rem; padding: 8px 10px; }
  .hero::before { top: 144px; right: 7%; width: 135px; }
}

/* Canada–USA brand system — used consistently in every section and both modes. */
body:not(.dark) .about { background: linear-gradient(135deg, #f8fbfd 0%, #fff 58%, #fff3f4 100%); }
body:not(.dark) .contact { background: linear-gradient(120deg, #fff 0%, #f7fafc 65%, #fff0f2 100%); }
body:not(.dark) .section-label { color: var(--canada-red); }
body:not(.dark) .section-label span { color: #52708a; }
body:not(.dark) .stats strong { color: var(--canada-red); }
body:not(.dark) .text-link { border-color: var(--canada-red); }
body:not(.dark) .text-link span { color: var(--canada-red); }
body:not(.dark) .primary { background: linear-gradient(115deg, #c62237, #e33e48); }
body:not(.dark) .primary:hover { box-shadow: 0 12px 28px rgba(198,34,55,.28); }
body:not(.dark) .coverage { background-image: linear-gradient(100deg, rgba(7,30,53,.96), rgba(12,52,83,.82) 57%, rgba(198,34,55,.5)), url('./assets/truck.jpeg'); }
body:not(.dark) .quote { background: linear-gradient(118deg, #aa1f35 0%, #d92d3f 58%, #ec6619 100%); position: relative; overflow: hidden; }
body:not(.dark) .quote-form { background: rgba(7,30,53,.20); border-color: rgba(255,255,255,.58); }
body:not(.dark) .quote-form label { color: #fff; }
body:not(.dark) .quote-form input, body:not(.dark) .quote-form textarea { color: #fff; border-color: rgba(255,255,255,.76); }
body:not(.dark) .quote-form input::placeholder, body:not(.dark) .quote-form textarea::placeholder { color: rgba(255,255,255,.92); opacity: 1; }
body:not(.dark) .quote-form input:focus, body:not(.dark) .quote-form textarea:focus { border-color: #fff; background: rgba(255,255,255,.08); }
body:not(.dark) .quote::after { content: 'CANADA'; position: absolute; right: -2vw; bottom: -4vw; color: rgba(255,255,255,.09); font: 800 clamp(8rem,22vw,22rem) var(--display); letter-spacing: -.05em; pointer-events: none; }
body:not(.dark) .quote > * { position: relative; z-index: 1; }
body:not(.dark) footer { background: linear-gradient(110deg, #041729, #0b3657); border-top: 4px solid var(--canada-red); }

body.dark .about { background: linear-gradient(135deg, #061a2d 0%, #071727 62%, #211421 100%); }
body.dark .contact { background: linear-gradient(120deg, #071727 0%, #0a2036 65%, #20131f 100%); }
body.dark .section-label { color: #ff6170; }
body.dark .section-label span { color: #a8c0d4; }
body.dark .stats strong { color: #ff6170; }
body.dark .primary { background: linear-gradient(115deg, #c62237, #e74752); }
body.dark .primary:hover { box-shadow: 0 12px 30px rgba(217,45,63,.32); }
body.dark .coverage { background-image: linear-gradient(100deg, rgba(3,17,30,.97), rgba(8,38,63,.84) 57%, rgba(169,29,50,.52)), url('./assets/truck.jpeg'); }
body.dark .quote { background: linear-gradient(118deg, #6d1325 0%, #ae2136 60%, #bd4c12 100%); position: relative; overflow: hidden; }
body.dark .quote::after { content: 'CANADA'; position: absolute; right: -2vw; bottom: -4vw; color: rgba(255,255,255,.08); font: 800 clamp(8rem,22vw,22rem) var(--display); letter-spacing: -.05em; pointer-events: none; }
body.dark .quote > * { position: relative; z-index: 1; }
body.dark footer { background: linear-gradient(110deg, #020b13, #082842); border-top: 4px solid #d92d3f; }
body.dark .theme-toggle { background: #d92d3f; }

/* Full logo treatment and privacy policy page. */
.brand { width: 142px; height: 58px; overflow: visible; }
.brand img { width: 132px; height: 54px; object-fit: contain; }
footer img { width: 150px; height: 72px; object-fit: contain; filter: none; }
.policy-page { min-height: 100vh; background: linear-gradient(135deg, #f8fbfd, #fff 60%, #fff1f3); color: #102b4a; }
.policy-nav { position: static; background: rgba(255,255,255,.96); }
.policy-main { max-width: 980px; margin: 0 auto; padding: 80px 7%; }
.policy-kicker { color: var(--canada-red); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .15em; }
.policy-main h1 { font: 700 clamp(3.2rem, 7vw, 6rem)/.88 var(--display); margin: 15px 0 10px; text-transform: uppercase; }
.policy-main h1 em { color: var(--canada-red); font-style: normal; }
.policy-date { color: #5b7285; margin: 0 0 50px; }
.policy-card { background: #fff; padding: clamp(25px, 5vw, 62px); border-top: 5px solid var(--canada-red); box-shadow: 0 18px 55px rgba(7,30,53,.10); }
.policy-card h2 { font-size: 2.25rem; margin: 42px 0 15px; }
.policy-card h2:first-of-type { margin-top: 25px; }
.policy-card p, .policy-card li { color: #40586b; line-height: 1.75; }
.policy-card ul { padding-left: 22px; }
.policy-card a { color: #b32135; font-weight: 700; }
body.dark .policy-page { background: linear-gradient(135deg, #061a2d, #071727 60%, #211421); color: #f4f8fc; }
body.dark .policy-nav { background: #06182a; }
body.dark .policy-card { background: #0c253b; box-shadow: 0 18px 55px rgba(0,0,0,.25); }
body.dark .policy-card p, body.dark .policy-card li, body.dark .policy-date { color: #c7d7e4; }
body.dark .policy-card a { color: #ff7580; }

@media (max-width: 760px) {
  body:not(.dark) .quote::after, body.dark .quote::after { right: -5vw; bottom: -2vw; font-size: 9rem; }
  .brand { width: 112px; height: 50px; }
  .brand img { width: 105px; height: 46px; }
}
