/* 1. COULEURS ET VARIABLES */
:root {
  --sand:#E7DED0;
  --paper:#F5F0E8;
  --terra:#B95F38;
  --canyon:#79513D;
  --ochre:#C69A5B;
  --blue:#899DA5;
  --dark:#353A34;
  --ink:#292A26;
  --muted:#756D62;
  --line:#D4C8B8;
  --gutter:clamp(20px,4vw,64px);
  --max:1240px
}

/* 2. BASE ET RÈGLES GÉNÉRALES */
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:16px/1.55 Inter,Arial,sans-serif;
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
/* FILTRE ARIZONA — TOUTES LES PHOTOS DU SITE
   S'applique à chaque image HTML, sur toutes les pages.
   Pour désactiver le filtre : commenter la ligne filter ci-dessous.
   Les logos et icônes en images raster seront également teintés :
   utiliser une classe dédiée (ex. .no-photo-filter) si nécessaire.
*/
img {
  display:block;
  width:100%;
  height:auto;
  filter:brightness(1.05) contrast(1.14) saturate(0.88) sepia(0.38) hue-rotate(-6deg)
}

/* Exception : images qui doivent garder leurs couleurs d'origine */
img.no-photo-filter {
  filter:none
}
h1,h2,h3 {
  font-weight:500;
  letter-spacing:-.035em;
  line-height:1.08;
  margin:0 0 18px
}
h1 {
  font-size:clamp(2.7rem,5vw,5.1rem);
  max-width:780px
}
h2 {
  font-size:clamp(2rem,3.4vw,3.4rem)
}
h3 {
  font-size:clamp(1.25rem,2vw,1.65rem)
}
p {
  margin:0 0 16px
}

/* 3. LARGEUR DU CONTENU */
.container {
  width:min(var(--max),calc(100% - 2*var(--gutter)));
  margin:auto
}

/* 4. TYPOGRAPHIE ET TEXTES */
.eyebrow {
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--canyon);
  margin-bottom:14px
}
.lead {
  font-size:clamp(1.05rem,1.5vw,1.23rem);
  line-height:1.55;
  max-width:650px;
  color:#e8dfd2
}
.intro {
  font-size:1.08rem;
  color:var(--muted);
  max-width:700px
}

/* 5. EN-TÊTE ET NAVIGATION */
.site-header {
  position:absolute;
  inset:0 0 auto;
  z-index:5;
  color:#fffaf3
}
.nav-wrap {
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px
}
.brand {
  display:flex;
  flex-direction:column;
  font-size:1.18rem;
  letter-spacing:.12em;
  line-height:1
}
.brand span {
  font-size:.52rem;
  letter-spacing:.32em;
  margin-top:7px
}
.main-nav {
  display:flex;
  align-items:center;
  gap:clamp(10px,1.6vw,23px);
  font-size:.82rem
}
.main-nav a {
  opacity:.92
}
.main-nav a[aria-current=page] {
  text-decoration:underline;
  text-underline-offset:7px
}
.nav-cta,.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  background:var(--terra);
  border:1px solid var(--terra);
  color:#fff;
  padding:13px 19px;
  font-size:.9rem
}
.menu-toggle {
  display:none;
  background:transparent;
  color:inherit;
  border:1px solid #ffffff70;
  padding:9px 12px;
  font:inherit
}

/* 6. HERO / BANNIÈRE PRINCIPALE */
.hero {
  position:relative;
  isolation:isolate;
  min-height:660px;
  display:flex;
  align-items:center;
  color:#fffaf3;
  background:#39352e;
  overflow:hidden
}
.hero-image {
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 42%
}
.hero:after {
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(90deg,rgba(32,30,26,.88),rgba(32,30,26,.62) 39%,rgba(32,30,26,.12) 80%),linear-gradient(0deg,rgba(32,30,26,.36),transparent 40%)
}
.hero-content {
  position:relative;
  z-index:2;
  padding-top:100px;
  padding-bottom:80px
}
.hero .eyebrow,.dark-section .eyebrow {
  color:#dfb58a
}
.hero .lead {
  max-width:540px
}
.hero-meta {
  position:absolute;
  z-index:2;
  bottom:22px;
  left:var(--gutter);
  right:var(--gutter);
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:.68rem;
  letter-spacing:.12em;
  text-transform:uppercase
}

/* 7. BOUTONS ET LIENS D’ACTION */
.btn {
  margin-top:10px;
  transition:background .2s
}
.btn:hover,.nav-cta:hover {
  background:#9f4f2e
}

/* 8. SECTIONS ET GRILLES */
.section {
  padding:clamp(64px,8vw,108px) 0
}
.section-tight {
  padding:48px 0
}
.section-head {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:25px;
  margin-bottom:30px
}
.section-head h2 {
  margin:0
}
.text-link {
  color:var(--terra);
  font-size:.9rem;
  border-bottom:1px solid;
  padding-bottom:4px;
  white-space:nowrap
}
.grid-4 {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px
}
.grid-2 {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(24px,5vw,72px)
}

/* 9. CARTES AVEC PHOTOGRAPHIE */
.image-card {
  position:relative;
  min-height:330px;
  display:flex;
  align-items:end;
  color:white;
  overflow:hidden;
  background:#5c4a3d
}
.image-card img {
  position:absolute;
  inset:0;
  height:100%;
  object-fit:cover;
  transition:transform .4s
}
.image-card:hover img {
  transform:scale(1.04)
}
.image-card:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(27,25,22,.9),rgba(27,25,22,.03) 75%)
}
.image-card-content {
  position:relative;
  z-index:1;
  padding:21px
}
.image-card h3 {
  font-size:1.35rem
}
.image-card p {
  font-size:.88rem;
  color:#f1e8de
}
.circle {
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--paper);
  color:var(--dark)
}

/* 10. SECTION FOND SOMBRE */
.dark-section {
  background:var(--dark);
  color:#fffaf3
}
.dark-section .intro,.dark-section p:not(.eyebrow) {
  color:#d6cec2
}

/* 11. MISE EN PAGE EN DEUX COLONNES */
.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(28px,6vw,80px);
  align-items:center
}

/* 12. ÉTAPES DE LA MÉTHODE */
.steps {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px
}
.step {
  border-top:1px solid #777b70;
  padding-top:15px
}
.step-num {
  font-size:2.5rem;
  color:var(--ochre);
  line-height:1;
  margin-bottom:14px
}
.step p {
  font-size:.9rem
}
.feature-img {
  width:100%;
  height:390px;
  object-fit:cover
}

/* 13. BANDEAU D’APPEL À L’ACTION */
.cta-band {
  background:var(--sand);
  padding:clamp(32px,5vw,60px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px
}
.cta-band h2 {
  font-size:clamp(1.8rem,3vw,2.7rem);
  margin-bottom:8px
}
.recovery-note {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:24px clamp(20px,4vw,42px);
  background:var(--sand);
  border-left:3px solid var(--terra)
}
.recovery-note .eyebrow {
  margin-bottom:8px;
  color:var(--terra)
}
.recovery-note h2 {
  margin-bottom:8px;
  font-size:clamp(1.45rem,2.4vw,2rem)
}
.recovery-note p:not(.eyebrow) {
  max-width:700px;
  margin:0;
  color:var(--muted)
}
.recovery-note .text-link {
  flex-shrink:0
}
.recovery-eligibility {
  max-width:900px;
  margin:20px 0 0;
  padding:12px 16px;
  border-left:2px solid var(--terra);
  background:rgba(255,255,255,.48);
  color:var(--muted);
  font-size:.88rem
}
.recovery-eligibility a {
  color:var(--terra);
  font-weight:600;
  text-decoration:underline;
  text-underline-offset:3px
}
.recovery-discovery {
  margin:18px 0 24px
}
.recovery-hero {
  background:linear-gradient(110deg,#353a34,#4c5149)
}
.recovery-gallery-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px
}
.recovery-gallery-grid img {
  display:block;
  width:100%;
  aspect-ratio:16/7;
  object-fit:cover;
  border-radius:var(--radius, 8px)
}
@media (max-width:700px) {
  .recovery-gallery-grid {grid-template-columns:1fr}
  .recovery-gallery-grid img {aspect-ratio:16/9}
}
.recovery-facilities article {
  padding:24px;
  border:1px solid var(--line);
  background:rgba(255,255,255,.42)
}
.recovery-facilities {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px
}
.recovery-facilities .service-number {
  margin-bottom:14px
}
.recovery-facilities p:last-child {
  margin-bottom:0;
  color:var(--muted)
}
.recovery-access {
  max-width:900px
}
.recovery-access h2 {
  margin-bottom:12px;
  font-size:clamp(1.7rem,3vw,2.4rem)
}
.recovery-access .btn {
  display:inline-block
}

/* 14. BANNIÈRE DES PAGES INTÉRIEURES */
.page-hero {
  position:relative;
  overflow:hidden;
  background:var(--dark);
  color:#fffaf3;
  padding:150px 0 68px
}
.page-hero>img {
  position:absolute;
  inset:0;
  height:100%;
  object-fit:cover;
  opacity:.58
}
.page-hero:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(35,33,29,.92),rgba(35,33,29,.56) 70%)
}
.page-hero .container {
  position:relative;
  z-index:1
}
.page-hero .lead {
  max-width:680px
}

/* 15. BLOCS DE PRESTATIONS */
.service-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(24px,5vw,70px);
  align-items:center;
  padding:38px 0;
  border-bottom:1px solid var(--line)
}
.service-row:nth-child(even) img {
  order:2
}
.service-photo {
  width:100%;
  aspect-ratio:5/4;
  object-fit:cover
}
.service-photo.photo-top {
  object-position:center top
}
.service-row p {
  color:var(--muted)
}
.service-number {
  font-size:.75rem;
  letter-spacing:.15em;
  color:var(--terra);
  font-weight:700
}

/* 16. LISTES ET POINTS FORTS */
.feature-list {
  list-style:none;
  padding:0;
  margin:22px 0
}
.feature-list li {
  position:relative;
  padding:9px 0 9px 26px;
  border-bottom:1px solid var(--line)
}
.feature-list li:before {
  content:"✓";
  position:absolute;
  left:0;
  color:var(--terra);
  font-weight:700
}

/* 17. TÉMOIGNAGES */
.quote-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px
}
.quote {
  margin:0;
  padding:24px;
  background:#eee5d9;
  border-top:2px solid var(--ochre)
}
.quote cite {
  font-size:.85rem;
  color:var(--muted);
  font-style:normal
}

/* 18. FORMULAIRE ET CONTACT */
.contact-grid {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:48px
}
.contact-details {
  display:grid;
  gap:14px;
  margin-top:22px;
  padding:20px;
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(255,255,255,.52)
}
.contact-details p {
  margin:0
}
.contact-details a {
  color:var(--canyon);
  text-decoration:underline;
  text-underline-offset:3px
}
.form {
  display:grid;
  gap:15px
}
.form .btn:disabled {
  opacity:.6;
  cursor:wait
}
.honeypot {
  position:absolute !important;
  left:-10000px !important;
  width:1px;
  height:1px;
  overflow:hidden
}
.field {
  display:grid;
  gap:6px
}
.field label {
  font-size:.86rem;
  font-weight:600
}
.field input,.field select,.field textarea {
  width:100%;
  padding:13px;
  border:1px solid #c7b9a7;
  background:#fffaf3;
  font:inherit;
  color:var(--ink)
}
.field textarea {
  min-height:140px
}
.notice {
  padding:16px;
  background:#eee5d9;
  border-left:3px solid var(--terra);
  font-size:.9rem
}

/* 19. PIED DE PAGE */
.site-footer {
  background:#292d28;
  color:#f2e9dc;
  padding:48px 0 22px
}
.footer-grid {
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:35px;
  padding-bottom:30px
}
.site-footer p,.site-footer a {
  color:#d8d0c4;
  font-size:.88rem
}
.footer-links {
  display:grid;
  gap:8px
}
.footer-bottom {
  border-top:1px solid #5d6058;
  padding-top:16px;
  display:flex;
  justify-content:space-between;
  font-size:.75rem;
  color:#bdb6aa
}
.small {
  font-size:.88rem;
  color:var(--muted)
}

/* 20. RESPONSIVE — TABLETTES ET ÉCRANS MOYENS */
@media(max-width:1050px) {
  .main-nav {
    gap:10px;
    font-size:.74rem
  }
  .nav-cta {
    padding:10px
  }
  .grid-4 {
    grid-template-columns:repeat(2,1fr)
  }
}

/* 21. RESPONSIVE — MOBILES */
@media(max-width:760px) {
  .nav-wrap {
    min-height:72px
  }
  .menu-toggle {
    display:block
  }
  .main-nav {
    display:none;
    position:absolute;
    top:72px;
    left:0;
    right:0;
    padding:18px var(--gutter) 24px;
    background:var(--dark);
    align-items:stretch;
    flex-direction:column;
    font-size:1rem
  }
  .main-nav.open {
    display:flex
  }
  .main-nav a {
    padding:7px 0
  }
  .nav-cta {
    text-align:center
  }
  .hero {
    min-height:690px;
    align-items:end
  }
  .hero:after {
    background:linear-gradient(0deg,rgba(32,30,26,.94),rgba(32,30,26,.46) 62%,rgba(32,30,26,.08))
  }
  .hero-content {
    padding-top:140px;
    padding-bottom:105px
  }
  .hero h1 {
    font-size:clamp(2.5rem,10vw,4rem)
  }
  .hero-meta {
    font-size:.58rem;
    bottom:15px
  }
  .section-head {
    align-items:start;
    flex-direction:column
  }
  .grid-4,.grid-2,.split,.steps,.service-row,.quote-grid,.contact-grid,.footer-grid {
    grid-template-columns:1fr
  }
  .image-card {
    min-height:330px
  }
  .feature-img {
    height:300px
  }
  .service-row:nth-child(even) img {
    order:0
  }
  .page-hero {
    padding:130px 0 55px
  }
  .cta-band {
    align-items:flex-start;
    flex-direction:column
  }
  .recovery-note {
    align-items:flex-start;
    flex-direction:column
  }
  .recovery-facilities {
    grid-template-columns:1fr
  }
  .footer-bottom {
    flex-direction:column;
    gap:8px
  }
}
/* Ajustements validés : boutons arrondis et traitement photo chaud */
.btn,.nav-cta {
  border-radius:999px;
  padding:14px 23px
}
.btn-secondary,.btn-light {
  border-radius:999px
}

/* Filtre Arizona + overlay chaud */
.hero-image,.page-hero>img,.image-card img,.feature-img,.service-photo {
  filter:brightness(1.05) contrast(1.14) saturate(0.88) sepia(0.38) hue-rotate(-6deg)!important
}

/* Préserver les tons bleus de la photo d’analyse biomécanique */
.service-photo.photo-science {
  filter:brightness(1.05) contrast(1.14) saturate(0.88)!important
}

/*  y chaud supplémentaire (ne remplace pas les dégradés existants) */
.image-card,
.page-hero {
  isolation: isolate;
}
.image-card::after,
.page-hero::after {
  /* On conserve le dégradé original et on superpose une teinte chaude via box-shadow ou un second layer si besoin */
  box-shadow: inset 0 0 80px rgba(180, 110, 50, 0.15);
}

/* === TABLE TARIFS === */
.zc-pricing__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
}
.zc-plan {
  display: flex;
  flex-direction: column;
  padding: 1.5rem;
  background: #fffefa;
  border: 1px solid #dedfd6;
  border-radius: 6px;
}
.zc-plan--featured {
  border-color: #718575;
  box-shadow: 0 8px 24px rgba(36, 41, 35, 0.08);
}
.zc-plan__eyebrow {
  margin: 0 0 0.5rem;
  color: #40594a;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.zc-plan h3 {
  margin: 0;
  font-size: 1.4rem;
}
.zc-plan__price {
  margin: 0.8rem 0 0.2rem;
  font-size: 2.2rem;
  font-weight: 500;
  letter-spacing: -0.04em;
}
.zc-plan__price small {
  font-size: 0.9rem;
  color: #6d746b;
}
.zc-muted {
  margin: 0.3rem 0;
  color: #6d746b;
  font-size: 0.82rem;
}
.zc-plan ul {
  list-style: none;
  padding: 0;
  margin: 0.8rem 0 1.2rem;
}
.zc-plan li {
  position: relative;
  padding-left: 1.2rem;
  margin-bottom: 0.5rem;
  font-size: 0.9rem;
}
.zc-plan li:before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #40594a;
  font-weight: 700;
}
.zc-plan__option {
  margin-top: auto;
  padding-top: 0.8rem;
  border-top: 1px solid #dedfd6;
  color: #6d746b;
  font-size: 0.82rem;
}
.zc-plan a {
  display: flex;
  justify-content: space-between;
  margin-top: 1rem;
  padding: 0.8rem 1rem;
  background: #40594a;
  color: white;
  border-radius: 4px;
  text-decoration: none;
  font-size: 0.88rem;
  font-weight: 600;
}
.zc-plan a:hover {
  background: transparent;
  color: #40594a;
  border: 1px solid #40594a;
}

/* Présentation des formules cours guidés */
.pricing-container .section-head {
  margin-bottom: 22px;
}
.pricing-intro {
  max-width: 560px;
  margin: 12px 0 0;
  color: var(--muted);
}
.availability-note {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 11px;
  max-width: 900px;
  margin: 0 0 24px;
  padding: 13px 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 255, 255, .48);
  color: var(--dark);
  font-size: .88rem;
}
.availability-note > span:last-child {
  color: var(--muted);
}
.availability-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #66866b;
  box-shadow: 0 0 0 4px rgba(102, 134, 107, .13);
}
.pricing-container .zc-pricing__grid {
  align-items: stretch;
}
.pricing-container .zc-plan {
  position: relative;
  padding: 1.7rem;
  border-radius: 10px;
  border-color: #d9d2c8;
}
.pricing-container .zc-plan a {
  border-radius: 999px;
}
.pricing-container .zc-plan--featured {
  padding: 2rem;
  border: 2px solid #486252;
  background: #f7f8f3;
  box-shadow: 0 18px 42px rgba(41, 53, 44, .13);
}
.zc-plan__badge {
  align-self: flex-start;
  margin: -.45rem 0 1rem;
  padding: 7px 11px;
  border-radius: 999px;
  background: #40594a;
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.pricing-container .zc-plan--featured .zc-plan__eyebrow {
  color: #40594a;
}
.pricing-container .zc-plan--featured h3 {
  font-size: 1.7rem;
}
.pricing-container .zc-plan--featured .zc-plan__price {
  font-size: 2.55rem;
}
.zc-plan__description {
  color: #40594a;
  font-weight: 600;
}
.zc-plan__value {
  margin: .5rem 0 1rem;
  padding: 11px 13px;
  border-left: 3px solid #66866b;
  background: rgba(102, 134, 107, .09);
  color: #40594a;
  font-size: .84rem;
  line-height: 1.5;
}
.pricing-container .zc-plan--featured a {
  background: #40594a;
  border: 1px solid #40594a;
  border-radius: 999px;
  padding: .95rem 1.15rem;
}
.pricing-container .zc-plan--featured a:hover {
  background: #314638;
  color: white;
}

/* Animations d’apparition au défilement (activées uniquement par JavaScript). */
@media (prefers-reduced-motion: no-preference) {
  .reveal-enabled .reveal-item {
    opacity: 0;
    transform: translate3d(0, 30px, 0) scale(.985);
    filter: blur(5px);
    transition:
      opacity 850ms cubic-bezier(.2,.75,.25,1),
      transform 850ms cubic-bezier(.2,.75,.25,1),
      filter 850ms cubic-bezier(.2,.75,.25,1);
    transition-delay: var(--reveal-delay, 0ms);
    will-change: opacity, transform, filter;
  }

  .reveal-enabled .reveal-item.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
    filter: blur(0);
    will-change: auto;
  }

  .reveal-enabled .service-row.reveal-item:nth-of-type(even) {
    transform: translate3d(28px, 12px, 0);
  }

  .reveal-enabled .service-row.reveal-item:nth-of-type(odd) {
    transform: translate3d(-28px, 12px, 0);
  }

  .reveal-enabled .service-row.reveal-item.is-visible {
    transform: translate3d(0, 0, 0);
  }

  .image-card img {
    transition: transform 900ms cubic-bezier(.2,.7,.2,1), filter 900ms ease;
  }

  .image-card:hover img,
  .image-card:focus-visible img {
    transform: scale(1.055);
  }

  .btn, .nav-cta, .text-link, .zc-plan a {
    transition: transform 280ms cubic-bezier(.2,.7,.2,1), background-color 280ms ease,
      box-shadow 280ms ease, color 280ms ease;
  }

  .btn:hover, .nav-cta:hover, .zc-plan a:hover {
    transform: translateY(-2px);
    box-shadow: 0 9px 22px rgba(41, 42, 38, .16);
  }

  .image-card, .zc-plan {
    transition: transform 450ms cubic-bezier(.2,.7,.2,1), box-shadow 450ms ease;
  }

  .image-card:hover, .image-card:focus-visible, .zc-plan:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 38px rgba(41, 42, 38, .15);
  }

  .reveal-enabled .image-card.reveal-item.is-visible:hover,
  .reveal-enabled .image-card.reveal-item.is-visible:focus-visible,
  .reveal-enabled .zc-plan.reveal-item.is-visible:hover {
    transform: translateY(-5px);
  }

  .hero-content > * {
    animation: hero-enter 950ms cubic-bezier(.2,.75,.25,1) both;
  }

  .hero-content > *:nth-child(2) { animation-delay: 100ms; }
  .hero-content > *:nth-child(3) { animation-delay: 180ms; }
  .hero-content > *:nth-child(4) { animation-delay: 260ms; }

  @keyframes hero-enter {
    from { opacity: 0; transform: translate3d(0, 22px, 0); filter: blur(5px); }
    to { opacity: 1; transform: translateY(0); }
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

/* Bandeau de choix cookies : commandes de refus et d’acceptation aussi visibles. */
.cookie-banner[hidden], .cookie-settings[hidden] { display: none !important; }
.cookie-banner {
  position: fixed; z-index: 1000; inset: auto 20px 20px; margin-inline: auto;
  width: min(960px, calc(100% - 40px)); padding: 24px; border: 1px solid rgba(255,255,255,.18);
  border-radius: 18px; color: #f7f8f5; background: rgba(24,29,26,.97);
  box-shadow: 0 24px 70px rgba(0,0,0,.28); backdrop-filter: blur(18px);
  display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 20px 28px;
}
.cookie-banner__copy h2 { margin: 0 0 8px; font-size: 1.3rem; }
.cookie-banner__copy p:not(.eyebrow) { margin: 0 0 8px; max-width: 66ch; color: rgba(255,255,255,.78); font-size: .9rem; }
.cookie-banner .eyebrow { margin: 0 0 7px; color: #b7c7b7; }
.cookie-banner a { color: #d9e8d9; text-underline-offset: 3px; }
.cookie-banner__actions { display: grid; grid-template-columns: 1fr 1fr; align-content: center; gap: 8px; min-width: 330px; }
.cookie-button, .cookie-manage { min-height: 42px; padding: 10px 15px; border: 1px solid #e7eee7; border-radius: 999px; background: #e7eee7; color: #1d2820; font: inherit; font-weight: 650; cursor: pointer; }
.cookie-button--quiet { background: #e7eee7; color: #1d2820; }
.cookie-manage { grid-column: 1 / -1; justify-self: center; border: 0; padding: 5px; min-height: 32px; background: transparent; color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.cookie-button:hover, .cookie-button:focus-visible, .cookie-manage:focus-visible { outline: 2px solid #c6dfc5; outline-offset: 3px; }
.cookie-settings { grid-column: 1 / -1; display: grid; gap: 12px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.2); }
.cookie-settings label { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cookie-settings label span { color: rgba(255,255,255,.65); font-size: .85rem; }
.cookie-settings input { accent-color: #9db69e; }
.cookie-settings .cookie-button { justify-self: start; }
@media (max-width: 640px) {
  .cookie-banner { inset: auto 10px 10px; width: calc(100% - 20px); max-height: min(88vh, 660px); overflow-y: auto; padding: 19px; grid-template-columns: 1fr; gap: 14px; }
  .cookie-banner__actions { min-width: 0; }
}

.legal-content { max-width: 820px; }
.legal-content h2 { margin: 2.4rem 0 .8rem; }
.legal-content h2:first-child { margin-top: 0; }
.legal-content p { max-width: 78ch; line-height: 1.75; }
.legal-content a { text-underline-offset: 3px; }


/* Marque Zanotti : wordmark vectoriel, net à toutes les tailles. */
.brand { flex-shrink: 0; }
.brand-logo { display: block; width: clamp(132px, 15vw, 190px); height: auto; max-height: 54px; object-fit: contain; }
.site-footer .brand-logo { width: 190px; max-height: 58px; }
@media (max-width: 760px) { .brand-logo { width: 132px; max-height: 44px; } .site-footer .brand-logo { width: 164px; } }
