/* GERMAN RECOVERY DESK / EDITORIAL 03
   Original components, consolidated enhancement layer. No third-party assets.
   1 Tokens  2 Navigation  3 Homepage  4 Detail pages  5 Forms  6 Responsive. */
:root {
  --ink:#172625; --ink-soft:#29443a; --white:#fcfcf8; --paper:#f4f3ed;
  --stone:#e9ede5; --accent:#d1ef80; --muted:#50615a; --line:#c5cec3;
  --dark-muted:#c9d3cd; --dark-line:#53675e;
  --gutter:clamp(20px,5vw,88px); --section-space:clamp(68px,8vw,120px);
  --header-height:88px; --ease:cubic-bezier(.22,1,.36,1);
  --type-section:clamp(42px,4.4vw,68px);
  --type-detail:clamp(32px,3.2vw,46px);
  scroll-padding-top:calc(var(--header-height) + 32px);
}
body { background:var(--white); line-height:1.8; }
.shell { width:min(calc(100% - 2 * var(--gutter)),1320px); }
main:focus { outline:none; }
/* The root owns the sticky-header offset. Do not add it twice on targets. */
section[id], li[id], header[id] { scroll-margin-top:0; }
h1,h2,h3 { text-wrap:balance; }
p { text-wrap:pretty; }
.eyebrow { font-size:11px; line-height:1.65; letter-spacing:.11em; font-weight:600; }
.section-kicker { gap:18px; margin-bottom:32px; }
.section-number { font-size:11px; letter-spacing:.05em; }
.section-kicker .section-number { display:inline-flex; align-items:center; gap:16px; }
.section-kicker .section-number::after { content:''; display:block; width:27px; height:1px; background:currentColor; opacity:.55; }
.heading-grid { grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:8%; }
.heading-grid h2,.scenario-intro h2,.faq-intro h2 { font:400 var(--type-section)/1.08 var(--display); letter-spacing:-.025em; }
.heading-grid > p,.heading-grid > .intro { font-size:16px; line-height:1.85; }
.button { min-height:52px; padding:14px 22px; font-size:13px; gap:30px; transition:background .2s,color .2s,border-color .2s; }
.button span,.text-link > span { transition:transform .25s var(--ease); }
.button:hover > span,.text-link:hover > span { transform:translate(2px,-2px); }
.text-link { font-size:13px; min-height:44px; line-height:1.65; }
.button:focus-visible,.text-link:focus-visible { outline-offset:5px; }
/* 2 / A quiet, consistently sized navigation. */
.site-header { background:var(--white); border-bottom:1px solid var(--line); }
.header-inner { min-height:var(--header-height); gap:28px; }
.wordmark { font-size:17px; letter-spacing:-.04em; }
.wordmark svg { width:33px; height:33px; }
.navigation { gap:28px; font-size:12px; }
.navigation a::after { bottom:5px; height:2px; }
.header-actions { gap:23px; }
.header-contact { min-height:46px; padding:12px 19px; }
.language-switch { gap:0; font-size:11px; }
.language-switch a { min-width:34px; min-height:44px; display:inline-flex; justify-content:center; align-items:center; }
.language-switch span { padding:0 3px; color:var(--muted); }
.menu-toggle { width:44px; min-width:44px; height:44px; }
.skip-link { z-index:100; }
/* 3 / The opening composition: authority, not decoration. */
.editorial-hero { background:var(--ink); color:var(--paper); }
.editorial-hero-top { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-block:24px; border-bottom:1px solid var(--dark-line); }
.editorial-hero-top .eyebrow { color:var(--accent); }
.hero-location { display:flex; align-items:center; gap:28px; color:var(--dark-muted); font-size:11px; line-height:1.6; }
.hero-location > span { color:var(--accent); font-size:20px; }
.editorial-hero-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,.8fr); align-items:center; gap:8%; padding-block:48px 54px; }
.editorial-hero-copy { min-width:0; }
.editorial-hero-copy h1 { font:400 clamp(64px,8vw,122px)/.99 var(--display); letter-spacing:-.035em; text-wrap:initial; }
.editorial-hero-copy h1 > span { display:block; }
.editorial-hero-copy h1 em { display:block; font-size:.82em; line-height:1.13; margin-top:.12em; font-weight:400; letter-spacing:-.035em; color:var(--accent); }
.editorial-hero-description { max-width:540px; margin-top:27px; font-size:16px; line-height:1.85; color:var(--dark-muted); }
.editorial-hero .hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:14px 30px; margin-top:29px; }
.editorial-hero .text-link { color:var(--paper); border-color:#839683; }
.editorial-hero .text-link:hover { color:var(--accent); }
.editorial-hero :focus-visible,.hero-scope :focus-visible { outline-color:var(--accent); }
.editorial-portrait-wrap { position:relative; padding-right:24px; }
.editorial-portrait { margin:0; width:100%; }
.editorial-portrait picture { display:block; }
.editorial-portrait img { width:100%; aspect-ratio:4/4.65; object-fit:cover; object-position:50% 36%; }
.editorial-portrait figcaption { border-top:3px solid var(--accent); padding:17px 0 0; }
.editorial-portrait .portrait-role { color:var(--dark-muted); font-size:11px; letter-spacing:.06em; margin-bottom:5px; }
.editorial-portrait .portrait-name { color:var(--paper); font:400 clamp(24px,2.1vw,32px)/1.15 var(--display); }
.editorial-portrait .portrait-qualification { margin-top:6px; font-size:12px; color:var(--dark-muted); line-height:1.65; }
.editorial-portrait .portrait-meta { display:none; }
.portrait-index { position:absolute; inset:0 0 0 auto; display:flex; flex-direction:column; justify-content:space-between; color:var(--dark-muted); font-size:10px; letter-spacing:.12em; }
.portrait-index > span { writing-mode:vertical-rl; }
.hero-scope { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px; border-top:1px solid var(--dark-line); }
.hero-scope a { display:grid; grid-template-columns:28px minmax(0,1fr) 18px; align-items:center; gap:14px; padding-block:23px; min-height:76px; font-size:12px; line-height:1.6; }
.hero-scope .scope-number { color:var(--accent); font-size:11px; }
.hero-scope a > span:last-child { color:var(--accent); font-size:21px; transition:transform .2s; }
.hero-scope a:hover > span:last-child { transform:translateY(4px); }
.editorial-audience { background:var(--paper); border-bottom:1px solid var(--line); }
.editorial-audience > .shell { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-block:23px; }
.editorial-audience .eyebrow { max-width:180px; }
.audience-list { display:flex; flex-wrap:wrap; align-items:center; gap:13px 30px; font-size:12px; font-weight:500; }
.desk-principle { padding-block:clamp(70px,8.8vw,135px); }
.principle-composition { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr); gap:8%; }
.principle-composition h2 { font:400 var(--type-section)/1.09 var(--display); letter-spacing:-.03em; }
.principle-composition .lead { font-size:17px; line-height:1.85; max-width:460px; }
.principle-composition .text-link { margin-top:24px; }
.expertise-section { background:var(--stone); }
.service-overview { border-top:1px solid #9eaf97; }
.service-preview { display:grid; grid-template-columns:30px minmax(0,1fr) 42px; align-items:start; gap:24px; padding-block:29px; border-bottom:1px solid #b5c4ad; }
.service-preview > div { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); align-items:start; gap:8%; }
.service-preview .service-number { font-size:12px; padding-top:7px; }
.service-preview h3 { font:400 clamp(26px,2.25vw,34px)/1.17 var(--display); text-wrap:pretty; }
.service-preview p { font-size:14px; line-height:1.8; color:var(--muted); }
.service-preview-arrow { width:42px; height:42px; display:grid; place-items:center; border:1px solid #9bad90; font-size:22px; transition:background .2s,color .2s; }
.service-preview:hover h3 { text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:1px; }
.service-preview:hover .service-preview-arrow { color:var(--accent); background:var(--ink); border-color:var(--ink); }
.section-action { display:flex; justify-content:flex-end; margin-top:25px; }
.editorial-process { color:var(--paper); background:#233c33; }
.method-composition { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:10%; }
.method-intro h2 { font:400 var(--type-section)/1.08 var(--display); letter-spacing:-.025em; }
.method-intro > p { color:var(--dark-muted); margin-top:27px; font-size:16px; line-height:1.85; max-width:440px; }
.method-intro .text-link { color:var(--paper); margin-top:22px; border-color:#90a18b; }
.editorial-process .section-number,.editorial-process .eyebrow { color:var(--accent); }
.process-rail { list-style:none; padding:0; margin:0; border-top:1px solid #819783; }
.process-rail > li { border-bottom:1px solid #536d5e; }
.process-rail > li > a { display:grid; grid-template-columns:48px minmax(0,1fr) 24px; align-items:start; gap:24px; padding-block:29px; }
.rail-number { font:400 40px/1 var(--display); color:var(--accent); }
.process-rail h3 { font:400 clamp(25px,2.3vw,33px)/1.2 var(--display); }
.process-rail p { margin-top:12px; font-size:13px; line-height:1.8; color:var(--dark-muted); }
.rail-arrow { color:var(--accent); font-size:22px; }
.process-rail a:hover h3 { text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1px; }
.editorial-process :focus-visible { outline-color:var(--accent); }
.editorial-counsel { background:var(--white); }
.editorial-counsel .counsel-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10%; }
.editorial-counsel .counsel-heading h2 { font:400 clamp(50px,5vw,76px)/1.05 var(--display); letter-spacing:-.03em; }
.editorial-counsel .qualification { font-size:13px; margin-top:24px; }
.editorial-counsel .text-link { margin-top:24px; }
.editorial-counsel .counsel-copy { padding-left:40px; border-left:1px solid var(--line); }
.editorial-counsel .counsel-copy > .lead { font:400 32px/1.3 var(--display); margin-bottom:24px; }
.editorial-counsel .counsel-copy > p:not(.lead) { font-size:15px; line-height:1.85; color:var(--muted); }
.credential-list { margin-top:30px; }
.credential-list > div { display:grid; grid-template-columns:1fr 1fr; gap:22px; padding-block:14px; border-top:1px solid var(--line); }
.credential-list dt { font-size:12px; color:var(--muted); }
.credential-list dd { margin:0; font-size:13px; }
/* Contact is a working destination, not a decorative banner. */
.contact-section { color:var(--paper); background:var(--ink); }
.contact-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:10%; }
.contact-copy h2 { font:400 clamp(48px,5.4vw,80px)/1.06 var(--display); letter-spacing:-.03em; margin-top:22px; }
.contact-copy > p:not(.eyebrow) { color:var(--dark-muted); margin-top:25px; font-size:16px; line-height:1.85; max-width:490px; }
.contact-copy > .button { margin-top:28px; }
.contact-copy > .text-link { display:flex; width:fit-content; margin-top:16px; }
.contact-section .eyebrow { color:var(--accent); }
.contact-details { border-left:1px solid var(--dark-line); padding-left:35px; min-width:0; }
.contact-email { display:flex; align-items:center; gap:15px; min-height:44px; font-size:clamp(17px,1.7vw,24px); line-height:1.75; letter-spacing:-.02em; overflow-wrap:anywhere; margin-top:20px; }
.contact-email > span { flex-shrink:0; }
.contact-phone { display:inline-flex; align-items:center; min-height:44px; font-size:20px; line-height:1.6; margin-top:5px; }
.contact-details address { color:var(--dark-muted); font-size:14px; line-height:1.9; margin-top:25px; }
.contact-personal { font-size:12px; color:var(--dark-muted); margin-top:25px; }
.contact-personal a { display:inline-flex; align-items:center; min-height:44px; font-size:18px; color:var(--paper); overflow-wrap:anywhere; }
.contact-details .contact-note { border-top:1px solid var(--dark-line); padding-top:20px; margin-top:18px; color:var(--dark-muted); font-size:12px; line-height:1.85; }
/* 4 / Each detail page has a purposeful, related composition. */
.page-intro { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:0 8%; padding-block:30px 65px; }
.page-breadcrumb { display:inline-flex; align-items:center; justify-self:start; gap:13px; min-height:44px; font-size:12px; color:var(--muted); margin-bottom:28px; grid-column:1/-1; }
.page-intro > .eyebrow { grid-column:1/-1; margin-bottom:26px; }
.page-intro h1 { font:400 clamp(49px,5.2vw,80px)/1.06 var(--display); letter-spacing:-.03em; }
.page-lead { align-self:end; font-size:16px; line-height:1.85; margin:0; color:var(--muted); }
.expertise-layout { display:grid; grid-template-columns:minmax(220px,.65fr) minmax(0,2fr); gap:8%; align-items:start; border-top:1px solid var(--line); padding-top:36px; }
.service-index { position:sticky; top:calc(var(--header-height) + 28px); display:flex; flex-direction:column; padding:0; gap:0; border:0; min-width:0; }
.service-index > .eyebrow { margin-bottom:22px; }
.service-index a { display:grid; grid-template-columns:24px minmax(0,1fr) 18px; gap:11px; align-items:center; padding-block:15px; border-top:1px solid var(--line); min-height:52px; font-size:13px; line-height:1.55; }
.service-index a > span:first-child { font-size:11px; color:var(--muted); }
.service-index a[aria-current=location] { border-color:var(--ink); color:var(--ink); font-weight:700; }
.index-arrow { justify-self:end; font-size:19px; }
.service-index a:hover { color:#37571f; }
.service-index .index-discuss { display:flex; justify-content:space-between; gap:15px; margin-top:18px; border-top:0; font-size:12px; }
.service-detail-list { min-width:0; }
.service-detail { padding:0 0 50px; margin-bottom:46px; border-bottom:1px solid var(--line); }
.service-detail:last-child { border-bottom:0; }
.service-detail-heading { display:grid; grid-template-columns:30px minmax(0,1fr); gap:20px; margin-bottom:28px; }
.service-detail-heading h2 { font:400 var(--type-detail)/1.12 var(--display); letter-spacing:-.02em; }
.service-detail-heading .section-number { padding-top:12px; }
.service-detail-grid { padding-left:50px; display:grid; grid-template-columns:minmax(0,1fr); gap:24px; }
.service-detail-grid > p { font-size:16px; line-height:1.85; }
.service-detail-grid > div { border-left:2px solid #8da16c; padding-left:22px; }
.service-detail-grid h3 { font-size:12px; line-height:1.7; letter-spacing:.025em; }
.service-detail-grid ul { font-size:14px; line-height:1.85; margin:12px 0 0; padding-left:18px; }
.service-detail-grid li { margin-bottom:5px; }
.service-detail-outcome { margin:26px 0 0 50px; padding:18px 0 0; border:0; border-top:1px solid var(--line); background:transparent; font-size:14px; line-height:1.85; }
.service-detail-outcome strong { display:block; color:var(--muted); font-size:11px; letter-spacing:.07em; margin-bottom:6px; }
.dark-section { background:#233c33; }
.scenario-layout { grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr); gap:9%; }
.scenario-intro > p { font-size:15px; line-height:1.85; }
.scenario-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; }
.scenario-tabs button { min-height:66px; font-size:12px; line-height:1.6; padding:13px 16px; }
.scenario-tabs .tab-index { font-size:11px; }
.scenario-panel { padding-top:33px; }
.scenario-panel h3 { font:400 clamp(33px,3vw,45px)/1.12 var(--display); letter-spacing:-.015em; }
.scenario-block ul,.scenario-output > p { font-size:14px; line-height:1.85; }
.scenario-footnote { font-size:12px; line-height:1.85; }
.scenario-actions { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:20px; }
.checklist-copy { font:inherit; font-size:12px; cursor:pointer; }
.checklist-status { margin-top:12px; font-size:12px; color:var(--accent); }
.checklist-fallback { width:100%; background:var(--white); color:var(--ink); font:13px/1.8 var(--sans); padding:16px; margin-top:18px; border:1px solid var(--line); border-radius:0; resize:vertical; }
html:not(.js) .menu-toggle,html:not(.js) .checklist-copy,html:not(.js) .scenario-tabs { display:none; }
.process-list { display:block; padding:0; margin:0; border-top:1px solid var(--line); }
.process-list > li { display:grid; grid-template-columns:72px minmax(0,1fr); gap:30px; padding-block:39px; border-bottom:1px solid var(--line); }
.process-number { font:400 61px/1 var(--display); color:#557133; }
.process-content { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:12px 8%; }
.process-content h3 { font:400 35px/1.15 var(--display); }
.process-content > p { font-size:16px; line-height:1.85; }
.process-content small { grid-column:2; font-size:12px; color:var(--muted); }
.counsel-section { background:var(--paper); }
.handover-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 8%; margin-top:35px; }
.handover-grid article { border-top:1px solid var(--line); padding-block:26px 33px; }
.handover-grid h3 { font:400 30px/1.18 var(--display); margin-top:17px; }
.handover-grid p { font-size:15px; line-height:1.85; }
.technology-section { background:var(--stone); }
.technology-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10%; align-items:start; }
.technology-grid h2 { font:400 var(--type-section)/1.09 var(--display); letter-spacing:-.025em; }
.technology-body { margin-top:26px; font-size:17px; line-height:1.85; }
.technology-detail { margin-top:20px; font-size:14px; color:var(--muted); line-height:1.85; }
.technology-model { border-block:1px solid #a4b39c; padding-block:27px; }
.technology-model ol { padding:0; list-style:none; margin:27px 0; }
.technology-model li { display:grid; grid-template-columns:44px minmax(0,1fr); gap:23px; position:relative; padding-bottom:28px; }
.technology-model li::before { content:''; position:absolute; top:43px; left:21px; width:1px; bottom:0; background:#98ab8c; }
.technology-model li:last-child::before { display:none; }
.technology-model li:last-child { padding-bottom:0; }
.model-node { display:grid; place-items:center; width:43px; height:43px; font-size:12px; border:1px solid #859b73; background:var(--paper); }
.technology-model li:last-child .model-node { color:var(--accent); background:var(--ink); border-color:var(--ink); }
.technology-model h3 { font:400 28px/1.2 var(--display); padding-top:5px; }
.technology-model li p { font-size:14px; line-height:1.8; color:var(--muted); margin-top:8px; }
.technology-note { border-top:1px solid var(--line); padding-top:21px; font-size:13px; line-height:1.85; }
.faq-layout { grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:10%; }
.faq summary { min-height:64px; padding-block:23px; }
.faq summary h3 { font-size:16px; font-weight:550; line-height:1.7; }
.faq > p { font-size:15px; line-height:1.85; padding-bottom:26px; }
.leadership-hero { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:10%; align-items:center; padding-block:29px 60px; }
.leadership-heading > .eyebrow { margin-bottom:27px; }
.leadership-heading h1 { font:400 clamp(66px,7.1vw,106px)/1.01 var(--display); letter-spacing:-.035em; }
.title-period { color:#607b36; }
.leadership-claim { font-size:22px; line-height:1.6; letter-spacing:-.012em; margin-top:29px; max-width:560px; }
.leadership-name { font-size:15px; font-weight:650; border-top:1px solid var(--line); padding-top:22px; margin-top:30px; }
.leadership-name > span { display:block; font-size:12px; font-weight:400; color:var(--muted); margin-top:6px; }
.leadership-portrait-wrap { padding-left:26px; border-left:1px solid var(--line); }
.leadership-portrait img { width:100%; aspect-ratio:4/4.5; object-fit:cover; object-position:50% 35%; }
.leadership-portrait figcaption { border-top:2px solid #8a9f5f; padding-top:17px; }
.leadership-portrait .portrait-role,.leadership-portrait .portrait-name,.leadership-portrait .portrait-qualification { display:none; }
.leadership-portrait .portrait-meta { border:0; padding:0; margin:0; font-size:12px; color:var(--muted); }
.leadership-responsibility { border-top:1px solid var(--line); }
.leadership-two-col,.leadership-team-grid,.leadership-contact { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10%; }
.leadership-two-col h2,.leadership-team h2,.leadership-contact h2 { font:400 var(--type-section)/1.09 var(--display); letter-spacing:-.025em; }
.leadership-responsibility .lead { font-size:17px; line-height:1.9; color:var(--muted); }
.leadership-team { color:var(--paper); background:#233c33; }
.leadership-team .eyebrow,.leadership-team .section-number { color:var(--accent); }
.leadership-team-intro > p { font-size:16px; line-height:1.9; color:var(--dark-muted); margin-top:26px; }
.leadership-team-intro .team-closing { font-size:14px; }
.team-functions { margin:0; padding:0; list-style:none; border-top:1px solid #819783; }
.team-functions > li { display:grid; grid-template-columns:25px minmax(0,1fr); gap:24px; padding-block:27px; border-bottom:1px solid #536d5e; }
.function-index { color:var(--accent); font-size:12px; padding-top:7px; }
.team-functions h3 { font:400 33px/1.2 var(--display); }
.team-functions p { color:var(--dark-muted); font-size:14px; line-height:1.85; margin-top:12px; }
.leadership-benefits .leadership-two-col > div > p { font-size:16px; line-height:1.85; color:var(--muted); margin-top:25px; }
.benefit-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.benefit-list > li { display:grid; grid-template-columns:25px minmax(0,1fr); gap:22px; padding-block:25px; border-bottom:1px solid var(--line); }
.benefit-list span { font-size:12px; padding-top:5px; color:var(--muted); }
.benefit-list p { font-size:17px; line-height:1.75; }
.leadership-career { background:var(--paper); }
.career-list { margin:0; border-top:1px solid var(--line); }
.career-list > div { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:24px; padding-block:23px; border-bottom:1px solid var(--line); }
.career-list dt { font-size:12px; line-height:1.8; color:var(--muted); }
.career-list dd { margin:0; font-size:15px; line-height:1.85; }
.leadership-contact h2 { margin:23px 0 30px; }
.leadership-contact address { display:flex; flex-direction:column; padding-left:35px; border-left:1px solid var(--line); font-size:15px; line-height:1.85; }
.leadership-contact address > span:nth-of-type(2) { margin-block:17px; color:var(--muted); }
.leadership-contact address a { display:inline-flex; align-items:center; min-height:44px; font-size:18px; overflow-wrap:anywhere; }
.contact-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8%; margin:0; border-top:1px solid var(--line); }
.contact-card { padding-block:35px 40px; }
.contact-card h2 { font:400 37px/1.15 var(--display); }
.contact-card > p:not(.eyebrow) { font-size:15px; line-height:1.85; }
.contact-card .text-link { margin-top:22px; }
.contact-address { display:grid; grid-template-columns:.55fr 1fr 1fr; gap:30px; padding-top:30px; border-top:1px solid var(--line); margin-top:0; }
.contact-address > p:not(.eyebrow) { margin:0; font-size:13px; line-height:1.85; }
.contact-address address { font-size:14px; }
.contact-guidance { margin-top:65px; padding-top:45px; }
.contact-guidance > .briefing-trigger { margin-bottom:45px; }
/* Legal pages are designed for reading, without altering supplied legal notices. */
.legal-main { padding-top:29px; }
.legal-heading h1 { font:400 clamp(53px,6vw,86px)/1.06 var(--display); letter-spacing:-.03em; }
.legal-heading > p:not(.eyebrow) { font-size:16px; max-width:780px; }
.legal-layout { gap:8%; }
.legal-nav { position:sticky; top:calc(var(--header-height) + 25px); }
.legal-nav a { display:flex; align-items:center; padding-block:9px; min-height:44px; font-size:13px; line-height:1.6; }
.legal-content h2 { font:400 32px/1.2 var(--display); }
.legal-content p { font-size:15px; line-height:1.9; }
.legal-content a { text-decoration:underline; text-underline-offset:4px; overflow-wrap:anywhere; }
.error-main h1 { font:400 clamp(50px,6vw,86px)/1.06 var(--display); letter-spacing:-.03em; margin-block:22px; }
.error-main > p:not(.eyebrow) { max-width:640px; margin-bottom:30px; }
.error-main > .text-link { margin-left:25px; }
/* A proper site map and contact block, not a narrow afterthought. */
.site-footer { color:var(--ink); background:var(--paper); border-top:1px solid var(--line); }
.footer-top { display:grid; grid-template-columns:1.3fr .8fr 1fr; gap:7%; padding-block:52px; border:0; }
.footer-brand .wordmark { font-size:23px; gap:17px; }
.footer-brand .wordmark svg { width:43px; height:43px; }
.footer-brand > p { font-size:13px; color:var(--muted); max-width:250px; margin-top:24px; }
.footer-nav { display:flex; flex-direction:column; align-items:stretch; gap:0; color:var(--ink); margin:0; }
.footer-nav > .eyebrow,.footer-location > .eyebrow { margin-bottom:15px; }
.footer-nav a { display:flex; justify-content:space-between; align-items:center; min-height:42px; gap:16px; font-size:13px; }
.footer-nav a > span { font-size:16px; }
.footer-location address { font-size:13px; color:var(--muted); line-height:1.9; margin-bottom:14px; }
.footer-location > a { display:flex; align-items:center; min-height:42px; font-size:13px; overflow-wrap:anywhere; }
.footer-bottom { display:flex; justify-content:space-between; align-items:start; gap:30px; border-top:1px solid var(--line); padding-block:22px; font-size:11px; line-height:1.8; color:var(--muted); }
.footer-bottom > p { max-width:680px; }
.footer-bottom > p > span { display:block; margin-top:5px; }
.footer-bottom nav { display:flex; flex-wrap:wrap; gap:8px 22px; }
.footer-bottom nav a { display:inline-flex; align-items:center; gap:8px; min-height:44px; }
.site-footer a:hover { color:#36561f; }
.site-footer :focus-visible { outline-color:#42602e; }
.site-footer .wordmark svg { color:var(--ink); }
.site-footer .wordmark-period { color:#577038; }
/* 5 / Native, honest, locally prepared enquiry. */
.briefing-dialog { width:min(740px,calc(100% - 32px)); max-height:calc(100svh - 32px); border:1px solid #aabc9f; padding:0; color:var(--ink); background:var(--white); box-shadow:0 24px 90px #10241b40; }
.briefing-dialog::backdrop { background:#10241bd1; }
.dialog-head { position:sticky; top:0; z-index:2; display:flex; align-items:start; justify-content:space-between; gap:24px; padding:28px 32px; background:var(--white); border-bottom:1px solid var(--line); }
.dialog-head h2 { font:400 41px/1.12 var(--display); letter-spacing:-.02em; }
.dialog-head .eyebrow { margin-bottom:12px; }
.dialog-close { width:44px; height:44px; flex-shrink:0; border:1px solid var(--line); background:transparent; color:var(--ink); font-size:28px; line-height:1; }
.dialog-content { padding:26px 32px 32px; }
.dialog-content > p { font-size:14px; line-height:1.8; }
.local-draft-label { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:12px!important; margin-top:16px; }
.local-draft-label > span { width:6px; height:6px; background:#526d31; flex-shrink:0; }
.form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
#briefing-form { margin-top:26px; }
#briefing-form label { display:flex; flex-direction:column; gap:8px; margin-bottom:20px; font-size:13px; font-weight:600; }
#briefing-form label small { font-size:12px; font-weight:400; color:var(--muted); }
#briefing-form input,#briefing-form select,#briefing-form textarea { width:100%; min-height:48px; padding:11px 13px; border:1px solid #819177; border-radius:0; font-size:16px; line-height:1.6; color:var(--ink); background:var(--white); }
#briefing-form textarea { resize:vertical; }
#briefing-form [aria-invalid=true] { border-color:#a33131; outline:2px solid #a33131; outline-offset:1px; }
.character-counter { align-self:end; font-variant-numeric:tabular-nums; }
.form-note { font-size:12px; line-height:1.8; color:var(--muted); }
.form-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:23px; }
.form-status { min-height:0; margin-top:17px; font-size:13px; line-height:1.8; color:var(--ink); }
.briefing-result { border-top:1px solid var(--line); padding-top:23px; margin-top:23px; }
.briefing-result h3 { font:400 28px/1.2 var(--display); margin-bottom:20px; }
/* Motion is opt-in progressive enhancement; no content waits invisibly for JS. */
@view-transition { navigation:auto; }
::view-transition-old(root),::view-transition-new(root) { animation-duration:150ms; }
/* 6 / Responsive compositions, not scaled-down desktop pages. */
@media (max-width:1150px) {
  .navigation { gap:19px; font-size:11px; }
  .header-inner { gap:21px; }
  .header-actions { gap:13px; }
  .editorial-hero-grid { gap:6%; grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr); }
  .editorial-hero-copy h1 { font-size:clamp(66px,8.1vw,95px); }
  .contact-details { padding-left:28px; }
  .contact-email { font-size:18px; }
  .hero-scope { gap:24px; }
  .hero-scope a { gap:9px; font-size:11px; }
}
@media (max-width:999px) {
  :root { --header-height:80px; --gutter:32px; }
  .header-inner { display:grid; grid-template-columns:auto 1fr; }
  .header-actions { grid-column:2; justify-self:end; }
  .header-contact { display:none; }
  .menu-toggle { display:flex; }
  .navigation { grid-column:1/-1; grid-row:2; justify-content:start; flex-wrap:wrap; gap:10px 24px; padding-bottom:20px; font-size:14px; }
  .navigation .nav-mobile-contact { display:flex; }
  .js .navigation { display:none; }
  .js .navigation.is-open { display:flex; }
  .editorial-hero-grid { gap:5%; grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr); padding-block:38px 43px; }
  .editorial-hero-copy h1 { font-size:clamp(61px,8.6vw,82px); }
  .editorial-hero-description { font-size:14px; }
  .editorial-hero .hero-actions { gap:15px; }
  .editorial-portrait-wrap { padding-right:18px; }
  .editorial-portrait .portrait-name { font-size:26px; }
  .editorial-portrait .portrait-qualification { font-size:11px; }
  .editorial-audience > .shell { align-items:start; }
  .audience-list { gap:10px 18px; }
  .principle-composition,.method-composition,.editorial-counsel .counsel-grid,.contact-grid { gap:6%; }
  .service-preview > div { grid-template-columns:1fr; gap:14px; }
  .service-preview p { max-width:520px; }
  .method-intro h2 { font-size:48px; }
  .process-rail > li > a { grid-template-columns:35px minmax(0,1fr) 20px; gap:15px; }
  .rail-number { font-size:33px; }
  .process-rail h3 { font-size:27px; }
  .editorial-counsel .counsel-copy { padding-left:25px; }
  .expertise-layout { grid-template-columns:210px minmax(0,1fr); gap:5%; }
  .service-index a { font-size:12px; }
  .service-detail-heading { gap:13px; grid-template-columns:24px minmax(0,1fr); }
  .service-detail-grid { padding-left:37px; }
  .service-detail-outcome { margin-left:37px; }
  .service-detail-grid > p { font-size:15px; }
  .scenario-layout { grid-template-columns:1fr; gap:36px; }
  .scenario-intro > p { max-width:580px; }
  .process-content { grid-template-columns:1fr; }
  .process-content small { grid-column:1; }
  .leadership-hero { gap:6%; }
  .leadership-heading h1 { font-size:68px; }
  .leadership-claim { font-size:20px; }
  .leadership-two-col,.leadership-team-grid,.leadership-contact,.technology-grid { gap:6%; }
  .career-list > div { grid-template-columns:1fr; gap:7px; }
  .footer-top { grid-template-columns:1fr 1fr; gap:35px; }
  .footer-brand { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:30px; }
  .footer-brand > p { margin-top:0; }
}
@media (max-width:720px) {
  :root { --gutter:24px; --section-space:68px; --type-section:clamp(40px,8.5vw,55px); }
  .header-inner { gap:12px; }
  .wordmark { font-size:15px; gap:10px; }
  .wordmark svg { width:30px; height:30px; }
  .header-actions { gap:6px; }
  .header-contact { display:none; }
  .navigation { gap:0; flex-direction:column; align-items:stretch; padding:12px 0 22px; }
  .navigation a { min-height:50px; font-size:18px; padding:8px 0; border-top:1px solid var(--line); }
  .navigation a::after { display:none; }
  .navigation a[aria-current=page] { font-weight:750; }
  .editorial-hero-top { padding-block:18px; gap:15px; align-items:start; }
  .editorial-hero-top .eyebrow { font-size:10px; }
  .hero-location { font-size:10px; gap:12px; }
  .hero-location > span { display:none; }
  .editorial-hero-grid { display:grid; grid-template-columns:1fr; gap:32px; padding-block:33px; }
  .editorial-hero-copy h1 { font-size:clamp(56px,13.4vw,91px); letter-spacing:-.03em; }
  .editorial-hero-copy h1 em { font-size:.8em; }
  .editorial-hero-description { margin-top:23px; font-size:15px; line-height:1.8; max-width:570px; }
  .editorial-hero .hero-actions { margin-top:25px; gap:15px 23px; }
  .editorial-hero .button { font-size:12px; min-height:49px; padding-inline:19px; }
  .editorial-hero .text-link { font-size:12px; }
  .editorial-portrait-wrap { padding:0; }
  .editorial-portrait { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:24px; align-items:end; }
  .editorial-portrait img { aspect-ratio:4/4.3; object-position:50% 37%; }
  .editorial-portrait figcaption { border:0; padding:0 0 8px; }
  .editorial-portrait .portrait-name { font-size:clamp(25px,5.5vw,36px); }
  .editorial-portrait .portrait-role { font-size:10px; letter-spacing:.04em; }
  .editorial-portrait .portrait-qualification { font-size:11px; margin-top:10px; }
  .portrait-index { display:none; }
  .hero-scope { grid-template-columns:1fr; gap:0; padding-block:10px; }
  .hero-scope a { min-height:48px; padding-block:10px; grid-template-columns:24px minmax(0,1fr) 19px; font-size:12px; }
  .hero-scope a + a { border-top:1px solid #354a40; }
  .editorial-audience > .shell { display:block; padding-block:22px; }
  .editorial-audience .eyebrow { max-width:none; font-size:10px; margin-bottom:14px; }
  .audience-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 16px; font-size:11px; }
  .principle-composition,.heading-grid,.method-composition,.editorial-counsel .counsel-grid,.contact-grid { grid-template-columns:1fr; gap:28px; }
  .principle-composition .lead { font-size:16px; }
  .service-preview { grid-template-columns:23px minmax(0,1fr) 35px; gap:15px; padding-block:25px; }
  .service-preview h3 { font-size:28px; }
  .service-preview p { font-size:14px; }
  .service-preview-arrow { width:35px; height:35px; font-size:20px; }
  .section-action { justify-content:start; }
  .method-intro h2 { font-size:var(--type-section); }
  .process-rail { margin-top:10px; }
  .process-rail > li > a { grid-template-columns:36px minmax(0,1fr) 20px; gap:18px; padding-block:26px; }
  .process-rail h3 { font-size:29px; }
  .process-rail p { font-size:13px; }
  .editorial-counsel .counsel-heading h2 { font-size:57px; }
  .editorial-counsel .counsel-copy { padding:28px 0 0; border-left:0; border-top:1px solid var(--line); }
  .editorial-counsel .counsel-copy > .lead { font-size:30px; }
  .contact-details { padding:28px 0 0; border:0; border-top:1px solid var(--dark-line); }
  .contact-copy h2 { font-size:clamp(46px,9.5vw,66px); }
  .contact-email { font-size:21px; }
  .page-intro { grid-template-columns:1fr; padding-block:23px 39px; }
  .page-breadcrumb { margin-bottom:21px; }
  .page-intro h1 { font-size:clamp(44px,9.3vw,62px); }
  .page-lead { font-size:15px; margin-top:25px; }
  .expertise-layout { grid-template-columns:1fr; gap:37px; padding-top:25px; }
  .service-index { position:static; display:grid; grid-template-columns:1fr 1fr; gap:0 22px; }
  .service-index > .eyebrow { grid-column:1/-1; margin-bottom:17px; }
  .service-index a { font-size:12px; gap:8px; grid-template-columns:19px minmax(0,1fr); }
  .service-index .index-arrow { display:none; }
  .service-index .index-discuss { margin-top:0; border-top:1px solid var(--line); }
  .service-detail { margin-bottom:33px; padding-bottom:34px; }
  .service-detail-heading h2 { font-size:35px; }
  .service-detail-grid { padding-left:0; }
  .service-detail-outcome { margin-left:0; }
  .scenario-tabs button { padding:12px 8px; font-size:12px; }
  .scenario-panel h3 { font-size:35px; }
  .scenario-grid { grid-template-columns:1fr; gap:23px; }
  .process-list > li { grid-template-columns:37px minmax(0,1fr); gap:22px; padding-block:29px; }
  .process-number { font-size:43px; }
  .process-content h3 { font-size:31px; }
  .process-content > p { font-size:15px; }
  .handover-grid { grid-template-columns:1fr; }
  .technology-grid,.faq-layout { grid-template-columns:1fr; gap:33px; }
  .technology-grid h2 { font-size:var(--type-section); }
  .leadership-hero { grid-template-columns:1fr; gap:30px; padding-block:24px 40px; }
  .leadership-heading h1 { font-size:clamp(60px,12vw,86px); }
  .leadership-heading > .eyebrow { margin-bottom:22px; }
  .leadership-claim { font-size:20px; margin-top:25px; }
  .leadership-portrait-wrap { padding:0; border:0; max-width:560px; }
  .leadership-portrait img { aspect-ratio:4/3.7; }
  .leadership-two-col,.leadership-team-grid,.leadership-contact { grid-template-columns:1fr; gap:30px; }
  .leadership-responsibility .lead { font-size:16px; }
  .team-functions h3 { font-size:31px; }
  .team-functions > li { gap:20px; }
  .leadership-contact address { padding:27px 0 0; border-left:0; border-top:1px solid var(--line); }
  .contact-cards { grid-template-columns:1fr; gap:0; }
  .contact-card + .contact-card { border-top:1px solid var(--line); }
  .contact-card h2 { font-size:34px; }
  .contact-address { display:block; }
  .contact-address address { margin-block:16px; }
  .contact-guidance { margin-top:40px; padding-top:35px; }
  .legal-layout { grid-template-columns:1fr; }
  .legal-nav { position:static; }
  .legal-content h2 { font-size:30px; }
  .footer-top { grid-template-columns:1fr; gap:32px; padding-block:36px; }
  .footer-brand { display:block; grid-column:auto; }
  .footer-brand > p { margin-top:18px; max-width:none; }
  .footer-nav { display:grid; grid-template-columns:1fr 1fr; gap:0 32px; }
  .footer-nav > .eyebrow { grid-column:1/-1; }
  .footer-location { border-top:1px solid var(--line); padding-top:26px; }
  .footer-bottom { display:block; font-size:11px; }
  .footer-bottom nav { margin-top:15px; }
  .dialog-head,.dialog-content { padding:23px; }
  .dialog-head h2 { font-size:35px; }
  .form-row { grid-template-columns:1fr; gap:0; }
}
@media (max-width:380px) {
  :root { --gutter:18px; --header-height:76px; }
  .header-inner { gap:7px; }
  .wordmark { font-size:13px; gap:8px; }
  .wordmark svg { width:27px; height:27px; }
  .header-actions { gap:2px; }
  .language-switch a { min-width:28px; }
  .language-switch span { padding:0 1px; }
  .editorial-hero-copy h1 { font-size:55px; }
  .editorial-hero-top { flex-direction:column; gap:6px; }
  .hero-location { font-size:11px; }
  .editorial-hero .hero-actions { gap:10px 20px; }
  .editorial-portrait { gap:16px; }
  .editorial-portrait .portrait-name { font-size:25px; }
  .editorial-portrait .portrait-role { font-size:10px; }
  .service-preview { grid-template-columns:19px minmax(0,1fr) 30px; gap:12px; }
  .service-preview h3 { font-size:26px; }
  .service-preview-arrow { width:30px; height:32px; }
  .service-index { gap:0 16px; }
  .service-detail-heading h2 { font-size:32px; }
  .contact-email,.contact-personal a { font-size:17px; }
  .leadership-heading h1 { font-size:59px; }
  .page-intro h1 { font-size:43px; }
  .briefing-dialog { width:calc(100% - 16px); max-height:calc(100svh - 16px); }
  .dialog-head,.dialog-content { padding:20px; }
  .dialog-head h2 { font-size:31px; }
  .form-actions > .button { width:100%; }
}
@media (prefers-reduced-motion:reduce) {
  :root { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  ::view-transition-old(root),::view-transition-new(root) { animation:none; }
}
@media print {
  :root { --gutter:0px; --section-space:28px; }
  .site-header,.site-footer,.hero-scope,.hero-actions,.portrait-index,.service-index,.briefing-trigger,.checklist-copy { display:none!important; }
  body,body * { color:#111!important; background:transparent!important; box-shadow:none!important; text-shadow:none!important; }
  .shell { width:100%; }
  body,.editorial-hero,.editorial-process,.leadership-team,.contact-section,.dark-section { background:white; color:#111; }
  .editorial-hero-top { display:none; }
  .editorial-hero-grid,.leadership-hero { grid-template-columns:1.5fr .5fr; padding-block:20px; }
  .editorial-hero-copy h1,.leadership-heading h1 { font-size:37pt; }
  .editorial-hero-copy h1 em,.editorial-portrait .portrait-name,.editorial-portrait .portrait-role,.editorial-portrait .portrait-qualification { color:#111; }
  .editorial-hero-description,.process-rail p,.team-functions p,.leadership-team-intro > p { color:#333; }
  .editorial-portrait { display:block; }
  .editorial-portrait img { aspect-ratio:1/1; }
  .editorial-portrait .portrait-name { font-size:17pt; }
  .editorial-portrait figcaption { padding-top:10px; }
  .method-composition,.technology-grid,.leadership-two-col,.leadership-team-grid { grid-template-columns:1fr 1fr; gap:30px; }
  h2,.heading-grid h2,.principle-composition h2,.method-intro h2 { font-size:26pt; }
  .expertise-layout { display:block; }
  .service-preview,.service-detail,.process-rail > li,.team-functions > li,.career-list > div { break-inside:avoid; }
  .rail-number,.rail-arrow { color:#333; }
  .leadership-claim { font-size:14pt; }
  .legal-nav { display:none; }
  .legal-layout { display:block; }
}
