:root {
  --paper: #f6f3ed;
  --paper-2: #fbfaf7;
  --ink: #0c1420;
  --muted: #58616c;
  --line: rgba(12,20,32,.14);
  --gold: #a37b39;
  --gold-soft: #d5bd8e;
  --navy: #121e2d;
  --max: 1440px;
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); line-height:1.55; -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
button, input, textarea, select { font:inherit; }
::selection { background:var(--gold-soft); color:var(--ink); }

.skip-link { position:fixed; left:16px; top:-80px; background:var(--ink); color:white; padding:12px 16px; z-index:1000; }
.skip-link:focus { top:16px; }

.site-header { max-width:var(--max); margin:0 auto; min-height:94px; padding:20px 48px; display:grid; grid-template-columns:210px 1fr auto; align-items:center; gap:36px; position:relative; z-index:20; }
.brand { display:inline-flex; flex-direction:column; width:max-content; line-height:1; }
.brand-kicker { text-transform:uppercase; letter-spacing:.34em; font-size:.67rem; font-weight:650; }
.brand-name, .footer strong { font-family:var(--serif); text-transform:uppercase; letter-spacing:.08em; font-size:2rem; font-weight:400; margin-top:4px; }
.site-nav { display:flex; justify-content:center; gap:clamp(18px,2.4vw,38px); font-size:.88rem; }
.site-nav a { position:relative; }
.site-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:-8px; height:1px; background:var(--gold); transition:right .25s ease; }
.site-nav a:hover::after { right:0; }
.menu-toggle { display:none; }

.button { display:inline-flex; align-items:center; justify-content:center; gap:20px; min-height:60px; padding:0 28px; border:1px solid var(--gold); border-radius:999px; background:var(--gold); color:white; font-weight:650; letter-spacing:.01em; transition:transform .2s ease, box-shadow .2s ease, background .2s ease; cursor:pointer; }
.button:hover { transform:translateY(-2px); box-shadow:0 14px 34px rgba(87,62,19,.16); background:#906b31; }
.button-small { min-height:48px; padding:0 22px; gap:16px; font-size:.88rem; }
.button-dark { background:var(--ink); border-color:var(--ink); }
.text-link { display:inline-flex; align-items:center; gap:16px; padding-bottom:5px; border-bottom:1px solid var(--gold); font-size:.9rem; }

.hero { max-width:var(--max); margin:0 auto; min-height:690px; display:grid; grid-template-columns:1.02fr .98fr; padding:56px 48px 0; overflow:hidden; }
.hero-copy { padding:55px 0 80px; z-index:2; }
.eyebrow { margin:0 0 24px; text-transform:uppercase; letter-spacing:.34em; font-size:.68rem; font-weight:700; }
.hero h1 { max-width:760px; margin:0; font-family:var(--serif); font-size:clamp(4rem,5.5vw,6.8rem); line-height:.93; letter-spacing:-.045em; font-weight:400; }
.hero h1 em { color:var(--gold); font-weight:400; }
.hero-deck { max-width:680px; margin:28px 0 0; font-size:clamp(1rem,1.35vw,1.22rem); line-height:1.5; color:#3c4653; letter-spacing:.025em; }
.geo-line, .location-line { margin:28px 0; text-transform:uppercase; letter-spacing:.28em; font-size:.72rem; font-weight:700; }
.geo-line span, .location-line span, .contact-meta span { color:var(--gold); margin:0 10px; }
.hero-actions { display:flex; align-items:center; gap:36px; margin-top:30px; flex-wrap:wrap; }
.hero-visual { position:relative; align-self:end; min-height:620px; }
.hero-visual img { position:absolute; z-index:2; right:-12%; bottom:0; width:min(720px,104%); height:92%; object-fit:cover; object-position:50% 15%; mix-blend-mode:multiply; filter:saturate(.92) contrast(1.02); }
.hero-visual::after { content:""; position:absolute; z-index:3; left:-4%; bottom:-1px; right:-10%; height:26%; background:linear-gradient(to top,var(--paper) 4%,rgba(246,243,237,0)); pointer-events:none; }
.network { position:absolute; inset:0 -14% 0 -10%; opacity:.9; animation:float 10s ease-in-out infinite; }
.network svg { width:100%; height:100%; }
@keyframes float { 0%,100%{transform:translateY(0) rotate(0deg)} 50%{transform:translateY(-8px) rotate(.5deg)} }

.authority-strip { max-width:var(--max); margin:0 auto; min-height:142px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:grid; grid-template-columns:.72fr 1.28fr; padding:26px 48px; gap:54px; align-items:center; background:rgba(255,255,255,.28); }
.authority-number { display:grid; grid-template-columns:auto 1fr; gap:26px; align-items:center; }
.authority-number strong { color:var(--gold); font-family:var(--serif); font-size:4.2rem; font-weight:400; line-height:1; }
.authority-number span, .authority-regions { text-transform:uppercase; letter-spacing:.2em; font-size:.64rem; font-weight:650; }
.authority-regions .label { display:block; margin-bottom:8px; color:var(--muted); }
.authority-regions p { margin:0; line-height:2; }
.authority-regions b, .sectors b { color:var(--gold); font-weight:400; margin:0 9px; }

.section { max-width:var(--max); margin:0 auto; padding:120px 48px; }
.section-heading { max-width:850px; margin-bottom:56px; }
.section-heading h2, .about h2, .ideas h2, .speaking h2, .contact h2 { margin:0; font-family:var(--serif); font-size:clamp(3rem,4.6vw,5.5rem); font-weight:400; line-height:1; letter-spacing:-.04em; }
.section-heading > p:last-child { max-width:670px; font-size:1.08rem; color:var(--muted); }

.practice-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:18px; }
.practice-card { grid-column:span 4; min-height:360px; padding:30px; border:1px solid var(--line); background:rgba(255,255,255,.34); display:flex; flex-direction:column; transition:transform .25s ease, background .25s ease, border-color .25s ease; }
.practice-card.wide { grid-column:span 6; }
.practice-card:hover { transform:translateY(-6px); background:var(--paper-2); border-color:rgba(163,123,57,.4); }
.practice-card > span { color:var(--gold); font-family:var(--serif); font-size:1.15rem; }
.practice-card h3 { font-family:var(--serif); font-size:2rem; line-height:1.05; font-weight:400; margin:60px 0 16px; }
.practice-card p { color:var(--muted); margin:0; max-width:520px; }
.practice-card a { margin-top:auto; padding-top:28px; font-size:.85rem; font-weight:700; }

.about { display:grid; grid-template-columns:.88fr 1.12fr; gap:82px; align-items:center; background:var(--paper-2); max-width:none; padding-left:max(48px,calc((100vw - var(--max))/2 + 48px)); padding-right:max(48px,calc((100vw - var(--max))/2 + 48px)); }
.about-image { position:relative; }
.about-image::before { content:""; position:absolute; inset:8% -8% -8% 8%; border:1px solid var(--gold-soft); }
.about-image img { position:relative; width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center; filter:saturate(.88); }
.about-copy { max-width:760px; }
.about-copy h2 { font-size:clamp(2.7rem,4vw,4.8rem); }
.about-copy > p:not(.eyebrow):not(.location-line) { color:var(--muted); font-size:1.05rem; max-width:700px; }

.evidence { padding-bottom:88px; }
.case-list { border-top:1px solid var(--line); }
.case { display:grid; grid-template-columns:.8fr 1.2fr; gap:50px; padding:34px 0; border-bottom:1px solid var(--line); align-items:center; }
.case span { display:block; text-transform:uppercase; letter-spacing:.22em; font-size:.64rem; color:var(--gold); font-weight:700; margin-bottom:7px; }
.case h3 { margin:0; font-family:var(--serif); font-size:2.05rem; font-weight:400; }
.case p { margin:0; color:var(--muted); max-width:680px; }
.sectors { margin-top:46px; padding:28px 0; display:grid; grid-template-columns:170px 1fr; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.sectors > span { text-transform:uppercase; letter-spacing:.2em; font-size:.65rem; font-weight:700; color:var(--muted); }
.sectors p { margin:0; }

.engage { background:var(--navy); color:white; max-width:none; padding-left:max(48px,calc((100vw - var(--max))/2 + 48px)); padding-right:max(48px,calc((100vw - var(--max))/2 + 48px)); }
.engage .eyebrow { color:var(--gold-soft); }
.engage .section-heading > p:last-child { color:#aeb8c3; }
.engage-grid { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid rgba(255,255,255,.16); }
.engage-grid a { min-height:90px; padding:0 22px; border-bottom:1px solid rgba(255,255,255,.16); display:flex; align-items:center; justify-content:space-between; font-family:var(--serif); font-size:1.45rem; transition:background .2s ease, padding .2s ease; }
.engage-grid a:nth-child(odd) { border-right:1px solid rgba(255,255,255,.16); }
.engage-grid a:hover { background:rgba(255,255,255,.05); padding-left:30px; }
.engage-grid span { color:var(--gold-soft); font-family:var(--sans); }

.ideas { background:#e9e4dc; max-width:none; padding-left:max(48px,calc((100vw - var(--max))/2 + 48px)); padding-right:max(48px,calc((100vw - var(--max))/2 + 48px)); display:grid; grid-template-columns:.7fr 1.3fr; gap:70px; }
.ideas-intro { position:sticky; top:60px; align-self:start; }
.ideas h2 { font-size:clamp(3rem,4vw,5rem); }
.ideas-intro > p:last-child { color:var(--muted); max-width:500px; }
.idea-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.idea-card { min-height:330px; padding:28px; border:1px solid rgba(12,20,32,.18); display:flex; flex-direction:column; background:rgba(255,255,255,.18); }
.idea-card > span { color:var(--gold); font-family:var(--serif); }
.idea-card h3 { margin:54px 0 14px; font-family:var(--serif); font-size:1.9rem; font-weight:400; line-height:1.05; }
.idea-card p { color:var(--muted); }
.idea-card a { margin-top:auto; font-size:.82rem; font-weight:700; }

.speaking { display:grid; grid-template-columns:1.08fr .92fr; gap:78px; align-items:center; }
.speaking-image { position:relative; }
.speaking-image::after { content:"TEDx"; position:absolute; right:-30px; bottom:-35px; font-family:var(--serif); font-size:5.5rem; color:var(--gold); opacity:.14; }
.speaking-image img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.speaking-copy p:not(.eyebrow) { color:var(--muted); font-size:1.06rem; max-width:600px; margin:26px 0 32px; }

.contact { border-top:1px solid var(--line); display:grid; grid-template-columns:.85fr 1.15fr; gap:90px; }
.contact-copy { position:sticky; top:60px; align-self:start; }
.contact-copy > p:not(.eyebrow):not(.contact-meta) { max-width:600px; color:var(--muted); font-size:1.05rem; }
.contact-meta { margin-top:32px; font-size:.72rem; text-transform:uppercase; letter-spacing:.16em; line-height:2; }
.contact-form { display:grid; gap:18px; padding:34px; background:var(--paper-2); border:1px solid var(--line); }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.contact-form label { display:grid; gap:8px; font-size:.75rem; text-transform:uppercase; letter-spacing:.16em; font-weight:700; }
.contact-form input, .contact-form textarea, .contact-form select { width:100%; background:transparent; border:0; border-bottom:1px solid rgba(12,20,32,.3); border-radius:0; padding:12px 2px; color:var(--ink); outline:none; text-transform:none; letter-spacing:normal; font-weight:400; }
.contact-form textarea { border:1px solid rgba(12,20,32,.25); padding:12px; resize:vertical; }
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus { border-color:var(--gold); }
.contact-form .button { width:max-content; margin-top:8px; border-bottom:1px solid var(--gold); }
.form-note, .form-success { font-size:.76rem; color:var(--muted); margin:0; text-transform:none; letter-spacing:normal; }
.form-success { color:#326a43; font-weight:700; }

.footer { max-width:var(--max); margin:0 auto; padding:56px 48px 70px; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr auto; gap:44px 80px; align-items:start; }
.footer > div strong { display:block; }
.footer > div p { color:var(--muted); margin:10px 0 0; }
.footer nav { display:grid; grid-template-columns:repeat(2,auto); gap:8px 32px; font-size:.82rem; }
.footer > p { grid-column:1 / -1; margin:10px 0 0; color:var(--muted); font-size:.75rem; }

.reveal { opacity:0; transform:translateY(20px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }

@media (max-width: 1080px) {
  .site-header { grid-template-columns:170px 1fr auto; padding:18px 28px; }
  .site-nav { gap:16px; }
  .site-nav a:nth-child(4), .site-nav a:nth-child(5) { display:none; }
  .hero, .section { padding-left:28px; padding-right:28px; }
  .hero { grid-template-columns:1.05fr .95fr; }
  .hero h1 { font-size:clamp(3.8rem,6vw,5.2rem); }
  .authority-strip { padding-left:28px; padding-right:28px; }
  .practice-card { grid-column:span 6; }
  .practice-card.wide { grid-column:span 6; }
  .about, .engage, .ideas { padding-left:28px; padding-right:28px; }
  .ideas { grid-template-columns:1fr; }
  .ideas-intro { position:static; }
}

@media (max-width: 800px) {
  .site-header { min-height:76px; grid-template-columns:1fr auto; padding:14px 20px; }
  .brand-name { font-size:1.65rem; }
  .header-cta { display:none; }
  .menu-toggle { display:flex; flex-direction:column; justify-content:center; gap:7px; width:42px; height:42px; border:0; background:transparent; cursor:pointer; }
  .menu-toggle span { width:24px; height:1px; background:var(--ink); transition:transform .2s ease; }
  .site-nav { position:absolute; top:76px; left:0; right:0; display:none; flex-direction:column; background:var(--paper-2); padding:26px 20px 34px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
  .site-nav.open { display:flex; }
  .site-nav a:nth-child(4), .site-nav a:nth-child(5) { display:block; }

  .hero { grid-template-columns:1fr; padding:32px 20px 0; }
  .hero-copy { padding:22px 0 28px; }
  .hero h1 { font-size:clamp(3.3rem,13vw,5rem); }
  .hero-deck { font-size:1rem; }
  .hero-actions { gap:24px; }
  .hero-visual { min-height:480px; }
  .hero-visual img { width:92%; right:-7%; height:100%; object-position:50% 12%; }
  .network { inset:-10% -20% -5% -15%; }

  .authority-strip { grid-template-columns:1fr; gap:18px; padding:26px 20px; }
  .authority-number { grid-template-columns:100px 1fr; }
  .authority-number strong { font-size:3.5rem; }

  .section, .about, .engage, .ideas { padding:82px 20px; }
  .section-heading { margin-bottom:38px; }
  .section-heading h2, .about h2, .ideas h2, .speaking h2, .contact h2 { font-size:clamp(2.7rem,12vw,4rem); }

  .practice-grid { grid-template-columns:1fr; }
  .practice-card, .practice-card.wide { grid-column:auto; min-height:300px; }

  .about, .speaking, .contact { grid-template-columns:1fr; gap:46px; }
  .about-image { max-width:560px; }
  .case { grid-template-columns:1fr; gap:14px; }
  .sectors { grid-template-columns:1fr; gap:12px; }
  .engage-grid { grid-template-columns:1fr; }
  .engage-grid a:nth-child(odd) { border-right:0; }
  .idea-grid { grid-template-columns:1fr; }
  .speaking-copy { padding-top:12px; }
  .contact-copy { position:static; }
  .field-row { grid-template-columns:1fr; }
  .footer { padding:45px 20px 60px; grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation:none !important; transition:none !important; }
  .reveal { opacity:1; transform:none; }
}
