:root{
  --navy:#221C18;
  --navy-deep:#171210;
  --navy-soft:#2E2620;
  --ivory:#F7F6F2;
  --paper:#FCFCFA;
  --line-ox:rgba(31,62,99,0.22);
  --ink:#1E1A16;
  --muted:#6B635A;
  --gold:#1F3E63;
  --gold-deep:#16304D;
  --gold-light:#92A8C2;
  --line:rgba(30,26,22,0.14);
  --line-navy:rgba(244,242,236,0.16);
  --serif:'Spectral', Georgia, 'Times New Roman', serif;
  --sans:'Spectral', Georgia, 'Times New Roman', serif;
  --wrap:1200px;
  --hero1:url('img/hero-poster.jpg');   /* resolves relative to this CSS file (assets/) */
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--ivory);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 2rem}
section{scroll-margin-top:78px}

/* ---------- type helpers ---------- */
.eyebrow{
  font:600 .74rem/1 var(--sans);
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--gold-deep);
  display:inline-block;
}
.eyebrow.on-navy{color:rgba(247,246,242,.94);text-shadow:0 1px 16px rgba(0,0,0,.45)}
.serif{font-family:var(--serif)}
.rule{width:46px;height:1px;background:var(--gold);margin:1.4rem 0}
.rule.center{margin-left:auto;margin-right:auto}

h2.title{
  font:500 clamp(2rem,4.2vw,3.05rem)/1.1 var(--serif);
  color:var(--navy);
  letter-spacing:.005em;
}

/* ---------- buttons ---------- */
.btn{
  font:500 .8rem/1 var(--sans);
  letter-spacing:.14em;
  text-transform:uppercase;
  padding:1.05rem 1.7rem;
  display:inline-block;
  border:1px solid transparent;
  cursor:pointer;
  transition:background .35s ease,color .35s ease,border-color .35s ease;
}
.btn-gold{background:var(--gold);color:var(--ivory);border-color:var(--gold)}
.btn-gold:hover,.btn-gold:focus-visible{background:var(--gold-deep);border-color:var(--gold-deep);color:var(--ivory)}
.btn-line-light{border-color:var(--ink);color:var(--ink)}
.btn-line-light:hover,.btn-line-light:focus-visible{background:var(--ink);color:var(--ivory);border-color:var(--ink)}
.btn-line-on-dark{border-color:rgba(247,246,242,.55);color:var(--ivory)}
.btn-line-on-dark:hover,.btn-line-on-dark:focus-visible{background:var(--ivory);color:var(--navy);border-color:var(--ivory)}
.btn-solid{background:var(--navy);color:var(--ivory);border-color:var(--navy)}
.btn-solid:hover,.btn-solid:focus-visible{background:var(--navy-soft);border-color:var(--navy-soft)}

/* ---------- header ---------- */
header{
  position:sticky;top:0;z-index:60;
  background:var(--ivory);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  height:78px;
}
.brand{
  display:flex;align-items:center;gap:.7rem;color:var(--ink);
}
.brand .mark{color:var(--gold);font-size:.7rem;transform:translateY(-1px)}
.brand-name{
  display:block;font:500 1.1rem/1.05 var(--serif);
  letter-spacing:.2em;text-transform:uppercase;
}
.brand-sub{
  display:block;font:500 .72rem/1 var(--serif);
  letter-spacing:.34em;text-transform:uppercase;
  color:var(--gold-deep);margin-top:.28rem;
}
.navlinks{display:flex;align-items:center;gap:1.7rem}
.navlinks a{
  font:500 .76rem/1 var(--sans);
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);
  padding:.4rem 0;position:relative;
}
.navlinks a::after{
  content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1px;
  background:var(--gold);transition:right .35s ease;
}
.navlinks a:hover,.navlinks a:focus-visible{color:var(--ink)}
.navlinks a:hover::after,.navlinks a:focus-visible::after{right:0}
.navlinks .navcta{
  border:1px solid var(--line);padding:.6rem 1.05rem;color:var(--ink);
}
.navlinks .navcta::after{display:none}
.navlinks .navcta:hover{border-color:var(--gold)}

.navtoggle{
  display:none;background:none;border:1px solid var(--line);
  width:46px;height:40px;cursor:pointer;
}
.navtoggle span{display:block;width:20px;height:1.5px;background:var(--ink);margin:4px auto;transition:.3s}
.navtoggle[aria-expanded="true"] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.navtoggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.navtoggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:calc(100svh - 78px);
  display:flex;flex-direction:column;justify-content:center;
  background:var(--navy-deep) var(--hero1) center 42%/cover no-repeat;
  color:var(--ivory);
  overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background:linear-gradient(180deg,rgba(23,18,16,.74) 0%,rgba(23,18,16,.40) 40%,rgba(23,18,16,.82) 100%);
}
.hero::after{
  content:"";position:absolute;inset:26px;border:1px solid rgba(247,246,242,.30);pointer-events:none;z-index:3;
}
.hero-video{position:absolute;inset:0;z-index:0;overflow:hidden}
.hvid{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity 1.6s ease;
  filter:brightness(.69) saturate(.9) contrast(1.04);
}
.hvid.on{opacity:1}
.hero-inner{position:relative;z-index:2;max-width:var(--wrap);margin:0 auto;padding:0 2rem;width:100%}
.hero-rotator{margin:1.6rem 0 1rem}
.hero-rotator h1{margin:0;font-weight:400;display:grid}
.stmt{
  grid-area:1 / 1;
  font:500 clamp(2.4rem,5.6vw,4.6rem)/1.06 var(--serif);
  letter-spacing:.004em;max-width:26ch;color:var(--ivory);
  text-shadow:0 1px 30px rgba(0,0,0,.35);
  opacity:0;transition:opacity 1s ease;
}
.stmt.active{opacity:1}
.hero-sub{
  max-width:46ch;color:rgba(247,246,242,.84);
  font-size:1.12rem;margin-bottom:2.3rem;font-weight:400;
}
.hero-cta{display:flex;flex-wrap:wrap;gap:1rem}
.hero-meta{
  position:relative;z-index:2;max-width:var(--wrap);margin:0 auto;padding:2.4rem 2rem 0;width:100%;
  display:flex;align-items:center;gap:1rem;
  font:600 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;
  color:rgba(247,246,242,.72);
}
.hero-meta .dot{color:rgba(247,246,242,.55);font-size:.55rem}

/* ---------- intro ---------- */
.intro{padding:6.5rem 0}
.intro-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:4.5rem;align-items:start}
.intro p.lead{
  font:400 clamp(1.45rem,2.4vw,1.85rem)/1.5 var(--serif);
  color:var(--navy);margin-bottom:1.5rem;
}
.intro p.body{color:var(--muted);margin-bottom:1.1rem}
.intro-figure{margin-bottom:2.4rem;overflow:hidden;position:relative}
.intro-figure img{width:100%;height:440px;object-fit:cover;filter:saturate(.94);will-change:transform}
.intro-figure figcaption{
  font:600 .68rem/1.3 var(--sans);letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin-top:.85rem;
}

/* ---------- recognition ---------- */
.recognition{background:var(--paper);color:var(--ink);padding:6rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.recognition .eyebrow{margin-bottom:2.6rem}
.quotes{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem}
.quote blockquote{
  font:500 clamp(1.5rem,2.4vw,2rem)/1.4 var(--serif);
  color:var(--ink);font-style:italic;
}
.quote .qrule{width:38px;height:1px;background:var(--gold);margin:1.4rem 0}
.quote cite{font:600 .72rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);font-style:normal}

/* ---------- feature image band ---------- */
.showband{
  position:relative;overflow:hidden;
  min-height:62vh;display:flex;align-items:center;
  background:var(--navy-deep) center/cover no-repeat;
  color:var(--ivory);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.showband::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(23,18,16,.82) 0%,rgba(23,18,16,.50) 45%,rgba(23,18,16,.18) 100%);
}
.showband .wrap{position:relative;z-index:2;padding-top:5.5rem;padding-bottom:5.5rem}
.showband .eyebrow{color:rgba(247,246,242,.94);text-shadow:0 1px 16px rgba(0,0,0,.45)}
.showband blockquote{
  font:500 clamp(1.7rem,3vw,2.7rem)/1.32 var(--serif);font-style:italic;
  max-width:22ch;margin-top:1.5rem;text-shadow:0 1px 30px rgba(0,0,0,.35);
}
.showband cite{
  display:block;margin-top:1.7rem;
  font:600 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;
  color:rgba(247,246,242,.72);font-style:normal;
}

/* ---------- cinematic strip ---------- */
.stripband{
  position:relative;overflow:hidden;
  min-height:44vh;display:flex;align-items:center;justify-content:center;text-align:center;
  background:var(--navy-deep) center/cover no-repeat;color:var(--ivory);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.stripband::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(23,18,16,.52),rgba(23,18,16,.58))}
.stripband .wrap{position:relative;z-index:2}
.stripband .eyebrow{color:rgba(247,246,242,.94);text-shadow:0 1px 16px rgba(0,0,0,.45)}
.stripband p{font:500 clamp(1.4rem,2.6vw,2.05rem)/1.35 var(--serif);font-style:italic;margin-top:1rem;text-shadow:0 1px 30px rgba(0,0,0,.4)}

/* ---------- expertise ---------- */
.expertise{padding:6.5rem 0}
.sec-head{max-width:46ch;margin-bottom:3rem}
.sec-head p{color:var(--muted);margin-top:1.3rem}
.principal{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);margin-bottom:3.2rem;
}
.principal .cell{background:var(--paper);padding:1.7rem 1.5rem;transition:background .35s ease;color:inherit;display:block}
.principal a.cell:hover{background:var(--ivory)}
.principal .num{font:600 .7rem/1 var(--sans);letter-spacing:.18em;color:var(--gold-deep)}
.principal .cell h3{font:500 1.18rem/1.25 var(--serif);color:var(--navy);margin-top:.6rem}
.principal .cell p{font-size:.85rem;line-height:1.5;color:var(--muted);margin-top:.45rem}

.areas-label{font:600 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:1.4rem}
.areas{columns:4;column-gap:2.4rem;list-style:none}
.areas li{
  break-inside:avoid;padding:.55rem 0 .55rem 1.3rem;position:relative;
  border-bottom:1px solid var(--line);font-size:.98rem;color:var(--ink);
}
.areas li::before{content:"\25C6";position:absolute;left:0;top:.72rem;color:var(--gold);font-size:.5rem}
.arealinks li a{display:block;color:var(--ink);transition:color .3s}
.arealinks li a:hover,.arealinks li a:focus-visible{color:var(--gold-deep)}
.taglist .tag-plain{font:600 .68rem/1 var(--sans);letter-spacing:.04em;color:var(--muted);background:var(--paper);border:1px dashed var(--line);padding:.55rem .7rem;cursor:default}

/* ---------- members ---------- */
.members{padding:6.5rem 0;background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.members .sec-head{display:flex;justify-content:space-between;align-items:flex-end;max-width:none;gap:2rem;flex-wrap:wrap}
.members-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:0;background:transparent;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.mcard{position:relative;display:block;background:var(--ivory);padding:1.6rem 1.5rem;transition:background .35s ease;color:inherit;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.mcard:hover,.mcard:focus-within,.mcard:focus-visible{background:var(--paper);z-index:30}
.mcard:focus-visible{outline:2px solid var(--gold-deep);outline-offset:-2px}
.mcard .mname{font:500 1.32rem/1.25 var(--serif);color:var(--navy)}
.mcard .mmeta{margin-top:.7rem}
.mcard .mmeta span{display:block;font:600 .64rem/1.7 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.mcard .mline{width:0;height:1px;background:var(--gold);margin-top:.9rem;transition:width .4s ease}
.mcard:hover .mline,.mcard:focus-within .mline{width:34px}

/* member detail panel (fades in on hover/focus) */
.mpop{
  position:absolute;top:100%;left:-1px;right:-1px;
  background:var(--paper);border:1px solid var(--gold-light);border-top:2px solid var(--gold);
  box-shadow:0 26px 54px -20px rgba(23,18,16,.5);
  padding:1.4rem 1.4rem 1.5rem;z-index:40;text-align:left;
  opacity:0;visibility:hidden;transform:translateY(8px);pointer-events:none;
  transition:opacity .32s ease,transform .32s ease,visibility .32s;
}
.mcard:hover .mpop,.mcard:focus-within .mpop{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.mpop-top{display:flex;align-items:center;gap:.85rem;margin-bottom:1rem}
.mavatar{flex:0 0 auto;width:56px;height:56px;border-radius:50%;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  background:var(--navy);color:var(--ivory);font:500 1.05rem/1 var(--serif);letter-spacing:.04em}
.mavatar img{width:100%;height:100%;object-fit:cover}
.mpop-name{font:500 1.1rem/1.2 var(--serif);color:var(--navy)}
.mpop-sub{font:600 .58rem/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep);margin-top:.3rem}
.mpop-bio{font-size:.85rem;line-height:1.55;color:var(--muted);margin-bottom:1rem}
.mpop-label{font:600 .58rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:.6rem}
.mpop-areas{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.3rem}
.mpop-areas li{font:600 .63rem/1 var(--sans);color:var(--ink);background:var(--ivory);border:1px solid var(--line);padding:.4rem .55rem}
.mpop-btn{display:inline-block;font:500 .67rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;
  color:var(--ivory);background:var(--gold);padding:.7rem 1.1rem;transition:background .3s ease}
.mcard:hover .mpop-btn{background:var(--gold-deep)}
@media(hover:none){
  .mpop{box-shadow:0 18px 40px -18px rgba(23,18,16,.45)}
}

/* ---------- insight ---------- */
.insight{padding:6.5rem 0}
.ins-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.ins-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.4rem;margin-top:3rem}
.ins-card{border-top:2px solid var(--navy);padding-top:1.5rem;display:block;color:inherit}
.ins-card .date{font:600 .7rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.ins-card h3{font:500 1.35rem/1.3 var(--serif);color:var(--navy);margin:.9rem 0 1.1rem}
.ins-card .more{font:600 .72rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep);border-bottom:1px solid var(--gold-light);padding-bottom:3px}
.ins-card:hover h3{color:var(--gold-deep)}

/* ---------- cta band ---------- */
.ctaband{
  position:relative;overflow:hidden;
  background:var(--navy-deep) center/cover no-repeat;
  color:var(--ivory);text-align:center;padding:7.5rem 0;border-top:1px solid var(--line);
}
.ctaband::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(23,18,16,.66),rgba(23,18,16,.85))}
.ctaband .wrap{position:relative;z-index:2}
.ctaband .eyebrow{color:rgba(247,246,242,.94);text-shadow:0 1px 16px rgba(0,0,0,.45)}
.ctaband h2{font:500 clamp(1.9rem,3.4vw,2.8rem)/1.2 var(--serif);color:var(--ivory);margin:1.2rem 0 2rem;max-width:20ch;margin-left:auto;margin-right:auto;text-shadow:0 1px 30px rgba(0,0,0,.35)}

/* parallax background layers + growing text on the image bands below the hero */
.band-bg{position:absolute;left:0;top:0;width:100%;height:auto;display:block;z-index:0;will-change:transform;pointer-events:none}
.band-grow{will-change:transform}
.showband .band-grow{transform-origin:left center}
.stripband .band-grow,.ctaband .band-grow{transform-origin:center center}

/* ---------- footer ---------- */
footer{background:var(--ivory);color:var(--muted);border-top:3px solid var(--gold)}
.foot-top{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:3rem;padding:5rem 0 3.5rem}
.foot-brand .brand{margin-bottom:1.3rem}
.foot-brand p{font-size:.95rem;max-width:34ch;color:var(--muted)}
.foot-col h4{font:600 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);margin-bottom:1.4rem}
.foot-col a,.foot-col p{display:block;font-size:.95rem;color:var(--muted);margin-bottom:.7rem}
.foot-col a{color:var(--ink)}
.foot-col a:hover{color:var(--gold-deep)}
.foot-bottom{border-top:1px solid var(--line);padding:1.8rem 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.foot-bottom p,.foot-bottom a{font-size:.78rem;color:var(--muted)}
.foot-bottom a:hover{color:var(--gold-deep)}

/* ---------- inner page header ---------- */
.pagehead{padding:3.4rem 0 0}
.crumb{font:600 .7rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:1.7rem;display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}
.crumb a{color:var(--gold-deep)}
.crumb a:hover{color:var(--navy)}
.crumb .sep{color:var(--gold-light)}
.pagehead h1{font:500 clamp(2rem,4.4vw,3.2rem)/1.08 var(--serif);color:var(--navy);letter-spacing:.004em}
.pagehead .lede{color:var(--muted);max-width:62ch;margin-top:1.25rem;font-size:1.05rem}
.pagehead .rule{margin-top:1.6rem}

/* ---------- barrister profile ---------- */
.profile{padding:3rem 0 6.5rem}
.profile-grid{display:grid;grid-template-columns:300px 1fr;gap:4.5rem;align-items:start}
.profile-aside{position:sticky;top:100px}
.p-photo{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;background:var(--navy);display:block;border:1px solid var(--line);
  filter:grayscale(1) contrast(1.06) brightness(1.04)}   /* black & white, no hover change */
.p-photo.mono{display:flex;align-items:center;justify-content:center;color:var(--ivory);font:500 3.4rem/1 var(--serif);letter-spacing:.04em}
.p-name{font:500 1.9rem/1.12 var(--serif);color:var(--navy);margin-top:1.4rem}
.p-role{font:600 .66rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-deep);margin-top:.65rem;display:inline-block}
.tag-dt{display:inline-block;font:600 .58rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);border:1px solid var(--gold-light);padding:.36rem .5rem}
.mcard .tag-dt{margin-top:.75rem}
.profile-aside .tag-dt{margin-top:.7rem}
.profile-aside .p-role + .tag-dt{margin-left:.45rem}
.p-facts{margin-top:1.7rem;border-top:1px solid var(--line)}
.p-facts div{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}
.p-facts dt{font:600 .64rem/1.5 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.p-facts dd{font-size:.92rem;color:var(--navy);text-align:right}
.p-contact{margin-top:1.6rem;display:flex;flex-direction:column;gap:.55rem}
.p-contact a{font-size:.92rem;color:var(--ink)}
.p-contact a:hover{color:var(--gold-deep)}
.p-main h2{font:600 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);margin:2.6rem 0 1rem}
.p-main h2:first-of-type{margin-top:0}
.p-main p{color:var(--muted);margin-bottom:1.05rem}
.p-main .p-lead{font:400 1.25rem/1.55 var(--serif);color:var(--navy)}
.taglist{display:flex;flex-wrap:wrap;gap:.5rem}
.taglist a{font:600 .68rem/1 var(--sans);letter-spacing:.04em;color:var(--ink);background:var(--paper);border:1px solid var(--line);padding:.55rem .7rem;transition:border-color .3s,color .3s}
.taglist a:hover,.taglist a:focus-visible{border-color:var(--gold);color:var(--gold-deep)}
.cv-note{font-size:.9rem;color:var(--muted);font-style:italic;margin-top:.4rem}

/* related news inline list */
.rel-news{list-style:none;border-top:1px solid var(--line)}
.rel-news li{border-bottom:1px solid var(--line)}
.rel-news a{display:block;padding:1rem 0;color:inherit}
.rel-news .d{display:block;font:600 .64rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.rel-news .t{display:block;font:500 1.1rem/1.3 var(--serif);color:var(--navy);margin-top:.4rem}
.rel-news a:hover .t{color:var(--gold-deep)}

/* ---------- news index + article ---------- */
.newslist{padding:2.6rem 0 6rem}
.nl-item{display:grid;grid-template-columns:170px 1fr;gap:2.5rem;padding:2.3rem 0;border-bottom:1px solid var(--line)}
.nl-item:first-child{border-top:1px solid var(--line)}
.nl-date{font:600 .72rem/1.6 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.nl-item h3{font:500 1.55rem/1.25 var(--serif);color:var(--navy)}
.nl-item h3 a:hover{color:var(--gold-deep)}
.nl-item p{color:var(--muted);margin-top:.7rem;max-width:66ch}
.nl-tags{margin-top:1.1rem}
.article{padding:2.4rem 0 6rem}
.article .body{max-width:66ch}
.article .body p{margin-bottom:1.2rem;color:var(--ink)}
.article .body p:first-of-type{font:400 1.25rem/1.55 var(--serif);color:var(--navy)}
.article .ameta{font:600 .72rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:1.4rem}
.tagblock{margin-top:2.6rem;border-top:1px solid var(--line);padding-top:1.7rem;max-width:66ch}
.tagblock h4{font:600 .64rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);margin:0 0 .9rem}
.tagblock + .tagblock{margin-top:1.6rem;border-top:none;padding-top:0}

/* ---------- listings (barristers) ---------- */
.listing{padding:2.6rem 0 6rem}

/* ---------- CPD academy ---------- */
.cpd-list{padding:2.6rem 0 6rem}
.cpd-item{display:grid;grid-template-columns:185px 1fr;gap:2.5rem;padding:2.4rem 0;border-bottom:1px solid var(--line)}
.cpd-item:first-child{border-top:1px solid var(--line)}
.cpd-date{font:500 1.2rem/1.2 var(--serif);color:var(--navy)}
.cpd-time{display:block;font:600 .7rem/1.5 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:.45rem}
.cpd-points{display:inline-block;margin-top:.95rem;font:600 .62rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep);border:1px solid var(--gold-light);padding:.42rem .55rem}
.cpd-item h3{font:500 1.5rem/1.25 var(--serif);color:var(--navy)}
.cpd-item .loc{font:600 .68rem/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:.55rem}
.cpd-item p{color:var(--muted);margin-top:.9rem;max-width:66ch}
.cpd-presenters{margin-top:1.1rem}
.cpd-reg{margin-top:1.4rem}
@media(max-width:860px){.cpd-item{grid-template-columns:1fr;gap:.7rem}}

/* ---------- reveal animation ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media(max-width:960px){
  .intro-grid{grid-template-columns:1fr;gap:3rem}
  .quotes{grid-template-columns:1fr;gap:2.5rem}
  .principal{grid-template-columns:repeat(2,1fr)}
  .areas{columns:2}
  .ins-grid{grid-template-columns:1fr;gap:2.4rem}
  .foot-top{grid-template-columns:1fr 1fr;gap:2.5rem}
  .foot-brand{grid-column:1 / -1}
}
@media(max-width:860px){
  .profile-grid{grid-template-columns:1fr;gap:2.6rem}
  .profile-aside{position:static;max-width:340px}
  .nl-item{grid-template-columns:1fr;gap:.6rem}
}
@media(max-width:680px){
  .navlinks{
    position:fixed;inset:78px 0 auto 0;background:var(--ivory);
    flex-direction:column;align-items:flex-start;gap:0;padding:1rem 2rem 2rem;
    border-bottom:1px solid var(--line);
    display:none;
  }
  .navlinks.open{display:flex}
  .navlinks a{width:100%;padding:.95rem 0;border-bottom:1px solid var(--line)}
  .navlinks .navcta{border:none;padding:.95rem 0}
  .navtoggle{display:block}
  .areas{columns:1}
  .foot-top{grid-template-columns:1fr}
  .hero::after{inset:14px}
  .wrap,.hero-inner,.hero-meta{padding-left:1.4rem;padding-right:1.4rem}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .stmt{transition:none}
}
