/* ============================================================
   LAB SHEETS (L-01 … L-04) — shared styles on top of nk.css
   ============================================================ */

.lab-hero{ padding:clamp(44px,7vh,90px) 0 0 }
.lab-hero .title{
  font-family:var(--f-disp); font-weight:800; font-stretch:90%; text-transform:uppercase;
  letter-spacing:-.02em; line-height:.95; font-size:clamp(48px,9vw,140px); margin:26px 0 20px;
}
.lab-hero .title .acc{ color:var(--acc) }
.lab-hero .title em{ font-family:var(--f-fancy); font-style:italic; font-weight:400; text-transform:none; font-size:1.04em }
.lab-hero .standfirst{
  font-family:var(--f-serif); font-style:italic; font-weight:300;
  font-size:clamp(19px,2vw,25px); line-height:1.45; color:var(--ink-2); margin:0 0 26px; max-width:34em;
}
.lab-hero .meta{
  display:flex; flex-wrap:wrap; gap:10px 26px;
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-3);
  margin-bottom:30px;
}
.lab-hero .meta b{ color:var(--ink); font-weight:500 }
.lab-hero .cta{ display:flex; gap:12px; flex-wrap:wrap }

.s-no{
  display:flex; align-items:center; gap:14px;
  font-family:var(--f-mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-3); border-top:1px solid var(--rule-2); padding-top:12px;
}
.s-no::before{ content:""; display:none }
.s-no .no{ color:var(--acc) }

.s-title{
  font-family:var(--f-disp); font-weight:720;
  letter-spacing:-.018em; line-height:1.02; font-size:clamp(28px,4vw,54px); margin:24px 0 26px;
}
.s-title em{ font-family:var(--f-fancy); font-style:italic; font-weight:400; font-size:1.1em }

/* bullets — ruled list */
.bullets{ list-style:none; margin:0; padding:0; border-top:1px solid var(--rule-2); max-width:860px }
.bullets li{
  padding:18px 0 18px 34px; border-bottom:1px solid var(--rule);
  font-weight:300; font-size:16px; line-height:1.6; color:var(--ink-2); position:relative;
}
.bullets li::before{
  content:"—"; position:absolute; left:0; top:18px; color:var(--acc); font-family:var(--f-mono);
}
.bullets li b{ color:var(--ink); font-weight:500 }

/* layers — governed stack */
.layers{ border:1px solid var(--rule-2); max-width:920px }
.layer{
  display:grid; grid-template-columns:130px 1fr; gap:18px;
  padding:18px 22px; border-bottom:1px solid var(--rule); align-items:start;
}
.layer:last-child{ border-bottom:0 }
.layer .ln{ font-family:var(--f-mono); font-size:9.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--acc); padding-top:4px }
.layer .lt{ font-family:var(--f-disp); font-weight:700; font-stretch:94%; font-size:16.5px; letter-spacing:-.005em; color:var(--ink) }
.layer .ld{ font-size:14px; font-weight:300; color:var(--ink-2); line-height:1.55; margin-top:4px }
@media (max-width:600px){ .layer{ grid-template-columns:1fr; gap:6px } }

/* compare table */
.compare{ border:1px solid var(--rule-2); max-width:920px }
.crow{ display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid var(--rule) }
.crow:last-child{ border-bottom:0 }
.crow > div{ padding:16px 20px; font-size:14.5px; font-weight:300; color:var(--ink-2); line-height:1.5 }
.crow > .a{ border-right:1px solid var(--rule) }
.crow.head > div{
  font-family:var(--f-mono); font-size:10px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-3); padding:12px 20px;
}
.crow.head .b{ color:var(--acc) }

/* chips */
.chips{ display:flex; flex-wrap:wrap; gap:8px; max-width:860px }
.chips span{
  font-family:var(--f-mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink-2); border:1px solid var(--rule-2); padding:9px 14px;
}

/* quote */
.quote blockquote{
  border:0; margin:0; padding:0;
  font-family:var(--f-serif); font-style:italic; font-weight:300;
  font-size:clamp(22px,2.6vw,34px); line-height:1.4; color:var(--ink); max-width:34ch;
}
.quote blockquote::before{ content:"“"; display:block; color:var(--acc); font-size:1.6em; line-height:.4; margin-bottom:16px }
.quote cite{
  display:block; font-family:var(--f-mono); font-style:normal; font-size:10.5px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin-top:20px;
}
.quote cite a{ color:var(--ink-2) }

/* callout */
.callout{ border:1px solid var(--acc); padding:26px 28px; max-width:860px }
.callout .cl{ font-family:var(--f-mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--acc); margin-bottom:14px }
.callout p{ margin:0 0 1em; font-weight:300; color:var(--ink-2); line-height:1.65 }
.callout p:last-child{ margin-bottom:0 }
.callout em{ color:var(--ink) }

/* closing */
.closing{ padding-top:clamp(64px,10vh,130px); text-align:left }
.closing .big{
  font-family:var(--f-disp); font-weight:740; text-transform:uppercase;
  letter-spacing:-.015em; line-height:1.02; font-size:clamp(30px,5vw,64px); margin:0 0 30px; max-width:22ch;
}
.closing .cta{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:26px }
.closing .note{ max-width:60ch }

/* gate badge (GulfLaw agent cards) */
.cells .gate{
  display:inline-block; font-family:var(--f-mono); font-size:9px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--acc); border:1px solid var(--acc); padding:5px 9px; margin-top:4px;
}

/* prose width override for lab pages */
.lab-prose{ max-width:66ch }
