*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body.armony-page,.site-header,.site-footer,.nav-mobile,.lightbox,.floating-cta{font-family:var(--f-body);font-weight:300;font-size:var(--fs-base);line-height:var(--lh-base);color:var(--c-text)}
body.armony-page{background:var(--c-white)}
.site-header,.site-footer,.nav-mobile{color:inherit}
.armony-page img,.armony-page video,.site-header img,.site-footer img{max-width:100%;height:auto;display:block}
.armony-page a,.site-header a,.site-footer a{color:inherit;text-decoration:none;transition:color .3s var(--ease),opacity .3s var(--ease)}
.armony-page a:hover,.site-header a:hover,.site-footer a:hover{color:var(--c-accent)}
.armony-page h1,.armony-page h2,.armony-page h3,.armony-page h4,.site-footer h2{font-family:var(--f-heading);font-weight:600;line-height:var(--lh-tight);margin:0 0 var(--sp-4);color:inherit;letter-spacing:.02em}
.armony-page h1{font-size:var(--fs-3xl);text-transform:uppercase;letter-spacing:.06em}
.armony-page h2{font-size:var(--fs-2xl);text-transform:uppercase;letter-spacing:.06em}
.armony-page h3{font-size:var(--fs-lg)}
.armony-page h4{font-size:var(--fs-md)}
.armony-page p{margin:0 0 var(--sp-4)}
.armony-page ul,.armony-page ol,.site-header ul,.site-footer ul{margin:0;padding:0}
address{font-style:normal}
.armony-page button,.site-header button{font:inherit;cursor:pointer}
.armony-page input,.armony-page textarea,.armony-page select{font:inherit}
.site-main--elementor{min-height:40vh}
.site-footer p{margin:0 0 var(--sp-4)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.skip-link:focus{position:fixed;top:8px;left:8px;width:auto;height:auto;clip:auto;background:#fff;padding:8px 12px;z-index:1000}
:focus-visible{outline:1px solid var(--c-accent);outline-offset:3px}
::selection{background:var(--c-accent);color:#fff}

/* Conteneurs & sections */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.container--narrow{max-width:var(--container-narrow)}
.section{padding-block:var(--sp-24)}
.section--sm{padding-block:var(--sp-12)}
.section--dark{background:var(--c-primary);color:var(--c-white)}
.section--dark a:not(.btn):hover{color:var(--c-accent)}
.section--light{background:var(--c-light)}
.section--top-border{border-top:1px solid var(--c-line)}
@media (max-width:760px){.section{padding-block:var(--sp-16)}}

/* Typo utilitaires */
.kicker{display:inline-flex;align-items:center;gap:14px;font-family:var(--f-heading);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--c-accent);margin-bottom:var(--sp-4)}
.kicker::before{content:"";width:28px;height:1px;background:currentColor;opacity:.8}
.kicker--plain::before,.section-head--center .kicker::before{display:none}
.section-head--center .kicker::after,.section-head--center .kicker::before{content:"";width:28px;height:1px;background:currentColor;opacity:.8;display:block}
.prose{font-size:var(--fs-md)}
.prose--lead{font-size:var(--fs-lg);font-weight:300;line-height:1.8}
.prose h2{font-size:var(--fs-xl);margin-top:var(--sp-12)}
.prose h3{margin-top:var(--sp-8)}
.prose ul,.prose ol{padding-left:1.25em;margin-bottom:var(--sp-4)}
.prose img{margin-block:var(--sp-8)}
.prose blockquote{border-left:1px solid var(--c-accent);margin:var(--sp-8) 0;padding-left:var(--sp-6);font-style:italic;font-size:var(--fs-lg)}
.prose--legal{font-size:var(--fs-base)}
.prose__updated{color:var(--c-muted);font-size:var(--fs-sm);margin-top:var(--sp-12)}
.empty-state{padding:var(--sp-16);text-align:center;color:var(--c-muted);border:1px solid var(--c-line)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}

/* Apparition */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
