/* ==========================================================================
   MUCHANGI PATRICK & CO. ADVOCATES — DESIGN SYSTEM
   Navy / Ink / Brass palette. Serif display + grotesk body.
   ========================================================================== */

/* Fonts now loaded via <link rel="preconnect"> + <link rel="stylesheet"> tags in each page's <head> for faster, non-blocking rendering (see 404.html or index.html for the pattern). */

:root{
  --ink:#1b1a17;
  --ink-2:#262218;
  --navy:#46573a;
  --slate:#5b5a52;
  --muted:#8a8577;
  --paper:#f2ecdc;
  --paper-2:#e7dfc5;
  --white:#ffffff;
  --brass:#c69a3e;
  --brass-light:#ecc981;
  --line:#c9bf9c;

  /* Deep Brass — accessible CTA + text-on-light variant of --brass.
     --brass itself only clears WCAG at 3:1 (non-text/large-text/dark-bg use);
     anything readable on a white or paper background uses --cta instead. */
  --cta:#8b6932;
  --cta-hover:#6d5327;
  --success:#1e6b4f;
  --warning:#8a6d1e;
  --error:#7e2f20;

  /* Plum/coral — accent pair for the Kenya Privacy Law Review resource
     areas (Practice Notes, Resources hub), sourced from firm reference
     material. Also mirrored by --ink/--ink-2/--navy above, since plum
     is now the site's core dark identity colour (brass/plum). */
  --plum:#46573a;
  --plum-2:#7c8b5e;
  --plum-pale:#eaf0e3;
  --coral:var(--brass);
  --coral-deep:var(--cta);

  --radius:2px;
  --radius-lg:4px;
  --shadow-soft:0 18px 50px rgba(27,26,23,.08);
  --shadow-hard:0 30px 70px rgba(27,26,23,.16);
  --ease:cubic-bezier(.4,0,.2,1);

/* ==========================================================================
   DARK MODE — token overrides, toggled via [data-theme="dark"] on <html> by
   assets/js/mp-nav.js. Every shared component already reads these custom
   properties, so this one block re-themes headers, cards, buttons and text
   across the whole site without touching per-page markup.
   ========================================================================== */
}
[data-theme="dark"]{
  --ink:#f2ecdc;
  --ink-2:#e7dfc5;
  --navy:#8fae7a;
  --slate:#c9bf9c;
  --muted:#a39c86;
  --paper:#14190f;
  --paper-2:#1c2416;
  --white:#1b2116;
  --brass:#dcb75c;
  --brass-light:#f0d48a;
  --line:#39432e;
  --cta:#e0bb62;
  --cta-hover:#f0d48a;
  --success:#4f9c78;
  --warning:#dcb75c;
  --error:#c4614a;
  --plum:#8fae7a;
  --plum-2:#a9c78f;
  --plum-pale:#1c2416;
  --shadow-soft:0 18px 50px rgba(0,0,0,.35);
  --shadow-hard:0 30px 70px rgba(0,0,0,.5);
}
[data-theme="dark"] body{background:var(--paper);}
[data-theme="dark"] img:not(.mp-nav-seal img){opacity:.92;}
:root{

  --font-display:'Fraunces', serif;
  --font-body:'Inter', sans-serif;

  /* Fixed header height, single source of truth. The header itself sizes
     off these, and any publication template (Practice Notes, Regulatory
     Analysis Series, etc.) that sits directly under the fixed header uses
     --site-header-h to clear it, instead of a hand-tuned magic-number
     padding. Kept generous relative to the *resting* header height so nothing
     shifts as the header shrinks on scroll — the header floats over already-
     reserved space, it doesn't push content. */
  --site-header-h:98px;
  --site-header-h-scrolled:60px;
}
@media(max-width:560px){
  :root{ --site-header-h:66px; }
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--font-body);
  background:var(--paper);
  color:var(--ink);
  line-height:1.7;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
ul{list-style:none;}
button{font:inherit;cursor:pointer;border:none;background:none;}
.container{max-width:1240px;margin:0 auto;padding:0 32px;}
@media(max-width:640px){.container{padding:0 22px;}}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  color:var(--ink);
  line-height:1.15;
  letter-spacing:-.01em;
}

.eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--cta);margin-bottom:18px;
}
.eyebrow::before{content:'';width:26px;height:1px;background:var(--cta);}
/* On dark (ink/navy) surfaces, --cta reads muddy — switch to the lighter
   brass, which passes AAA against --ink. */
.hero .eyebrow,.page-hero .eyebrow,.cta-band .eyebrow,.section--ink .eyebrow{
  color:var(--brass-light);
}
.hero .eyebrow::before,.page-hero .eyebrow::before,.cta-band .eyebrow::before,.section--ink .eyebrow::before{
  background:var(--brass-light);
}

.section{padding:120px 0;}
.section--ink{background:var(--ink);color:rgba(255,255,255,.86);}
.section--ink h2,.section--ink h3,.section--ink h4{color:var(--white);}
.section--paper2{background:var(--paper-2);}

.intro-context-body{max-width:820px;}
.intro-context-body p{font-size:1.08rem;line-height:1.75;color:var(--slate);margin-bottom:22px;}
.intro-context-body p:last-child{margin-bottom:0;}
.section-head{max-width:640px;margin-bottom:60px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head h2{font-size:2.6rem;margin-bottom:18px;}
.section-head p{color:var(--muted);font-size:1.08rem;}
.section--ink .section-head p{color:rgba(255,255,255,.6);}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 34px;border-radius:100px;
  font-weight:600;font-size:.85rem;letter-spacing:.02em;
  transition:all .3s var(--ease);white-space:nowrap;
}
.btn-brass{background:var(--cta);color:var(--white);}
.btn-brass:hover{background:var(--ink);transform:translateY(-2px);}
.btn-line{border:1px solid rgba(27,26,23,.2);color:var(--ink);}
.btn-line:hover{border-color:var(--ink);background:var(--ink);color:var(--white);}
.section--ink .btn-line{border-color:rgba(255,255,255,.25);color:var(--white);}
.section--ink .btn-line:hover{background:var(--cta);border-color:var(--cta);}
.btn-white{background:var(--white);color:var(--ink);}
.btn-white:hover{background:var(--cta);color:var(--white);transform:translateY(-2px);}
.btn-sm{padding:11px 24px;font-size:.8rem;}

/* ==== HEADER ====
   Sized off --site-header-h (~98px resting / 76px on phones). Publication
   templates clear the header using that same variable — see "Hero
   Clearance" further down — so the two numbers can never drift apart. */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:rgba(27,26,23,.97);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,.06);
  transition:padding .2s var(--ease);
}

/* Utility bar — a slim credibility strip above the main nav row (phone,
   email, office, LinkedIn), the kind of detail that reads as "established
   practice" rather than "single-page brochure site." Lives inside the same
   fixed header block so it never introduces layout-shift on scroll.
   Collapses to nothing (rather than just hiding) once scrolled, so the
   header can shrink from ~98px to ~60px without a hard cut. */
.header-utility{
  border-bottom:1px solid rgba(255,255,255,.06);
  max-height:34px;overflow:hidden;
  transition:max-height .2s var(--ease),border-color .2s var(--ease);
}
.header-utility .container{
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 0;gap:16px;
}
.header-utility-contact{display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.header-utility-contact a{
  font-size:.72rem;color:rgba(255,255,255,.6);display:inline-flex;align-items:center;gap:7px;
  transition:color .2s;
}
.header-utility-contact a:hover{color:var(--brass-light);}
.header-utility-contact i{color:var(--brass-light);font-size:.7rem;}
.header-utility-social{display:flex;align-items:center;gap:14px;}
.header-utility-social a{color:rgba(255,255,255,.5);font-size:.8rem;transition:color .2s;}
.header-utility-social a:hover{color:var(--brass-light);}
.header-utility-social a:focus-visible{outline:2px solid var(--brass-light);outline-offset:3px;border-radius:3px;}
@media(max-width:900px){
  .header-utility-contact span.hide-sm{display:none;}
}
@media(max-width:640px){
  .header-utility{display:none;}
  .brand-logo{height:40px;}
}
.header-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 0;gap:24px;
  transition:padding .2s var(--ease);
}
.brand{display:flex;align-items:center;gap:14px;}
.brand-logo{height:44px;width:auto;flex-shrink:0;transition:height .2s var(--ease);}
.footer-brand .brand-logo{height:130px;}

/* Scrolled / compact state — toggled by script.js once the page scrolls
   past ~40px. Header shrinks from ~98px to ~60px over 200ms; nothing else
   on the page moves, since the header is fixed and the hero clearance
   below is sized off the *resting* height, not this one. */
.site-header.is-scrolled .header-utility{max-height:0;border-bottom-color:transparent;}
.site-header.is-scrolled .header-row{padding:12px 0;}
.site-header.is-scrolled .brand-logo{height:36px;}
@media(max-width:640px){
  .site-header.is-scrolled .brand-logo{height:32px;}
}
.brand-text .brand-name{font-size:1.02rem;color:var(--white);font-weight:600;line-height:1.25;}
.brand-text .brand-name em{color:var(--brass);font-style:normal;}
.brand-text .tag{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.4);}

.main-nav{display:flex;align-items:center;gap:2.1rem;}
.main-nav a{
  font-size:.82rem;font-weight:500;color:rgba(255,255,255,.68);
  letter-spacing:.01em;transition:color .25s;position:relative;
}
.main-nav a:hover,.main-nav a.active{color:var(--white);}
.main-nav a.active::after{
  content:'';position:absolute;left:0;right:0;bottom:-8px;height:2px;background:var(--brass);
}
.nav-cta{
  background:var(--cta);color:var(--white)!important;
  padding:11px 24px;border-radius:100px;font-weight:600;
}
.nav-cta:hover{background:var(--cta-hover);}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:8px;}
.nav-toggle span{width:24px;height:2px;background:var(--white);display:block;}

/* Resources dropdown */
.nav-item{position:relative;display:flex;align-items:center;}
.nav-item>a{display:flex;align-items:center;gap:6px;}
.nav-caret{font-size:.62rem;color:rgba(255,255,255,.45);transition:transform .25s var(--ease);}
.nav-item:hover .nav-caret,.nav-item.open .nav-caret{transform:rotate(180deg);color:var(--brass-light);}
.dropdown-panel{
  position:absolute;top:100%;right:0;left:auto;transform:translateY(6px);
  width:560px;max-width:min(560px,calc(100vw - 64px));background:var(--ink-2);border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--shadow-hard);padding:14px;margin-top:18px;
  display:grid;grid-template-columns:1fr 1fr;gap:2px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s;
  z-index:1200;
}
.nav-item.open .dropdown-panel,.nav-item:focus-within .dropdown-panel{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);
}
.dropdown-panel a{
  display:flex;align-items:flex-start;gap:12px;padding:13px 14px;border-radius:2px;
  color:rgba(255,255,255,.85);transition:background .2s;
  min-width:0;
}
.dropdown-panel a > div{min-width:0;flex:1;}
.dropdown-panel a span,.dropdown-panel a small{
  display:block;overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;
}
.dropdown-panel a:hover{background:rgba(255,255,255,.05);color:var(--white);}
.dropdown-panel a i{color:var(--brass-light);font-size:.95rem;margin-top:3px;width:16px;flex-shrink:0;}
.dropdown-panel a span{display:block;font-size:.82rem;font-weight:600;color:var(--white);margin-bottom:2px;}
.dropdown-panel a small{display:block;font-size:.72rem;color:rgba(255,255,255,.45);line-height:1.4;font-weight:400;}
.dropdown-panel .dp-footer{
  grid-column:1/-1;border-top:1px solid rgba(255,255,255,.08);margin-top:6px;padding-top:12px;
  display:flex;align-items:center;justify-content:space-between;padding-left:14px;padding-right:14px;
}
.dropdown-panel .dp-footer span{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.4);}
.dropdown-panel .dp-footer a{padding:0;color:var(--brass-light);font-size:.75rem;font-weight:600;}
.dropdown-panel .dp-footer a:hover{background:none;color:var(--brass-light);text-decoration:underline;}

@media(max-width:980px){
  .main-nav{
    position:fixed;top:0;right:0;height:100vh;width:80%;max-width:340px;
    background:var(--ink-2);flex-direction:column;align-items:flex-start;
    padding:100px 32px 40px;gap:1.6rem;transition:transform .35s var(--ease);
    box-shadow:var(--shadow-hard);overflow-y:auto;overflow-x:hidden;
    transform:translateX(100%);
  }
  .main-nav.open{transform:translateX(0);}
  .nav-toggle{display:flex;}
  .nav-cta{margin-top:10px;}
  .nav-item{flex-direction:column;align-items:flex-start;width:100%;}
  .nav-caret{margin-left:6px;}
  .dropdown-panel{
    position:static;width:100%;grid-template-columns:1fr;transform:none;box-shadow:none;
    border:none;background:none;padding:0;margin:0;max-height:0;overflow:hidden;opacity:1;
    visibility:visible;pointer-events:auto;display:grid;transition:max-height .3s var(--ease),margin .3s var(--ease);
  }
  .nav-item.open .dropdown-panel{max-height:600px;margin-top:14px;}
  .dropdown-panel a{padding:10px 0 10px 8px;border-left:2px solid rgba(255,255,255,.1);}
  .dropdown-panel .dp-footer{border-top:none;padding-left:8px;}
}

/* ==== HERO ==== */
.hero{
  background:radial-gradient(circle at 78% 18%, rgba(198,154,62,.14), transparent 55%), linear-gradient(160deg,var(--ink) 0%,var(--ink-2) 55%,var(--navy) 100%);
  color:var(--white);padding:210px 0 100px;position:relative;overflow:hidden;
}
.hero::after{
  content:'';position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
  background-size:64px 64px;pointer-events:none;
}
.hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:end;}

/* ==== FLOWING LINES (decorative, top of hero sections) ==== */
.hero-flow-lines{
  position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;
  pointer-events:none;overflow:visible;
}
.hero-flow-lines .fl-line{
  fill:none;stroke:var(--brass-light);stroke-width:1.2;stroke-linecap:round;vector-effect:non-scaling-stroke;
}
.hero-flow-lines .fl-1{stroke-opacity:.32;animation:flowDrift 26s ease-in-out infinite;}
.hero-flow-lines .fl-2{stroke-opacity:.18;stroke:var(--brass);animation:flowDrift 34s ease-in-out infinite reverse;}
.hero-flow-lines .fl-3{stroke-opacity:.22;animation:flowDrift 22s ease-in-out infinite .6s;}
.hero-flow-lines .fl-4{stroke-opacity:.14;stroke:var(--brass);animation:flowDrift 30s ease-in-out infinite reverse .3s;}
@keyframes flowDrift{
  0%{transform:translateX(0);}
  50%{transform:translateX(18px);}
  100%{transform:translateX(0);}
}
@media(prefers-reduced-motion:reduce){
  .hero-flow-lines .fl-line{animation:none;}
}
.hero h1{font-size:clamp(2.6rem,5vw,4.4rem);color:var(--white);margin-bottom:24px;}
.hero h1 em{font-style:italic;color:var(--brass-light);}
.hero .lede{font-size:1.15rem;color:rgba(255,255,255,.68);max-width:520px;margin-bottom:36px;}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:52px;}
.hero-stats{display:grid;grid-template-columns:repeat(4,auto);gap:40px;padding-top:32px;border-top:1px solid rgba(255,255,255,.1);}
.hero-stats .num{font-family:var(--font-display);font-size:2.1rem;color:var(--brass-light);display:block;}
.hero-stats .lab{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.45);}
.hero-panel{
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);
  padding:36px;backdrop-filter:blur(6px);
}
.hero-panel .panel-label{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-light);margin-bottom:16px;}
.hero-panel ul li{
  padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08);
  display:flex;justify-content:space-between;font-size:.9rem;color:rgba(255,255,255,.75);
}
.hero-panel ul li:last-child{border-bottom:none;}
.hero-panel ul li span{color:var(--brass-light);}
.hero-inner--solo{grid-template-columns:1fr;max-width:800px;align-items:start;}

@media(max-width:900px){
  .hero{padding:180px 0 70px;}
  .hero-inner{grid-template-columns:1fr;}
  .hero-stats{grid-template-columns:repeat(2,auto);}
}

/* ==========================================================================
   KNOWLEDGE & COMPLIANCE CENTRE (homepage)
   ========================================================================== */
.kc-section{position:relative;overflow:hidden;background:var(--paper);}
.kc-section .section-head{max-width:720px;}
.kc-section .section-head p{max-width:640px;}

/* Compliance Checker — deliberately its own plum/coral treatment so it
   stands out as the interactive tool on an otherwise bright, editorial page. */
.kc-checker-card{
  background:linear-gradient(155deg,var(--plum) 0%,var(--plum-2) 100%);
  border:1px solid var(--plum);color:var(--white);
  border-radius:var(--radius-lg);padding:44px;
  display:grid;grid-template-columns:auto 1fr;gap:36px;align-items:center;
  margin-bottom:40px;position:relative;overflow:hidden;
  box-shadow:0 24px 60px -20px rgba(70,87,58,.55);
}
.kc-checker-card::after{
  content:"Free · Instant Report";position:absolute;top:18px;right:24px;
  font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--white);background:var(--coral);
  padding:5px 12px;border-radius:100px;
}
.kc-checker-icon{
  width:72px;height:72px;border-radius:50%;flex-shrink:0;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);
  display:flex;align-items:center;justify-content:center;
  font-size:1.6rem;color:var(--brass-light);
}
.kc-checker-body h3{color:var(--white);font-size:1.55rem;margin-bottom:12px;}
.kc-checker-body p{color:rgba(255,255,255,.7);font-size:1rem;max-width:640px;margin-bottom:26px;}
.kc-stats{display:grid;grid-template-columns:repeat(4,auto);gap:36px;margin-bottom:30px;}
.kc-stats div{display:flex;flex-direction:column;gap:4px;}
.kc-stats .num{font-family:var(--font-display);font-size:1.5rem;color:var(--brass-light);}
.kc-stats .lab{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.5);max-width:120px;}

.kc-pub-badge{
  display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-family:'IBM Plex Mono',monospace;font-size:.74rem;letter-spacing:.03em;
  color:var(--slate);border:1px solid var(--line);background:var(--white);
  border-radius:100px;padding:9px 20px;margin-bottom:44px;
}
.kc-pub-badge i{color:var(--cta);}
.kc-pub-badge strong{color:var(--ink);font-weight:600;}

.kc-subsection{margin-bottom:52px;}
.kc-subsection:last-child{margin-bottom:0;}
.kc-subhead{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:22px;}
.kc-subhead h3{color:var(--ink);font-size:1.25rem;}
.kc-subhead .more{font-size:.82rem;font-weight:600;color:var(--cta);white-space:nowrap;}
.kc-subhead .more:hover{color:var(--ink);}

.kc-cover-row{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:20px;
}
.kc-cover-row--small{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));}
.kc-cover{
  display:flex;flex-direction:column;border-radius:10px;overflow:hidden;
  border:1px solid var(--line);background:var(--white);
  transition:transform .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease);
}
.kc-cover:hover{transform:translateY(-5px);border-color:var(--brass);box-shadow:var(--shadow-soft);}
.kc-cover-face{
  height:130px;display:flex;flex-direction:column;justify-content:space-between;
  padding:14px;position:relative;
}
.kc-cover-face i{color:rgba(255,255,255,.9);font-size:1.1rem;}
.kc-cover-ref{font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.05em;color:rgba(255,255,255,.9);text-transform:uppercase;}
.kc-cover-body{padding:16px;flex:1;display:flex;flex-direction:column;}
.kc-cover-tag{font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--cta);margin-bottom:8px;}
.kc-cover-title{color:var(--ink);font-family:var(--font-display);font-size:.98rem;font-weight:600;line-height:1.35;}
.kc-cover-more-card{
  display:flex;align-items:center;justify-content:center;text-align:center;
  border:1px dashed var(--line);border-radius:10px;padding:24px;
  color:var(--muted);font-size:.85rem;background:var(--paper-2);
}
.cover-1{background:linear-gradient(135deg,#8b6932,#3a2c14);}
.cover-2{background:linear-gradient(135deg,#0f3d3e,#08211f);}
.cover-3{background:linear-gradient(135deg,var(--plum-2),var(--ink));}
.cover-4{background:linear-gradient(135deg,var(--plum),var(--ink));}
.cover-5{background:linear-gradient(135deg,#5b5a52,#2e1f28);}
.cover-6{background:linear-gradient(135deg,var(--cta),var(--ink));}

@media(max-width:700px){
  .kc-checker-card{grid-template-columns:1fr;padding:30px 24px;text-align:left;}
  .kc-stats{grid-template-columns:repeat(2,auto);gap:24px;}
}

/* ==== Practice Notes showcase (real covers) ==== */
.kplr-notes-grid{
  display:grid;grid-template-columns:repeat(5,1fr);gap:26px;
}
.kplr-note-card{
  display:block;text-decoration:none;border-radius:12px;overflow:hidden;
  background:var(--white);border:1px solid var(--line);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);
}
.kplr-note-card:hover{
  transform:translateY(-8px);
  box-shadow:var(--shadow-hard);
  border-color:var(--brass);
}
.kplr-note-cover{position:relative;aspect-ratio:480/679;overflow:hidden;background:var(--paper-2);}
.kplr-note-cover img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s var(--ease);
}
.kplr-note-card:hover .kplr-note-cover img{transform:scale(1.05);}
.kplr-note-ribbon{
  position:absolute;top:12px;left:12px;
  background:rgba(8,8,10,.72);backdrop-filter:blur(4px);
  color:var(--brass-light);font-family:'IBM Plex Mono',monospace;
  font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;
  padding:5px 10px;border-radius:100px;border:1px solid rgba(236,201,129,.35);
}
.kplr-note-meta{padding:14px 16px 18px;}
.kplr-note-tag{
  display:block;font-family:'IBM Plex Mono',monospace;font-size:.6rem;
  letter-spacing:.06em;text-transform:uppercase;color:var(--cta);margin-bottom:6px;
}
.kplr-note-title{
  display:block;color:var(--ink);font-family:var(--font-display);
  font-size:.92rem;font-weight:600;line-height:1.35;
}
@media(max-width:1100px){
  .kplr-notes-grid{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:640px){
  .kplr-notes-grid{grid-template-columns:repeat(2,1fr);gap:16px;}
  .kplr-note-meta{padding:10px 12px 14px;}
  .kplr-note-title{font-size:.82rem;}
}

/* ==== Compliance Checker modal ==== */
.kc-modal{
  position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(27,26,23,.72);backdrop-filter:blur(3px);
  opacity:0;visibility:hidden;transition:opacity .25s var(--ease),visibility .25s;
}
.kc-modal.is-open{opacity:1;visibility:visible;}
.kc-modal-inner{
  background:var(--paper);color:var(--ink);border-radius:var(--radius-lg);
  width:100%;max-width:760px;max-height:88vh;overflow-y:auto;
  padding:40px;position:relative;box-shadow:var(--shadow-hard);
  transform:translateY(16px);transition:transform .3s var(--ease);
}
.kc-modal.is-open .kc-modal-inner{transform:translateY(0);}
.kc-modal-close{
  position:absolute;top:20px;right:20px;width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:var(--paper-2);
  color:var(--ink);font-size:1rem;
}
.kc-modal-close:hover{background:var(--cta);color:var(--white);}
.kc-progress-track{height:5px;background:var(--line);border-radius:10px;overflow:hidden;margin:6px 0 30px;}
.kc-progress-bar{height:100%;background:var(--cta);border-radius:10px;transition:width .35s var(--ease);width:0;}
.kc-step-label{font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--cta);margin-bottom:8px;}
.kc-modal-inner h3{font-size:1.5rem;margin-bottom:10px;}
.kc-modal-intro{color:var(--slate);margin-bottom:26px;font-size:.95rem;}
.kc-sector-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:8px;}
.kc-sector-option{
  border:1px solid var(--line);border-radius:10px;padding:18px;cursor:pointer;
  transition:border-color .2s var(--ease),background .2s var(--ease);
}
.kc-sector-option:hover{border-color:var(--cta);}
.kc-sector-option.is-selected{border-color:var(--cta);background:rgba(139,105,50,.06);}
.kc-sector-option i{color:var(--cta);margin-bottom:8px;display:block;font-size:1.2rem;}
.kc-sector-option span{font-weight:600;font-size:.92rem;}
.kc-question{border-bottom:1px solid var(--line);padding:20px 0;}
.kc-question:first-child{padding-top:0;}
.kc-question p{font-size:.96rem;margin-bottom:14px;}
.kc-answer-row{display:flex;gap:10px;flex-wrap:wrap;}
.kc-answer-row button{
  border:1px solid var(--line);border-radius:100px;padding:8px 18px;font-size:.82rem;font-weight:600;
  color:var(--slate);transition:all .2s var(--ease);
}
.kc-answer-row button.is-active[data-val="1"]{background:var(--success);border-color:var(--success);color:var(--white);}
.kc-answer-row button.is-active[data-val="0.5"]{background:var(--warning);border-color:var(--warning);color:var(--white);}
.kc-answer-row button.is-active[data-val="0"]{background:var(--error);border-color:var(--error);color:var(--white);}
.kc-nav-row{display:flex;justify-content:space-between;align-items:center;margin-top:30px;gap:14px;}
.kc-nav-row .kc-hint{font-size:.78rem;color:var(--muted);}
.kc-report-score{text-align:center;padding:20px 0 30px;}
.kc-report-score .big{font-family:var(--font-display);font-size:3.4rem;color:var(--cta);}
.kc-report-band{display:inline-block;margin-top:6px;font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;border-radius:100px;padding:5px 16px;}
.kc-band-strong{background:rgba(30,107,79,.12);color:var(--success);}
.kc-band-developing{background:rgba(138,109,30,.12);color:var(--warning);}
.kc-band-risk{background:rgba(138,46,46,.12);color:var(--error);}
.kc-cat-row{margin-bottom:16px;}
.kc-cat-row-top{display:flex;justify-content:space-between;font-size:.85rem;margin-bottom:6px;}
.kc-cat-track{height:8px;background:var(--line);border-radius:10px;overflow:hidden;}
.kc-cat-fill{height:100%;border-radius:10px;background:var(--cta);}
.kc-sector-note{background:var(--paper-2);border-radius:var(--radius-lg);padding:20px 24px;margin:26px 0;font-size:.9rem;color:var(--slate);}
.kc-sector-note strong{color:var(--ink);}
.kc-report-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px;}
@media(max-width:640px){
  .kc-modal-inner{padding:28px 20px;}
  .kc-answer-row button{flex:1;text-align:center;}
}
@media print{
  body *{visibility:hidden;}
  .kc-modal, .kc-modal *{visibility:visible;}
  .kc-modal{position:absolute;inset:auto;background:none;padding:0;backdrop-filter:none;}
  .kc-modal-inner{max-height:none;overflow:visible;box-shadow:none;max-width:100%;}
  .kc-modal-close,.kc-nav-row{display:none;}
}

/* Simple page-header for interior pages */
.page-hero{
  background:linear-gradient(160deg,var(--ink) 0%,var(--navy) 100%);
  color:var(--white);padding:200px 0 80px;position:relative;overflow:hidden;
}
.page-hero > .container{position:relative;z-index:1;}
.page-hero .crumb{font-size:.75rem;color:rgba(255,255,255,.45);letter-spacing:.05em;margin-bottom:18px;}
.page-hero .crumb a{color:rgba(255,255,255,.7);}
.page-hero h1{color:var(--white);font-size:clamp(2.2rem,4.5vw,3.4rem);max-width:760px;}
.page-hero p{color:rgba(255,255,255,.62);max-width:620px;margin-top:18px;font-size:1.05rem;}

/* Plum variant — used on Resources / Practice Notes interior pages only,
   so that part of the site keeps a recognisable identity while remaining
   the same component, same header, same footer as every other page. */
.page-hero--plum{background:linear-gradient(160deg,var(--plum) 0%,var(--plum-2) 100%);}

/* Compact variant — used on Contact only, so the booking hero (the real
   conversion element) sits as high on the page as possible, especially
   on phones where every extra 100px of padding pushes the CTA below the
   fold. */
.page-hero--compact{padding:172px 0 132px;}
@media(max-width:640px){
  .page-hero--compact{padding:114px 0 56px;}
  .page-hero--compact .crumb{display:none;}
  .page-hero--compact h1{font-size:1.7rem;}
}

/* ==========================================================================
   CONTACT — BOOKING HERO
   A white card floated up over the bottom of the dark page-hero so the
   gold "Book Now" button reads as the single most prominent thing on the
   page, and appears with minimal scrolling on mobile.
   ========================================================================== */
.booking-hero{position:relative;z-index:2;margin-top:-90px;padding-bottom:20px;}
.booking-hero-card{
  background:var(--white);border-top:4px solid var(--cta);
  box-shadow:var(--shadow-hard);
  max-width:820px;margin:0 auto;padding:60px 60px 54px;text-align:center;
}
.booking-hero-card .eyebrow{justify-content:center;}
.booking-hero-card h2{font-size:clamp(1.7rem,3.2vw,2.4rem);max-width:640px;margin:0 auto 16px;}
.booking-hero-card > p{color:var(--muted);font-size:1.05rem;max-width:580px;margin:0 auto 34px;}
.booking-actions{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:24px;}
.btn-lg{padding:20px 46px;font-size:.95rem;}
.booking-actions .btn-brass{box-shadow:0 16px 34px rgba(139,105,50,.32);}
.btn-whatsapp{
  background:rgba(37,211,102,.07);border:1px solid rgba(37,211,102,.4);color:var(--ink);
  white-space:normal;text-align:center;
}
.fab.fa-whatsapp{filter:drop-shadow(0 0 5px rgba(37,211,102,.55));}

.btn-whatsapp{position:relative;box-shadow:0 3px 20px rgba(37,211,102,.25);transition:box-shadow .25s ease,transform .25s ease,background .25s ease;}
.btn-whatsapp i{color:#25D366;}
.btn-whatsapp:hover{background:#25D366;border-color:#25D366;color:var(--white);transform:translateY(-2px);box-shadow:0 6px 32px rgba(37,211,102,.45);}
.btn-whatsapp:hover i{color:var(--white);}
.booking-meta{font-size:.85rem;color:var(--muted);}
.booking-meta a{color:var(--cta);font-weight:600;}
@media(max-width:980px){
  .booking-hero-card{padding:44px 34px;}
}
@media(max-width:640px){
  .booking-hero{margin-top:-34px;}
  .booking-hero-card{padding:32px 20px 30px;border-radius:16px;}
  .booking-hero-card h2{font-size:1.5rem;}
  .booking-hero-card > p{font-size:.95rem;margin-bottom:24px;}
  .booking-actions .btn{width:100%;justify-content:center;}
  .btn-lg{padding:18px 20px;}
}

/* Trust badges — sit directly under the booking CTA to establish
   credibility before the visitor is asked to commit to a call. */
.trust-badges{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px 22px;
  list-style:none;padding:0;margin:0 0 22px;
}
.trust-badges li{
  display:flex;align-items:center;gap:8px;
  font-size:.82rem;font-weight:600;color:var(--ink);
}
.trust-badges i{color:var(--cta);font-size:.78rem;}
@media(max-width:640px){
  .trust-badges{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:20px;}
}

/* "What Happens During the Call?" — reduces hesitation before booking by
   setting expectations. Sits between the booking hero and the fallback form. */
.expect-card{
  max-width:820px;margin:0 auto;background:var(--paper-2);border-radius:16px;
  padding:36px 44px;
}
.expect-card h3{font-size:1.15rem;margin-bottom:18px;text-align:center;}
.expect-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;}
.expect-list li{display:flex;align-items:flex-start;gap:10px;font-size:.92rem;color:var(--slate);line-height:1.5;}
.expect-list i{color:var(--cta);margin-top:3px;flex-shrink:0;}
@media(max-width:640px){
  .expect-card{padding:28px 22px;}
  .expect-list{grid-template-columns:1fr;}
}

/* Simplified enquiry form (Contact page) — single column, four fields only */
.form-grid--simple{grid-template-columns:1fr;max-width:640px;margin:0 auto;}
.form-wrap--simple{padding:48px;}
@media(max-width:640px){.form-wrap--simple{padding:28px 20px;}}

/* ==========================================================================
   MOBILE STICKY BOOKING BAR
   Hidden by default and on desktop. On phones, becomes a fixed bottom bar
   once the visitor scrolls past the main booking card (toggled via the
   .is-visible class in script.js), keeping "Book" one tap away without
   permanently covering page content.
   ========================================================================== */
.mobile-booking-bar{display:none;}
@media(max-width:640px){
  .mobile-booking-bar{
    display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;
    padding:10px 16px calc(10px + env(safe-area-inset-bottom));
    background:var(--white);box-shadow:0 -6px 24px rgba(27,26,23,.14);
    transform:translateY(100%);transition:transform .3s var(--ease);
  }
  .mobile-booking-bar.is-visible{transform:translateY(0);}
  .mobile-booking-bar .btn{width:100%;justify-content:center;padding:12px 20px;white-space:normal;text-align:center;line-height:1.3;font-size:.78rem;}
}

/* Trust strip */
.trust-strip{padding:44px 0;background:var(--paper-2);border-bottom:1px solid var(--line);}
.trust-row{display:flex;align-items:center;gap:44px;flex-wrap:wrap;justify-content:space-between;}
.trust-row .trust-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);flex-shrink:0;}
.trust-icons{display:flex;gap:38px;flex-wrap:wrap;}
.trust-icons span{font-size:.85rem;font-weight:600;color:var(--slate);display:flex;align-items:center;gap:8px;}
.trust-icons i{color:var(--cta);}

/* Card grids */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:30px;}
@media(max-width:980px){.grid-3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.grid-3,.grid-2{grid-template-columns:1fr;}}

.card{
  background:var(--white);padding:38px 32px;border:1px solid var(--line);
  transition:all .3s var(--ease);
}
.card-img{aspect-ratio:16/10;overflow:hidden;margin:-38px -32px 24px;}
.card-img img{width:100%;height:100%;object-fit:cover;display:block;}
.card-list{margin-top:14px;}
.card-list li{font-size:.82rem;color:var(--slate);padding:8px 0;border-top:1px solid var(--line);display:flex;gap:8px;align-items:flex-start;}
.card-list li:first-child{border-top:none;}
.card-list li i{color:var(--cta);margin-top:3px;font-size:.68rem;flex-shrink:0;}
.card:hover{border-color:var(--cta);transform:translateY(-4px);box-shadow:var(--shadow-soft);}
.card .num{font-family:var(--font-display);font-size:.85rem;color:var(--cta);margin-bottom:16px;display:block;}
.card h3{font-size:1.2rem;margin-bottom:10px;}
.card p{color:var(--muted);font-size:.92rem;}
.card a.more{display:inline-block;margin-top:16px;font-size:.8rem;font-weight:600;color:var(--cta);}

/* Why us list */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:20px;}
.pillar{background:var(--white);padding:36px 30px;}
.pillar i{color:var(--cta);font-size:1.5rem;margin-bottom:16px;display:block;}
.pillar h3{font-size:1.05rem;margin-bottom:8px;}
.pillar p{color:var(--muted);font-size:.88rem;}
@media(max-width:900px){.pillars{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.pillars{grid-template-columns:1fr;}}

/* Industries */
.industry-row{border-top:1px solid var(--line);}
.industry-item{
  border-bottom:1px solid var(--line);padding:26px 0;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  transition:padding .25s var(--ease);cursor:pointer;
}
.industry-item:hover{padding-left:14px;background:var(--paper-2);}
.industry-item .name{display:flex;align-items:center;gap:18px;}
.industry-item .idx{font-family:var(--font-display);color:var(--cta);font-size:.85rem;}
.industry-item h3{font-size:1.15rem;}
.industry-item i{color:var(--muted);}

/* Experience / matters */

/* People */
.person-card{background:var(--white);border:1px solid var(--line);}
.person-photo{
  aspect-ratio:4/5;background:linear-gradient(160deg,var(--navy),var(--ink));
  display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.2);
  font-family:var(--font-display);font-size:3rem;position:relative;overflow:hidden;
}
.person-photo::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:22px 22px;}
.person-body{padding:24px;}
.person-body h3{font-size:1.1rem;margin-bottom:2px;}
.person-body .role{color:var(--cta);font-size:.8rem;font-weight:600;margin-bottom:12px;}
.person-body p{font-size:.85rem;color:var(--muted);margin-bottom:12px;}
.person-body .tags{display:flex;flex-wrap:wrap;gap:6px;}
.person-body .tags span{font-size:.68rem;background:var(--paper-2);padding:4px 10px;color:var(--slate);}

/* Insights */
.insight-row{border-top:1px solid var(--line);}
.insight-line{
  border-bottom:1px solid var(--line);padding:28px 0;
  display:grid;grid-template-columns:110px 1fr auto;gap:24px;align-items:center;
}
.insight-line .date{font-size:.75rem;color:var(--muted);letter-spacing:.04em;}
.insight-line .meta{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--cta);margin-bottom:6px;display:block;}
.insight-line h3{font-size:1.15rem;font-weight:600;}
.insight-line h3 a{transition:color .2s;}
.insight-line h3 a:hover{color:var(--cta);}
.insight-line a.arrow{color:var(--cta);font-size:.85rem;font-weight:600;}
@media(max-width:700px){.insight-line{grid-template-columns:1fr;gap:8px;}}

/* Resources hub */
.res-jump{
  display:flex;flex-wrap:wrap;gap:10px;padding:22px 0 0;
}
.res-jump a{
  font-size:.74rem;font-weight:600;letter-spacing:.03em;color:var(--white);
  border:1px solid var(--cta);background:var(--cta);padding:9px 18px;border-radius:100px;transition:all .2s var(--ease);
}
.res-jump a:hover{border-color:var(--cta-hover);color:var(--white);background:var(--cta-hover);transform:translateY(-1px);}
.res-block{padding:70px 0;border-top:1px solid var(--line);}
.res-block:first-of-type{border-top:none;}
.res-head{display:flex;align-items:baseline;gap:16px;justify-content:space-between;margin-bottom:36px;flex-wrap:wrap;}
.res-head h3{font-size:1.7rem;}
.res-head .res-source{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--cta);}
.res-list{border-top:1px solid var(--line);}
.res-item{
  display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;
  padding:22px 4px;border-bottom:1px solid var(--line);transition:background .2s;
}
.res-item:hover{background:var(--paper-2);}
.res-item .r-title{font-size:1.02rem;font-weight:600;color:var(--ink);margin-bottom:5px;}
.res-item .r-desc{font-size:.86rem;color:var(--muted);max-width:640px;}
.res-item .r-link{
  font-size:.78rem;font-weight:600;color:var(--cta);white-space:nowrap;
  display:inline-flex;align-items:center;gap:8px;
}
.res-item .r-link i{font-size:.7rem;}
@media(max-width:700px){.res-item{grid-template-columns:1fr;gap:10px;}}
.res-note{
  background:var(--paper-2);border-left:3px solid var(--cta);padding:20px 24px;
  font-size:.86rem;color:var(--slate);margin-top:28px;
}
.res-note strong{color:var(--ink);}

/* Cookie banner */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:2000;
  background:var(--ink);border-top:1px solid rgba(255,255,255,.08);
  box-shadow:0 -10px 40px rgba(0,0,0,.3);
  transform:translateY(120%);transition:transform .45s var(--ease);
}
.cookie-banner.show{transform:translateY(0);}
.cookie-banner-inner{
  max-width:1240px;margin:0 auto;padding:24px 32px;
  display:flex;align-items:center;gap:32px;justify-content:space-between;flex-wrap:wrap;
}
.cookie-text{font-size:.84rem;line-height:1.65;color:rgba(255,255,255,.65);max-width:680px;}
.cookie-text a{color:var(--brass-light);font-weight:600;text-decoration:underline;text-underline-offset:2px;}
.cookie-actions-row{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0;}
.btn-sm{padding:11px 22px;font-size:.76rem;}
.btn-ghost{border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.75);}
.btn-ghost:hover{border-color:rgba(255,255,255,.5);color:var(--white);background:none;}
@media(max-width:760px){.cookie-banner-inner{padding:20px;flex-direction:column;align-items:flex-start;}.cookie-actions-row{width:100%;}}

/* Cookie preference center */
.pref-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 4px;border-bottom:1px solid var(--line);}
.pref-row:last-child{border-bottom:none;}
.pref-row h4{font-size:1rem;margin-bottom:5px;display:flex;align-items:center;gap:10px;}
.pref-row p{font-size:.86rem;color:var(--muted);max-width:560px;}
.pref-badge{font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--cta);background:var(--paper-2);padding:3px 9px;border-radius:100px;font-weight:600;}
@media(max-width:640px){.pref-row{flex-direction:column;align-items:flex-start;}}
.switch{position:relative;display:inline-block;width:46px;height:26px;flex-shrink:0;}
.switch input{opacity:0;width:0;height:0;position:absolute;}
.switch .slider{position:absolute;cursor:pointer;inset:0;background:var(--line);transition:.25s;border-radius:100px;}
.switch .slider::before{content:'';position:absolute;height:20px;width:20px;left:3px;bottom:3px;background:var(--white);transition:.25s;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.2);}
.switch input:checked+.slider{background:var(--brass);}
.switch input:checked+.slider::before{transform:translateX(20px);}
.switch input:disabled+.slider{opacity:.55;cursor:not-allowed;}
.pref-save-row{display:flex;align-items:center;gap:16px;margin-top:32px;flex-wrap:wrap;}
.pref-saved-msg{font-size:.8rem;color:var(--cta);font-weight:600;opacity:0;transition:opacity .3s;}
.pref-saved-msg.show{opacity:1;}

/* Stats band */

/* CTA band */
.cta-band{
  background:linear-gradient(160deg,var(--ink),var(--navy));color:var(--white);
  padding:100px 0;text-align:center;
}
.cta-band h2{color:var(--white);font-size:2.6rem;max-width:640px;margin:0 auto 20px;}
.cta-band p{color:rgba(255,255,255,.6);max-width:520px;margin:0 auto 36px;}
.cta-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;}

/* Forms */
.form-wrap{background:var(--white);border:1px solid var(--line);padding:48px;max-width:820px;margin:0 auto;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.form-grid .full{grid-column:1/-1;}
.field label{display:block;font-size:.78rem;font-weight:600;margin-bottom:8px;letter-spacing:.02em;}
.field input,.field select,.field textarea{
  width:100%;padding:14px 16px;border:1px solid var(--line);background:var(--paper);
  font-family:var(--font-body);font-size:.92rem;transition:border-color .25s;
}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--cta);background:var(--white);}
.field textarea{resize:vertical;min-height:120px;}

/* Footer */
.site-footer{background:var(--ink);color:rgba(255,255,255,.55);padding:80px 0 0;}
.footer-top{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(5,minmax(0,.85fr));gap:32px;padding-bottom:60px;border-bottom:1px solid rgba(255,255,255,.08);}
.footer-top>div{min-width:0;}
.footer-top h5{color:var(--white);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:20px;}
.footer-top>div>a,.footer-top p{display:block;font-size:.86rem;margin:9px 0;color:rgba(255,255,255,.5);overflow-wrap:anywhere;word-break:break-word;}
.footer-top a:hover{color:var(--brass-light);}
.footer-top p{display:flex;align-items:center;gap:10px;}
.footer-top p i{width:16px;flex-shrink:0;text-align:center;color:var(--brass-light);}
.footer-top p a{display:inline;margin:0;}
.footer-brand .brand{margin-bottom:16px;}
.footer-brand p{max-width:280px;color:rgba(255,255,255,.45);font-size:.86rem;overflow-wrap:anywhere;word-break:break-word;}
.footer-social{display:flex;gap:14px;margin-top:20px;}
.footer-social a{width:36px;height:36px;border:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;}
.footer-social a:hover{border-color:var(--brass);color:var(--brass-light);}
.footer-social a:focus-visible{outline:2px solid var(--brass-light);outline-offset:2px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding:26px 0;flex-wrap:wrap;gap:12px;font-size:.78rem;color:rgba(255,255,255,.35);}
.footer-bottom .links{display:flex;gap:22px;flex-wrap:wrap;}
@media(max-width:980px){.footer-top{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:640px){.footer-top{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:480px){.footer-top{grid-template-columns:minmax(0,1fr);gap:36px;}}

/* Utility */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.reveal.in{opacity:1;transform:none;}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* Homepage leadership spotlight — mirrors the "Meet the Partners" credibility
   pattern common to top-tier firm homepages, adapted for a founder-led
   practice: one clear face, credentials, and a link to the full team. */
.leader-spotlight{display:grid;grid-template-columns:220px 1fr;gap:44px;align-items:center;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:40px;}
.leader-photo{aspect-ratio:3/4;border-radius:var(--radius);overflow:hidden;}
.leader-photo img{width:100%;height:100%;object-fit:cover;object-position:top center;}
.leader-body .role{color:var(--cta);font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-bottom:8px;}
.leader-body h3{font-size:1.7rem;margin-bottom:14px;}
.leader-body p{color:var(--slate);margin-bottom:18px;max-width:640px;}
.leader-body .tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;}
.leader-body .tags span{font-size:.68rem;background:var(--paper-2);padding:4px 10px;color:var(--slate);border-radius:2px;}
@media(max-width:700px){.leader-spotlight{grid-template-columns:1fr;padding:28px;}.leader-photo{max-width:180px;}}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
@media(max-width:900px){.two-col{grid-template-columns:1fr;}}
.visual-block{aspect-ratio:4/3;background:linear-gradient(160deg,var(--navy),var(--ink));position:relative;overflow:hidden;border:1px solid rgba(198,154,62,.28);border-radius:4px;box-shadow:0 30px 60px -18px rgba(0,0,0,.5);}
.visual-block::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:30px 30px;}
.visual-block img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;position:relative;z-index:1;}

/* Infographic / editorial image panel */
.panel-frame{border:1px solid var(--line);background:var(--white);padding:10px;}
.panel-frame img{width:100%;height:auto;display:block;}

/* Photo strip on hero */
.hero-photo{
  aspect-ratio:16/10;overflow:hidden;border:1px solid rgba(255,255,255,.12);
  margin-top:22px;
}
.hero-photo img{width:100%;height:100%;object-fit:cover;display:block;}

/* ==========================================================================
   MOBILE & TABLET UX ENHANCEMENTS
   ========================================================================== */

/* --- Global feel: snappier taps, no stray horizontal scroll, smooth anchors --- */
html{scroll-padding-top:140px;overflow-x:hidden;width:100%;}
body{-webkit-tap-highlight-color:transparent;overflow-x:hidden;width:100%;}
a,button,.card,.industry-item,.res-item,.insight-line{touch-action:manipulation;}
:root{--ease-spring:cubic-bezier(.34,1.46,.64,1);}

/* --- Tap feedback: hover-only effects are invisible on touchscreens, which is
   what makes the whole site feel inert/unresponsive ("carved from stone").
   Restrict :hover to devices that actually support it, and give every
   touch device its own :active feedback instead. --- */
@media(hover:hover){
  .card:hover{border-color:var(--brass);transform:translateY(-4px);box-shadow:var(--shadow-soft);}
}
@media(hover:none){
  .card:hover{transform:none;}
}
.card:active{border-color:var(--brass);transform:scale(.98);box-shadow:var(--shadow-soft);transition:transform .15s var(--ease),border-color .15s;}
.btn:active{transform:scale(.96);}
.industry-item:active{background:var(--paper-2);padding-left:14px;}
.res-item:active{background:var(--paper-2);}
.nav-cta:active,.btn-brass:active{background:var(--ink);}
.pillar{transition:transform .2s var(--ease),box-shadow .2s var(--ease);}
.pillar:active{transform:scale(.98);box-shadow:var(--shadow-soft);}

/* --- Mobile nav: overlay backdrop, scroll lock, spring easing, bigger everything --- */
body.nav-locked{overflow:hidden;}
.nav-overlay{
  position:fixed;inset:0;background:rgba(6,14,26,.6);
  opacity:0;visibility:hidden;z-index:999;
  transition:opacity .35s var(--ease),visibility .35s;
}
.nav-overlay.show{opacity:1;visibility:visible;}

@media(max-width:980px){
  .nav-toggle{
    width:46px;height:46px;justify-content:center;align-items:center;
    padding:0;position:relative;z-index:1300;
    background:rgba(255,255,255,.08);border-radius:12px;
  }
  .nav-toggle:active{background:rgba(255,255,255,.16);}
  .nav-toggle span{margin:0 auto;transition:transform .3s var(--ease-spring),opacity .2s var(--ease);}
  .nav-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.active span:nth-child(2){opacity:0;}
  .nav-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  .main-nav{
    transition:transform .4s var(--ease-spring);
    z-index:1100;border-radius:20px 0 0 20px;
  }

  /* Bigger, clearer tap targets for every nav row */
  .main-nav a{
    font-size:1.02rem;width:100%;padding:15px 4px;
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .main-nav a.active::after{display:none;}
  .main-nav a.active{color:var(--brass-light);}
  .nav-item{border-bottom:1px solid rgba(255,255,255,.08);}
  .nav-item>a{border-bottom:none;width:100%;justify-content:space-between;padding:15px 4px;}

  /* The dropdown caret used to be a ~10px icon with no padding - nearly
     impossible to tap accurately. Give it a real 44px+ hit area using
     negative margins so the visual position doesn't shift. */
  .nav-caret{
    font-size:.85rem;padding:16px 14px;margin:-16px -14px -16px 0;
    display:inline-flex;align-items:center;justify-content:center;
  }
  .dropdown-panel a{padding:13px 6px 13px 14px;border-radius:10px;}
  .nav-cta{
    width:100%;justify-content:center;padding:16px;
    margin-top:16px;border-radius:12px;font-size:.95rem;
  }
}

/* --- Soften the "carved from stone" look: rounded corners on tablet/mobile --- */
@media(max-width:980px){
  .card,.pillar,.person-card,.hero-panel,.form-wrap,.res-note,
  .dropdown-panel,.cookie-banner-inner,.visual-block,.panel-frame,.hero-photo,
  .booking-hero-card{
    border-radius:16px;
  }
  .card{overflow:hidden;}
  .person-card{overflow:hidden;}
  .field input,.field select,.field textarea{border-radius:10px;}
  .footer-social a{border-radius:10px;}
  .res-jump a{border-radius:100px;} /* already pill-shaped, unaffected */
  .switch .slider{border-radius:100px;}
}

/* --- Fix: contact/consultation form never stacked on mobile, squeezing
   every field into a cramped 2-column grid on phones. --- */
@media(max-width:700px){
  .form-grid{grid-template-columns:1fr;gap:16px;}
  .form-wrap{padding:28px 20px;}
}

/* --- Reduce the "monolithic slab" feeling of oversized desktop spacing
   when everything is stacked vertically on a small screen --- */
@media(max-width:640px){
  .section{padding:64px 0;}
  .section-head{margin-bottom:36px;}
  .section-head h2{font-size:1.9rem;}
  .card{padding:26px 22px;}
  .card-img{margin:-26px -22px 20px;}
  .pillar{padding:26px 22px;}
  .cta-band{padding:64px 0;}
  .cta-band h2{font-size:2rem;}
  .trust-row{gap:24px;}
  .trust-icons{gap:22px;}
  .industry-item{padding:20px 4px;}
  .res-item{padding:20px 4px;}
  .footer-top a,.footer-top p{padding:3px 0;}
}

/* --- Tablet range: a few components jumped straight from 3-col desktop to
   1-col mobile with nothing in between; give the 641-980px band its own
   comfortable layout instead of feeling squeezed or too sparse --- */
@media(min-width:641px) and (max-width:980px){
  .form-grid{grid-template-columns:1fr 1fr;}
  .card{padding:32px 26px;}
  .hero-panel{padding:28px;}
}

/* --- Accessibility: visible focus for keyboard/assistive nav, doesn't
   affect the touch experience --- */
a:focus-visible,button:focus-visible,.field input:focus-visible,
.field select:focus-visible,.field textarea:focus-visible{
  outline:2px solid var(--cta);outline-offset:2px;
}
.section--ink a:focus-visible,.section--ink button:focus-visible,
.hero a:focus-visible,.hero button:focus-visible,
.page-hero a:focus-visible,.cta-band a:focus-visible,
.site-header a:focus-visible,.site-header button:focus-visible,
.site-footer a:focus-visible,.cookie-banner a:focus-visible,.cookie-banner button:focus-visible{
  outline-color:var(--brass-light);
}

/* ==========================================================================
   BLOG / INSIGHTS — "The Docket": each post carries a citation-style
   reference (in the manner of a law report neutral citation), reinforcing
   that this is a practitioner's record, not a marketing feed.
   ========================================================================== */
.docket-eyebrow{
  font-family:var(--font-body);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.5);margin-bottom:14px;
}
.docket-eyebrow strong{color:var(--brass-light);font-weight:600;}

.blog-filters{
  display:flex;flex-wrap:wrap;gap:28px;border-bottom:1px solid var(--line);
  margin-bottom:56px;padding-bottom:0;
}
.blog-filters button{
  font-family:var(--font-body);font-size:.82rem;font-weight:600;letter-spacing:.02em;
  color:var(--muted);background:none;border:none;padding:0 0 16px;cursor:pointer;
  position:relative;transition:color .2s var(--ease);
}
.blog-filters button::after{
  content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brass);
  transform:scaleX(0);transition:transform .25s var(--ease);transform-origin:left;
}
.blog-filters button:hover{color:var(--ink);}
.blog-filters button.active{color:var(--ink);}
.blog-filters button.active::after{transform:scaleX(1);}

/* ==========================================================================
   BLOG — minimal editorial list (v2): text-first, no imagery, matching the
   reference brief. Case notes get a maroon link colour to distinguish them
   from commentary posts without needing a "Case Digest" section heading.
   ========================================================================== */
:root{ --maroon:var(--plum); --maroon-deep:var(--ink-2); }

.blog-list{max-width:820px;}
.blog-list .list-entry{
  padding:26px 0;border-bottom:1px solid var(--line);
  display:flex;flex-direction:column;gap:6px;
}
.blog-list .list-entry:first-child{padding-top:0;}
.blog-list .list-entry h3{
  font-size:1.18rem;line-height:1.35;margin:0;font-weight:600;
}
.blog-list .list-entry h3 a{color:var(--ink);text-decoration:none;border-bottom:1px solid transparent;}
.blog-list .list-entry h3 a:hover{color:var(--cta);border-bottom-color:var(--cta);}
.blog-list .list-entry.is-case h3 a{color:var(--maroon);}
.blog-list .list-entry.is-case h3 a:hover{color:var(--maroon-deep);border-bottom-color:var(--maroon-deep);}
.blog-list .list-entry p.excerpt{color:var(--muted);font-size:.92rem;margin:0;max-width:640px;}
.blog-list .list-entry .meta-row{
  display:flex;align-items:center;gap:10px;font-size:.76rem;color:var(--slate);margin-top:2px;
}
.blog-list .list-entry .meta-row .tag{
  color:var(--cta);font-weight:600;letter-spacing:.03em;text-transform:uppercase;font-size:.7rem;
}
.blog-list .list-entry.is-case .meta-row .tag{color:var(--maroon);}
.blog-list .list-entry .meta-row .dot{width:3px;height:3px;border-radius:50%;background:var(--line);display:inline-block;}
.blog-list .list-entry.is-hidden{display:none;}

.blog-section-label{
  font-family:var(--font-body);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin:56px 0 6px;padding-top:8px;
}
.blog-list .list-entry:first-of-type{border-top:none;}

/* ========================================================================
   DIGITAL TRUST REPOSITIONING — new sections (Why Boards Choose Us,
   Advisory Solutions, Methodology, Digital Trust Framework diagram)
   Motion: quiet, restrained, Big-Four register. Fade-up + stagger only.
   ======================================================================== */

/* Hero: sequenced fade-in for headline / sub / CTAs */
.hero-fade-1,.hero-fade-2,.hero-fade-3{opacity:0;transform:translateY(14px);animation:mpFadeUp .8s var(--ease) forwards;}
.hero-fade-1{animation-delay:.05s;}
.hero-fade-2{animation-delay:.22s;}
.hero-fade-3{animation-delay:.4s;}
@keyframes mpFadeUp{to{opacity:1;transform:none;}}

/* Staggered reveal: children of .stagger fade up in sequence once .in is added */
.stagger > *{opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease),transform .6s var(--ease);}
.stagger.in > *{opacity:1;transform:none;}
.stagger.in > *:nth-child(1){transition-delay:.05s;}
.stagger.in > *:nth-child(2){transition-delay:.15s;}
.stagger.in > *:nth-child(3){transition-delay:.25s;}
.stagger.in > *:nth-child(4){transition-delay:.35s;}
.stagger.in > *:nth-child(5){transition-delay:.45s;}
.stagger.in > *:nth-child(6){transition-delay:.55s;}

/* Why Boards Choose Us */
.wbcu-section{padding-top:24px;}
.wbcu-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.wbcu-card{
  background:var(--white);border:1px solid var(--line);padding:34px 28px;border-radius:var(--radius-lg);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s var(--ease);
}
.wbcu-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft);border-color:var(--brass);}
.wbcu-card i{font-size:1.5rem;color:var(--cta);margin-bottom:18px;display:block;}
.wbcu-card h3{font-size:1.08rem;margin-bottom:10px;}
.wbcu-card p{color:var(--muted);font-size:.94rem;line-height:1.6;}
@media(max-width:980px){.wbcu-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:620px){.wbcu-grid{grid-template-columns:1fr;}}

/* Advisory solution / service cards — gentle hover elevation only */
.card{transition:transform .35s var(--ease),box-shadow .35s var(--ease);}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft);}

/* Methodology timeline */
.methodology-section{background:var(--paper-2);}
.method-timeline{
  position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:18px;margin-top:20px;padding-top:6px;
}
.method-track{position:absolute;top:17px;left:8%;right:8%;height:2px;background:var(--line);z-index:0;}
.method-track-fill{
  position:absolute;top:0;left:0;height:100%;width:0%;background:var(--cta);
  transition:width 1.4s var(--ease);
}
.method-timeline.in .method-track-fill{width:100%;}
.method-stage{position:relative;z-index:1;text-align:center;opacity:0;transform:translateX(-16px);transition:opacity .6s var(--ease),transform .6s var(--ease);}
.method-timeline.in .method-stage{opacity:1;transform:none;}
.method-timeline.in .method-stage:nth-child(2){transition-delay:.1s;}
.method-timeline.in .method-stage:nth-child(3){transition-delay:.25s;}
.method-timeline.in .method-stage:nth-child(4){transition-delay:.4s;}
.method-timeline.in .method-stage:nth-child(5){transition-delay:.55s;}
.method-timeline.in .method-stage:nth-child(6){transition-delay:.7s;}
.method-timeline.in .method-stage:nth-child(7){transition-delay:.85s;}
.method-num{
  display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;
  background:var(--white);border:2px solid var(--cta);color:var(--cta);font-family:var(--font-display);
  font-size:1rem;margin:0 auto 14px;
}
.method-stage h3{font-size:.88rem;font-weight:600;line-height:1.4;max-width:150px;margin:0 auto;color:var(--ink);}
@media(max-width:900px){
  .method-timeline{grid-template-columns:1fr 1fr;gap:32px 18px;}
  .method-track{display:none;}
}

/* Digital Trust Framework diagram */
.dtf-diagram{max-width:820px;margin:0 auto;}
.dtf-diagram svg{width:100%;height:auto;overflow:visible;}
.dtf-pillar rect{fill:var(--white);stroke:var(--line);stroke-width:1;}
.dtf-pillar text{font-family:var(--font-body);font-size:15px;font-weight:600;fill:var(--ink);text-anchor:middle;}
.dtf-pillar .dtf-sub{font-size:11px;font-weight:400;fill:var(--muted);}
.dtf-node rect{fill:var(--plum-pale);stroke:var(--cta);stroke-width:1.4;}
.dtf-node text{font-family:var(--font-display);font-size:16px;font-weight:600;fill:var(--ink);text-anchor:middle;}
.dtf-node--final rect{fill:var(--ink);stroke:var(--brass);}
.dtf-node--final text{fill:var(--white);}
.dtf-line{fill:none;stroke:var(--line);stroke-width:1.5;stroke-dasharray:6 6;}
.dtf-line--out{stroke:var(--cta);stroke-dasharray:none;}
.dtf-pillar,.dtf-node{opacity:0;transform:translateY(-10px);transform-origin:center;transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--d) * .12s);}
.dtf-diagram.in .dtf-pillar,.dtf-diagram.in .dtf-node{opacity:1;transform:none;}
.dtf-line{stroke-dashoffset:60;opacity:0;transition:stroke-dashoffset 1s var(--ease) .5s,opacity .4s ease .5s;}
.dtf-diagram.in .dtf-line{stroke-dashoffset:0;opacity:1;}
.dtf-node--final{transition-delay:.85s;}
.dtf-diagram.in .dtf-node--final rect{animation:mpPulseGlow 1.2s var(--ease) .9s;}
@keyframes mpPulseGlow{0%{filter:none;}40%{filter:drop-shadow(0 0 10px rgba(198,154,62,.55));}100%{filter:none;}}

/* Counter animation for hero stats — number counts up once visible */
.hero-stats .num{display:inline-block;}

@media(prefers-reduced-motion:reduce){
  .hero-fade-1,.hero-fade-2,.hero-fade-3{animation:none;opacity:1;transform:none;}
  .stagger > *{opacity:1;transform:none;transition:none;}
  .method-track-fill{transition:none;}
  .method-stage{opacity:1;transform:none;transition:none;}
  .dtf-pillar,.dtf-node,.dtf-line{opacity:1;transform:none;transition:none;stroke-dashoffset:0;}
  .dtf-diagram.in .dtf-node--final rect{animation:none;}
  .wbcu-card,.card{transition:none;}
}

/* ==== Resource Gate modal (email-gated downloads: checklists, templates,
   toolkits, course manuals) — same visual language as .kc-modal above. ==== */
.kg-modal{
  position:fixed;inset:0;z-index:2100;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(27,26,23,.72);backdrop-filter:blur(3px);
  opacity:0;visibility:hidden;transition:opacity .25s var(--ease),visibility .25s;
}
.kg-modal.is-open{opacity:1;visibility:visible;}
.kg-modal-inner{
  background:var(--paper);color:var(--ink);border-radius:var(--radius-lg);
  width:100%;max-width:460px;max-height:88vh;overflow-y:auto;
  padding:40px;position:relative;box-shadow:var(--shadow-hard);
  transform:translateY(16px);transition:transform .3s var(--ease);text-align:left;
}
.kg-modal.is-open .kg-modal-inner{transform:translateY(0);}
.kg-modal-close{
  position:absolute;top:16px;right:16px;width:36px;height:36px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:var(--paper-2);
  color:var(--ink);font-size:.95rem;
}
.kg-modal-close:hover{background:var(--cta);color:var(--white);}
.kg-modal-icon{width:44px;height:44px;border-radius:50%;background:rgba(139,105,50,.1);color:var(--cta);
  display:flex;align-items:center;justify-content:center;font-size:1.1rem;margin-bottom:16px;}
.kg-modal-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:.7rem;letter-spacing:.07em;text-transform:uppercase;color:var(--cta);margin-bottom:8px;}
.kg-modal-inner h3{font-size:1.35rem;margin-bottom:8px;line-height:1.3;}
.kg-modal-intro{color:var(--slate);margin-bottom:22px;font-size:.92rem;}
.kg-field-row{display:flex;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.kg-field-row input{flex:1;min-width:140px;}
.kg-form input[type="text"],.kg-form input[type="email"]{
  width:100%;padding:12px 14px;border-radius:6px;border:1px solid var(--line);
  font-family:inherit;font-size:.92rem;margin-bottom:10px;background:var(--white);color:var(--ink);
}
.kg-form input:focus{outline:2px solid var(--cta);outline-offset:1px;}
.kg-form button[type="submit"]{width:100%;justify-content:center;margin-top:4px;}
.kg-fineprint{font-size:.76rem;color:var(--muted);margin-top:12px;line-height:1.5;}
.kg-error{display:none;background:rgba(138,46,46,.08);color:var(--error);border-radius:6px;padding:10px 12px;font-size:.84rem;margin-bottom:12px;}
.kg-error.is-visible{display:block;}
.kg-success{text-align:center;padding:6px 0;}
.kg-success-icon{color:var(--success);font-size:2.4rem;margin-bottom:14px;}
.kg-success h3{font-size:1.3rem;margin-bottom:8px;}
.kg-success p{color:var(--slate);font-size:.92rem;margin-bottom:20px;}
.kg-modal[aria-hidden="true"]{pointer-events:none;}
@media(max-width:640px){
  .kg-modal-inner{padding:30px 22px;}
}

/* ==========================================================================
   HOMEPAGE HERO — services sidebar + hero composition + contact strip
   Added for the redesigned homepage (sidebar of practice-area links, hero
   image right, gold/black premium legal aesthetic). Scoped under the
   "hh-" prefix so it cannot collide with existing site rules.
   ========================================================================== */
.hh-hero{background:var(--ink);padding-top:102px;}
.hh-grid{display:flex;align-items:stretch;}

/* Sidebar */
.hh-sidebar{
  flex:0 0 400px;background:var(--ink);
  border-right:1px solid rgba(255,255,255,.07);
  padding:44px 30px 40px 40px;
}
.hh-sidebar-eyebrow{
  display:flex;align-items:center;gap:10px;
  font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--brass-light);margin-bottom:22px;
}
.hh-sidebar-eyebrow::before{content:'';width:26px;height:1px;background:var(--brass-light);}
.hh-service-group{border:none;margin-bottom:16px;}
.hh-service-group summary{list-style:none;cursor:pointer;}
.hh-service-group summary::-webkit-details-marker{display:none;}
.hh-service-group-title{
  display:flex;align-items:center;gap:12px;
  background:linear-gradient(135deg,var(--cta) 0%,var(--brass) 100%);
  color:var(--white);font-weight:600;font-size:.88rem;
  padding:13px 16px;border-radius:8px;user-select:none;
}
.hh-service-group-title i:first-child{font-size:.92rem;width:16px;text-align:center;flex-shrink:0;}
.hh-service-group-title .hh-chevron{margin-left:auto;font-size:.7rem;transition:transform .2s var(--ease);opacity:.85;}
.hh-service-group[open] .hh-chevron{transform:rotate(180deg);}
.hh-service-list{list-style:none;padding:14px 4px 2px 6px;margin:0;}
.hh-service-list li{margin-bottom:9px;}
.hh-service-list li:last-child{margin-bottom:0;}
.hh-service-list a{
  display:flex;align-items:center;gap:9px;
  color:rgba(255,255,255,.78);font-size:.86rem;text-decoration:none;line-height:1.3;
  transition:color .2s;
}
.hh-service-list a::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--brass-light);flex-shrink:0;}
.hh-service-list a:hover,.hh-service-list a:focus-visible{color:var(--brass-light);}

/* Main hero panel */
.hh-main{
  position:relative;overflow:hidden;flex:1 1 auto;min-width:0;
  display:flex;align-items:center;
  padding:70px 56px;
  background:radial-gradient(circle at 78% 18%, rgba(198,154,62,.14), transparent 55%), linear-gradient(160deg,var(--ink) 0%,var(--ink-2) 55%,var(--navy) 100%);
}
.hh-main-image{
  position:absolute;top:0;right:0;bottom:0;width:52%;
  background-size:cover;background-position:center;
}
.hh-main-image::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg, var(--ink) 0%, rgba(27,26,23,.5) 32%, rgba(27,26,23,0) 66%);
}
.hh-main-content{position:relative;z-index:2;max-width:600px;}
.hh-main-content h1{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(2.1rem,4vw,3.5rem);line-height:1.1;
  color:var(--white);margin-bottom:20px;
}
.hh-sub{
  font-family:var(--font-display);font-style:italic;font-weight:500;
  font-size:1.12rem;color:var(--brass-light);margin-bottom:36px;
}
.hh-main .hero-actions{margin-bottom:0;}

/* Bottom contact strip */
.hh-contact-strip{
  background:#120c14;border-top:1px solid rgba(255,255,255,.08);
  padding:16px 40px;display:flex;flex-wrap:wrap;align-items:center;
  justify-content:space-between;gap:14px 32px;
}
.hh-contact-left{display:flex;flex-wrap:wrap;align-items:center;gap:24px;}
.hh-contact-strip a{
  color:rgba(255,255,255,.78);font-size:.8rem;
  display:inline-flex;align-items:center;gap:8px;transition:color .2s;
}
.hh-contact-strip a:hover{color:var(--brass-light);}
.hh-contact-strip i{color:var(--brass-light);font-size:.8rem;}
.hh-contact-right a{font-size:.95rem;}

/* ==========================================================================
   FIXED / VIEW-BASED HOMEPAGE
   The homepage is a single, fixed full-viewport view — no page-level
   scrolling. If the services list is taller than the available height on a
   shorter screen, the sidebar scrolls internally rather than the page.
   Scoped to body.home-fixed-view so it never affects any other page that
   shares this stylesheet.
   ========================================================================== */
body.home-fixed-view{height:100vh;overflow:hidden;}
body.home-fixed-view .hh-hero{
  height:100vh;box-sizing:border-box;
  display:flex;flex-direction:column;overflow:hidden;
}
body.home-fixed-view .hh-grid{flex:1 1 auto;min-height:0;overflow:hidden;}
body.home-fixed-view .hh-sidebar{
  height:100%;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:rgba(236,201,129,.35) transparent;
}
body.home-fixed-view .hh-sidebar::-webkit-scrollbar{width:6px;}
body.home-fixed-view .hh-sidebar::-webkit-scrollbar-thumb{background:rgba(236,201,129,.3);border-radius:3px;}
body.home-fixed-view .hh-main{height:100%;overflow:hidden;}
body.home-fixed-view .hh-contact-strip{flex-shrink:0;}

@media(max-width:1152px){
  .hh-sidebar{flex-basis:360px;padding:40px 26px 36px 32px;}
  .hh-main{padding:60px 44px;}
}
@media(max-width:1024px){
  .hh-sidebar{flex-basis:320px;padding:36px 22px 32px 28px;}
  .hh-main{padding:56px 36px;}
  .hh-main-image{width:46%;}
}
@media(max-width:981px){
  .hh-grid{flex-direction:column;}
  .hh-sidebar{order:2;flex-basis:auto;border-right:none;border-top:1px solid rgba(255,255,255,.07);padding:40px 28px;}
  .hh-main{order:1;flex-direction:column;align-items:flex-start;padding:56px 28px 0;}
  .hh-main-image{
    position:static;width:100%;height:280px;order:2;
    margin-top:32px;border-radius:8px;
  }
  .hh-main-image::after{display:none;}
  .hh-main-content{order:1;max-width:100%;padding-bottom:44px;}

  /* Below the sidebar-beside-hero breakpoint, the sidebar and hero stack —
     there isn't a sane way to keep a 19-link services list plus a full
     hero fully on-screen with no scrolling on a phone or tablet, so this
     single view is allowed to scroll as one unit here (it is still the
     one and only view on the page — nothing else is appended below it). */
  body.home-fixed-view{height:auto;overflow:visible;}
  body.home-fixed-view .hh-hero{height:auto;overflow:visible;}
  body.home-fixed-view .hh-grid{overflow:visible;}
  body.home-fixed-view .hh-sidebar{height:auto;overflow-y:visible;}
  body.home-fixed-view .hh-main{height:auto;overflow:visible;}
}
@media(max-width:640px){
  .hh-hero{padding-top:88px;}
  .hh-sidebar{padding:34px 20px;}
  .hh-main{padding:44px 20px 0;}
  .hh-main-content{padding-bottom:36px;}
  .hh-main-image{height:220px;margin-top:24px;}
  .hh-contact-strip{padding:16px 20px;justify-content:center;text-align:center;}
  .hh-contact-left{justify-content:center;gap:16px;}
  .hh-service-group-title{font-size:.84rem;padding:12px 14px;}
}

/* Final homepage fidelity overrides — scoped to the fixed homepage only. */
@media (min-width:982px){
 body.home-fixed-view .header-utility{display:none;} body.home-fixed-view .site-header{height:112px;} body.home-fixed-view .site-header .header-row{height:112px;align-items:center;}
 body.home-fixed-view .homepage-brand{display:flex;align-items:center;gap:12px;width:380px;text-decoration:none;} body.home-fixed-view .homepage-brand-icon{width:74px;height:88px;object-fit:contain;flex:0 0 auto;} body.home-fixed-view .homepage-brand-copy{display:flex;flex-direction:column;line-height:1.02;} body.home-fixed-view .homepage-brand-copy strong{font-family:Georgia,'Times New Roman',serif;font-size:1.08rem;letter-spacing:.01em;color:#fff;font-weight:600;} body.home-fixed-view .homepage-brand-copy em{font-family:Georgia,'Times New Roman',serif;font-size:.78rem;letter-spacing:.08em;color:var(--brass-light);font-style:normal;margin-top:8px;}
 body.home-fixed-view .main-nav{gap:28px;align-items:center;} body.home-fixed-view .main-nav > a[href="people.html"],body.home-fixed-view .main-nav > a[href="insights.html"]{display:none;}
 body.home-fixed-view .hh-hero{padding-top:112px;} body.home-fixed-view .hh-sidebar{flex-basis:427px;padding:26px 24px 28px 36px;} body.home-fixed-view .hh-sidebar-eyebrow{font-size:.9rem;letter-spacing:.03em;margin-bottom:16px;} body.home-fixed-view .hh-sidebar-eyebrow::before{display:none;}
 body.home-fixed-view .hh-service-group{margin-bottom:18px;} body.home-fixed-view .hh-service-group-title{font-family:var(--font-display);font-size:1.08rem;font-weight:500;padding:14px 18px;border-radius:16px;} body.home-fixed-view .hh-service-list{padding:11px 6px 1px 42px;} body.home-fixed-view .hh-service-list li{margin-bottom:8px;} body.home-fixed-view .hh-service-list a{font-size:.9rem;}
 body.home-fixed-view .hh-main{padding:0;display:block;background:#0d0a0e;} body.home-fixed-view .hh-main-image{inset:0;width:100%;height:100%;background-position:center;background-size:cover;} body.home-fixed-view .hh-main-image::after{background:linear-gradient(90deg,rgba(10,8,10,.98) 0%,rgba(10,8,10,.91) 16%,rgba(10,8,10,.58) 42%,rgba(10,8,10,.12) 72%,rgba(10,8,10,.02) 100%),linear-gradient(0deg,rgba(10,8,10,.25),rgba(10,8,10,.05));}
 body.home-fixed-view .hh-main-content{position:absolute;left:42px;top:50%;transform:translateY(-50%);max-width:720px;padding:0;} body.home-fixed-view .hh-main-content .eyebrow{font-family:var(--font-display);font-size:1.55rem;letter-spacing:0;color:var(--brass-light);text-transform:none;margin-bottom:18px;} body.home-fixed-view .hh-main-content .eyebrow::after{content:'';display:block;width:60px;height:2px;background:var(--brass-light);margin-top:18px;} body.home-fixed-view .hh-main-content h1{font-size:clamp(3.4rem,4.5vw,5.4rem);line-height:1.03;margin:26px 0 22px;max-width:760px;} body.home-fixed-view .hh-sub{font-size:1.45rem;margin-bottom:40px;} body.home-fixed-view .hh-main .btn-brass{font-size:1.02rem;padding:16px 26px;border-radius:18px;}
 body.home-fixed-view .hh-contact-strip{min-height:58px;padding:12px 36px;background:#09070a;} body.home-fixed-view .hh-contact-strip a{font-size:.88rem;}
}
@media(max-width:981px){body.home-fixed-view .header-utility{display:none;} body.home-fixed-view .site-header .header-row{min-height:82px;} body.home-fixed-view .homepage-brand{display:flex;align-items:center;gap:8px;} body.home-fixed-view .homepage-brand-icon{width:48px;height:56px;object-fit:contain;} body.home-fixed-view .homepage-brand-copy strong{font-size:.78rem;line-height:1.02;color:#fff;} body.home-fixed-view .homepage-brand-copy em{font-size:.58rem;color:var(--brass-light);font-style:normal;letter-spacing:.06em;} body.home-fixed-view .hh-hero{padding-top:82px;}}

/* ==========================================================================
   HOME — EXECUTIVE / QUIET AUTHORITY
   Scoped to .home-executive so internal pages remain unchanged.
   ========================================================================== */
.home-executive{
  --home-gold:#c69a3e;
  --home-plum:#1b1a17;
  --home-plum-2:#262218;
  --home-paper:#f2ecdc;
}
.home-executive .executive-header{
  background:rgba(242,236,220,.96);
  border-bottom:1px solid rgba(27,26,23,.10);
  box-shadow:none;
}
.home-executive .executive-header .header-row{
  min-height:76px;
}
.home-executive .executive-brand{
  display:inline-block;
  width:auto;
  height:auto;
  margin:0;
  color:var(--home-plum);
  font-family:Inter,system-ui,sans-serif;
  font-size:.86rem;
  font-weight:600;
  letter-spacing:.01em;
  text-decoration:none;
  white-space:nowrap;
}
.home-executive .executive-nav{
  gap:24px;
  align-items:center;
}
.home-executive .executive-nav > a{
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.01em;
  color:var(--home-plum);
}
.home-executive .executive-nav > a:hover{
  color:var(--cta);
}
.home-executive .executive-nav .nav-cta{
  padding:10px 14px;
  border:1px solid var(--home-plum);
  background:transparent;
  color:var(--home-plum);
  border-radius:0;
  font-size:.72rem;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.home-executive .executive-nav .nav-cta:hover{
  background:var(--home-plum);
  color:var(--white);
}
.home-executive .executive-hero{
  background:var(--home-paper);
  min-height:calc(78vh - 76px);
  display:flex;
  align-items:center;
}
.home-executive .executive-hero-copy{
  max-width:930px;
  padding:48px 0 72px;
}
.home-executive .executive-hero h1{
  max-width:850px;
  margin:18px 0 24px;
  font-size:clamp(3.3rem,7vw,7rem);
  line-height:.94;
  letter-spacing:-.045em;
}
.home-executive .executive-hero h1 em{
  font-weight:400;
}
.home-executive .executive-hero .lede{
  max-width:650px;
  font-size:1.12rem;
  line-height:1.7;
  color:var(--slate);
}
.home-executive .executive-hero .hero-actions{
  margin-top:30px;
}
.home-executive .executive-hero .btn{
  border-radius:0;
}
.home-executive .executive-routes{
  padding:0;
  background:var(--white);
}
.home-executive .executive-route-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-left:1px solid var(--line);
}
.home-executive .executive-route{
  padding:42px 34px 46px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  text-decoration:none;
  color:var(--ink);
  transition:background .18s ease;
}
.home-executive .executive-route:hover{
  background:var(--paper);
}
.home-executive .route-kicker{
  display:block;
  margin-bottom:22px;
  color:var(--cta);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.home-executive .executive-route h2{
  margin:0 0 12px;
  font-size:clamp(1.7rem,2.4vw,2.4rem);
  letter-spacing:-.025em;
}
.home-executive .executive-route p{
  max-width:330px;
  margin:0 0 24px;
  color:var(--muted);
  line-height:1.65;
}
.home-executive .route-link{
  color:var(--home-plum);
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.home-executive .section-head h2{
  letter-spacing:-.025em;
}
.home-executive .card,
.home-executive .wbcu-card,
.home-executive .kc-checker-card,
.home-executive .kplr-note-card,
.home-executive .kc-cover{
  border-radius:0;
}
.home-executive .card{
  box-shadow:none;
}
.home-executive .industry-item{
  border-radius:0;
}
.home-executive .more{
  font-weight:600;
}
.home-executive .kc-section{
  scroll-margin-top:80px;
}
@media (max-width:900px){
  .home-executive .executive-nav{gap:14px;}
  .home-executive .executive-route-grid{grid-template-columns:1fr;}
}
@media (max-width:760px){
  .home-executive .executive-header .header-row{min-height:68px;}
  .home-executive .executive-brand{font-size:.78rem;}
  .home-executive .executive-hero h1{font-size:clamp(2.8rem,13vw,5rem);}
  .home-executive .executive-route{padding:30px 24px;}
}

/* ========================================================================
   EXECUTIVE KNOWLEDGE CENTRE MEGA MENU
   Full-width resource map: the menu opens across the viewport so the
   visitor can scan the available legal intelligence without hunting.
   ======================================================================== */
.home-executive .executive-knowledge-item{position:static;}
.home-executive .executive-knowledge-item > a{position:relative;}
.home-executive .executive-knowledge-mega{
  position:fixed;
  top:76px;
  left:0;
  right:0;
  width:100vw;
  max-width:none;
  margin:0;
  padding:34px max(40px, calc((100vw - 1280px)/2));
  box-sizing:border-box;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;
  background:rgba(27,26,23,.985);
  border:0;
  border-top:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.10);
  box-shadow:0 20px 45px rgba(27,26,23,.16);
  transform:translateY(-8px);
  transition:opacity .14s ease,transform .14s ease,visibility .14s ease;
}
.home-executive .executive-knowledge-mega .mega-col{
  min-width:0;
  padding:0 28px;
  border-left:1px solid rgba(255,255,255,.10);
}
.home-executive .executive-knowledge-mega .mega-col:first-child{border-left:0;padding-left:0;}
.home-executive .executive-knowledge-mega .mega-col:last-of-type{padding-right:0;}
.home-executive .mega-label{
  display:block;
  margin-bottom:12px;
  color:var(--brass-light);
  font-size:.65rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.home-executive .executive-knowledge-mega a:not(.mega-footer a){
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:9px 0;
  border-radius:0;
  color:rgba(255,255,255,.88);
  background:none;
  text-decoration:none;
  transition:color .12s ease;
}
.home-executive .executive-knowledge-mega a:not(.mega-footer a) span{
  font-size:.84rem;
  font-weight:500;
  color:inherit;
}
.home-executive .executive-knowledge-mega a:not(.mega-footer a) i{
  width:auto;
  margin:0;
  color:var(--brass-light);
  font-size:.68rem;
  opacity:.65;
  transform:translateX(-3px);
  transition:transform .12s ease,opacity .12s ease;
}
.home-executive .executive-knowledge-mega a:not(.mega-footer a):hover{color:#fff;background:none;}
.home-executive .executive-knowledge-mega a:not(.mega-footer a):hover i{transform:translateX(0);opacity:1;}
.home-executive .executive-knowledge-mega .mega-footer{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:26px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.10);
}
.home-executive .mega-footer span{
  color:rgba(255,255,255,.42);
  font-size:.66rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.home-executive .mega-footer a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:0;
  color:var(--brass-light);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.03em;
  background:none;
}
.home-executive .mega-footer a:hover{color:#fff;background:none;}
.home-executive .mega-footer a i{font-size:.65rem;}
.site-header.is-scrolled .executive-knowledge-mega{top:60px;}

/* Do not make page navigation look like the destination is thinking.
   Content is immediately visible; only deliberate micro-interactions remain. */
.reveal{opacity:1;transform:none;transition:none;}
.stagger > *{opacity:1;transform:none;transition:none;}

@media(max-width:980px){
  .home-executive .executive-knowledge-item{position:relative;width:100%;}
  .home-executive .executive-knowledge-mega{
    position:static;
    width:100%;
    max-width:none;
    padding:10px 0 4px;
    display:block;
    background:transparent;
    border:0;
    box-shadow:none;
    transform:none;
  }
  .home-executive .executive-knowledge-mega .mega-col,
  .home-executive .executive-knowledge-mega .mega-col:first-child,
  .home-executive .executive-knowledge-mega .mega-col:last-of-type{
    border-left:0;
    padding:0;
    margin-bottom:12px;
  }
  .home-executive .mega-label{margin-top:8px;}
  .home-executive .executive-knowledge-mega a:not(.mega-footer a){padding:8px 0;}
  .home-executive .executive-knowledge-mega .mega-footer{margin-top:8px;padding-top:10px;}
  .site-header.is-scrolled .executive-knowledge-mega{top:auto;}
}

/* ==========================================================================\n   HOMEPAGE V3 — editorial journey / progressive disclosure\n   ========================================================================== */
.home-executive .executive-hero-v2{min-height:calc(76vh - 76px);position:relative;overflow:hidden;}
.home-executive .executive-hero-v2 .hero-flow-lines{opacity:.7;right:-2%;width:58%;height:62%;top:18%;left:auto;}
.home-executive .executive-hero-v2 .executive-hero-copy{position:relative;z-index:2;max-width:980px;padding:58px 0 74px;}
.home-executive .executive-hero-v2 h1{font-size:clamp(3.1rem,6.4vw,6.4rem);max-width:760px;line-height:.96;}
.home-executive .executive-hero-v2 .lede{max-width:620px;}
.home-executive .executive-hero-v2 .hero-actions{display:flex;gap:56px;align-items:flex-start;flex-wrap:wrap;margin-top:38px;}
.home-executive .executive-hero-link{display:inline-flex;align-items:center;gap:18px;padding:0 0 12px;border-bottom:1px solid var(--home-gold);color:var(--home-plum);font-size:.78rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;text-decoration:none;}
.home-executive .executive-hero-link i{color:var(--home-gold);font-size:.9rem;transition:transform .18s ease;}
.home-executive .executive-hero-link:hover i{transform:translateY(3px);}
.home-executive .executive-hero-link--across:hover i{transform:translateX(4px);}
.home-executive .executive-resource-map{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.home-executive .executive-resource-grid{display:grid;grid-template-columns:repeat(5,1fr);}
.home-executive .executive-resource-grid>a{position:relative;min-height:146px;padding:24px 22px 22px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--home-plum);transition:background .16s ease;}
.home-executive .executive-resource-grid>a:first-child{border-left:1px solid var(--line);}
.home-executive .executive-resource-grid>a:hover{background:var(--home-paper);}
.home-executive .resource-index{font-size:.62rem;letter-spacing:.15em;color:var(--home-gold);font-weight:700;margin-bottom:12px;}
.home-executive .executive-resource-grid strong{font-size:.86rem;letter-spacing:.07em;text-transform:uppercase;}
.home-executive .executive-resource-grid small{color:var(--muted);line-height:1.5;font-size:.76rem;max-width:180px;}
.home-executive .executive-resource-grid i{position:absolute;right:20px;bottom:22px;color:var(--home-gold);font-size:.72rem;}
.home-executive .executive-digest-section{background:var(--home-paper);padding-top:94px;padding-bottom:94px;}
.home-executive .digest-intro{display:grid;grid-template-columns:1.08fr .92fr;gap:70px;align-items:center;}
.home-executive .digest-intro h2{font-family:var(--font-display);font-size:clamp(2.8rem,5vw,5rem);font-weight:400;letter-spacing:-.04em;margin:12px 0 18px;}
.home-executive .digest-lede{max-width:620px;font-size:1.04rem;line-height:1.8;color:var(--slate);}
.home-executive .digest-volume-card{background:var(--home-plum);color:#fff;padding:42px 42px 38px;min-height:290px;display:flex;flex-direction:column;justify-content:center;}
.home-executive .digest-volume-label{font-size:.65rem;letter-spacing:.16em;color:var(--brass-light);font-weight:700;}
.home-executive .digest-volume-card h3{font-family:var(--font-display);font-size:clamp(1.8rem,2.8vw,2.8rem);line-height:1.06;font-weight:400;margin:16px 0 22px;}
.home-executive .digest-stats{display:flex;gap:26px;flex-wrap:wrap;color:rgba(255,255,255,.68);font-size:.78rem;margin-bottom:24px;}
.home-executive .digest-stats strong{color:#fff;font-size:1.2rem;margin-right:5px;}
.home-executive .digest-actions{display:flex;gap:12px;flex-wrap:wrap;}
.home-executive .digest-case-strip{display:grid;grid-template-columns:repeat(3,1fr);margin-top:46px;border-top:1px solid var(--line);}
.home-executive .digest-case-strip a{display:grid;grid-template-columns:1fr auto;gap:8px;padding:24px 26px 22px;border-right:1px solid var(--line);text-decoration:none;color:var(--home-plum);}
.home-executive .digest-case-strip a:first-child{border-left:1px solid var(--line);}
.home-executive .digest-case-strip span{grid-column:1/-1;color:var(--home-gold);font-size:.63rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;}
.home-executive .digest-case-strip strong{font-size:.9rem;line-height:1.45;}
.home-executive .digest-case-strip i{align-self:center;color:var(--home-gold);font-size:.7rem;}
.home-executive .executive-practice-band{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.home-executive .executive-practice-band-inner{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:48px 0;}
.home-executive .executive-practice-band h2{font-family:var(--font-display);font-size:clamp(2rem,3.2vw,3.2rem);font-weight:400;margin:5px 0 0;}
.home-executive .executive-practice-band a{display:inline-flex;align-items:center;gap:14px;color:var(--home-plum);font-size:.75rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--home-gold);padding-bottom:10px;}
.home-executive .executive-practice-band a i{color:var(--home-gold);}
.home-executive .executive-notes-section{padding-top:94px;padding-bottom:94px;background:#fff;}
.home-executive .executive-section-head{max-width:720px;margin-bottom:42px;}
.home-executive .executive-section-head h2{font-family:var(--font-display);font-size:clamp(2.7rem,4.6vw,4.6rem);font-weight:400;line-height:1;letter-spacing:-.035em;margin:10px 0 18px;}
.home-executive .executive-section-head p{font-size:1rem;line-height:1.75;color:var(--slate);}
.home-executive .executive-notes-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;align-items:stretch;}
.home-executive .executive-note-feature{grid-column:span 2;background:var(--home-paper);text-decoration:none;color:var(--home-plum);border:1px solid var(--line);}
.home-executive .executive-note-feature img{width:100%;aspect-ratio:900/1200;object-fit:cover;display:block;transition:transform .45s ease;}
.home-executive .executive-note-feature:hover img{transform:scale(1.025);}
.home-executive .executive-note-feature>div{padding:18px 18px 20px;position:relative;}
.home-executive .executive-note-feature span,.home-executive .executive-note-card span{display:block;color:var(--home-gold);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;}
.home-executive .executive-note-feature h3{font-family:var(--font-display);font-weight:400;font-size:1.55rem;line-height:1.1;margin:0 25px 0 0;}
.home-executive .executive-note-feature i,.home-executive .executive-note-card i{position:absolute;right:18px;bottom:20px;color:var(--home-gold);font-size:.72rem;}
.home-executive .executive-note-card{grid-column:span 2;position:relative;padding:0 0 48px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--home-plum);}
.home-executive .executive-note-card img{width:100%;aspect-ratio:480/679;object-fit:cover;display:block;margin-bottom:16px;}
.home-executive .executive-note-card strong{display:block;font-family:var(--font-display);font-size:1.3rem;line-height:1.12;font-weight:400;padding-right:28px;}
.home-executive .executive-centre-link{margin-top:34px;text-align:right;}
.home-executive .executive-compliance-section{background:var(--home-plum);color:#fff;padding:92px 0;}
.home-executive .executive-compliance-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:80px;align-items:center;}
.home-executive .executive-compliance-section h2{font-family:var(--font-display);font-size:clamp(2.8rem,5vw,5rem);font-weight:400;line-height:1;margin:10px 0 18px;letter-spacing:-.035em;}
.home-executive .executive-compliance-section p{max-width:610px;color:rgba(255,255,255,.7);font-size:1rem;line-height:1.8;margin-bottom:28px;}
.home-executive .executive-compliance-stats{display:grid;grid-template-columns:1fr 1fr;border-left:1px solid rgba(255,255,255,.15);}
.home-executive .executive-compliance-stats div{padding:24px 28px;border-bottom:1px solid rgba(255,255,255,.15);}
.home-executive .executive-compliance-stats div:nth-child(odd){border-right:1px solid rgba(255,255,255,.15);}
.home-executive .executive-compliance-stats strong{display:block;font-family:var(--font-display);font-size:2.2rem;font-weight:400;color:#fff;margin-bottom:4px;}
.home-executive .executive-compliance-stats span{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);}
.home-executive .executive-publications-section{background:var(--home-paper);padding-top:92px;padding-bottom:92px;}
.home-executive .executive-publication-list{border-top:1px solid var(--line);}
.home-executive .executive-publication-list a{display:grid;grid-template-columns:190px 1fr 30px;gap:24px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--home-plum);}
.home-executive .executive-publication-list span{font-size:.63rem;color:var(--home-gold);font-weight:700;letter-spacing:.1em;text-transform:uppercase;}
.home-executive .executive-publication-list strong{font-family:var(--font-display);font-size:1.35rem;font-weight:400;}
.home-executive .executive-publication-list i{color:var(--home-gold);font-size:.7rem;}
.home-executive .executive-final-cta{background:#fff;padding:100px 0 110px;text-align:center;border-top:1px solid var(--line);}
.home-executive .executive-final-cta .container{max-width:800px;}
.home-executive .executive-final-cta h2{font-family:var(--font-display);font-size:clamp(3rem,5.4vw,5.2rem);font-weight:400;line-height:1;letter-spacing:-.04em;margin:12px 0 18px;}
.home-executive .executive-final-cta p{max-width:620px;margin:0 auto 28px;color:var(--slate);line-height:1.8;}
.home-executive .executive-final-cta .btn{border-radius:0;}
.home-executive .executive-hero-v2 .hero-actions{animation:none;}
.home-executive .executive-hero-v2 h1,.home-executive .executive-hero-v2 .lede{animation:none;opacity:1;transform:none;}
@media(max-width:1050px){
 .home-executive .executive-resource-grid{grid-template-columns:repeat(3,1fr);}
 .home-executive .executive-resource-grid>a:nth-child(4){border-left:1px solid var(--line);}
 .home-executive .digest-intro,.home-executive .executive-compliance-grid{grid-template-columns:1fr;gap:44px;}
 .home-executive .executive-notes-grid{grid-template-columns:repeat(4,1fr);}
 .home-executive .executive-note-feature{grid-column:span 2;}
 .home-executive .executive-note-card{grid-column:span 2;}
}
@media(max-width:700px){
 .home-executive .executive-resource-grid{grid-template-columns:1fr 1fr;}
 .home-executive .executive-resource-grid>a{min-height:132px;}
 .home-executive .executive-hero-v2 .hero-flow-lines{width:95%;opacity:.45;top:30%;}
 .home-executive .executive-hero-v2 .hero-actions{gap:28px;}
 .home-executive .executive-digest-section,.home-executive .executive-notes-section,.home-executive .executive-publications-section{padding-top:70px;padding-bottom:70px;}
 .home-executive .digest-case-strip{grid-template-columns:1fr;}
 .home-executive .digest-case-strip a,.home-executive .digest-case-strip a:first-child{border-left:1px solid var(--line);}
 .home-executive .executive-practice-band-inner{align-items:flex-start;flex-direction:column;padding:38px 0;}
 .home-executive .executive-notes-grid{grid-template-columns:1fr 1fr;}
 .home-executive .executive-note-feature,.home-executive .executive-note-card{grid-column:span 1;}
 .home-executive .executive-note-feature:first-child{grid-column:1/-1;}
 .home-executive .executive-publication-list a{grid-template-columns:1fr 24px;gap:12px;}
 .home-executive .executive-publication-list span{grid-column:1/-1;}
}
@media(max-width:480px){
 .home-executive .executive-resource-grid{grid-template-columns:1fr;}
 .home-executive .executive-resource-grid>a,.home-executive .executive-resource-grid>a:first-child{border-left:1px solid var(--line);}
 .home-executive .executive-notes-grid{grid-template-columns:1fr;}
 .home-executive .executive-note-feature:first-child{grid-column:auto;}
}


/* CASE DIGEST COVER WALL — editorial grid; covers remain complete and clickable */
.home-executive .digest-cover-wall{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:46px;align-items:start;}
.home-executive .digest-cover{display:block;min-width:0;text-decoration:none;color:var(--home-plum);background:#fff;border:1px solid var(--line);overflow:hidden;}
.home-executive .digest-cover img{width:100%;aspect-ratio:2/3;object-fit:contain;object-position:center;display:block;background:#fff;transition:transform .3s ease;}
.home-executive .digest-cover:hover img{transform:scale(1.015);}
.home-executive .digest-cover:focus-visible{outline:2px solid var(--home-gold);outline-offset:4px;}
.home-executive .digest-cover-caption{display:grid;grid-template-columns:1fr auto;gap:4px 14px;padding:16px 18px 18px;border-top:1px solid var(--line);}
.home-executive .digest-cover-caption strong{font-family:var(--font-display);font-size:1.15rem;font-weight:400;line-height:1.15;}
.home-executive .digest-cover-caption small{grid-column:1;display:block;color:var(--muted);font-size:.7rem;line-height:1.45;}
.home-executive .digest-cover-caption i{grid-column:2;grid-row:1 / span 2;align-self:center;color:var(--home-gold);font-size:.72rem;}
@media(max-width:700px){.home-executive .digest-cover-wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}}
@media(max-width:480px){.home-executive .digest-cover-wall{grid-template-columns:1fr;}}

/* ========================================================================
   ODPC COMPLAINT INTAKE — scoped page layer
   Uses the existing site design system; no external stylesheet dependency.
   ======================================================================== */
.odpc-complaint-page{background:var(--paper);color:var(--ink);}
.odpc-complaint-page .site-header{position:relative;z-index:50;}
.odpc-complaint-page .complaint-band{
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  background:var(--white);border-bottom:1px solid var(--line);
  max-width:100%;
  margin-top:calc(var(--site-header-h) + 12px);
}
.odpc-complaint-page .complaint-band>a{
  position:relative;min-height:116px;padding:20px 28px;
  border-right:1px solid var(--line);display:flex;flex-direction:column;
  justify-content:center;gap:5px;transition:background .2s ease,color .2s ease;
}
.odpc-complaint-page .complaint-band>a:first-child{border-left:1px solid var(--line);}
.odpc-complaint-page .complaint-band>a:hover{background:var(--paper-2);}
.odpc-complaint-page .complaint-band>a.active{background:var(--ink);color:var(--white);}
.odpc-complaint-page .complaint-band>a.active small{color:rgba(255,255,255,.68);}
.odpc-complaint-page .resource-index{font-size:.68rem;letter-spacing:.16em;font-weight:700;color:var(--cta);}
.odpc-complaint-page .complaint-band>a.active .resource-index{color:var(--brass-light);}
.odpc-complaint-page .complaint-band strong{font-size:.92rem;letter-spacing:.055em;text-transform:uppercase;}
.odpc-complaint-page .complaint-band small{font-size:.78rem;line-height:1.45;color:var(--muted);max-width:210px;}
.odpc-complaint-page .complaint-band .fa-arrow-right{position:absolute;right:22px;bottom:20px;color:var(--cta);font-size:.78rem;}
.odpc-complaint-page .complaint-band>a.active .fa-arrow-right{color:var(--brass-light);}

.odpc-complaint-page .complaint-hero{
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr);
  min-height:430px;background:var(--paper-2);border-bottom:1px solid var(--line);
}
.odpc-complaint-page .complaint-hero-copy{padding:86px clamp(32px,7vw,108px) 72px;align-self:center;}
.odpc-complaint-page .complaint-hero-copy h1{font-size:clamp(3rem,5.1vw,5.35rem);font-weight:500;line-height:1.02;max-width:850px;margin:10px 0 26px;}
.odpc-complaint-page .complaint-hero-copy h1 em{font-style:italic;color:var(--brass);}
.odpc-complaint-page .complaint-hero-copy p{max-width:730px;color:var(--slate);font-size:1.05rem;line-height:1.8;}
.odpc-complaint-page .complaint-hero-art{
  min-height:430px;position:relative;overflow:hidden;
  background:
    radial-gradient(circle at 62% 28%,rgba(236,201,129,.62) 0 2px,transparent 3px),
    radial-gradient(circle at 72% 48%,rgba(236,201,129,.48) 0 2px,transparent 3px),
    linear-gradient(145deg,#eee9df 0%,#ddd6c8 52%,#c9c0ae 100%);
  background-size:170px 150px,210px 180px,auto;
}
.odpc-complaint-page .complaint-hero-art:before{
  content:"";position:absolute;inset:8% 8% 10% 10%;
  background:
    linear-gradient(90deg,transparent 0 12%,rgba(70,87,58,.15) 12% 12.7%,transparent 12.7% 30%,rgba(70,87,58,.12) 30% 30.6%,transparent 30.6% 49%,rgba(70,87,58,.12) 49% 49.7%,transparent 49.7% 70%,rgba(70,87,58,.1) 70% 70.6%,transparent 70.6%),
    linear-gradient(0deg,rgba(70,87,58,.16) 0 3%,transparent 3% 35%,rgba(70,87,58,.12) 35% 38%,transparent 38% 62%,rgba(70,87,58,.1) 62% 64%,transparent 64%);
  clip-path:polygon(8% 78%,15% 63%,23% 68%,30% 48%,38% 58%,44% 35%,51% 53%,58% 25%,64% 44%,71% 17%,79% 48%,87% 30%,94% 66%,100% 58%,100% 100%,0 100%);
}
.odpc-complaint-page .complaint-hero-art:after{
  content:"KENYA  •  DATA PROTECTION  •  PRIVACY";position:absolute;left:34px;bottom:28px;
  color:var(--ink);font-size:.65rem;font-weight:700;letter-spacing:.18em;
  padding-top:10px;border-top:1px solid rgba(70,87,58,.35);
}

.odpc-complaint-page .complaint-main{padding:90px 0 110px;background:var(--paper);}
.odpc-complaint-page .complaint-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.65fr);gap:56px;align-items:start;}
.odpc-complaint-page .section-heading{max-width:760px;margin-bottom:30px;}
.odpc-complaint-page .section-heading h2,.odpc-complaint-page .intake-card h2{font-size:clamp(2.2rem,3.2vw,3.4rem);font-weight:500;margin:4px 0 12px;}
.odpc-complaint-page .rule{width:56px;height:2px;background:var(--cta);margin:16px 0 20px;}
.odpc-complaint-page .section-heading>p{color:var(--slate);max-width:720px;}
.odpc-complaint-page .issue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.odpc-complaint-page .issue-card{
  text-align:left;min-height:205px;padding:25px 25px 22px;background:var(--white);
  border:1px solid var(--line);position:relative;display:flex;flex-direction:column;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease;
}
.odpc-complaint-page .issue-card:hover,.odpc-complaint-page .issue-card.selected{
  transform:translateY(-2px);border-color:var(--brass);box-shadow:var(--shadow-soft);background:#f7f2ea;
}
.odpc-complaint-page .issue-icon{font-family:var(--font-display);font-size:1.55rem;color:var(--cta);margin-bottom:13px;}
.odpc-complaint-page .issue-card h3{font-family:var(--font-body);font-size:1rem;font-weight:650;line-height:1.35;margin-bottom:9px;}
.odpc-complaint-page .issue-card p{color:var(--muted);font-size:.86rem;line-height:1.65;max-width:520px;}
.odpc-complaint-page .issue-card .arrow{margin-top:auto;padding-top:17px;color:var(--cta);font-size:.67rem;letter-spacing:.12em;font-weight:700;}

.odpc-complaint-page .steps{margin-top:70px;padding-top:60px;border-top:1px solid var(--line);}
.odpc-complaint-page .steps-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.odpc-complaint-page .step{background:var(--paper-2);padding:22px;min-height:185px;border-top:2px solid var(--brass);}
.odpc-complaint-page .step>b{color:var(--cta);font-size:.7rem;letter-spacing:.14em;}
.odpc-complaint-page .step h3{font-family:var(--font-body);font-size:.95rem;margin:12px 0 7px;font-weight:650;}
.odpc-complaint-page .step p{font-size:.82rem;line-height:1.65;color:var(--slate);}
.odpc-complaint-page .trust-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);margin-top:36px;border:1px solid var(--line);}
.odpc-complaint-page .trust-strip>div{background:var(--white);padding:20px;}
.odpc-complaint-page .trust-strip strong{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;}
.odpc-complaint-page .trust-strip p{font-size:.78rem;color:var(--muted);line-height:1.55;margin-top:7px;}
.odpc-complaint-page .related{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px;margin-top:28px;background:var(--white);border:1px solid var(--line);}
.odpc-complaint-page .related strong{font-size:.9rem;}.odpc-complaint-page .related p{font-size:.78rem;color:var(--muted);margin-top:4px;}
.odpc-complaint-page .related>a{white-space:nowrap;color:var(--cta);font-weight:700;font-size:.75rem;letter-spacing:.06em;}

.odpc-complaint-page .intake-card{position:sticky;top:92px;background:var(--ink);color:rgba(255,255,255,.9);padding:34px;box-shadow:var(--shadow-hard);}
.odpc-complaint-page .intake-card h2{color:var(--white);font-size:2.35rem;}
.odpc-complaint-page .intake-card .eyebrow{color:var(--brass-light);}
.odpc-complaint-page .intake-card .eyebrow:before{background:var(--brass-light);}
.odpc-complaint-page .intake-card .rule{background:var(--brass-light);}
.odpc-complaint-page .field{margin-bottom:16px;}
.odpc-complaint-page .field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.odpc-complaint-page .field label{display:block;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-light);margin-bottom:7px;}
.odpc-complaint-page .field input,.odpc-complaint-page .field textarea,.odpc-complaint-page .field select{
  width:100%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.055);color:var(--white);
  padding:12px 13px;border-radius:2px;outline:none;font:inherit;font-size:.86rem;
}
.odpc-complaint-page .field textarea{min-height:150px;resize:vertical;line-height:1.55;}
.odpc-complaint-page .field select option{color:var(--ink);background:var(--white);}
.odpc-complaint-page .field input:focus,.odpc-complaint-page .field textarea:focus,.odpc-complaint-page .field select:focus{border-color:var(--brass-light);box-shadow:0 0 0 2px rgba(236,201,129,.14);}
.odpc-complaint-page .intake-card .field label[style]{color:rgba(255,255,255,.75);font-size:.73rem;letter-spacing:0;line-height:1.5;text-transform:none;}
.odpc-complaint-page .intake-card .field label[style] input{accent-color:var(--brass);}
.odpc-complaint-page .submit-complaint{width:100%;padding:14px 18px;background:var(--brass);color:var(--ink);font-weight:800;letter-spacing:.05em;border-radius:2px;transition:background .2s ease,transform .2s ease;}
.odpc-complaint-page .submit-complaint:hover{background:var(--brass-light);transform:translateY(-1px);}
.odpc-complaint-page .submit-complaint:disabled{opacity:.65;cursor:wait;transform:none;}
.odpc-complaint-page .form-status{min-height:25px;margin-top:12px;color:var(--brass-light);font-size:.78rem;line-height:1.5;}
.odpc-complaint-page .privacy-note{font-size:.69rem;line-height:1.6;color:rgba(255,255,255,.5);margin-top:13px;}

@media(max-width:1100px){
  .odpc-complaint-page .complaint-band>a{padding-left:18px;padding-right:18px;}
  .odpc-complaint-page .complaint-grid{grid-template-columns:1fr;}
  .odpc-complaint-page .intake-card{position:relative;top:auto;max-width:760px;}
  .odpc-complaint-page .steps-grid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:820px){
  .odpc-complaint-page .complaint-band{grid-template-columns:repeat(2,minmax(0,1fr));}
  .odpc-complaint-page .complaint-band>a:nth-child(2n){border-right:0;}
  .odpc-complaint-page .complaint-band>a:nth-child(n+3){border-top:1px solid var(--line);}
  .odpc-complaint-page .complaint-hero{grid-template-columns:1fr;}
  .odpc-complaint-page .complaint-hero-art{min-height:260px;}
  .odpc-complaint-page .complaint-hero-copy{padding:60px 28px 50px;}
  .odpc-complaint-page .complaint-main{padding-top:65px;}
}
@media(max-width:600px){
  .odpc-complaint-page .complaint-band{grid-template-columns:1fr;}
  .odpc-complaint-page .complaint-band>a{min-height:82px;border-right:0!important;border-left:0!important;border-top:0!important;border-bottom:1px solid var(--line);padding:16px 20px;}
  .odpc-complaint-page .complaint-band>a:last-child{border-bottom:0;}
  .odpc-complaint-page .complaint-hero-copy{padding:48px 22px 42px;}
  .odpc-complaint-page .complaint-hero-copy h1{font-size:2.75rem;}
  .odpc-complaint-page .complaint-hero-copy p{font-size:.94rem;}
  .odpc-complaint-page .complaint-hero-art{min-height:200px;}
  .odpc-complaint-page .complaint-main{padding:52px 0 70px;}
  .odpc-complaint-page .complaint-grid{gap:38px;}
  .odpc-complaint-page .issue-grid,.odpc-complaint-page .steps-grid,.odpc-complaint-page .trust-strip{grid-template-columns:1fr;}
  .odpc-complaint-page .issue-card{min-height:180px;padding:21px;}
  .odpc-complaint-page .field-row{grid-template-columns:1fr;gap:0;}
  .odpc-complaint-page .intake-card{padding:25px 20px;}
  .odpc-complaint-page .related{flex-direction:column;align-items:flex-start;}
}

/* ==========================================================================
   SITE-WIDE PALETTE HARMONISATION — v12
   The approved complaint-page palette is now the common visual language:
   deep plum/ink, warm paper, brass and restrained neutral lines.
   Legacy maroon aliases are mapped into the same family without changing
   the underlying page layouts or publication-specific content.
   ========================================================================== */
:root{
  --maroon:var(--plum);
  --maroon-deep:var(--ink-2);
}


/* ==========================================================================
   2026 EXPERIENCE LAYER — unified plum / paper / brass client journey
   Applies to the Firm, Knowledge Centre and Contact pages without changing
   the site's structural architecture.
   ========================================================================== */
:root{
  --client-plum:var(--plum);
  --client-ink:var(--ink);
  --client-paper:#f7f2ea;
  --client-paper2:#eaf0e3;
  --client-brass:var(--brass);
  --client-brass-deep:var(--cta);
}
.client-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--client-paper) 0%,#f4eef3 62%,#eee5ec 100%);padding:112px 0 92px;border-bottom:1px solid var(--line)}
.client-hero:after{content:'';position:absolute;width:520px;height:520px;border:1px solid rgba(198,154,62,.22);border-radius:50%;right:-170px;top:-230px;box-shadow:0 0 0 44px rgba(198,154,62,.035),0 0 0 88px rgba(198,154,62,.025);pointer-events:none}
.client-hero .container{position:relative;z-index:1}
.client-hero .crumb{margin-bottom:26px}
.client-hero h1{max-width:900px;font-size:clamp(3rem,6vw,5.5rem);margin-bottom:24px}
.client-hero h1 em{font-weight:500;color:var(--client-brass-deep)}
.client-hero .lead{max-width:760px;color:var(--slate);font-size:1.14rem;line-height:1.8}
.client-hero .hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.client-kicker{display:inline-flex;align-items:center;gap:10px;color:var(--client-brass-deep);font-size:.72rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase;margin-bottom:18px}
.client-kicker:before{content:'';width:30px;height:1px;background:var(--client-brass)}
.client-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.client-card{background:rgba(255,255,255,.72);border:1px solid var(--line);padding:30px;box-shadow:0 12px 36px rgba(27,26,23,.045);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease)}
.client-card:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(27,26,23,.10);border-color:rgba(198,154,62,.55)}
.client-card .icon{width:46px;height:46px;display:grid;place-items:center;border:1px solid rgba(198,154,62,.5);color:var(--client-brass-deep);margin-bottom:20px;font-size:1rem}
.client-card h3{font-size:1.35rem;margin-bottom:10px}
.client-card p{color:var(--muted);font-size:.94rem}
.client-card a.text-link{display:inline-flex;align-items:center;gap:8px;margin-top:18px;color:var(--client-brass-deep);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}
.client-band{background:var(--client-plum);color:#fff;padding:76px 0}
.client-band h2,.client-band h3{color:#fff}
.client-band p{color:rgba(255,255,255,.68)}
.client-band .eyebrow{color:var(--brass-light)}
.client-band .eyebrow:before{background:var(--brass-light)}
.client-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:42px;border-top:1px solid rgba(255,255,255,.14)}
.client-step{padding:26px 22px;border-right:1px solid rgba(255,255,255,.12)}
.client-step:last-child{border-right:0}
.client-step .num{font-family:var(--font-display);font-size:1.7rem;color:var(--brass-light);margin-bottom:12px}
.client-step h3{font-family:var(--font-body);font-size:.92rem;letter-spacing:.02em;margin-bottom:8px}
.client-step p{font-size:.86rem;line-height:1.65}
.client-quote{font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.25;max-width:900px;color:var(--ink);margin:0}
.client-quote em{color:var(--client-brass-deep)}
.about-founder-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:70px;align-items:center}
.about-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:32px;border:1px solid var(--line)}
.about-fact{background:var(--paper);padding:22px}.about-fact strong{display:block;font-family:var(--font-display);font-size:1.5rem;color:var(--client-brass-deep);margin-bottom:5px}.about-fact span{font-size:.78rem;color:var(--muted)}
.contact-shell{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:28px;align-items:start}
.contact-panel{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-soft);padding:34px}
.contact-panel--plum{background:var(--client-plum);color:#fff;border-color:var(--client-plum)}
.contact-panel--plum h2,.contact-panel--plum h3{color:#fff}.contact-panel--plum p,.contact-panel--plum li{color:rgba(255,255,255,.72)}
.contact-panel h2{font-size:2rem;margin-bottom:12px}.contact-panel .panel-lead{color:var(--muted);margin-bottom:26px}.contact-panel--plum .panel-lead{color:rgba(255,255,255,.72)}
.contact-options{display:grid;gap:12px}.contact-option{display:flex;gap:16px;align-items:flex-start;padding:18px;border:1px solid var(--line);background:var(--client-paper);transition:.25s}.contact-option:hover{border-color:rgba(198,154,62,.6);transform:translateX(3px)}.contact-option .option-icon{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;background:var(--client-plum);color:var(--brass-light)}.contact-option h3{font-family:var(--font-body);font-size:.94rem;margin-bottom:3px}.contact-option p{font-size:.82rem;color:var(--muted)}
.intake-intro{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:26px}.intake-intro p{max-width:620px;color:var(--muted)}
.resource-map{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:34px 0 48px}.resource-map a{display:block;padding:22px;background:#fff;border:1px solid var(--line);min-height:132px}.resource-map a:hover{border-color:rgba(198,154,62,.6);box-shadow:var(--shadow-soft)}.resource-map .rm-num{font-size:.7rem;color:var(--client-brass-deep);font-weight:700;letter-spacing:.12em}.resource-map h3{font-family:var(--font-body);font-size:.98rem;margin:14px 0 6px}.resource-map p{font-size:.78rem;color:var(--muted)}
.kplr-toolbar{border:1px solid var(--line)!important;background:#fff!important;box-shadow:var(--shadow-soft)}
.kplr-filter-chip{border-color:var(--line)!important;color:var(--slate)!important;background:var(--client-paper)!important}.kplr-filter-chip.active,.kplr-filter-chip:hover{background:var(--client-plum)!important;color:#fff!important;border-color:var(--client-plum)!important}
@media(max-width:900px){.client-grid{grid-template-columns:1fr 1fr}.client-steps{grid-template-columns:1fr 1fr}.about-founder-grid,.contact-shell{grid-template-columns:1fr}.resource-map{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.client-hero{padding:82px 0 64px}.client-hero h1{font-size:2.8rem}.client-grid,.client-steps,.resource-map{grid-template-columns:1fr}.client-step{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}.about-facts{grid-template-columns:1fr}.contact-panel{padding:24px}.intake-intro{display:block}.hero-actions .btn{width:100%;justify-content:center}.client-card{padding:24px}}

/* ==========================================================================
   HOMEPAGE REFERENCE BUILD — matched to approved visual reference
   Scoped to body.home-executive so internal pages retain their existing UI.
   ========================================================================== */
body.home-executive{
  --home-navy:#14190f;
  --home-navy-2:#1e2617;
  --home-gold:#c69a3e;
  --home-paper:#f2ecdc;
  --home-ink:#14190f;
  background:var(--home-paper);
  color:var(--home-ink);
}
body.home-executive .homepage-header{
  background:var(--home-navy);
  color:#fff;
  border:0;
  box-shadow:none;
}
body.home-executive .homepage-header-inner{
  min-height:104px;
  display:grid;
  grid-template-columns:minmax(350px,1fr) auto;
  align-items:center;
  gap:28px;
}
body.home-executive .homepage-brand{
  color:#fff;
  text-decoration:none;
  display:flex;
  flex-direction:column;
  align-self:center;
  line-height:1;
}
body.home-executive .homepage-brand .brand-name{
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.52rem;
  font-weight:400;
  line-height:1.08;
}
body.home-executive .homepage-brand .brand-name em{
  color:var(--home-gold);
  font-style:normal;
}
body.home-executive .homepage-brand .brand-subline{
  margin-top:7px;
  font-family:Inter,system-ui,sans-serif;
  font-size:.54rem;
  font-weight:600;
  letter-spacing:.12em;
  color:#fff;
  white-space:nowrap;
}
body.home-executive .homepage-header-right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:center;
  gap:11px;
}
body.home-executive .homepage-contact-line{
  display:flex;
  align-items:center;
  gap:12px;
  color:rgba(255,255,255,.92);
  font-size:.68rem;
  font-weight:500;
  white-space:nowrap;
}
body.home-executive .homepage-contact-line i{color:var(--home-gold);margin-right:5px;}
body.home-executive .homepage-contact-line b{font-weight:400;color:rgba(255,255,255,.55);}
body.home-executive .homepage-nav{gap:28px;align-items:center;}
body.home-executive .homepage-nav > a{
  color:#fff;
  font-size:.79rem;
  font-weight:500;
  text-decoration:none;
  white-space:nowrap;
}
body.home-executive .homepage-nav > a:hover,
body.home-executive .homepage-nav > a.active{color:var(--home-gold);}
body.home-executive .homepage-nav .nav-caret{font-size:.55rem;color:var(--home-gold);margin-left:5px;}
body.home-executive .homepage-nav .nav-cta{
  border:1px solid var(--home-gold);
  background:transparent;
  color:var(--home-gold);
  border-radius:2px;
  padding:12px 16px;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:.68rem;
}
body.home-executive .homepage-nav .nav-cta:hover{background:var(--home-gold);color:var(--home-navy);}

body.home-executive .executive-resource-map{
  background:#fff;
  border-top:0;
  border-bottom:1px solid #ded8cc;
}
body.home-executive .executive-resource-grid{
  grid-template-columns:repeat(5,1fr);
  border-left:0;
}
body.home-executive .executive-resource-grid>a{
  min-height:126px;
  padding:17px 25px 16px 78px;
  border-right:1px solid #ded8cc;
  display:flex;
  justify-content:center;
  gap:5px;
  position:relative;
  color:var(--home-ink);
  background:#fff;
}
body.home-executive .executive-resource-grid>a:first-child{border-left:0;}
body.home-executive .executive-resource-grid>a::before{
  content:"";
  position:absolute;
  left:24px;
  top:33px;
  width:34px;
  height:34px;
  border:2px solid var(--home-gold);
  border-radius:4px;
  opacity:.95;
}
body.home-executive .executive-resource-grid>a:nth-child(1)::before{border-radius:50% 50% 3px 3px;}
body.home-executive .resource-index{
  font-size:.62rem;
  letter-spacing:.12em;
  color:var(--home-gold);
  margin:0 0 3px;
}
body.home-executive .executive-resource-grid strong{
  font-size:.78rem;
  letter-spacing:.04em;
  color:var(--home-ink);
}
body.home-executive .executive-resource-grid small{
  color:#1e2a38;
  font-size:.7rem;
  line-height:1.45;
  max-width:165px;
}
body.home-executive .executive-resource-grid i{
  right:22px;
  bottom:17px;
  color:var(--home-gold);
  font-size:.8rem;
}

body.home-executive .homepage-hero{
  min-height:375px;
  background-color:#14190f;
  background-image:
    radial-gradient(circle at 12% 22%, rgba(198,154,62,.55) 0, rgba(198,154,62,.55) 1.4px, transparent 1.4px),
    radial-gradient(circle at 78% 15%, rgba(198,154,62,.4) 0, rgba(198,154,62,.4) 1.4px, transparent 1.4px),
    radial-gradient(circle at 55% 70%, rgba(198,154,62,.35) 0, rgba(198,154,62,.35) 1.1px, transparent 1.1px),
    radial-gradient(circle at 88% 60%, rgba(198,154,62,.5) 0, rgba(198,154,62,.5) 1.6px, transparent 1.6px),
    radial-gradient(circle at 32% 85%, rgba(198,154,62,.3) 0, rgba(198,154,62,.3) 1px, transparent 1px),
    repeating-linear-gradient(90deg, rgba(198,154,62,.07) 0, rgba(198,154,62,.07) 1px, transparent 1px, transparent 84px),
    repeating-linear-gradient(0deg, rgba(198,154,62,.07) 0, rgba(198,154,62,.07) 1px, transparent 1px, transparent 84px),
    linear-gradient(90deg, #14190f 0%, rgba(20,25,15,.55) 45%, rgba(20,25,15,.15) 75%),
    radial-gradient(ellipse at 85% 0%, rgba(198,154,62,.16), transparent 55%);
  background-size:340px 340px,260px 260px,300px 300px,380px 380px,220px 220px,84px 84px,84px 84px,100% 100%,100% 100%;
  display:block;
  overflow:hidden;
  position:relative;
}
body.home-executive .homepage-hero .hp-trace{position:absolute;border-color:rgba(198,154,62,.3);pointer-events:none;z-index:1;}
body.home-executive .homepage-hero .hp-trace-1{top:14%;left:56%;width:120px;height:60px;border-top:1px solid;border-right:1px solid;}
body.home-executive .homepage-hero .hp-trace-1::after{content:"";position:absolute;top:-2.5px;right:-2.5px;width:5px;height:5px;border-radius:50%;background:rgba(198,154,62,.6);}
body.home-executive .homepage-hero .hp-trace-2{bottom:18%;left:48%;width:90px;height:44px;border-bottom:1px solid;border-left:1px solid;}
body.home-executive .homepage-hero .hp-trace-2::after{content:"";position:absolute;bottom:-2.5px;left:-2.5px;width:5px;height:5px;border-radius:50%;background:rgba(198,154,62,.6);}
body.home-executive .homepage-hero-inner{
  min-height:375px;
  max-width:1536px;
  margin:0 auto;
  display:grid;
  grid-template-columns:54% 46%;
  position:relative;
}
body.home-executive .homepage-hero-copy{
  padding:39px 38px 38px max(50px,calc((100vw - 1360px)/2));
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
body.home-executive .homepage-hero .eyebrow{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 18px;
  color:#e0bb62;
  font-size:.67rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
body.home-executive .homepage-hero .eyebrow span{display:block;width:32px;height:1px;background:var(--home-gold);}
body.home-executive .homepage-hero h1{
  max-width:720px;
  margin:0 0 20px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(3.25rem,5.5vw,5.2rem);
  line-height:.92;
  letter-spacing:-.045em;
  font-weight:400;
  color:#f2ecdc;
}
body.home-executive .homepage-hero h1 em{
  color:var(--home-gold);
  font-weight:400;
  font-style:italic;
}
body.home-executive .homepage-hero .lede{
  max-width:610px;
  margin:0;
  color:rgba(242,236,220,.72);
  font-size:1rem;
  line-height:1.45;
}
body.home-executive .homepage-hero .hero-actions{
  display:flex;
  align-items:center;
  gap:32px;
  margin-top:22px;
}
body.home-executive .homepage-primary-cta,
body.home-executive .homepage-secondary-cta{
  display:inline-flex;
  align-items:center;
  gap:16px;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.06em;
  font-size:.68rem;
  font-weight:800;
  white-space:nowrap;
}
body.home-executive .homepage-primary-cta{
  background:#E0932E;
  color:#14190f;
  padding:13px 22px;
  border-radius:6px;
  box-shadow:0 4px 32px rgba(224,147,46,.4),0 0 0 1px rgba(224,147,46,.15);
  transition:box-shadow .25s ease,transform .25s ease,background .25s ease;
}
body.home-executive .homepage-primary-cta:hover{
  background:#EDA544;
  box-shadow:0 6px 40px rgba(224,147,46,.55),0 0 0 1px rgba(224,147,46,.25);
  transform:translateY(-1px);
}
body.home-executive .btn-brass{
  background:#E0932E;
  color:#14190f;
  box-shadow:0 4px 28px rgba(224,147,46,.35);
  transition:box-shadow .25s ease,transform .25s ease,background .25s ease;
}
body.home-executive .btn-brass:hover{
  background:#EDA544;
  color:#14190f;
  box-shadow:0 6px 36px rgba(224,147,46,.5);
  transform:translateY(-2px);
}
body.home-executive .homepage-primary-cta i{color:#14190f;}
body.home-executive .homepage-secondary-cta i{color:var(--home-gold);}
body.home-executive .homepage-secondary-cta{
  color:#f2ecdc;
  border-bottom:1px solid var(--home-gold);
  padding:13px 0 10px;
}
body.home-executive .homepage-hero-visual{
  position:relative;
  overflow:hidden;
  background:transparent;
}
body.home-executive .homepage-hero-visual::before{display:none;}
body.home-executive .homepage-hero-visual img{
  width:100%;
  height:100%;
  min-height:375px;
  object-fit:cover;
  object-position:center center;
  display:block;
}

body.home-executive .homepage-digest-section{
  background:#fff;
  padding:14px 0 24px;
}
body.home-executive .homepage-digest-heading{
  text-align:center;
  margin-bottom:8px;
}
body.home-executive .homepage-digest-heading .eyebrow{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#272b31;
  font-size:.59rem;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
}
body.home-executive .homepage-digest-heading .eyebrow span{
  display:block;
  width:25px;
  height:1px;
  background:var(--home-gold);
}
body.home-executive .homepage-digest-heading h2{
  margin:6px 0 3px;
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:clamp(2rem,3.1vw,3rem);
  line-height:1;
  color:var(--home-ink);
  letter-spacing:-.035em;
}
body.home-executive .heading-rule{width:24px;height:1px;background:var(--home-gold);margin:0 auto;}
body.home-executive .homepage-digest-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:26px;
  align-items:start;
  margin-top:8px;
}
body.home-executive .homepage-digest-card{
  display:block;
  min-width:0;
  text-decoration:none;
  color:var(--home-ink);
}
body.home-executive .digest-cover-wrap{
  height:232px;
  display:flex;
  justify-content:center;
  align-items:flex-end;
  overflow:hidden;
}
body.home-executive .digest-cover-wrap img{
  width:86%;
  height:100%;
  object-fit:contain;
  display:block;
  filter:drop-shadow(0 7px 6px rgba(0,0,0,.16));
  transition:transform .2s ease;
}
body.home-executive .homepage-digest-card:hover .digest-cover-wrap img{transform:translateY(-3px);}
body.home-executive .digest-card-caption{
  min-height:72px;
  background:var(--home-navy);
  color:#fff;
  padding:11px 13px 10px;
  position:relative;
  box-sizing:border-box;
}
body.home-executive .digest-card-caption strong{
  display:block;
  padding-right:22px;
  font-size:.69rem;
  line-height:1.25;
  letter-spacing:.02em;
}
body.home-executive .digest-card-caption span,
body.home-executive .digest-card-caption small{
  display:block;
  color:#fff;
  font-size:.59rem;
  line-height:1.35;
  margin-top:4px;
}
body.home-executive .digest-card-caption small{opacity:.85;margin-top:2px;}
body.home-executive .digest-card-caption i{
  position:absolute;
  right:10px;
  top:12px;
  color:var(--home-gold);
  font-size:.62rem;
}

@media(max-width:1100px){
  body.home-executive .homepage-header-inner{grid-template-columns:1fr;}
  body.home-executive .homepage-header-right{align-items:flex-start;}
  body.home-executive .homepage-contact-line{display:none;}
  body.home-executive .homepage-nav{gap:17px;}
  body.home-executive .homepage-hero-inner{grid-template-columns:1fr 43%;}
  body.home-executive .homepage-digest-grid{gap:14px;}
}
@media(max-width:800px){
  body.home-executive .homepage-header-inner{min-height:72px;display:flex;}
  body.home-executive .homepage-brand .brand-name{font-size:1.05rem;}
  body.home-executive .homepage-brand .brand-subline{font-size:.42rem;}
  body.home-executive .homepage-header-right{display:none;}
  body.home-executive .homepage-hero-inner{grid-template-columns:1fr;}
  body.home-executive .homepage-hero-visual{height:220px;order:2;}
  body.home-executive .homepage-hero-visual img{min-height:220px;}
  body.home-executive .homepage-hero-copy{padding:40px 24px;}
  body.home-executive .homepage-hero h1{font-size:clamp(2.9rem,14vw,4.2rem);}
  body.home-executive .homepage-digest-grid{grid-template-columns:1fr 1fr;}
  body.home-executive .executive-resource-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:520px){
  body.home-executive .homepage-digest-grid{grid-template-columns:1fr;}
  body.home-executive .executive-resource-grid{grid-template-columns:1fr;}
}


/* ==========================================================================
   HOMEPAGE RESOURCE RIBBON — HEADER CLEARANCE
   Keeps the 01–05 resource ribbon visibly below the fixed header rather
   than allowing it to tuck underneath the header at the top of the page.
   The +12px buffer must survive on mobile too — a previous mobile override
   here dropped it entirely, leaving only ~2px of clearance between the
   fixed header and the first resource item (a real overlap risk on actual
   devices, not just a headless-testing artifact).
   ========================================================================== */
body.home-executive .executive-resource-map{
  margin-top:calc(var(--site-header-h) + 12px);
}

/* Legal services conversion layer */
.homepage-services-finder{padding:clamp(64px,8vw,110px) 0;background:#f3efe7}
.homepage-wizard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:rgba(35,22,38,.18);border:1px solid rgba(35,22,38,.18)}
.homepage-wizard-grid>a{display:grid;grid-template-columns:44px 1fr 24px;gap:18px;align-items:center;padding:26px 24px;background:#f2ecdc;color:inherit;text-decoration:none;transition:transform .2s ease,background .2s ease}
.homepage-wizard-grid>a:hover{transform:translateY(-2px);background:#fffaf2}
.homepage-wizard-grid> a>span{font-family:Georgia,serif;font-size:1.35rem;color:#9a7650}
.homepage-wizard-grid strong{display:block;font-family:Georgia,serif;font-size:1.05rem;font-weight:600}
.homepage-wizard-grid small{display:block;margin-top:6px;opacity:.72;line-height:1.45}
.homepage-wizard-grid i{opacity:.65}
.homepage-services-catalogue{margin-top:48px;padding-top:30px;border-top:1px solid rgba(35,22,38,.2)}
.homepage-service-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:20px}
.homepage-service-columns h3{font-family:Georgia,serif;font-size:1.12rem;margin:0 0 14px}
.homepage-service-columns a{display:block;padding:8px 0;color:inherit;text-decoration:none;border-bottom:1px solid rgba(35,22,38,.1)}
.homepage-service-columns a:hover{text-decoration:underline;text-underline-offset:4px}
.homepage-services-all{display:inline-flex;gap:10px;margin-top:28px;font-weight:700;color:inherit;text-decoration:none}
.homepage-service-bridge{padding:56px 0;background:#14190f;color:#f2ecdc}
.homepage-service-bridge-inner{display:flex;justify-content:space-between;align-items:center;gap:32px}
.homepage-service-bridge h2{font-family:Georgia,serif;margin:.3rem 0 .7rem;max-width:700px}
.homepage-service-bridge p{max-width:720px;opacity:.82}
@media(max-width:800px){.homepage-wizard-grid,.homepage-service-columns{grid-template-columns:1fr}.homepage-service-bridge-inner{flex-direction:column;align-items:flex-start}}

/* ==========================================================================
   HOMEPAGE — LIVE DASHBOARD WIDGET — v13
   Replaces the static stock hero image with a widget showing real,
   countable content metrics (case notes, practice areas, publications) —
   deliberately not fabricated performance claims like "97% success rate".
   ========================================================================== */
/* ==========================================================================
   HOMEPAGE HERO — LIVE PRACTICE DIAGRAM — v14
   Structure adapted from a reference "governed AI engine" diagram: a central
   hub, four connected process nodes, floating fact cards, credibility
   badges. Recoloured into our gold/ink palette; content is our own real
   practice facts, not invented business metrics.
   ========================================================================== */
/* 6-point radial layout variant (reuses .lgx-core/.lgx-gate/.lgx-card system) */
.lgx-svg-solid path{stroke:rgba(198,154,62,.4);stroke-dasharray:none;}
.lgx-svg-solid circle{fill:var(--brass,#c69a3e);}
.lgx-g-n1{top:2%;left:50%;transform:translateX(-50%);animation:lgxfx 5s ease-in-out infinite;}
.lgx-g-n2{top:19%;right:1%;animation:lgxf 5s ease-in-out infinite .8s;}
.lgx-g-n3{bottom:19%;right:1%;animation:lgxf 5s ease-in-out infinite 1.6s;}
.lgx-g-n4{bottom:2%;left:50%;transform:translateX(-50%);animation:lgxfx 5s ease-in-out infinite 2.4s;}
.lgx-g-n5{bottom:19%;left:1%;animation:lgxf 5s ease-in-out infinite 3.2s;}
.lgx-g-n6{top:19%;left:1%;animation:lgxf 5s ease-in-out infinite 4s;}

/* Two-column hero layout (text + diagram/widget), shared across pages */
.hero-split{display:grid;grid-template-columns:1.25fr 1fr;gap:44px;align-items:center;}
@media(max-width:1100px){.hero-split{grid-template-columns:1fr;}}

.lgx-wrap{position:relative;width:100%;aspect-ratio:1/0.92;max-width:520px;margin:0 auto;}
.lgx-svg{position:absolute;inset:0;width:100%;height:100%;z-index:1;}
.lgx-svg path{fill:none;stroke:rgba(198,154,62,.35);stroke-width:1.4;stroke-dasharray:4 5;}

.lgx-core{position:absolute;top:35%;left:50%;transform:translate(-50%,-50%);z-index:10;}
.lgx-cc{width:118px;height:118px;border-radius:50%;background:rgba(198,154,62,.08);border:1.5px solid rgba(198,154,62,.4);display:flex;align-items:center;justify-content:center;position:relative;}
.lgx-cc::before{content:"";position:absolute;inset:-18px;border-radius:50%;border:1px solid rgba(198,154,62,.14);}
.lgx-cc span,.lgx-cc i{font-family:'Fraunces',serif;font-size:26px;font-weight:600;color:var(--brass-light,#ecc981);}
.lgx-cl{position:absolute;bottom:-26px;left:50%;transform:translateX(-50%);font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:600;color:var(--brass,#c69a3e);letter-spacing:.08em;white-space:nowrap;}

.lgx-gate{position:absolute;z-index:8;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;}
.lgx-gc{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;background:rgba(242,236,220,.05);border:1.5px solid rgba(242,236,220,.16);}
.lgx-gc.on{border-color:rgba(198,154,62,.4);background:rgba(198,154,62,.07);}
.lgx-gc i{font-size:16px;color:var(--brass-light,#ecc981);}
.lgx-gc .lgx-b{position:absolute;bottom:-3px;right:-3px;width:15px;height:15px;border-radius:50%;background:#14190f;display:flex;align-items:center;justify-content:center;font-size:8px;color:#8fae7a;border:1px solid rgba(143,174,122,.5);}
.lgx-gn{font-size:11px;font-weight:600;color:rgba(242,236,220,.85);white-space:nowrap;}
.lgx-gs{font-size:9px;color:rgba(242,236,220,.4);white-space:nowrap;}

.lgx-g-top{top:2%;left:50%;transform:translateX(-50%);animation:lgxfx 5s ease-in-out infinite;}
.lgx-g-left{bottom:16%;left:2%;animation:lgxf 5s ease-in-out infinite 1s;}
.lgx-g-right{bottom:16%;right:0%;animation:lgxf 5s ease-in-out infinite 2s;}
.lgx-g-bottom{bottom:2%;left:50%;transform:translateX(-50%);animation:lgxfx 5s ease-in-out infinite 3s;}
@keyframes lgxf{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes lgxfx{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-5px)}}

.lgx-card{position:absolute;z-index:9;background:rgba(20,25,15,.9);border:1px solid rgba(198,154,62,.18);border-radius:9px;padding:9px 13px;backdrop-filter:blur(6px);}
.lgx-card-1{top:20%;right:-8%;animation:lgxc 6s ease-in-out infinite .5s;}
.lgx-card-2{top:20%;left:-10%;animation:lgxc 6s ease-in-out infinite 2.5s;}
@keyframes lgxc{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.lgx-dot{width:6px;height:6px;border-radius:50%;display:inline-block;margin-right:6px;background:#8fae7a;box-shadow:0 0 8px rgba(143,174,122,.5);animation:lgxdp 2s ease-in-out infinite;}
@keyframes lgxdp{0%,100%{opacity:1}50%{opacity:.35}}
.lgx-ct{font-size:8.5px;color:rgba(242,236,220,.4);}
.lgx-cv{font-size:11.5px;font-weight:700;color:var(--brass-light,#ecc981);margin-top:3px;}
.lgx-cvd{font-size:8px;color:rgba(242,236,220,.28);margin-top:1px;font-family:'IBM Plex Mono',monospace;}

.lgx-pill{position:absolute;z-index:9;display:flex;align-items:center;gap:6px;background:rgba(20,25,15,.9);border:1px solid rgba(143,174,122,.16);border-radius:8px;padding:5px 11px;font-size:9px;font-weight:600;color:rgba(143,174,122,.75);white-space:nowrap;backdrop-filter:blur(6px);}
.lgx-pill-1{bottom:14%;right:-2%;animation:lgxc 6s ease-in-out infinite 4s;}
.lgx-pill-2{bottom:14%;left:-4%;animation:lgxc 6s ease-in-out infinite 3s;}
.lgx-pill span{color:#8fae7a;}

@media(max-width:1100px){.lgx-card,.lgx-pill{display:none;}}
@media(max-width:560px){.lgx-wrap{max-width:340px;}.lgx-gn,.lgx-gs{display:none;}}

/* Clickable dial arms — used wherever the 6-point radial variant links out */
.lgx-glink{text-decoration:none;color:inherit;cursor:pointer;}
.lgx-gate{transition:transform .2s ease;}
.lgx-gate:hover,.lgx-gate:focus-within{transform:scale(1.06);}
.lgx-gate:hover .lgx-gc,.lgx-gate:focus-within .lgx-gc{border-color:rgba(198,154,62,.6);background:rgba(198,154,62,.14);}
.lgx-gate:focus-within .lgx-gc{outline:2px solid var(--brass,#c69a3e);outline-offset:2px;}
.lgx-gate:hover .lgx-gn,.lgx-gate:focus-within .lgx-gn{color:var(--brass-light,#ecc981);}
.lgx-cc span{letter-spacing:.03em;}
.grid-3 .card{scroll-margin-top:110px;}

.hp-dash{background:#1b2016;border:1px solid rgba(198,154,62,.22);border-radius:6px;padding:26px 24px 22px;color:var(--paper,#f2ecdc);box-shadow:0 40px 90px -20px rgba(0,0,0,.6),0 0 0 1px rgba(198,154,62,.05);position:relative;overflow:hidden;z-index:2;}
.hp-dash::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% -10%,rgba(198,154,62,.16),transparent 55%);pointer-events:none;}
.hp-dash-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;position:relative;}
.hp-dash-head span{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(242,236,220,.55);display:flex;align-items:center;gap:7px;}
.hp-dash-dot{width:6px;height:6px;border-radius:50%;background:#8fae7a;box-shadow:0 0 0 3px rgba(143,174,122,.25);animation:hpPulse 2.2s ease-in-out infinite;}
@keyframes hpPulse{0%,100%{opacity:1}50%{opacity:.4}}
.hp-dash-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px;position:relative;}
.hp-dash-stat{background:rgba(242,236,220,.05);border:1px solid rgba(242,236,220,.1);border-radius:5px;padding:14px 14px 12px;}
.hp-dash-stat .n{font-family:'Fraunces',serif;font-size:26px;font-weight:600;line-height:1;color:var(--paper,#f2ecdc);}
.hp-dash-stat .l{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.04em;text-transform:uppercase;color:rgba(242,236,220,.5);margin-top:6px;display:block;}
.hp-dash-spark{display:flex;align-items:flex-end;gap:3px;height:18px;margin-top:10px;}
.hp-dash-spark i{flex:1;background:var(--brass,#c69a3e);border-radius:1px;opacity:.85;display:block;}
.hp-dash-feed{border-top:1px solid rgba(242,236,220,.1);padding-top:16px;position:relative;}
.hp-dash-feed-label{font-family:'IBM Plex Mono',monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:rgba(242,236,220,.45);margin-bottom:12px;}
.hp-dash-item{display:flex;align-items:baseline;gap:10px;padding:7px 0;font-size:12.5px;border-bottom:1px solid rgba(242,236,220,.06);}
.hp-dash-item:last-child{border-bottom:none;}
.hp-dash-item .tag{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--brass,#c69a3e);flex-shrink:0;width:60px;}
.hp-dash-item .t{color:rgba(242,236,220,.85);line-height:1.4;}
.hp-dash-foot{margin-top:16px;position:relative;}
.hp-dash-foot a{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--brass-light,#ecc981);text-decoration:none;display:flex;align-items:center;gap:6px;}
@media(max-width:560px){.hp-dash-stats{grid-template-columns:1fr 1fr;}.hp-dash-stat:last-child{grid-column:1/-1;}}
   Replaces the old wizard-grid + services-catalogue double-listing (25
   link-instances across two separate grids) with one organised grid.
   Same underlying destinations, consolidated into five clear groups.
   ========================================================================== */
/* ==========================================================================
   CONTACT PAGE — embedded booking calendar (CertPro-inspired: the calendar
   sits directly on the page instead of only linking out). The working
   Zoho link is kept visible as a fallback in the card header.
   ========================================================================== */
.office-people{display:flex;align-items:center;gap:14px;margin-top:24px;padding-top:22px;border-top:1px solid var(--line);}
.office-people img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex-shrink:0;}
.office-people strong{display:block;font-family:var(--font-display);font-size:.98rem;color:var(--ink);}
.office-people span{display:block;font-size:.82rem;color:var(--muted);margin-top:2px;}
.office-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-soft);overflow:hidden;}
.office-card-map{height:220px;}
.office-card-map iframe{width:100%;height:100%;display:block;}
.office-card-body{padding:26px 28px 28px;}
.office-card-body h3{font-family:var(--font-display);font-size:1.15rem;margin:4px 0 14px;}
.office-card-body p{font-size:.88rem;color:var(--slate);line-height:1.6;margin:0 0 10px;}
.office-card-body p i{width:16px;color:var(--cta);margin-right:8px;}

.booking-embed-fallback{display:flex;align-items:center;justify-content:center;background:var(--paper-2);}
.booking-fallback-inner{text-align:center;padding:40px 30px;max-width:340px;}
.booking-fallback-inner i{font-size:32px;color:var(--cta);margin-bottom:16px;display:block;}
.booking-fallback-inner p{color:var(--muted);font-size:.9rem;margin:0 0 20px;line-height:1.6;}
.booking-shell{display:grid;grid-template-columns:1.5fr 1fr;gap:22px;margin-top:36px;align-items:stretch;}
.booking-embed-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;overflow:hidden;}
.booking-embed-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding:26px 28px 20px;border-bottom:1px solid var(--line);}
.booking-embed-head h3{font-family:var(--font-display);font-size:1.3rem;margin:2px 0 0;}
.booking-embed-head .text-link{white-space:nowrap;font-size:.82rem;}
.booking-embed-frame{flex:1;min-height:560px;background:var(--paper-2);}
.booking-embed-frame iframe{width:100%;height:100%;min-height:560px;border:0;display:block;}
.booking-side{display:flex;flex-direction:column;gap:18px;}
.client-card--compact{padding:26px;flex:1;display:flex;flex-direction:column;justify-content:center;}
@media(max-width:900px){.booking-shell{grid-template-columns:1fr;}.booking-embed-frame,.booking-embed-frame iframe{min-height:640px;}}

.faq-item{border-bottom:1px solid var(--line);padding:20px 0;}
.faq-item:last-child{border-bottom:none;}
.faq-item h4{margin:0 0 8px;font-size:1.02rem;font-family:'Fraunces',serif;font-weight:600;color:var(--ink);}
.faq-item p{margin:0;font-size:.92rem;color:var(--slate);line-height:1.6;}
.faq-item p a{color:var(--cta);text-decoration:underline;text-decoration-color:rgba(140,106,46,.35);}

/* =========================================================================
   TICKER WIDGET — floating auto-scrolling "active list" card, adapted from
   a reference "Active Industries" pattern. Same mechanism: content
   duplicated exactly twice, animated translateY(0)→translateY(-50%) for a
   seamless loop, gradient masks top/bottom, respects reduced-motion.
   ========================================================================= */
/* =========================================================================
   STAY INFORMED — two-column newsletter band (KORIX Learning Center
   pattern): eyebrow + serif/italic headline + form on the left, a real
   content stat on the right. Wraps the site's existing, working
   /api/form-submit newsletter form — styling only, no functional changes.
   ========================================================================= */
.stay-informed{background:#14190f;position:relative;overflow:hidden;padding:90px 0;}
.stay-informed::before{content:"";position:absolute;inset:0;
  background-image:
    radial-gradient(circle at 15% 25%, rgba(198,154,62,.5) 0, rgba(198,154,62,.5) 1.4px, transparent 1.4px),
    radial-gradient(circle at 80% 70%, rgba(198,154,62,.35) 0, rgba(198,154,62,.35) 1.2px, transparent 1.2px),
    radial-gradient(circle at 55% 15%, rgba(198,154,62,.3) 0, rgba(198,154,62,.3) 1px, transparent 1px);
  background-size:340px 340px,260px 260px,300px 300px;opacity:.7;pointer-events:none;
}
.stay-informed .container{position:relative;z-index:1;}
.si-grid{display:grid;grid-template-columns:1.3fr auto;gap:60px;align-items:center;}
.si-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brass,#c69a3e);margin-bottom:16px;}
.si-h{font-family:'Fraunces',serif;font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.08;color:#fff;margin:0 0 18px;font-weight:500;}
.si-h em{font-style:italic;color:var(--brass-light,#ecc981);font-weight:400;}
.si-sub{color:rgba(242,236,220,.6);font-size:.98rem;max-width:480px;margin:0 0 26px;line-height:1.65;}
.si-stat{text-align:center;border-left:1px solid rgba(198,154,62,.2);padding-left:52px;}
.si-stat strong{display:block;font-family:'Fraunces',serif;font-size:4rem;color:var(--brass-light,#ecc981);line-height:1;}
.si-stat span{display:block;font-size:.82rem;color:rgba(242,236,220,.45);margin-top:10px;line-height:1.5;}
@media(max-width:900px){.si-grid{grid-template-columns:1fr;}.si-stat{border-left:none;border-top:1px solid rgba(198,154,62,.2);padding-left:0;padding-top:26px;text-align:left;}}

.tkr-card{border:1px solid rgba(198,154,62,.18);border-radius:16px;overflow:hidden;background:#171c11;max-width:420px;margin:0 auto;box-shadow:0 30px 70px -20px rgba(0,0,0,.5);}.tkr-head{padding:11px 16px;border-bottom:1px solid rgba(198,154,62,.14);display:flex;align-items:center;gap:7px;}
.tkr-dot{width:7px;height:7px;border-radius:50%;background:rgba(242,236,220,.18);}
.tkr-dot.on{background:#8fae7a;box-shadow:0 0 6px rgba(143,174,122,.6);animation:tkrpulse 2s ease-in-out infinite;}
@keyframes tkrpulse{0%,100%{opacity:1}50%{opacity:.4}}
.tkr-head span{font-size:10px;font-weight:700;color:rgba(242,236,220,.35);text-transform:uppercase;letter-spacing:.1em;margin-left:auto;font-family:'IBM Plex Mono',monospace;}
.tkr-view{height:380px;overflow:hidden;position:relative;}
.tkr-fade-top,.tkr-fade-bottom{position:absolute;left:0;right:0;height:44px;z-index:2;pointer-events:none;}
.tkr-fade-top{top:0;background:linear-gradient(#171c11,transparent);}
.tkr-fade-bottom{bottom:0;background:linear-gradient(transparent,#171c11);}
.tkr-list{animation:tkr-scroll 32s linear infinite;}
@keyframes tkr-scroll{0%{transform:translateY(0)}100%{transform:translateY(-50%)}}
@media(prefers-reduced-motion:reduce){.tkr-list{animation:none;}}
.tkr-item{display:flex;align-items:center;gap:13px;padding:13px 18px;border-bottom:1px solid rgba(242,236,220,.06);text-decoration:none;transition:background .18s ease;}
.tkr-item:hover{background:rgba(242,236,220,.03);}
.tkr-ic{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid;}
.tkr-ic.g{background:rgba(198,154,62,.09);border-color:rgba(198,154,62,.22);color:#e0bb62;}
.tkr-ic.s{background:rgba(143,174,122,.09);border-color:rgba(143,174,122,.22);color:#9fc088;}
.tkr-ic.c{background:rgba(168,64,44,.09);border-color:rgba(168,64,44,.24);color:#c97a5f;}
.tkr-ic i{font-size:15px;}
.tkr-tx strong{display:block;font-size:12.5px;font-weight:600;color:rgba(242,236,220,.9);}
.tkr-tx span{display:block;font-size:10.5px;color:rgba(242,236,220,.38);margin-top:1px;}
@media(max-width:1100px){.tkr-card{display:none;}}

.pa-showcase{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:10px}
.pa-card{background:var(--white);border:1px solid var(--line);padding:32px 28px 26px;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease)}
.pa-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft);border-color:var(--brass)}
.pa-card-icon{width:46px;height:46px;border-radius:50%;background:var(--paper-2);display:flex;align-items:center;justify-content:center;margin-bottom:20px;color:var(--cta);font-size:17px}
.pa-card h3{font-family:var(--font-display);font-size:19px;font-weight:600;margin:0 0 8px;color:var(--ink)}
.pa-card p{font-size:14px;color:var(--slate);line-height:1.55;margin:0 0 18px}
.pa-card-links{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:16px}
.pa-card-links a{font-size:13.5px;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:8px;text-decoration:none}
.pa-card-links a:hover{color:var(--cta)}
.pa-card-links a i{font-size:11px;color:var(--muted);transition:transform .15s ease}
.pa-card-links a:hover i{transform:translateX(3px);color:var(--cta)}
.pa-showcase-all{display:flex;justify-content:center;margin-top:34px}
@media(max-width:980px){.pa-showcase{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.pa-showcase{grid-template-columns:1fr}}

/* ==========================================================================
   HOMEPAGE — CASE LIBRARY PREVIEW — v13
   Surfaces real case notes (not just the PDF volumes) on the homepage,
   with a clear path into the full searchable Case Digest library.
   ========================================================================== */
.cl-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:30px 0 36px}
.cl-preview-card{background:var(--white);border:1px solid var(--line);padding:22px 20px 18px;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.cl-preview-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-soft);border-color:var(--brass)}
.cl-preview-cite{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.03em;color:var(--cta);font-weight:600;margin-bottom:10px}
.cl-preview-headline{font-family:var(--font-display);font-size:16px;font-weight:600;line-height:1.32;margin:0 0 8px;color:var(--ink)}
.cl-preview-name{font-size:12.5px;font-style:italic;color:var(--slate);margin:0 0 14px;flex-grow:1}
.cl-preview-footer{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;padding-top:12px;border-top:1px solid var(--line);color:var(--ink)}
.cl-preview-card:hover .cl-preview-footer{color:var(--cta)}
.cl-preview-all{display:flex;justify-content:center;margin-top:6px}
@media(max-width:980px){.cl-preview-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.cl-preview-grid{grid-template-columns:1fr}}
