/* Structure : en-tête, pied de page, conteneurs et sections. */
.conteneur { width: min(100% - 2 * var(--marge), var(--largeur)); margin-inline: auto; }
.section { padding-block: clamp(80px, 12vw, 168px); }

/* ---- En-tête ---- */
.entete { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; gap: 32px; padding: 18px var(--marge); background: rgba(18, 16, 14, .94); backdrop-filter: blur(10px); border-bottom: 1px solid var(--ligne); transition: background .4s, border-color .4s, padding .4s; }
.entete--transparent { position: fixed; inset: 0 0 auto; background: transparent; border-color: transparent; backdrop-filter: none; }
.entete--transparent.defile { background: rgba(18, 16, 14, .94); border-color: var(--ligne); backdrop-filter: blur(10px); padding-block: 12px; }
.entete__logo img { width: 128px; height: auto; }
.navigation { display: flex; align-items: center; gap: clamp(18px, 2.4vw, 36px); margin-left: auto; }
.navigation > a { position: relative; font: 500 .8125rem/1 'Figtree', sans-serif; text-transform: uppercase; letter-spacing: .14em; text-decoration: none; color: var(--chaux); opacity: .82; transition: opacity .2s; }
.navigation > a:hover, .navigation > a[aria-current="page"] { opacity: 1; }
.navigation > a::after { content: ''; position: absolute; left: 0; right: 0; bottom: -8px; height: 1px; background: var(--laiton); transform: scaleX(0); transform-origin: left; transition: transform .4s var(--courbe); }
.navigation > a:hover::after, .navigation > a[aria-current="page"]::after { transform: scaleX(1); }
.langues { display: inline-flex; align-items: center; gap: 8px; font: 600 .78rem/1 'Figtree', sans-serif; letter-spacing: .12em; color: var(--pierre); }
.langues a { color: var(--pierre); text-decoration: none; }
.langues a:hover { color: var(--chaux); }
.langues [aria-current] { color: var(--chaux); }
.entete__menu { display: none; margin-left: auto; width: 44px; height: 44px; border: none; background: none; }
.entete__menu span:not(.visuellement-cache) { display: block; width: 26px; height: 1.5px; margin: 7px auto; background: var(--chaux); transition: transform .3s; }
.entete__menu[aria-expanded="true"] span:nth-child(1) { transform: translateY(4.25px) rotate(45deg); }
.entete__menu[aria-expanded="true"] span:nth-child(2) { transform: translateY(-4.25px) rotate(-45deg); }

/* ---- Pied de page ---- */
.pied { padding: 0 var(--marge) 32px; background: var(--nuit); border-top: 1px solid var(--ligne); }
.frise { color: var(--laiton); opacity: .35; margin-bottom: 64px; }
.pied__grille { display: grid; grid-template-columns: 1.4fr 1fr 1fr auto; gap: 40px; max-width: var(--largeur); margin: 0 auto 56px; }
.pied__marque img { width: 140px; height: auto; margin-bottom: 18px; }
.pied__signature { font: italic 300 1.15rem/1.4 'Fraunces', serif; color: var(--laiton); max-width: 26ch; }
.pied__liens { display: grid; gap: 10px; align-content: start; }
.pied__liens a, .pied__adresse a { text-decoration: none; color: var(--chaux); opacity: .8; }
.pied__liens a:hover, .pied__adresse a:hover { opacity: 1; }
.pied__adresse { font-style: normal; color: var(--pierre); line-height: 1.8; }
.pied__sante { display: flex; align-items: center; justify-content: center; gap: 10px; max-width: none; padding: 22px 0; border-block: 1px solid var(--ligne); font: 500 .875rem/1.4 'Figtree', sans-serif; text-align: center; color: var(--chaux); }
.pied__sante .etoile { color: var(--laiton); flex: none; }
.pied__bas { max-width: none; margin-top: 22px; text-align: center; font-size: .8rem; color: var(--pierre); }
.pied__bas a { color: var(--pierre); }

@media (max-width: 960px) {
  .entete__menu { display: block; position: relative; z-index: 2; }
  .navigation { position: fixed; inset: 0; flex-direction: column; justify-content: center; gap: 28px; background: var(--nuit); opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
  .navigation.ouverte { opacity: 1; visibility: visible; }
  .navigation > a { font: 300 2rem/1.1 'Fraunces', serif; text-transform: none; letter-spacing: 0; }
  .pied__grille { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) { .pied__grille { grid-template-columns: 1fr; } }
