/* Ridgeway Freight — one small block vocabulary, nothing bespoke. */
/* ===================================================================
   THEME — the only part that changes between client sites.
   Two colours. Everything else is derived from them.
   =================================================================== */
:root{
  --brand:#1f5fa8;   /* buttons, links, accents, stat numbers */
  --dark:#12233d;    /* header, hero, footer background      */
}

/* ---- derived; do not edit per client ---- */
:root{
  --brand-hover:#17497f;
  --on-dark-lead:#c9d8e8;
  --on-dark-body:#a8bacd;
  --on-dark-eyebrow:#7fb2e8;
  --ink:#1b2432; --muted:#5b6675; --line:#e2e6ec; --paper:#f5f7fa;
  --radius:10px;
  --font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
@supports (color:color-mix(in srgb,red,blue)){
  :root{
    --brand-hover:color-mix(in srgb,var(--brand) 78%,#000);
    --on-dark-lead:color-mix(in srgb,var(--dark) 18%,#fff);
    --on-dark-body:color-mix(in srgb,var(--dark) 34%,#fff);
    --on-dark-eyebrow:color-mix(in srgb,var(--brand) 55%,#fff);
    --paper:color-mix(in srgb,var(--brand) 4%,#f7f8fa);
    --line:color-mix(in srgb,var(--brand) 9%,#e4e7ec);
    --ink:color-mix(in srgb,var(--dark) 82%,#000);
    --muted:color-mix(in srgb,var(--dark) 55%,#8b95a3);
  }
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--font);color:var(--ink);line-height:1.65;font-size:17px}
img{max-width:100%;display:block;height:auto}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.2;margin:0 0 .5em;font-weight:700;letter-spacing:-.02em}
h1{font-size:clamp(2.1rem,4.6vw,3.2rem)}
h2{font-size:clamp(1.6rem,3vw,2.3rem)}
h3{font-size:1.15rem}
p{margin:0 0 1em}
.wrap{max-width:1320px;margin:0 auto;padding:0 32px}
.wrap.narrow{max-width:760px}
.eyebrow{font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:.8em}
.sub{color:var(--muted);margin:0}
.band{background:var(--paper)}
/* dark cards section: navy background, white text — driven by the theme --dark token */
.section-dark{background:var(--dark);color:#fff}
.section-dark h2{color:#fff}
.section-dark .sub{color:var(--on-dark-body)}
.section-dark .card{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.15)}
.section-dark .card h3{color:#fff}
.section-dark .card p{color:var(--on-dark-body)}
.section-dark .card a{color:var(--on-dark-lead)}
.section-dark .list{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.15)}
.section-dark .list h3{color:#fff}
.section-dark .list ul{color:var(--on-dark-body)}
.section-dark .form label{color:#fff}
.section-dark .form .note{color:var(--on-dark-body)}
.section-dark .form input,.section-dark .form select,.section-dark .form textarea{color:var(--ink)}

/* buttons */
.btn{display:inline-block;padding:13px 26px;border-radius:var(--radius);background:var(--brand);color:#fff;font-weight:600;border:2px solid var(--brand);cursor:pointer;font-size:1rem;font-family:inherit}
.btn:hover{background:var(--brand-hover);border-color:var(--brand-hover);text-decoration:none}
.btn-ghost{background:transparent;color:var(--brand)}
.btn-ghost:hover{background:var(--brand);color:#fff}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.5em}

/* header */
.site-header{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:10}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 48px;max-width:100%;margin:0;flex-wrap:wrap}
.nav-contact{display:flex;align-items:center;gap:22px}
.nav .tel,.nav .mail{font-weight:700;color:var(--dark);white-space:nowrap}
.nav .mail{font-weight:600;font-size:.94rem;color:var(--muted)}
.nav .mail:hover{color:var(--brand)}
.brand{display:inline-flex;align-items:center;gap:12px;font-weight:800;font-size:1.2rem;color:var(--dark)}
.brand:hover{text-decoration:none}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:11px;background:var(--brand);color:#fff;font-size:.92rem;font-weight:800;letter-spacing:.04em;box-shadow:0 2px 6px rgba(18,35,61,.18)}
.brand-name{line-height:1}
.nav ul{display:flex;gap:24px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.nav a{color:var(--ink);font-weight:500}
.nav .tel{font-weight:700;color:var(--dark)}
.nav-toggle{display:none;background:none;border:0;padding:8px;margin-right:-8px;cursor:pointer;color:var(--dark)}
.nav-toggle svg{width:26px;height:26px;display:block}

/* hero */
.hero{background:var(--dark);color:#fff;padding:72px 0}
.hero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.hero h1{color:#fff}
.hero .lead{font-size:1.2rem;color:var(--on-dark-lead);font-weight:600}
.hero p{color:var(--on-dark-body)}
.hero .eyebrow{color:var(--on-dark-eyebrow)}
.hero .btn-ghost{color:#fff;border-color:#fff}
.hero .btn-ghost:hover{background:#fff;color:var(--dark)}
.hero img{border-radius:var(--radius)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;padding:56px 24px;text-align:center}
.stat b{display:block;font-size:2.6rem;font-weight:800;color:var(--brand);line-height:1}
.stat span{display:block;font-weight:700;margin:.4em 0 .5em}
.stat p{color:var(--muted);font-size:.95rem;margin:0}

/* specs — the job, as one premium card */
/* specs — full-bleed band: dark copy panel, photo running off the right edge */
.specs-band{display:grid;grid-template-columns:1fr 1fr;background:var(--dark);color:#fff}
.specs-copy{display:flex;flex-direction:column;justify-content:center;
            padding:88px 64px 88px max(32px,calc((100vw - 1320px)/2 + 32px))}
.specs-copy .eyebrow{color:var(--brand)}
.specs-copy h2{color:#fff;font-size:clamp(2rem,3.6vw,3rem);margin-bottom:30px}
.specs{list-style:none;margin:0 0 38px;padding:0;display:grid;gap:15px;max-width:460px}
.specs li{display:flex;align-items:center;gap:14px;font-weight:600;font-size:1.1rem;
          color:var(--on-dark-lead);padding-bottom:15px;
          border-bottom:1px solid rgba(255,255,255,.10)}
.specs li:last-child{border-bottom:0;padding-bottom:0}
.specs svg{width:19px;height:19px;flex:0 0 19px;color:var(--brand)}
.specs-copy .btn{align-self:flex-start}
.specs-media{position:relative;min-height:100%}
.specs-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* split */
.split{padding:72px 0}
.split .wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split.rev .media{order:-1}
.split img{border-radius:var(--radius)}
.split-box{margin:6px 0 30px;padding:26px 30px;background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:12px}
.split-box h3{font-size:1.2rem;color:var(--dark);margin-bottom:.7em}
.split-box ul{list-style:none;margin:0;padding:0}
.split-box li{position:relative;padding-left:1.7em;margin-bottom:.5em;color:var(--ink)}
.split-box li::before{content:"✓";position:absolute;left:0;top:.05em;color:var(--brand);font-weight:800}

/* section + grid (cards and lists share it) */
.section{padding:72px 0}
.head{max-width:720px;margin:0 auto 44px;text-align:center}
.grid{display:grid;grid-template-columns:repeat(var(--cols,3),1fr);gap:26px}
.card,.list{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px}
.card p{color:var(--muted);font-size:.97rem}
.card a{font-weight:600;font-size:.95rem}
.list ul{margin:0;padding-left:1.1em;color:var(--muted);font-size:.97rem}
.list li{margin-bottom:.4em}

/* feature: bigger, livelier list boxes */
.lists-feature .grid{gap:32px;max-width:1040px;margin:0 auto}
.lists-feature .list{padding:44px 46px;border-radius:16px;border:2px solid var(--brand);box-shadow:0 14px 36px rgba(18,35,61,.08)}
.lists-feature .list h3{font-size:1.85rem;color:var(--dark);margin-bottom:.7em}
.lists-feature .list ul{list-style:none;padding-left:0;color:var(--ink);font-size:1.4rem}
.lists-feature .list li{position:relative;padding-left:1.9em;margin-bottom:.75em;line-height:1.4}
.lists-feature .list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--brand);font-weight:800}

/* big: larger boxes and roughly double-size inner text */
.lists-big .grid{gap:30px}
.lists-big .list{padding:40px 44px}
.lists-big .list h3{font-size:1.9rem;margin-bottom:.6em}
.lists-big .list ul{font-size:1.7rem}
.lists-big .list li{margin-bottom:.55em;line-height:1.4}
.cards-big .grid{gap:30px}
.cards-big .card{padding:40px 44px}
.cards-big .card h3{font-size:1.9rem;margin-bottom:.5em}
.cards-big .card p{font-size:1.7rem;line-height:1.4}

/* cta */
.cta{background:var(--dark);color:#fff;padding:72px 0;text-align:center}
.cta h2{color:#fff}
.cta p{color:var(--on-dark-body);max-width:560px;margin:0 auto}
.cta .actions{justify-content:center}
.cta .btn-ghost{color:#fff;border-color:#fff}
.cta .btn-ghost:hover{background:#fff;color:var(--dark)}
.cta-light{background:var(--paper);color:var(--ink)}
.cta-light h2{color:var(--dark)}
.cta-light p{color:var(--muted)}
.cta-light .btn-ghost{color:var(--brand);border-color:var(--brand)}
.cta-light .btn-ghost:hover{background:var(--brand);color:#fff}

/* form */
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.92rem}
.form .wide{grid-column:1/-1}
.form input,.form select,.form textarea{padding:11px 13px;border:1px solid var(--line);border-radius:8px;font:inherit;font-weight:400;background:#fff}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--brand);outline-offset:1px}
.form .btn{grid-column:1/-1;justify-self:start}
.form .note{grid-column:1/-1;color:var(--muted);font-size:.9rem;margin:0}

/* footer */
.footer{background:var(--dark);color:var(--on-dark-body);padding:48px 0 32px;font-size:.95rem}
.footer a{color:var(--on-dark-lead)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px}
.footer b{color:#fff;display:block;margin-bottom:.6em}
.footer ul{list-style:none;margin:0;padding:0}
.footer li{margin-bottom:.4em}
.footer-legal{border-top:1px solid rgba(255,255,255,.12);margin-top:32px;padding-top:20px;font-size:.85rem}

@media (max-width:1080px){
  .grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:820px){
  .hero .wrap,.split .wrap,.footer-grid{grid-template-columns:1fr}
  .split.rev .media{order:0}
  .stats{grid-template-columns:1fr;gap:28px}
  .form,.grid{grid-template-columns:1fr}
  .specs-band{grid-template-columns:1fr}
  .specs-copy{padding:48px 24px}
  .specs-media{min-height:300px;order:-1}
  .specs-media img{position:relative}
  .hero,.split,.section,.cta{padding:48px 0}

  /* collapse the bar to brand + burger */
  .wrap{padding:0 20px}
  .nav{gap:0;padding:14px 20px}
  .nav-toggle{display:block}
  .nav ul{display:none;width:100%;flex-direction:column;gap:0;order:3;
          margin-top:14px;padding-top:6px;border-top:1px solid var(--line)}
  .nav-contact{display:none;width:100%;order:4;flex-direction:column;align-items:flex-start;gap:4px;padding:8px 0 4px}
  .site-header.open .nav ul{display:flex}
  .site-header.open .nav-contact{display:flex}
  .nav ul li{border-bottom:1px solid var(--line)}
  .nav ul li:last-child{border-bottom:0}
  .nav ul a{display:block;padding:14px 2px;font-size:1.05rem}
}
