/* Edit these shared tokens to change the visual identity. No external assets. */
:root{--paper:#f7f7ef;--ink:#173c34;--text:#2d413c;--muted:#53655e;--rule:#c8d0c5;--panel:#e9eee5;--accent:#d9ed98;--white:#fff;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:1.5rem}
body{margin:0;background:var(--paper);color:var(--text);font:1rem/1.65 var(--sans);-webkit-font-smoothing:antialiased}
::selection{background:var(--accent);color:var(--ink)}
a{color:inherit;text-underline-offset:.3em;text-decoration-thickness:1px}
a:focus-visible{outline:3px solid var(--ink);outline-offset:6px;border-radius:1px}
.contact a:focus-visible{outline-color:var(--accent)}
main:focus{outline:none}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3,h4{color:var(--ink)}
h2,h3{text-wrap:balance}
em{font-weight:400}
.container{width:min(1280px,calc(100% - 112px));margin-inline:auto}
.skip-link{position:absolute;z-index:10;top:.5rem;left:1rem;padding:.7rem 1rem;background:var(--ink);color:var(--white);transform:translateY(-200%)}
.skip-link:focus{transform:translateY(0);outline:3px solid var(--accent)}


.site-header{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding-block:2rem;border-bottom:1px solid var(--rule)}
.identity{display:flex;flex-direction:column;text-decoration:none;flex-shrink:0}
.name{color:var(--ink);font-size:1.9rem;line-height:1.15;font-weight:650;letter-spacing:-.06em}
.identity-dot{color:#56733a}
.descriptor{font-size:.8125rem;margin-top:.4rem;letter-spacing:.005em}
nav{display:flex;gap:1.8rem;align-items:center;font-size:.875rem}
nav a{text-decoration:none;padding:.65rem 0}
nav a:hover{text-decoration:underline}
nav .nav-contact{display:flex;gap:1.8rem;align-items:center;border:1px solid var(--ink);padding:.6rem 1rem}
nav .nav-contact:hover{background:var(--ink);color:var(--paper);text-decoration:none}
.hero{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);column-gap:5%;padding-top:3.6rem;padding-bottom:3.6rem}
.eyebrow{text-transform:uppercase;font-size:.75rem;letter-spacing:.105em;line-height:1.5;font-weight:600}
h1{font-family:var(--serif);font-size:clamp(3.9rem,6.4vw,6rem);font-weight:400;line-height:1.04;letter-spacing:-.055em}
h1 em{letter-spacing:-.06em}
.hero-intro{align-self:end;border-left:1px solid var(--rule);padding-left:2.3rem;padding-bottom:.2rem;max-width:360px}
.intro-kicker{font-size:1.375rem;line-height:1.4;font-weight:550;letter-spacing:-.025em;color:var(--ink);margin-bottom:1.1rem}
.hero-intro>p:not(.intro-kicker){margin-bottom:.9rem}
.text-link{display:inline-flex;gap:1.8rem;align-items:center;font-size:.875rem;font-weight:600;margin-top:.8rem;padding-bottom:.3rem;text-decoration:none;border-bottom:1px solid var(--ink)}
.text-link:hover{gap:2.2rem}

.section-pad{padding-block:6rem}
.expertise{background:var(--panel)}
.section-head{display:grid;grid-template-columns:1fr 2.15fr;gap:4rem}
.section-label{font-size:.875rem;display:flex;gap:1rem;align-items:baseline;line-height:1.5}
.section-label>span{font-size:.75rem;color:var(--muted)}
h2{font-family:var(--serif);font-size:clamp(2.3rem,3.8vw,3.5rem);font-weight:400;line-height:1.12;letter-spacing:-.04em}
.section-intro{max-width:620px;margin-top:1.5rem;font-size:1.0625rem}
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:3rem;row-gap:2.8rem;margin-top:3.6rem}
.service{display:flex;flex-direction:column;border-top:1px solid #aab8aa;padding-top:1.3rem}
.service-number{font-size:.75rem;color:var(--muted)}
.service h3{min-height:2.7em;font-size:1.2rem;line-height:1.35;letter-spacing:-.025em;font-weight:550;margin:.7rem 0 .9rem}
.service p{font-size:1rem}
.service .service-detail{font-size:.875rem;color:var(--muted);margin-top:auto;padding-top:1.1rem;line-height:1.65}
/* Sector knowledge replaces the former employer history. */
.sector-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:4rem;margin-top:3.5rem}
.financial-expertise{background:var(--panel);padding:2.5rem}
.sector-grid h3{font-family:var(--serif);font-size:2rem;font-weight:400;letter-spacing:-.035em;line-height:1.2;margin-bottom:1.1rem}
.financial-expertise .eyebrow{margin-bottom:1rem}
.sector-fields{list-style:none;padding:0;margin:1.7rem 0}
.sector-fields li{padding:.65rem 0;border-top:1px solid var(--rule);color:var(--ink);font-weight:500}
.sector-fields li:last-child{border-bottom:1px solid var(--rule)}
.sector-context{color:var(--muted);font-size:.875rem;margin-top:1.1rem}
.broader-expertise{display:grid;gap:2rem}
.sector-area{border-top:1px solid var(--rule);padding-top:1.8rem}
.approach{border-top:1px solid var(--rule)}
.engagements{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem;margin-top:3.5rem}
.engagements article{border-top:1px solid var(--rule);padding-top:1.4rem}
.engagement-mark{display:block;font-size:1.8rem;font-weight:300;line-height:1}
.engagements h3{font-family:var(--serif);font-size:1.8rem;font-weight:400;letter-spacing:-.035em;margin:1.2rem 0 .8rem}
.engagements p{font-size:1rem}
.engagement-note{font-size:.875rem;color:var(--muted);margin-top:2.5rem;max-width:740px}
.contact{background:var(--ink);color:var(--paper)}
.contact-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:5rem;align-items:end}
.contact .section-label{color:var(--accent);margin-bottom:2.3rem}
.contact .section-label>span{color:var(--accent)}
.contact h2{color:var(--paper);font-size:clamp(2.8rem,5.1vw,4.6rem)}
.contact h2 em{color:var(--accent)}
.contact-copy>p{font-size:1.0625rem;max-width:430px}
.contact-email{border-top:1px solid #648278;padding-top:1.1rem;margin-top:1.7rem}
.contact-email .eyebrow{color:var(--accent)}
.contact-email p{font-size:1.125rem;margin-top:.5rem;overflow-wrap:anywhere}
.contact-email a{text-underline-offset:.25em}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:2.1rem;font-size:.875rem;color:var(--muted)}
.site-footer>div{display:flex;flex-direction:column}
.footer-name{font-size:1rem;font-weight:600;color:var(--ink)}
.site-footer a{padding:.6rem 0;white-space:nowrap}
@media(min-width:1600px){.hero{padding-top:4.5rem}}
@media(max-width:1100px){.container{width:calc(100% - 64px)}nav{gap:1rem}.hero{grid-template-columns:minmax(0,1.55fr) minmax(240px,1fr);column-gap:2rem}h1{font-size:clamp(3.45rem,6.5vw,5rem)}.hero-intro{padding-left:1.5rem}.section-head{gap:2.5rem;grid-template-columns:1fr 2fr}.sector-grid{gap:2.5rem}.services-grid,.engagements{column-gap:2rem}.contact-grid{gap:3rem}}
@media(max-width:850px){.site-header{align-items:flex-start;flex-direction:column;gap:1.5rem;padding-block:1.5rem}nav{width:100%;justify-content:space-between}.hero{grid-template-columns:1fr;padding-top:2.8rem}h1{font-size:clamp(3.5rem,9.8vw,5.6rem)}.hero-intro{margin-top:2.2rem;padding:0;border:0;max-width:520px}.intro-kicker{font-size:1.25rem}.section-head{grid-template-columns:1fr;gap:1.8rem}.section-pad{padding-block:4rem}.services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sector-grid{grid-template-columns:1fr;gap:2.5rem}.broader-expertise{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.engagements{gap:1.5rem}.engagements h3{font-size:1.55rem}.contact-grid{grid-template-columns:1fr;gap:2rem}.contact h2{font-size:clamp(3rem,7.2vw,4.6rem)}.contact-copy>p{max-width:540px}.contact-email{max-width:540px}}
@media(max-width:560px){.container{width:calc(100% - 40px)}.name{font-size:1.8rem}.descriptor{font-size:.75rem}nav{display:grid;grid-template-columns:1fr 1fr;gap:.3rem 1rem;font-size:.875rem}nav a{padding:.65rem 0}nav .nav-contact{justify-content:space-between;padding:.55rem .75rem}.hero{padding-top:2.4rem;padding-bottom:2.5rem}h1{font-size:clamp(2.55rem,9.3vw,3.4rem);letter-spacing:-.05em}.hero-intro{margin-top:2rem}.section-pad{padding-block:3.2rem}.section-head{gap:1.4rem}h2{font-size:2.15rem}.section-intro{font-size:1rem;margin-top:1.1rem}.services-grid{grid-template-columns:1fr;gap:1.8rem;margin-top:2.3rem}.service{padding-top:1rem}.service h3{min-height:0;font-size:1.2rem;margin:.5rem 0 .7rem}.service p,.engagements p{font-size:1rem}.service .service-detail{font-size:.875rem}.sector-grid{margin-top:2rem;gap:2rem}.financial-expertise{padding:1.5rem}.sector-grid h3{font-size:1.8rem}.broader-expertise{grid-template-columns:1fr;gap:2rem}.engagements{grid-template-columns:1fr;gap:1.8rem;margin-top:2.3rem}.engagements article{position:relative;padding-right:2rem}.engagement-mark{position:absolute;right:0;top:1.5rem}.engagements h3{font-size:1.8rem;margin:0 0 .7rem}.engagement-note{margin-top:1.8rem;font-size:1rem}.contact .section-label{margin-bottom:1.6rem}.contact h2{font-size:2.7rem}.contact-grid{gap:1.8rem}.site-footer{flex-wrap:wrap;gap:1rem;padding-block:1.7rem}.site-footer>div{width:100%}}
/* Framed portrait; keep the introduction full-width on smaller screens. */
.hero{grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);column-gap:7%;align-items:start}
.hero-heading{grid-column:1;grid-row:1}
.hero h1{font-size:clamp(3.5rem,5.7vw,5.4rem)}
.hero-intro{grid-column:1;grid-row:2;align-self:start;border:0;padding:0;max-width:610px;margin-top:2rem}
.hero-portrait{grid-column:2;grid-row:1 / 3;margin:0;align-self:center;background:var(--paper);padding:9px;border:2px solid var(--ink);border-radius:50%;width:100%;max-width:420px;justify-self:end}
.hero-portrait img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;object-position:center 24%;border-radius:50%;background:var(--panel)}
@media(max-width:900px){
  .hero{grid-template-columns:1fr;gap:0}
  .hero-heading{grid-column:1;grid-row:1}
  .hero h1{font-size:clamp(3.5rem,8vw,4.5rem)}
  .hero-portrait{grid-column:1;grid-row:2;width:240px;margin-top:2rem;justify-self:start;align-self:start;padding:7px}
  .hero-intro{grid-column:1;grid-row:3;max-width:100%;margin-top:1.6rem}
}
@media(max-width:560px){
  .hero h1{font-size:clamp(2.55rem,9.3vw,3.4rem)}
  .hero-portrait{width:210px;margin-top:1.6rem;padding:6px}
}
@media print{.hero-portrait{width:42mm;float:right;margin:0 0 5mm 7mm}.hero h1{font-size:36pt}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Print has its own flow: do not fragment cards inside screen grids. */
@media print{
  @page{margin:16mm}
  html{scroll-behavior:auto}
  body{background:white;font-size:11pt;line-height:1.5}
  .container{width:100%;max-width:none}

  .site-header{display:block;padding-block:6mm}
  .site-header nav,.skip-link,.text-link,.site-footer>a{display:none}
  .hero,.section-head,.services-grid,.sector-grid,.broader-expertise,.engagements,.contact-grid{display:block}
  .hero{padding-top:8mm}
  h1{font-size:36pt}
  h2,.contact h2{font-size:25pt}
  .hero-intro{max-width:none;border:0;padding:0;margin-top:6mm}

  .section-pad{padding-block:7mm}
  .section-label{margin-bottom:4mm}
  .section-intro{max-width:none;margin-top:4mm}
  .services-grid,.sector-grid,.engagements{margin-top:6mm}
  .expertise,.experience{break-before:page;page-break-before:always}
  .expertise{background:white;margin-top:0}
  .service,.sector-area,.engagements article{display:block;margin:0 0 6mm;padding-top:4mm}
  .service h3{min-height:0;font-size:13pt;margin:2mm 0}
  .service p,.sector-grid p,.engagements p{font-size:11pt}
  .service .service-detail,.sector-context{font-size:10pt;margin-top:2mm;padding-top:0}
  .financial-expertise{padding:6mm;margin-bottom:6mm}
  .sector-grid h3,.engagements h3{font-size:19pt}
  .sector-fields{margin:4mm 0}
  .sector-fields li{padding-block:2mm}
  .engagement-mark{position:static;font-size:16pt;margin-bottom:2mm}
  .engagements h3{margin:2mm 0}
  .contact{background:white;color:var(--ink)}
  .contact h2,.contact h2 em,.contact .section-label,.contact .section-label>span,.contact-email .eyebrow{color:var(--ink)}
  .contact-copy{margin-top:4mm}
  .contact-copy>p,.contact-email{max-width:none}
  .site-footer{display:block;padding-block:5mm}
  /* Native block flow plus both modern and legacy pagination hints. */
  article,.financial-expertise,.section-head,.hero,.contact{break-inside:avoid;page-break-inside:avoid}
  h1,h2,h3,.section-label{break-after:avoid;page-break-after:avoid}
  p,li{orphans:3;widows:3}
}

/* Native disclosures keep service copy available without JavaScript. */
.services-grid{align-items:start;row-gap:1.4rem}
details.service{display:block;padding-top:0}
.service summary{position:relative;list-style:none;cursor:pointer;padding:1rem 2.6rem 1rem 0;min-height:64px}
.service summary::-webkit-details-marker{display:none}
.service summary::marker{content:""}
.service summary:hover h3{text-decoration:underline;text-underline-offset:.22em}
.service summary:focus-visible{outline:3px solid var(--ink);outline-offset:5px;border-radius:2px}
.service summary h3{min-height:0;margin:.45rem 0 0}
.service-toggle{position:absolute;right:0;top:1.35rem;width:26px;height:26px;border:1px solid var(--ink);border-radius:50%}
.service-toggle::before,.service-toggle::after{content:"";position:absolute;background:var(--ink);left:7px;right:7px;top:11px;height:1px}
.service-toggle::after{transform:rotate(90deg)}
.service[open] .service-toggle::after{display:none}
.service-content{padding:.2rem 0 1rem}
@media(max-width:560px){.services-grid{gap:0}.service summary{padding-block:1rem}.service summary h3{font-size:1.2rem}.service-content{padding-bottom:1.5rem}}
@media print{.service-toggle{display:none}.service summary{padding:0;min-height:0}.service-content{display:block!important}.service::details-content{content-visibility:visible;display:block}.service summary h3{font-size:13pt}}

/* Only the single-column phone view uses disclosures. */
.services-mobile{display:none}
.services-desktop{align-items:stretch;row-gap:2.8rem}
.services-desktop .service{display:flex;flex-direction:column;padding-top:1.3rem}
.services-desktop .service h3{min-height:2.7em}
@media screen and (max-width:560px){.services-desktop{display:none}.services-mobile{display:grid}}
@media print{.services-mobile{display:none}.services-desktop{display:block}}
