/* Shared typography rhythm. Load LAST on every page.
   Keep spacing rules here, not in feature-specific stylesheets.
   !important is restricted to rhythm/flow so legacy component margins cannot
   collapse the heading/body gap again. Colours and composition stay local. */
:root{--space-title-body:1.5rem;--space-paragraph:1rem;--space-action:1.75rem;--space-label-title:1.25rem;--space-section-content:2.75rem;--space-reading-section:3rem;}
body main :is(h1,h2,h3,h4){margin-block-end:0!important;text-wrap:balance;word-break:normal;overflow-wrap:normal;hyphens:manual;}
body main h1{line-height:1.16!important;}
body main h2{line-height:1.22!important;}
body main :is(h3,h4){line-height:1.3!important;}
body main p{margin-block:0!important;line-height:1.7;}
body main :is(h1,h2,h3,h4)+:is(p,ul,ol,dl){margin-block-start:var(--space-title-body)!important;}
body main p+p{margin-block-start:var(--space-paragraph)!important;}
body main p+:is(a.button,a.text-link){margin-block-start:var(--space-action)!important;}
body main :is(.section-label,.v3-label,.eyebrow)+:is(h1,h2,h3){margin-block-start:var(--space-label-title)!important;}
body main :is(.section-label,.v3-label,.eyebrow){margin-block-end:0!important;}
body main :is(.slim-hero,.slim-lead,.v3-article-header,.offer-heading,.ecosystem-heading)>h1+p,
body main .slim-hero>div>h1+p{margin-block-start:1.75rem!important;}
body main :is(.product-panel-copy,.verb-copy,.company-fit-heading,.offer-work article,.security-three article,.connected-case-list article){min-width:0;}
body main :is(.home-usecases-heading,.four-heading,.watch-heading){margin-block-end:var(--space-section-content)!important;}
body main .product-panel-copy h2{max-width:22ch;}
body main .verb-copy h3{max-width:24ch;}
body main :is(.product-panel-copy,.verb-copy){align-self:center;}
body main :is(.product-tabs,.verb-tabs){row-gap:.75rem;}
body main .outcome-rows article{padding-block:2rem!important;}
body main .outcome-rows article>p{margin-block-start:var(--space-title-body)!important;}
body main .watch-articles>a{gap:0;}
body main .watch-articles>a>span:first-child{margin-block-end:var(--space-label-title)!important;}
body main .watch-articles>a>p{margin-block-start:var(--space-title-body)!important;margin-block-end:var(--space-action)!important;}
body main .case-sources{min-height:0!important;margin-block-end:var(--space-label-title)!important;}
body main .connected-case-list{align-items:start;}
body main :is(.directory-group,.ecosystem-more>div)>h3+ul{margin-block-start:var(--space-title-body)!important;}
body main .offer-work article+article{margin-block-start:2rem!important;}
body main .production-price>strong+p{margin-block-start:var(--space-title-body)!important;}
body main .offer-heading>p{max-width:65ch;}
body main :is(.company-engine,.owned-models)>p{margin-block-start:.875rem!important;}
body main .offer-consumption>div>p:first-child{margin-block-start:0!important;}
body main .offer-consumption .consumption-estimates+p{margin-block-start:var(--space-title-body)!important;}
body main :is(.v3-article-body,.longform-body)>:is(h2,h3){margin-block-start:var(--space-reading-section)!important;}
body main :is(.v3-article-body,.longform-body)>p+p{margin-block-start:1.25rem!important;}
body main .v3-article-header .article-byline{margin-block-start:1.5rem!important;}
body main .v3-article-body .article-source{margin-block-start:1.5rem!important;}
body main :is(.story-scene,.article-action)>h2{margin-block-start:0!important;}
body main .story-scene .v3-label+h2{margin-block-start:var(--space-label-title)!important;}
body main .slim-faq details>p{margin-block-start:1.25rem!important;}
body main .research-toolbar{margin-block-end:2rem!important;}
body main .slim-library>.research-count{margin-block-end:1.5rem!important;}
body main.legal-page section p+p{margin-block-start:1rem!important;}
.meeting-dialog h2{line-height:1.25;margin-block:0 1.5rem;}
.meeting-dialog p{margin-block:0 1.75rem;line-height:1.7;}
@media(max-width:700px){
 :root{--space-title-body:1.25rem;--space-action:1.5rem;--space-label-title:1rem;--space-section-content:2rem;--space-reading-section:2.5rem;}
 body main h1{line-height:1.18!important;}
 body main h2{line-height:1.25!important;}
 body main :is(.slim-hero,.slim-lead,.v3-article-header,.offer-heading,.ecosystem-heading)>h1+p,
 body main .slim-hero>div>h1+p{margin-block-start:1.5rem!important;}
 body main .outcome-rows article{padding-block:1.75rem!important;}
 body main :is(.product-panel-copy,.verb-copy)>:is(h2,h3){max-width:none;}
 body main .watch-heading>.text-link{margin-block-start:var(--space-action)!important;}
 body main .integration-shortcut>.text-link{margin-block-start:var(--space-action)!important;}
}
body main table caption{padding-block-end:.75rem;text-align:left;line-height:1.6;}
body main .article-continuation a{line-height:1.7;}
@media(max-width:700px){.slim-header nav{column-gap:clamp(.625rem,3vw,1rem);row-gap:.75rem;}.slim-header nav a{font-size:.875rem;}}

/* EAP : séparer l’échéance du bloc de candidature. */
.slim-main .offer-layout + .offer-terms{margin-top:32px!important;max-width:760px}
@media(max-width:700px){.slim-main .offer-layout + .offer-terms{margin-top:28px!important}}

/* Demande de démonstration : rythme du formulaire et de sa présentation. */
.demo-pitch>h1+p{margin-top:28px!important}.demo-preview{margin-top:40px}.demo-preview>span+h2{margin-top:20px!important}.demo-preview p+p{margin-top:24px!important}.demo-card>h2+p{margin-top:24px!important}.demo-card form{margin-top:28px}.demo-card .demo-privacy{margin:24px 0!important}.demo-card #demo-status,.demo-card #demo-fallback,.demo-card #demo-success{margin-top:24px!important}
@media(max-width:700px){.demo-pitch>h1+p{margin-top:24px!important}.demo-card>h2+p{margin-top:20px!important}}

/* Cas d’usage Héloïse : introduction aérée, puis vidéo sans légende superposée. */
.heloise-intro+.heloise-video{margin-top:40px}
@media(max-width:700px){.heloise-intro+.heloise-video{margin-top:28px}}

/* Parcours accueil : rythme commun, sans hauteurs de texte imposées. */
body main .home-audience{margin-block-start:var(--space-action)!important}
body main :is(.workflow-steps,.team-examples,.control-links){margin-block:var(--space-section-content) 0}
body main :is(.workflow-steps>li,.team-examples article,.control-links a){padding-block-start:1.5rem}
body main .step-number{margin-block-end:var(--space-label-title)}
body main .workflow-example{margin-block-start:var(--space-action)}
body main .workflow-example strong{margin-block-start:.75rem}
body main .workflow-example ul{margin-block:1rem 0}
body main .control-links span{margin-block-start:.75rem}
body main .home-workflow>.text-link{margin-block-start:var(--space-action)}
body main .home-start-actions>.text-link{margin-block-start:var(--space-action)}
body main .governance-detail picture{margin-block-start:var(--space-action)}
/* Accueil compact : rythme du trajet, sans répétition de paragraphes. */
body main .relay-track{margin-block:0}
body main .relay-track strong{margin-block-start:1.25rem}
body main .relay-track li>span:last-child{margin-block-start:.5rem}
body main .product-workflow-detail{margin-block-start:var(--space-section-content)}
@media(max-width:550px){body main .relay-track strong{margin-block-start:0}body main .relay-track li>span:last-child{margin-block-start:.25rem}}
/* FAQ et cas d’usage : rythme des titres et des liens */
.faq-jumps,.case-cards{margin-top:36px}.case-category{margin-top:20px}.case-card h3{margin-top:12px}.case-discover{margin-top:20px}.case-number{display:block;margin-bottom:16px}.case-story-heading{margin-bottom:36px}.case-other a{margin-top:24px}.demo-expand{margin-top:16px}.hero-demo-frame{margin-top:36px}.slim-faq h2+.text-link,.product-journey h2+.text-link{display:inline-block;margin-top:24px}.slim-lead>.text-link+.eyebrow{display:block;margin-top:28px}@media(max-width:700px){.case-cards,.faq-jumps{margin-top:28px}.case-story-heading>span{display:block;margin-top:20px}.hero-demo-frame{margin-top:28px}}
/* Histoires complètes : lecture longue à ouverture volontaire. */
.case-full-story{margin-top:28px}.case-story-text h2{margin-top:32px}.case-story-text h2+p{margin-top:24px}.case-step .case-human{margin-top:22px}.case-human strong{margin-bottom:6px}.case-illustration .case-witkeep-label{margin-bottom:18px}@media(max-width:700px){.case-story-text h2+p{margin-top:20px}}
.case-flow-heading{margin-bottom:36px}.case-flow-list{margin:18px 0 0}.case-request h3{margin:12px 0 0}.case-action p{margin:0}.result-tags{margin-top:12px}.case-control-note{margin-top:0}.case-flow-heading>span{margin:0}@media(max-width:850px){.case-flow-heading>span{margin-top:20px}.case-flow-heading{margin-bottom:24px}.flow-mobile-label{margin-bottom:8px}}
.case-needs .case-requirements{margin:24px 0 0;padding-left:24px;max-width:850px}.case-requirements li+li{margin-top:14px}@media(max-width:700px){.case-needs .case-requirements{margin-top:20px}}
.case-needs ul.case-requirements{list-style:disc}.case-needs .case-requirements li{display:list-item}

/* Migrated editorial content: maintain a readable rhythm inside visual blocks. */
body main .legacy-editorial :is(.legacy-stat,.legacy-comparison,.legacy-stats,.legacy-quote,.legacy-term,.legacy-person){margin-block:2rem!important;}
body main .legacy-editorial :is(.legacy-stat,.legacy-compare-panel,.legacy-term,.legacy-person){padding:1.75rem;}
body main .legacy-editorial .legacy-stat>p{margin-block:0!important;}
body main .legacy-editorial .legacy-small>p{margin-block-start:1.25rem!important;}
body main .legacy-editorial .legacy-source{margin-block-start:1rem!important;}
body main .legacy-editorial .legacy-stats>.legacy-stat{margin-block:0!important;}
body main .legacy-editorial :is(.legacy-case,.legacy-issue){padding-block-start:2rem;margin-block-start:3rem!important;}
body main .legacy-editorial .legacy-eyebrow+h2{margin-block-start:1.25rem!important;}
body main .legacy-editorial .legacy-quote{padding:1.5rem;margin-inline:0!important;}
body main .legacy-editorial .legacy-comparison ul{padding-inline-start:1.25rem;}
body main .legacy-editorial .legacy-comparison li+li{margin-block-start:.75rem;}
body main .legacy-editorial :is(.legacy-term,.legacy-person)>h2{margin-block-start:0!important;}
body main .legacy-editorial .legacy-person>p:first-child+h2{margin-block-start:1.25rem!important;}
@media(max-width:640px){body main .legacy-editorial :is(.legacy-stat,.legacy-compare-panel,.legacy-term,.legacy-person){padding:1.25rem;}body main .legacy-editorial :is(.legacy-case,.legacy-issue){margin-block-start:2.5rem!important;}}

/* Keep offer columns within narrow phone viewports. */
body main .offer-layout > *{min-width:0;}
body main .offer-included{box-sizing:border-box;max-width:100%;overflow-wrap:break-word;}
@media(max-width:380px){body main .offer-deliverables{grid-template-columns:minmax(0,1fr);}body main .offer-included{padding:22px;}}
/* Product demos retain the screenshot proportions. */
body main .product-demo{display:block;width:100%;max-width:100%;height:auto;border-radius:inherit;}
