/* Panacea Objective, main stylesheet. Tokens: Summit palette, Cormorant Garamond + Inter. */
:root {
    --black: #0E0F11; --snow: #FCFCFB; --white: #FFFFFF; --panel: #F7F7F5; --mist: #D5D8DA; --line: #E4E5E3;
    --granite: #5B6166; --glacier: #8A9BA5; --brand: #6F6458; --brand-dark: #544B42; --brand-light: #CFC7BD;
    --serif: 'Cormorant Garamond', Georgia, serif; --sans: 'Inter', system-ui, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: var(--sans); font-size: 17px; line-height: 1.65; color: var(--black); background: var(--white); -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
.wrap { max-width: 1200px; margin: 0 auto; padding: 0 2rem; }
.eyebrow { font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--brand); margin-bottom: 1rem; }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; line-height: 1.08; letter-spacing: -.01em; }
h2 { font-size: clamp(2.1rem, 4vw, 3.2rem); margin-bottom: 1.2rem; }
.lede { font-size: 1.12rem; color: var(--granite); max-width: 680px; }
:focus-visible { outline: 2px solid var(--brand); outline-offset: 3px; }
.tbc { font-family: var(--sans); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; background: rgba(111,100,88,.12); color: var(--brand); padding: .15rem .45rem; border-radius: 3px; vertical-align: middle; white-space: normal; overflow-wrap: anywhere; line-height: 1.6; }

/* Buttons and links */
.btn { display: inline-block; font-size: 15px; font-weight: 600; padding: .9rem 1.5rem; border-radius: 2px; background: var(--brand); color: #fff; border: 1px solid var(--brand); transition: background .25s, border-color .25s; }
.btn:hover, .btn:focus-visible { background: var(--brand-dark); border-color: var(--brand-dark); }
.btn.ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.7); }
.btn.ghost:hover { background: #fff; color: var(--black); }
.btn.white { background: #fff; color: var(--brand); border-color: #fff; }
.btn.white:hover { background: var(--black); color: #fff; border-color: var(--black); }
.more { color: var(--brand); font-weight: 600; font-size: 15px; display: inline-flex; align-items: center; gap: .45rem; }
.more::after { content: '\2192'; transition: transform .25s; }
.more:hover::after { transform: translateX(4px); }

/* Utility bar */
.utility { background: var(--black); color: #c9cdd0; font-size: 12.5px; }
.utility .wrap { display: flex; justify-content: flex-end; gap: 1.6rem; height: 36px; align-items: center; }
.utility a:hover { color: #fff; }
.utility .search { display: inline-flex; align-items: center; gap: .4rem; }

/* Main nav */
header.nav { position: sticky; top: 0; z-index: 60; background: var(--white); border-bottom: 1px solid var(--line); }
header.nav .wrap { display: flex; align-items: center; justify-content: space-between; height: 78px; gap: 2rem; }
/* Logo: PANACEA as outlined vector (open A’s, snow line in the final A, letter-spacing 0.12em); colour follows currentColor */
.mark { display: inline-flex; align-items: center; line-height: 0; color: var(--black); }
.mark-svg { display: block; height: 1.25rem; width: auto; aspect-ratio: 5338 / 660; }
nav > ul { display: flex; gap: .3rem; list-style: none; font-size: 15px; font-weight: 500; }
nav > ul > li { position: relative; }
nav > ul > li > a { display: inline-flex; align-items: center; gap: .35rem; padding: 1.6rem .8rem; color: var(--black); border-bottom: 2px solid transparent; }
nav > ul > li > a.has-menu::after { content: ''; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); }
nav > ul > li:hover > a, nav > ul > li:focus-within > a { color: var(--brand); border-bottom-color: var(--brand); }
.dropdown { position: absolute; left: 0; top: 100%; min-width: 290px; background: #fff; border: 1px solid var(--line); border-top: 2px solid var(--brand); box-shadow: 0 18px 40px rgba(14,15,17,.12); padding: .8rem 0; list-style: none; opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s, transform .2s, visibility .2s; }
nav > ul > li:hover .dropdown, nav > ul > li:focus-within .dropdown { opacity: 1; visibility: visible; transform: none; }
.dropdown a { display: block; padding: .6rem 1.3rem; font-size: 14px; color: var(--black); }
.dropdown a span { display: block; font-size: 12.5px; color: var(--granite); font-weight: 400; }
.dropdown a:hover { background: var(--panel); color: var(--brand); }
.menu-btn { display: none; background: none; border: 1px solid var(--mist); font: 500 14px var(--sans); padding: .5rem 1rem; border-radius: 2px; }

/* Hero (the only dark section besides the footer) */
.hero { position: relative; min-height: 78vh; display: flex; align-items: center; background: var(--black); color: #fff; overflow: hidden; }
.hero-media { position: absolute; inset: 0; background: url('../assets/img/mont-blanc-mono.jpg') center 35% / cover no-repeat; opacity: .7; }
.hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,15,17,.9) 0%, rgba(14,15,17,.65) 45%, rgba(14,15,17,.15) 100%); }
.hero .wrap { position: relative; z-index: 2; width: 100%; padding-top: 5rem; padding-bottom: 5rem; }
.hero .eyebrow { color: var(--brand-light); }
.hero h1 { font-size: clamp(2.6rem, 5.6vw, 4.6rem); max-width: 820px; margin-bottom: 1.4rem; }
.hero .lede { color: #dfe3e5; margin-bottom: 2.2rem; }
.hero .actions { display: flex; gap: 1rem; flex-wrap: wrap; }
/* <!-- 3D SCROLL ASSET HERE --> replaces .hero-media (1920x1080 desktop, 1080x1350 mobile) */

/* Stats band */
.stats { background: var(--panel); border-bottom: 1px solid var(--line); }
.stats .wrap { display: grid; grid-template-columns: repeat(4, 1fr); }
.stat { padding: 2.2rem 1.6rem; border-left: 1px solid var(--line); }
.stat:first-child { border-left: 0; padding-left: 0; }
.stat b { display: block; font-family: var(--serif); font-weight: 500; font-size: clamp(2.4rem, 4vw, 3.2rem); line-height: 1; color: var(--brand); font-variant-numeric: lining-nums tabular-nums; }
.stat span { font-size: 14px; color: var(--granite); }
.stats .note { display: block; font-size: 12px; color: var(--granite); padding: 0 0 1.2rem; }

/* Sections */
section.block { padding: 6.5rem 0; }
section.alt { background: var(--snow); }
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }
.head-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; margin-bottom: 2.6rem; flex-wrap: wrap; }
.head-row h2 { margin-bottom: 0; }

/* Risk */
.risk-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
.risk-list { list-style: none; border-top: 1px solid var(--line); }
.risk-list li { padding: 1.15rem 0 1.15rem 2rem; border-bottom: 1px solid var(--line); font-size: 1.05rem; position: relative; }
.risk-list li::before { content: ''; position: absolute; left: 0; top: 1.75rem; width: 12px; height: 2px; background: var(--brand); }
.closing { margin-top: 1.6rem; color: var(--granite); font-style: italic; }

/* Questions grid */
.questions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.q { background: #fff; padding: 2.2rem 2rem 2rem; display: flex; flex-direction: column; justify-content: space-between; min-height: 220px; transition: background .25s; position: relative; }
.q::before { content: ''; position: absolute; left: 0; top: 0; width: 100%; height: 3px; background: var(--brand); transform: scaleX(0); transform-origin: left; transition: transform .35s; }
.q:hover { background: var(--snow); }
.q:hover::before { transform: scaleX(1); }
.q .svc { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--granite); margin-bottom: .9rem; }
.q h3 { font-size: 1.7rem; line-height: 1.15; margin-bottom: 1.4rem; }
.q.lead { background: var(--brand); color: #fff; }
.q.lead .svc { color: #E7E2DC; }
.q.lead .more { color: #fff; }
.q.lead:hover { background: var(--brand-dark); }
.clients-line { margin-top: 1.6rem; font-size: 14px; color: var(--granite); }

/* The map */
.map-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: 5rem; align-items: center; }
.map-svg { width: 100%; height: auto; overflow: visible; }
.map-svg .ring { fill: none; stroke: var(--mist); stroke-width: 1; }
.map-svg .ring.main { stroke: var(--glacier); stroke-dasharray: 4 6; }
.map-svg .dot { fill: var(--black); opacity: 0; transform-box: fill-box; transform-origin: center; transform: scale(.2); transition: opacity .6s, transform .6s cubic-bezier(.2,.9,.3,1.4); }
.map-svg .dot.out { fill: var(--brand); }
.map-svg .pulse { fill: none; stroke: var(--brand); opacity: 0; }
.map-svg .lbl { font: 600 11px var(--sans); letter-spacing: .18em; fill: var(--granite); }
.map-svg .lbl.out { fill: var(--brand); }
.map-svg .link-line { stroke: var(--brand); stroke-width: 1; stroke-dasharray: 3 5; opacity: 0; transition: opacity .8s 1.4s; }
.in .map-svg .dot { opacity: 1; transform: scale(1); }
.in .map-svg .link-line { opacity: .8; }
.in .map-svg .pulse { animation: pulse 2.4s 1.6s ease-out infinite; }
@keyframes pulse { 0% { opacity: .8; r: 8; } 100% { opacity: 0; r: 34; } }

/* Steps */
.steps { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1.6rem; counter-reset: s; }
.steps li { counter-increment: s; border-top: 3px solid var(--black); padding-top: 1.3rem; font-size: 15px; color: var(--granite); }
.steps li:first-child { border-top-color: var(--brand); }
.steps li::before { content: '0' counter(s); display: block; font-family: var(--serif); font-size: 2.2rem; color: var(--brand); margin-bottom: .6rem; line-height: 1; }
.steps strong { display: block; color: var(--black); font-weight: 600; margin-bottom: .3rem; }

/* Testimonials */
.quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; margin-top: 2.4rem; }
.quote { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--brand); padding: 2rem; display: flex; flex-direction: column; justify-content: space-between; }
.quote blockquote { font-family: var(--serif); font-size: 1.3rem; line-height: 1.35; }
.quote cite { display: block; margin-top: 1.4rem; font-style: normal; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--granite); }

/* Practice */
.practice { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; }
.values { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--line); border: 1px solid var(--line); }
.values div { background: #fff; padding: 1.6rem; font-size: 15px; color: var(--granite); }
.values strong { display: block; font-family: var(--serif); font-weight: 500; font-size: 1.55rem; color: var(--black); margin-bottom: .3rem; }

/* Insights */
.insights { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.card { border: 1px solid var(--line); background: #fff; display: flex; flex-direction: column; transition: box-shadow .25s, transform .25s; }
.card:hover { box-shadow: 0 14px 36px rgba(14,15,17,.08); transform: translateY(-2px); }
.card .art { height: 150px; background: var(--panel); position: relative; overflow: hidden; }
.card .art svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.card .body { padding: 1.6rem 1.6rem 1.8rem; display: flex; flex-direction: column; flex: 1; }
.card .tag { font-size: 11.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--brand); margin-bottom: .7rem; }
.card h3 { font-size: 1.55rem; line-height: 1.15; margin-bottom: .7rem; }
.card p { font-size: 14.5px; color: var(--granite); margin-bottom: 1.2rem; flex: 1; }
.card .meta { font-size: 12.5px; color: var(--granite); border-top: 1px solid var(--line); padding-top: .9rem; display: flex; justify-content: space-between; }
.card.soon { opacity: .75; }

/* Contact band */
.contact-band { background: var(--brand); color: #fff; padding: 5rem 0; }
.contact-band .wrap { display: flex; justify-content: space-between; align-items: center; gap: 2.5rem; flex-wrap: wrap; }
.contact-band h2 { margin-bottom: .6rem; }
.contact-band p { color: #E7E2DC; max-width: 620px; }

/* Footer */
footer { background: var(--black); color: #b9c0c4; padding: 4.5rem 0 2.5rem; font-size: 14px; }
.foot { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 2.5rem; }
.foot .mark { color: #fff; margin-bottom: 1.2rem; }
.foot h4 { font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #fff; margin-bottom: 1rem; }
.foot ul { list-style: none; }
.foot li { margin-bottom: .55rem; }
.foot a:hover { color: #fff; }
.legal { margin-top: 3.5rem; padding-top: 1.5rem; border-top: 1px solid #2b2e31; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; font-size: 12px; color: var(--glacier); }

/* A note from Andy */
.note-grid { display: grid; grid-template-columns: 260px 1fr; gap: 4.5rem; align-items: start; max-width: 1020px; }
.portrait { aspect-ratio: 4 / 5; background: var(--panel); border: 1px solid var(--line); display: flex; align-items: flex-end; justify-content: center; position: relative; overflow: hidden; }
.portrait svg { width: 70%; height: auto; }
.portrait span { position: absolute; top: .8rem; left: .8rem; }
.note-body p { font-family: var(--serif); font-size: 1.45rem; line-height: 1.45; color: var(--black); margin-bottom: 1.1rem; }
.note-body p.eyebrow { font-family: var(--sans); font-size: 12px; line-height: 1.4; color: var(--brand); margin-bottom: 1.2rem; }
.note-body .sacred { font-style: italic; color: var(--brand); border-left: 3px solid var(--brand); padding-left: 1.2rem; margin: 1.8rem 0; }
.signature { margin-top: 1.6rem; }
.signature .sig { font-family: var(--serif); font-style: italic; font-size: 2rem; line-height: 1; color: var(--black); }
.signature small { display: block; margin-top: .5rem; font-size: 13px; color: var(--granite); letter-spacing: .04em; }

/* Questions CEOs ask */
.faq-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 5rem; align-items: start; }
.faq details { border-bottom: 1px solid var(--line); }
.faq details:first-child { border-top: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; padding: 1.3rem 2.5rem 1.3rem 0; font-family: var(--serif); font-size: 1.45rem; line-height: 1.25; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; position: absolute; right: .2rem; top: 1.1rem; font-family: var(--sans); font-size: 1.4rem; color: var(--brand); transition: transform .25s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { padding: 0 2.5rem 1.4rem 0; color: var(--granite); font-size: 16px; }
@media (max-width: 960px) { .note-grid, .faq-grid { grid-template-columns: 1fr; gap: 2.4rem; } .portrait { max-width: 260px; } }

.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Access comparison */
.compare { width: 100%; border-collapse: collapse; margin-top: 2.4rem; font-size: 15px; }
.compare th, .compare td { text-align: left; padding: 1.15rem 1.2rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.compare thead th { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--granite); border-bottom: 2px solid var(--black); }
.compare thead th.us { color: var(--brand); border-bottom-color: var(--brand); }
.compare tbody th { font-weight: 600; width: 26%; }
.compare td { color: var(--granite); width: 37%; }
.compare td.us { color: var(--black); background: var(--snow); }
.fineprint { font-size: 13px; color: var(--granite); margin-top: 1.2rem; max-width: 760px; }

/* Method */
.method-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: end; margin-bottom: 3rem; }
.method-name { font-family: var(--serif); font-size: 1.15rem; color: var(--brand); font-style: italic; }
.throughout { margin-top: 2.2rem; padding: 1.1rem 1.4rem; border-left: 3px solid var(--brand); background: #fff; font-size: 15px; color: var(--granite); }

/* Risk check */
.check { display: grid; grid-template-columns: 1fr 1.25fr; gap: 4rem; align-items: start; }
.check-form { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--brand); }
.check-q { display: grid; grid-template-columns: 1fr auto; gap: 1.2rem; align-items: center; padding: 1rem 1.4rem; border-bottom: 1px solid var(--line); font-size: 15px; }
.check-q p { margin: 0; }
.choice { display: inline-flex; border: 1px solid var(--mist); border-radius: 2px; overflow: hidden; }
.choice input { position: absolute; opacity: 0; pointer-events: none; }
.choice label { font-size: 13px; font-weight: 500; padding: .4rem .75rem; cursor: pointer; border-left: 1px solid var(--mist); color: var(--granite); }
.choice label:first-of-type { border-left: 0; }
.choice input:checked + label { background: var(--black); color: #fff; }
.choice input:focus-visible + label { outline: 2px solid var(--brand); outline-offset: -2px; }
.check-foot { padding: 1.3rem 1.4rem; display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.check-foot small { color: var(--granite); font-size: 12.5px; }
.result { margin-top: 1.6rem; padding: 1.6rem; background: var(--snow); border: 1px solid var(--line); display: none; }
.result.show { display: block; }
.result .band { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--brand); }
.result h3 { font-size: 1.7rem; margin: .4rem 0 .6rem; }
.result p { color: var(--granite); font-size: 15px; margin-bottom: 1rem; }
.meter { height: 6px; background: var(--line); margin: .8rem 0 1rem; position: relative; }
.meter span { position: absolute; left: 0; top: 0; bottom: 0; background: var(--brand); transition: width .6s; }

/* Crisis counsel (dark) */
.crisis, section.dark { background: var(--black); color: #fff; }
.crisis .eyebrow, section.dark .eyebrow { color: var(--brand-light); }
.crisis .lede, section.dark .lede { color: #c9cdd0; }
section.dark p { color: #c9cdd0; }
section.dark .more { color: var(--brand-light); }
section.dark .fineprint { color: var(--glacier); }
section.dark .list-lines, section.dark .list-lines li { border-color: #2b2e31; }
section.dark .list-lines li { color: #dfe3e5; }
section.dark .map-svg .ring { stroke: #3a3f44; }
section.dark .map-svg .ring.main { stroke: var(--glacier); }
section.dark .map-svg .dot { fill: #FAFAF8; }
section.dark .map-svg .dot.out { fill: var(--brand-light); }
section.dark .map-svg .lbl { fill: var(--glacier); }
section.dark .map-svg .lbl.out { fill: var(--brand-light); }
section.dark .map-svg .link-line, section.dark .map-svg .pulse { stroke: var(--brand-light); }
.crisis-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 5rem; align-items: start; }
.situations { list-style: none; border-top: 1px solid #2b2e31; margin-top: .4rem; }
.situations li { padding: 1rem 0; border-bottom: 1px solid #2b2e31; font-family: var(--serif); font-size: 1.45rem; }
.commitment { margin-top: 2.2rem; padding-left: 1.4rem; border-left: 3px solid var(--brand); }
.commitment p { font-family: var(--serif); font-size: 1.6rem; line-height: 1.25; color: #fff; }
.commitment small { display: block; margin-top: .7rem; color: var(--glacier); font-size: 13.5px; font-family: var(--sans); }
/* Light variant of the crisis section, used on the home page */
.crisis.light { background: var(--snow); color: var(--black); }
.crisis.light .eyebrow { color: var(--brand); }
.crisis.light .lede { color: var(--granite); }
.crisis.light .situations, .crisis.light .situations li { border-color: var(--line); }
.crisis.light .commitment p { color: var(--black); }
.crisis.light .commitment small { color: var(--granite); }

/* First conversation */
.first { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
.first-list { list-style: none; counter-reset: f; }
.first-list li { counter-increment: f; position: relative; padding: 1.2rem 0 1.2rem 3rem; border-bottom: 1px solid var(--line); color: var(--granite); font-size: 15px; }
.first-list li:first-child { border-top: 1px solid var(--line); }
.first-list li::before { content: counter(f, upper-roman); position: absolute; left: 0; top: 1.05rem; font-family: var(--serif); font-size: 1.3rem; color: var(--brand); }
.first-list strong { display: block; color: var(--black); font-weight: 600; }

@media (max-width: 960px) {
    .method-intro, .check, .crisis-grid, .first { grid-template-columns: 1fr; gap: 2.4rem; }
    .compare thead { display: none; }
    .compare tr { display: block; border-bottom: 1px solid var(--line); padding: .8rem 0; }
    .compare tbody th, .compare td { display: block; width: auto; border: 0; padding: .3rem 0; }
    .compare td::before { content: attr(data-label); display: block; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--granite); }
    .compare td.us { padding: .6rem .8rem; }
    .check-q { grid-template-columns: 1fr; gap: .6rem; }
}

@media (max-width: 960px) {
    nav, .utility .hide-sm, .nav-cta { display: none; }
    .menu-btn { display: inline-block; }
    .risk-grid, .practice, .map-grid { grid-template-columns: 1fr; gap: 3rem; }
    .questions, .quotes, .insights { grid-template-columns: 1fr; }
    .steps { grid-template-columns: 1fr 1fr; }
    .stats .wrap { grid-template-columns: 1fr 1fr; }
    .stat:nth-child(3) { border-left: 0; padding-left: 0; }
    .foot { grid-template-columns: 1fr 1fr; }
    section.block { padding: 4.5rem 0; }
}
@media (max-width: 560px) {
    .wrap { padding: 0 1rem; }
    .steps, .values { grid-template-columns: 1fr; }
    .stat { padding: 1.4rem .8rem; }
    .foot { grid-template-columns: 1fr; }
    .hero .actions .btn { width: 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .reveal { opacity: 1; transform: none; }
}

/* ===== Site-wide additions for the full build ===== */

/* Skip link and current page */
.skip-link { position: absolute; left: 1rem; top: -60px; z-index: 100; background: var(--black); color: #fff; padding: .6rem 1rem; font-size: 14px; }
.skip-link:focus { top: 1rem; }
nav > ul > li > a[aria-current="page"] { color: var(--brand); border-bottom-color: var(--brand); }

/* Mobile navigation panel */
.mobile-nav { display: none; }
@media (max-width: 960px) {
    .mobile-nav { display: block; position: fixed; inset: 0; top: 78px; z-index: 70; background: var(--white); overflow-y: auto; padding: 1.5rem 1rem 3rem; transform: translateX(100%); visibility: hidden; transition: transform .3s ease, visibility .3s; }
    body.nav-open .mobile-nav { transform: none; visibility: visible; }
    body.nav-open { overflow: hidden; }
    .mobile-nav ul { list-style: none; }
    .mobile-nav > ul > li { border-bottom: 1px solid var(--line); padding: .9rem 0; }
    .mobile-nav > ul > li > a { font-family: var(--serif); font-size: 1.6rem; }
    .mobile-nav li ul { margin-top: .4rem; }
    .mobile-nav li ul a { display: block; padding: .35rem 0; font-size: 15px; color: var(--granite); }
    .mobile-nav .btn { margin-top: 1.6rem; width: 100%; text-align: center; }
}

/* Placeholder marker for items awaiting confirmation */
.tbc-block { display: block; margin-top: .6rem; }

/* Inner page header */
.page-head { background: var(--panel); border-bottom: 1px solid var(--line); padding: 4.5rem 0 4rem; }
.page-head.dark { background: var(--black); color: #fff; border-bottom: 0; position: relative; overflow: hidden; }
.page-head.dark .lede { color: #c9cdd0; }
.page-head.dark .eyebrow { color: var(--brand-light); }
.page-head h1 { font-size: clamp(2.5rem, 5vw, 4rem); max-width: 860px; margin-bottom: 1.2rem; }
.page-head .actions { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 2rem; }
.btn.outline { background: transparent; color: var(--brand); }
.btn.outline:hover { background: var(--brand); color: #fff; }
.breadcrumb { font-size: 13px; color: var(--granite); margin-bottom: 1.6rem; }
.breadcrumb a { color: var(--brand); }
.page-head.dark .breadcrumb { color: var(--glacier); }
.page-head.dark .breadcrumb a { color: var(--brand-light); }

/* Generic layouts for inner pages */
.split { display: grid; grid-template-columns: 1fr 1.3fr; gap: 5rem; align-items: start; }
.split.even { grid-template-columns: 1fr 1fr; }
.list-lines { list-style: none; border-top: 1px solid var(--line); }
.list-lines li { padding: 1rem 0 1rem 2rem; border-bottom: 1px solid var(--line); position: relative; font-size: 1.02rem; }
.list-lines li::before { content: ''; position: absolute; left: 0; top: 1.6rem; width: 12px; height: 2px; background: var(--brand); }
.two-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
.panel-card { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--brand); padding: 2.2rem; }
.panel-card h2, .panel-card h3 { font-size: 2rem; margin-bottom: .8rem; }
.panel-card p { color: var(--granite); margin-bottom: 1rem; }
.panel-card .card-img { display: block; width: calc(100% + 4.4rem); max-width: none; margin: -2.2rem -2.2rem 1.8rem; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.statement { font-family: var(--serif); font-size: clamp(1.6rem, 3vw, 2.2rem); line-height: 1.25; max-width: 860px; }
.single-quote { max-width: 900px; }
.single-quote blockquote { font-family: var(--serif); font-size: clamp(1.4rem, 2.6vw, 1.9rem); line-height: 1.35; }
.single-quote cite { display: block; margin-top: 1.2rem; font-style: normal; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--granite); }
.single-quote::before { content: '\201C'; display: block; font-family: var(--serif); font-size: 4rem; line-height: .6; color: var(--brand); margin-bottom: .6rem; }
.cta-band { background: var(--black); color: #fff; padding: 4.5rem 0; }
.cta-band .wrap { display: flex; justify-content: space-between; align-items: center; gap: 2.5rem; flex-wrap: wrap; }
.cta-band h2 { margin-bottom: .5rem; }
.cta-band p { color: #c9cdd0; max-width: 620px; }
.withheld { border: 1px dashed var(--brand); padding: 1rem 1.2rem; font-size: 14px; color: var(--granite); margin-top: 1.6rem; background: #fff; }

/* About */
.about-grid { display: grid; grid-template-columns: 300px 1fr; gap: 5rem; align-items: start; }
.prose p { font-size: 1.08rem; line-height: 1.75; color: #2a2d31; margin-bottom: 1.2rem; max-width: 720px; }
.prose h2 { margin-top: 3rem; }

/* Article */
.article-head { max-width: 820px; }
.article-meta { font-size: 14px; color: var(--granite); margin-top: 1.4rem; }
.article-body { max-width: 720px; margin: 0 auto; }
.article-body p { font-size: 1.12rem; line-height: 1.8; margin-bottom: 1.3rem; color: #22252a; }
.article-body p strong { color: var(--black); }
.article-end { max-width: 720px; margin: 3rem auto 0; padding-top: 2rem; border-top: 1px solid var(--line); display: flex; gap: 1.5rem; align-items: center; flex-wrap: wrap; }

/* Forms */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem 1.4rem; }
.field { display: flex; flex-direction: column; gap: .4rem; }
.field.full { grid-column: 1 / -1; }
.field label { font-size: 14px; font-weight: 600; }
.field label .req { font-weight: 400; color: var(--granite); font-size: 12.5px; margin-left: .3rem; }
.field input, .field textarea { font: 400 16px var(--sans); padding: .85rem .9rem; border: 1px solid var(--mist); border-radius: 2px; background: #fff; color: var(--black); }
.field textarea { min-height: 150px; resize: vertical; }
.field input:focus, .field textarea:focus { outline: 2px solid var(--brand); outline-offset: 0; border-color: var(--brand); }
.field .error { font-size: 13px; color: var(--brand-dark); min-height: 1em; }
.form-foot { margin-top: 1.4rem; display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; }
.form-foot small { color: var(--granite); font-size: 13px; }
.form-status { margin-top: 1rem; font-size: 15px; }
.form-status.ok { color: #2f6b45; }
.form-status.fail { color: var(--brand-dark); }
.hp { position: absolute; left: -9999px; }
.contact-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 5rem; align-items: start; }
.direct dt { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--granite); margin-top: 1.4rem; }
.direct dd { font-size: 1.05rem; margin-top: .3rem; }
.signup { display: flex; gap: .8rem; flex-wrap: wrap; align-items: flex-end; margin-top: 1rem; }
.signup .field { flex: 1 1 260px; }

/* Legal and 404 */
.legal-body { max-width: 760px; }
.legal-body p { margin-bottom: 1.1rem; color: #2a2d31; }
.notfound { min-height: 62vh; display: flex; align-items: center; }

@media (max-width: 960px) {
    .split, .split.even, .two-cards, .about-grid, .contact-grid { grid-template-columns: 1fr; gap: 2.4rem; }
    .about-grid .portrait { max-width: 260px; }
}
@media (max-width: 560px) {
    .form-grid { grid-template-columns: 1fr; }
    .page-head { padding: 3rem 0 2.8rem; }
    .page-head .actions .btn { width: 100%; text-align: center; }
}

/* Peer counsel: network graphic and figures (home) */
.net-body { color: var(--granite); margin: 1.2rem 0 2rem; max-width: 680px; }
.net-svg { width: 100%; height: auto; overflow: visible; }
.net-svg .ring { fill: none; stroke: var(--mist); }
.net-svg .ring.main { stroke: var(--glacier); stroke-dasharray: 4 6; }
.net-svg .lbl { font: 600 11px var(--sans); letter-spacing: .18em; fill: var(--black); }
.net-svg .lbl.soft { fill: var(--glacier); }
.net-svg .lbl.out { fill: var(--brand); }
.net-svg .net-line { stroke: var(--brand); stroke-width: 1.2; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1s ease-out; }
.net-svg .net-halo { fill: none; stroke: var(--mist); }
.net-svg .net-node { fill: var(--black); opacity: 0; transform-box: fill-box; transform-origin: center; transform: scale(.2); transition: opacity .6s, transform .6s cubic-bezier(.2,.9,.3,1.4); }
.net-svg .net-centre { fill: var(--brand); }
.in .net-svg .net-line { stroke-dashoffset: 0; }
.in .net-svg .net-node { opacity: 1; transform: scale(1); }
.net-stats { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 4rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.net-stats .stat:first-child { border-left: 0; padding-left: 0; }
.net-foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; flex-wrap: wrap; }
@media (max-width: 960px) {
    .net-stats { grid-template-columns: 1fr 1fr; }
    .net-stats .stat:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .net-svg .net-line { stroke-dashoffset: 0; transition: none; }
    .net-svg .net-node { opacity: 1; transform: none; transition: none; }
}

/* Discretion: two-panel diagram and commitments (Approach, dark section) */
.discretion-figs { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem; margin-top: 4rem; }
.d-fig { border: 1px solid #2b2e31; background: #15171a; padding: 2rem 2rem 1.6rem; }
.d-fig.us { border-color: var(--brand); }
.d-fig svg { width: 100%; height: auto; overflow: visible; }
.d-fig figcaption { margin-top: 1.2rem; padding-top: 1.1rem; border-top: 1px solid #2b2e31; font-size: 14px; color: var(--glacier); }
.d-fig figcaption strong { display: block; font-family: var(--serif); font-weight: 500; font-size: 1.45rem; color: #fff; margin-bottom: .2rem; }
.d-fig .d-ring { fill: none; stroke: #3a3f44; stroke-dasharray: 3 5; }
.d-fig .d-line { stroke: #5B6166; stroke-width: 1; }
.d-fig .d-leak { stroke: #5B6166; stroke-width: 1; stroke-dasharray: 2 4; }
.d-fig .d-hand { fill: none; stroke: var(--glacier); stroke-width: 1.2; }
.d-fig .d-core { fill: #FAFAF8; }
.d-fig .d-me { fill: var(--brand-light); }
.d-fig .d-seal { fill: rgba(207,199,189,.06); stroke: var(--brand-light); stroke-width: 1.4; }
.d-fig .d-bond { stroke: var(--brand-light); stroke-width: 2; }
.d-fig .d-gate { stroke: var(--glacier); stroke-width: 1; stroke-dasharray: 2 4; }
.d-fig .d-lbl { font: 600 9px var(--sans); letter-spacing: .14em; fill: var(--glacier); }
.d-fig .d-lbl.strong { fill: #fff; }
.d-fig .d-lbl.seal { fill: var(--brand-light); }
.d-fig .d-lbl.small { font-size: 8px; }
.d-points { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: #2b2e31; border: 1px solid #2b2e31; margin-top: 3rem; }
.d-points li { background: var(--black); padding: 1.6rem; font-size: 14.5px; color: #c9cdd0; }
.d-points strong { display: block; font-family: var(--serif); font-weight: 500; font-size: 1.35rem; line-height: 1.2; color: #fff; margin-bottom: .5rem; }
.d-close { margin-top: 3rem; font-family: var(--serif); font-size: clamp(1.4rem, 2.6vw, 1.9rem); line-height: 1.35; color: #fff !important; max-width: 860px; border-left: 3px solid var(--brand-light); padding-left: 1.4rem; }
@media (max-width: 960px) {
    .discretion-figs { grid-template-columns: 1fr; }
    .d-points { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
    .d-points { grid-template-columns: 1fr; }
    .d-fig { padding: 1.4rem 1.2rem 1.2rem; }
}

/* The story: Chamonix origin and milestones (About, dark section) */
.story-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 5rem; align-items: center; }
.story-grid p:not(.eyebrow):not(.lede) { margin-top: 1.2rem; }
.story-img img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 60% 35%; filter: grayscale(1); }
.story-img figcaption { margin-top: .9rem; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--glacier); }
.timeline { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; margin-top: 4.5rem; border-top: 1px solid #2b2e31; }
.timeline li { position: relative; padding-top: 1.8rem; font-size: 14.5px; color: #c9cdd0; }
.timeline li::before { content: ''; position: absolute; top: -6px; left: 0; width: 11px; height: 11px; border-radius: 50%; background: var(--black); border: 1px solid var(--glacier); }
.timeline li.key::before { background: var(--brand-light); border-color: var(--brand-light); }
.timeline b { display: block; font-family: var(--serif); font-weight: 500; font-size: 1.45rem; color: #fff; margin-bottom: .4rem; }
.timeline li.key b { color: var(--brand-light); }
@media (max-width: 960px) {
    .story-grid { grid-template-columns: 1fr; gap: 2.4rem; }
    .story-img img { aspect-ratio: 3 / 2; }
    .timeline { grid-template-columns: 1fr 1fr; row-gap: 2.4rem; border-top: 0; }
    .timeline li { border-top: 1px solid #2b2e31; }
}
@media (max-width: 560px) { .timeline { grid-template-columns: 1fr; } }

/* Confidentiality: the circles your name travels through during a search */
.conf-svg .lbl { font-size: 13px; }
.conf-svg .lbl.soft { fill: var(--glacier); }
.conf-svg .dot.role { fill: var(--white); stroke: var(--glacier); stroke-width: 1.5; }
.conf-key { display: flex; flex-direction: column; gap: .5rem; margin-top: 1.4rem; font-size: 13px; color: var(--granite); }
.conf-key span { display: inline-flex; align-items: center; gap: .6rem; }
.conf-key i { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--black); }
.conf-key i.c { background: var(--brand); }
.conf-key i.r { background: transparent; border: 1.5px solid var(--glacier); }
@media (max-width: 560px) { .conf-svg .lbl { font-size: 18px; } }
section.dark .conf-svg .lbl.soft { fill: var(--granite); }
section.dark .conf-svg .dot.role { fill: var(--black); stroke: var(--glacier); }
section.dark .conf-key i { background: #FAFAF8; }
section.dark .conf-key i.c { background: var(--brand-light); }
section.dark .conf-key i.r { background: transparent; }
.band-list { list-style: none; margin: 1.2rem 0; max-width: 620px; }
.band-list li { position: relative; padding: .55rem 0 .55rem 1.6rem; border-top: 1px solid rgba(255,255,255,.22); color: #E7E2DC; }
.band-list li::before { content: ''; position: absolute; left: 0; top: 1.45rem; width: 10px; height: 1.5px; background: #fff; }
.band-list strong { color: #fff; font-weight: 600; }

/* Two dark sections in a row (home: the difference, then counsel under pressure) stay visibly separate */
section.dark + section.crisis { border-top: 1px solid #2b2e31; }

/* Access: the off-limits field diagram (Executive Search) */
.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.6rem; margin-top: 3rem; }
.field-card { background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--granite); padding: 2rem; }
.field-card.us { border-top-color: var(--brand); }
.field-card figcaption span { display: block; font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--granite); margin-bottom: .4rem; }
.field-card.us figcaption span { color: var(--brand); }
.field-card figcaption strong { display: block; font-family: var(--serif); font-weight: 500; font-size: 1.6rem; line-height: 1.2; margin-bottom: 1.6rem; }
.field-card svg { width: 100%; height: auto; display: block; }
.field-card .f-on { fill: var(--black); }
.field-card.us .f-on { fill: var(--brand); }
.field-card .f-off { fill: var(--black); stroke: transparent; transition: fill .7s, stroke .7s; }
.in .field-card .f-off { fill: #fff; stroke: var(--mist); }
.field-card dl { margin-top: 1.6rem; border-top: 1px solid var(--line); }
.field-card dt { font-size: 11.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--granite); padding-top: .9rem; }
.field-card dd { font-size: 15px; padding: .2rem 0 .9rem; border-bottom: 1px solid var(--line); }
.field-card dd:last-child { border-bottom: 0; padding-bottom: 0; }
.field-key { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.4rem; margin-top: 1.4rem; font-size: 13px; color: var(--granite); }
.field-key span { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: -.8rem; vertical-align: middle; }
.field-key .k-on { background: var(--black); }
.field-key .k-us { background: var(--brand); margin-left: .45rem; }
.field-key .k-off { background: #fff; border: 1px solid var(--mist); }
.field-key em { font-style: normal; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; border: 1px solid var(--line); padding: .1rem .5rem; }
@media (max-width: 960px) { .field-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .field-card { padding: 1.4rem; } }
@media (prefers-reduced-motion: reduce) { .field-card .f-off { transition: none; } }

/* Executive Search: photographic page head, and images beside text */
.photo-head { padding: 6rem 0 5.5rem; }
.photo-head::before { content: ''; position: absolute; inset: 0; background: center / cover no-repeat; filter: grayscale(1); }
.photo-head::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14,15,17,.92) 0%, rgba(14,15,17,.78) 50%, rgba(14,15,17,.45) 100%); }
.photo-head .wrap { position: relative; z-index: 2; }
.search-head::before { background-image: url('../assets/img/search-grid.jpg'); }
.photo-head .breadcrumb { color: #c9cdd0; }
.photo-head .breadcrumb a { color: var(--brand-light); }
.img-split { display: grid; grid-template-columns: .8fr 1.2fr; gap: 4.5rem; align-items: center; }
.img-split.flip { grid-template-columns: 1.2fr .8fr; margin-bottom: 3.5rem; }
.img-split h2 { margin-bottom: 1.2rem; }
.side-img img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; filter: grayscale(1); }
.side-img.wide img { aspect-ratio: 16 / 11; object-position: 50% 45%; }
@media (max-width: 960px) {
    .img-split, .img-split.flip { grid-template-columns: 1fr; gap: 2.4rem; }
    .img-split.flip .side-img { order: -1; }
    .side-img img { aspect-ratio: 3 / 2; }
}

/* Advisory, "Counsel, in confidence.": relationship timeline */
.rel-wrap { margin-top: 4.5rem; padding-top: 3rem; border-top: 1px solid var(--line); }
.rel-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rel-svg { display: block; width: 100%; min-width: 760px; height: auto; overflow: visible; }
.rel-svg .rel-lane { font: 600 12px var(--sans); letter-spacing: .18em; fill: var(--granite); }
.rel-svg .rel-lane.us { fill: var(--brand); }
.rel-svg .rel-small { font: 600 9.5px var(--sans); letter-spacing: .16em; fill: var(--glacier); }
.rel-svg .rel-lbl { font: 600 10.5px var(--sans); letter-spacing: .14em; fill: var(--black); opacity: 0; transition: opacity .6s; }
.rel-svg .rel-base { stroke: var(--mist); stroke-width: 1; stroke-dasharray: 3 6; }
.rel-svg .rel-proj { stroke: var(--glacier); stroke-width: 6; stroke-linecap: round; }
.rel-svg .rel-line { stroke: var(--brand); stroke-width: 3; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.6s ease-out .2s; }
.rel-svg .rel-tie { stroke: var(--glacier); stroke-width: 1; stroke-dasharray: 2 4; opacity: 0; transition: opacity .6s; }
.rel-svg .rel-miss { fill: #fff; stroke: var(--granite); stroke-width: 1.2; opacity: 0; transition: opacity .6s; }
.rel-svg .rel-mark { fill: var(--brand); opacity: 0; transform-box: fill-box; transform-origin: center; transform: scale(.3); transition: opacity .5s, transform .5s cubic-bezier(.2,.9,.3,1.4); }
.in .rel-svg .rel-line { stroke-dashoffset: 0; }
.in .rel-svg .rel-lbl, .in .rel-svg .rel-tie, .in .rel-svg .rel-miss { opacity: 1; }
.in .rel-svg .rel-mark { opacity: 1; transform: none; }
.rel-caption { margin-top: 1.6rem; font-family: var(--serif); font-size: clamp(1.3rem, 2.4vw, 1.7rem); color: var(--black); }
@media (prefers-reduced-motion: reduce) {
    .rel-svg .rel-line { stroke-dashoffset: 0; transition: none; }
    .rel-svg .rel-lbl, .rel-svg .rel-tie, .rel-svg .rel-miss, .rel-svg .rel-mark { opacity: 1; transform: none; transition: none; }
}
.rel-svg .rel-small.miss { fill: var(--granite); opacity: 0; transition: opacity .6s; }
.in .rel-svg .rel-small.miss { opacity: 1; }
.net-body.tight { margin-bottom: 0; }
.net-body.tight + .net-body { margin-top: 1.2rem; }
.rel-svg .rel-lane { paint-order: stroke; stroke: #fff; stroke-width: 8px; stroke-linejoin: round; }

/* Insights: featured paper, two-up further reading, article subheadings */
.card.featured { flex-direction: row; }
.card.featured .art { height: auto; min-height: 280px; flex: 1.15; }
.card.featured .body { flex: 1; padding: 2.4rem; justify-content: center; }
.card.featured h3 { font-size: clamp(1.9rem, 3vw, 2.5rem); }
.card.featured p { flex: 0 0 auto; font-size: 16px; }
.insights.two { grid-template-columns: 1fr 1fr; }
.article-body h2 { font-size: clamp(1.6rem, 2.6vw, 2rem); margin: 2.6rem 0 1rem; }
@media (max-width: 960px) {
    .card.featured { flex-direction: column; }
    .card.featured .art { min-height: 180px; flex: none; }
    .card.featured .body { padding: 1.6rem 1.6rem 1.8rem; }
    .insights.two { grid-template-columns: 1fr; }
}
.counsel-img { margin-top: 2.4rem; max-width: 460px; }
.counsel-img img { aspect-ratio: 4 / 5; object-position: 50% 40%; }
@media (max-width: 960px) { .counsel-img { max-width: none; } .counsel-img img { aspect-ratio: 3 / 2; } }
.advisory-head::before { background-image: url('../assets/img/head-advisory.jpg'); background-position: 50% 40%; }
.approach-head::before { background-image: url('../assets/img/head-approach.jpg'); }
.insights-head::before { background-image: url('../assets/img/head-insights.jpg'); }
.about-head::before { background-image: url('../assets/img/head-about.jpg'); background-position: 60% 50%; }

/* =====================================================================
   Palette: warm ink, neutral accent (26 Oct). The Alpenglow orange is retired; stone taupe takes its place. Warm white and stone greys as the base, deep ink navy as the
   anchor in place of black, stone grey for detail, and the Alpenglow orange kept to small touches.
   ===================================================================== */
:root {
    --black: #1B2533; --snow: #F8F6F3; --panel: #F0ECE7; --mist: #D9D3CC; --line: #E7E2DC;
    --granite: #5F5953; --glacier: #A39B93;
    --brand: #6F6458; --brand-dark: #544B42; --brand-light: #CFC7BD;
}
body { background: #FFFEFC; }

/* Labels in stone, not orange, so the accent stays rare */
.eyebrow { color: var(--granite); }
.hero .eyebrow, .crisis .eyebrow, section.dark .eyebrow, .page-head.dark .eyebrow { color: #CFC7BD; }

/* Buttons in ink; the one orange button is the hero's primary call to action */
.btn { background: #1B2533; border-color: #1B2533; }
.btn:hover, .btn:focus-visible { background: #2C3A4E; border-color: #2C3A4E; }
.hero .actions .btn:not(.ghost) { background: var(--brand); border-color: var(--brand); }
.hero .actions .btn:not(.ghost):hover { background: var(--brand-dark); border-color: var(--brand-dark); }
.btn.white { background: #fff; color: #1B2533; border-color: #fff; }

/* Hero: the black-and-white Mont Blanc under an ink wash */
.hero { background: #1B2533; }
.hero-media { filter: grayscale(1); opacity: .8; }
.hero::after { background: linear-gradient(90deg, rgba(27,37,51,.88) 0%, rgba(27,37,51,.55) 50%, rgba(27,37,51,.12) 100%); }

/* Figures in ink on stone */
.stats { background: var(--panel); }
.stat b { color: #1B2533; }

/* The anchor: deep ink for the dark sections, footer and closing band */
.crisis, section.dark { background: linear-gradient(135deg, #1B2533 0%, #25324A 100%); }
section.dark + section.crisis { border-top-color: #33425A; }
.crisis .situations, .crisis .situations li { border-color: #33425A; }
.contact-band { background: #1B2533; }
footer { background: #151D29; }
.legal { border-top-color: #2A3648; }

/* The note: quote in ink, with a fine orange rule */
.note-body .sacred { color: #1B2533; border-left-color: var(--brand); }
.note-body p.eyebrow { color: var(--granite); }
/* Closing band a step lighter than the footer, so the two read as separate */
.contact-band { background: #2A3850; }

/* Across the inner pages */
.page-head .actions .btn:not(.ghost):not(.outline) { background: var(--brand); border-color: var(--brand); }
.page-head .actions .btn:not(.ghost):not(.outline):hover { background: var(--brand-dark); border-color: var(--brand-dark); }
.page-head.dark { background: #1B2533; }
.photo-head::after { background: linear-gradient(90deg, rgba(27,37,51,.92) 0%, rgba(27,37,51,.76) 50%, rgba(27,37,51,.42) 100%); }
.steps li::before, .first-list li::before { color: #1B2533; }
.q.lead { background: #1B2533; }
.q.lead:hover { background: #2C3A4E; }
section.dark .list-lines, section.dark .list-lines li, .situations, .situations li,
.d-fig figcaption, .timeline, .rel-wrap.dark { border-color: #33425A; }
.d-fig { border-color: #33425A; background: #1F2B3C; }
.d-points { background: #33425A; border-color: #33425A; }
.d-points li { background: #1B2533; }
.timeline li::before { background: #1B2533; }
@media (max-width: 960px) { .timeline li { border-top-color: #33425A; } }
.dropdown { border-top-color: #1B2533; }
.dropdown a:hover { color: #1B2533; }
nav > ul > li:hover > a, nav > ul > li:focus-within > a { color: #1B2533; border-bottom-color: var(--brand); }
nav a[aria-current="page"] { color: #1B2533; }

/* =====================================================================
   Boutique pass (26 Oct): quieter, more private. Outline buttons instead of solid blocks,
   hairlines instead of heavy accent bars, no hover lifts, more air between sections.
   ===================================================================== */
body { background: #FBF9F6; }
section.block { padding: 7.5rem 0; }
@media (max-width: 960px) { section.block { padding: 5rem 0; } }
h1, h2, h3 { letter-spacing: 0; }
.eyebrow { letter-spacing: .24em; font-weight: 500; }

/* Navigation: lighter and more spaced */
header.nav { background: #FBF9F6; }
nav > ul { font-size: 14px; font-weight: 400; letter-spacing: .03em; gap: .6rem; }
nav > ul > li:hover > a, nav > ul > li:focus-within > a, nav > ul > li > a[aria-current="page"] { color: #1B2533; border-bottom-color: #1B2533; border-bottom-width: 1px; }
.dropdown { border-top: 1px solid var(--line); box-shadow: 0 10px 30px rgba(27,37,51,.06); }

/* Buttons: thin ink outlines that fill on hover */
.btn, .hero .actions .btn:not(.ghost), .page-head .actions .btn:not(.ghost):not(.outline) {
    background: transparent; color: #1B2533; border: 1px solid #1B2533; font-weight: 500; letter-spacing: .02em;
}
.btn:hover, .btn:focus-visible, .hero .actions .btn:not(.ghost):hover, .page-head .actions .btn:not(.ghost):not(.outline):hover {
    background: #1B2533; border-color: #1B2533; color: #fff;
}
.hero .btn, .hero .actions .btn:not(.ghost), .page-head.dark .btn, .page-head.dark .actions .btn:not(.ghost):not(.outline),
.cta-band .btn, .contact-band .btn, section.dark .btn, .crisis:not(.light) .btn {
    background: transparent; color: #fff; border-color: rgba(255,255,255,.75);
}
.hero .btn:hover, .hero .actions .btn:not(.ghost):hover, .page-head.dark .btn:hover, .page-head.dark .actions .btn:not(.ghost):not(.outline):hover,
.cta-band .btn:hover, .contact-band .btn:hover, section.dark .btn:hover, .crisis:not(.light) .btn:hover {
    background: #fff; color: #1B2533; border-color: #fff;
}
.btn.white { background: transparent; color: #fff; border-color: rgba(255,255,255,.75); }
.btn.white:hover { background: #fff; color: #1B2533; }
.more { font-weight: 500; color: #1B2533; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.more::after { content: none; }
section.dark .more, .crisis:not(.light) .more { color: #fff; }

/* Hairlines in place of accent bars */
.quote, .panel-card, .check-form, .field-card, .field-card.us { border-top: 1px solid var(--line); }
.q::before { display: none; }
.steps li { border-top-width: 1px; }
.steps li:first-child { border-top-color: #1B2533; }
.note-body .sacred, .throughout, .commitment, .d-close { border-left-width: 1px; }
.risk-list li::before, .list-lines li::before { width: 10px; height: 1px; }

/* Cards sit still */
.card:hover { box-shadow: none; transform: none; }
.card .tag { color: var(--granite); }

/* Hero: a softer wash, so the photograph reads as atmosphere rather than drama */
.hero { min-height: 70vh; }
.hero::after { background: linear-gradient(90deg, rgba(27,37,51,.82) 0%, rgba(27,37,51,.5) 50%, rgba(27,37,51,.08) 100%); }

/* Closing band: ink, not a colour block */
.contact-band p, .band-list li { color: #D9D3CC; }
.nav-cta { white-space: nowrap; }

/* Header: pure white with a crisp hairline (26 Oct) */
header.nav { background: #FFFFFF; border-bottom: 1px solid #E7E2DC; }
@media (max-width: 960px) { .mobile-nav { background: #FFFFFF; } }

/* Portrait photograph fills the frame (26 Oct) */
.portrait img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }

/* Mobile Menu button: ink outline to match the header button, not the phone's default blue (3 Nov) */
.menu-btn { -webkit-appearance: none; appearance: none; color: #1B2533; background: transparent; border: 1px solid #1B2533; font: 500 14px var(--sans); letter-spacing: .02em; padding: .55rem 1.1rem; border-radius: 2px; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.menu-btn:hover, .menu-btn:focus-visible, .menu-btn[aria-expanded="true"] { background: #1B2533; color: #fff; }

/* Home hero matched to the inner page headers (3 Nov): fully opaque black-and-white photo, same ink overlay, a touch lighter on the right */
.hero-media { opacity: 1; filter: none; }
.hero::after { background: linear-gradient(90deg, rgba(27,37,51,.92) 0%, rgba(27,37,51,.74) 50%, rgba(27,37,51,.34) 100%); }
