/* ============================================================
   CHAMBERS THEME — Advisory Monks Consulting
   Navy · ivory · gold · Lora / Instrument Sans / IBM Plex Mono
   Loaded LAST; redefines design tokens and re-skins shared components.
   ============================================================ */

/* Real typefaces (web fonts were never loading — Google Fonts blocked) */
@font-face{font-family:'Lora';src:url('fonts/Lora-Regular.ttf');font-weight:400;font-display:swap}
@font-face{font-family:'Lora';src:url('fonts/Lora-Bold.ttf');font-weight:700;font-display:swap}
@font-face{font-family:'Lora';src:url('fonts/Lora-Italic.ttf');font-style:italic;font-display:swap}
@font-face{font-family:'Instrument Sans';src:url('fonts/InstrumentSans-Regular.ttf');font-weight:400;font-display:swap}
@font-face{font-family:'Instrument Sans';src:url('fonts/InstrumentSans-Bold.ttf');font-weight:600 700;font-display:swap}
@font-face{font-family:'Instrument Sans';src:url('fonts/InstrumentSans-Italic.ttf');font-style:italic;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('fonts/IBMPlexMono-Regular.ttf');font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('fonts/IBMPlexMono-Bold.ttf');font-weight:500 700;font-display:swap}
/* Aliases so any hard-coded original family names also resolve to the new type */
@font-face{font-family:'Source Serif 4';src:url('fonts/Lora-Regular.ttf');font-weight:400}
@font-face{font-family:'Source Serif 4';src:url('fonts/Lora-Bold.ttf');font-weight:700}
@font-face{font-family:'Source Serif Pro';src:url('fonts/Lora-Regular.ttf')}
@font-face{font-family:'Inter';src:url('fonts/InstrumentSans-Regular.ttf');font-weight:400}
@font-face{font-family:'Inter';src:url('fonts/InstrumentSans-Bold.ttf');font-weight:500 700}
@font-face{font-family:'JetBrains Mono';src:url('fonts/IBMPlexMono-Regular.ttf')}

:root{
  --paper:#FBF9F3; --paper-dim:#F3EEE3; --paper-deeper:#E9E2D2;
  --ink:#16243C; --ink-dim:#1E3050;
  --text-strong:#16243C; --text-mid:#585345; --text-faint:#9A9281;
  --text-line:#E4DDCD; --text-line-strong:#CFC6B1;
  --text-paper-strong:#F4F0E7; --text-paper-mid:#AAB1BF; --text-paper-faint:#7B8497;
  --text-paper-line:rgba(244,240,231,.16);
  --pos:#2C7A57; --neg:#B0492C;
  --blue:#16243C; --blue-deep:#0F1B30; --blue-soft:#3D5374; --blue-tint:#F1EDE4; --blue-veil:#E7E0D2;
  --gold:#A9863F; --gold-tint:#F6EFDC;
  --display:'Lora',Georgia,'Times New Roman',serif;
  --body:'Instrument Sans',system-ui,-apple-system,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
}

/* ---- Chambers character ------------------------------------ */
/* Gold hairline at the very top of the page */
.rail{ box-shadow: inset 0 3px 0 var(--gold); }

/* Eyebrows / kickers / small labels → gold */
.hero-eyebrow,.section-num,.pv-eyebrow,.eyebrow,.scenario-label,
.cta-section .section-num,.crumb .current,.ins-eyebrow{
  color:var(--gold) !important;
}

/* Serif display gets a touch more weight/letterspacing for Lora */
h1,.s-display,.section-title,.hero h1,.pv-lead + *,.team-name{ letter-spacing:-.01em; }
.hero-eyebrow,.section-num,.eyebrow,.pv-eyebrow,.scenario-label{ letter-spacing:.16em; }

/* Footer headings in gold; brass divider already navy via --ink */
.footer-col h4,.foot-col h4,.footer h4{ color:var(--gold); }

/* Active / hover accents lean gold rather than blue */
.rail-c a.active,.rail-c a:hover{ color:var(--gold) !important; }
.rail-c a.active::after{ background:var(--gold) !important; }
a.pv-back:hover,.cta-btn-secondary:hover{ border-color:var(--gold); }

/* Section rule accents */
.section-rule{ background:var(--text-line); }
.section-rule::before{ background:var(--gold) !important; }

/* ---- Honest credibility pillars (replaces fabricated quotes) */
.principles{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:8px; }
.principle{ padding-top:22px; border-top:2px solid var(--ink); }
.principle .p-k{ font-family:var(--mono); font-size:12px; letter-spacing:.14em; color:var(--gold); }
.principle h3{ font-family:var(--display); font-weight:700; font-size:22px; color:var(--text-strong); margin:14px 0 8px; letter-spacing:-.01em; }
.principle p{ font-size:14.5px; line-height:1.6; color:var(--text-mid); }
@media (max-width:820px){ .principles{ grid-template-columns:1fr; gap:0; } .principle{ margin-bottom:4px; } }

/* Practice "what we do" — scannable, formatted (replaces text wall) */
#what > p{ max-width:74ch; font-size:16px; line-height:1.75; color:var(--text-mid); margin:0 0 1em; text-wrap:pretty; }
#what > p:first-of-type{ font-family:var(--display); font-weight:400; font-size:clamp(19px,1.9vw,22px); line-height:1.55; color:var(--text-strong); max-width:60ch; margin-bottom:26px; }
#what h3{ font-family:var(--display); font-weight:700; font-size:19px; color:var(--text-strong); letter-spacing:-.01em; margin:30px 0 6px; }
#what .what-list{ list-style:none; padding:0; margin:6px 0 18px; max-width:80ch; }
#what .what-list li{ position:relative; padding:12px 0 12px 28px; border-top:1px solid var(--text-line); font-size:15px; line-height:1.6; color:var(--text-mid); }
#what .what-list li:last-child{ border-bottom:1px solid var(--text-line); }
#what .what-list li::before{ content:""; position:absolute; left:4px; top:19px; width:7px; height:7px; background:var(--gold); transform:rotate(45deg); }
#what .what-list li strong{ color:var(--text-strong); font-weight:600; }
#what .what-note{ font-size:13.5px; color:var(--text-faint); max-width:74ch; margin-top:14px; line-height:1.6; }
#what .what-note strong{ color:var(--text-mid); }
.section-title,.s-display,.hero h1{ text-wrap:balance; }

/* ============================================================
   Round-2 fixes: spacing, team, insights, hero cards, logo
   ============================================================ */
/* Tightened vertical rhythm (industry-standard) */
.section{ padding-top:clamp(30px,3.6vw,52px); padding-bottom:clamp(30px,3.6vw,52px); }
.hero{ padding-top:clamp(40px,5vw,72px); padding-bottom:clamp(26px,3.2vw,44px); }
.page-view{ padding-top:clamp(26px,3.2vw,46px) !important; }
.cta-section{ padding-top:clamp(48px,6vw,84px); padding-bottom:clamp(48px,6vw,84px); }

/* Team: compact horizontal cards with small photos */
.team-grid{ grid-template-columns:1fr !important; gap:18px; }
.team-card{ flex-direction:row; align-items:stretch; }
.team-portrait{ aspect-ratio:auto; flex:0 0 184px; width:184px; border-bottom:none; border-right:1px solid var(--text-line); }
.team-portrait img{ height:100%; }
.team-body{ padding:24px 28px 26px; gap:12px; }
@media(max-width:640px){ .team-card{ flex-direction:column; } .team-portrait{ width:100%; flex:0 0 auto; aspect-ratio:3/2; max-height:230px; border-right:none; border-bottom:1px solid var(--text-line); } }

/* Insights list — proper cards (were unstyled & bunched) */
.ins-list{ display:grid; gap:18px; margin-top:30px; }
@media(min-width:768px){ .ins-list{ grid-template-columns:1fr 1fr; } }
.page-view a.ins-card{ display:block; padding:24px 26px; border:1px solid var(--text-line) !important; border-radius:14px; background:var(--paper); transition:border-color .2s, transform .2s; }
.page-view a.ins-card:hover{ border-color:var(--gold) !important; transform:translateY(-2px); }
.ins-card-meta{ display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:12px; }
.ins-card-tag{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); }
.ins-card-date{ font-family:var(--mono); font-size:11px; color:var(--text-faint); }
.ins-card-h{ font-family:var(--display); font-weight:700; font-size:21px; line-height:1.25; letter-spacing:-.01em; color:var(--text-strong); margin:0 0 10px; }
.ins-card-deck{ font-size:14.5px; line-height:1.6; color:var(--text-mid); margin:0 0 14px; }
.ins-card-cta{ font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-mid); }
.ins-card:hover .ins-card-cta{ color:var(--gold); }

/* Homepage footer logo keeps brand colours (no harsh invert) */
.foot img{ filter:none !important; }

/* Hero engagement briefs — make it obvious these are cards */
.brief-card{ flex-basis:76% !important; border:1px solid var(--text-line); border-radius:14px; background:var(--paper); padding:18px 18px 8px; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.brief-nav{ display:grid !important; place-items:center; width:32px; height:32px; border-radius:50%; border:1px solid var(--text-line-strong); background:var(--paper); color:var(--text-strong); box-shadow:0 4px 14px rgba(0,0,0,.10); }
.brief-counter{ font-family:var(--mono); font-size:11px; color:var(--text-mid); }

/* Team cards without photos */
.team-card{ flex-direction:column; }
.team-body{ padding:28px 30px 30px; }
.team-link{ display:inline-flex; align-items:center; gap:6px; font-family:var(--mono); font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--gold); border:1px solid var(--text-line-strong); padding:9px 16px; border-radius:3px; align-self:flex-start; transition:.2s; }
.team-link:hover{ border-color:var(--gold); background:var(--gold-tint); }

/* Pillar article table + related practices + floating WhatsApp */
.map-table{ width:100%; border-collapse:collapse; margin:18px 0; font-size:14px; }
.map-table th{ text-align:left; font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-faint); border-bottom:2px solid var(--ink); padding:10px 12px; }
.map-table td{ padding:12px; border-bottom:1px solid var(--text-line); vertical-align:top; color:var(--text-mid); }
.map-table td.f{ font-family:var(--mono); color:var(--gold); white-space:nowrap; font-size:12px; }
.map-table tr:hover td{ background:var(--paper-dim); }
.ins-related{ margin:34px 0 10px; padding-top:22px; border-top:1px solid var(--text-line); }
.ins-related-k{ font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); }
.ins-related-links{ display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:12px; }
.ins-related-links a{ font-family:var(--display); font-size:17px; color:var(--text-strong) !important; border-bottom:1px solid var(--text-line-strong) !important; padding-bottom:2px; }
.ins-related-links a:hover{ color:var(--gold) !important; border-bottom-color:var(--gold) !important; }
.wa-fab{ position:fixed; right:18px; bottom:18px; z-index:70; width:54px; height:54px; border-radius:50%; background:#25D366; display:grid; place-items:center; box-shadow:0 10px 26px rgba(0,0,0,.24); transition:transform .2s; }
.wa-fab:hover{ transform:scale(1.07); }
.wa-fab svg{ width:30px; height:30px; fill:#fff; }
@media print{ .wa-fab{ display:none; } }

/* Representative outcomes + credentials strip */
.outcomes{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:8px; }
@media(max-width:820px){ .outcomes{ grid-template-columns:1fr; } }
.outcome{ border:1px solid var(--text-line); border-radius:14px; padding:26px 24px; background:var(--paper); }
.outcome .o-metric{ font-family:var(--display); font-weight:700; font-size:34px; color:var(--text-strong); letter-spacing:-.01em; line-height:1; }
.outcome p{ font-size:14.5px; line-height:1.6; color:var(--text-mid); margin:12px 0 14px; }
.outcome .o-tag{ font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); }
.cred-strip{ display:flex; flex-wrap:wrap; gap:10px 14px; margin-top:30px; padding-top:24px; border-top:1px solid var(--text-line); }
.cred-strip span{ font-family:var(--mono); font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--text-mid); border:1px solid var(--text-line-strong); border-radius:999px; padding:7px 14px; }

/* Client testimonials */
.tgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:8px; }
@media(max-width:980px){ .tgrid{ grid-template-columns:1fr 1fr; } }
@media(max-width:640px){ .tgrid{ grid-template-columns:1fr; } }
.tcard{ background:var(--paper); border:1px solid var(--text-line); border-radius:14px; padding:24px 24px 22px; display:flex; flex-direction:column; }
.tcard blockquote{ font-family:var(--display); font-size:16.5px; line-height:1.5; color:var(--text-strong); margin:0 0 16px; letter-spacing:-.005em; }
.tcard figcaption{ margin-top:auto; padding-top:14px; border-top:1px solid var(--text-line); }
.tcard .t-name{ display:block; font-weight:600; font-size:14px; color:var(--text-strong); }
.tcard .t-role{ display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--text-faint); margin-top:4px; }
.t-more{ display:inline-block; margin-top:22px; font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--gold); border-bottom:1px solid var(--text-line-strong); padding-bottom:2px; }
.t-more:hover{ border-color:var(--gold); }

/* Per-practice client testimonial */
.prac-quote-sec{ }
.prac-quote{ max-width:760px; margin:0 auto; text-align:center; }
.prac-quote blockquote{ font-family:var(--display); font-weight:400; font-size:clamp(20px,2.3vw,26px); line-height:1.45; letter-spacing:-.01em; color:var(--text-strong); margin:0 0 20px; }
.prac-quote figcaption{ display:inline-flex; flex-direction:column; gap:4px; padding-top:16px; border-top:2px solid var(--gold); }
.prac-quote .pq-name{ font-weight:600; font-size:14px; color:var(--text-strong); }
.prac-quote .pq-role{ font-family:var(--mono); font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-faint); }

/* Unify footer navy across all pages (match homepage) */
.footer{ background:var(--ink) !important; }

/* Engagement briefs: transform slider (robust, no native scroll) */
.brief-track{ overflow:hidden !important; scroll-snap-type:none !important; display:block !important; }
.brief-rail{ display:flex; gap:16px; transition:transform .45s cubic-bezier(.4,0,.2,1); will-change:transform; }
.brief-card{ scroll-snap-align:none !important; }

/* Round-3: contact + legal spacing, Global Desk */
#contact{ padding-top:clamp(24px,3vw,40px); }
#contact .s-head{ margin-bottom:clamp(22px,3vw,34px); align-items:start; }
#contact .contact-cta{ margin:18px 0 0; }
.page-view .pv-lead{ margin-bottom:clamp(22px,3vw,32px) !important; }
.page-view h2{ margin:clamp(26px,3vw,34px) 0 12px !important; }
.page-view .pv-meta{ margin-bottom:24px !important; }
#aud-global .aud-title{ display:inline-block; }
#aud-global .prac-tag-global{ }

/* ============================================================
   Long-form reading measure — consistent, aligned text column
   (body paragraphs were running full-width ~150 chars/line)
   ============================================================ */
.page-view > p, .page-view > ul, .page-view > ol,
.page-view > h2, .page-view > h3, .page-view > .pv-lead,
.page-view > blockquote{
  max-width: 72ch;
}
/* keep wide elements wide */
.page-view > .pv-meta, .page-view > .ins-list, .page-view > .map-table,
.page-view > .ins-related, .page-view > .team-grid, .page-view > .team-foot,
.page-view > .calc, .page-view > table{ max-width: none; }
.map-table{ max-width: 100%; }

/* Practice "what we do" — unify measures so left & right edges align */
#what > p, #what > p:first-of-type, #what .what-list, #what .what-note, #what h3{ max-width: 74ch; }

/* Fixed reading measure (px) so all long-form text shares the same edges */
.page-view > p, .page-view > ul, .page-view > ol,
.page-view > h2, .page-view > h3, .page-view > .pv-lead, .page-view > blockquote{
  max-width: 680px !important;
}
#what > p, #what > p:first-of-type, #what h3, #what .what-list, #what .what-note{
  max-width: 720px !important;
}

/* Justified long-form body paragraphs (with hyphenation to avoid rivers) */
.page-view > p, .page-view > .pv-lead, #what > p, #what .what-note{
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Justify remaining long-form prose: scenarios, FAQ answers, team bios */
.scenario-body, .faq-a, .team-bio{
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
  -webkit-hyphens: auto;
}

/* Tighter inter-section spacing (was ~104px between sections) */
.section{ padding-top:clamp(18px,2.2vw,34px) !important; padding-bottom:clamp(18px,2.2vw,34px) !important; }
.cta-section{ padding-top:clamp(40px,4.6vw,60px) !important; padding-bottom:clamp(40px,4.6vw,60px) !important; }
.hero{ padding-bottom:clamp(22px,2.6vw,38px) !important; }
/* trim the big gap under section headings on the homepage */
.s-head{ margin-bottom:clamp(22px,3vw,40px) !important; }

/* Reliability: never hide content behind scroll-reveal (caused empty bands) */
.reveal{ opacity:1 !important; transform:none !important; }
