/* V3: editorial layouts, purposeful photography and accessible service discovery. */
:root { --stone:#59635c; --gutter:clamp(22px,5.5vw,88px); }
html { scroll-padding-top:120px; }
[hidden] { display:none !important; }
.header { position:sticky; top:0; box-shadow:0 1px 0 var(--line); }
.nav-row { min-height:100px; }
.brand img { width:150px; }
.brand { padding:12px 0; }
.nav a { font-size:15px; letter-spacing:0; }
.nav .button { font-size:14px; }
.button { font-size:16px; padding:15px 25px; gap:20px; min-height:54px; }
.button:hover { transform:none; }
.text-link { font-size:16px; }
.eyebrow { font-size:12px; letter-spacing:.12em; }
:focus-visible { outline:3px solid var(--fern); outline-offset:5px; }
.flagship :focus-visible,.closing-cta :focus-visible { outline-color:var(--paper); }
.section { padding-block:100px; }
.home-hero { height:650px; min-height:0; background:var(--paper); }
.hero-picture { position:absolute; inset:0 auto 0 0; width:53%; overflow:hidden; }
.home-hero-image { position:static; width:100%; height:100%; object-fit:cover; object-position:32% center; }
.hero-inner { justify-content:flex-end; padding-left:0; }
.hero-panel { width:45%; padding:30px 0 30px 35px; margin:0; color:var(--ink); background:transparent; }
.hero-panel .eyebrow { color:var(--fern); margin-bottom:26px; font-size:12px; }
.hero-panel h1 { font:400 clamp(54px,4.9vw,76px)/1.04 var(--serif); letter-spacing:-.04em; margin:0 0 24px; }
.hero-panel h1 em { color:var(--fern); font-weight:400; display:block; }
.hero-description { font-size:18px; line-height:1.65; max-width:385px; margin:0 0 28px; }
.hero-panel .button { width:auto; }
.hero-secondary { display:block; width:fit-content; font-size:15px; color:var(--fern); padding-block:15px 4px; border-bottom:1px solid transparent; }
.hero-secondary:hover { border-color:var(--fern); }
.hero-small { text-align:left; font-size:12px; letter-spacing:0; color:var(--stone); margin:22px 0 0; }
.credibility-inner { padding-block:27px; }
.credibility-inner>span { font-size:22px; }
.credibility-inner p { gap:12px; font-size:14px; }
.credibility-inner strong { font-size:30px; }
.personal-intro { grid-template-columns:.88fr 1.12fr; gap:12%; padding-block:110px; }
.intro-photo img { height:550px; object-position:50% 30%; }
.photo-footnote { font-size:19px; padding-top:16px; }
.intro-story .heading { font-size:clamp(48px,5vw,72px); }
.intro-story .intro-standfirst { font-size:28px; line-height:1.3; }
.intro-story>p:not(.eyebrow):not(.intro-standfirst) { font-size:18px; line-height:1.7; }
.audience-section { background:var(--cloud); }
.audience-tabs { display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--fern); gap:4px; }
.audience-tabs a { min-height:62px; display:flex; justify-content:center; align-items:center; text-align:center; padding:13px 16px; font-size:17px; border:1px solid transparent; border-bottom:0; }
.audience-tabs a:hover { background:rgba(63,122,92,.07); }
.audience-tabs a[aria-selected=true] { background:var(--fern); color:var(--paper); }
.audience-panel { display:grid; grid-template-columns:1fr 1fr; gap:12%; padding:48px; background:var(--paper); min-height:360px; }
.audience-panel+.audience-panel { border-top:1px solid var(--line); }
.audience-panel .eyebrow { color:var(--fern); margin-bottom:20px; }
.audience-panel h3 { font:400 clamp(32px,3.2vw,46px)/1.08 var(--serif); letter-spacing:-.025em; margin:0 0 20px; }
.audience-panel p:not(.eyebrow):not(.micro) { font-size:17px; max-width:450px; margin:0 0 24px; }
.audience-topics { padding-top:5px; }
.audience-topics ul { margin:0; padding:0; list-style:none; }
.audience-topics li { border-top:1px solid var(--line); padding:17px 0; display:flex; gap:20px; font-size:17px; }
.audience-topics li span { color:var(--fern); font-size:13px; padding-top:3px; }
.audience-topics .micro { font-size:14px; margin-top:22px; }
.flagship { padding-block:95px; }
.flagship-inner { grid-template-columns:1fr 1fr; gap:8%; }
.flagship h2 { font-size:clamp(40px,4vw,60px); line-height:1.08; }
.flagship-photo img { height:550px; object-position:48% center; }
.photo-note { left:-25px; bottom:30px; padding:24px 30px; font-size:32px; }
.flagship-small { font-size:14px; }
.support-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.support-card { border-top:1px solid var(--fern); padding:32px 0 0; }
.support-card .eyebrow { color:var(--fern); display:block; }
.support-card h3 { font:400 40px/1.1 var(--serif); margin:0 0 20px; letter-spacing:-.025em; }
.support-card>p { max-width:470px; margin:0 0 24px; }
.pocket { min-height:340px; }
.pocket summary { min-height:340px; padding:24px; }
.pocket h3 { font-size:30px; }
.pocket .card-label,.pocket .card-action { font-size:13px; }
.pocket-answer small { font-size:13px; }
.home-faq { padding-top:100px; }
.faq-grid { gap:10%; }
.faq summary { font-size:18px; line-height:1.45; }
.closing-cta { padding-block:78px; }
.page-hero { border-top:0; padding-block:64px 54px; }
.page-hero h1 { font-size:clamp(48px,5.4vw,80px); }
.page-hero .lead { font-size:19px; }
.story-intro { padding-top:65px; }
.two-col .story-image { height:640px; object-position:center 24%; }
.story-intro .signature { color:var(--fern); }
.prose p { font-size:18px; line-height:1.7; }



.editorial-banner em { color:var(--fern); }


.service-intro { display:grid; grid-template-columns:1.05fr .95fr; gap:8%; padding-block:60px 75px; align-items:center; }
.service-intro h1,.contact-main h1 { font:400 clamp(48px,4.6vw,70px)/1.07 var(--serif); letter-spacing:-.035em; margin:0 0 24px; }
.service-intro h1 em,.contact-main h1 em { font-weight:400; color:var(--fern); }
.service-intro p:not(.eyebrow) { max-width:480px; font-size:19px; line-height:1.6; margin:0 0 28px; }
.service-intro>img { width:100%; height:460px; object-fit:cover; object-position:48% center; }
.service-collection { display:grid; grid-template-columns:1fr 2fr; gap:8%; padding-block:30px 100px; align-items:start; }
.service-guide { position:sticky; top:140px; }
.service-guide h2 { font:400 36px/1.1 var(--serif); letter-spacing:-.025em; margin:0 0 20px; }
.service-guide p:not(.eyebrow) { font-size:17px; margin-bottom:24px; }
.service-disclosure { border-top:1px solid var(--line); scroll-margin-top:120px; }
.service-disclosure:last-child { border-bottom:1px solid var(--line); }
.service-disclosure summary { display:grid; grid-template-columns:32px 1fr 28px; align-items:center; gap:16px; padding:27px 0; cursor:pointer; list-style:none; }
.service-disclosure summary::-webkit-details-marker { display:none; }
.service-index { font-size:14px; color:var(--fern); }
.service-disclosure h2 { font:400 29px/1.16 var(--serif); letter-spacing:-.02em; margin:0; }
.disclosure-icon { display:grid; place-items:center; width:28px; height:28px; border:1px solid var(--line); border-radius:50%; font-size:24px; line-height:1; font-weight:300; }
.service-disclosure[open] .disclosure-icon { transform:rotate(45deg); }
.service-disclosure[open] summary { color:var(--fern); }
.service-expanded { padding:0 0 34px 48px; }
.service-description { font-size:17px; line-height:1.7; margin:0 0 30px; }
.service-facts { display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.service-facts h3 { font:500 12px/1.5 var(--sans); text-transform:uppercase; letter-spacing:.1em; margin:0 0 14px; }
.service-facts ul { list-style:none; padding:0; margin:0 0 20px; }
.service-facts li { border-top:1px solid var(--line); padding:11px 0; font-size:16px; }
.service-facts p { font-size:16px; margin:0 0 24px; }
.contact-landing { display:grid; grid-template-columns:.9fr 1.1fr; gap:10%; align-items:center; padding-block:58px 70px; }
.contact-portrait img { width:100%; height:560px; object-fit:cover; object-position:center 25%; }
.contact-lead { font-size:18px; line-height:1.65; max-width:490px; margin:0 0 28px; }
.contact-main .micro { font-size:14px; margin-top:13px; }
.email-option { display:flex; flex-direction:column; align-items:flex-start; gap:5px; margin-top:28px; }
.email-option span { font-size:14px; color:var(--stone); }
.email-option a { font-size:19px; text-decoration:underline; text-underline-offset:4px; }
.privacy-note { max-width:455px; font-size:13px; }
.contact-expectations { display:grid; grid-template-columns:1fr 1fr; gap:10%; border-top:1px solid var(--line); padding-block:65px; }
.contact-expectations .heading { font-size:40px; }
.contact-expectations .plain-list { margin-top:30px; }
.contact-tail { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-bottom:65px; }
.contact-tail p { font-size:15px; color:var(--stone); }
.contact-tail .contact-social { margin:0; }
.footer { border-top:1px solid var(--line); }
.footer-col .micro { font-size:14px; }
@media(min-width:1700px) { .home-hero { height:710px; }.hero-picture { width:52%; }.home-hero-image { object-position:40% center; } }
@media(max-width:1100px) {
 .nav { gap:20px; }.nav a { font-size:14px; }
 .home-hero { height:610px; }.hero-panel { width:46%; padding-left:22px; }.hero-panel h1 { font-size:56px; }
 .hero-description { font-size:17px; }.hero-panel .button { padding-inline:18px; font-size:15px; }
 .credibility-inner p { display:block; }.credibility-inner strong { display:block; }
 .personal-intro { gap:7%; }.intro-photo img { height:520px; }.intro-story .intro-standfirst { font-size:26px; }
 .audience-panel { padding:36px; gap:7%; }.audience-tabs a { font-size:16px; padding-inline:8px; }
 .flagship-inner { gap:6%; }.flagship-photo img { height:520px; }.flagship h2 { font-size:44px; }
 .service-collection { grid-template-columns:1fr 2fr; gap:5%; }.service-facts { grid-template-columns:1fr; gap:10px; }
 .service-intro>img { height:450px; }.service-guide h2 { font-size:32px; }
 .contact-landing { gap:7%; }.contact-main h1 { font-size:54px; }.contact-portrait img { height:570px; }
}
@media(max-width:800px) {
 html { scroll-padding-top:105px; }.header { position:sticky; }.nav-row { min-height:88px; }.brand img { width:136px; }.nav { top:88px; }.nav a { font-size:17px; }
 .menu-button { min-height:44px; font-size:15px; }.section { padding-block:65px; }
 .home-hero { padding-top:0; height:auto; overflow:hidden; display:flex; flex-direction:column; }
 .hero-picture { position:static; width:100%; height:360px; }
 .home-hero-image { height:100%; object-position:center 22%; }
 .hero-inner { margin-top:0; padding:0 var(--gutter); width:100%; }
 .hero-panel { width:100%; padding:32px 0 36px; text-align:left; }
 .hero-panel h1 { font-size:54px; max-width:580px; }.hero-panel h1 br { display:none; }.hero-panel h1 em { display:inline; }
 .hero-panel .eyebrow { margin-bottom:16px; }.hero-description { max-width:540px; margin:0 0 22px; }
 .hero-panel .button { width:auto; font-size:16px; padding-inline:24px; }.hero-small { margin-top:14px; font-size:13px; }
 .hero-secondary { font-size:15px; padding-top:17px; }
 .credibility-inner { padding-block:24px; gap:12px; }.credibility-inner>span { grid-column:1/-1; font-size:20px; }.credibility-inner>span br { display:none; }.credibility-inner p { font-size:13px; }.credibility-inner strong { font-size:26px; }
 .personal-intro { grid-template-columns:1fr 1fr; gap:6%; align-items:start; }.intro-photo img { height:470px; }.intro-story .heading { font-size:45px; }.intro-story .intro-standfirst { font-size:24px; }.intro-story>p:not(.eyebrow):not(.intro-standfirst) { font-size:16px; }.photo-footnote { font-size:17px; }
 .audience-panel { min-height:0; padding:30px; gap:30px; }.audience-panel h3 { font-size:34px; }.audience-panel p:not(.eyebrow):not(.micro),.audience-topics li { font-size:16px; }.audience-tabs { gap:0; }.audience-tabs a { font-size:15px; }
 .flagship-inner { grid-template-columns:1fr; gap:35px; }.flagship { padding-block:65px; }.flagship h2 { font-size:48px; }.flagship-photo img { height:440px; object-position:center center; }.photo-note { left:18px; bottom:18px; }
 .support-card h3 { font-size:34px; }.support-grid { gap:28px; }
 .home-faq { padding-block:65px; }.page-hero { padding-block:45px; }.page-hero h1 { font-size:52px; }
 
 .two-col .story-image { height:560px; }
 .service-intro { gap:6%; padding-block:45px 55px; }.service-intro h1 { font-size:47px; }.service-intro p:not(.eyebrow) { font-size:17px; }.service-intro>img { height:440px; }
 .service-collection { grid-template-columns:1fr; gap:36px; padding-bottom:65px; }.service-guide { position:static; }.service-guide h2 { font-size:38px; }.service-guide h2 br { display:none; }.service-guide p:not(.eyebrow) { max-width:520px; }.service-facts { grid-template-columns:1fr 1fr; gap:28px; }.service-disclosure { scroll-margin-top:105px; }
 .contact-landing { gap:6%; padding-block:45px; }.contact-main h1 { font-size:46px; }.contact-portrait img { height:570px; }.contact-lead { font-size:17px; }.contact-main .button { font-size:15px; padding-inline:18px; }.email-option a { font-size:17px; }
 .contact-expectations { gap:7%; }.contact-expectations .heading { font-size:34px; }.contact-tail { align-items:flex-start; padding-bottom:45px; }
}
@media(max-width:600px) {
 .hero-picture { height:285px; }.home-hero-image { object-position:center 25%; }.hero-panel { padding-block:26px 30px; }.hero-panel h1 { font-size:46px; margin-bottom:17px; line-height:1.04; }.hero-panel .eyebrow { font-size:11px; letter-spacing:.085em; }.hero-description { font-size:17px; line-height:1.55; }.hero-small { font-size:12px; }
 .personal-intro { grid-template-columns:1fr; gap:35px; }.intro-photo img { height:440px; }.intro-story .heading { font-size:50px; }.intro-story .intro-standfirst { font-size:27px; }.intro-story>p:not(.eyebrow):not(.intro-standfirst) { font-size:17px; }
 .section-heading { gap:22px; margin-bottom:32px; }.section-heading h2,.heading { font-size:42px; }.section-heading>p { font-size:17px; }
 .audience-tabs { grid-template-columns:1fr 1fr; border:1px solid var(--line); gap:0; }.audience-tabs a { min-height:52px; font-size:15px; border-bottom:1px solid var(--line); }.audience-panel { grid-template-columns:1fr; padding:28px 23px; gap:32px; }.audience-panel h3 { font-size:36px; }.audience-topics .micro { margin-bottom:0; }
 .flagship h2 { font-size:42px; }.flagship-photo img { height:370px; }.photo-note { font-size:27px; padding:20px; }.flagship-small { font-size:13px; }
 .support-grid { grid-template-columns:1fr; gap:40px; }.support-card h3 { font-size:37px; }.support-card { padding-top:26px; }.support-card>p { font-size:17px; }
 .pocket-grid { grid-template-columns:1fr; }.pocket,.pocket summary { min-height:300px; }.pocket h3 { font-size:34px; max-width:290px; }.pocket .bubble { max-width:100%; }.pocket summary { padding:24px; }.pocket-answer { padding:0 24px 24px; }.learning-footer p { font-size:14px; }
 .faq-grid { grid-template-columns:1fr; gap:35px; }.faq summary { font-size:17px; padding-block:22px; }.closing-inner h2 { font-size:42px; }.closing-inner .eyebrow { max-width:290px; margin-inline:auto; }
 .page-hero h1 { font-size:44px; }.page-hero .lead { font-size:18px; }.page-hero .eyebrow { font-size:11px; }.audience-details { gap:24px; }
 .service-intro { grid-template-columns:1fr; padding-block:38px 45px; gap:30px; }.service-intro h1 { font-size:49px; }.service-intro h1 em br { display:none; }.service-intro>img { height:280px; object-position:center 40%; }.service-guide h2 { font-size:35px; }.service-disclosure summary { grid-template-columns:24px 1fr 26px; gap:12px; padding-block:23px; }.service-disclosure h2 { font-size:26px; }.service-expanded { padding-left:0; }.service-facts { grid-template-columns:1fr; gap:12px; }.service-description { font-size:17px; }.service-index { font-size:12px; }
 .contact-landing { grid-template-columns:1fr; padding-block:38px 45px; gap:35px; }.contact-main { grid-row:1; }.contact-main h1 { font-size:49px; }.contact-main h1 em br { display:none; }.contact-main .button { font-size:16px; }.contact-portrait img { height:390px; }.contact-lead { font-size:18px; }.contact-expectations { grid-template-columns:1fr; gap:38px; padding-block:45px; }.contact-expectations .plain-list { margin-bottom:0; }.contact-tail { flex-direction:column; gap:10px; }.contact-tail p { margin-top:0; }
 .two-col .story-image { height:440px; }.story-intro { padding-top:40px; }.prose p { font-size:17px; }.footer { padding-top:50px; }.footer-col a { font-size:15px; }.footer-top { gap:32px 20px; }.footer-bottom { font-size:12px; }
}
@media(max-width:360px) { .hero-panel h1 { font-size:41px; }.hero-panel .button { padding-inline:16px; font-size:15px; }.hero-picture { height:255px; }.section-heading h2,.heading { font-size:38px; }.contact-main h1,.service-intro h1 { font-size:43px; }.contact-main .button { font-size:14px; }.credibility-inner p { font-size:12px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none !important; transition:none !important; } }
@media(prefers-reduced-motion:no-preference) { .audience-panel:not([hidden]) { animation:appear .2s ease; } }
/* Keep the opening promise together instead of isolating “with” on a line. */
.hero-panel h1 em { display:inline; }

/* Context photographs retain their full original frame at every viewport width. */
.editorial-banner {
 display:grid;
 grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);
 align-items:center;
 gap:clamp(30px,5vw,72px);
 margin-top:40px;
}
.editorial-banner img {
 display:block;
 width:100%;
 height:auto;
 object-fit:contain;
}
.editorial-banner>p {
 position:static;
 margin:0;
 padding:0;
 font:400 clamp(28px,3vw,44px)/1.15 var(--serif);
 letter-spacing:-.025em;
}
@media(max-width:900px) {
 .editorial-banner { grid-template-columns:minmax(0,1fr); gap:24px; }
 .editorial-banner>p { font-size:32px; }
}
@media(max-width:600px) {
 .editorial-banner { margin-top:26px; gap:20px; }
 .editorial-banner>p { font-size:28px; }
}
