:root {
 --scope-black: #131716; --scope-white: #ffffff; --scope-emerald: #006b4e; --scope-grey: #4c5652; --scope-rule: #6e7973;
 --scope-head: "Schibsted Grotesk", Arial, sans-serif; --scope-prose: "Newsreader", Georgia, serif;
 --scope-label: .875rem; --scope-copy: 1.25rem; --scope-sub: clamp(1.75rem,3vw,2.5rem); --scope-large: clamp(2.6rem,5.4vw,5rem);
 --scope-space: 16px; --scope-radius: 0; --scope-shadow: none;
 --scope-space-1: 16px; --scope-space-2: 24px; --scope-space-3: 32px; --scope-space-4: 40px;
 --scope-space-5: 48px; --scope-space-6: 56px; --scope-space-7: 64px; --scope-space-8: 80px;
 --scope-third: 1.3rem; --scope-leading: 1.55; --scope-leading-head: 1.1;
}
* { box-sizing: border-box; }
body { margin: 0; color: var(--scope-black); background: var(--scope-white); font: var(--scope-copy)/1.55 var(--scope-prose); }
img,svg { max-width: 100%; height: auto; }
a { color: var(--scope-emerald); text-underline-offset: .2em; }
:focus-visible { outline: 3px solid var(--scope-emerald); outline-offset: 4px; }
h1,h2,h3 { font-family: var(--scope-head); font-weight: 500; line-height: 1.1; margin: 0 0 24px; letter-spacing: -.035em; }
h1 { font-size: var(--scope-large); max-width: 880px; }
h2 { font-size: var(--scope-sub); }
h3 { font-size: 1.3rem; }
p { margin: 0 0 24px; }
.firm-skip { position: absolute; top: -100px; left: 24px; z-index: 9; background: white; padding: 12px; font-family: var(--scope-head); }
.firm-skip:focus { top: 24px; }
.firm-head { padding: 32px 48px; border-bottom: 1px solid var(--scope-black); display: flex; gap: 32px; justify-content: space-between; align-items: center; }
.firm-head__logo { display: block; width: 300px; }
.firm-head__language { font: var(--scope-label)/1.5 var(--scope-head); display: flex; gap: 16px; }
.firm-head__language a { padding: 8px; }
.firm-head__language a[aria-current] { color: var(--scope-black); text-decoration-thickness: 3px; }
.firm-layout { display: grid; grid-template-columns: 220px minmax(0,1fr); max-width: 1440px; margin: auto; }
.firm-side { padding: 48px 24px 48px 48px; font: var(--scope-label)/1.6 var(--scope-head); }
.firm-side__list { list-style: none; padding: 0; margin: 0; }
.firm-side__list li { margin-bottom: 20px; }
.firm-side__link { display: block; padding: 8px 0; color: var(--scope-black); }
.firm-side__link[aria-current] { border-left: 3px solid var(--scope-emerald); padding-left: 12px; }
.firm-side__note { color: var(--scope-grey); margin-top: 48px; font-size: .8rem; }
.firm-content { padding: var(--scope-space-5) var(--scope-space-7) var(--scope-space-8) var(--scope-space-4); min-width: 0; }
.firm-crumb { font: var(--scope-label)/1.5 var(--scope-head); margin-bottom: 48px; }
.firm-hero { padding-bottom: 56px; }
.firm-hero__eyebrow { font: .8rem/1.5 var(--scope-head); letter-spacing: .12em; text-transform: uppercase; color: var(--scope-emerald); margin-bottom: 24px; }
.firm-hero__lead { max-width: 640px; font-size: 1.5rem; }
.firm-hero__action { display: inline-block; background: var(--scope-emerald); color: white; padding: 14px 24px; font: 500 1rem/1.5 var(--scope-head); min-height: 48px; text-decoration: none; }
.firm-hero__action:hover { text-decoration: underline; }
.firm-section { border-top: 1px solid var(--scope-black); padding: 40px 0; }
.firm-section__columns { display: grid; grid-template-columns: 1fr 1.4fr; gap: 40px; }
.firm-section__copy { max-width: 700px; }
.firm-note { border: 1px solid var(--scope-rule); padding: 24px; font-size: 1.1rem; margin: 24px 0; }
.firm-note__title { font: 600 .875rem var(--scope-head); margin-bottom: 12px; }
.firm-faq { max-width: 700px; }
.firm-faq__item { padding: 20px 0; border-bottom: 1px solid var(--scope-rule); }
.firm-faq__question { font: 500 1rem/1.5 var(--scope-head); min-height: 44px; cursor: pointer; }
.firm-faq__item p { margin: 12px 0 0; }
.firm-request { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; max-width: 850px; }
.firm-request__group { min-width: 0; margin: 0; border: 0; padding: 0; }
.firm-request__legend { font: 600 1.125rem var(--scope-head); padding-bottom: 24px; }
.firm-request__field { margin-bottom: 20px; }
.firm-request__label { display: block; font: .875rem/1.5 var(--scope-head); margin-bottom: 8px; }
.firm-request__input { width: 100%; min-width: 0; min-height: 48px; padding: 12px; color: var(--scope-black); background: white; border: 1px solid var(--scope-rule); border-radius: var(--scope-radius); font: 1rem var(--scope-head); }
.firm-request__bottom { grid-column: 1 / -1; }
.firm-request__consent { display: grid; grid-template-columns: 20px 1fr; gap: 16px; font: .875rem/1.6 var(--scope-head); margin-bottom: 24px; }
.firm-request__consent input { width: 20px; height: 20px; accent-color: var(--scope-emerald); }
.firm-request__submit { cursor: pointer; border: 0; min-height: 48px; padding: 14px 24px; background: var(--scope-emerald); color: white; font: 500 1rem/1.5 var(--scope-head); }
.firm-request__status { margin-top: 24px; padding: 24px; border: 2px solid var(--scope-emerald); }
[hidden] { display: none !important; }
.firm-publication { max-width: 720px; }
.firm-publication__meta { font: .875rem/1.5 var(--scope-head); color: var(--scope-grey); margin-bottom: 40px; }
.firm-end { border-top: 1px solid var(--scope-black); padding: 32px 48px; font: .875rem/1.6 var(--scope-head); display: grid; grid-template-columns: 1fr auto; gap: 32px; }
.firm-end__links { margin: 0; padding: 0; list-style: none; display: flex; gap: 24px; flex-wrap: wrap; }
.firm-end__links a { display: inline-block; padding: 8px 0; }
@media (max-width: 900px) {
 .firm-layout { grid-template-columns: 1fr; }
 .firm-side { padding: 16px 32px; border-bottom: 1px solid var(--scope-rule); }
 .firm-side__list { display: flex; gap: 16px 24px; flex-wrap: wrap; }
 .firm-side__list li { margin: 0; }
 .firm-side__note { margin: 12px 0 0; }
 .firm-content { padding: 32px; }
 .firm-head,.firm-end { padding: 24px 32px; }
}
@media (max-width: 560px) {
 .firm-head { flex-direction: column; align-items: flex-start; gap: 12px; padding: 24px; }
 .firm-content,.firm-side,.firm-end { padding: 24px; }
 .firm-crumb { margin-bottom: 32px; }
 .firm-hero__lead { font-size: 1.25rem; }
}



:root { --scope-large: clamp(2.65rem,9.1vw,8rem); --scope-sub: clamp(1.85rem,4vw,3.4rem); }
body { line-height: 1.65; }
h1 { font-size: var(--scope-large); line-height: .98; font-weight: 500; letter-spacing: -.06em; max-width: 17ch; margin-bottom: 3rem; text-wrap: balance; }
h2 { line-height: 1.12; letter-spacing: -.04em; text-wrap: balance; }
.firm-head { max-width: 1440px; margin: auto; padding: 2.5rem 4rem; }
.firm-layout { display: block; }
.firm-side { padding: 1rem 4rem; border-bottom: 1px solid var(--scope-black); display: flex; justify-content: space-between; gap: 2rem; }
.firm-side__list { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.firm-side__list li { margin: 0; }
.firm-side__link { min-height: 44px; display: inline-flex; align-items: center; }
.firm-side__link[aria-current] { padding-left: 0; border-left: 0; color: var(--scope-emerald); text-decoration-thickness: 3px; }
.firm-side__note { margin: 0; text-align: right; line-height: 1.6; }
.firm-side__note br { display: none; }
.firm-side__note br::after { content: ' / '; }
.firm-content { max-width: 1408px; margin: auto; padding: 3rem 6rem 6rem; }
.firm-hero { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); gap: 0 5rem; padding-bottom: 6rem; align-items: start; }
.firm-hero__eyebrow { grid-column: 1 / -1; margin-bottom: 2.5rem; }
.firm-hero h1 { grid-column: 1 / -1; margin-left: -2rem; }
.firm-hero__intro { grid-column: 1; grid-row: 3; }
.firm-hero__lead { grid-column: 1; grid-row: 3; font-size: clamp(1.5rem,2.4vw,1.875rem); max-width: 30ch; padding-top: 1rem; }
.firm-hero__action { grid-column: 1; justify-self: start; align-self: start; font-weight: 600; padding: 1rem 1.5rem; }
.firm-hero > .firm-hero__action { grid-row: 4; }
.firm-hero__action:hover { background: var(--scope-black); color: white; }
.firm-photo { margin: 2rem 0; background: var(--scope-white); border: 1px solid var(--scope-rule); }
.firm-photo img { width: 100%; height: auto; display: block; aspect-ratio: 4/3; object-fit: cover; background: var(--scope-white); }
.firm-photo[data-format="3:4"] img { aspect-ratio: 3/4; }
.firm-photo[data-format="1:1"] img { aspect-ratio: 1; }
.firm-photo[data-format="16:9"] img { aspect-ratio: 16/9; }
.firm-photo figcaption { padding: .85rem; border-top: 1px solid var(--scope-rule); color: var(--scope-grey); font: .8125rem/1.5 var(--scope-head); }
.firm-hero > .firm-photo { grid-column: 2; grid-row: 3; margin: 0; max-width: 360px; justify-self: end; }
.firm-section { padding: 4.5rem 0 5rem; }
.firm-section__columns { grid-template-columns: minmax(0,1fr) minmax(0,1.45fr); gap: 5rem; }
.firm-section__copy { max-width: 700px; }
.firm-section__visual .firm-photo { max-width: 300px; margin: 0 0 2.5rem; }
.firm-schema { margin: 2rem 0; padding: 1.5rem 0; border-block: 1px solid var(--scope-rule); }
.firm-schema::before { content: ''; display: block; width: 100%; aspect-ratio: 16/5; }
.firm-schema:has(svg)::before { display: none; }
.firm-schema svg { display: block; width: 100%; height: auto; }
.firm-schema figcaption { border-top: 1px solid var(--scope-rule); padding-top: 1rem; font: .875rem/1.6 var(--scope-head); color: var(--scope-grey); }
.firm-note { border-left: 4px solid var(--scope-emerald); padding: 2rem; }
.firm-request { max-width: none; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 4rem; border-top: 1px solid var(--scope-black); padding-top: 3rem; }
.firm-request__group { border-top: 3px solid var(--scope-emerald); padding-top: 1.75rem; }
.firm-request__field { margin-bottom: 1.75rem; }
.firm-request__field:focus-within .firm-request__label { color: var(--scope-emerald); }
.firm-request__input:focus { border-color: var(--scope-emerald); }
.firm-request__status { border-left-width: 5px; }
.firm-request__submit:hover { background: var(--scope-black); }
.firm-faq__item[open] { border-left: 3px solid var(--scope-emerald); padding-left: 1.5rem; }
.firm-publication { max-width: 880px; }
.firm-publication h1 { font-size: clamp(2.65rem,6.5vw,5rem); letter-spacing: -.045em; }
.firm-end { display: block; padding: 5rem 4rem 2rem; background: var(--scope-black); color: white; }
.firm-end__grid { max-width: 1280px; margin: auto; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.65fr) minmax(0,1.5fr); gap: 3rem; }
.firm-end a { color: white; }
.firm-end :focus-visible { outline-color: white; }
.firm-end__brand { font: 500 1.75rem/1.2 var(--scope-head); }
.firm-end__plan { display: grid; align-content: start; gap: .75rem; }
.firm-end__request { border-left: 1px solid var(--scope-rule); padding-left: 2rem; }
.firm-end__request h2 { font-size: 2.25rem; }
.firm-end__request .firm-hero__action { background: white; color: var(--scope-black); }
.firm-end__request .firm-hero__action:hover { background: var(--scope-emerald); color: white; }
.firm-end__role { grid-column: 1 / 3; border-top: 1px solid var(--scope-rule); padding-top: 2rem; }
.firm-end__links { border-top: 1px solid var(--scope-rule); padding-top: 1.5rem; gap: 1.25rem; }
@media (max-width: 1000px) {
 .firm-content { padding: 3rem 3rem 5rem; }
 .firm-head, .firm-side { padding-inline: 2rem; }
 .firm-hero { gap: 0 2.5rem; }
 .firm-side__note { display: none; }
 .firm-section__columns { gap: 2.5rem; }
 .firm-end__grid { grid-template-columns: 1fr 1fr; }
 .firm-end__request { grid-column: 1 / -1; border-left: 0; border-top: 1px solid var(--scope-rule); padding: 2rem 0 0; }
 .firm-end__role { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
 .firm-head { padding: 1.5rem; }
 .firm-content, .firm-side, .firm-end { padding-inline: 1.5rem; }
 .firm-side__list { gap: .2rem 1.25rem; }
 .firm-content { padding-top: 2rem; }
 .firm-hero { display: flex; flex-direction: column; padding-bottom: 3rem; }
 .firm-hero h1 { margin-left: 0; margin-bottom: 1.5rem; font-size: clamp(2.65rem,11.8vw,4rem); }
 .firm-hero__eyebrow { margin-bottom: 1.5rem; }
 .firm-hero__lead { padding-top: 0; order: 1; }
 .firm-hero__intro { order: 1; }
 .firm-hero > .firm-hero__action { order: 2; }
 .firm-hero > .firm-photo { order: 3; margin-top: 2rem; width: 100%; max-width: none; align-self: stretch; }
 .firm-hero > .firm-photo[data-format="3:4"] { max-width: 280px; }
 .firm-section { padding-block: 3rem; }
 .firm-section__columns, .firm-request, .firm-end__grid { grid-template-columns: minmax(0,1fr); gap: 2rem; }
 .firm-schema::before { aspect-ratio: 4/3; }
 .firm-note { padding: 1.25rem; }
 .firm-end { padding-block: 3rem 1.5rem; }
}

@keyframes evidence-introduction { from { opacity: .92; transform: translateY(6px); } to { opacity: 1; transform: none; } }
html { scroll-behavior: smooth; }
main { animation: evidence-introduction .5s ease-out both; }
figure { min-width: 0; }
input, select, textarea, button { max-width: 100%; }
summary:hover { text-decoration: underline; text-underline-offset: .22em; }
summary::marker { font-size: .8em; }
button, a, input, select { transition: background-color .18s ease, border-color .18s ease, color .18s ease; }
@media (prefers-reduced-motion: reduce) {
 html { scroll-behavior: auto; }
 *, *::before, *::after { animation: none !important; transition: none !important; }
}


.scope-bot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.scope-drawing{overflow:auto;max-width:100%}.scope-drawing>svg{width:100%;height:auto;display:block}.firm-schema:has(svg):before{display:none}.scope-drawing-note{display:none}.scope-reading{max-width:72ch;padding-bottom:4rem}.scope-field-error{color:#a3142c;font:500 1rem Schibsted Grotesk,Arial,sans-serif}.scope-analysis{padding:2rem 0;border-top:1px solid #131716}@media(max-width:699px){.scope-drawing>svg{min-width:640px}.scope-drawing-note{display:block;font-size:.85rem}.firm-head__logo{max-width:100%;height:auto}}
[hidden]{display:none!important}

.scope-reading p{overflow-wrap:anywhere}
.firm-publication p,.firm-publication li{max-width:72ch;overflow-wrap:anywhere}
.firm-publication .firm-section{padding:2.5rem 0;border-top:1px solid var(--scope-rule)}
.firm-publication h2{font-size:clamp(1.75rem,3vw,2.5rem)}
.firm-toc{border-block:1px solid var(--scope-rule);padding:1rem 0;margin:2rem 0;font:1rem/1.6 var(--scope-head)}
.firm-toc a{display:inline-block;padding:.3rem 0}
.firm-faq__item{border-top:1px solid var(--scope-rule);padding:1rem 0}
.firm-faq__item summary{cursor:pointer;font:500 1.1rem/1.5 var(--scope-head);min-height:44px}
.firm-tool{padding:1.5rem;border:2px solid var(--scope-emerald);margin:2rem 0}
.firm-tool label{display:block;font:500 1rem/1.5 var(--scope-head);margin:1rem 0 .4rem}
.firm-tool input,.firm-tool select,.firm-tool textarea{width:100%;padding:.8rem;border:1px solid var(--scope-rule);font:1rem var(--scope-head);background:white;color:var(--scope-black)}
.firm-tool button{min-height:48px;padding:.8rem 1rem;background:var(--scope-emerald);color:white;border:0;font:500 1rem var(--scope-head);cursor:pointer;margin:.5rem .5rem .5rem 0}
.firm-tool button[type=reset]{background:var(--scope-black)}
.firm-tool [data-result]{border-top:1px solid var(--scope-rule);margin-top:1.5rem;padding-top:1rem}
.firm-tool fieldset{border:0;border-bottom:1px solid var(--scope-rule);margin:0 0 1.5rem;padding:0 0 1rem;min-width:0}
.firm-tool legend{font:600 1.1rem/1.5 var(--scope-head)}
[id]{scroll-margin-top:1rem}
.firm-content table{width:100%;border-collapse:collapse;margin:1.5rem 0;font:1rem/1.5 var(--scope-head)}
.firm-content th,.firm-content td{border-top:1px solid var(--scope-rule);padding:.75rem .75rem .75rem 0;text-align:left;vertical-align:top}
.firm-content thead th{border-top:2px solid var(--scope-black);font-weight:600}
.firm-content tbody th{font-weight:600;width:22%}
@media (max-width:699px){.firm-content table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.firm-content th,.firm-content td{min-width:9rem}}

/* Lecture riche : bibliothèque firm, filets francs, accent émeraude unique. */
html { scroll-behavior: auto; }
.firm-head { padding-block: 1.25rem; }
.firm-content { padding-top: 1.5rem; }
.firm-crumb { margin-bottom: 1rem; max-width: 80ch; }
.firm-hero { gap: 0 3rem; padding-bottom: 2.5rem; }
.firm-hero__eyebrow { margin-bottom: .75rem; grid-column: 1; grid-row: 1; }
.firm-hero h1 { grid-column: 1; grid-row: 2; margin: 0 0 1rem; font-size: clamp(2.3rem,4.6vw,4rem); max-width: 20ch; line-height: 1.04; }
.firm-hero > .firm-photo { grid-column: 2; grid-row: 2 / 5; max-width: 340px; }
.firm-hero__intro, .firm-hero__lead { grid-row: 3; }
.firm-hero__lead { font-size: clamp(1.25rem,2vw,1.5rem); max-width: 40ch; padding-top: 0; margin-bottom: 1rem; }
.firm-top-action { grid-column: 1; grid-row: 4; margin: .5rem 0 1rem; }
.firm-hero .firm-photo img { max-height: 45vh; object-fit: contain; }
.firm-publication { max-width: 960px; margin-inline: auto; }
.firm-opening { margin-bottom: 1.5rem; }
.firm-opening h1 { font-size: clamp(2.1rem,4.5vw,4rem); line-height: 1.05; max-width: 24ch; margin-bottom: .9rem; }
.firm-opening .firm-publication__meta { margin-bottom: 1rem; }
.firm-opening .firm-hero__eyebrow { margin-bottom: .65rem; }
.firm-publication > p { max-width: 72ch; }
.firm-publication > .firm-photo { max-width: 640px; margin: 1.75rem auto; }
.firm-publication > .firm-photo img { aspect-ratio: 16/7; max-height: 35vh; }
.firm-publication .firm-section { padding-block: 2rem; }
.firm-brief { padding: 1.4rem 1.6rem; border-block: 2px solid var(--scope-black); border-right: 0; margin-block: 1.25rem 1.75rem; }
.firm-brief h2 { font-size: 1.1rem; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 1rem; color: var(--scope-emerald); }
.firm-brief ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem 2rem; list-style: none; padding: 0; margin: 0; }
.firm-brief li { border-top: 1px solid var(--scope-rule); padding-top: .7rem; line-height: 1.5; }
.firm-brief strong { font-weight: 600; }
.firm-note--key { margin-block: 1.5rem; padding: 1.25rem 1.5rem; }
.firm-note--key p:last-child { margin-bottom: 0; }
.firm-note__title { color: var(--scope-emerald); }
.firm-cta { border: 0; border-block: 2px solid var(--scope-emerald); padding: 1.75rem 0; margin-block: 2rem; }
.firm-cta h2 { font-size: clamp(1.6rem,3vw,2rem); max-width: 30ch; }
.firm-cta p { max-width: 65ch; }
.firm-steps, .firm-checklist { padding: 0; list-style: none; margin: 1.5rem 0; }
.firm-steps { counter-reset: firm-step; }
.firm-steps > li, .firm-checklist > li { position: relative; padding: 1rem 0 1rem 3.5rem; border-top: 1px solid var(--scope-rule); }
.firm-steps > li { counter-increment: firm-step; }
.firm-steps > li::before { content: counter(firm-step,decimal-leading-zero); position: absolute; left: 0; top: 1.15rem; color: var(--scope-emerald); font: 600 1.1rem/1.5 var(--scope-head); }
.firm-checklist > li::before { content: ''; position: absolute; left: .3rem; top: 1.45rem; width: .85rem; height: .85rem; border: 2px solid var(--scope-emerald); }
.firm-comparison thead { background: var(--scope-emerald); color: white; }
.firm-content .firm-comparison thead th { padding: .85rem; }
.firm-content .firm-comparison td, .firm-content .firm-comparison tbody th { padding: 1rem .85rem; }
.firm-toc { margin-block: 1.5rem; }
.firm-toc ol { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .25rem 2rem; margin-bottom: 0; }
.firm-toc p { margin-bottom: .5rem; font-weight: 600; }
.firm-schema { max-width: 760px; margin-inline: auto; padding-block: 1rem; }
.firm-schema::before { display: none; }
.scope-drawing { margin-inline: auto; }
.firm-schema svg, .scope-drawing > svg { width: min(760px,100%,calc(65vh * var(--firm-svg-ratio,1))); max-height: 75vh; height: auto; margin-inline: auto; }
.firm-schema figcaption { padding-top: .7rem; line-height: 1.45; }
.firm-flow { border-block: 1px solid var(--scope-rule); padding: 1rem 0; margin: 1.5rem 0; }
.firm-flow figcaption { font: 600 1rem/1.5 var(--scope-head); color: var(--scope-emerald); }
.firm-flow ol { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); list-style: none; gap: 1rem; padding: 0; margin: 1rem 0 0; counter-reset: flow; }
.firm-flow li { counter-increment: flow; border-top: 2px solid var(--scope-emerald); padding-top: .65rem; font: 500 1rem/1.5 var(--scope-head); }
.firm-flow li::before { content: counter(flow,decimal-leading-zero); display: block; color: var(--scope-emerald); margin-bottom: .3rem; }
.firm-mobile-action { display: none; }
.firm-pillar-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
.firm-pillar-card { border-top:2px solid var(--scope-emerald); padding-top:1rem; }
.firm-pillar-card p { font-size:1.1rem; }
.firm-vague-intro { max-width:65ch; font-size:1.1rem; }
[data-budget-tool] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
[data-budget-tool] label { display:block; font:1rem/1.5 var(--scope-head); }
[data-budget-tool] input { display:block; width:100%; margin-top:.5rem; padding:.6rem; font:1rem var(--scope-head); border:1px solid var(--scope-rule); }
[data-budget-tool] button { min-height:44px; cursor:pointer; white-space:normal; }
[data-budget-result] { grid-column:1/-1; padding:1rem; border:1px solid var(--scope-rule); }
@media (max-width:699px) {
 .firm-pillar-grid, [data-budget-tool] { grid-template-columns:1fr; }
 .firm-head { flex-direction: row; align-items: center; gap: .5rem; padding: 1rem 1.25rem; }
 .firm-head__logo { width: 230px; }
 .firm-head__language { gap: 0; }
 .firm-head__language a { padding: .5rem; }
 .firm-side { padding: .5rem 1.25rem; }
 .firm-side__list { gap: 0 1rem; }
 .firm-side__link { font-size: .8rem; min-height: 36px; }
 .firm-content { padding: 1rem 1.25rem 3rem; }
 .firm-crumb { font-size: .75rem; line-height: 1.4; margin-bottom: .85rem; }
 .firm-hero { display: flex; flex-direction: column; padding-bottom: 1.75rem; }
 .firm-hero h1, .firm-opening h1 { font-size: 2rem; max-width: none; margin: 0 0 .85rem; letter-spacing: -.035em; }
 .firm-hero__eyebrow { margin-bottom: .6rem; font-size: .7rem; }
 .firm-top-action { order: 1; margin: .25rem 0 1rem; }
 .firm-hero__intro, .firm-hero__lead { order: 2; }
 .firm-hero > .firm-photo { order: 3; margin-top: 1rem; max-width: 260px; align-self: center; }
 .firm-hero .firm-photo img { max-height: 35vh; }
 .firm-hero__action { font-size: .9rem; padding: .8rem 1.1rem; }
 .firm-publication__meta { font-size: .75rem; }
 .firm-brief { padding: 1.1rem; }
 .firm-brief ul { grid-template-columns: 1fr; gap: .8rem; }
 .firm-brief li { font-size: 1.05rem; }
 .firm-toc ol { grid-template-columns: 1fr; }
 .firm-steps > li, .firm-checklist > li { padding-left: 2.6rem; }
 .scope-drawing > svg { min-width: min(640px,calc(65vh * var(--firm-svg-ratio,1))); max-width: none; }
 .scope-drawing { overflow-x: auto; }
 .scope-drawing-note { margin: .5rem 0; font: .75rem/1.4 var(--scope-head); }
 .firm-flow ol { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .firm-mobile-action { display: block; position: fixed; z-index: 8; bottom: 0; left: 0; right: 0; background: white; border-top: 1px solid var(--scope-rule); padding: .5rem 1.25rem calc(.5rem + env(safe-area-inset-bottom)); }
 .firm-mobile-action a { display: block; background: var(--scope-emerald); color: white; text-align: center; padding: .6rem 1rem; font: 600 .9rem/1.5 var(--scope-head); text-decoration: none; min-height: 44px; }
 body:has(.firm-mobile-action) { padding-bottom: 66px; }
 .firm-faq__item, .firm-tool { scroll-margin-bottom: 5rem; }
}
