/* Polices hébergées sur le site (fichiers Google Fonts, licence SIL Open Font License) : aucun appel vers Google. */
/* typographie de la brochure (19 oct. 2026) : Cormorant Garamond 500 (titres, italique véritable) et Inter 400/600 (textes, boutons), fichiers locaux, variantes utiles seulement */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-italic-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(fonts/cormorant-garamond-italic-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/inter-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Inter';font-style:normal;font-weight:400 600;font-display:swap;src:url(fonts/inter-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}

/* ============================================================
   Alvora Riviera · feuille de style commune (accueil + pages produit)
   ============================================================ */
:root{
  --canvas:#F9F6EF; --canvas-deep:#EDE5D5; --panel:#E8DCC6; --panel-night:#0F284A;
  --accent:#C84F29; --accent-hover:#AD4220; --accent-muted:rgba(200,79,41,.18);
  --bouton:#0F284A; --bouton-hover:#0A1D37; --bouton-ombre:rgba(15,40,74,.18);
  --gold:#D3A92E; --gold-text:#8A6A0F; --line:#CFC8BC; --line-strong:#A89E8C;
  --text-primary:#0F284A; --focus:#0F284A; --text-secondary:#4A5568; --text-on-night:#F5ECDD;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Inter',system-ui,sans-serif; --mono:'Inter',system-ui,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1); --ease-soft:cubic-bezier(.4,0,.2,1);
  --r:14px; --r-carte:20px;
  --gout:clamp(20px,6vw,96px);
  --largeur:1240px;
  --nav-h:84px;
  /* ---------- échelle typographique commune (20 oct. 2026) ----------
     Une seule source pour tout le site : chaque catégorie a sa taille, son interligne et sa graisse ;
     les règles locales n'écrivent plus de taille en dur, elles utilisent ces variables.
     h1 : titre principal de page · h2 : titre de section · h3 : sous-titre, titre d'étape, accroche
     card : titre de carte, nom de produit, famille olfactive · faq : question de FAQ et titre d'accordéon
     body : paragraphes · action : boutons et liens d'action · field : libellés et champs
     small : mentions secondaires et pied de page · kicker : petits intitulés en capitales
     Exceptions identifiées (valeurs propres) : titre de couverture, prix, logo et signature du pied de page,
     navigation du menu, libellés des vignettes à 4 colonnes sur mobile. */
  --t-h1:48px; --lh-h1:1.06;
  --t-h2:42px; --lh-h2:1.1;
  --t-h3:28px; --lh-h3:1.15;
  --t-card:24px; --lh-card:1.2;
  --t-faq:22px; --lh-faq:1.3;
  --t-body:17px; --lh-body:1.6;
  --t-action:16px;
  --t-field:16px;
  --t-small:14px; --lh-small:1.5;
  --t-kicker:13px; --lh-kicker:1.4; --ls-kicker:.1em;
}
/* tablette (768 à 1024 px) */
@media (max-width:1024px){:root{--t-h1:44px;--t-h2:36px;--t-h3:26px;--t-card:22px;--t-faq:21px}}
/* mobile (767 px et moins) : titres réduits, textes et champs à 16 px minimum */
@media (max-width:767px){:root{--t-h1:32px;--t-h2:28px;--t-h3:23px;--t-card:21px;--t-faq:19px;--t-body:16px;--t-kicker:12px}}
*{box-sizing:border-box}
html,body{overflow-x:hidden;overflow-x:clip}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--canvas);color:var(--text-primary);font-family:var(--sans);font-size:var(--t-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1;margin:0;letter-spacing:-.005em}
h1{font-size:var(--t-h1);line-height:var(--lh-h1)}
h2{font-size:var(--t-h2);line-height:var(--lh-h2);font-family:var(--serif);font-weight:500}
h3{font-size:var(--t-h3);line-height:var(--lh-h3);font-family:var(--serif);font-weight:500}
p{margin:0}
em{font-style:italic}
.wrap{max-width:var(--largeur);margin:0 auto}
.kicker{display:block;font-family:var(--sans);font-size:var(--t-kicker);font-weight:500;letter-spacing:var(--ls-kicker);text-transform:uppercase;color:var(--text-secondary);margin-bottom:16px;line-height:var(--lh-kicker)}
.lede{font-size:var(--t-body);line-height:var(--lh-body);color:var(--text-primary);max-width:56ch}
.mini{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary)}
.skip{position:absolute;left:-999px;top:8px;background:var(--text-primary);color:var(--canvas);padding:10px 16px;border-radius:999px;z-index:100}
.skip:focus{left:16px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:6px}
.bureau{display:inline}
@media (max-width:1024px){.bureau{display:none}}

/* ---------- en-tête ---------- */
.top{position:fixed;inset:0 0 auto 0;z-index:50;display:grid;grid-template-columns:auto 1fr auto;align-items:center;padding:12px var(--gout);background:rgba(249,246,239,.9);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 1px 0 rgba(15,40,74,.08);transition:background .6s var(--ease),box-shadow .6s var(--ease),padding .6s var(--ease)}
.top.scrolled{background:rgba(249,246,239,.96);box-shadow:0 1px 0 var(--line);padding:10px var(--gout)}
.top .nav-bureau{display:flex;justify-content:flex-end;align-items:center;gap:34px}
.top .nav-bureau a{text-decoration:none;font-size:15px;font-weight:500;letter-spacing:.01em;color:var(--text-primary);border-bottom:1px solid transparent;transition:border-color .3s;white-space:nowrap}
.top .nav-bureau a:hover{border-color:var(--text-primary)}
.top .nav-bureau .rdv{font-weight:600;display:inline-flex;align-items:center;gap:6px}
.top .nav-bureau .rdv span{font-size:1.05em;transition:transform .3s var(--ease)}
.top .nav-bureau .rdv:hover span{transform:translate(2px,-2px)}
.top .logo{justify-self:start}
.top .logo img{height:36px;width:auto}
.top .cta{justify-self:end}
@media (max-width:1380px){.top .nav-bureau{gap:24px}.top .nav-bureau a{font-size:14px}}
@media (max-width:1180px){.top .nav-bureau{display:none}}
.top .cta{display:flex;align-items:center;gap:10px}
/* sur ordinateur, le bouton d'en-tête laisse la place au lien « Rencontrons-nous » */
@media (min-width:1181px){.top .cta{display:none}}
.top .libelle-court{display:none}
.burger{display:none;width:44px;height:44px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;cursor:pointer;padding:0;flex-direction:column;align-items:center;justify-content:center;gap:5px}
.burger span{display:block;width:18px;height:1.5px;background:var(--text-primary);transition:transform .3s var(--ease),opacity .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.burger:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
/* le bouton menu précède le logo dans le code (ordre clavier = ordre visuel) ; sur ordinateur il reste masqué */
.top .logo{grid-column:1;grid-row:1}.top .nav-bureau{grid-column:2;grid-row:1}.top .cta{grid-column:3;grid-row:1}
.top>.burger{grid-row:1}
@media (min-width:768px) and (max-width:1180px){.top{grid-template-columns:auto auto 1fr auto;column-gap:14px}.top>.burger{grid-column:1}.top .logo{grid-column:2}.top .cta{grid-column:4}.top .nav-bureau{display:none}.top .menu-mobile{grid-row:2}}
.menu-mobile{grid-column:1/-1;display:flex;flex-direction:column;gap:4px;padding:14px 0 8px;border-top:1px solid var(--line);margin-top:12px}
.menu-mobile[hidden]{display:none}
.menu-mobile a{text-decoration:none;font-size:18px;font-family:var(--serif);color:var(--text-primary);padding:10px 4px;border-radius:6px}
.menu-mobile a.bouton{font-family:var(--sans);font-size:var(--t-action);color:#fff;margin-top:10px;align-self:flex-start}
@media (max-width:1180px){.burger{display:flex}}
@media (max-width:720px){.top{padding:12px var(--gout)}.top .logo img{height:28px}.top .cta .bouton{padding:8px 12px 8px 14px;gap:12px;font-size:13px}.top .cta .libelle{display:none}.top .cta .libelle-court{display:inline}}

/* ---------- boutons et liens ---------- */
/* bouton : rectangle aux angles doux, libellé centré, flèche fine à droite */
.bouton{display:inline-flex;align-items:center;justify-content:center;gap:28px;background:var(--bouton);color:#fff;text-decoration:none;font-weight:500;font-size:var(--t-action);letter-spacing:.01em;padding:13px 22px 13px 26px;border-radius:12px;border:0;cursor:pointer;font-family:var(--sans);min-height:52px;transition:background .35s var(--ease),transform .5s var(--ease),box-shadow .5s var(--ease);box-shadow:0 10px 30px var(--bouton-ombre)}
.bouton .disque{width:auto;height:auto;border-radius:0;background:transparent;display:inline-block;font-size:18px;line-height:1;transition:transform .5s var(--ease);flex:none}
.bouton:hover{background:var(--bouton-hover);transform:translateY(-1px);box-shadow:0 14px 34px rgba(15,40,74,.26)}
.bouton:hover .disque{transform:translateX(3px)}
.bouton:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
.bouton[disabled]{opacity:.7;cursor:progress;transform:none}
.top .cta .bouton{min-height:0;padding:10px 16px 10px 18px;gap:18px;font-size:14px;border-radius:10px;box-shadow:none}
.top .cta .bouton:hover{box-shadow:none;transform:none}
.lien{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:var(--t-action);font-weight:500;color:var(--text-primary);padding-bottom:4px;border-bottom:1px solid var(--text-primary);transition:gap .35s var(--ease)}
.lien span{transition:transform .35s var(--ease)}
.lien:hover{gap:14px}
.lien:hover span{transform:translateX(2px)}
.lien:focus-visible{outline:2px solid var(--focus);outline-offset:6px;border-radius:4px}
.lien.discret{color:var(--text-primary);border-bottom-color:var(--line-strong)}
.lien.discret:hover{border-bottom-color:var(--text-primary)}

/* ---------- sections ---------- */
main{position:relative}
.sec{position:relative;padding:clamp(40px,4vw,52px) var(--gout);scroll-margin-top:var(--nav-h)}
.sec.fond{background:var(--canvas-deep)}
/* apparition des blocs : seulement si le script a démarré (classe .anim posée dans <head>) ; filet CSS au bout de 3,5 s */
.anim .sec .part{opacity:0;transform:translateY(16px);transition:opacity .9s var(--ease),transform .9s var(--ease);animation:part-secours 0s linear 3.5s forwards}
@keyframes part-secours{to{opacity:1;transform:none}}
.anim .sec.in .part{opacity:1;transform:none}
.anim .sec.cible .part{opacity:1;transform:none;transition:none;animation:none}
.sec.in .part:nth-child(2){transition-delay:.08s}.sec.in .part:nth-child(3){transition-delay:.16s}.sec.in .part:nth-child(4){transition-delay:.24s}.sec.in .part:nth-child(5){transition-delay:.32s}
.sec.in.done .part{transition-delay:0s!important}
.cadre{border-radius:var(--r);overflow:hidden;position:relative;background:var(--panel)}
.cadre img{width:100%;height:100%;object-fit:cover}

/* visuels manquants : cadre neutre en développement, masqué en production */
.media-manquant{background:var(--panel)}
body.dev .media-manquant{display:grid;place-items:center;border:1px dashed var(--line-strong)}
body.dev .media-manquant::after{content:attr(data-attendu);font-family:var(--mono);font-size:11px;letter-spacing:.06em;line-height:1.5;color:var(--text-secondary);text-align:center;padding:20px;max-width:28ch}
body:not(.dev) .media-manquant{display:none}
body.dev .provisoire{outline:1px dashed var(--line-strong);outline-offset:8px}
body.dev .provisoire-note{display:block;font-family:var(--mono);font-size:11px;color:var(--accent-hover);margin-bottom:14px}
.provisoire-note{display:none}

/* ---------- 1 · hero ---------- */
/* menu fixe et superposé : la section occupe toute la hauteur de la fenêtre sur ordinateur et réserve une seule fois la hauteur réelle du menu */
.hero{position:relative}
/* le bloc de texte est calé par le bas : le bouton frôle la ligne mur/sol de la photo (≈ 62 % de la hauteur sous le bouton) */
.hero .stage{position:relative;overflow:hidden;background:var(--canvas-deep);display:flex;align-items:flex-end;padding:calc(var(--nav-h) + 24px) var(--gout) 38vh}
.hero .poster{position:absolute;inset:0;background-image:url('hero-accueil-v13.jpg');background-size:cover;background-position:0% 50%}
.hero .band{position:relative;width:min(46vw,680px);max-width:100%}
.hero h1{font-size:clamp(36px,4vw,62px);line-height:1.05;color:var(--text-primary)}
.hero h1 em{font-style:italic;font-weight:500}
.hero .filet{display:block;width:44px;height:1px;margin:22px 0 18px;background:var(--text-primary);opacity:.55}
.hero .sous{margin:0;max-width:none;font-family:var(--sans);font-size:clamp(16px,1.25vw,19px);font-weight:400;letter-spacing:normal;text-transform:none;line-height:1.5;color:var(--text-primary)}
.hero .sous span{display:block}
@media (min-width:768px){.hero .sous span{white-space:nowrap}}
.hero .zone{margin:16px 0 0;font-family:var(--sans);font-size:var(--t-small);line-height:var(--lh-small);color:var(--text-primary)}
.hero .actions{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 26px}
.hero .hero-demo{font-size:var(--t-action)}
.hero-photo{display:none;margin:0}
@media (min-width:1025px) and (min-height:600px){.hero .stage{min-height:100vh;min-height:100svh;min-height:100dvh}}
@media (min-width:768px) and (max-width:1024px){
  .hero .band{width:min(56vw,560px)}
  .hero h1{font-size:clamp(40px,5.4vw,52px)}
  .hero .stage{min-height:100svh}
}
/* fenêtre réduite ou plus haute que la photo (paysage, ratio ≤ 3:2) : la photo est « dézoomée » et montrée en entier (16:9),
   le texte reste sur le mur clair à gauche et le diffuseur sur l'étagère de la réception reste visible à droite (20 oct. 2026) */
@media (min-width:768px) and (min-aspect-ratio:1/1) and (max-aspect-ratio:3/2){
  .hero .stage{min-height:calc(100vw * 941 / 1672);padding-bottom:calc(100vw * 941 / 1672 * .36)}
  .hero .poster{background-size:cover;background-position:0% 0%}
  .hero .band{width:min(44vw,620px)}
  .hero h1{font-size:clamp(30px,4.1vw,56px)}
  .hero .filet{margin:16px 0 14px}
  .hero .sous{font-size:clamp(15px,1.5vw,19px)}
  .hero .actions{margin-top:18px}
}
@media (min-width:768px) and (max-width:1100px) and (max-aspect-ratio:4/5){
  .hero .stage{display:block;min-height:min(100svh,150vw);padding:calc(var(--nav-h) + 48px) var(--gout) 0}
  .hero .poster{background-image:url('hero-mobile.jpg')!important;background-image:image-set(url('hero-mobile.webp') type('image/webp'),url('hero-mobile.jpg') type('image/jpeg'))!important;background-size:cover;background-position:50% 100%}
  .hero .band{width:min(100%,560px)}
  .hero .zone{text-shadow:0 0 8px rgba(249,246,239,.95)}
}
/* écrans plus hauts que larges : on resserre le cadrage sur le mur et le diffuseur */
@media (min-width:1025px) and (max-aspect-ratio:3/2){.hero .poster{background-position:0% 50%}.hero .band{width:min(44vw,620px)}}
@media (min-width:1025px) and (min-aspect-ratio:2/1){.hero .poster{background-position:0% 40%}}
/* mobile : voir le bloc « Accueil · version mobile » (photo verticale, texte superposé) */

/* ---------- 2 · la maison ---------- */
/* Qui sommes-nous : deux colonnes alignées en haut, 42/58, section compacte (≈ 72 px haut et bas) */
.maison{padding-top:clamp(40px,3.3vw,48px);padding-bottom:clamp(40px,3.3vw,48px)}
.maison .grille{display:grid;grid-template-columns:minmax(0,48fr) minmax(0,52fr);column-gap:clamp(48px,5vw,80px);align-items:center}
.maison .kicker{margin-bottom:20px}
.maison h2{font-size:var(--t-h2);line-height:var(--lh-h2);text-wrap:balance;font-family:var(--serif);font-weight:500}
.maison .filet{display:block;width:64px;height:1px;margin-top:28px;background:var(--text-primary);opacity:.55}
.maison .texte{max-width:none}
.maison .lede{font-weight:400;font-size:var(--t-body);line-height:var(--lh-body);max-width:52ch}
.maison .lede+.lede{margin-top:20px}
.maison .maison-lien{margin-top:24px}
.maison .lede strong{font-weight:500}
.maison .lien{margin-top:20px}
@media (max-width:1024px){.maison{padding-top:32px;padding-bottom:32px}.maison .grille{column-gap:32px}}
@media (max-width:767px){.maison .grille{grid-template-columns:1fr;row-gap:24px}.maison h2 br{display:none}.maison .filet{margin-top:20px}.maison .texte{max-width:none}.maison .lede{max-width:none}}

/* ---------- 3 · Aura et Horizon : deux colonnes, photo paysage au-dessus du texte ---------- */
.gamme{padding-top:clamp(48px,3.9vw,56px);padding-bottom:clamp(48px,3.9vw,56px)}
/* lien « Nos diffuseurs » : l’intitulé arrive juste sous le menu (on saute la marge haute de la section) pour laisser voir les deux cartes en entier */
#gamme{scroll-margin-top:calc(var(--nav-h) - clamp(48px,3.9vw,56px) + 20px)}
/* lien « Nos fragrances » : même principe, la photo et la liste des familles arrivent juste sous le menu */
#fragrances{scroll-margin-top:calc(var(--nav-h) - clamp(40px,4vw,52px) + 20px)}
/* lien « Vos espaces » : même principe */
#espaces{scroll-margin-top:calc(var(--nav-h) - clamp(40px,4vw,52px) + 20px)}
.gamme h2{font-size:var(--t-h2);line-height:var(--lh-h2);font-family:var(--serif);font-weight:500}
/* cartes (20 oct. 2026) : photo et bandeau ivoire forment une seule carte cliquable ; noms, descriptions et liens alignés */
.duo{margin-top:32px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;align-items:stretch}
.modele{display:flex}
.modele .carte{display:flex;flex-direction:column;width:100%;border-radius:14px;overflow:hidden;background:#F6F1E7;color:var(--text-primary);text-decoration:none}
.modele .carte:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:14px}
.modele .scene{display:block;aspect-ratio:3/2;overflow:hidden;background:var(--panel)}
.modele .scene picture{display:contents}
.modele .scene img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.modele .bandeau{flex:1;display:flex;flex-direction:column;padding:22px 28px 24px}
.modele .ligne{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 16px}
.modele .nom{margin:0;font-family:var(--serif);font-weight:500;font-size:var(--t-h3);line-height:var(--lh-h3);color:var(--text-primary)}
.modele .cle{margin:0;font-family:var(--serif);font-style:italic;font-weight:500;font-size:var(--t-card);line-height:var(--lh-card);color:var(--text-secondary)}
.modele .desc{margin-top:8px;font-size:var(--t-body);line-height:var(--lh-body);color:var(--text-primary)}
/* lieux séparés par des points médians, comme le bandeau des villes */
.modele .desc span{white-space:nowrap}
.modele .desc i{font-style:normal;margin:0 .45em 0 .25em}
.modele .suite{margin-top:auto;padding-top:16px}
.modele .lien-carte{display:inline-flex;align-items:center;gap:12px;font-family:var(--sans);font-size:var(--t-action);font-weight:500;color:var(--text-primary);padding-bottom:5px;border-bottom:1px solid var(--text-primary)}
.modele .lien-carte .fleche{transition:transform .3s var(--ease)}
.modele .carte:hover .lien-carte .fleche{transform:translateX(4px)}
/* informations communes : une seule ligne, sous un filet fin */
.communs{margin-top:30px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px 14px;font-size:var(--t-small);line-height:var(--lh-small);color:var(--text-primary)}
.communs .sep{color:var(--text-secondary)}
@media (max-width:720px){
  .communs{flex-direction:column;gap:4px}
  .communs .sep{display:none}
}

/* ---------- 4 · univers olfactifs : photo verticale à gauche, contenu à droite ---------- */
.fragrances .grille{display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr);column-gap:clamp(40px,4vw,56px);align-items:start}
.fragrances .photo{margin:0;aspect-ratio:4/5;overflow:hidden;border-radius:14px;background:var(--panel)}
.fragrances .photo img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .25s var(--ease)}
.fragrances .photo img.change{opacity:0}
.fragrances .contenu{min-width:0}
.fragrances h2{font-size:var(--t-h2);line-height:var(--lh-h2);font-family:var(--serif);font-weight:500}
.fragrances .lede{margin-top:16px;font-size:var(--t-body);line-height:var(--lh-body);max-width:none}
.fragrances .lede span{display:block}
/* familles : une seule grille à trois colonnes égales, intitulés alignés à gauche sur les mêmes axes */
/* familles (19 oct. 2026) : deux colonnes, intitulés en Cormorant Garamond, famille active soulignée */
.onglets{margin-top:28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 32px;justify-items:start}
.onglet{font-family:var(--serif);font-size:var(--t-card);font-weight:500;line-height:var(--lh-card);color:var(--text-secondary);background:transparent;border:0;border-bottom:1.5px solid transparent;border-radius:0;padding:2px 0 4px;cursor:pointer;white-space:nowrap;text-align:left;transition:color .3s var(--ease),border-color .3s var(--ease)}
.onglet:hover{color:var(--text-primary)}
.onglet::after{content:attr(data-nom);display:block;height:0;overflow:hidden;visibility:hidden;font-weight:500}
.onglet[aria-selected="true"]{color:var(--text-primary);font-weight:500;border-bottom-color:var(--text-primary)}
.onglet:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:4px}
.notes{position:relative;margin-top:30px;padding-top:24px;min-height:110px}
.notes::before{content:"";position:absolute;left:0;top:0;width:64px;height:1px;background:var(--text-primary);opacity:.45}
.notes .etiquette{display:none;font-family:var(--sans);font-size:var(--t-kicker);font-weight:500;letter-spacing:var(--ls-kicker);text-transform:uppercase;color:var(--text-primary);margin-bottom:12px;line-height:var(--lh-kicker)}
.notes .notes-type{display:block;margin-bottom:6px;font-size:var(--t-small);color:var(--text-secondary)}
.notes-txt{font-family:var(--serif);font-size:var(--t-h3);line-height:var(--lh-h3);color:var(--text-primary);transition:opacity .25s var(--ease);font-weight:500}
.notes-desc{display:none;margin-top:8px;font-size:var(--t-body);line-height:var(--lh-body);color:var(--text-secondary);transition:opacity .25s var(--ease)}
.notes.change .notes-txt,.notes.change .notes-desc{opacity:0}
.parfums{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:6px 24px}
.parfums li{font-size:var(--t-body);border-top:1px solid var(--line);padding:8px 0}
.fragrances .suite-frag{margin:26px 0 0;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.fragrances .suite-frag .lien{font-size:var(--t-action)}
.fragrances .sous-lien{font-size:var(--t-small);color:var(--text-secondary)}
/* conformité (23 oct. 2026) : police et taille des textes courants, en italique, un peu détachée de la mention de démonstration */
.fragrances .conformite{margin-top:10px;font-family:var(--sans);font-style:italic;font-weight:400;font-size:15px;line-height:1.5;color:var(--text-primary)}
.fragrances .conformite>span{white-space:nowrap}
/* la ligne ne tient pas en entier sous 1280 px : chaque mention passe sur sa propre ligne, sans le point */
@media (max-width:1279px){.fragrances .conformite>span{display:block}.fragrances .conformite .sep{display:none}}
@media (max-width:1024px){
  .fragrances .grille{grid-template-columns:1fr;row-gap:26px}
  .fragrances .photo{width:min(100%,460px)}
  .notes{min-height:0}
  .fragrances .lede span{display:inline}
}
@media (max-width:720px){.fragrances .photo{width:100%;aspect-ratio:5/4}.onglets{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}.onglet{}.notes-txt{}}
@media (max-width:400px){.onglets{grid-template-columns:1fr;gap:4px 0}}

/* ---------- 5 · vos espaces : liste éditoriale, deux colonnes ---------- */
/* vos espaces (19 oct. 2026) : titre sur une ligne, sous-titre dessous */
.espaces .tete{display:grid;grid-template-columns:1fr;gap:14px;align-items:start;margin-bottom:32px}
.espaces h2{font-size:var(--t-h2);line-height:var(--lh-h2);font-family:var(--serif);font-weight:500}
.espaces .lede{max-width:none;font-size:var(--t-body);line-height:var(--lh-body)}
/* huit secteurs : quatre colonnes, photos 4:3 de même taille, nom en serif dessous */
.secteurs{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 24px}
.secteurs figure{margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:8px;background:var(--panel)}
.secteurs img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;display:block}
.secteurs picture{display:contents}
.secteurs .tuile{display:block;text-decoration:none;color:inherit}
.secteurs .tuile:hover h3{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--line-strong)}
.espaces .besoins{margin-top:30px;font-size:15px;line-height:1.5;font-style:italic;color:var(--text-primary)}
/* taille visuelle alignée sur « Recharges suivantes… » des fiches produits (23 oct. 2026) */
@media (max-width:767px){.espaces .besoins,.fragrances .conformite{font-size:14px}}
/* villes d'intervention : pastilles à contour, pleines au survol */
.pastilles{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.pastilles a{display:inline-flex;align-items:center;min-height:40px;padding:0 18px;border:1px solid var(--text-primary);border-radius:999px;background:transparent;color:var(--text-primary);font-size:var(--t-action);line-height:1.2;text-decoration:none;transition:background-color .25s var(--ease),color .25s var(--ease)}
.pastilles a:hover{background:var(--bouton);color:#fff}
.pastilles a:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:999px}
/* villes : une liste qui revient à la ligne dans la colonne de gauche de « Rencontrons-nous » */
.secteurs h3{margin-top:14px;font-size:var(--t-card);line-height:var(--lh-card);color:var(--text-primary);font-weight:500;font-family:var(--serif)}
.espaces .suite{margin-top:26px;display:flex;justify-content:flex-end}
@media (max-width:1024px){
  .espaces .tete{grid-template-columns:1fr;gap:12px;align-items:start}
  .secteurs{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}
}
@media (max-width:720px){
  .secteurs{gap:24px 16px}
  .secteurs h3{margin-top:12px;}
  .espaces .suite{margin-top:24px}
}
@media (max-width:480px){.secteurs{grid-template-columns:1fr;gap:24px}.secteurs h3{}}

/* ---------- 7 · accompagnement (20 oct. 2026) : bandeau court sans photo, titre à gauche, trois étapes côte à côte à droite, bouton dessous ---------- */
.accomp{scroll-margin-top:calc(var(--nav-h) + 12px);padding-top:clamp(40px,3.3vw,48px);padding-bottom:clamp(40px,3.3vw,48px)}
.accomp .grille{display:grid;grid-template-columns:minmax(0,38fr) minmax(0,62fr);column-gap:clamp(36px,3.6vw,56px);align-items:start}
/* titre sur deux lignes jusqu'à 1025 px : la colonne de gauche garde la place du mot le plus long */
.accomp .tete{min-width:0}
.accomp h2{font-size:clamp(34px,2.9vw,var(--t-h2))}
.accomp .kicker{margin-bottom:20px;color:var(--text-secondary)}
.accomp h2{font-size:var(--t-h2);line-height:var(--lh-h2);text-wrap:balance;font-family:var(--serif);font-weight:500}
.accomp .filet{display:block;width:64px;height:1px;margin-top:28px;background:var(--text-primary);opacity:.55}
.etapes{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(24px,2.6vw,40px)}
.etape{position:relative;display:block;padding-top:18px}
.etape::after{content:"";position:absolute;left:0;top:0;width:32px;height:1px;background:#CEC7BB}
.etape h3{font-size:var(--t-h3);line-height:var(--lh-h3);font-family:var(--serif);font-weight:500;color:var(--text-primary)}
.etape p{margin-top:8px;font-size:var(--t-body);line-height:var(--lh-body);color:var(--text-primary);max-width:none}
@media (max-width:1024px){
  .accomp{padding-top:32px;padding-bottom:32px}
  .accomp .grille{grid-template-columns:1fr;row-gap:24px}
  .accomp h2 br{display:none}
  .accomp .filet{margin-top:20px}
  .etapes{column-gap:24px}
}
@media (max-width:767px){
  .etapes{grid-template-columns:1fr;row-gap:22px}
}
@media (max-width:767px){
  .accomp .kicker{margin-bottom:14px}
  .etapes{row-gap:18px}
}

/* ---------- 8 · questions ---------- */
.faq .grille{display:grid;grid-template-columns:minmax(0,40fr) minmax(0,60fr);column-gap:clamp(48px,4.5vw,64px);align-items:start}
.faq h2{font-size:var(--t-h2);line-height:var(--lh-h2);font-family:var(--serif);font-weight:500}
.faq .lede{margin-top:16px;font-size:var(--t-body);max-width:34ch}
.accordeon{list-style:none;padding:0;margin:0}
.qr{border-top:1px solid var(--line)}
.qr:last-child{border-bottom:1px solid var(--line)}
.qr h3{margin:0;font-size:inherit}
.question{width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:20px;background:transparent;border:0;padding:24px 0;min-height:44px;cursor:pointer;text-align:left;font-family:var(--serif);font-size:var(--t-faq);line-height:var(--lh-faq);color:var(--text-primary);font-weight:500}
.question:hover{color:var(--text-primary);opacity:.8}
.question:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:4px}
.question .signe{flex:none;width:22px;font-family:var(--sans);font-weight:400;font-size:26px;line-height:1;color:var(--text-primary);text-align:right;align-self:center}
.question .signe::before{content:"+"}
.question[aria-expanded="true"] .signe::before{content:"\2212"}
.reponse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s var(--ease)}
.reponse.ouvert{grid-template-rows:1fr}
.reponse>div{overflow:hidden}
.reponse p{margin:0;padding:0 44px 24px 0;font-size:var(--t-body);line-height:var(--lh-body);color:var(--text-primary);max-width:62ch}
@media (max-width:1024px){.faq .grille{column-gap:32px}}
@media (max-width:767px){.faq .grille{grid-template-columns:1fr;row-gap:24px}.faq .lede{max-width:52ch}}
@media (max-width:720px){.question{padding:18px 0;gap:16px}.reponse p{padding-right:28px}.faq h2{}}
@media (prefers-reduced-motion:reduce){.reponse{transition:none}}

/* ---------- 9 · demande de démonstration ---------- */
.rdv .grille{display:grid;grid-template-columns:minmax(0,44fr) minmax(0,56fr);column-gap:clamp(48px,4.5vw,64px);align-items:start}
.rdv h2{font-size:var(--t-h2);line-height:var(--lh-h2);font-family:var(--serif);font-weight:500}
.rdv .lede{margin-top:16px;font-size:var(--t-body);max-width:36ch}
.rdv .reassurance{margin-top:14px;font-size:var(--t-body);color:var(--text-primary)}
.rdv .alternatif{margin-top:40px;font-size:var(--t-body);color:var(--text-primary)}
.rdv .alternatif .appel{margin:0}
.rdv .alternatif .numeros{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:12px}
.rdv .alternatif .numeros li{display:grid;grid-template-columns:7ch 1fr;align-items:baseline;column-gap:12px}
.rdv .alternatif .numeros a{justify-self:start;text-decoration:none;border-bottom:1px solid var(--text-primary);padding-bottom:2px;font-variant-numeric:tabular-nums}
.rdv .alternatif .numeros a:hover{opacity:.75}
@media (max-width:1024px){.rdv .alternatif .numeros a{display:inline-block;padding:11px 0;margin:-11px 0;border-bottom:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}}
.rdv .alternatif .zone{margin-top:22px;font-size:var(--t-body);color:var(--text-secondary)}
.formulaire{display:grid;grid-template-columns:1fr 1fr;gap:22px 20px}
.champ{display:grid;gap:8px}
.champ.large{grid-column:1/-1}
.champ label{font-size:var(--t-field);font-weight:500;color:var(--text-primary)}
.champ input{font:inherit;font-size:var(--t-field);color:var(--text-primary);background:#FFFFFF;border:1px solid #B9C0CC;border-radius:10px;padding:0 18px;height:56px;transition:border-color .3s,box-shadow .3s}
.champ input:focus{outline:0;border-color:var(--text-primary);box-shadow:0 0 0 3px rgba(15,40,74,.15)}
.champ input[aria-invalid="true"]{border-color:var(--accent-hover)}
.champ input::placeholder{color:#8A8F99}
/* champ piège anti-robot : masqué pour de bon, sinon le remplissage automatique de Chrome le remplit et Formspree classe la demande en spam (23 oct. 2026) */
.pot{display:none!important}
.envoi{grid-column:1/-1;margin-top:2px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.envoi .bouton{width:100%;min-height:56px;justify-content:center;box-shadow:none}
.envoi .bouton:hover{box-shadow:none;transform:none}
.envoi .suite{font-size:var(--t-small);color:var(--text-primary)}
.envoi .legal{font-size:var(--t-small)}
.envoi .legal a{color:var(--text-secondary)}
.erreur{grid-column:1/-1;display:none;margin:0;padding:12px 16px;border:1px solid rgba(173,66,32,.45);border-radius:12px;background:rgba(200,79,41,.07);color:var(--accent-hover);font-size:var(--t-small);line-height:var(--lh-small)}
.erreur-champ{display:block;font-size:var(--t-small);line-height:1.4;color:var(--accent-hover)}
.erreur-champ:empty{display:none}
.succes{display:none;border:1px solid var(--line-strong);border-radius:var(--r-carte);padding:24px 26px;background:var(--canvas);font-size:var(--t-body);line-height:var(--lh-body)}
.succes b{font-family:var(--serif);font-weight:500;font-size:var(--t-h3);display:block;margin-bottom:6px;line-height:var(--lh-h3)}
.rdv.envoye .formulaire{display:none}
.rdv.envoye .succes{display:block}
/* rencontrons-nous (19 oct. 2026) : deux colonnes équilibrées, formulaire sobre, zone d'intervention sous les colonnes */
.rdv .grille{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(48px,6vw,96px)}
.rdv .lede{max-width:34ch;line-height:1.5}
.rdv .reassurance{margin-top:8px;font-weight:600}
.rdv .perimetre{margin-top:6px;font-size:var(--t-body);line-height:var(--lh-body);color:var(--text-primary)}
.rdv .alternatif{margin-top:44px}
.rdv .alternatif .numeros{margin-top:16px;gap:14px}
.rdv .alternatif .numeros li{grid-template-columns:9ch 1fr;column-gap:16px}
.rdv .champ label .obl{color:var(--text-primary);margin-left:2px}
.rdv .champ label .facultatif{font-weight:400;color:var(--text-secondary)}
.rdv .champ input{height:54px;background:#FDFBF6;border:1px solid #CFC8BC;border-radius:10px}
.rdv .champ input:focus{border-color:var(--text-primary);box-shadow:0 0 0 3px rgba(15,40,74,.12)}
.rdv .champ input[aria-invalid="true"]{border-color:var(--text-primary);box-shadow:0 0 0 3px rgba(15,40,74,.12)}
.rdv .envoi{margin-top:4px;gap:10px}
.rdv .envoi .legal{font-size:var(--t-small);line-height:var(--lh-small);color:var(--text-secondary)}
.rdv .envoi .legal a{color:var(--text-secondary)}
.rdv .villes{grid-column:1/-1;margin:clamp(36px,4vw,52px) 0 0;padding:clamp(28px,3vw,40px) 0 0;border-top:1px solid var(--line);background:transparent;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:48px;align-items:center}
.rdv .villes-intro{grid-column:1;grid-row:1/3;margin:0}
.rdv .villes .pastilles{grid-column:2}
.rdv .villes-intro .zone-titre{display:block;font-family:var(--serif);font-weight:500;font-size:var(--t-h2);line-height:var(--lh-h2);color:var(--text-primary)}
.rdv .villes-intro .zone-nom{display:block;margin-top:6px;font-size:var(--t-body);line-height:var(--lh-body);color:var(--text-primary)}
.rdv .villes .pastilles{margin:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:0 0}
.rdv .villes .pastilles+.pastilles{margin-top:10px}
.rdv .villes .pastilles li+li::before{content:"·";margin:0 14px;color:var(--text-primary)}
.rdv .villes .pastilles a{display:inline;white-space:nowrap;min-height:0;padding:0 0 1px;border:0;border-bottom:1px solid var(--text-primary);border-radius:0;background:transparent;font-family:var(--sans);font-size:var(--t-action);line-height:1.6;color:var(--text-primary);text-decoration:none;transition:opacity .25s var(--ease)}
.rdv .villes .pastilles a:hover{background:transparent;color:var(--text-primary);opacity:.7}
.rdv .villes .pastilles a:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:2px}
@media (max-width:1024px){
  .rdv .villes{column-gap:32px}
}
/* sous 900 px, le bandeau des villes passe sur une colonne pour ne pas écraser le titre (20 oct. 2026) */
@media (max-width:900px){
  .rdv .villes{grid-template-columns:1fr;grid-template-rows:auto;row-gap:16px}
  .rdv .villes-intro{grid-row:auto}
  .rdv .villes .pastilles{grid-column:1}
  .rdv .villes .pastilles{justify-content:flex-start}
  .rdv .villes .pastilles+.pastilles{margin-top:0}
  .rdv .villes .pastilles li{display:inline}
}
@media (max-width:767px){
  .rdv .villes .pastilles{display:block;line-height:2}
  .rdv .villes .pastilles li{display:inline}
  .rdv .villes .pastilles li+li::before{margin:0 10px}
  .rdv .villes .pastilles a{display:inline-block;min-height:0;padding:11px 0;border-bottom:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
  .rdv .villes .pastilles{line-height:1.4}
}
/* fenêtre réduite et tablette (768 à 1024 px) : formulaire sur deux colonnes (e-mail sur toute la largeur), champs et espacements réduits pour une section plus courte (20 oct. 2026) */
@media (min-width:768px) and (max-width:1024px){.rdv .grille{grid-template-columns:minmax(0,40fr) minmax(0,60fr);column-gap:32px}.rdv h2{font-size:clamp(32px,3.4vw,38px)}.rdv .lede{margin-top:12px}.rdv .alternatif{margin-top:24px}.rdv .alternatif .numeros{margin-top:10px;gap:8px}.rdv .formulaire{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 12px}.rdv .champ{min-width:0;gap:6px}.rdv .champ input{width:100%;min-width:0;height:48px;padding:0 14px}.rdv .envoi{margin-top:2px;gap:8px}.rdv .envoi .bouton{min-height:50px}}
@media (max-width:767px){.rdv .grille{grid-template-columns:1fr;row-gap:32px}.rdv .lede{max-width:52ch}}
@media (max-width:720px){
  .formulaire{grid-template-columns:1fr;gap:18px}
  .rdv h2{}
}

/* ---------- pied de page ---------- */
body>footer{--focus:#F5ECDD;background:var(--panel-night);color:var(--text-on-night);padding:24px var(--gout) 20px}
body>footer .haut{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);column-gap:clamp(32px,4vw,56px);align-items:start}
body>footer .logo{display:block;width:min(70%,280px)}
body>footer .logo img{width:100%;height:auto;display:block}
body>footer .signature{margin-top:12px;font-family:var(--serif);font-size:clamp(20px,1.5vw,21px);line-height:1.1;color:var(--text-on-night)}
body>footer .precisions{margin-top:14px;font-size:var(--t-small);line-height:var(--lh-small);color:rgba(245,236,221,.85)}
body>footer .precisions span{display:block}
body>footer .colonne{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding-top:4px}
body>footer .colonne h2{font-family:var(--sans);font-size:var(--t-kicker);font-weight:500;letter-spacing:var(--ls-kicker);text-transform:uppercase;color:var(--text-on-night);margin:0 0 3px;line-height:var(--lh-kicker)}
body>footer .colonne a{text-decoration:none;font-size:var(--t-small);line-height:var(--lh-small);color:rgba(245,236,221,.92);border-bottom:1px solid transparent;transition:border-color .3s;display:inline-flex;align-items:baseline;gap:8px}
body>footer .colonne a:hover{border-color:rgba(245,236,221,.5)}
body>footer .colonne a span{font-size:.95em}
body>footer .haut-page{margin-top:7px}
body>footer .bas{margin-top:20px;padding-top:12px;border-top:1px solid rgba(245,236,221,.28);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 32px;font-size:var(--t-small);color:rgba(245,236,221,.9)}
body>footer .copyright{display:grid;gap:6px}
body>footer .visuels{font-size:var(--t-small);color:rgba(245,236,221,.7)}
body>footer .legal{display:flex;gap:28px}
body>footer .legal a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s}
body>footer .legal a:hover{border-color:rgba(245,236,221,.5)}
/* fenêtre réduite et tablette (768 à 1024 px) : trois colonnes conservées, logo plus petit, pied de page compact (20 oct. 2026) */
@media (max-width:1024px){body>footer{padding-top:28px}body>footer .haut{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);column-gap:clamp(24px,3vw,40px)}body>footer .logo{width:min(70%,200px)}body>footer .signature{font-size:19px}}
@media (max-width:767px){body>footer .marque{grid-column:1/-1}}
@media (max-width:520px){body>footer .haut{grid-template-columns:1fr;row-gap:24px}body>footer .logo{width:min(80%,280px)}body>footer .bas{flex-direction:column}}

/* ---------- accessibilité, mouvement réduit ---------- */
@media (pointer:coarse){.bouton,.lien,.top .nav-bureau a{min-height:44px;display:inline-flex;align-items:center}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important}
  .anim .sec .part{opacity:1;transform:none;animation:none}
}
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}

/* ---------- lecture sur mobile (18 oct. 2026) : règles limitées aux petits écrans, le rendu ordinateur reste inchangé ---------- */
@media (max-width:1180px){
  .menu-mobile a.bouton{padding:13px 22px 13px 26px}
}
@media (max-width:720px){
  /* mention sous le bouton des pages espaces : « Sans engagement » passe entier à la ligne */
  .hotel .mention .sep-mention{display:none}
  .hotel .mention .fin-mention{display:block}
  /* pages villes : listes de liens sans points de séparation orphelins */
  .hotel.nice .aussi>span{flex-basis:100%}
  .hotel.nice .villes-texte .wrap>span{flex-basis:100%}
  .hotel.nice .villes-texte .pastilles,.hotel.nice .aussi .pastilles{gap:8px}
  /* zones tactiles plus confortables, sans décaler la mise en page */
  .page a.retour,.fiche3 a.retour{padding:10px 0;margin:-10px 0}
  body>footer .colonne{gap:2px}
  body>footer .colonne a{padding:12px 0}
}
@media (max-width:380px){
  /* très petits écrans : le logo garde ses proportions et les boutons tiennent sur une ligne */
  .top .cta{gap:8px}
  .top .cta .bouton{padding:8px 14px}
  .top .cta .bouton .disque{display:none}
  .burger{width:40px;height:40px}
  .bouton{gap:12px;padding-left:18px;padding-right:16px}
}

/* ============================================================
   Accueil · version mobile (18 oct. 2026) : tout est limité à .accueil et aux écrans de moins de 768 px ;
   l'ordinateur et la tablette gardent leur rendu.
   ============================================================ */
.f-court,.accueil .secteurs .court,.accueil .univers-choix,.accueil .gamme .q-mobile,.accueil .espaces .m-txt,.accueil .accomp .m-txt,.accueil .rdv .m-txt{display:none}
/* mobile : petits intitulés en capitales un demi-point plus petits avec Inter (19 oct. 2026) */
@media (max-width:767px){.kicker,.associes .tete h2.kicker{}}
@media (max-width:767px){
  /* 1 · premier écran : photo verticale propre au mobile (1024 × 1536), texte sur le mur clair du haut, arches, réception et diffuseur dessous */
  .accueil .hero .stage{display:block;min-height:178vw;padding:calc(var(--nav-h) + 28px) 24px 0;background:var(--canvas-deep)}
  .accueil .hero .poster{display:block;background-image:url('hero-mobile.jpg')!important;background-image:image-set(url('hero-mobile.webp') type('image/webp'),url('hero-mobile.jpg') type('image/jpeg'))!important;background-size:150vw auto;background-position:60% 0;background-repeat:no-repeat}
  .accueil .hero .band{width:100%;max-width:440px;padding:0 0 24px}
  .accueil .hero h1{font-size:clamp(28px,8.8vw,36px);line-height:1.06}
  .accueil .hero h1 em{display:block;max-width:6.4em}
  .accueil .hero .filet{display:none}
  .accueil .hero .sous{margin-top:14px;font-size:16px;line-height:1.5}
  .accueil .hero .actions{margin-top:16px;flex-direction:column;align-items:flex-start;gap:4px}
  .accueil .hero .hero-demo{min-height:44px;text-shadow:0 0 6px rgba(249,246,239,.95)}
  .accueil .hero .zone{margin-top:6px;line-height:1.45;font-weight:500;color:var(--text-primary);text-shadow:0 0 6px rgba(249,246,239,.95),0 0 14px rgba(249,246,239,.8)}
  .accueil .hero-photo{display:none}

  /* 3 · nos diffuseurs (20 oct. 2026) : une carte par ligne, photo paysage 3:2 entière (diffuseur visible), nom et surface sur une ligne, usages séparés par des points */
  .accueil .duo{grid-template-columns:minmax(0,1fr);row-gap:16px;margin-top:20px}
  .accueil .modele .carte{border-radius:12px}
  .accueil .modele .scene{aspect-ratio:3/2}
  .accueil .modele .bandeau{padding:16px 18px 18px}
  .accueil .modele .ligne{gap:2px 12px}
  .accueil .modele .desc{margin-top:6px;line-height:1.5}
  .accueil .modele .desc i{margin:0 .35em 0 .2em}
  .accueil .modele .suite{padding-top:12px}
  .accueil .modele .lien-carte{min-height:44px;padding-bottom:4px}

  /* 4 · fragrances : intro, sélecteur, photo, notes, lien */
  .accueil .fragrances .grille{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .accueil .fragrances .contenu{display:contents}
  .accueil .fragrances .kicker{order:1}
  .accueil .fragrances h2{order:2}
  .accueil .fragrances .lede{order:3;margin-top:12px}
  .accueil .fragrances .onglets{display:none}
  .accueil .univers-choix{display:block;order:4;width:100%;margin-top:18px}
  .accueil .univers-choix label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  .accueil .univers-choix select{display:block;width:100%;min-height:50px;margin:0;font-family:var(--sans);font-size:var(--t-field);color:var(--text-primary);background:#FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%230F284A' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 16px center;border:1px solid var(--text-primary);border-radius:10px;padding:0 44px 0 16px;-webkit-appearance:none;appearance:none}
  .accueil .univers-choix select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
  .accueil .fragrances .photo{order:5;width:100%;margin-top:14px;aspect-ratio:16/9}
  .accueil .fragrances .notes{order:6;margin-top:14px;padding-top:0;border-top:0;min-height:0}
  .accueil .notes .etiquette{display:none}
  .accueil .notes::before{display:none}
  .accueil .fragrances .notes{padding-top:0}
  .accueil .notes-txt{color:var(--text-primary)}
  .accueil .notes-desc{margin-top:4px;}
  .accueil .fragrances .suite-frag{order:7;margin-top:18px}
  .accueil .fragrances .suite-frag .lien{min-height:44px}

  /* 5 · vos espaces (20 oct. 2026) : huit vignettes sur deux colonnes, intitulés complets lisibles (deux lignes au plus) */
  .accueil .espaces .tete{gap:8px;margin-bottom:18px}
  .accueil .secteurs{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}
  .accueil .secteurs figure{aspect-ratio:4/3;border-radius:10px}
  .accueil .secteurs h3{margin-top:8px;font-family:var(--sans);font-size:15px;font-weight:500;line-height:1.3;letter-spacing:0;text-align:left;text-wrap:balance}
  .accueil .secteurs .long{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal}
  .accueil .secteurs .court{display:none}
  .accueil .espaces .besoins{margin-top:18px}
  .accueil .espaces .o-txt{display:none}
  .accueil .espaces .m-txt{display:inline}
  .accueil .rdv .villes{margin-top:28px;padding-top:22px;padding-bottom:26px}
  .accueil .rdv .villes-intro .zone-titre{}
  .accueil .rdv .villes-intro .zone-nom{}
  .accueil .pastilles a{min-height:40px;padding:0 15px}
  .accueil .espaces .suite{margin-top:16px}
  .accueil .espaces .suite .bouton{width:100%}


  /* 8 · rencontrons-nous : coordonnées sur deux colonnes, formulaire compact */
  .accueil .rdv h2 em{display:block}
  .accueil .rdv .lede{margin-top:12px}
  .accueil .rdv .grille{grid-template-columns:minmax(0,1fr);row-gap:20px}
  .accueil .rdv .reassurance{margin-top:8px}
  .accueil .rdv .alternatif{margin-top:16px}
  .accueil .rdv .alternatif .numeros{gap:10px;margin-top:10px}
  .accueil .rdv .alternatif .zone{margin-top:10px}
  .accueil .formulaire{grid-template-columns:minmax(0,1fr);gap:14px}
  .accueil .champ{gap:6px}
  .accueil .champ label{}
  .accueil .champ{min-width:0}
  .accueil .champ input{width:100%;min-width:0;height:52px;padding:0 14px}
  .accueil .envoi{margin-top:4px;gap:10px}

  /* 9 · pied de page : voir le bloc commun « pied de page mobile » en fin de feuille */
  .accueil .rdv{padding-bottom:28px}
}
@media (max-width:359px){
  /* très petits écrans : photo un peu plus grande sous le texte, formulaire sur une colonne pour garder des champs confortables */
  .accueil .hero .stage{min-height:195vw}
  .accueil .hero .sous{font-size:15px}
  .accueil .hero .poster{background-size:162vw auto}
  .accueil .secteurs h3{font-size:14px}
  .accueil .espaces .suite .bouton{gap:10px;padding-left:14px;padding-right:14px;}
  .accueil .formulaire{grid-template-columns:minmax(0,1fr)}
}

/* ============================================================
   Pied de page mobile commun à toutes les pages (18 oct. 2026) : marque compacte, « Découvrir » et « À vos côtés »
   côte à côte, informations secondaires dessous. Uniquement sous 768 px.
   ============================================================ */
@media (max-width:767px){
  body>footer{padding-top:28px}
  body>footer .haut{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;row-gap:16px}
  body>footer .marque{grid-column:1/-1}
  body>footer .logo{width:min(46%,170px)}
  body>footer .signature{margin-top:10px;font-size:19px}
  body>footer .precisions{margin-top:8px;}
  body>footer .f-long{display:none}
  body>footer .f-court{display:inline}
  body>footer .bas{flex-direction:column;margin-top:18px;gap:10px}
  body>footer .copyright{line-height:1.5;gap:4px}
  body>footer .visuels{line-height:1.5}
  body>footer .legal{flex-wrap:wrap;gap:0 24px}
  body>footer .legal a{display:inline-block;padding:12px 0}
}
@media (max-width:374px){
  /* petits écrans : colonnes à la largeur de leur contenu pour garder « Le marketing olfactif » et « Rencontrons-nous ↗ » sur une ligne */
  body>footer .haut{grid-template-columns:minmax(0,auto) minmax(0,auto);justify-content:space-between;column-gap:10px}
  body>footer .marque{contain:inline-size}
  body>footer .colonne a{display:block;white-space:nowrap}
  body>footer .colonne a span{margin-left:6px}
}

/* ============================================================
   En-tête mobile commun (18 oct. 2026) : menu à gauche, logo au centre exact de l'écran, rien à droite.
   Deux colonnes latérales de 44 px de même largeur garantissent le centrage. Uniquement sous 768 px.
   ============================================================ */
@media (max-width:767px){
  .top,.top.scrolled{grid-template-columns:44px minmax(0,1fr) 44px;padding-left:16px;padding-right:16px}
  .top .logo{grid-column:2;grid-row:1;justify-self:center}
  .top .cta{display:none}
  .top>.burger{grid-column:1;justify-self:start}
  .top .burger{width:44px;height:44px}
  .top .menu-mobile{grid-row:2}
}

/* ============================================================
   Accueil · tablette (768 à 1024 px) : vignettes sur une ligne, fragrances et accompagnement sur deux colonnes
   ============================================================ */
@media (min-width:768px) and (max-width:1024px){
  .accueil .secteurs{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 14px}
  .accueil .secteurs h3{}
  .accueil .fragrances .grille{grid-template-columns:minmax(0,40fr) minmax(0,60fr);column-gap:32px;align-items:stretch}
  /* la photo suit la hauteur du texte à droite (recadrage centré, sans déformation) */
  .accueil .fragrances .photo{position:relative;width:100%;aspect-ratio:auto;height:100%;min-height:0}
  .accueil .fragrances .photo img{position:absolute;inset:0;width:100%;height:100%}
  .accueil .onglets{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
  .accueil .onglet{}

}

/* ---------- accueil, 19 oct. 2026 : boutons principaux, liens de découverte, flèche commune en SVG, pastilles des villes ---------- */
.accueil .fleche,.accueil .bouton .disque{display:inline-block;flex:none;width:16px;height:16px;font-size:0;line-height:0;color:inherit;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8h11.5M9.5 3.5 14 8l-4.5 4.5' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M2 8h11.5M9.5 3.5 14 8l-4.5 4.5' fill='none' stroke='%23000' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;transition:none}
.accueil .bouton{gap:16px;background:var(--bouton);color:#F9F6EF;font-family:var(--sans);font-weight:500;font-size:var(--t-action);letter-spacing:0;text-transform:none;font-style:normal;line-height:1.2;min-height:52px;padding:0 24px;border-radius:10px;box-shadow:none;transition:background-color .25s var(--ease)}
.accueil .bouton:hover{background:var(--bouton-hover);transform:none;box-shadow:none}
.accueil .bouton:hover .disque{transform:none}
.accueil .bouton:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:10px}
.accueil .envoi .bouton{width:100%;min-height:52px}
.accueil .lien{gap:16px;font-family:var(--sans);font-size:var(--t-action);font-weight:500;color:var(--text-primary);padding-bottom:5px;border-bottom:1px solid var(--text-primary);transition:opacity .25s var(--ease)}
.accueil .lien:hover{gap:16px;opacity:.72}
.accueil .lien:hover span,.accueil .lien:hover .fleche{transform:none}
.accueil .lien:focus-visible{outline:2px solid var(--focus);outline-offset:6px;border-radius:4px}
.accueil .secteurs h3{display:block}
/* flèche des vignettes : caractère en ligne, collé au dernier mot (pas de flèche seule à la ligne) */
.accueil .secteurs h3 .fleche{display:inline;width:auto;height:auto;margin-left:.35em;background:none;-webkit-mask:none;mask:none;font-family:var(--sans);font-size:.6em;line-height:1;vertical-align:.15em;opacity:.55;transition:opacity .25s var(--ease)}
.accueil .secteurs .tuile:hover h3 .fleche{opacity:1}
.accueil .secteurs .tuile:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:12px}
@media (max-width:1024px){
  .accueil .pastilles a{font-family:var(--sans);min-height:40px;padding:0 18px;border:1px solid var(--text-primary);border-radius:999px;background:transparent;color:var(--text-primary)}
  .accueil .pastilles a:hover{background:var(--bouton);color:#F9F6EF}
}
@media (max-width:767px){
  .accueil .bouton{min-height:48px;}
  .accueil .envoi .bouton{min-height:48px}
  .accueil .lien{min-height:44px}
  .accueil .secteurs h3{justify-content:center}
  .accueil .secteurs h3 .fleche{display:none}
  .accueil .pastilles a{padding:0 15px}
}

/* ============================================================
   Mobile, 20 oct. 2026 : vos espaces en deux rangées de quatre vignettes (intitulés courts), villes sur trois lignes au plus
   ============================================================ */
@media (max-width:767px){
  .accueil .secteurs{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 8px}
  .accueil .secteurs figure{aspect-ratio:4/5;border-radius:8px}
  .accueil .secteurs h3{margin-top:6px;font-size:12.5px;line-height:1.25;text-align:center}
  .accueil .secteurs .long{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .accueil .secteurs .court{display:block}
  /* villes sur quatre lignes, dans l'ordre du site (22 oct. 2026 ; Toulon en tête de la 2e liste depuis le 23 oct.) : Nice, Cannes, Antibes & Juan-les-Pins / Fréjus & Saint-Raphaël, Saint-Tropez, Toulon / Saint-Jean-Cap-Ferrat, Èze, Beaulieu-sur-Mer / Menton, Monaco */
  .rdv .villes{display:flex;flex-wrap:wrap;align-items:baseline;gap:0}
  .rdv .villes-intro{flex:0 0 100%;margin-bottom:12px}
  .rdv .villes::before,.rdv .villes::after,.rdv .villes .pastilles:last-of-type::before{content:"";flex:0 0 100%;height:0}
  .rdv .villes::before{order:4}
  .rdv .villes::after{order:8}
  .rdv .villes .pastilles:last-of-type::before{order:12}
  .rdv .villes .pastilles{display:contents}
  .rdv .villes .pastilles li{display:block}
  .rdv .villes .pastilles li+li::before{content:none}
  .rdv .villes .pastilles li::after{content:"·";margin:0 9px;color:var(--text-primary)}
  .rdv .villes .pastilles:first-of-type li:nth-child(1){order:1}
  .rdv .villes .pastilles:first-of-type li:nth-child(2){order:2}
  .rdv .villes .pastilles:first-of-type li:nth-child(3){order:3}
  .rdv .villes .pastilles:first-of-type li:nth-child(4){order:5}
  .rdv .villes .pastilles:first-of-type li:nth-child(5){order:6}
  .rdv .villes .pastilles:last-of-type li:nth-child(1){order:7}
  .rdv .villes .pastilles:last-of-type li:nth-child(2){order:9}
  .rdv .villes .pastilles:last-of-type li:nth-child(3){order:10}
  .rdv .villes .pastilles:last-of-type li:nth-child(4){order:11}
  .rdv .villes .pastilles:last-of-type li:nth-child(5){order:13}
  .rdv .villes .pastilles:last-of-type li:nth-child(6){order:14}
  .rdv .villes .pastilles:first-of-type li:nth-child(3)::after,.rdv .villes .pastilles:last-of-type li:nth-child(1)::after,.rdv .villes .pastilles:last-of-type li:nth-child(4)::after,.rdv .villes .pastilles:last-of-type li:nth-child(6)::after{content:none}
  .rdv .villes .pastilles:first-of-type li:nth-child(5)::after{content:"·"}
  .rdv .villes .pastilles a{display:inline;padding:0;font-size:13.5px;line-height:2.1;white-space:nowrap;letter-spacing:0;border-bottom:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
}
@media (max-width:370px){.rdv .villes .pastilles a{font-size:12.5px}.rdv .villes .pastilles li::after{margin:0 7px}}
/* pied de page mobile resserré (20 oct. 2026) : logo un peu plus petit, signature et précisions rapprochées */
@media (max-width:767px){
  body>footer .logo{width:min(36%,136px)}
  body>footer .signature{margin-top:8px}
  body>footer .precisions{margin-top:6px;line-height:1.45}
  body>footer .haut{row-gap:20px}
}
/* pied de page, ordinateur (20 oct. 2026) : précisions à droite de la signature, alignées en bas (dès 1180 px) */
@media (min-width:1180px){
  body>footer .marque .signature{white-space:nowrap}
  body>footer .marque{display:grid;grid-template-columns:auto auto;justify-content:start;column-gap:clamp(32px,3.4vw,52px);align-items:end}
  body>footer .marque .logo{grid-column:1/-1}
  body>footer .marque .precisions{margin-top:0;padding-left:clamp(24px,2.6vw,44px);border-left:1px solid rgba(245,236,221,.28)}
  body>footer .marque .precisions span{white-space:nowrap}
  body>footer .marque{column-gap:clamp(24px,2.6vw,44px)}
  body>footer .haut{grid-template-columns:minmax(0,2.4fr) minmax(0,1fr) minmax(0,1fr)}
}

/* ============================================================
   FAQ communes (21 oct. 2026) : accueil (.faq), marketing olfactif et pages « Vos espaces » (.faq-page).
   Styles limités aux FAQ : les accordéons des fiches produits (.details3) ne sont pas concernés.
   ============================================================ */
:is(.faq,.faq-page) .accordeon{list-style:none;padding:0}
:is(.faq,.faq-page) .qr{border-top:1px solid var(--line)}
:is(.faq,.faq-page) .qr:last-child{border-bottom:1px solid var(--line)}
:is(.faq,.faq-page) .qr h3{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit}
:is(.faq,.faq-page) .question{width:100%;min-height:44px;margin:0;padding:22px 0;display:flex;align-items:center;justify-content:space-between;gap:32px;background:transparent;border:0;border-radius:0;cursor:pointer;text-align:left;font-family:var(--serif);font-weight:500;font-size:var(--t-faq);line-height:var(--lh-faq);color:var(--text-primary);opacity:1;transition:opacity .2s var(--ease)}
:is(.faq,.faq-page) .question>span:first-child{flex:1 1 auto;min-width:0}
:is(.faq,.faq-page) .question:hover{opacity:.8}
:is(.faq,.faq-page) .question:focus-visible{outline:2px solid var(--focus);outline-offset:4px;border-radius:4px}
:is(.faq,.faq-page) .signe{flex:none;align-self:center;width:24px;font-family:var(--sans);font-weight:400;font-size:26px;line-height:1;text-align:center;color:var(--text-primary)}
:is(.faq,.faq-page) .signe::before{content:"+"}
:is(.faq,.faq-page) .question[aria-expanded="true"] .signe::before{content:"\2212"}
:is(.faq,.faq-page) .reponse{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s var(--ease)}
:is(.faq,.faq-page) .reponse.ouvert{grid-template-rows:1fr}
:is(.faq,.faq-page) .reponse[hidden]{display:none}
:is(.faq,.faq-page) .reponse>div{overflow:hidden;min-height:0}
:is(.faq,.faq-page) .reponse :is(p,ul,ol){margin:0;padding:0;max-width:min(75%,85ch);font-family:var(--sans);font-weight:400;font-size:var(--t-body);line-height:1.6;color:var(--text-primary);text-align:left}
:is(.faq,.faq-page) .reponse :is(ul,ol){padding-left:1.2em}
:is(.faq,.faq-page) .reponse :is(p,ul,ol)+:is(p,ul,ol){margin-top:12px}
:is(.faq,.faq-page) .reponse>div>:last-child{padding-bottom:24px}
:is(.faq,.faq-page) .reponse a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
:is(.faq,.faq-page) .reponse p.source{font-size:var(--t-small);line-height:1.6;color:var(--text-secondary)}
:is(.faq,.faq-page) .reponse p.source a:hover{color:var(--text-primary)}
@media (max-width:1024px){:is(.faq,.faq-page) .reponse :is(p,ul,ol){max-width:none}}
@media (max-width:767px){
  :is(.faq,.faq-page) .question{padding:18px 0;gap:20px}
  :is(.faq,.faq-page) .reponse>div>:last-child{padding-bottom:20px}
}
@media (prefers-reduced-motion:reduce){:is(.faq,.faq-page) .reponse{transition:none}}
/* FAQ (21 oct. 2026) : une phrase par ligne, réponses sur toute la largeur de la FAQ */
:is(.faq,.faq-page) .reponse :is(p,ul,ol){max-width:none}
:is(.faq,.faq-page) .reponse .phrase{display:block}

/* FAQ, toutes les pages (21 oct. 2026) : colonne de lecture commune aux questions et aux réponses.
   Limite droite = 1062 px depuis le bord gauche de l'accordéon (repère « diffusion » de la page marketing, mesuré sur ordinateur),
   ou la largeur disponible moins la colonne des icônes +/− ; les phrases se suivent dans leurs paragraphes */
:is(.faq,.faq-page){--faq-texte:1062px;--faq-icone:24px;--faq-gout:clamp(20px,3vw,40px)}
:is(.faq,.faq-page) .question{display:grid;grid-template-columns:minmax(0,var(--faq-texte)) var(--faq-icone);justify-content:space-between;column-gap:var(--faq-gout);align-items:center}
:is(.faq,.faq-page) .question>span:first-child{min-width:0}
:is(.faq,.faq-page) .question .signe{justify-self:end;align-self:center}
:is(.faq,.faq-page) .reponse>div{max-width:min(var(--faq-texte),calc(100% - var(--faq-icone) - var(--faq-gout)))}
:is(.faq,.faq-page) .reponse :is(p,ul,ol){max-width:none}
:is(.faq,.faq-page) .reponse .phrase{display:inline}

/* ============================================================
   Accueil, premier écran (22 oct. 2026) : comptoir en travertin, voilages et coffret de flacons (1672 × 941).
   Ordinateur et tablette en paysage : texte dans la moitié gauche, centré verticalement, aligné sur le logo,
   arrêté à 42 % de la largeur de la photo (marge de 48 px) pour laisser la baie, les flacons et la main dégagés.
   Aucun voile ni dégradé : le texte repose directement sur les voilages et le comptoir clairs.
   Mobile et tablette en portrait : texte sur fond ivoire uni, photo dessous recadrée sur les flacons et la main.
   ============================================================ */
.hero .surtitre{margin:0 0 14px;font-family:var(--sans);font-size:var(--t-kicker);font-weight:500;letter-spacing:var(--ls-kicker);line-height:var(--lh-kicker);text-transform:uppercase;color:var(--text-primary)}
.hero .texte-hero{margin:20px 0 0;max-width:none;font-family:var(--sans);font-size:clamp(15px,1.2vw,18px);font-weight:400;line-height:1.55;color:var(--text-primary)}
.hero .texte-hero>span{white-space:nowrap}
/* séparateur du surtitre : même point que la liste des villes */
.hero .surtitre .sep{margin:0 .35em}
/* les deux mentions, chacune sur sa ligne */
.hero .texte-hero>span{display:block}

.hero .actions{margin-top:26px;flex-direction:column;align-items:flex-start;gap:0}
.hero .bouton .diag{font-family:var(--sans);font-size:1.05em;line-height:1}
.hero .mention-hero{margin:10px 0 0;font-family:var(--sans);font-size:var(--t-small);line-height:var(--lh-small);color:var(--text-primary)}
.hero .lien-hero{margin-top:18px}
@media (min-width:768px) and (min-aspect-ratio:4/5){
  /* le mur s’arrête à 48 % de la photo : le texte reste avant, avec 24 px de marge */
  .hero{--mur:calc(0.47 * max(100vw, 177.9vh))}
  .hero .stage{align-items:center;padding:calc(var(--nav-h) + 24px) var(--gout) 64px}
  .hero .band{width:min(700px, calc(var(--mur) - var(--gout) - 24px))}
  .hero h1{font-size:clamp(24px, calc((var(--mur) - var(--gout) - 24px) / 9.3), 68px)}
  .hero .surtitre{margin-bottom:18px}
  .hero .actions{margin-top:30px}
  .hero .bouton{white-space:nowrap}
}
@media (min-width:1181px) and (min-aspect-ratio:4/5){
  /* texte posé sur la photo : remonté de 40 px */
  .hero .band{position:relative;top:-40px}
}
@media (min-width:768px) and (min-aspect-ratio:1/1) and (max-aspect-ratio:3/2){
  .hero{--mur:47vw}
  .hero .stage{min-height:calc(100vw * 941 / 1672);padding-bottom:32px}
}
/* fenêtre réduite : texte sur le mur comme sur ordinateur ; version empilée seulement si l’écran est plus haut que large */
@media (max-width:767px), (min-width:768px) and (max-width:1180px) and (max-aspect-ratio:999/1000){
  .accueil .hero .stage{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding:calc(var(--nav-h) + 28px) 0 0;background:var(--canvas)}
  .accueil .hero .band{order:1;width:auto;max-width:620px;padding:0 var(--gout) 28px}
  .accueil .hero .poster{order:2;position:relative;inset:auto;display:block;width:100%;aspect-ratio:4/3;background-image:url('hero-accueil-v13.jpg')!important;background-image:image-set(url('hero-accueil-v13.webp') type('image/webp'),url('hero-accueil-v13.jpg') type('image/jpeg'))!important;background-size:cover;background-position:88% 72%;background-repeat:no-repeat}
  .accueil .hero h1{font-size:clamp(27px,7.6vw,34px);line-height:1.1}
  .accueil .hero h1 em{display:inline;max-width:none;white-space:nowrap}
  .accueil .hero .texte-hero{max-width:none}
  .accueil .hero .actions{margin-top:22px;align-items:stretch}
  .accueil .hero .bouton{width:100%;justify-content:center}
  .accueil .hero .mention-hero{text-align:center}
  .accueil .hero .lien-hero{align-self:flex-start;margin-top:14px}
}
/* mobile et tablette en portrait (23 oct. 2026) : photo verticale en fond, texte posé sur le mur en haut, produits visibles en bas */
@media (max-width:767px), (min-width:768px) and (max-width:1180px) and (max-aspect-ratio:999/1000){
  .accueil .hero .stage{display:block;position:relative;min-height:100vh;min-height:100svh;padding:calc(var(--nav-h) + 26px) var(--gout) 0;background:var(--canvas)}
  .accueil .hero .poster{position:absolute;inset:0;width:auto;height:auto;aspect-ratio:auto!important;background-image:url('hero-accueil-mobile-v2.jpg')!important;background-image:image-set(url('hero-accueil-mobile-v2.webp') type('image/webp'),url('hero-accueil-mobile-v2.jpg') type('image/jpeg'))!important;background-size:cover;background-position:50% 100%;background-repeat:no-repeat}
  .accueil .hero .band{position:relative;width:auto;max-width:620px;padding:0}
  .accueil .hero .actions{align-items:flex-start}
  .accueil .hero .bouton{width:auto;justify-content:center}
}
@media (min-width:768px) and (max-width:1180px) and (max-aspect-ratio:999/1000){
  .accueil .hero .poster{aspect-ratio:2/1;background-position:100% 62%}
  .accueil .hero h1{font-size:clamp(36px,5.4vw,44px)}
  .accueil .hero .actions{align-items:flex-start}
  .accueil .hero .bouton{width:auto}
  .accueil .hero .mention-hero{text-align:left}
}

/* « À vos côtés » de l'accueil, identique aux pages secteurs et villes (23 oct. 2026) : titre sur une ligne, trois colonnes, lien, défilement sur mobile */
.accomp{padding-top:clamp(48px,4.4vw,64px);padding-bottom:clamp(48px,4.4vw,64px)}
.accomp .kicker{margin-bottom:12px}
.accomp h2{font-size:var(--t-h2);line-height:var(--lh-h2)}
.accomp .etapes{margin-top:32px;column-gap:clamp(28px,3.4vw,52px)}
.accomp .etape{padding-top:0}
.accomp .etape::after{content:none}
.accomp .etape::before{content:"";display:block;width:32px;height:1px;background:#CEC7BB;margin-bottom:18px}
.accomp .etape p{margin-top:10px}
.accomp .defiler-m{display:none}
.accomp .demarche{margin:28px 0 0}
@media (max-width:767px){
  .accomp{padding-top:36px;padding-bottom:36px}
  .accomp .etapes{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin:20px calc(-1 * var(--gout)) 0;padding:0 var(--gout) 4px;scroll-padding-left:var(--gout);-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .accomp .etapes::-webkit-scrollbar{display:none}
  .accomp .etape{flex:0 0 80%;scroll-snap-align:start}
  .accomp .defiler-m{display:flex;align-items:center;gap:6px;margin:12px 0 0;font-size:13px;color:var(--text-secondary)}
  .accomp .demarche{margin-top:22px}
}

/* « Rencontrons-nous » sur mobile (23 oct. 2026) : introduction resserrée, numéros en deux cartes côte à côte,
   formulaire sur une colonne aux champs plus espacés, bouton rapproché du dernier champ, mentions allégées */
@media (max-width:767px){
  .rdv .grille,.accueil .rdv .grille,.esp .rdv .grille{row-gap:24px}
  .rdv h2{text-wrap:balance}
  .rdv .lede,.accueil .rdv .lede{margin-top:10px;line-height:1.5}
  .rdv .reassurance,.accueil .rdv .reassurance{margin-top:8px}
  .rdv .perimetre,.esp .rdv .perimetre{margin-top:2px}
  .rdv .alternatif,.accueil .rdv .alternatif{margin-top:18px}
  .rdv .alternatif .appel{font-size:15px;color:var(--text-secondary)}
  .rdv .alternatif .numeros,.accueil .rdv .alternatif .numeros{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
  .rdv .alternatif .numeros li{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;border:1px solid #CEC7BB;border-radius:10px;background:#FFFFFF}
  .rdv .alternatif .numeros li span{font-size:13px;color:var(--text-secondary)}
  .rdv .alternatif .numeros a{padding:0;margin:0;font-size:16px;font-weight:500;white-space:nowrap;text-decoration:none;border-bottom:0}
  .rdv .alternatif .numeros li{position:relative}
  .rdv .alternatif .numeros a::after{content:"";position:absolute;inset:0;border-radius:10px}
  .formulaire,.accueil .formulaire{grid-template-columns:minmax(0,1fr);gap:18px}
  .formulaire .champ,.accueil .champ{min-width:0;gap:6px}
  .formulaire .champ input,.accueil .champ input{width:100%;min-width:0;height:52px;padding:0 14px;font-size:16px}
  .envoi,.rdv .envoi,.accueil .envoi{margin-top:0;gap:8px}
  .envoi .suite{margin:4px 0 0;font-size:14px}
  .envoi .legal,.rdv .envoi .legal{font-size:12.5px;line-height:1.45;color:var(--text-secondary)}
}
/* pied de page mobile (23 oct. 2026) : précisions à droite de la signature, séparées par un filet, comme sur ordinateur */
@media (max-width:767px){
  body>footer .marque{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:14px;align-items:end}
  body>footer .marque .logo{grid-column:1/-1}
  body>footer .marque .signature{font-size:17px;white-space:nowrap}
  body>footer .marque .precisions{margin-top:0;padding-left:14px;border-left:1px solid rgba(245,236,221,.28);font-size:12.5px;line-height:1.4}
  body>footer .marque .precisions span{text-wrap:balance}
}
@media (max-width:359px){body>footer .marque{grid-template-columns:minmax(0,1fr)}body>footer .marque .precisions{margin-top:8px;padding-left:0;border-left:0}}
