/* ============================================================
   APB — apb1.com rebuild · design system v2
   Editorial, photographic, quiet. No cards. No chips. No panels.
   ============================================================ */
:root{
  --paper:#FFFFFF;
  --plate:#EDEFEE;          /* photo placeholder tone */
  --plate-2:#F6F7F6;        /* soft band */
  --ink:#101418;
  --ink-2:#454D53;
  --ink-3:#8A9299;
  --navy:#0B1F2E;
  --navy-ink:#DCE5EA;
  --navy-ink-2:#8FA3B0;
  --steel:#0E6E8C;
  --steel-2:#09506B;
  --rule:#E4E6E3;
  --rule-navy:#1E3446;

  --disp:"Schibsted Grotesk","Segoe UI",Arial,sans-serif;
  --body:"Inter",-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;

  --w:1200px;
  --wn:880px;                /* narrow text column */
  --sp:clamp(80px,11vw,150px);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:17px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible{outline:2px solid var(--steel);outline-offset:3px}
.wrap{max-width:var(--w);margin:0 auto;padding:0 28px}
.narrow{max-width:var(--wn);margin-left:auto;margin-right:auto}

/* ---------- header ---------- */
.top{position:absolute;top:0;left:0;right:0;z-index:50;background:transparent}
.top.solid{position:sticky;background:var(--paper);border-bottom:1px solid var(--rule)}
.top .wrap{display:flex;align-items:center;gap:36px;height:88px}
.brand{font-family:var(--disp);font-weight:700;font-size:18px;letter-spacing:.14em}
nav.primary{margin-left:auto;display:flex;gap:30px}
nav.primary a{font-size:14.5px;color:var(--ink-2);letter-spacing:.005em}
nav.primary a:hover{color:var(--ink)}
nav.primary a[aria-current]{color:var(--ink);font-weight:600}
.btn{
  display:inline-block;font-family:var(--body);font-weight:600;font-size:14.5px;
  padding:13px 26px;background:var(--ink);color:#fff;border-radius:0;
}
.btn:hover{background:var(--steel-2);color:#fff}
.btn.lt{background:#fff;color:var(--ink)}
.btn.lt:hover{background:var(--navy-ink);color:var(--navy)}
.txtlink{font-weight:600;font-size:15.5px;color:var(--steel)}
.txtlink::after{content:"  →"}
.txtlink:hover{color:var(--steel-2)}
@media(max-width:980px){nav.primary{display:none}}

/* ---------- typography ---------- */
.eyebrow{
  font-size:12.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 26px;
}
h1{
  font-family:var(--disp);font-weight:500;
  font-size:clamp(42px,6vw,84px);line-height:1.02;letter-spacing:-.025em;
  margin:0 0 30px;text-wrap:balance;
}
h1 strong{font-weight:700}
h2{
  font-family:var(--disp);font-weight:500;
  font-size:clamp(30px,3.6vw,48px);line-height:1.08;letter-spacing:-.02em;
  margin:0 0 22px;text-wrap:balance;
}
h3{font-family:var(--disp);font-weight:600;font-size:21px;letter-spacing:-.01em;margin:0 0 10px}
.lede{font-size:20px;line-height:1.65;color:var(--ink-2);max-width:34em;margin:0}
p{color:var(--ink-2);max-width:38em}
.small{font-size:14px;color:var(--ink-3)}

/* ---------- sections ---------- */
section{padding:var(--sp) 0}
section.half{padding:calc(var(--sp)*.55) 0}
.band-soft{background:var(--plate-2)}
.band-navy{background:var(--navy);color:var(--navy-ink)}
.band-navy h1,.band-navy h2,.band-navy h3{color:#fff}
.band-navy p,.band-navy .lede{color:var(--navy-ink)}
.band-navy .eyebrow{color:var(--navy-ink-2)}
hr.rule{border:0;border-top:1px solid var(--rule);margin:0}

/* ---------- photography ---------- */
.photo{
  background:var(--plate);position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.photo .cap{
  font-size:12px;letter-spacing:.08em;color:var(--ink-3);text-transform:uppercase;
  text-align:center;padding:20px;max-width:44ch;line-height:1.8;
}
.photo.r169{aspect-ratio:16/9}
.photo.r45{aspect-ratio:4/5}
.photo.r32{aspect-ratio:3/2}
.photo.r21{aspect-ratio:2.4/1}
.bleed{width:100%;}
figure{margin:0}
figcaption{font-size:13px;color:var(--ink-3);padding-top:14px;letter-spacing:.02em}

/* ---------- index rows (homepage routes) ---------- */
.index{border-top:1px solid var(--rule)}
.index-row{
  display:grid;grid-template-columns:88px minmax(0,1fr) minmax(0,1.1fr) 60px;
  gap:28px;align-items:baseline;padding:40px 0;border-bottom:1px solid var(--rule);
  color:var(--ink);
}
.index-row .no{font-family:var(--mono);font-size:13px;color:var(--ink-3)}
.index-row h3{font-family:var(--disp);font-weight:600;font-size:clamp(22px,2.6vw,32px);letter-spacing:-.015em;margin:0}
.index-row p{font-size:15.5px;margin:0;color:var(--ink-2)}
.index-row .arr{font-size:22px;color:var(--ink-3);text-align:right;transition:transform .18s ease,color .18s ease}
.index-row:hover .arr{transform:translateX(6px);color:var(--steel)}
.index-row:hover h3{color:var(--steel-2)}
@media(max-width:820px){.index-row{grid-template-columns:52px 1fr 34px}.index-row p{grid-column:2;margin-top:6px}}

/* ---------- figures (spec numbers, editorial) ---------- */
.figs{display:flex;flex-wrap:wrap;border-top:1px solid var(--rule)}
.fig{flex:1 1 200px;padding:30px 34px 30px 0;margin-right:34px;border-bottom:1px solid var(--rule)}
.fig .n{
  font-family:var(--disp);font-weight:500;font-size:clamp(36px,4vw,56px);
  letter-spacing:-.02em;line-height:1;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.fig .n small{font-size:.45em;font-weight:600;color:var(--ink-3);letter-spacing:0}
.fig .l{font-size:13.5px;color:var(--ink-3);margin-top:10px;line-height:1.55;max-width:24ch}
.band-navy .figs{border-color:var(--rule-navy)}
.band-navy .fig{border-color:var(--rule-navy)}
.band-navy .fig .n{color:#fff}
.band-navy .fig .l{color:var(--navy-ink-2)}

/* ---------- definition rows (quiet spec listing) ---------- */
.defs{border-top:1px solid var(--rule)}
.def{display:grid;grid-template-columns:minmax(140px,230px) 1fr;gap:24px;padding:18px 0;border-bottom:1px solid var(--rule)}
.def dt{margin:0;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding-top:3px}
.def dd{margin:0;font-size:16.5px;color:var(--ink)}
.def dd .sub{display:block;font-size:14px;color:var(--ink-3);margin-top:2px}
@media(max-width:560px){.def{grid-template-columns:1fr;gap:4px}}

/* ---------- two-column text list ---------- */
.cols{columns:2;column-gap:60px}
.cols li{break-inside:avoid;padding:9px 0;border-bottom:1px solid var(--rule);font-size:16px;color:var(--ink-2);list-style:none}
ul.cols{margin:0;padding:0;border-top:1px solid var(--rule)}
@media(max-width:640px){.cols{columns:1}}

/* ---------- split ---------- */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:center}
.split.tt{align-items:start}
.split.rev>*:first-child{order:2}
@media(max-width:880px){.split{grid-template-columns:1fr;gap:40px}.split.rev>*:first-child{order:0}}

/* ---------- service items (trades — editorial, no cards) ---------- */
.services{border-top:1px solid var(--rule)}
.service{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:28px;padding:30px 0;border-bottom:1px solid var(--rule)}
.service h3{margin:0}
.service p{margin:0;font-size:15.5px}
@media(max-width:640px){.service{grid-template-columns:1fr;gap:8px}}

/* ---------- CTA close ---------- */
.close{padding:var(--sp) 0}
.close h2{font-size:clamp(34px,4.6vw,62px);max-width:14em}
.close .actions{margin-top:34px;display:flex;gap:26px;align-items:center;flex-wrap:wrap}

/* ---------- also strip ---------- */
.also{border-top:1px solid var(--rule);padding:30px 0}
.also .wrap{display:flex;flex-wrap:wrap;gap:8px 34px;align-items:baseline}
.also .lbl{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.also a{font-size:15px;color:var(--ink-2)}
.also a:hover{color:var(--steel)}

/* ---------- footer ---------- */
footer.site{background:var(--navy);color:var(--navy-ink-2);padding:72px 0 48px}
footer.site .wrap{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:44px}
footer.site h4{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--navy-ink-2);margin:0 0 16px;font-weight:600}
footer.site a{display:block;color:var(--navy-ink);font-size:14.5px;padding:4px 0}
footer.site a:hover{color:#fff}
footer.site .brandline{font-family:var(--disp);font-weight:700;font-size:18px;letter-spacing:.14em;color:#fff;margin-bottom:14px}
footer.site p{font-size:14px;margin:0 0 6px;color:var(--navy-ink-2)}
footer.site .fineprint{grid-column:1/-1;border-top:1px solid var(--rule-navy);margin-top:26px;padding-top:20px;font-size:12.5px;letter-spacing:.04em;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
@media(max-width:880px){footer.site .wrap{grid-template-columns:1fr 1fr}}

/* ---------- breadcrumb ---------- */
.crumb{font-size:13px;color:var(--ink-3);padding:110px 0 0}
.crumb a{color:var(--ink-3)}
.crumb a:hover{color:var(--steel)}

/* ---------- hero ---------- */
.hero{padding:150px 0 calc(var(--sp)*.5)}
.hero.short{padding-top:130px}

@media (prefers-reduced-motion:reduce){
  .index-row .arr{transition:none}
}
