/* Imprensa Solutions — Variation C: The Broadsheet */
:root{
  --paper:#F2EFE8; --paper-2:#E7E3D9; --ink:#141414; --ink-2:#3B3A36; --gray:#706C65; --rule:#CFCABF;
  --accent:#1E3A6E; --burgundy:#631529; --burgundy-tint:#EEDDE0;
  --serif:"Source Serif 4", Georgia, serif;
  --sans:"IBM Plex Sans", system-ui, sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;
  --max:1280px; --gut:clamp(16px,3.5vw,44px);
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--sans)}
a{color:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:8px 12px;z-index:9}
.skip:focus{left:8px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
h1,h2,h3{font-family:var(--serif);margin:0 0 .4em;line-height:1.1;letter-spacing:-.01em}
h1{font-size:clamp(40px,6vw,80px);font-weight:600;letter-spacing:-.02em}
h2{font-size:clamp(28px,3vw,40px);font-weight:600}
h3{font-size:22px;font-weight:600}
p{margin:0 0 1em}
.tbd{text-decoration:underline dotted var(--accent);text-underline-offset:3px}
.label{font:500 11px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gray);margin-bottom:10px}
.label a{text-decoration:none}
.num{font:500 12px var(--mono);color:var(--accent)}
.small{font-size:14px;color:var(--gray)}
.dim{color:var(--gray)}
.inline{color:var(--accent);font-weight:500}
.big{font:400 clamp(22px,2.2vw,28px)/1.35 var(--serif);margin:0 0 1em}
.standfirst{font:italic 400 clamp(20px,2vw,25px)/1.45 var(--serif);color:var(--ink-2);max-width:62ch}
.standfirst.narrow{margin-bottom:32px}

/* Masthead */
.mast{border-bottom:4px double var(--ink)}
.dateline{display:flex;justify-content:space-between;gap:12px;font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gray);padding-top:14px;padding-bottom:10px;border-bottom:1px solid var(--rule)}
.wordmark{display:block;text-align:center;font:700 clamp(52px,11vw,148px)/1 var(--serif);letter-spacing:.06em;text-decoration:none;padding:18px 0 10px;margin-right:-.06em}
.navrow{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--ink);padding-top:10px;padding-bottom:10px}
.mainnav{display:flex;gap:clamp(14px,2.6vw,36px);overflow-x:auto}
.mainnav a{font:500 13px var(--mono);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;padding:4px 0;white-space:nowrap}
.mainnav a[aria-current],.mainnav a:hover{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}

.btn{display:inline-block;font:500 13px var(--mono);letter-spacing:.06em;text-transform:uppercase;text-decoration:none;padding:11px 18px;border:1px solid var(--ink);color:var(--ink);background:transparent;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn-solid{background:var(--accent);border-color:var(--accent);color:#fff}
.btn-solid:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.navrow .btn{padding:8px 14px;font-size:12px}

/* Front page */
.front{display:grid;grid-template-columns:3fr 1fr;gap:0;padding-top:40px;padding-bottom:48px;border-bottom:1px solid var(--ink)}
.lead{padding-right:40px;border-right:1px solid var(--rule)}
.lead h1{font-size:clamp(40px,5.4vw,76px);max-width:18ch}
.lead-cols{columns:2;column-gap:40px;column-rule:1px solid var(--rule);margin-top:24px;font-size:16px}
.lead-cols p{break-inside:avoid-column}
.dropcap::first-letter{float:left;font:700 4.2em/.8 var(--serif);padding:6px 8px 0 0;color:var(--accent)}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.index-box{padding-left:32px}
.index-box ol{list-style:none;padding:0;margin:0 0 32px;border-top:1px solid var(--ink)}
.index-box li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--rule);font:500 17px var(--serif)}
.index-box li span{font:500 12px var(--mono);color:var(--accent);padding-top:4px}
.pull{border-top:4px double var(--ink);border-bottom:1px solid var(--ink);padding:20px 0}
.pull p{font:italic 600 26px/1.2 var(--serif);margin:0 0 8px}
.pull span{font:12px var(--mono);color:var(--gray)}

.sec{padding-top:40px;padding-bottom:48px;border-bottom:1px solid var(--ink)}
.rule-head{display:flex;align-items:baseline;gap:16px;border-bottom:1px solid var(--rule);padding-bottom:12px;margin-bottom:28px}
.section-title{font:600 13px var(--mono);letter-spacing:.1em;text-transform:uppercase;margin:0}
.rule-head a{margin-left:auto;font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);text-decoration:none}
.cols-2{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.cols-3,.cols-4{display:grid;gap:0}
.cols-3{grid-template-columns:repeat(3,1fr)}
.cols-4{grid-template-columns:repeat(4,1fr)}
.story{padding:0 24px;border-left:1px solid var(--rule)}
.cols-3 .story:first-child,.cols-4 .story:first-child{padding-left:0;border-left:0}
.cols-3>.story:nth-child(3n+1){padding-left:0;border-left:0}
.cols-3>.story:nth-child(n+4){margin-top:32px}
.story h3 a{text-decoration:none}
.story h3 a:hover{color:var(--accent)}
.story.muted h3{text-decoration:line-through;text-decoration-thickness:1px;color:var(--gray)}
.stages{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);counter-reset:x}
.stages li{padding:0 24px;border-left:1px solid var(--rule)}
.stages li:first-child{padding-left:0;border-left:0}
.stages h3{font-size:34px;margin-top:6px}
.stages p{color:var(--ink-2)}
.ph{aspect-ratio:3/2;background:var(--paper-2);border:1px solid var(--rule);display:flex;align-items:flex-end;padding:10px;margin-bottom:14px;background-image:radial-gradient(var(--rule) 1px,transparent 1px);background-size:6px 6px}
.ph span{font:11px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);background:var(--paper);padding:2px 6px}
.caps{width:100%;border-collapse:collapse;border-top:1px solid var(--ink)}
.caps th,.caps td{text-align:left;padding:12px 0;border-bottom:1px solid var(--rule);vertical-align:top;font-size:15px}
.caps th{font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);width:130px;padding-top:15px}

.closing{background:var(--ink);color:var(--paper);padding:64px 0}
.closing-in{display:grid;grid-template-columns:1.2fr 1fr auto;gap:40px;align-items:center}
.closing h2{font-size:clamp(36px,4vw,56px);margin:0}
.closing p{margin:0;color:#CFCABF}
.closing .btn-solid{background:var(--paper);color:var(--ink);border-color:var(--paper)}

/* Pages */
.page-head{padding-top:48px;padding-bottom:36px;border-bottom:1px solid var(--ink)}
.page-head h1{margin-bottom:14px}
.jump{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.jump a,.jump span{display:inline-block;font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.05em;text-decoration:none;border:1px solid var(--ink);padding:6px 10px}
.jump a:hover{background:var(--ink);color:var(--paper)}
.parts{border-top:1px solid var(--ink)}
.parts div{padding:16px 0;border-bottom:1px solid var(--rule)}
.parts h3{font-size:19px;margin-bottom:4px}
.parts p{margin:0;color:var(--ink-2);font-size:15px}
.pull-inline{font:italic 600 21px/1.3 var(--serif);color:var(--accent);border-left:3px solid var(--accent);padding-left:14px}
.ticks{list-style:none;padding:0;margin:12px 0 0;border-top:1px solid var(--rule)}
.ticks li{padding:8px 0;border-bottom:1px solid var(--rule);font-size:14px}
.ticks li::before{content:"■ ";color:var(--accent);font-size:9px;vertical-align:2px}
.table-wrap{overflow-x:auto}
.ledger{width:100%;border-collapse:collapse;min-width:760px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.ledger th,.ledger td{text-align:left;padding:14px 16px 14px 0;border-bottom:1px solid var(--rule);vertical-align:top;font-size:15px}
.ledger thead th{font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--gray);border-bottom:1px solid var(--ink)}
.ledger tbody th{font:600 19px var(--serif);white-space:nowrap}
.ledger .mono{font:500 12px var(--mono);text-transform:uppercase;color:var(--accent);white-space:nowrap}
.ledger tr:target{background:var(--paper-2)}
.note{font:13px var(--mono);color:var(--gray);margin-top:16px}

.steps-line{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-wrap:wrap;gap:0;border-top:1px solid var(--ink)}
.steps-line li{padding:10px 20px 0 0;font:600 18px var(--serif)}
.steps-line .num{margin-right:6px}
.case{display:grid;grid-template-columns:1fr 1.2fr;gap:40px;padding:32px 0;border-bottom:1px solid var(--rule)}
.case:last-child{border-bottom:0}
.case-dl{display:grid;grid-template-columns:120px 1fr;margin:16px 0 0;border-top:1px solid var(--ink)}
.case-dl dt,.case-dl dd{padding:8px 0;border-bottom:1px solid var(--rule);margin:0}
.case-dl dt{font:500 12px var(--mono);text-transform:uppercase;color:var(--accent);padding-top:10px}
.portrait{aspect-ratio:4/5;max-width:340px}
.portrait-fig{margin:0;max-width:380px}
.portrait-fig img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;background:var(--paper-2);border:1px solid var(--ink);box-shadow:14px 14px 0 var(--burgundy)}
.portrait-fig figcaption{font:500 11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--gray);margin-top:24px;padding-top:8px;border-top:1px solid var(--rule)}
.founder{align-items:start}
.h-founder{font-size:clamp(32px,3.4vw,44px)}
.h-founder{font-size:32px}

.shot{display:block;margin-bottom:14px;border:1px solid var(--ink);background:var(--paper-2)}
.shot img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:top}
.shot:hover{box-shadow:6px 6px 0 var(--burgundy)}
.case .shot{align-self:start;margin-bottom:0}
.case h2{margin-bottom:10px}
.case .standfirst{font-size:20px;margin-bottom:0}
.case-dl dd{font-size:15px}
.case .actions{margin-top:20px}
.case{scroll-margin-top:16px}

/* Insights */
.lead-story a{text-decoration:none}
.lead-story h2{font-size:clamp(40px,5.5vw,72px);max-width:18ch}
.lead-story h2:hover{color:var(--accent)}
.lead-story .lead-cols{columns:3}
.top-rule{border-top:1px solid var(--ink);padding-top:28px;margin-top:40px}
.essay-head{text-align:center;padding-top:56px;padding-bottom:28px}
.essay-head h1{max-width:18ch;margin:0 auto 16px}
.essay-head .standfirst{margin:0 auto}
.byline{display:flex;justify-content:center;gap:24px;flex-wrap:wrap;font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--gray);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:10px 0;margin-top:28px}
.prose{columns:2;column-gap:56px;column-rule:1px solid var(--rule);font:400 18px/1.65 var(--serif);padding:32px 0 16px}
.prose>p:first-child::first-letter{float:left;font:700 4.4em/.8 var(--serif);padding:6px 10px 0 0;color:var(--accent)}
.prose h2{font-size:24px;break-after:avoid;margin-top:1em}
.prose ol{padding-left:1.2em;break-inside:avoid}
.prose li{margin-bottom:.5em}
.prose blockquote{margin:1em 0;padding:16px 0;border-top:4px double var(--ink);border-bottom:1px solid var(--ink);break-inside:avoid}
.prose blockquote p{font:italic 600 24px/1.25 var(--serif);color:var(--accent);margin:0}
.essay-end{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-top:4px double var(--ink);padding:20px 0 64px;font:12px var(--mono);text-transform:uppercase;color:var(--gray)}

/* Contact */
.contact-grid{display:grid;grid-template-columns:2.4fr 1fr;gap:0}
.contact-grid .inquiry{padding-right:40px;border-right:1px solid var(--rule)}
.inquiry fieldset{border:0;border-top:1px solid var(--ink);margin:0;padding:18px 0 28px}
.inquiry legend{font:600 24px var(--serif);padding:0 12px 0 0}
.fnum{font:500 12px var(--mono);color:var(--accent);margin-right:10px;vertical-align:middle}
.field{display:block;margin:16px 0 0}
.field>span{display:block;font:500 12px var(--mono);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.field em{font-style:normal;text-transform:none;letter-spacing:0;color:var(--gray);font-family:var(--sans)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
input[type=text],input[type=email],select,textarea{width:100%;font:inherit;font-size:16px;padding:11px 0;border:0;border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);border-radius:0}
select{padding:11px 4px}
textarea{border:1px solid var(--ink);padding:10px}
.choices{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.choice{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--rule);font-size:15px;cursor:pointer}
.choice:has(input:checked){border-color:var(--accent);background:#E3E6EE}
.choice input{accent-color:var(--accent);margin:0}
.form-note{font:12px var(--mono);color:var(--gray);margin-top:12px}
.plain{list-style:none;padding:0;margin:0}
.plain li{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--rule);font-size:15px}
.plain span{font:500 12px var(--mono);color:var(--accent);padding-top:3px}

/* Utility */
.util{padding-top:56px;padding-bottom:88px;max-width:780px}
.util h2{margin-top:1.3em;font-size:26px}
.notice{border:1px solid var(--accent);padding:10px 14px;font-size:14px;color:var(--accent)}
.sitemap{columns:2}

/* Footer */
.footer{border-top:4px double var(--ink);padding-top:32px}
.foot-wm{font:700 40px var(--serif);letter-spacing:.06em;margin:0 0 24px}
.foot-wm span{font:500 11px var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--gray);vertical-align:middle;margin-left:8px}
.foot-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--ink);padding-top:20px;padding-bottom:28px}
.foot-cols>div{padding:0 20px;border-left:1px solid var(--rule)}
.foot-cols>div:first-child{padding-left:0;border-left:0}
.footer h2{font:600 11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gray);margin-bottom:12px}
.footer ul{list-style:none;margin:0;padding:0}
.footer li{font-size:14px;margin-bottom:7px}
.footer a{text-decoration:none}
.footer a:hover{color:var(--accent)}
.foot-util{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid var(--ink);padding:14px 0 28px;font:12px var(--mono);color:var(--gray)}
.foot-util p{margin:0}
.foot-util ul{display:flex;gap:18px}
.foot-util li{margin:0;font-size:12px}


/* ---- Burgundy: the second ink. Navy stays on buttons and links; burgundy marks editorial moments. ---- */
::selection{background:var(--burgundy);color:#fff}
.mast{border-top:6px solid var(--burgundy)}
.dateline span:first-child{color:var(--burgundy);font-weight:600}
.mainnav a[aria-current],.mainnav a:hover{color:var(--burgundy);box-shadow:inset 0 -2px 0 var(--burgundy)}
.num,.index-box li span,.fnum,.plain span,.case-dl dt,.caps th{color:var(--burgundy)}
.lead>.label,.page-head>.label,.essay-head .label,.util .kicker{color:var(--burgundy)}
.page-head h1::after,.util h1::after{content:"";display:block;width:72px;height:4px;background:var(--burgundy);margin-top:18px}
.dropcap::first-letter,.prose>p:first-child::first-letter{color:var(--burgundy)}
.pull{border-top-color:var(--burgundy)}
.pull p{color:var(--burgundy)}
.pull-inline{color:var(--burgundy);border-left-color:var(--burgundy)}
.prose blockquote{border-top-color:var(--burgundy)}
.prose blockquote p{color:var(--burgundy)}
.story.muted h3{text-decoration-color:var(--burgundy)}
.ticks li::before{color:var(--burgundy)}
.ledger{border-top-color:var(--burgundy)}
.ledger tr:target{background:var(--burgundy-tint)}
.closing{background:var(--burgundy)}
.closing p{color:#EBD3D8}
.closing .btn-solid:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.essay-end{border-top-color:var(--burgundy)}
.notice{border-color:var(--burgundy);color:var(--burgundy);background:var(--burgundy-tint)}
.footer{border-top:4px double var(--burgundy)}
.foot-wm{color:var(--ink)}


/* ---- Tap targets: every standalone link is at least 24px tall (WCAG 2.2 target size) ---- */
.mainnav a{font-size:14px;padding:6px 0}
.footer li{font-size:15px;margin-bottom:1px}
.footer li a{display:inline-block;padding:4px 0;line-height:1.3}
.foot-util{font-size:13px;align-items:center}
.foot-util li{font-size:13px}
.foot-util li a{display:inline-block;padding:5px 0}
.rule-head a,.label a{display:inline-block;padding:6px 0}
.sitemap li a{display:inline-block}
.index-box p a{display:inline-block;padding:3px 0}

@media (max-width:1000px){
  .front{grid-template-columns:1fr}
  .lead{padding-right:0;border-right:0}
  .index-box{padding-left:0;margin-top:32px}
  .cols-4,.stages{grid-template-columns:1fr 1fr;row-gap:32px}
  .cols-4 .story:nth-child(odd),.stages li:nth-child(odd){padding-left:0;border-left:0}
  .closing-in{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .contact-grid .inquiry{padding-right:0;border-right:0}
  .contact-grid .index-box{margin-top:32px}
  .foot-cols{grid-template-columns:1fr 1fr;row-gap:24px}
  .foot-cols>div:nth-child(odd){padding-left:0;border-left:0}
  .lead-story .lead-cols{columns:2}
}
@media (max-width:760px){
  .dateline .mid{display:none}
  .cols-2,.cols-3,.cols-4,.stages,.case,.row,.foot-cols{grid-template-columns:1fr}
  .story,.stages li,.foot-cols>div{padding-left:0 !important;border-left:0 !important;padding-right:0}
  .cols-3>.story+.story,.cols-4>.story+.story,.stages li+li{margin-top:24px;padding-top:24px;border-top:1px solid var(--rule)}
  .lead-cols,.lead-story .lead-cols,.prose{columns:1}
  .navrow{flex-wrap:wrap}
  .mainnav{flex-wrap:wrap;overflow:visible;gap:2px 22px}
  .navrow .btn{display:none}
  .sitemap{columns:1}
}
