/* ===========================================================
   ERA — shared design system
   Fraunces (display) · Inter (UI) · IBM Plex Mono (micro-labels)
   =========================================================== */
:root{
  --bordeaux:#5B1A2B; --bordeaux-deep:#421321; --gold:#7E5C2B; --gold-soft:#C6A56A;
  --paper:#FBFAF6; --panel:#F4EEE3; --cream:#EFE8DA;
  --ink:#1C1714; --ink-soft:#564E46; --ink-faint:#675E52;
  --line:#E3DBCC; --line-soft:#EFE9DC; --white:#fff;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --brand:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --descr:'Libre Franklin','Inter',system-ui,sans-serif;
  --sans:'Inter',system-ui,-apple-system,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,monospace;
  --wrap:1240px; --pad:44px;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;font-optical-sizing:auto;}
h1,h2,h3,h4,p{margin:0;}
.hero h1,.phero h1,.shead h2,.conf .big,.contact h2,.cta h2,.position .lede,.mission .stmt{font-variation-settings:'opsz' 144;font-feature-settings:'liga' 1,'dlig' 1;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;}
::selection{background:var(--bordeaux);color:#fff;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad);}
.skip-link{position:fixed;left:14px;top:14px;z-index:200;background:var(--bordeaux);color:#fff;
  padding:10px 14px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  transform:translateY(-140%);transition:transform .2s ease;}
.skip-link:focus{transform:none;outline:2px solid var(--gold-soft);outline-offset:2px;}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px;}
.drawer[inert]{pointer-events:none;}

/* ---- shared atoms ---- */
.mono{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;}
.tag{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);display:inline-flex;align-items:center;gap:9px;}
.tag::before{content:"";width:18px;height:1px;background:var(--gold);display:inline-block;}
.serif{font-family:var(--serif);}
.arrow{font-family:var(--mono);font-style:normal;}

.a-line{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--bordeaux);
  display:inline-flex;align-items:center;gap:10px;border-bottom:1px solid transparent;padding-bottom:3px;transition:border-color .25s,gap .25s;}
.a-line:hover{border-color:var(--bordeaux);gap:15px;}
.a-quiet{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);transition:color .2s;}
.a-quiet:hover{color:var(--ink);}

/* ============ TOP UTILITY BAR ============ */
.util{border-bottom:1px solid var(--line);background:var(--paper);}
.util .wrap{display:flex;justify-content:space-between;align-items:center;height:38px;}
.util .loc{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);}
.util .loc b{color:var(--ink-soft);font-weight:500;}
.lang{display:flex;align-items:center;gap:7px;}
.lang button{background:none;border:0;cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.14em;
  color:var(--ink-faint);padding:2px 0;transition:color .2s;}
.lang button.active{color:var(--bordeaux);}
.lang button:not([disabled]):hover{color:var(--ink);}
.lang button[disabled]{color:var(--line);cursor:default;}
.lang a{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--ink-faint);
  padding:2px 0;text-decoration:none;transition:color .2s;}
.lang a:hover{color:var(--ink);}
.lang .sep{color:var(--line);font-size:10px;}
.mlang{display:none;}  /* mobile-only language switch lives in the masthead row */

/* ============ MASTHEAD ============ */
.masthead{position:sticky;top:0;z-index:60;background:rgba(251,250,246,.92);backdrop-filter:saturate(1.1) blur(8px);border-bottom:1px solid var(--line);}
.mast-row{display:flex;align-items:center;justify-content:space-between;height:78px;}
.brand{display:inline-flex;flex-direction:row;align-items:center;gap:11px;text-decoration:none;}
.brand .crest{flex:none;width:auto;height:52px;display:block;}
.brand .lock{display:flex;flex-direction:column;align-items:flex-start;gap:3px;}
.brand .mk{font-family:var(--brand);font-weight:600;font-size:28px;letter-spacing:.05em;color:var(--bordeaux);line-height:1;}
.brand .bsub{font-family:var(--descr);font-weight:600;font-size:8px;letter-spacing:.32em;text-transform:uppercase;color:var(--bordeaux);opacity:.92;line-height:1;}
nav.primary{display:flex;align-items:center;gap:30px;}
nav.primary a{font-family:var(--sans);font-size:13.5px;font-weight:500;letter-spacing:.01em;color:var(--ink-soft);
  position:relative;padding:4px 0;transition:color .2s;}
nav.primary a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1px;background:var(--bordeaux);transition:right .28s ease;}
nav.primary a:hover{color:var(--ink);}
nav.primary a:hover::after,nav.primary a.active::after,nav.primary a[aria-current="page"]::after{right:0;}
nav.primary a.active,nav.primary a[aria-current="page"]{color:var(--bordeaux);}
.menu-btn{display:none;}
.drawer{display:none;}

/* ============ HERO (home) ============ */
.hero{padding:78px 0 0;position:relative;overflow:hidden;}
.hero .wrap{display:grid;grid-template-columns:1.16fr .84fr;gap:64px;align-items:end;}
.hero .lead{padding-bottom:18px;}
.hero h1{font-family:var(--serif);font-weight:330;font-size:clamp(44px,5.6vw,80px);line-height:1.0;letter-spacing:-.018em;
  color:var(--ink);margin:26px 0 0;text-wrap:balance;}
.hero h1 em{font-style:italic;color:var(--bordeaux);font-weight:380;}
.hero .lede{font-size:18.5px;line-height:1.58;color:var(--ink-soft);max-width:33em;margin-top:30px;}
.hero .acts{display:flex;align-items:center;gap:30px;margin-top:38px;}
.hero .wrap{position:relative;z-index:1;}
.hero .contour{position:absolute;top:-40px;right:0;width:64%;height:118%;opacity:.6;pointer-events:none;z-index:0;
  mask-image:linear-gradient(90deg,transparent 0,#000 42%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 42%);}
.hero .fig{position:relative;}
.plate{position:relative;margin:0;aspect-ratio:4/5;overflow:hidden;background:var(--panel);}
.plate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  filter:saturate(.88) contrast(1.05);transition:transform 1.2s cubic-bezier(.2,.5,.2,1);}
.plate:hover img{transform:scale(1.035);}
/* Hero photo: continuous cinematic Ken Burns; reduced-motion users get a still. */
.hero .plate img{animation:kenburns 20s ease-in-out infinite alternate;}
@keyframes kenburns{
  0%{transform:scale(1.05) translate3d(0,0,0);}
  100%{transform:scale(1.15) translate3d(-2.6%,-2.2%,0);}
}
/* cinematic bordeaux duotone grade (per brand book) — sits above image, below frame/text */
.plate::after,.spec .splate::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(176deg,rgba(91,26,43,.12),rgba(54,15,26,.20));mix-blend-mode:multiply;}
.plate .scrim{z-index:2;}
.plate .frame,.plate .cap,.spec .splate .frame{z-index:3;}
.plate .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,23,20,0) 52%,rgba(28,23,20,.6));}
.plate .frame{position:absolute;inset:14px;border:1px solid rgba(255,255,255,.34);pointer-events:none;}
.plate .frame::before,.plate .frame::after,.splate .frame::before,.splate .frame::after{content:"";position:absolute;width:9px;height:9px;border:1px solid rgba(255,255,255,.88);}
.plate .frame::before,.splate .frame::before{top:-1px;left:-1px;border-right:0;border-bottom:0;}
.plate .frame::after,.splate .frame::after{right:-1px;bottom:-1px;border-left:0;border-top:0;}
.plate .cap{position:absolute;left:24px;bottom:20px;right:24px;font-family:var(--mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.92);}
.plate .tick{position:absolute;top:24px;left:24px;z-index:2;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.82);}

/* ============ DOSSIER BAND ============ */
.dossier{margin-top:74px;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);}
.dossier .wrap{display:grid;grid-template-columns:repeat(4,1fr);}
.dcell{padding:24px 30px 26px;border-right:1px solid var(--line);}
.dcell:first-child{padding-left:0;}
.dcell:last-child{border-right:0;padding-right:0;}
.dcell .k{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);}
.dcell .v{font-family:var(--serif);font-size:21px;font-weight:430;color:var(--ink);margin-top:9px;line-height:1.18;}
.dcell .v em{font-style:italic;color:var(--bordeaux);}

/* ============ PAGE HERO (inner pages) ============ */
.phero{padding:62px 0 56px;border-bottom:1px solid var(--line);position:relative;overflow:hidden;}
.phero .crumb{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:24px;}
.phero .crumb a{color:var(--ink-faint);} .phero .crumb a:hover{color:var(--bordeaux);}
.phero .crumb .sl{color:var(--line);padding:0 8px;}
.phero .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:end;}
.phero h1{font-family:var(--serif);font-weight:330;font-size:clamp(40px,5vw,68px);line-height:1.02;letter-spacing:-.018em;color:var(--ink);margin-top:18px;text-wrap:balance;}
.phero h1 em{font-style:italic;color:var(--bordeaux);font-weight:370;}
.phero .lede{font-size:18px;line-height:1.58;color:var(--ink-soft);max-width:34em;}
.phero.solo .grid{grid-template-columns:1fr;}
.phero.solo .lede{margin-top:26px;max-width:40em;}

/* ============ generic section header ============ */
section{position:relative;}
.shead{display:grid;grid-template-columns:1fr 1.5fr;gap:48px;align-items:start;padding-top:18px;margin-bottom:40px;}
.shead h2{font-family:var(--serif);font-weight:360;font-size:clamp(30px,3.5vw,46px);line-height:1.05;letter-spacing:-.012em;color:var(--ink);text-wrap:balance;}
.shead h2 em{font-style:italic;color:var(--bordeaux);}
.shead .note{font-size:16.5px;color:var(--ink-soft);line-height:1.6;max-width:40em;margin-top:18px;}
.sec{padding:84px 0;}
.sec.tint{background:var(--panel);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.sec.tight{padding:64px 0;}

/* ============ POSITIONING + PILLARS ============ */
.position .lede{font-family:var(--serif);font-weight:360;font-size:clamp(24px,2.7vw,33px);line-height:1.34;color:var(--ink);max-width:21em;text-wrap:pretty;}
.position .lede em{font-style:italic;color:var(--bordeaux);}
.position .ctext{font-family:var(--sans);font-weight:400;font-size:clamp(17px,1.5vw,20px);line-height:1.62;color:var(--ink-soft);max-width:46em;text-wrap:pretty;}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);margin-top:64px;border-top:2px solid var(--bordeaux);}
.pillar{padding:34px 32px 8px;border-right:1px solid var(--line);}
.pillar:first-child{padding-left:0;}
.pillar:last-child{border-right:0;padding-right:0;}
.pillar .pno{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--gold);}
.pillar h3{font-family:var(--serif);font-weight:420;font-size:24px;line-height:1.16;margin:16px 0 12px;color:var(--ink);}
.pillar p{font-size:15.5px;line-height:1.56;color:var(--ink-soft);}

/* ============ MISSION + VALUES ============ */
.mission .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:72px;align-items:start;}
.mission .stmt{font-family:var(--serif);font-weight:340;font-size:clamp(26px,3vw,38px);line-height:1.28;color:var(--ink);text-wrap:pretty;}
.mission .stmt em{font-style:italic;color:var(--bordeaux);}
.mlist{list-style:none;margin:34px 0 0;padding:0;}
.mlist li{display:flex;gap:18px;padding:17px 0;border-top:1px solid var(--line);font-size:16px;color:var(--ink-soft);line-height:1.5;}
.mlist li:first-child{border-top:0;}
.mlist .mi{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--gold);padding-top:4px;flex:none;width:26px;}
.values{border-top:1px solid var(--ink);padding-top:8px;}
.values .vh{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);padding:14px 0;}
.vrow{display:grid;grid-template-columns:.5fr 1fr;gap:20px;padding:18px 0;border-top:1px solid var(--line);}
.vrow .vt{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--bordeaux);}
.vrow .vd{font-size:14.5px;color:var(--ink-soft);line-height:1.5;}

/* ============ PROGRAMMES INDEX ============ */
.pindex{border-top:2px solid var(--bordeaux);}
a.prow{display:grid;grid-template-columns:130px 1fr 1.25fr 40px;gap:30px;align-items:baseline;
  padding:28px 4px 26px;border-bottom:1px solid var(--line);transition:background .22s,padding-left .22s;}
a.prow:hover{background:var(--panel);padding-left:14px;}
a.prow .pcode{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);}
a.prow h3{font-family:var(--serif);font-weight:420;font-size:26px;line-height:1.12;color:var(--ink);}
a.prow p{font-size:15px;color:var(--ink-soft);line-height:1.5;}
a.prow .go{font-family:var(--mono);font-size:18px;color:var(--ink-faint);justify-self:end;transition:transform .25s,color .25s;}
a.prow:hover .go{color:var(--bordeaux);transform:translateX(5px);}

/* ============ RESEARCH (signature contour motif) ============ */
.research{background:var(--bordeaux);color:#F3E8DC;overflow:hidden;}
.research .contour{position:absolute;inset:0;width:100%;height:100%;opacity:.16;pointer-events:none;}
.research .wrap{position:relative;z-index:1;}
.research .shead h2{color:#fff;} .research .shead h2 em{color:var(--gold-soft);}
.research .shead .note{color:#E7D6C7;}
.research .tag{color:var(--gold-soft);} .research .tag::before{background:var(--gold-soft);}
.rgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16);margin-top:8px;}
.rarea{background:var(--bordeaux);padding:32px 34px 34px;}
.rarea .rno{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;color:var(--gold-soft);}
.rarea h3{font-family:var(--serif);font-weight:400;font-size:23px;color:#fff;margin:14px 0 16px;line-height:1.12;}
.rarea ul{list-style:none;margin:0;padding:0;}
.rarea li{font-family:var(--sans);font-size:14px;color:#E7D6C7;padding:7px 0;border-top:1px solid rgba(255,255,255,.12);line-height:1.45;}
.rarea li:first-child{border-top:0;}
.rnote{margin-top:38px;font-size:14.5px;color:#E2CFC0;max-width:46em;line-height:1.6;}
.rnote b{color:#fff;font-weight:500;}
.research .a-line{color:#fff;} .research .a-line:hover{border-color:var(--gold-soft);}

/* ============ SPECIMENS (internships) ============ */
.specimens{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;}
.spec .splate{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--panel);}
.spec .splate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
  filter:saturate(.88) contrast(1.05);transition:transform 1.1s cubic-bezier(.2,.5,.2,1);}
.spec:hover .splate img{transform:scale(1.04);}
.spec .splate .frame{position:absolute;inset:12px;z-index:3;border:1px solid rgba(255,255,255,.3);}
.spec .meta{display:flex;align-items:baseline;justify-content:space-between;margin-top:18px;padding-bottom:12px;border-bottom:1px solid var(--line);}
.spec .place{font-family:var(--serif);font-weight:430;font-size:23px;color:var(--ink);}
.spec .coord{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--ink-faint);}
.spec .desc{font-size:14.5px;color:var(--ink-soft);line-height:1.5;margin-top:14px;}

/* ============ CONFERENCE ============ */
.conf .grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.conf .big{font-family:var(--serif);font-weight:330;font-size:clamp(30px,3.6vw,48px);line-height:1.1;letter-spacing:-.01em;color:var(--ink);text-wrap:balance;}
.conf .big em{font-style:italic;color:var(--bordeaux);}
.conf .ks{list-style:none;margin:0;padding:0;}
.conf .ks li{display:flex;gap:16px;padding:15px 0;border-top:1px solid var(--line);font-size:15.5px;color:var(--ink-soft);}
.conf .ks li:first-child{border-top:0;}
.conf .ks .kc{font-family:var(--mono);font-size:11px;color:var(--gold);flex:none;width:22px;padding-top:3px;}

/* ============ PARTNERS ============ */
.pcats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);}
.pcat{padding:26px 24px 30px;border-right:1px solid var(--line);}
.pcat:first-child{padding-left:0;}
.pcat:last-child{border-right:0;padding-right:0;}
.pcat .pc-k{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);}
.pcat h3{font-family:var(--serif);font-weight:420;font-size:20px;margin:13px 0 8px;color:var(--ink);}
.pcat h3:first-child{margin-top:0;}
.pcat p{font-size:14px;color:var(--ink-soft);line-height:1.5;}
.phase{margin-top:42px;padding:26px 30px;background:var(--panel);border-left:2px solid var(--bordeaux);display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;}
.phase .pt{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--ink);max-width:30em;line-height:1.35;}
.phase .pt b{font-style:normal;font-weight:430;color:var(--bordeaux);}

/* ============ NEWS / INSIGHTS ============ */
.news .grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start;}
.news .kinds{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink);}
.news .kinds li{padding:18px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:21px;color:var(--ink);display:flex;justify-content:space-between;align-items:baseline;gap:20px;}
.news .kinds li span{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);}
.notify{margin-top:30px;}
.notify label{font-size:15px;color:var(--ink-soft);display:block;margin-bottom:14px;}
.notify .field{display:flex;border:1px solid var(--ink);}
.notify input{flex:1;min-width:0;border:0;background:none;padding:14px 16px;font-family:var(--sans);font-size:15px;color:var(--ink);outline:none;}
.notify input::placeholder{color:var(--ink-faint);}
.notify button{border:0;background:var(--bordeaux);color:#fff;padding:0 24px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:background .2s;}
.notify button:hover{background:var(--bordeaux-deep);}

/* ============ CONTACT (band) ============ */
.contact{background:var(--bordeaux);color:#F3E8DC;}
.contact .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:72px;align-items:start;}
.contact .tag{color:var(--gold-soft);} .contact .tag::before{background:var(--gold-soft);}
.contact h2{font-family:var(--serif);font-weight:330;font-size:clamp(32px,4vw,54px);line-height:1.04;color:#fff;letter-spacing:-.012em;margin-top:18px;text-wrap:balance;}
.contact h2 em{font-style:italic;color:var(--gold-soft);}
.contact .lede{color:#E7D6C7;font-size:17px;line-height:1.6;margin-top:24px;max-width:32em;}
.cinfo .row{padding:18px 0;border-top:1px solid rgba(255,255,255,.18);}
.cinfo .row:first-child{border-top:0;}
.cinfo .ck{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-soft);}
.cinfo .cv{font-family:var(--serif);font-size:21px;color:#fff;margin-top:7px;}
.cinfo a.cv:hover{color:var(--gold-soft);}
.contact .a-line{color:#fff;} .contact .a-line:hover{border-color:var(--gold-soft);}

/* ============ CONTACT FORM ============ */
.form{display:grid;gap:22px;}
.form .frow{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.form .fld{display:flex;flex-direction:column;gap:8px;}
.form label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);}
.form input,.form select,.form textarea{border:0;border-bottom:1px solid var(--ink);background:none;padding:11px 2px;
  font-family:var(--sans);font-size:16px;color:var(--ink);outline:none;transition:border-color .2s;}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--bordeaux);}
.form textarea{min-height:130px;resize:vertical;}
.form .consent{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:var(--ink-soft);line-height:1.5;}
.form .consent input{flex:none;width:16px;height:16px;margin-top:3px;}
.form .submit{justify-self:start;border:0;background:var(--bordeaux);color:#fff;padding:15px 34px;font-family:var(--mono);
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:background .2s;}
.form .submit:hover{background:var(--bordeaux-deep);}
.form .submit:disabled,.notify button:disabled{cursor:wait;opacity:.72;}
.form .spam{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--ink-faint);}
.form-status{font-family:var(--sans);font-size:14px;line-height:1.5;margin-top:14px;min-height:1px;}
.form-status:empty{margin-top:0;}
.form-status.ok{color:var(--bordeaux);}
.form-status.err{color:#9a2b2b;}
.notify .form-status{margin-top:12px;}

/* ============ LONG-FORM / LEGAL PROSE ============ */
.doc{display:grid;grid-template-columns:230px 1fr;gap:64px;align-items:start;}
.doc .toc{position:sticky;top:118px;}
.doc .toc .th{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:16px;}
.doc .toc ol{list-style:none;margin:0;padding:0;counter-reset:t;}
.doc .toc li{counter-increment:t;margin-bottom:11px;}
.doc .toc a{font-size:13.5px;color:var(--ink-soft);display:flex;gap:10px;transition:color .2s;}
.doc .toc a::before{content:counter(t,decimal-leading-zero);font-family:var(--mono);font-size:10px;color:var(--gold);padding-top:2px;}
.doc .toc a:hover{color:var(--bordeaux);}
.prose{max-width:46em;}
.prose .updated{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);
  padding-bottom:22px;margin-bottom:30px;border-bottom:1px solid var(--line);}
.prose h2{font-family:var(--serif);font-weight:430;font-size:26px;color:var(--ink);margin:46px 0 16px;line-height:1.15;display:flex;gap:14px;align-items:baseline;}
.prose h2:first-of-type{margin-top:0;}
.prose h2 .hn{font-family:var(--mono);font-size:12px;color:var(--gold);font-weight:500;}
.prose h3{font-family:var(--serif);font-weight:500;font-size:19px;color:var(--ink);margin:28px 0 10px;}
.prose p{font-size:16px;color:var(--ink-soft);line-height:1.66;margin:0 0 16px;}
.prose ul{margin:0 0 16px;padding-left:0;list-style:none;}
.prose ul li{font-size:16px;color:var(--ink-soft);line-height:1.6;padding:0 0 9px 26px;position:relative;}
.prose ul li::before{content:"—";position:absolute;left:0;color:var(--gold);}
.prose a{color:var(--bordeaux);border-bottom:1px solid var(--line);}
.prose a:hover{border-color:var(--bordeaux);}
.prose table{width:100%;border-collapse:collapse;margin:8px 0 22px;}
.prose th,.prose td{text-align:left;font-size:14px;padding:12px 14px;border:1px solid var(--line);vertical-align:top;color:var(--ink-soft);}
.prose th{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--panel);}

/* ============ CTA band ============ */
.cta{background:var(--ink);color:#EFE6DC;}
.cta .wrap{padding:74px var(--pad);display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap;}
.cta h2{font-family:var(--serif);font-weight:340;font-size:clamp(28px,3.4vw,42px);line-height:1.08;color:#fff;max-width:16em;text-wrap:balance;}
.cta h2 em{font-style:italic;color:var(--gold-soft);}
.cta .a-line{color:#fff;} .cta .a-line:hover{border-color:var(--gold-soft);}

/* ============ FOOTER ============ */
footer.site{background:var(--paper);border-top:1px solid var(--line);}
footer.site .top{padding:70px 0 54px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;}
footer.site .fmark{display:inline-flex;flex-direction:column;align-items:flex-start;gap:12px;}
footer.site .fcrest{width:auto;height:62px;display:block;}
footer.site .word{font-family:var(--brand);font-weight:600;font-size:42px;letter-spacing:.05em;color:var(--bordeaux);line-height:1;}
footer.site .fdescr{font-family:var(--descr);font-weight:600;font-size:9px;letter-spacing:.34em;text-transform:uppercase;color:var(--bordeaux);opacity:.9;}
footer.site .col-h{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:18px;}
footer.site .fdesc{font-size:14px;color:var(--ink-soft);line-height:1.55;margin-top:16px;max-width:26em;}
footer.site ul{list-style:none;margin:0;padding:0;}
footer.site ul li{margin-bottom:11px;font-size:14px;color:var(--ink-soft);}
footer.site ul li.soon{color:var(--ink-faint);font-style:italic;}
footer.site ul a{font-size:14px;color:var(--ink-soft);transition:color .2s;}
footer.site ul a:hover{color:var(--bordeaux);}
footer.site .bottom{border-top:1px solid var(--line);}
footer.site .bottom .wrap{display:flex;justify-content:space-between;align-items:center;padding:22px var(--pad);gap:20px;flex-wrap:wrap;}
footer.site .copy{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--ink-faint);}
footer.site .legal{display:flex;gap:24px;flex-wrap:wrap;}
footer.site .legal a{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);transition:color .2s;}
footer.site .legal a:hover{color:var(--bordeaux);}

/* ============ PROGRAMMES — detail rows ============ */
.pdetail{display:grid;grid-template-columns:150px 1fr 1.3fr;gap:36px;padding:40px 0;border-top:1px solid var(--line);}
.pdetail.first{border-top:2px solid var(--bordeaux);}
.pdetail h3{font-family:var(--serif);font-weight:420;font-size:30px;line-height:1.08;color:var(--ink);}
.pdetail .pintro{margin-top:14px;color:var(--ink-soft);font-size:15.5px;line-height:1.55;}
.pdetail .sub{padding:14px 0;border-top:1px solid var(--line);}
.pdetail .sub .st{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;}
.pdetail .sub .sd{font-size:15px;color:var(--ink-soft);line-height:1.55;}

/* ============ SCHOLARSHIPS — two tracks ============ */
.tracks{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--bordeaux);}
.tracks .trk{padding:38px 40px 34px;}
.tracks .trk:first-child{padding-left:0;border-right:1px solid var(--line);}
.tracks .trk:last-child{padding-right:0;}
.tracks h3{font-family:var(--serif);font-weight:420;font-size:28px;line-height:1.1;color:var(--ink);margin:16px 0 12px;}
.tracks p{color:var(--ink-soft);font-size:15.5px;line-height:1.6;}

/* ============ CONTACT — form + info ============ */
.cgrid{display:grid;grid-template-columns:1.15fr .85fr;gap:72px;align-items:start;}
.cinfo-l{border-top:1px solid var(--ink);}
.cinfo-l .row{padding:18px 0;border-bottom:1px solid var(--line);}
.cinfo-l .row:last-child{border-bottom:0;}
.cinfo-l .ck{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);}
.cinfo-l .cv{font-family:var(--serif);font-size:21px;color:var(--ink);margin-top:7px;display:inline-block;}
.cinfo-l a.cv:hover{color:var(--bordeaux);}
.cinfo-l .cd{font-size:15px;color:var(--ink-soft);margin-top:7px;line-height:1.5;}
.cnote{font-size:13.5px;color:var(--ink-faint);line-height:1.6;margin-top:24px;}

/* ============ RESPONSIVE ============ */
@media(max-width:1080px){
  .hero .wrap{grid-template-columns:1fr;gap:40px;}
  .hero .fig{max-width:440px;}
  .phero .grid{grid-template-columns:1fr;gap:26px;}
  .shead{grid-template-columns:minmax(0,1fr);gap:14px;}
  a.prow{grid-template-columns:84px minmax(0,1fr) 24px;gap:16px;}
  a.prow h3{overflow-wrap:break-word;}
  a.prow p{display:none;}
  .conf .grid,.mission .grid,.news .grid,.contact .grid{grid-template-columns:minmax(0,1fr);gap:40px;}
  .doc{grid-template-columns:1fr;gap:34px;}
  .doc .toc{position:static;}
  .doc .toc ol{columns:2;}
}
@media(max-width:1024px){
  :root{--pad:30px;}
  .util{display:none;}                 /* drop the wasted top strip on tablet+mobile */
  nav.primary{display:none;}
  .mast-row{height:64px;}
  /* language switch folded into the masthead line, just left of the MENU pill */
  .mlang{display:flex;align-items:center;gap:6px;margin-left:auto;margin-right:14px;}
  .mlang button{font-size:12px;letter-spacing:.12em;}
  .masthead.open .mlang{display:none;}
  .brand .bsub{display:none;}
  .brand .mk{font-size:24px;}
  .brand .crest{height:44px;}
  .brand{gap:9px;}

  /* app-style menu trigger: 'Menu' pill + plus→× chip */
  .menu-btn{display:inline-flex;align-items:center;gap:11px;position:relative;z-index:130;
    background:none;border:1px solid var(--line);border-radius:100px;padding:6px 6px 6px 16px;cursor:pointer;}
  .menu-btn .ml{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);}
  .menu-btn .ml-close{display:none;}
  .menu-btn .mi{position:relative;width:30px;height:30px;border-radius:50%;background:var(--bordeaux);flex:none;
    transition:transform .45s cubic-bezier(.3,.8,.3,1);}
  .menu-btn .mi::before,.menu-btn .mi::after{content:"";position:absolute;left:50%;top:50%;background:#fff;border-radius:2px;}
  .menu-btn .mi::before{width:11px;height:1.6px;transform:translate(-50%,-50%);}
  .menu-btn .mi::after{width:1.6px;height:11px;transform:translate(-50%,-50%);}
  .masthead.open .menu-btn{z-index:130;}
  .masthead.open .menu-btn .mi{transform:rotate(135deg);}
  .masthead.open .menu-btn .ml-open{display:none;}
  .masthead.open .menu-btn .ml-close{display:inline;color:#fff;}
  .masthead.open .menu-btn{border-color:rgba(255,255,255,.35);}

  /* full-screen takeover menu */
  /* masthead's backdrop-filter creates a containing block for fixed kids;
     drop it while open so the drawer escapes to the viewport, not the 64px bar */
  .masthead.open{backdrop-filter:none;background:transparent;border-color:transparent;}
  .drawer{display:block;position:fixed;inset:0;z-index:90;background:var(--bordeaux);
    opacity:0;visibility:hidden;transition:opacity .42s ease,visibility 0s linear .42s;}
  /* on open, flip visibility instantly (0s, no delay) so the drawer is
     focusable in the same frame; on close, the base rule delays hiding by
     .42s so the opacity fade-out stays visible */
  .masthead.open .drawer{opacity:1;visibility:visible;transition:opacity .42s ease,visibility 0s;}
  .drawer .mwrap{height:100%;min-height:0;display:flex;flex-direction:column;padding:22px var(--pad) 30px;overflow-y:auto;}
  .drawer .mtop{display:flex;align-items:center;justify-content:space-between;}
  .drawer .mbrand{display:inline-flex;align-items:center;gap:9px;font-family:var(--brand);font-weight:600;
    font-size:24px;letter-spacing:.05em;color:#F3E8DC;}
  .drawer .mbrand .crest{height:40px;width:auto;display:block;}
  /* redundant with the morphing Menu→Close pill (#burger, z130) — hidden */
  .drawer .mclose{display:none;}
  .drawer nav{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:2px;overflow-y:auto;overscroll-behavior:contain;}
  .drawer nav a{font-family:var(--serif);font-weight:340;font-size:clamp(30px,8.5vw,42px);line-height:1.04;
    color:#F3E8DC;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.13);
    display:flex;align-items:center;justify-content:space-between;
    opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1),color .2s;}
  .drawer nav a::after{content:"→";font-family:var(--mono);font-size:17px;color:rgba(255,255,255,.38);}
  .drawer nav a.active{color:var(--gold-soft);} .drawer nav a.active::after{color:var(--gold-soft);}
  .masthead.open .drawer nav a{opacity:1;transform:none;}
  .masthead.open .drawer nav a:nth-child(1){transition-delay:.08s} .masthead.open .drawer nav a:nth-child(2){transition-delay:.13s}
  .masthead.open .drawer nav a:nth-child(3){transition-delay:.18s} .masthead.open .drawer nav a:nth-child(4){transition-delay:.23s}
  .masthead.open .drawer nav a:nth-child(5){transition-delay:.28s} .masthead.open .drawer nav a:nth-child(6){transition-delay:.33s}
  .masthead.open .drawer nav a:nth-child(7){transition-delay:.38s} .masthead.open .drawer nav a:nth-child(8){transition-delay:.43s}
  .masthead.open .drawer nav a:nth-child(9){transition-delay:.48s}
  .drawer .mfoot{display:flex;align-items:center;justify-content:space-between;
    font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.6);}
  .drawer .mfoot a{color:var(--gold-soft);}

  /* cinematic hero cover */
  .hero{padding:0;}
  .hero .wrap{display:block;position:relative;padding-left:0;padding-right:0;}
  .hero .contour{display:none;}
  .hero .fig{position:relative;max-width:none;}
  .hero .plate{aspect-ratio:auto;min-height:calc(100svh - 168px);}
  .hero .plate .scrim{background:linear-gradient(180deg,rgba(28,23,20,.10) 26%,rgba(28,23,20,.55) 66%,rgba(28,23,20,.9));}
  .hero .plate .frame{inset:12px;border-color:rgba(255,255,255,.28);}
  .hero .plate .cap{display:none;}
  .hero .plate .tick{color:rgba(255,255,255,.74);left:auto;right:26px;top:26px;}
  .hero .lead{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:0 var(--pad) 34px;}
  .hero .tag{color:var(--gold-soft);}
  .hero h1{color:#fff;font-size:clamp(34px,9.2vw,48px);margin-top:14px;}
  .hero h1 em{color:#E7C79C;}
  .hero .lede{color:rgba(255,255,255,.86);font-size:15.5px;line-height:1.5;margin-top:15px;max-width:none;}
  .hero .acts{margin-top:24px;gap:24px;}
  .hero .acts .a-line{color:#fff;border-color:rgba(255,255,255,.5);}
  .hero .acts .a-line:hover{border-color:#fff;}
  .hero .acts .a-quiet{color:rgba(255,255,255,.78);}
  .dossier{margin-top:0;}
  .dossier .wrap{grid-template-columns:1fr 1fr;}
  .dcell{padding:18px 18px 20px;}
  .dcell:nth-child(2){border-right:0;padding-right:0;} .dcell:nth-child(3){padding-left:0;}
  .pillars,.pcats{grid-template-columns:1fr;}
  .pillars{border-top:0;}
  .pillar{border-right:0;border-top:1px solid var(--line);padding:26px 0 6px;}
  .pillar:first-child{border-top:2px solid var(--bordeaux);}
  .vrow{grid-template-columns:1fr;gap:6px;}
  .rgrid{grid-template-columns:1fr;}
  /* region photos: swipeable scroll-snap carousel (saves vertical length, tactile) */
  .specimens{display:flex;grid-template-columns:none;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;
    margin:0 calc(-1 * var(--pad));padding:2px var(--pad) 16px;scroll-padding-left:var(--pad);}
  .specimens::-webkit-scrollbar{display:none;}
  .spec{flex:0 0 80%;scroll-snap-align:start;}
  .pcats{border-top:0;}
  .pcat{border-right:0;border-top:1px solid var(--line);padding:22px 0 24px;}
  .pcat:first-child{border-top:1px solid var(--ink);}
  .news .kinds li{font-size:18px;}
  .form .frow{grid-template-columns:1fr;gap:22px;}
  .tracks,.cgrid{grid-template-columns:1fr;gap:0;}
  .tracks .trk{padding:26px 0;border-right:0;border-top:1px solid var(--line);}
  .tracks .trk:first-child{border-top:0;}
  .cgrid{gap:48px;}
  .pdetail{grid-template-columns:1fr;gap:16px;padding:30px 0;}
  .doc .toc ol{columns:1;}
  footer.site .top{grid-template-columns:1fr 1fr;gap:32px 34px;}
  footer.site .top > div:first-child{grid-column:1 / -1;}
  footer.site .lcol{display:none;}
  .sec{padding:48px 0;}
  .sec.tight{padding:44px 0;}
  .cta .wrap{padding:48px var(--pad);}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;
    scroll-behavior:auto !important;transition-duration:.001ms !important;}
  .hero .plate img,.plate:hover img,.spec:hover .splate img{transform:none !important;}
}

/* phones: tighten the page gutter (tablets keep the roomier 30px) */
@media (max-width:600px){
  :root{--pad:22px;}
}

/* Short phones / landscape: keep all menu routes reachable without clipping. */
@media (max-width:1024px) and (max-height:680px){
  .drawer .mwrap{padding-top:14px;padding-bottom:16px;}
  .drawer nav{justify-content:flex-start;margin:12px 0;}
  .drawer nav a{font-size:clamp(25px,7.2vw,34px);padding:7px 0;}
  .drawer .mfoot{padding-bottom:2px;}
}

/* very narrow phones (≤380px): shrink the programme-index headline so long
   words wrap cleanly instead of breaking mid-word */
@media (max-width:380px){
  a.prow h3{font-size:22px;}
}

/* ===========================================================
   MOTION — restrained micro-craft
   Opt-in via .rv-on (set by an inline head script before paint,
   so content is never hidden when JS is off). Fully disabled
   under prefers-reduced-motion.
   =========================================================== */
@media (prefers-reduced-motion: no-preference){
  .rv-on [data-rv]{opacity:0;transform:translateY(18px);
    transition:opacity .85s cubic-bezier(.2,.6,.2,1),transform .85s cubic-bezier(.2,.6,.2,1);}
  .rv-on [data-rv].in{opacity:1;transform:none;}

  /* headline wipe (hero + page heroes) */
  .rv-on .rv-mask{opacity:0;clip-path:inset(0 0 110% 0);
    transition:clip-path 1.05s cubic-bezier(.22,.61,.21,1),opacity .8s ease;}
  .rv-on .rv-mask.in{opacity:1;clip-path:inset(0 0 -8% 0);}

  /* plate: settle-in zoom (non-hero plates) */
  .rv-on .plate img{transform:scale(1.12);opacity:0;
    transition:transform 1.7s cubic-bezier(.2,.6,.2,1),opacity 1.1s ease;}
  .rv-on .plate.in img{transform:scale(1);opacity:1;}

  /* hero photo never hides under the reveal fade — its Ken Burns (defined
     globally above) owns the transform and runs continuously */
  .rv-on .hero .plate img{opacity:1;}

  /* region specimens: cinematic curtain-wipe + slow unzoom */
  .rv-on .spec .splate img{clip-path:inset(0 0 100% 0);transform:scale(1.16);opacity:1;
    transition:clip-path 1.15s cubic-bezier(.22,.61,.18,1),transform 1.5s cubic-bezier(.22,.61,.18,1);}
  .rv-on .spec.in .splate img{clip-path:inset(0 0 0 0);transform:scale(1);}

  /* research contour: draw the isotherms */
  .rv-on .contour path{stroke-dasharray:2700;stroke-dashoffset:2700;}
  .rv-on .contour.in path{animation:rv-draw 2.6s cubic-bezier(.32,.5,.2,1) forwards;}
  .rv-on .contour.in path:nth-child(2){animation-delay:.12s;}
  .rv-on .contour.in path:nth-child(3){animation-delay:.24s;}
  .rv-on .contour.in path:nth-child(4){animation-delay:.36s;}
  .rv-on .contour.in path:nth-child(5){animation-delay:.48s;}
  .rv-on .contour.in path:nth-child(6){animation-delay:.60s;}
  .rv-on .contour.in path:nth-child(7){animation-delay:.72s;}
  @keyframes rv-draw{to{stroke-dashoffset:0;}}
}

/* masthead condense on scroll — subtle lift, motion-independent */
.masthead{transition:box-shadow .3s ease,background .3s ease;}
.masthead.scrolled{box-shadow:0 1px 0 var(--line),0 12px 32px -20px rgba(28,23,20,.55);}

/* ============ KNOWLEDGE PLATFORM — LIBRARY ============ */
.libbar{display:flex;flex-wrap:wrap;gap:28px;align-items:center;margin-bottom:30px;padding-bottom:18px;border-bottom:1px solid var(--line);}
.libgrp{display:flex;align-items:center;gap:10px;}
.libbar-l{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);}
.libbtn{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);background:none;border:1px solid var(--line);border-radius:999px;padding:7px 14px;cursor:pointer;transition:all .2s;}
.libbtn:hover{color:var(--ink);border-color:var(--ink-faint);}
.libbtn.is-on{color:var(--paper);background:var(--bordeaux);border-color:var(--bordeaux);}
.libsel{font-family:var(--sans);font-size:13.5px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:7px 12px;cursor:pointer;}
.lib{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.libitem{background:var(--paper);padding:26px 28px;}
.libtopic{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;}
.libitem h3{font-family:var(--serif);font-weight:420;font-size:22px;line-height:1.1;color:var(--ink);margin:0 0 8px;}
.libitem p{font-size:14.5px;line-height:1.55;color:var(--ink-soft);margin:0;}
.lib-empty{margin-top:24px;font-size:15px;color:var(--ink-faint);}
@media(max-width:680px){.lib{grid-template-columns:1fr;} .libbar{gap:18px;}}

/* library items are links to articles */
a.libitem{display:block;transition:background .2s;}
a.libitem:hover{background:var(--panel);}
a.libitem h3{transition:color .2s;}
a.libitem:hover h3{color:var(--bordeaux);}

/* blog feed thumbnails + article cover */
a.prow.has-thumb{grid-template-columns:168px 110px 1fr 1.25fr 40px;align-items:center;}
.pthumb{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--panel);}
.pthumb img{width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.05);transition:transform .5s cubic-bezier(.2,.5,.2,1);}
a.prow:hover .pthumb img{transform:scale(1.06);}
.acover{position:relative;margin:0 0 44px;aspect-ratio:21/9;overflow:hidden;background:var(--panel);}
.acover img{width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.05);}
.acover .frame{position:absolute;inset:14px;border:1px solid rgba(255,255,255,.34);pointer-events:none;}
@media(max-width:1080px){
  a.prow.has-thumb{grid-template-columns:96px minmax(0,1fr) 24px;}
  a.prow.has-thumb .pcode{display:none;}
  .acover{aspect-ratio:16/9;margin-bottom:30px;}
}

/* in-article images + pull quotes */
.prose figure{margin:30px 0;}
.prose figure img{width:100%;display:block;filter:saturate(.88) contrast(1.05);}
.prose figcaption{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-top:10px;}
.prose blockquote{margin:32px 0;padding:4px 0 4px 24px;border-left:2px solid var(--gold);
  font-family:var(--serif);font-style:italic;font-weight:380;font-size:21px;line-height:1.5;color:var(--ink);}

/* library controls — visible keyboard focus */
.libbtn:focus-visible,.libsel:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}

/* partners "The network" — 3 cards (Institutions removed), desktop only */
@media(min-width:1081px){.pcats.cols-3{grid-template-columns:repeat(3,1fr);}}

/* demo / sample article banner */
.demo-banner{background:var(--panel);color:var(--ink-soft);font-family:var(--mono);font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:10px 16px;border-bottom:1px solid var(--line);}


/* Scheme B — client-approved teal + copper palette. */
:root{
  --bordeaux:#0E3A42; --bordeaux-deep:#072A30;
  --gold:#974A24; --gold-soft:#D38A63;
  --paper:#F3F1EC; --panel:#ECE6DA; --cream:#E6DFD0;
  --ink:#1E2422; --ink-soft:#585650; --ink-faint:#676255;
  --line:#CFC8B9; --line-soft:#E1DACB;
}
