:root{
  --bg:#f4f7f3;--surface:#fff;--surface2:#edf4ed;--ink:#0e1c13;--muted:#627067;
  --green:#2e8b3d;--green2:#62ba3a;--mint:#e6f5e3;--dark:#071c10;
  --line:rgba(14,28,19,.10);--line2:rgba(14,28,19,.16);
  --shadow:0 26px 80px rgba(7,28,16,.12);--shadow2:0 12px 36px rgba(7,28,16,.08);
  --r1:34px;--r2:24px;--r3:17px
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;background:
 radial-gradient(circle at 88% -10%,rgba(98,186,58,.18),transparent 34rem),
 radial-gradient(circle at -8% 34%,rgba(46,139,61,.10),transparent 28rem),var(--bg);
 color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55}
a{color:inherit} button,input,select{font:inherit} button{cursor:pointer} img{max-width:100%}
.container{width:min(1280px,92%);margin:auto}.skip{position:absolute;left:-999px;top:10px;background:#fff;padding:10px 14px;z-index:999}.skip:focus{left:10px}
.topbar{background:var(--dark);color:#dfe9e0;padding:9px 0;font-size:.86rem}.topbar .container{display:flex;justify-content:space-between;gap:16px;align-items:center}.topbar b{color:#fff}.topbar a{color:#bcebbc;font-weight:800}
header{position:sticky;top:0;z-index:90;background:rgba(244,247,243,.80);backdrop-filter:blur(18px);padding:11px 0;border-bottom:1px solid rgba(14,28,19,.05)}
.navshell{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.91);border:1px solid var(--line);border-radius:22px;padding:9px 10px 9px 12px;box-shadow:0 8px 30px rgba(7,28,16,.06)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:950;letter-spacing:-.025em;white-space:nowrap}.brand img{width:45px;height:45px;object-fit:cover;border-radius:13px;background:#050505}.brand small{display:block;color:var(--muted);font-weight:700;font-size:.65rem;letter-spacing:0}
nav{margin-left:auto;display:flex;align-items:center;gap:3px}nav a{text-decoration:none;padding:10px 11px;border-radius:12px;font-weight:800;font-size:.87rem;color:#35473a}nav a:hover{background:var(--surface2);color:var(--green)}
.lang,.menu{border:1px solid var(--line);background:#fff;border-radius:13px;padding:9px 11px;font-weight:900}.menu{display:none}
.hero{position:relative;padding:74px 0 48px;overflow:hidden}.hero:after{content:"";position:absolute;width:560px;height:560px;border-radius:50%;background:linear-gradient(135deg,rgba(98,186,58,.20),rgba(46,139,61,.03));right:-180px;top:-200px;z-index:-1}
.heroGrid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}.badge{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-size:.82rem;font-weight:900;box-shadow:0 7px 20px rgba(7,28,16,.04)}
h1{font-size:clamp(3.4rem,7vw,7rem);line-height:.91;letter-spacing:-.075em;margin:18px 0 20px;max-width:920px}h1 span{color:var(--green)}.heroLead{font-size:1.17rem;color:#4e6154;max-width:770px;margin:0}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border:0;border-radius:14px;padding:12px 16px;font-weight:900}.btn.primary{background:linear-gradient(135deg,var(--green),#24752e);color:#fff;box-shadow:0 12px 28px rgba(46,139,61,.22)}.btn.secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}.btn.soft{background:var(--mint);color:#226a2c}
.heroStats{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:29px}.heroStat{background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:18px;padding:14px}.heroStat strong{display:block;color:var(--green);font-size:1.56rem;letter-spacing:-.04em}.heroStat span{font-size:.76rem;color:var(--muted);font-weight:700}
.heroVisual{position:relative;min-height:520px}.logoStage{position:absolute;inset:24px 42px 58px 70px;background:#050505;border-radius:40px;padding:20px;box-shadow:var(--shadow);transform:rotate(1deg)}.logoStage img{width:100%;height:100%;object-fit:contain;border-radius:28px;background:#ffffff;padding:18px;box-shadow:inset 0 0 0 1px rgba(16,32,22,.06)}.float{position:absolute;background:rgba(255,255,255,.95);border:1px solid var(--line);border-radius:18px;padding:14px 16px;box-shadow:var(--shadow2)}.float.one{left:0;bottom:65px}.float.two{right:0;top:55px}.float b{display:block}.float span{font-size:.78rem;color:var(--muted)}
.searchDock{padding:0 0 26px}.searchPanel{display:grid;grid-template-columns:1.4fr .75fr auto;gap:11px;align-items:end;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:25px;padding:17px;box-shadow:var(--shadow2)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.field input,.field select{width:100%;border:1px solid var(--line2);background:#fcfdfc;border-radius:13px;padding:12px 13px;outline:none}.field input:focus,.field select:focus{border-color:var(--green);box-shadow:0 0 0 4px rgba(46,139,61,.10)}
section{padding:72px 0}.sectionBand{background:rgba(255,255,255,.60)}.sectionHead{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.sectionHead h2{font-size:clamp(2.35rem,4vw,4.15rem);line-height:1;letter-spacing:-.055em;margin:5px 0 0}.sectionHead p{max-width:700px;color:var(--muted);margin:8px 0 0}.eyebrow{display:inline-flex;padding:6px 10px;border-radius:999px;background:var(--mint);color:#226a2c;font-size:.74rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.raceTiles{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.raceTile{text-decoration:none;background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;box-shadow:0 8px 24px rgba(7,28,16,.04);transition:.2s}.raceTile:hover{transform:translateY(-3px);box-shadow:var(--shadow2)}.raceTile i{font-style:normal;font-size:1.55rem}.raceTile strong{display:block;font-size:1.35rem;margin:8px 0 5px}.raceTile span{color:var(--muted);font-size:.88rem}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;font-weight:850;color:#34463a}.tab.active{background:var(--dark);color:#fff}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.candidate{background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden;box-shadow:0 8px 28px rgba(7,28,16,.05);transition:.22s;display:flex;flex-direction:column}.candidate:hover{transform:translateY(-4px);box-shadow:var(--shadow2)}
.preview{height:180px;background:#eef4ee;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}.browserbar{height:31px;background:#f9fbf9;border-bottom:1px solid #dfe6df;display:flex;align-items:center;gap:5px;padding:0 10px}.dot{width:7px;height:7px;border-radius:50%;background:#c7d2c8}.urlbar{height:12px;flex:1;background:#e7ede7;border-radius:999px;margin-left:5px}.siteShot{position:absolute;inset:31px 0 0;width:100%;height:149px;object-fit:cover;object-position:top;background:#edf3ed}.domainStrip{position:absolute;left:10px;right:10px;bottom:9px;background:rgba(255,255,255,.94);border:1px solid var(--line);backdrop-filter:blur(8px);border-radius:11px;padding:7px 9px;font-size:.73rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 4px 14px rgba(7,28,16,.08)}.noWebsite{height:100%;display:grid;place-items:center;text-align:center;padding:18px;background:linear-gradient(135deg,#edf6ed,#dfeede);color:#55715c}.noWebsite .mark{font-size:1.9rem}
.cardBody{padding:17px;display:flex;flex-direction:column;gap:9px;flex:1}.category{font-size:.69rem;text-transform:uppercase;letter-spacing:.1em;font-weight:950;color:var(--green)}.candidate h3{font-size:1.28rem;line-height:1.14;letter-spacing:-.03em;margin:0}.group{font-size:.87rem;color:var(--muted);min-height:42px}.contact{display:grid;gap:3px;font-size:.81rem;color:#4f6154}.contact a{text-decoration:none;color:#236b2c;word-break:break-word}.siteHint{font-size:.70rem;color:var(--muted)}.cardActions{display:flex;gap:7px;margin-top:auto;padding-top:6px}.cardActions .btn{flex:1;font-size:.8rem;padding:10px 10px}
.trusteeGroup{margin-top:38px}.trusteeGroupHead{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.trusteeGroupHead h3{margin:0;font-size:1.45rem;letter-spacing:-.03em}.trusteeGroupHead span{color:var(--muted);font-size:.84rem}
.whyGrid{display:grid;grid-template-columns:1.12fr .88fr;gap:18px}.whyBig{background:linear-gradient(145deg,#12351a,#071c10);color:#fff;border-radius:32px;padding:34px;min-height:360px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.whyBig:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;right:-70px;bottom:-90px;background:rgba(98,186,58,.18)}.whyBig h3{font-size:clamp(2.1rem,4vw,3.8rem);line-height:1.02;letter-spacing:-.055em;margin:0;max-width:650px}.whyBig p{color:#cfdfd0;max-width:620px}.whyCards{display:grid;grid-template-columns:1fr 1fr;gap:13px}.whyCard{background:#fff;border:1px solid var(--line);border-radius:21px;padding:21px}.whyCard .icon{font-size:1.55rem}.whyCard b{display:block;margin:9px 0 5px}.whyCard p{margin:0;color:var(--muted);font-size:.88rem}
.resourceGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.resource{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;display:flex;flex-direction:column;min-height:170px}.resource b{font-size:1.03rem}.resource p{color:var(--muted);font-size:.86rem}.resource a{margin-top:auto;color:var(--green);font-weight:900;text-decoration:none}
.cta{background:linear-gradient(135deg,#e5f4e3,#f9fbf8);border:1px solid var(--line);border-radius:34px;padding:38px;display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:center}.cta h2{font-size:clamp(2.1rem,4vw,3.5rem);line-height:1;letter-spacing:-.05em;margin:0 0 12px}.cta p{color:var(--muted)}
footer{background:#07170c;color:#dce7dd;padding:44px 0 26px}.footerGrid{display:grid;grid-template-columns:1.25fr .75fr .75fr;gap:26px}.footerGrid a{color:#dce7dd}.disclaimer{margin-top:28px;border-top:1px solid rgba(255,255,255,.12);padding-top:18px;color:#9fb0a3;font-size:.83rem}
.modal{position:fixed;inset:0;background:rgba(4,15,8,.72);display:none;align-items:center;justify-content:center;z-index:120;padding:20px}.modal.open{display:flex}.modalCard{width:min(1000px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:28px;padding:24px;position:relative;box-shadow:var(--shadow)}.close{position:absolute;right:16px;top:16px;border:0;width:40px;height:40px;border-radius:50%;background:var(--surface2);font-size:1.25rem}.profileGrid{display:grid;grid-template-columns:.82fr 1.18fr;gap:20px;margin-top:16px}.profileInfo{display:grid;gap:10px}.meta{background:var(--surface2);border:1px solid var(--line);border-radius:14px;padding:12px}.meta small{display:block;color:var(--muted);font-weight:800}.profileSite{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#f2f5f2;min-height:390px}.profileSite iframe{width:100%;height:390px;border:0;background:#fff}.empty{grid-column:1/-1;text-align:center;padding:44px;border:1px dashed var(--line2);border-radius:22px;color:var(--muted)}.mobileNav{display:none}
@media(max-width:980px){nav{display:none;position:absolute;left:4%;right:4%;top:76px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:var(--shadow2);flex-direction:column;align-items:stretch}nav.open{display:flex}.menu{display:block;margin-left:auto}.heroGrid,.whyGrid,.cta,.profileGrid{grid-template-columns:1fr}.heroVisual{min-height:420px}.logoStage{inset:24px 60px 56px 60px}.searchPanel{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,1fr)}.resourceGrid{grid-template-columns:repeat(2,1fr)}.raceTiles{grid-template-columns:1fr 1fr}}
@media(max-width:660px){body{padding-bottom:72px}.brand span{display:none}.hero{padding-top:48px}.heroStats{grid-template-columns:1fr 1fr}.heroVisual{min-height:340px}.logoStage{inset:18px 20px 44px 20px;border-radius:28px}.float.one{left:2px}.float.two{right:2px}.grid,.resourceGrid,.whyCards,.raceTiles{grid-template-columns:1fr}.sectionHead{display:block}section{padding:56px 0}.mobileNav{position:fixed;left:10px;right:10px;bottom:10px;z-index:100;background:rgba(255,255,255,.95);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow2);display:grid;grid-template-columns:repeat(4,1fr);padding:7px}.mobileNav a{text-decoration:none;text-align:center;font-size:.68rem;font-weight:850;color:#3d5143;padding:6px 2px}.mobileNav span{display:block;font-size:1.1rem}}

header .brand img{
  width:48px;
  height:48px;
  object-fit:contain;
  background:linear-gradient(145deg,#ffffff,#eef7ef);
  padding:6px;
  border:1px solid rgba(16,32,22,.10);
  border-radius:14px;
  box-shadow:0 6px 18px rgba(11,35,18,.10);
}


/* London presentation and civic engagement sections */
.cityHero{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:20px;
  align-items:stretch;
}
.cityIntro{
  background:linear-gradient(145deg,#0f3218,#0a2411);
  color:#fff;
  border-radius:30px;
  padding:32px;
  min-height:360px;
  position:relative;
  overflow:hidden;
}
.cityIntro:after{
  content:"";
  position:absolute;
  width:330px;height:330px;border-radius:50%;
  right:-110px;bottom:-135px;
  background:rgba(97,184,58,.18);
}
.cityIntro h3{
  font-size:clamp(2rem,4vw,3.4rem);
  line-height:1.02;
  letter-spacing:-.05em;
  margin:10px 0 14px;
  max-width:650px;
}
.cityIntro p{color:#d5e2d6;max-width:680px;position:relative;z-index:1}
.cityFacts{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px;
}
.cityFact{
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:20px;
  box-shadow:0 8px 26px rgba(11,35,18,.04);
}
.cityFact .cityIcon{font-size:1.55rem}
.cityFact b{display:block;margin:8px 0 5px;font-size:1.02rem}
.cityFact p{margin:0;color:var(--muted);font-size:.88rem}
.institutions{
  margin-top:18px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}
.institution{
  background:var(--green4);
  border:1px solid var(--line);
  border-radius:18px;
  padding:17px;
}
.institution b{display:block;margin-bottom:5px}
.institution span{font-size:.82rem;color:var(--muted)}
.potentialBand{
  margin-top:18px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:22px;
}
.potentialChips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.potentialChip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 11px;
  border-radius:999px;
  background:var(--surface2);
  border:1px solid var(--line);
  font-size:.80rem;
  font-weight:850;
}
.sourceLine{
  margin-top:14px;
  color:var(--muted);
  font-size:.76rem;
}
.sourceLine a{color:var(--green);font-weight:800}

.civicShell{
  background:linear-gradient(180deg,#ffffff,#f4f8f3);
  border:1px solid var(--line);
  border-radius:34px;
  box-shadow:var(--shadow2);
  overflow:hidden;
}
.civicTop{
  padding:34px 34px 24px;
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(circle at 90% 0%,rgba(97,184,58,.15),transparent 24rem),
    #fff;
}
.civicTop h2{
  font-size:clamp(2.4rem,5vw,4.7rem);
  line-height:.98;
  letter-spacing:-.06em;
  margin:8px 0 12px;
  max-width:980px;
}
.civicTop p{max-width:780px;color:var(--muted)}
.civicArticle{
  padding:34px;
  max-width:1020px;
  margin:auto;
  font-size:1.02rem;
  line-height:1.82;
}
.civicArticle p{margin:0 0 19px}
.civicArticle h3{
  font-size:1.55rem;
  letter-spacing:-.03em;
  margin:28px 0 10px;
}
.pullQuote{
  margin:28px 0;
  padding:22px 24px;
  border-left:4px solid var(--green);
  background:var(--green4);
  border-radius:0 18px 18px 0;
  font-size:1.18rem;
  font-weight:850;
  line-height:1.5;
}
.signature{
  margin-top:34px;
  padding-top:22px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:20px;
}
.signature strong{font-size:1.2rem}
.signature span{display:block;color:var(--muted);font-size:.88rem}
.civicBadge{
  display:inline-flex;
  padding:7px 11px;
  border-radius:999px;
  background:var(--green3);
  color:#226b2c;
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
@media(max-width:980px){
  .cityHero{grid-template-columns:1fr}
  .institutions{grid-template-columns:1fr 1fr}
}
@media(max-width:660px){
  .cityFacts,.institutions{grid-template-columns:1fr}
  .cityIntro,.civicTop,.civicArticle{padding:24px}
  .signature{display:block}
}


.civicBody{
  display:grid;
  grid-template-columns:320px minmax(0,1fr);
  gap:24px;
  align-items:start;
  padding:30px 30px 34px;
}
.civicArticle{
  padding:0;
  max-width:none;
  margin:0;
}
.authorPanel{
  position:sticky;
  top:108px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:28px;
  box-shadow:var(--shadow2);
  overflow:hidden;
}
.authorPhoto{
  display:block;
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  background:#eef4ee;
}
.authorPanelBody{
  padding:18px 18px 20px;
}
.authorRole{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  background:var(--green3);
  color:#226b2c;
  font-size:.74rem;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.authorPanel h3{
  margin:12px 0 6px;
  font-size:1.45rem;
  letter-spacing:-.03em;
}
.authorPanel p{
  margin:0 0 12px;
  color:var(--muted);
  font-size:.9rem;
  line-height:1.65;
}
.authorPanel .miniSign{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid var(--line);
}
.authorPanel .miniSign strong{
  display:block;
  font-size:1.04rem;
}
.authorPanel .miniSign span{
  color:var(--muted);
  font-size:.84rem;
}
.authorLinkedin{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:12px;
  padding:10px 12px;
  border:1px solid var(--line);
  color:var(--green);
  font-size:.84rem;
  font-weight:900;
  text-decoration:none;
}
.authorLinkedin b{
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  background:#0a66c2;
  color:#fff;
  font-family:Arial,sans-serif;
  font-size:.82rem;
  line-height:1;
}
.authorLinkedin:hover{
  border-color:#0a66c2;
  color:#0a66c2;
}
@media(max-width:980px){
  .civicBody{
    grid-template-columns:1fr;
    padding:24px;
  }
  .authorPanel{
    position:relative;
    top:auto;
    max-width:520px;
    margin:auto;
  }
}


/* ============================================================
   CIVIC ATLAS 2026
   New design system: editorial public-information dashboard
   Palette: forest green + sage + warm paper + ochre
   ============================================================ */
:root{
  --bg:#f1eee5;
  --surface:#fffdf8;
  --surface2:#e8eee7;
  --ink:#17231d;
  --muted:#677168;
  --green:#2f6d50;
  --green2:#799b72;
  --mint:#dfe8dc;
  --dark:#13241d;
  --sand:#ded4bd;
  --sand2:#eee7d8;
  --ochre:#bd9144;
  --line:rgba(23,35,29,.15);
  --line2:rgba(23,35,29,.26);
  --shadow:none;
  --shadow2:none;
  --r1:12px;
  --r2:9px;
  --r3:7px;
}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.container{width:min(1320px,92%);}

/* Utility + masthead */
.topbar{
  background:var(--sand);
  color:var(--dark);
  border-bottom:1px solid rgba(23,35,29,.22);
  padding:8px 0;
}
.topbar b{color:var(--dark);}
.topbar a{color:var(--dark);text-decoration:underline;text-underline-offset:3px;}
header{
  background:var(--dark);
  padding:0;
  border:0;
  backdrop-filter:none;
}
.navshell{
  width:100%;
  background:transparent;
  border:0;
  border-radius:0;
  padding:15px 0;
  box-shadow:none;
  gap:22px;
}
.brand{color:#fff;min-width:max-content;}
.brand img,header .brand img{
  width:64px;
  height:64px;
  object-fit:contain;
  padding:7px;
  border-radius:6px;
  background:#f7f3e8;
  border:1px solid rgba(255,255,255,.24);
  box-shadow:none;
}
.brand small{color:#b9c7bd;}
nav{gap:1px;}
nav a{
  color:#e9efe9;
  border-radius:0;
  padding:10px 9px 8px;
  border-bottom:2px solid transparent;
  font-size:.82rem;
  letter-spacing:.01em;
}
nav a:hover{background:transparent;color:#fff;border-bottom-color:var(--ochre);}
.lang,.menu{
  background:transparent;
  color:#fff;
  border:1px solid rgba(255,255,255,.3);
  border-radius:4px;
}
.lang:hover,.menu:hover{background:#fff;color:var(--dark);}

/* Hero: civic briefing board, not campaign hero */
.civicHero{
  padding:0;
  background:
    linear-gradient(90deg,rgba(19,36,29,.045) 1px,transparent 1px),
    linear-gradient(rgba(19,36,29,.045) 1px,transparent 1px),
    var(--sand2);
  background-size:44px 44px;
  border-bottom:1px solid var(--line2);
}
.hero:after{display:none!important;}
.civicHeroGrid{
  min-height:560px;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);
  gap:60px;
  align-items:center;
  padding:64px 0;
}
.civicHeroCopy{max-width:790px;}
.atlasKicker{
  display:inline-block;
  border-left:5px solid var(--ochre);
  padding:4px 0 4px 12px;
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--green);
}
.civicHero h1{
  margin:20px 0 22px;
  max-width:830px;
  color:var(--dark);
  font-family:Georgia,"Times New Roman",serif;
  font-weight:700;
  font-size:clamp(3.2rem,6.3vw,6.5rem);
  line-height:.93;
  letter-spacing:-.055em;
}
.civicHero h1 span{
  color:var(--green);
  text-decoration:underline;
  text-decoration-color:rgba(189,145,68,.6);
  text-decoration-thickness:.09em;
  text-underline-offset:.11em;
}
.heroLead{
  font-size:1.12rem;
  max-width:720px;
  color:#4b5b51;
}
.actions{margin-top:28px;}
.btn{
  border-radius:4px;
  padding:12px 16px;
  box-shadow:none!important;
  font-size:.88rem;
}
.btn.primary{background:var(--dark);color:#fff;}
.btn.primary:hover{background:var(--green);}
.btn.secondary{background:transparent;border:1px solid var(--dark);color:var(--dark);}
.btn.secondary:hover{background:var(--surface);}
.electionBoard{
  background:var(--green);
  color:#fff;
  border:1px solid #1d4c36;
  border-radius:6px;
  padding:26px;
  box-shadow:18px 18px 0 var(--ochre);
}
.boardBrand{display:flex;align-items:center;gap:16px;}
.boardLogo{
  width:72px;height:72px;
  background:#f7f3e8;
  border-radius:3px;
  padding:8px;
  display:grid;place-items:center;
}
.boardLogo img{width:100%;height:100%;object-fit:contain;}
.boardBrand strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:1.7rem;line-height:1.05;}
.boardOverline{display:block;font-size:.66rem;font-weight:900;letter-spacing:.16em;color:#d6e4d7;margin-bottom:5px;}
.boardRule{height:1px;background:rgba(255,255,255,.25);margin:22px 0;}
.boardStats{display:grid;grid-template-columns:1fr 1fr;border:1px solid rgba(255,255,255,.24);}
.boardStats div{padding:17px;border-right:1px solid rgba(255,255,255,.24);border-bottom:1px solid rgba(255,255,255,.24);}
.boardStats div:nth-child(2n){border-right:0}
.boardStats div:nth-last-child(-n+2){border-bottom:0}
.boardStats strong{display:block;font-size:2rem;font-family:Georgia,"Times New Roman",serif;}
.boardStats span{font-size:.75rem;color:#dae7dc;}
.candidateMeta{
  margin:12px 0 0;
  color:#d6e4d7;
  font-size:.73rem;
  line-height:1.45;
}
.boardOfficial{
  margin-top:18px;
  display:flex;justify-content:space-between;align-items:center;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.22);
  color:#fff;text-decoration:none;font-weight:850;font-size:.84rem;
}

/* Search: command bar */
.searchDock{padding:24px 0 6px;background:var(--bg);}
.searchPanel{
  background:var(--surface);
  border:1px solid var(--line2);
  border-radius:0;
  padding:16px;
  box-shadow:none;
}
.field label{color:var(--green);font-size:.68rem;}
.field input,.field select{
  border-radius:2px;
  background:#fff;
  border-color:var(--line2);
}
.field input:focus,.field select:focus{box-shadow:0 0 0 2px rgba(47,109,80,.15);}

.wardFinderSection{
  padding:28px 0 70px;
  background:var(--bg);
}
.wardFinderShell{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
  align-items:start;
  border-top:4px solid var(--dark);
  padding-top:18px;
}
.wardFinderCopy h2{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2rem,4vw,3.6rem);
  line-height:1;
  letter-spacing:-.04em;
  margin:10px 0 12px;
}
.wardFinderCopy p{
  color:var(--muted);
  max-width:620px;
  margin:0 0 14px;
}
.wardFinderCopy a{
  color:var(--green);
  font-weight:900;
  text-decoration:none;
}
.wardLookupForm{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:end;
  background:var(--surface);
  border:1px solid var(--line2);
  padding:16px;
}
.wardLookupStatus{
  grid-column:1/-1;
  min-height:22px;
  color:var(--muted);
  font-weight:850;
}
.wardLookupStatus.error{
  color:#9b2c2c;
}
.wardLookupResult{
  margin-top:22px;
}
.wardResultCard{
  display:grid;
  grid-template-columns:1fr auto;
  gap:18px;
  align-items:center;
  background:#f8f6ef;
  border:1px solid var(--line2);
  padding:18px;
}
.wardResultCard h3{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.8rem,3vw,3rem);
  line-height:1;
  margin:8px 0;
}
.wardResultCard p{
  margin:0;
  color:var(--muted);
}
.wardResultActions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.wardCandidateBlock{
  border:1px solid var(--line2);
  border-top:0;
  background:#fff;
  padding:18px;
}
.wardCandidateBlock h4{
  margin:0 0 12px;
  color:var(--green);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.78rem;
}
.wardLookupCandidates{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}
.wardLookupCandidate{
  border:1px solid var(--line);
  background:#fcfdfc;
  padding:13px;
  display:grid;
  gap:6px;
}
.wardLookupCandidate strong{
  line-height:1.15;
}
.wardLookupCandidate span{
  color:var(--muted);
  font-size:.86rem;
}
.wardLookupCandidate div{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.wardLookupCandidate a{
  color:var(--green);
  font-size:.84rem;
  font-weight:900;
  text-decoration:none;
}

/* Editorial section system */
section{padding:78px 0;}
.sectionBand{background:#e8e4d9;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.sectionHead{
  align-items:start;
  border-top:4px solid var(--dark);
  padding-top:16px;
  margin-bottom:28px;
}
.sectionHead h2,.cityIntro h3,.civicTop h2,.cta h2{
  font-family:Georgia,"Times New Roman",serif;
}
.sectionHead h2{
  font-size:clamp(2.2rem,4.5vw,4rem);
  letter-spacing:-.04em;
}
.eyebrow,.atlasLabel,.civicBadge{
  border-radius:0!important;
  background:transparent!important;
  color:var(--green)!important;
  padding:0!important;
  letter-spacing:.13em!important;
  font-size:.68rem!important;
}
.raceTiles{
  grid-template-columns:1fr;
  gap:0;
  border-top:1px solid var(--line2);
}
.raceTile{
  display:grid;
  grid-template-columns:70px 1fr auto;
  align-items:center;
  gap:18px;
  border:0;
  border-bottom:1px solid var(--line2);
  border-radius:0;
  background:transparent;
  padding:22px 6px;
  box-shadow:none;
}
.raceTile:hover{transform:none;background:rgba(255,255,255,.42);box-shadow:none;}
.raceTile i{font-size:1.4rem;}
.raceTile strong{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:1.55rem;}
.raceTile span{text-align:right;color:var(--muted);}

/* Candidate directory: horizontal records with live site window */
.grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.candidate{
  display:grid;
  grid-template-columns:200px minmax(0,1fr);
  min-height:225px;
  background:var(--surface);
  border:1px solid var(--line2);
  border-left:6px solid var(--green);
  border-radius:3px;
  overflow:hidden;
  box-shadow:none;
  transition:border-color .2s ease,background .2s ease;
}
.candidate:hover{
  transform:none;
  box-shadow:none;
  border-color:var(--green);
  background:#fff;
}
.preview{
  height:auto;
  min-height:225px;
  border:0;
  border-right:1px solid var(--line);
  background:#e4e8e1;
}
.browserbar{
  height:25px;
  background:#d9ddd7;
  border-bottom:1px solid var(--line);
}
.preview iframe{
  width:165%;
  height:165%;
  transform:scale(.605);
  transform-origin:0 0;
}
.domainStrip{
  border-radius:0;
  left:0;right:0;bottom:0;
  border:0;border-top:1px solid var(--line);
  background:rgba(255,253,248,.96);
  box-shadow:none;
  font-size:.66rem;
}
.noWebsite{background:var(--surface2);}
.cardBody{padding:17px 18px;}
.category{color:var(--ochre);font-size:.64rem;}
.candidate h3{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.32rem;
  letter-spacing:-.02em;
}
.group{min-height:auto;}
.contact{font-size:.78rem;}
.cardActions{gap:6px;}
.cardActions .btn{font-size:.74rem;padding:9px 10px;}
.siteHint{font-size:.65rem;}
.tabs{gap:4px;}
.tab{
  border-radius:0;
  background:transparent;
  border:1px solid var(--line2);
  padding:8px 11px;
}
.tab.active{background:var(--green);border-color:var(--green);}

/* London city section */
.cityHero{gap:0;border:1px solid var(--line2);}
.cityIntro{
  border-radius:0;
  background:var(--dark);
  padding:34px;
}
.cityIntro:after{display:none;}
.cityFacts{gap:0;}
.cityFact{
  border:0;
  border-left:1px solid var(--line);
  border-bottom:1px solid var(--line);
  border-radius:0;
  box-shadow:none;
  background:var(--surface);
}
.institutions{gap:0;border:1px solid var(--line2);}
.institution{
  border:0;
  border-right:1px solid var(--line);
  border-radius:0;
  background:var(--sand2);
}
.institution:last-child{border-right:0;}
.potentialBand{border-radius:0;border-color:var(--line2);box-shadow:none;}
.potentialChip{border-radius:2px;background:var(--surface2);}

/* Territory acknowledgement */
.territorySection{
  background:var(--dark);
  color:#f4f0e7;
  border-top:8px solid var(--ochre);
  border-bottom:8px solid var(--green2);
}
.territoryGrid{
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  gap:70px;
  align-items:start;
}
.territoryHeading{
  position:sticky;
  top:100px;
}
.chapterNumber{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:5rem;
  line-height:.8;
  color:rgba(255,255,255,.12);
  margin-bottom:18px;
}
.territoryHeading h2{
  margin:10px 0 14px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.4rem,4.4vw,4.3rem);
  line-height:1.02;
  letter-spacing:-.045em;
}
.territoryHeading p{color:#c4d0c7;}
.territoryContent{border-left:1px solid rgba(255,255,255,.2);padding-left:32px;}
.territoryStatement{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.18rem;
  line-height:1.68;
  color:#f7f4ed;
}
.territoryFacts{margin-top:30px;border-top:1px solid rgba(255,255,255,.22);}
.territoryFact{
  display:grid;
  grid-template-columns:54px 1fr;
  gap:16px;
  padding:20px 0;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.territoryFact>span{
  color:var(--ochre);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.3rem;
}
.territoryFact b{display:block;color:#fff;margin-bottom:5px;}
.territoryFact p{margin:0;color:#bdc9c0;font-size:.9rem;}
.territorySources{margin-top:26px;display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.territorySources a{
  display:flex;justify-content:space-between;gap:15px;align-items:center;
  border:1px solid rgba(255,255,255,.24);
  padding:13px;
  color:#fff;text-decoration:none;font-size:.78rem;font-weight:800;
}
.territorySources a:hover{background:rgba(255,255,255,.07);}

/* Civic article: newspaper / editorial column */
.civicShell{
  background:var(--surface);
  border:1px solid var(--line2);
  border-radius:0;
  box-shadow:none;
}
.civicTop{
  background:var(--sand2);
  border-bottom:1px solid var(--line2);
  padding:30px 34px;
}
.civicTop h2{
  max-width:1050px;
  font-size:clamp(2.4rem,4.5vw,4.5rem);
  letter-spacing:-.045em;
}
.civicBody{
  grid-template-columns:280px minmax(0,1fr);
  gap:0;
  padding:0;
}
.authorPanel{
  position:sticky;
  top:96px;
  border:0;
  border-right:1px solid var(--line2);
  border-radius:0;
  box-shadow:none;
  background:var(--green);
  color:#fff;
}
.authorPhoto{border-radius:0;aspect-ratio:4/5;}
.authorPanelBody{padding:20px;}
.authorPanel h3{font-family:Georgia,"Times New Roman",serif;font-size:1.6rem;}
.authorPanel p,.authorPanel .miniSign span{color:#d7e2d8;}
.authorRole{border-radius:0;background:transparent;color:#e7d5ab;border-bottom:1px solid rgba(255,255,255,.25);padding:0 0 8px;}
.authorPanel .miniSign{border-top-color:rgba(255,255,255,.25);}
.authorLinkedin{border-color:rgba(255,255,255,.28);color:#fff;}
.authorLinkedin:hover{border-color:#8bbdf1;color:#8bbdf1;}
.civicArticle{
  padding:34px 42px;
  max-width:900px;
  font-size:1rem;
}
.civicArticle h3{font-family:Georgia,"Times New Roman",serif;}
.pullQuote{
  border:0;
  border-top:3px solid var(--ochre);
  border-bottom:1px solid var(--line2);
  border-radius:0;
  background:transparent;
  padding:20px 0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.35rem;
}

/* Candidate comparison */
.compareSection{background:var(--surface);}
.compareShell{
  border:1px solid var(--line2);
  background:#fff;
}
.compareControls{
  display:grid;
  grid-template-columns:minmax(240px,320px) 1fr;
  gap:18px;
  align-items:end;
  padding:18px;
  border-bottom:1px solid var(--line2);
}
.compareHint{
  color:var(--muted);
  font-size:.9rem;
  line-height:1.5;
}
.compareList{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding:18px;
  border-bottom:1px solid var(--line2);
}
.compareChoice{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--line2);
  background:var(--surface2);
  padding:9px 12px;
  font-weight:850;
  font-size:.86rem;
  cursor:pointer;
}
.compareChoice.active{
  border-color:var(--green);
  background:#eef7ed;
  color:var(--green);
}
.compareChoice:has(input:disabled){
  opacity:.52;
  cursor:not-allowed;
}
.compareTableWrap{
  overflow-x:auto;
  border-bottom:1px solid var(--line2);
}
.compareTable{
  width:100%;
  min-width:760px;
  border-collapse:collapse;
  font-size:.92rem;
}
.compareTable th,.compareTable td{
  border-right:1px solid var(--line2);
  border-bottom:1px solid var(--line2);
  padding:14px;
  text-align:left;
  vertical-align:top;
}
.compareTable th:first-child{
  width:190px;
  color:var(--green);
  background:var(--surface2);
}
.compareTable thead th{
  background:#10251a;
  color:#fff;
}
.compareTable thead th small{
  display:block;
  color:#c7d8cb;
  font-weight:700;
  margin-top:3px;
}
.compareTable a{
  color:var(--green);
  font-weight:900;
}
.compareLimit{
  margin:0;
  padding:12px 18px 0;
  color:var(--muted);
  font-size:.82rem;
}
.compareMessage{
  padding:18px;
  display:grid;
  grid-template-columns:240px 1fr;
  gap:20px;
  align-items:start;
  background:var(--sand2);
}
.compareMessage strong{
  color:var(--green);
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.25rem;
}
.compareMessage p{
  margin:0;
  color:var(--muted);
  line-height:1.65;
}

/* Why + resources */
.whyGrid{gap:0;border:1px solid var(--line2);}
.whyBig{border-radius:0;background:var(--green);min-height:380px;}
.whyBig:after{display:none;}
.whyBig h3{font-family:Georgia,"Times New Roman",serif;}
.whyCards{gap:0;}
.whyCard{border-radius:0;border:0;border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);}
.resourceGrid{gap:0;border-top:1px solid var(--line2);border-left:1px solid var(--line2);}
.resource{border-radius:0;border:0;border-right:1px solid var(--line2);border-bottom:1px solid var(--line2);background:var(--surface);}
.cta{border-radius:0;background:var(--sand2);border:1px solid var(--line2);}
footer{background:#0d1813;border-top:6px solid var(--ochre);}

/* Modals */
.modalCard{border-radius:3px;background:var(--surface);}
.close{border-radius:0;}

/* Mobile */
@media(max-width:1080px){
  nav a{font-size:.76rem;padding:9px 6px;}
  .civicHeroGrid{grid-template-columns:1fr;min-height:auto;}
  .electionBoard{max-width:700px;}
  .territoryGrid{grid-template-columns:1fr;gap:30px;}
  .territoryHeading{position:relative;top:auto;}
  .territoryContent{border-left:0;padding-left:0;}
}
@media(max-width:880px){
  .grid{grid-template-columns:1fr;}
  .candidate{grid-template-columns:190px 1fr;}
  .institutions{grid-template-columns:1fr 1fr;}
  .compareControls,.compareMessage{grid-template-columns:1fr;}
  .wardFinderShell,.wardResultCard{grid-template-columns:1fr;}
  .wardResultActions{justify-content:flex-start;}
  .wardLookupCandidates{grid-template-columns:1fr 1fr;}
  nav{background:var(--dark)!important;border-radius:0!important;}
  nav a{border-bottom:1px solid rgba(255,255,255,.12);}
}
@media(max-width:660px){
  .civicHeroGrid{padding:44px 0;}
  .civicHero h1{font-size:clamp(2.8rem,16vw,4.5rem);}
  .electionBoard{box-shadow:9px 9px 0 var(--ochre);padding:18px;}
  .boardStats{grid-template-columns:1fr 1fr;}
  .searchPanel{border-left:5px solid var(--green);}
  .wardLookupForm{grid-template-columns:1fr;}
  .wardLookupCandidates{grid-template-columns:1fr;}
  .candidate{grid-template-columns:1fr;}
  .preview{min-height:190px;border-right:0;border-bottom:1px solid var(--line);}
  .raceTile{grid-template-columns:48px 1fr;}
  .raceTile>span{grid-column:2;text-align:left;}
  .territorySources{grid-template-columns:1fr;}
  .civicBody{grid-template-columns:1fr!important;}
  .authorPanel{position:relative;top:auto;border-right:0;border-bottom:1px solid var(--line2);}
  .authorPhoto{aspect-ratio:16/10;}
  .civicArticle{padding:26px 22px;}
  .institutions{grid-template-columns:1fr;}
  .institution{border-right:0;border-bottom:1px solid var(--line);}
  .mobileNav{
    background:var(--dark)!important;
    border-radius:3px!important;
    border:1px solid rgba(255,255,255,.15)!important;
  }
  .mobileNav a{color:#fff!important;}
}


/* Enhanced website preview, Rachid Barrima profile */
.rbPreview{
  border:1px solid var(--line2);
  background:#f5f1e7;
  min-height:520px;
  display:flex;
  flex-direction:column;
}
.rbBrowser{
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 11px;
  background:#d9ddd7;
  border-bottom:1px solid var(--line2);
}
.rbBrowserDots{display:flex;gap:5px}
.rbBrowserDots i{display:block;width:8px;height:8px;border-radius:50%;background:#aab4ab}
.rbAddress{
  flex:1;
  background:#f8faf7;
  border:1px solid rgba(23,35,29,.12);
  padding:6px 10px;
  font-size:.72rem;
  color:#59675d;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.rbViewSwitch{
  display:flex;
  gap:4px;
}
.rbViewSwitch button{
  border:1px solid rgba(23,35,29,.18);
  background:#f7f3e8;
  color:var(--dark);
  padding:6px 9px;
  font-size:.68rem;
  font-weight:900;
  cursor:pointer;
}
.rbViewSwitch button.active{background:var(--dark);color:#fff}
.rbSiteMock{
  flex:1;
  background:#fbfaf5;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  min-height:440px;
}
.rbMockCopy{
  padding:28px 26px 22px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-right:1px solid var(--line);
}
.rbMockKicker{
  color:var(--green);
  font-size:.67rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.12em;
  margin-bottom:10px;
}
.rbMockCopy h3{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(1.8rem,3vw,2.8rem);
  line-height:1.02;
  letter-spacing:-.045em;
  margin:0 0 13px;
  color:var(--dark);
}
.rbMockCopy p{
  margin:0 0 18px;
  color:#58675d;
  font-size:.88rem;
}
.rbMockActions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}
.rbMiniBtn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 11px;
  border:1px solid var(--dark);
  text-decoration:none;
  font-size:.72rem;
  font-weight:900;
}
.rbMiniBtn.primary{background:var(--dark);color:#fff}
.rbMiniBtn.secondary{background:transparent;color:var(--dark)}
.rbMockPortrait{
  position:relative;
  overflow:hidden;
  min-height:310px;
  background:linear-gradient(145deg,#1a2c23,#53665a);
}
.rbMockPortrait img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 24%;
  display:block;
}
.rbMockPortrait:after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:34%;
  background:linear-gradient(transparent,rgba(10,26,16,.72));
}
.rbPortraitLabel{
  position:absolute;
  left:17px;
  right:17px;
  bottom:15px;
  color:#fff;
  z-index:2;
}
.rbPortraitLabel strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.18rem;
}
.rbPortraitLabel span{font-size:.72rem;color:#e0e9e2}
.rbMockStats{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line2);
  background:#e5eadf;
}
.rbMockStats div{
  padding:12px 14px;
  border-right:1px solid var(--line);
}
.rbMockStats div:last-child{border-right:0}
.rbMockStats strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.3rem;
  color:var(--green);
}
.rbMockStats span{font-size:.67rem;color:var(--muted)}
.rbPriorityRow{
  grid-column:1/-1;
  padding:12px 14px;
  border-top:1px solid var(--line);
  background:#fffdf8;
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.rbPriorityRow span{
  padding:5px 8px;
  border:1px solid var(--line);
  background:#f0ede4;
  font-size:.64rem;
  font-weight:850;
  color:#425248;
}
.rbLive{
  flex:1;
  min-height:440px;
  display:none;
  background:#fff;
}
.rbLive iframe{
  width:100%;
  height:520px;
  border:0;
  background:#fff;
}
.rbPreviewFooter{
  padding:10px 12px;
  background:var(--dark);
  color:#dbe5dd;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:.72rem;
}
.rbPreviewFooter a{color:#fff;font-weight:900}
@media(max-width:760px){
  .rbSiteMock{grid-template-columns:1fr}
  .rbMockCopy{border-right:0;border-bottom:1px solid var(--line)}
  .rbMockPortrait{min-height:280px}
  .rbMockStats{grid-template-columns:1fr 1fr 1fr}
  .rbViewSwitch{display:none}
}


/* ============================================================
   Premium Rachid Barrima preview, card + full profile microsite
   ============================================================ */
.rbCardPreview{
  min-height:225px;
  background:#13241d;
  color:#fff;
  position:relative;
  overflow:hidden;
  border-right:1px solid var(--line);
}
.rbCardPreview img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 18%;
}
.rbCardPreview:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(9,28,18,.08) 10%,rgba(9,28,18,.15) 40%,rgba(9,28,18,.94) 100%);
}
.rbCardTop{
  position:absolute;
  left:10px;
  right:10px;
  top:10px;
  z-index:2;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
}
.rbCardBrand,.rbCardDistrict{
  background:rgba(255,253,248,.92);
  color:var(--dark);
  border:1px solid rgba(255,255,255,.4);
  padding:5px 7px;
  font-size:.57rem;
  font-weight:950;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.rbCardBottom{
  position:absolute;
  left:12px;
  right:12px;
  bottom:12px;
  z-index:2;
}
.rbCardBottom b{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.22rem;
  line-height:1.02;
  margin-bottom:4px;
}
.rbCardBottom span{
  display:block;
  font-size:.66rem;
  color:#dce7df;
}
.rbCardLine{
  width:48px;
  height:3px;
  background:var(--ochre);
  margin:8px 0 7px;
}
.rbCardPills{
  display:flex;
  gap:4px;
  flex-wrap:wrap;
}
.rbCardPills i{
  font-style:normal;
  border:1px solid rgba(255,255,255,.32);
  background:rgba(255,255,255,.08);
  padding:3px 5px;
  font-size:.52rem;
  color:#fff;
}

/* Larger modal preview */
.rbPreviewPremium{
  border:1px solid var(--line2);
  background:#f8f5ec;
  min-height:620px;
  display:flex;
  flex-direction:column;
}
.rbPBrowser{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:10px;
  padding:9px 11px;
  background:#d9ddd7;
  border-bottom:1px solid var(--line2);
}
.rbPBrowserDots{display:flex;gap:5px}
.rbPBrowserDots i{display:block;width:8px;height:8px;border-radius:50%;background:#abb6ad}
.rbPAddress{
  background:#f8faf7;
  border:1px solid rgba(23,35,29,.14);
  padding:6px 10px;
  font-size:.70rem;
  color:#59675d;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.rbPTabs{display:flex;gap:3px}
.rbPTabs button{
  border:1px solid rgba(23,35,29,.18);
  background:#f7f3e8;
  color:var(--dark);
  padding:6px 8px;
  font-size:.64rem;
  font-weight:900;
}
.rbPTabs button.active{background:var(--dark);color:#fff}
.rbPView{display:none;min-height:550px}
.rbPView.active{display:block}

/* HOME */
.rbHome{
  background:#fffdf8;
}
.rbSiteNav{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:18px;
  padding:13px 16px;
  border-bottom:1px solid var(--line);
  background:#fff;
}
.rbSiteIdentity{
  display:flex;
  align-items:center;
  gap:8px;
}
.rbSiteMark{
  width:30px;height:30px;
  display:grid;place-items:center;
  background:var(--green);
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:900;
  font-size:.78rem;
}
.rbSiteIdentity strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:.95rem;
  line-height:1;
}
.rbSiteNavLinks{
  display:flex;
  justify-content:center;
  gap:13px;
  font-size:.60rem;
  font-weight:850;
  color:#536158;
}
.rbSiteVote{
  background:var(--dark);
  color:#fff;
  padding:6px 8px;
  font-size:.58rem;
  font-weight:900;
}
.rbHeroMini{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  min-height:315px;
  border-bottom:1px solid var(--line);
}
.rbHeroCopy{
  padding:30px 26px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:
    linear-gradient(90deg,rgba(19,36,29,.035) 1px,transparent 1px),
    linear-gradient(rgba(19,36,29,.035) 1px,transparent 1px),
    #f4f0e6;
  background-size:28px 28px;
}
.rbHeroKicker{
  color:var(--green);
  font-size:.60rem;
  font-weight:950;
  letter-spacing:.13em;
  text-transform:uppercase;
  margin-bottom:10px;
}
.rbHeroCopy h3{
  margin:0 0 12px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:2.25rem;
  line-height:.96;
  letter-spacing:-.05em;
  color:var(--dark);
}
.rbHeroCopy p{
  margin:0 0 17px;
  font-size:.77rem;
  color:#59675e;
  max-width:440px;
}
.rbHeroCta{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.rbHeroCta a{
  text-decoration:none;
  padding:7px 9px;
  font-size:.61rem;
  font-weight:900;
  border:1px solid var(--dark);
}
.rbHeroCta a:first-child{background:var(--dark);color:#fff}
.rbHeroCta a:last-child{color:var(--dark)}
.rbHeroPhoto{
  position:relative;
  overflow:hidden;
  background:#1a2e23;
}
.rbHeroPhoto img{
  width:100%;
  height:100%;
  min-height:315px;
  object-fit:cover;
  object-position:center 20%;
  display:block;
}
.rbHeroPhoto:after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:36%;
  background:linear-gradient(transparent,rgba(9,25,16,.78));
}
.rbPhotoCaption{
  position:absolute;
  left:16px;
  right:16px;
  bottom:13px;
  z-index:2;
  color:#fff;
}
.rbPhotoCaption b{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.05rem;
  display:block;
}
.rbPhotoCaption span{font-size:.62rem;color:#dce7df}
.rbMetricStrip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:#e3e9df;
  border-bottom:1px solid var(--line);
}
.rbMetricStrip div{
  padding:12px 13px;
  border-right:1px solid var(--line);
}
.rbMetricStrip div:last-child{border-right:0}
.rbMetricStrip strong{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  color:var(--green);
  font-size:1.15rem;
}
.rbMetricStrip span{font-size:.57rem;color:var(--muted)}
.rbFeatureStrip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
}
.rbFeature{
  padding:14px 14px 16px;
  border-right:1px solid var(--line);
  background:#fffdf8;
}
.rbFeature:last-child{border-right:0}
.rbFeature small{
  color:var(--ochre);
  font-weight:950;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:.52rem;
}
.rbFeature b{
  display:block;
  margin:5px 0 4px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:.92rem;
}
.rbFeature p{
  margin:0;
  font-size:.60rem;
  color:#69756d;
}

/* PRIORITIES */
.rbPrioritiesView{
  background:#f4f0e6;
  padding:24px;
}
.rbPrioritiesIntro{
  display:grid;
  grid-template-columns:1fr auto;
  gap:22px;
  align-items:end;
  margin-bottom:18px;
}
.rbPrioritiesIntro h3{
  font-family:Georgia,"Times New Roman",serif;
  margin:4px 0 0;
  font-size:2rem;
  letter-spacing:-.04em;
}
.rbPriorityCount{
  font-family:Georgia,"Times New Roman",serif;
  font-size:3.4rem;
  color:rgba(47,109,80,.22);
}
.rbPriorityGrid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.rbPriorityCard{
  background:#fff;
  border:1px solid var(--line);
  padding:15px;
}
.rbPriorityCard span{
  display:block;
  color:var(--ochre);
  font-size:.55rem;
  font-weight:950;
  letter-spacing:.1em;
}
.rbPriorityCard b{
  display:block;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.02rem;
  margin:5px 0;
}
.rbPriorityCard p{
  margin:0;
  color:#657168;
  font-size:.65rem;
}
.rbPriorityQuote{
  margin-top:10px;
  background:var(--green);
  color:#fff;
  padding:17px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.05rem;
  line-height:1.35;
}

/* ABOUT */
.rbAboutView{
  display:grid;
  grid-template-columns:.78fr 1.22fr;
  min-height:550px;
}
.rbAboutPhoto{
  min-height:550px;
  background:#1d3026;
  overflow:hidden;
}
.rbAboutPhoto img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 18%;
}
.rbAboutCopy{
  background:#fffdf8;
  padding:28px 26px;
}
.rbAboutCopy h3{
  font-family:Georgia,"Times New Roman",serif;
  font-size:2rem;
  margin:5px 0 12px;
  letter-spacing:-.04em;
}
.rbAboutCopy p{
  color:#5c695f;
  font-size:.74rem;
  line-height:1.65;
}
.rbLinkedin{
  display:inline-flex;
  align-items:center;
  gap:9px;
  width:max-content;
  margin-top:14px;
  padding:11px 14px;
  border:1px solid #0a66c2;
  background:#fff;
  color:#0a66c2;
  font-weight:900;
  font-size:.82rem;
  text-decoration:none;
}
.rbLinkedin b{
  display:grid;
  place-items:center;
  width:23px;
  height:23px;
  background:#0a66c2;
  color:#fff;
  font-family:Arial,sans-serif;
  font-size:.84rem;
  line-height:1;
}
.rbLinkedin:hover{
  background:#eef6ff;
}
.rbTimeline{
  margin-top:17px;
  border-top:1px solid var(--line);
}
.rbTimelineItem{
  display:grid;
  grid-template-columns:70px 1fr;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
.rbTimelineItem span{
  color:var(--green);
  font-weight:950;
  font-size:.62rem;
}
.rbTimelineItem b{
  display:block;
  font-size:.70rem;
}
.rbTimelineItem small{
  color:var(--muted);
  font-size:.60rem;
}

/* LIVE */
.rbLiveView{
  background:#fff;
  min-height:550px;
}
.rbLiveView iframe{
  width:100%;
  height:550px;
  border:0;
  background:#fff;
}
.rbPFooter{
  padding:10px 12px;
  background:var(--dark);
  color:#dce7df;
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  font-size:.66rem;
}
.rbPFooter a{color:#fff;font-weight:900}
@media(max-width:760px){
  .rbPTabs{display:none}
  .rbHeroMini,.rbAboutView{grid-template-columns:1fr}
  .rbMetricStrip{grid-template-columns:1fr 1fr}
  .rbFeatureStrip,.rbPriorityGrid{grid-template-columns:1fr}
  .rbHeroPhoto img{min-height:290px}
  .rbAboutPhoto{min-height:320px}
  .rbCardPreview{border-right:0;border-bottom:1px solid var(--line)}
}


/* Civic section, first content section, author + logo visual balance */
.civicSideRail{
  display:grid;
  gap:16px;
  align-self:start;
}
.civicSideRail .authorPanel{
  position:relative;
  top:auto;
  width:100%;
}
.civicSideRail .authorPhoto,
.civicLogoFrame{
  width:100%;
  aspect-ratio:4/5;
  min-height:0;
}
.civicSideRail .authorPhoto{
  object-fit:cover;
  object-position:center 18%;
}
.civicLogoPanel{
  background:var(--surface);
  border:1px solid var(--line2);
  color:var(--ink);
}
.civicLogoFrame{
  display:grid;
  place-items:center;
  background:
    linear-gradient(90deg,rgba(19,36,29,.035) 1px,transparent 1px),
    linear-gradient(rgba(19,36,29,.035) 1px,transparent 1px),
    #f1ede3;
  background-size:28px 28px;
  padding:22px;
  border-bottom:1px solid var(--line2);
  overflow:hidden;
}
.civicLogoFrame img{
  width:100%;
  height:100%;
  object-fit:contain;
  background:#fffdf8;
  border:1px solid var(--line);
  padding:12px;
}
.civicLogoBody{
  padding:20px;
}
.civicLogoBody h3{
  font-family:Georgia,"Times New Roman",serif;
  margin:10px 0 7px;
  font-size:1.5rem;
}
.civicLogoBody p{
  margin:0;
  color:var(--muted);
  font-size:.86rem;
  line-height:1.6;
}
#civic{
  scroll-margin-top:86px;
}
#civic .civicTop{
  border-top:6px solid var(--ochre);
}
.voteMotivationSection{
  scroll-margin-top:86px;
  background:var(--green);
  color:#fff;
}
.motivationShell{
  display:grid;
  gap:24px;
}
.motivationIntro{
  max-width:980px;
}
.motivationIntro .eyebrow{
  background:rgba(255,255,255,.12);
  color:#e7d5ab;
}
.motivationIntro h2{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.6rem,7vw,5.6rem);
  line-height:.95;
  letter-spacing:-.045em;
  margin:14px 0 16px;
}
.motivationIntro p{
  max-width:850px;
  color:#d9e4dc;
  font-size:1.08rem;
  line-height:1.7;
  margin:0;
}
.motivationGrid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
}
.motivationGrid article{
  min-height:230px;
  display:flex;
  flex-direction:column;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.07);
  padding:16px;
}
.motivationGrid span{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  margin-bottom:20px;
  background:#e7d5ab;
  color:var(--green);
  font-weight:950;
}
.motivationGrid b{
  display:block;
  font-size:1rem;
  line-height:1.25;
  margin-bottom:8px;
}
.motivationGrid p{
  margin:0;
  color:#d7e2d8;
  font-size:.88rem;
  line-height:1.55;
}
.motivationCallout{
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  gap:22px;
  align-items:center;
  border-top:5px solid var(--ochre);
  background:#fffdf8;
  color:var(--ink);
  padding:24px;
}
.motivationCallout strong{
  font-family:Georgia,"Times New Roman",serif;
  color:var(--green);
  font-size:1.65rem;
  line-height:1.12;
}
.motivationCallout p{
  margin:0;
  color:var(--muted);
  line-height:1.65;
}
.termsSection{
  scroll-margin-top:86px;
}
.termsShell{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:18px;
  padding:28px;
}
.termsNotice{
  margin:-4px 0 22px;
  padding:13px 15px;
  border-left:5px solid var(--ochre);
  background:#f4efe2;
  color:#4f5d53;
  font-weight:800;
}
.termsGrid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.termClause{
  border:1px solid var(--line);
  background:#fffdf8;
  padding:16px;
}
.termClause b{
  display:block;
  color:var(--green);
  margin-bottom:8px;
  font-size:.92rem;
}
.termClause p{
  margin:0;
  color:#596860;
  font-size:.9rem;
  line-height:1.58;
}
.termsSources{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--line);
}
.termsSources a{
  border:1px solid var(--line2);
  padding:9px 11px;
  color:var(--green);
  background:#fff;
  font-size:.82rem;
  font-weight:900;
  text-decoration:none;
}
.termsSources a:hover{
  border-color:var(--green);
}
.contactShell{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:24px;
  align-items:start;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:18px;
  padding:28px;
}
.contactIntro h2{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.1rem,4vw,3.65rem);
  line-height:1;
  letter-spacing:-.045em;
  margin:12px 0 14px;
}
.contactIntro p{
  color:var(--muted);
  max-width:560px;
  margin:0 0 18px;
}
.contactForm{
  display:grid;
  gap:14px;
  background:#f8f6ef;
  border:1px solid var(--line);
  border-radius:14px;
  padding:18px;
}
.contactTrap{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  opacity:0;
}
.contactForm textarea{
  width:100%;
  resize:vertical;
  min-height:160px;
  border:1px solid var(--line2);
  background:#fcfdfc;
  border-radius:13px;
  padding:12px 13px;
  outline:none;
}
.contactForm textarea:focus{
  border-color:var(--green);
  box-shadow:0 0 0 4px rgba(47,109,80,.10);
}
.contactForm select[multiple]{
  min-height:230px;
  line-height:1.35;
}
.contactForm select[multiple] option{
  padding:8px 10px;
}
.fieldHelp,
.messageMeta{
  color:var(--muted);
  font-size:.76rem;
  line-height:1.45;
}
.messageMeta{
  display:flex;
  justify-content:space-between;
  gap:14px;
}
#messageWordCount.overLimit{
  color:#9b2c2c;
  font-weight:900;
}
.contactSubmit{
  justify-self:start;
}
.contactSubmit:disabled{
  cursor:progress;
  opacity:.72;
}
.contactStatus{
  min-height:22px;
  color:var(--muted);
  font-weight:800;
}
.contactStatus.success{
  color:#236b2c;
}
.contactStatus.error{
  color:#9b2c2c;
}
@media(max-width:980px){
  .civicSideRail{
    grid-template-columns:1fr 1fr;
    max-width:none;
    width:100%;
  }
  .contactShell{
    grid-template-columns:1fr;
  }
  .termsGrid{
    grid-template-columns:1fr;
  }
  .motivationGrid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .motivationCallout{
    grid-template-columns:1fr;
  }
}
@media(max-width:660px){
  .civicSideRail{
    grid-template-columns:1fr;
  }
  .contactShell{
    padding:20px;
  }
  .contactForm{
    padding:14px;
  }
  .termsShell{
    padding:20px;
  }
  .motivationGrid{
    grid-template-columns:1fr;
  }
  .motivationGrid article{
    min-height:0;
  }
  .motivationCallout{
    padding:20px;
  }
}

/* Production hardening */
.menu[aria-expanded="true"]{background:var(--mint);color:var(--dark)}
.candidate a,.resource a,.topbar a,.footerGrid a{text-underline-offset:3px}
.candidate a:focus-visible,.btn:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{
  outline:3px solid rgba(189,145,68,.75);
  outline-offset:3px;
}
@media(max-width:660px){
  h1{font-size:48px!important;line-height:.94;letter-spacing:-.045em;max-width:100%;overflow-wrap:normal}
  .heroLead{max-width:100%}
  .mobileNav{grid-template-columns:repeat(6,minmax(0,1fr))}
  .mobileNav a{min-width:0}
  .mobileNav b{display:block;white-space:nowrap;font-size:.62rem}
}
@media(max-width:390px){
  h1{font-size:44px!important}
  .mobileNav b{font-size:.58rem}
}
