/*
Theme Name:   RBI
Theme URI:    https://rbi-us.org
Description:  Child theme for the Responsible Business Initiative. Navy #16273F, gold #C0A265, mid blue #356195, paper #F5F4F0. Source Serif 4 display, Public Sans body, both self-hosted.
Author:       Responsible Business Initiative
Template:     twentytwentyone
Version:      1.1.0
Text Domain:  rbi
*/

/* ============================================================
   1. FONTS  (self-hosted, see fonts/README.txt)
   ============================================================ */

@font-face{font-family:"Source Serif 4";src:url("fonts/source-serif-4-400.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("fonts/source-serif-4-400-italic.woff2") format("woff2");
  font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("fonts/source-serif-4-600.woff2") format("woff2");
  font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif 4";src:url("fonts/source-serif-4-700.woff2") format("woff2");
  font-weight:700;font-style:normal;font-display:swap}

@font-face{font-family:"Public Sans";src:url("fonts/public-sans-400.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Public Sans";src:url("fonts/public-sans-500.woff2") format("woff2");
  font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Public Sans";src:url("fonts/public-sans-600.woff2") format("woff2");
  font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Public Sans";src:url("fonts/public-sans-700.woff2") format("woff2");
  font-weight:700;font-style:normal;font-display:swap}

/* ============================================================
   2. TOKENS
   ============================================================ */

:root{
  --navy:#16273F;
  --navy-2:#1E3352;
  --blue:#356195;
  --gold:#C0A265;
  --gold-dk:#9C7F44;
  --paper:#F5F4F0;
  --paper-2:#EAE8E1;
  --ink:#1C2531;
  --muted:#5C6875;
  --line:#D8DCE2;
  --serif:"Source Serif 4",Georgia,serif;
  --sans:"Public Sans","Segoe UI",Arial,sans-serif;
}

/* ============================================================
   3. BASE
   ============================================================ */

*{box-sizing:border-box}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
.wrap{max-width:1140px;margin:0 auto;padding:0 34px}
h1,h2,h3,h4{font-family:var(--serif);color:var(--navy);margin:0;font-weight:600;letter-spacing:-.012em}
p{margin:0 0 1.15em}
a{color:var(--blue)}
a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
img{max-width:100%}

.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link:focus{position:fixed!important;top:12px;left:12px;z-index:200;width:auto;height:auto;
  clip:auto;padding:12px 20px;background:var(--navy);color:#fff;font-weight:600;text-decoration:none}

/* ============================================================
   4. MASTHEAD + NAV
   ============================================================ */

.masthead{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
body.admin-bar .masthead{top:32px}
.masthead .wrap{display:flex;align-items:center;gap:26px;min-height:88px}
.logo-link{display:block;margin-right:auto;line-height:0}
.logo{height:46px;width:auto;display:block}

.nav ul{display:flex;gap:19px;align-items:center;list-style:none;margin:0;padding:0}
.nav a{font-size:14px;font-weight:500;color:var(--ink);text-decoration:none;
  padding:5px 0;border-bottom:2px solid transparent;display:inline-block}
.nav a:hover,
.nav .current-menu-item > a,
.nav .current_page_item > a,
.nav .current-menu-ancestor > a,
.nav .current-post-ancestor > a{color:var(--blue);border-bottom-color:var(--gold)}

.nav-toggle{display:none;font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--navy);background:transparent;border:1.5px solid var(--line);
  padding:11px 16px;cursor:pointer}
.nav-toggle:hover{border-color:var(--navy)}

.btn{display:inline-block;font-family:var(--sans);font-size:14.5px;font-weight:600;padding:12px 24px;
  text-decoration:none;border:1.5px solid var(--navy);background:var(--navy);color:#fff;cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 7px 18px rgba(22,39,63,.22)}
.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.btn-gold:hover{box-shadow:0 7px 18px rgba(192,162,101,.4)}
.btn-outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn-outline:hover{background:#fff;color:var(--navy);border-color:#fff}

/* ============================================================
   5. SHARED SECTIONS
   ============================================================ */

.section{padding:70px 0}
.section.alt{background:var(--paper)}
.section.dark{background:var(--navy);color:#DCE4EE}
.shead{margin-bottom:30px;padding-bottom:14px;border-bottom:2px solid var(--navy)}
.shead h2{font-size:29px}
.prose{max-width:72ch}
.prose h3{font-size:21px;color:var(--blue);margin:34px 0 10px}
.prose h3:first-child{margin-top:0}
.prose strong{color:var(--navy)}
.prose ul{margin:0 0 1.15em;padding-left:22px}
.prose li{margin-bottom:9px}
.pnum h3 a{color:var(--navy);text-decoration:none}
.pnum h3 a:hover{color:var(--blue);text-decoration:underline}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 54px}

/* interior page hero */
.phero{background:var(--navy);color:#DCE4EE;padding:66px 0 62px}
.phero .eyebrow{display:inline-block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);font-weight:700;border:1px solid rgba(192,162,101,.5);padding:7px 13px;margin-bottom:24px}
.phero h1{color:#fff;font-size:clamp(36px,4.6vw,54px);line-height:1.06;max-width:20ch}
.phero p{color:#C3D0E0;margin-top:20px;max-width:62ch;font-size:18px}

/* ============================================================
   6. INTERIOR COMPONENTS  (Session 2 pages)
   ============================================================ */

.pnum{display:grid;grid-template-columns:56px minmax(0,1fr);gap:22px;padding:26px 0;border-top:1px solid var(--line)}
.pnum .n{font-family:var(--serif);font-size:30px;color:var(--gold-dk);line-height:1}
.pnum h3{font-size:22px;color:var(--navy);margin-bottom:9px}
.pnum p{margin:0;color:var(--muted);font-size:16.5px;max-width:62ch}

.bio{display:grid;grid-template-columns:190px minmax(0,1fr);gap:42px;padding:42px 0;
  border-top:1px solid var(--line);align-items:start}
.bio:first-of-type{border-top:0;padding-top:0}
.bio .biophoto{display:block;width:190px;max-width:100%;align-self:start}
.bio .biophoto img{width:190px;max-width:100%;height:auto;max-height:190px;aspect-ratio:1/1;
  object-fit:cover;align-self:start;display:block;border:1px solid var(--line)}
.bio .ph{width:190px;max-width:100%;aspect-ratio:1;background:var(--paper-2);border:1px dashed var(--gold-dk);
  display:flex;align-items:center;justify-content:center;color:#6C5726;font-size:12.5px;
  font-weight:600;text-align:center;padding:16px}
.bio h3{font-size:27px}
.bio .role{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dk);font-weight:700;margin:8px 0 16px}
.bio p{font-size:16.5px;max-width:66ch}

.board{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:30px 40px;margin-top:8px}
.adv{display:grid;grid-template-columns:96px minmax(0,1fr);gap:20px;align-items:start;
  padding-top:22px;border-top:1px solid var(--line);transition:transform .18s ease;
  text-decoration:none;color:inherit}
.adv:hover{transform:translateY(-2px)}
.adv:hover .nm{color:var(--blue)}
.adv:hover img{border-color:var(--gold)}
.adv:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.adv .advphoto{display:block;width:96px;height:96px;flex:0 0 96px;align-self:start}
.adv .advphoto img{width:96px;height:96px;min-width:96px;max-width:96px;min-height:96px;max-height:96px;
  aspect-ratio:1/1;align-self:start;display:block;border:1px solid var(--line);object-fit:cover}
img.emoji{display:inline;width:1em;height:1em;min-width:0;max-width:none;min-height:0;max-height:none;
  border:0;margin:0 .07em;vertical-align:-.1em;background:none;padding:0}
.adv .advphoto .ph{width:96px;height:96px;font-size:10px;line-height:1.2;padding:6px;
  display:flex;align-items:center;justify-content:center;text-align:center;
  background:var(--paper-2);border:1px dashed var(--gold-dk);color:#6C5726;font-weight:600}
.adv .nm{font-family:var(--serif);font-size:19px;color:var(--navy);line-height:1.25}
.adv .inst{font-size:13.5px;color:var(--blue);margin-top:6px;line-height:1.45;font-weight:500}
.adv .ttl{font-size:13px;color:var(--muted);margin-top:5px;line-height:1.5}
.adv .ext{font-size:12px;color:var(--gold-dk);vertical-align:2px}
.adv .note{font-size:12.5px;color:#8C2B2B;font-weight:600;margin-top:8px;line-height:1.45;
  padding-left:9px;border-left:2px solid #8C2B2B}

.pgrid{display:flex;flex-wrap:wrap;justify-content:center;gap:26px 54px;
  padding:0}
.pitem{flex:0 0 auto;font-family:var(--serif);font-size:20px;color:var(--navy);
  padding:12px 0 9px;white-space:nowrap;border-bottom:2px solid var(--gold)}

.privdate{font-size:14px;color:var(--muted);margin-bottom:26px}

.contact{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;align-items:start}
.cform label{display:block;font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);margin:18px 0 8px}
.cform input,.cform textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);
  font-family:var(--sans);font-size:16px;background:#fff}
.cform input:focus,.cform textarea:focus{border-color:var(--blue);outline:none}
.formnote{font-size:13.5px;color:var(--muted);margin-top:16px;font-style:italic}
.cblock{padding:24px 26px;border-top:3px solid var(--navy);background:#fff;margin-bottom:20px}
.cblock.alt{border-top-color:var(--gold);background:var(--paper)}
.cblock h3{font-size:19px;margin-bottom:14px}
.cblock p{font-size:15px;color:var(--muted);line-height:1.6}
.crow{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;padding:10px 0;
  border-bottom:1px solid var(--line);font-size:15px}
.crow:last-child{border-bottom:0}
.clab{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-dk);font-weight:700;padding-top:3px}
.cval{color:var(--ink);line-height:1.5}

.feat{border-top:4px solid var(--gold);padding-top:30px;max-width:78ch}
.feat-next{margin-top:54px}
.featkind{font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--gold-dk);font-weight:700}
.feat h2{font-size:clamp(27px,3.2vw,36px);line-height:1.2;margin:14px 0 12px;max-width:26ch}
.featauth{font-size:16px;color:var(--ink);font-weight:600;margin-bottom:18px}
.featabs{font-size:17.5px;color:var(--ink);line-height:1.65;max-width:70ch}
.featnote{margin-top:28px;padding:20px 24px;background:var(--paper);border-left:3px solid var(--blue);
  font-size:15.5px;color:var(--muted);line-height:1.6;max-width:74ch}
.featnote strong{color:var(--navy)}

.pubrow{display:grid;grid-template-columns:170px minmax(0,1fr);gap:32px;padding:26px 0;border-bottom:1px solid var(--line)}
.pubrow:last-child{border-bottom:0}
.pubkind{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dk);font-weight:700}
.pubdate{font-size:14px;color:var(--muted);margin-top:6px}
.pubrow h3{font-size:22px;line-height:1.3;margin-bottom:9px;max-width:40ch}
.pubrow h3 a{color:var(--navy);text-decoration:none}
.pubrow h3 a:hover{color:var(--blue);text-decoration:underline}
.pubnote{font-size:13px;color:var(--muted);margin-top:10px;padding-left:10px;
  border-left:2px solid var(--line);line-height:1.5;max-width:60ch}
.pubauth{font-size:15px;color:var(--ink);font-weight:500}
.puboutlet{font-size:14.5px;color:var(--blue);margin-top:5px;font-style:italic}

.event{display:grid;grid-template-columns:170px minmax(0,1fr);gap:32px;padding:28px 0;border-bottom:1px solid var(--line)}
.event:last-child{border-bottom:0}
.evdate{font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-dk);font-weight:700;padding-top:5px}
.event h3{font-size:23px;line-height:1.28;margin-bottom:10px;max-width:34ch}
.evhost{font-size:15px;color:var(--blue);font-weight:500;line-height:1.5}
.evrole{font-size:15px;color:var(--ink);margin-top:10px;font-weight:500}
.evpeople{font-size:14.5px;color:var(--muted);margin-top:8px;line-height:1.6;max-width:70ch}
.evboard{font-size:13px;color:var(--gold-dk);font-weight:600;margin-top:12px;
  padding-left:10px;border-left:2px solid var(--gold)}

.evphotos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}
.evphotos.count-1{grid-template-columns:minmax(0,420px)}
.evphotos.count-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.evphotos img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;
  border:1px solid var(--line);max-width:100%}
.evtag{display:inline-block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:700;padding:9px 14px;margin:0 7px 10px 0;
  min-width:148px;text-align:center;line-height:20px;border:1.5px solid transparent}
.evtag-up{color:var(--navy);background:var(--gold)}
.evtag-host{color:var(--gold-dk);border-color:var(--gold)}

.disc{margin-top:44px;padding:24px 28px;background:var(--paper);border-left:3px solid var(--gold);
  font-size:15.5px;color:var(--muted);max-width:82ch;line-height:1.65}

/* ============================================================
   7. HOMEPAGE  (scoped to body.home so nothing leaks)
   ============================================================ */

body.home{line-height:1.6}
body.home p{margin:0 0 1.1em}
body.home .section{padding:82px 0}
body.home .shead{display:flex;align-items:baseline;justify-content:space-between;gap:22px;
  margin-bottom:36px;padding-bottom:15px}
body.home .shead h2{font-size:31px}
body.home .shead a{font-size:14.5px;font-weight:600;text-decoration:none;white-space:nowrap}
body.home .shead a:hover{text-decoration:underline}
body.home .section.dark .shead{border-bottom-color:var(--gold)}
body.home .section.dark .shead h2{color:#fff}
body.home .section.dark .shead a{color:var(--gold)}

.hero{background:var(--navy);color:#E9EEF5;padding:74px 0 78px}
.hero .grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:center}
.hero .eyebrow{display:inline-block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);font-weight:700;border:1px solid rgba(192,162,101,.5);padding:7px 13px;margin-bottom:28px}
.hero h1{color:#fff;font-size:clamp(40px,5.4vw,64px);line-height:1.04;letter-spacing:-.025em}
.hero .q{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:clamp(21px,2.4vw,29px);
  line-height:1.35;margin-top:18px;max-width:22ch}
.hero p.lede{color:#C3D0E0;margin-top:26px;max-width:46ch;font-size:17px}
.hero .actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.heroimg{width:100%;height:auto;display:block;border:2px solid var(--gold)}
.caption{font-size:12.5px;color:#93A6BE;margin-top:10px;line-height:1.45}

.premise{background:var(--paper);padding:70px 0;border-bottom:1px solid var(--line)}
.kicker{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-dk);font-weight:700;margin-bottom:30px}
.pair{display:grid;grid-template-columns:1fr 1px 1fr;gap:0}
.side{padding:0 46px}
.side:first-of-type{padding-left:0}
.side:last-of-type{padding-right:0}
.vline{background:var(--line)}
.side .role{font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:10px}
.side .who{font-family:var(--serif);font-size:27px;color:var(--navy);line-height:1.2}
.side .what{color:var(--muted);font-size:15.5px;margin-top:10px;line-height:1.55}
.premise .close{margin-top:40px;padding-top:28px;border-top:2px solid var(--navy);
  font-family:var(--serif);font-size:21px;color:var(--navy);max-width:74ch;line-height:1.5}

.pub{display:grid;grid-template-columns:190px minmax(0,1fr);gap:34px;padding:28px 0;
  border-bottom:1px solid var(--line);transition:transform .18s ease}
.pub:hover{transform:translateY(-2px)}
.pub .type{font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--gold-dk);font-weight:700}
.pub .date{font-size:14px;color:var(--muted);margin-top:7px}
.pub h3{font-size:24px;line-height:1.25;margin-bottom:9px}
.pub .authors{font-size:14.5px;color:var(--muted);margin-bottom:12px;font-weight:500}
.pub p{font-size:16px;color:var(--ink);margin:0 0 16px;max-width:64ch}
.pub .links{display:flex;gap:20px;flex-wrap:wrap;font-size:14.5px;font-weight:600}
.pub .links a{text-decoration:none}
.pub .links a:hover{text-decoration:underline}
.empty{background:var(--paper);border-left:3px solid var(--gold);padding:26px 28px;color:var(--muted);max-width:70ch}
.empty strong{color:var(--navy);font-family:var(--serif);font-size:19px;display:block;margin-bottom:7px;font-weight:600}

.principles{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:0 54px}
.principle{padding:25px 0;border-top:1px solid var(--line)}
.principle h3{font-size:19.5px;color:var(--blue);margin-bottom:9px}
.principle p{font-size:15.5px;color:var(--muted);margin:0;line-height:1.55}

.board-intro{color:#C3D0E0;max-width:74ch;margin-bottom:38px;font-size:17px}
body.home .board{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:2px;margin-top:0}
.advisor{padding:22px 24px;background:var(--navy-2);transition:transform .18s ease,background .18s ease}
.advisor:hover{transform:translateY(-2px);background:#24406A}
.adv-name{font-family:var(--serif);font-size:20px;color:#fff;line-height:1.25}
.adv-inst{font-size:14px;color:var(--gold);margin-top:7px;line-height:1.4}
.adv-title{font-size:13.5px;color:#A9BBD1;margin-top:5px;line-height:1.45}
.advnote{display:block;margin-top:8px;padding-left:9px;border-left:2px solid #C97B7B;
  color:#E09A9A;font-weight:600;font-size:12.5px;line-height:1.45}
.disclaimer{margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.18);
  font-size:14.5px;color:#9FB2C9;max-width:80ch;line-height:1.6}

.support{background:var(--paper-2);padding:76px 0}
.support .inner{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:center}
.support h2{font-size:37px;max-width:16ch}
.support p{color:var(--muted);max-width:48ch;margin-top:16px;font-size:18px}
.support .card{background:#fff;border-top:4px solid var(--gold);padding:32px 34px}
.support .card h4{font-size:19px;margin-bottom:12px}
.support .card p{font-size:15.5px;margin-top:0}

/* ============================================================
   8. FOOTER
   ============================================================ */

.site-footer{background:var(--navy);color:#A8BAD1;padding:54px 0 40px;font-size:14.5px;border-top:4px solid var(--gold)}
.ftop{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;
  padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.15)}
.flogo{height:62px;width:auto;display:block;margin-bottom:16px}
.flinks{display:flex;gap:28px;flex-wrap:wrap}
.flinks ul{display:flex;gap:28px;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.site-footer a{color:#A8BAD1;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.fbot{padding-top:22px;font-size:13px;color:#8497B0;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

/* ============================================================
   9. RESPONSIVE
   ============================================================ */

@media (max-width:940px){
  .masthead .wrap{flex-wrap:wrap;gap:14px;padding-top:14px;padding-bottom:14px;min-height:0}
  .nav-toggle{display:inline-block;order:3}
  .masthead .btn-gold{order:2}
  .nav{order:4;flex-basis:100%;display:none}
  .nav.is-open{display:block}
  .nav ul{flex-direction:column;align-items:stretch;gap:0;padding:4px 0 6px}
  .nav li{border-top:1px solid var(--line)}
  .nav a{display:block;padding:13px 0;font-size:15px;border-bottom:0}
  .nav a:hover,.nav .current-menu-item > a{border-bottom-color:transparent;padding-left:8px}
  .bio{grid-template-columns:1fr;gap:22px}
  .bio .biophoto,.bio .biophoto img,.bio .ph{max-width:190px}
  .section{padding:52px 0}
  .wrap{padding:0 22px}
  body.home .section{padding:58px 0}
  .hero .grid,.support .inner{grid-template-columns:1fr;gap:38px}
  .pair{grid-template-columns:1fr;gap:30px}
  .vline{height:1px;width:100%}
  .side{padding:0}
  .pub{grid-template-columns:1fr;gap:12px}
}
@media (max-width:900px){.contact{grid-template-columns:1fr;gap:38px}}
@media (max-width:760px){.pgrid{gap:0}.pitem{flex:0 0 100%;white-space:normal;font-size:18px;padding:11px 0 8px}}
@media (max-width:800px){
  .pubrow{grid-template-columns:1fr;gap:8px}
  .event{grid-template-columns:1fr;gap:8px}
  .evphotos,.evphotos.count-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .evphotos.count-1{grid-template-columns:minmax(0,100%)}
}
@media (max-width:782px){body.admin-bar .masthead{top:46px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ============================================================
   14. SUMMARY LINES, ABSTRACT LINKS AND DOCUMENT BUTTONS
   Every publication shows the same three things wherever it
   appears, each only when it exists: a summary line, a button
   through to the document, and a link to its abstract.
   ============================================================ */

.acts{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin-top:18px}

.btn-act{font-size:12.5px;padding:9px 14px;text-align:center;min-width:148px;line-height:20px}
.btn-act:hover{transform:none;box-shadow:none}
/* 148px is the widest label, Read the document, measured at this size. Every
   button therefore renders the same width whatever its wording. */

/* Navy for the rows. Gold stays for the homepage and the featured block, so a
   list of eight does not compete with the one thing meant to be loudest. */
.btn-navy{background:var(--navy);border-color:var(--navy);color:#fff}
.btn-navy:hover{background:var(--blue);border-color:var(--blue)}

.abslink{font-size:14.5px;font-weight:600;text-decoration:none;color:var(--blue)}
.abslink:hover{text-decoration:underline}

/* The summary line in a row. The homepage uses .pub p, already styled. */
.pubsum{font-size:15.5px;color:var(--ink);line-height:1.6;max-width:64ch;margin:10px 0 0}

/* .acts carries the spacing above itself, so the summary above it does not
   also carry spacing below. */
.pub p{margin-bottom:0}
.pub .acts{margin-top:16px}
.pubrow .acts{margin-top:16px}
.feat .acts{margin-top:22px}

/* An event's own page: the listing fields, then the body. */
.evbody{margin-top:26px}
.evbody img{max-width:100%;height:auto}
.prose .evhost,.prose .evrole,.prose .evpeople,.prose .evboard{max-width:70ch}

.backlinks{margin-top:34px}
.backlinks a{text-decoration:none}
.backlinks a:hover{text-decoration:underline}
.backlinks .sep{color:#9AA3AE;padding:0 12px}

/* An event row carries the same single button as a publication row. Its
   photographs follow, so the button needs air beneath it as well as above. */
.event .acts{margin-top:18px}
.event .acts + .evphotos{margin-top:20px}

/* On an item page the callout sits above the button, and the paragraph holding
   that button carries only the default 1.15em top of nothing, so the two blocks
   collide. */
.prose .featnote + p{margin-top:34px}

/* A past event drops to a plain link, matching Read the abstract. */
.evlink{font-size:14.5px;font-weight:600;text-decoration:none;color:var(--blue)}
.evlink:hover{text-decoration:underline}
