/* Rubicona — shared stylesheet */
@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;1,6..72,400;1,6..72,500&family=Inter:wght@400;500;600&display=swap');

:root{
  --ink:#1b2234;
  --ink-2:#283049;
  --ink-soft:#434b60;
  --paper:#f7f4ec;
  --paper-2:#efe9dc;
  --card:#fcfaf4;
  --line:rgba(27,34,52,0.14);
  --line-soft:rgba(27,34,52,0.08);
  --accent:#9a7536;
  --accent-deep:#6f5223;
  --accent-warm:#c2a36a;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --maxw:1140px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;letter-spacing:-0.01em;line-height:1.12;margin:0;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.eyebrow{font-size:12.5px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent-deep);}
.num{font-size:12.5px;font-weight:600;letter-spacing:0.16em;color:var(--accent-deep);}
.serif{font-family:var(--serif);}
.center{text-align:center;}
.lead{font-size:20px;color:var(--ink-soft);line-height:1.6;}

/* Header */
header{position:sticky;top:0;z-index:50;background:rgba(247,244,236,0.88);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;justify-content:space-between;min-height:70px;gap:18px;flex-wrap:wrap;}
.brand{font-family:var(--serif);font-size:25px;font-weight:500;letter-spacing:0.01em;text-decoration:none;color:var(--ink);line-height:1;}
.brand .dot{color:var(--accent);}
.brand small{display:block;font-family:var(--sans);font-size:9px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--ink-soft);margin-top:2px;}
nav.links{display:flex;gap:26px;align-items:center;flex-wrap:wrap;}
nav.links a{font-size:14.5px;text-decoration:none;color:var(--ink-soft);transition:color .15s;}
nav.links a:hover{color:var(--ink);}
nav.links a.active{color:var(--ink);border-bottom:2px solid var(--accent);padding-bottom:3px;}
.nav-cta{font-size:14px;font-weight:500;text-decoration:none;color:var(--ink);border:1px solid var(--ink);border-radius:2px;padding:8px 15px;transition:.18s;}
.nav-cta:hover{background:var(--ink);color:var(--paper);}

/* Buttons */
.btn{display:inline-block;background:var(--ink);color:var(--paper);text-decoration:none;font-size:15px;font-weight:500;padding:14px 26px;border-radius:2px;transition:.18s;}
.btn:hover{background:#0f1525;}
.btn-ghost{display:inline-block;text-decoration:none;font-size:15px;color:var(--ink);border-bottom:1px solid var(--accent);padding-bottom:3px;transition:.18s;}
.btn-ghost:hover{color:var(--accent-deep);}

/* Hero (home) */
.hero{padding:92px 0 76px;border-bottom:1px solid var(--line);}
.hero h1{font-size:clamp(38px,5.8vw,66px);max-width:16ch;margin-top:22px;}
.hero h1 em{font-style:italic;color:var(--accent-deep);}
.hero .lede{max-width:60ch;margin-top:28px;font-size:20px;color:var(--ink-soft);line-height:1.6;}
.hero-meta{display:flex;flex-wrap:wrap;gap:16px 30px;margin-top:38px;align-items:center;}
.credline{font-size:14px;color:var(--ink-soft);max-width:60ch;margin-top:32px;}
.credline b{color:var(--ink);font-weight:600;}

/* Interior page header */
.page-head{padding:74px 0 46px;border-bottom:1px solid var(--line);}
.page-head h1{font-size:clamp(34px,5vw,56px);max-width:18ch;margin-top:16px;}
.page-head h1 em{font-style:italic;color:var(--accent-deep);}
.page-head .standfirst{max-width:62ch;margin-top:22px;font-size:19px;color:var(--ink-soft);line-height:1.6;}

/* Sections */
section{padding:74px 0;border-bottom:1px solid var(--line);}
.sec-head{display:flex;gap:18px;align-items:baseline;margin-bottom:36px;}
.sec-head h2{font-size:clamp(26px,3.4vw,38px);}
.sec-head .num{padding-top:8px;white-space:nowrap;}
.prose p{max-width:64ch;margin:0 0 18px;}
.prose p:last-child{margin-bottom:0;}

/* Dark thesis band */
.band{background:var(--ink);color:#eef0f5;border-bottom:none;}
.band .eyebrow{color:var(--accent-warm);}
.band blockquote{font-family:var(--serif);font-size:clamp(26px,3.6vw,42px);line-height:1.3;margin:18px 0 0;max-width:24ch;font-weight:400;}
.band blockquote em{font-style:italic;color:#d8bd8a;}
.band .cols{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:42px;}
.band p{color:#c7cbd6;font-size:16.5px;margin:0 0 16px;max-width:52ch;}
.band p:last-child{margin-bottom:0;}
.latin{font-family:var(--serif);font-style:italic;color:var(--accent-warm);}

/* Credibility strip */
.cred-strip{background:var(--paper-2);border-bottom:1px solid var(--line);}
.cred-strip .wrap{padding-top:30px;padding-bottom:30px;}
.cred-strip .label{font-size:12px;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:14px;}
.journals{display:flex;flex-wrap:wrap;gap:10px 26px;align-items:center;}
.journals span{font-family:var(--serif);font-size:19px;color:var(--ink);}
.journals .sep{color:var(--accent);font-size:14px;}

/* Service grid */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);}
.svc{padding:32px 0;border-bottom:1px solid var(--line);}
.svc:nth-child(odd){padding-right:48px;border-right:1px solid var(--line);}
.svc:nth-child(even){padding-left:48px;}
.svc .tag{font-size:12px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:12px;}
.svc h3{font-size:23px;margin-bottom:10px;}
.svc p{margin:0 0 12px;color:var(--ink-soft);font-size:15.5px;line-height:1.6;}
.svc .deliver{font-size:13.5px;color:var(--ink);}
.svc .deliver b{color:var(--accent-deep);font-weight:600;letter-spacing:0.04em;}

/* Cards row (teasers) */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.card{display:block;text-decoration:none;background:var(--card);border:1px solid var(--line);border-radius:4px;padding:26px 28px;transition:.18s;}
.card:hover{border-color:var(--accent);transform:translateY(-2px);}
.card .k{font-size:12px;font-weight:600;letter-spacing:0.13em;text-transform:uppercase;color:var(--accent-deep);}
.card h3{font-size:21px;margin:10px 0 8px;}
.card p{margin:0;color:var(--ink-soft);font-size:15px;line-height:1.55;}
.card .more{display:inline-block;margin-top:14px;font-size:14px;color:var(--accent-deep);border-bottom:1px solid var(--accent);padding-bottom:2px;}

/* Programme blocks */
.prog{border-top:2px solid var(--ink);padding:34px 0 38px;border-bottom:1px solid var(--line);}
.prog:last-child{border-bottom:none;}
.prog .top{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;}
.prog .sector{font-size:12px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent-deep);}
.prog h2{font-size:clamp(24px,3vw,32px);margin:6px 0 0;max-width:24ch;}
.prog .pcols{display:grid;grid-template-columns:1.3fr 1fr;gap:44px;margin-top:22px;}
.prog .pcols p{margin:0 0 14px;color:var(--ink-soft);font-size:15.5px;line-height:1.62;}
.prog .pcols p b{color:var(--ink);font-weight:600;}
.anchor{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:0 4px 4px 0;padding:20px 22px;}
.anchor .h{font-size:11.5px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:10px;}
.anchor ul{margin:0;padding-left:18px;}
.anchor li{font-size:14px;color:var(--ink);margin-bottom:8px;line-height:1.5;}
.anchor li b{color:var(--ink);font-weight:600;}

/* Sectors */
.sectors{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.sector{border-top:2px solid var(--accent);padding-top:16px;}
.sector h3{font-size:18px;margin-bottom:8px;}
.sector p{font-size:14.5px;color:var(--ink-soft);margin:0;line-height:1.55;}

/* People */
.people{display:grid;grid-template-columns:1fr 1fr;gap:46px;}
.person{}
.portrait{position:relative;width:100%;aspect-ratio:5/6;background:var(--ink);border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-bottom:22px;}
.portrait img{width:100%;height:100%;object-fit:cover;}
.portrait .mono{position:absolute;inset:0;display:none;align-items:center;justify-content:center;font-family:var(--serif);font-size:88px;color:var(--accent-warm);}
.portrait.noimg .mono{display:flex;}
.person .pname{font-family:var(--serif);font-size:28px;font-weight:500;margin-bottom:4px;}
.person .role{font-size:12.5px;font-weight:600;letter-spacing:0.13em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:18px;}
.person p{font-size:15.5px;color:var(--ink-soft);line-height:1.62;margin:0 0 14px;}
.person p b{color:var(--ink);font-weight:600;}
.person .affil{font-size:13.5px;color:var(--ink);border-top:1px solid var(--line);padding-top:14px;margin-top:18px;line-height:1.55;}
.person .affil b{font-weight:600;}

/* Publications */
.pub-group{margin-bottom:14px;}
.pub-group > .gh{display:flex;gap:14px;align-items:baseline;margin:8px 0 18px;}
.pub-group .gh h3{font-size:22px;}
.pub-group .gh span{font-size:13px;color:var(--ink-soft);}
.feature{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:22px 24px;margin-bottom:14px;display:block;text-decoration:none;transition:.16s;}
.feature:hover{border-color:var(--accent);}
.badge{display:inline-block;font-size:11px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:#fff;background:var(--accent-deep);padding:3px 10px;border-radius:2px;margin-bottom:12px;}
.badge.alt{background:var(--ink);}
.feature .ft{font-family:var(--serif);font-size:20px;line-height:1.3;color:var(--ink);margin-bottom:6px;}
.feature .fa{font-size:14px;color:var(--ink-soft);}
.feature.linked .ft::after{content:" ↗";font-size:13px;color:var(--accent);}
.pub{display:block;text-decoration:none;padding:16px 0;border-bottom:1px solid var(--line-soft);transition:.15s;}
.pub:hover{padding-left:8px;}
.pub .venue{font-size:12px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent-deep);}
.pub .ptitle{font-family:var(--serif);font-size:17.5px;line-height:1.3;margin:4px 0 2px;color:var(--ink);}
.pub .pmeta{font-size:13px;color:var(--ink-soft);}
.pub.linked .ptitle::after{content:" ↗";font-size:12px;color:var(--accent);}

/* Process steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.step .sn{font-family:var(--serif);font-size:32px;color:var(--accent);line-height:1;}
.step h3{font-size:19px;margin:12px 0 6px;}
.step p{font-size:14.5px;color:var(--ink-soft);margin:0;line-height:1.55;}

/* Formats */
.formats{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.fmt{border:1px solid var(--line);border-radius:4px;padding:24px 22px;background:var(--card);}
.fmt .fnum{font-family:var(--serif);font-size:30px;color:var(--accent);line-height:1;}
.fmt h3{font-size:18px;margin:14px 0 6px;}
.fmt p{font-size:14px;color:var(--ink-soft);margin:0;line-height:1.5;}

/* Contact */
.contact-band{background:var(--paper-2);border-bottom:none;}
.cwrap{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center;}
.cwrap h2{font-size:clamp(28px,3.6vw,42px);max-width:15ch;}
.email{font-family:var(--serif);font-size:clamp(20px,2.6vw,28px);text-decoration:none;border-bottom:2px solid var(--accent);padding-bottom:4px;display:inline-block;color:var(--ink);}
.where{font-size:14px;color:var(--ink-soft);margin-top:22px;}

/* CTA band */
.cta{background:var(--ink);color:#eef0f5;border-bottom:none;text-align:center;}
.cta h2{font-size:clamp(28px,3.6vw,40px);max-width:20ch;margin:0 auto 22px;color:#fff;}
.cta .btn{background:var(--paper);color:var(--ink);}
.cta .btn:hover{background:#fff;}

/* Footer */
footer{background:var(--ink);color:#c7cbd6;padding:56px 0 30px;}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:34px;}
footer .brand{color:#fff;font-size:24px;}
footer .brand .dot{color:var(--accent-warm);}
.foot-tag{font-size:14.5px;color:#aab0c0;margin:12px 0 6px;max-width:34ch;}
.foot-latin{font-family:var(--serif);font-style:italic;color:var(--accent-warm);font-size:15px;}
footer h4{font-size:12px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:#8b93a7;margin-bottom:14px;font-family:var(--sans);}
footer a{color:#c7cbd6;text-decoration:none;font-size:14.5px;display:block;margin-bottom:9px;transition:.15s;}
footer a:hover{color:#fff;}
.foot-base{border-top:1px solid rgba(255,255,255,0.12);margin-top:40px;padding-top:22px;font-size:12.5px;color:#8b93a7;}

@media(max-width:900px){
  .foot-grid{grid-template-columns:1fr 1fr;gap:28px;}
  .sectors{grid-template-columns:repeat(2,1fr);gap:28px 24px;}
  .steps,.formats{grid-template-columns:repeat(2,1fr);}
  .prog .pcols{grid-template-columns:1fr;gap:24px;}
}
@media(max-width:760px){
  .wrap{padding:0 22px;}
  nav.links{gap:16px;}
  .brand small{display:none;}
  .svc-grid,.cards,.people{grid-template-columns:1fr;}
  .svc,.svc:nth-child(odd),.svc:nth-child(even){padding:26px 0;border-right:none;padding-left:0;padding-right:0;}
  .band .cols,.cwrap{grid-template-columns:1fr;gap:24px;}
}
@media(max-width:520px){
  .sectors,.steps,.formats,.foot-grid{grid-template-columns:1fr;}
}


/* ---- Visibility components (added) ---- */
.hero-grid{display:grid;grid-template-columns:1.25fr 0.9fr;gap:48px;align-items:center;}
.hero-art{padding:6px 0;}
.hero-art svg{width:100%;height:auto;max-height:300px;}
@media(max-width:860px){.hero-grid{grid-template-columns:1fr;} .hero-art{display:none;}}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.stat .v{font-family:var(--serif);font-weight:500;font-size:clamp(30px,4vw,46px);color:var(--ink);line-height:1;}
.stat .l{font-size:13.5px;color:var(--ink-soft);margin-top:10px;line-height:1.45;max-width:22ch;}
@media(max-width:680px){.stats{grid-template-columns:repeat(2,1fr);gap:26px 20px;}}

.figure{margin:0;}
.figure svg{width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:6px;background:var(--card);padding:10px;}
.figcaption{font-size:13px;color:var(--ink-soft);margin:10px 0 0;line-height:1.5;}
.figcaption b{color:var(--accent-deep);font-weight:600;}
.fig-2{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;}
@media(max-width:760px){.fig-2{grid-template-columns:1fr;gap:24px;}}

.insights-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:820px){.insights-grid{grid-template-columns:1fr;}}
.article{padding:38px 0;border-bottom:1px solid var(--line);}
.article:last-child{border-bottom:none;}
.article .meta{font-size:12px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent-deep);margin-bottom:10px;}
.article h2{font-size:clamp(24px,3vw,32px);max-width:26ch;}
.article .body{display:grid;grid-template-columns:1.05fr 1fr;gap:44px;align-items:center;margin-top:22px;}
.article .body > div:first-child p{margin:0 0 14px;color:var(--ink-soft);font-size:15.5px;line-height:1.66;}
.article .body > div:first-child p:last-child{margin-bottom:0;}
@media(max-width:820px){.article .body{grid-template-columns:1fr;gap:22px;}}
