/* ============================================================
   O.S.E. — Oasis des Sens Éveillés
   style.css — Feuille de styles principale
   ============================================================ */

/* ── Variables ─────────────────────────────────────────────── */
:root {
  --noir:          #08080d;
  --noir-doux:     #0f0f18;
  --or:            #c8a96e;
  --or-clair:      #dfc18f;
  --violet-nuit:   #2a1a3e;
  --bleu-nuit:     #0d1f3c;
  --texte:         rgba(255,255,255,.88);
  --texte-moyen:   rgba(255,255,255,.5);
  --texte-doux:    rgba(255,255,255,.28);

  --font-serif:    'Playfair Display', Georgia, serif;
  --font-sans:     'Jost', system-ui, sans-serif;

  --radius-sm:     4px;
  --transition:    .3s ease;
}

/* ── Reset & Base ───────────────────────────────────────────── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html  { scroll-behavior:smooth; font-size:16px; }
body  {
  font-family: var(--font-sans);
  background: var(--noir);
  color: var(--texte);
  overflow-x: hidden;
  line-height: 1.6;
}
img   { max-width:100%; height:auto; display:block; }
a     { color:inherit; text-decoration:none; }
ul    { list-style:none; }
button { font-family:inherit; }

/* Skip-link accessibility */
.skip-link {
  position:absolute; top:-999px; left:1rem;
  background:var(--or); color:var(--noir);
  padding:.5rem 1rem; font-size:.85rem; font-weight:600;
  z-index:9999; border-radius:var(--radius-sm);
  transition: top .2s;
}
.skip-link:focus { top:1rem; }

/* ── Curseur personnalisé ───────────────────────────────────── */
*, *::before, *::after { cursor:none !important; }
.cursor {
  position:fixed; width:8px; height:8px;
  background:var(--or); border-radius:50%;
  pointer-events:none; z-index:9999;
  transform:translate(-50%,-50%);
  transition:transform .1s;
  will-change:left,top;
}
.cursor-ring {
  position:fixed; width:36px; height:36px;
  border:1px solid rgba(200,169,110,.4); border-radius:50%;
  pointer-events:none; z-index:9998;
  transform:translate(-50%,-50%);
  transition:all .15s ease;
  will-change:left,top;
}

/* ── NAV ────────────────────────────────────────────────────── */
.site-nav {
  position:fixed; top:0; left:0; right:0; z-index:500;
  padding:clamp(1rem,2vw,1.8rem) clamp(1rem,4vw,4rem);
  display:flex; align-items:center; justify-content:space-between;
  transition:background .5s, padding .4s;
}
.site-nav.scrolled {
  background:rgba(8,8,13,.96);
  backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(200,169,110,.08);
}
.nav-logo { display:flex; flex-direction:column; gap:.1rem; }
.nav-logo-ose {
  font-family:var(--font-serif); font-size:clamp(1.1rem,2vw,1.5rem);
  font-weight:300; letter-spacing:.25em; color:var(--or); line-height:1;
}
.nav-logo-sub {
  font-size:.52rem; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(200,169,110,.5);
}
.nav-links {
  display:flex; gap:clamp(1rem,2vw,2.5rem); align-items:center;
}
.nav-links a {
  font-size:.65rem; font-weight:400; letter-spacing:.18em;
  text-transform:uppercase; color:var(--texte-moyen);
  transition:color var(--transition); position:relative;
}
.nav-links a::after {
  content:''; position:absolute; bottom:-3px; left:0; right:100%;
  height:1px; background:var(--or); transition:right .4s ease;
}
.nav-links a:hover,
.nav-links a:focus-visible { color:var(--or); }
.nav-links a:hover::after,
.nav-links a:focus-visible::after { right:0; }
.nav-wa {
  border:1px solid rgba(200,169,110,.3) !important;
  color:var(--or) !important;
  padding:.5rem 1.3rem !important;
  display:inline-flex !important; align-items:center; gap:.5rem;
}
.nav-wa::after { display:none !important; }
.nav-wa:hover,
.nav-wa:focus-visible { background:var(--or) !important; color:var(--noir) !important; }

/* Hamburger */
.nav-hamburger {
  display:none; flex-direction:column; gap:5px;
  padding:5px; background:none; border:none;
  cursor:none !important;
}
.nav-hamburger span { width:24px; height:1px; background:var(--or); display:block; }
.nav-hamburger[aria-expanded="true"] span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.nav-hamburger[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.nav-hamburger[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }

/* ── Boutons communs ────────────────────────────────────────── */
.btn-gold {
  display:inline-flex; align-items:center; gap:.6rem;
  background:var(--or); color:var(--noir);
  padding:1rem 2.8rem;
  font-size:.68rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  border:none; transition:background var(--transition), transform var(--transition);
}
.btn-gold:hover, .btn-gold:focus-visible {
  background:var(--or-clair); transform:translateY(-2px);
}
.btn-ghost {
  display:inline-flex; align-items:center; gap:.8rem;
  font-size:.68rem; font-weight:400; letter-spacing:.18em; text-transform:uppercase;
  color:var(--texte-moyen); background:none; border:none;
  transition:color var(--transition);
}
.btn-ghost::after { content:'→'; transition:transform var(--transition); }
.btn-ghost:hover, .btn-ghost:focus-visible { color:white; }
.btn-ghost:hover::after { transform:translateX(4px); }
.btn-decouvrir {
  display:inline-flex; align-items:center; gap:.6rem;
  font-size:.62rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  color:var(--or); border:1px solid rgba(200,169,110,.25);
  padding:.5rem 1.1rem; background:transparent;
  transition:background var(--transition), color var(--transition);
}
.btn-decouvrir::after { content:'→'; transition:transform var(--transition); }
.btn-decouvrir:hover, .btn-decouvrir:focus-visible {
  background:var(--or); color:var(--noir);
}
.btn-decouvrir:hover::after { transform:translateX(4px); }

/* ── Layout helpers ─────────────────────────────────────────── */
.container {
  max-width:1200px; margin:0 auto;
  padding-inline:clamp(1.5rem,4vw,4rem);
}
.sec-num {
  font-size:.58rem; letter-spacing:.25em; color:var(--or);
  opacity:.5; margin-bottom:.8rem; text-transform:uppercase;
}
.sec-title {
  font-family:var(--font-serif);
  font-size:clamp(2.3rem,4.5vw,4rem);
  font-weight:300; line-height:1.1; color:white; margin-bottom:1.5rem;
}
.sec-title em { font-style:italic; color:var(--or); }
.sec-body {
  font-size:.88rem; font-weight:300;
  color:rgba(255,255,255,.5); line-height:1.9; max-width:500px;
}

/* Frame corners (décoratifs) */
.fc { position:absolute; width:18px; height:18px; border-color:var(--or); border-style:solid; opacity:.35; }
.fc.tl { top:-1px; left:-1px;  border-width:2px 0 0 2px; }
.fc.tr { top:-1px; right:-1px; border-width:2px 2px 0 0; }
.fc.bl { bottom:-1px; left:-1px;  border-width:0 0 2px 2px; }
.fc.br { bottom:-1px; right:-1px; border-width:0 2px 2px 0; }

/* Reveal animation */
.reveal {
  opacity:0; transform:translateY(18px);
  transition:opacity .85s ease, transform .85s ease;
}
.reveal.visible { opacity:1; transform:none; }
.d1 { transition-delay:.1s; }
.d2 { transition-delay:.2s; }
.d3 { transition-delay:.3s; }

/* ── HERO ───────────────────────────────────────────────────── */
.hero {
  min-height:100svh;
  display:flex; flex-direction:column; justify-content:center;
  position:relative; overflow:hidden;
  padding-inline:clamp(1.5rem,4vw,4rem);
  padding-block:8rem 4rem;
}
.hero-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 65% 80% at 90% 45%, rgba(78,41,122,.82) 0%, transparent 65%),
    radial-gradient(ellipse 50% 65% at 10% 25%, rgba(13,8,30,.85) 0%, transparent 60%),
    radial-gradient(ellipse 40% 50% at 50% 85%, rgba(200,169,110,.07) 0%, transparent 55%),
    var(--noir);
}
.hero-line {
  position:absolute; top:0; bottom:0; left:55%;
  width:1px;
  background:linear-gradient(to bottom, transparent, rgba(200,169,110,.15) 30%, rgba(200,169,110,.12) 70%, transparent);
}
.hero-content { position:relative; z-index:2; max-width:700px; }
.hero-eyebrow {
  display:flex; align-items:center; gap:1.5rem;
  margin-bottom:2.5rem;
  opacity:0; animation:fadeIn 1s .3s forwards;
}
.hero-eyebrow-line { width:40px; height:1px; background:var(--or); opacity:.6; }
.hero-eyebrow span {
  font-size:.63rem; letter-spacing:.25em; text-transform:uppercase; color:var(--or);
}
.hero-ose {
  font-family:var(--font-serif);
  font-size:clamp(4rem,10vw,9rem);
  font-weight:300; line-height:.95; letter-spacing:.15em; color:white;
  margin-top:2.5rem;
  opacity:0; animation:fadeUp 1.1s .5s forwards;
}
.hero-ose-full {
  font-family:var(--font-serif);
  font-size:clamp(.9rem,2.2vw,1.6rem);
  font-weight:300; font-style:italic; color:var(--or);
  margin-top:.6rem;
  opacity:0; animation:fadeIn 1s .9s forwards;
}
.hero-tagline {
  margin:2.5rem 0 1.5rem;
  opacity:0; animation:fadeIn 1s 1.1s forwards;
}
.hero-tagline p {
  font-family:var(--font-serif);
  font-size:clamp(.95rem,1.8vw,1.3rem);
  font-weight:300; font-style:italic;
  color:rgba(255,255,255,.55); line-height:1.8;
}
.hero-tagline p span { color:var(--or); opacity:.8; }
.hero-desc {
  font-size:.88rem; font-weight:300;
  color:rgba(255,255,255,.45); line-height:1.9; max-width:460px;
  margin-bottom:2.5rem;
  opacity:0; animation:fadeIn 1s 1.3s forwards;
}
.hero-actions {
  display:flex; gap:1.5rem; align-items:center; flex-wrap:wrap;
  opacity:0; animation:fadeIn 1s 1.5s forwards;
}
.hero-meta {
  position:absolute; bottom:3rem; right:clamp(1.5rem,4vw,4rem);
  z-index:2;
  display:flex; flex-direction:column; gap:1.2rem; align-items:flex-end;
  opacity:0; animation:fadeIn 1s 1.7s forwards;
}
.hero-meta-item { text-align:right; }
.hero-meta-item .lbl {
  font-size:.55rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--or); opacity:.45; margin-bottom:.2rem;
}
.hero-meta-item .val { font-size:.8rem; font-weight:300; color:var(--texte-moyen); }
.hero-scroll {
  position:absolute; bottom:3rem; left:clamp(1.5rem,4vw,4rem);
  z-index:2; display:flex; align-items:center; gap:1rem;
  opacity:0; animation:fadeIn 1s 2s forwards;
}
.hero-scroll-line {
  width:1px; height:48px;
  background:linear-gradient(to bottom, var(--or), transparent);
  animation:pulse 2.5s infinite;
}
.hero-scroll span {
  writing-mode:vertical-rl; font-size:.55rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--texte-doux);
}

/* ── Keyframes ──────────────────────────────────────────────── */
@keyframes fadeUp  { from{opacity:0;transform:translateY(35px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn  { from{opacity:0} to{opacity:1} }
@keyframes pulse   { 0%,100%{opacity:1} 50%{opacity:.3} }

/* ── PRÉSENTATION ───────────────────────────────────────────── */
.presentation { padding-block:clamp(5rem,9vw,9rem); background:var(--noir); }
.pres-layout  {
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(3rem,8vw,8rem); align-items:center;
}
.pres-visual  { position:relative; height:clamp(260px,40vw,560px); }
.pres-frame   { position:absolute; inset:0; border:1px solid rgba(200,169,110,.12); overflow:hidden; }
.pres-frame-inner {
  width:100%; height:100%;
  background:radial-gradient(ellipse 80% 80% at 50% 40%, rgba(78,41,122,.82), rgba(8,8,13,.85));
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.5rem;
}
.pres-glyph { font-size:4rem; opacity:.5; }
.pres-quote {
  font-family:var(--font-serif); font-size:1rem; font-style:italic;
  color:var(--or); opacity:.55; text-align:center;
  padding-inline:2rem; line-height:1.8;
}
.pres-points  { display:flex; flex-direction:column; margin-top:2.5rem; }
.pres-point   {
  display:grid; grid-template-columns:2rem 1fr; gap:1.5rem;
  padding-block:1.6rem;
  border-bottom:1px solid rgba(255,255,255,.04);
  transition:border-color var(--transition);
}
.pres-point:first-child { border-top:1px solid rgba(255,255,255,.04); }
.pres-point:hover { border-color:rgba(200,169,110,.18); }
.pp-num  { font-family:var(--font-serif); font-size:.7rem; color:var(--or); opacity:.45; padding-top:.2rem; }
.pp-text h4 { font-size:.82rem; font-weight:500; letter-spacing:.07em; color:white; margin-bottom:.35rem; }
.pp-text p  { font-size:.78rem; font-weight:300; color:rgba(255,255,255,.45); line-height:1.7; }

/* ── VALEURS ────────────────────────────────────────────────── */
.valeurs       { padding-block:clamp(5rem,7vw,7rem); background:var(--noir-doux); }
.valeurs-grid  {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1px; background:rgba(200,169,110,.08);
  border:1px solid rgba(200,169,110,.08); margin-top:4rem;
}
.val-item  { padding:2.5rem 1.8rem; background:var(--noir-doux); transition:background .4s; }
.val-item:hover { background:rgba(200,169,110,.03); }
.val-num   { font-family:var(--font-serif); font-size:1.8rem; font-weight:300; color:rgba(200,169,110,.1); font-style:italic; margin-bottom:1rem; }
.val-item h3 { font-family:var(--font-serif); font-size:1rem; font-weight:400; color:white; margin-bottom:.6rem; }
.val-item p  { font-size:.76rem; font-weight:300; color:rgba(255,255,255,.45); line-height:1.7; }

/* ── SERVICES ───────────────────────────────────────────────── */
.services      { padding-block:clamp(5rem,10vw,10rem); background:var(--noir); }
.services-intro {
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:5rem; padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,.04);
  flex-wrap:wrap; gap:1.5rem;
}
.services-cats { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(200,169,110,.07); }
.svc-cat {
  background:var(--noir); padding:3rem 2.5rem;
  position:relative; overflow:hidden; transition:background .5s;
}
.svc-cat::before {
  content:''; position:absolute; inset:0; opacity:0; transition:opacity .5s;
}
.svc-cat.bienetre::before  { background:linear-gradient(145deg,rgba(13,31,60,.4),rgba(58,31,92,.2)); }
.svc-cat.naturiste::before { background:linear-gradient(145deg,rgba(58,31,92,.4),rgba(80,30,50,.2)); }
.svc-cat.tantrique::before { background:linear-gradient(145deg,rgba(80,30,50,.4),rgba(58,31,92,.25)); }
.svc-cat:hover::before     { opacity:1; }
.svc-cat-inner { position:relative; z-index:1; }
.svc-cat-num {
  font-family:var(--font-serif); font-size:4rem; font-weight:300;
  color:rgba(200,169,110,.06); line-height:1; margin-bottom:1.5rem; font-style:italic;
}
.svc-line {
  width:28px; height:1px; background:var(--or);
  margin-bottom:1.5rem; transition:width .4s;
}
.svc-cat:hover .svc-line { width:48px; }
.svc-cat h3  {
  font-family:var(--font-serif); font-size:1.7rem; font-weight:300;
  color:white; margin-bottom:.4rem;
}
.svc-cat .tagline {
  font-size:.6rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--or); opacity:.6; margin-bottom:1.2rem;
}
.svc-cat .desc {
  font-size:.8rem; font-weight:300; color:rgba(255,255,255,.5);
  line-height:1.8; margin-bottom:1.8rem;
}

/* ── OPTIONS ────────────────────────────────────────────────── */
.options       { padding-block:clamp(5rem,8vw,8rem); background:var(--noir-doux); }
.options-grid  { display:grid; grid-template-columns:1fr 1fr; gap:5rem; margin-top:4rem; }
.option-group h3 { font-family:var(--font-serif); font-size:1.3rem; font-weight:300; color:var(--or); margin-bottom:.4rem; }
.option-group .sub { font-size:.68rem; letter-spacing:.1em; color:rgba(255,255,255,.3); margin-bottom:1.5rem; font-style:italic; }
.opt-item {
  display:grid; grid-template-columns:1fr auto; gap:1rem; align-items:center;
  padding-block:1rem; border-bottom:1px solid rgba(255,255,255,.04);
  transition:border-color var(--transition);
}
.opt-item:first-child { border-top:1px solid rgba(255,255,255,.04); }
.opt-item:hover { border-color:rgba(200,169,110,.18); }
.opt-name  { font-size:.82rem; font-weight:300; color:rgba(255,255,255,.65); }
.opt-note  { font-size:.68rem; color:rgba(255,255,255,.28); font-style:italic; }
.opt-price { font-family:var(--font-serif); font-size:.95rem; color:var(--or); font-style:italic; white-space:nowrap; }

/* ── TARIFS ─────────────────────────────────────────────────── */
.tarifs        { padding-block:clamp(5rem,9vw,9rem); background:var(--noir); }
.tarifs-3col   {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:rgba(200,169,110,.08); margin-top:3rem;
}
.tarif-card {
  background:var(--noir); padding:2.5rem 2rem;
  position:relative; overflow:hidden; transition:background .4s;
}
.tarif-card::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(145deg,rgba(78,41,122,.25),rgba(13,8,30,.1));
  opacity:0; transition:opacity .4s;
}
.tarif-card:hover { background:rgba(200,169,110,.03); }
.tarif-card:hover::before { opacity:1; }
.tarif-card-filler {
  background:
    radial-gradient(ellipse 80% 80% at 80% 20%, rgba(78,41,122,.45) 0%, transparent 65%),
    radial-gradient(ellipse 60% 60% at 20% 80%, rgba(58,31,92,.3) 0%, transparent 60%),
    var(--noir);
  pointer-events:none;
}
.tarif-card-filler::before { display:none; }
.tarif-card-inner  { position:relative; z-index:1; }
.tarif-card-num    {
  font-family:var(--font-serif); font-size:3.5rem; font-weight:300;
  color:rgba(200,169,110,.07); line-height:1; margin-bottom:1.2rem; font-style:italic;
}
.tarif-card-line   { width:25px; height:1px; background:var(--or); margin-bottom:1.2rem; transition:width .4s; }
.tarif-card:hover .tarif-card-line { width:45px; }
.tarif-card-title  {
  font-family:var(--font-serif); font-size:1.3rem; font-weight:300;
  color:white; margin-bottom:1rem; transition:color var(--transition);
}
.tarif-card:hover .tarif-card-title { color:var(--or); }
.tarif-card-tags   { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1.5rem; }
.tarif-card-tags span {
  font-size:.62rem; letter-spacing:.1em;
  color:rgba(255,255,255,.45);
  border:1px solid rgba(255,255,255,.08); padding:.2rem .55rem;
}
.tarif-card-range  {
  font-family:var(--font-serif); font-size:1.1rem; font-style:italic;
  color:var(--or); opacity:.8; margin-bottom:1.2rem;
}
.tarif-card-cta    {
  font-size:.62rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--or); opacity:.6;
  transition:opacity var(--transition), letter-spacing var(--transition);
}
.tarif-card:hover .tarif-card-cta { opacity:1; letter-spacing:.22em; }

/* Tableau tarifs commun */
.tarif-table { width:100%; border-collapse:collapse; border:1px solid rgba(200,169,110,.08); }
.tarif-table th {
  padding:.8rem 1.2rem; font-size:.6rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--or); opacity:.65; border-bottom:1px solid rgba(200,169,110,.1);
  text-align:left; background:rgba(200,169,110,.03);
}
.tarif-table td {
  padding:.9rem 1.2rem; font-size:.85rem; font-weight:300;
  color:rgba(255,255,255,.65); border-bottom:1px solid rgba(255,255,255,.03);
}
.tarif-table tr:hover td { background:rgba(200,169,110,.025); }
.tarif-table .prix  { font-family:var(--font-serif); font-style:italic; color:var(--or); font-size:1rem; }
.tarif-table .duree { color:rgba(255,255,255,.45); font-size:.78rem; }

/* Overlay détail tarif */
.tarif-overlay {
  display:none; position:fixed; inset:0; z-index:600;
  background:rgba(0,0,0,.88); backdrop-filter:blur(8px);
  align-items:center; justify-content:center;
  overflow-y:auto; padding:2rem;
}
.tarif-overlay.open { display:flex; }
.tarif-panel {
  background:var(--noir-doux); border:1px solid rgba(200,169,110,.15);
  max-width:800px; width:100%; margin:auto;
  max-height:90vh; overflow-y:auto;
}
.tarif-panel-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:1.2rem 2rem; border-bottom:1px solid rgba(200,169,110,.1);
  background:#08080d; position:sticky; top:0; z-index:1;
}
.tarif-panel-header h2 {
  font-family:var(--font-serif); font-size:1.2rem; font-weight:300; color:var(--or);
}
.tarif-panel-body { padding:2rem; }
.tarif-panel-footer {
  padding:1.2rem 2rem; border-top:1px solid rgba(200,169,110,.1); text-align:center;
}
.btn-close {
  background:none; border:1px solid rgba(200,169,110,.2);
  color:rgba(255,255,255,.5); width:32px; height:32px;
  font-size:1rem; transition:all .2s;
}
.btn-close:hover, .btn-close:focus-visible {
  border-color:var(--or); color:var(--or);
}

/* ── ÉTHIQUE ────────────────────────────────────────────────── */
.ethique       { padding-block:clamp(5rem,9vw,9rem); background:var(--noir-doux); }
.ethique-layout { display:grid; grid-template-columns:1fr 2fr; gap:clamp(3rem,7vw,7rem); align-items:start; margin-top:2rem; }
.pillars        { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; }
.pillar-icon    {
  width:38px; height:38px; border:1px solid rgba(200,169,110,.22);
  display:flex; align-items:center; justify-content:center;
  font-size:.95rem; margin-bottom:1.4rem; transition:border-color var(--transition);
  font-style:normal;
}
.pillar:hover .pillar-icon { border-color:rgba(200,169,110,.55); }
.pillar h3 { font-family:var(--font-serif); font-size:1.05rem; font-weight:400; color:white; margin-bottom:.6rem; }
.pillar p  { font-size:.78rem; font-weight:300; color:rgba(255,255,255,.48); line-height:1.7; }
.ethique-quote {
  padding:2.5rem; border:1px solid rgba(200,169,110,.1);
  position:relative; margin-top:3rem;
}
.ethique-quote::before {
  content:'\201C'; font-family:var(--font-serif); font-size:5.5rem;
  color:var(--or); opacity:.12; position:absolute; top:-1rem; left:1.5rem; line-height:1;
  pointer-events:none;
}
.ethique-quote p { font-family:var(--font-serif); font-size:1.05rem; font-style:italic; font-weight:300; color:rgba(255,255,255,.6); line-height:1.8; }
.ethique-quote footer { margin-top:1rem; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--or); opacity:.6; background:none; padding:0; border:none; }

/* ── TÉMOIGNAGES ────────────────────────────────────────────── */
.temoignages     { padding-block:clamp(5rem,9vw,9rem); background:var(--noir-doux); }
.temoignages-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:rgba(200,169,110,.07); margin-top:3rem;
}
.temo-card {
  background:var(--noir-doux); padding:2.5rem 2rem;
  display:flex; flex-direction:column; gap:1.2rem; transition:background .4s;
}
.temo-card:hover { background:rgba(200,169,110,.03); }
.temo-stars { color:var(--or); font-size:.85rem; letter-spacing:.1em; }
.temo-text  {
  font-family:var(--font-serif); font-style:italic; font-size:.9rem;
  font-weight:300; color:rgba(255,255,255,.65); line-height:1.8; flex:1;
}
.temo-footer { padding-top:1rem; border-top:1px solid rgba(200,169,110,.1); }
.temo-name   { font-size:.82rem; font-weight:500; color:white; margin-bottom:.4rem; }
.temo-meta   { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.3rem; }
.temo-soin   { font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--or); opacity:.7; }
.temo-date   { font-size:.62rem; color:rgba(255,255,255,.28); letter-spacing:.08em; }
.temo-cta    {
  margin-top:3rem; border:1px solid rgba(200,169,110,.12);
  background:radial-gradient(ellipse 80% 80% at 50% 50%, rgba(78,41,122,.25), transparent);
}
.temo-cta-inner { padding:3rem; text-align:center; }
.temo-cta-icon  { font-size:2rem; margin-bottom:1rem; opacity:.7; display:block; }
.temo-cta-inner h3 {
  font-family:var(--font-serif); font-size:1.5rem; font-weight:300;
  color:white; margin-bottom:.8rem;
}
.temo-cta-inner p { font-size:.85rem; font-weight:300; color:rgba(255,255,255,.5); line-height:1.7; max-width:500px; margin:0 auto; }

/* Formulaire avis */
.avis-overlay {
  display:none; position:fixed; inset:0; z-index:700;
  background:rgba(0,0,0,.88); backdrop-filter:blur(8px);
  align-items:center; justify-content:center; padding:2rem;
}
.avis-overlay.open { display:flex; }
.avis-panel {
  background:var(--noir-doux); border:1px solid rgba(200,169,110,.15);
  max-width:580px; width:100%;
}
.avis-panel-header {
  display:flex; align-items:center; justify-content:space-between;
  padding:1.2rem 2rem; border-bottom:1px solid rgba(200,169,110,.1); background:#08080d;
}
.avis-panel-header h2 { font-family:var(--font-serif); font-size:1.1rem; font-weight:300; color:var(--or); }
.avis-panel-body { padding:2rem; display:flex; flex-direction:column; gap:1rem; }
.avis-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.avis-field label {
  display:block; font-size:.6rem; letter-spacing:.15em; text-transform:uppercase;
  color:rgba(200,169,110,.7); margin-bottom:.4rem;
}
.avis-field input,
.avis-field textarea {
  width:100%; background:rgba(255,255,255,.04); border:1px solid rgba(200,169,110,.15);
  color:white; padding:.7rem .9rem;
  font-family:var(--font-sans); font-size:.85rem; outline:none;
  transition:border-color var(--transition); resize:vertical;
}
.avis-field input:focus,
.avis-field textarea:focus { border-color:rgba(200,169,110,.5); }
.star-picker { display:flex; gap:.5rem; }
.star-btn { font-size:1.5rem; color:rgba(255,255,255,.25); opacity:1; transition:color var(--transition); }
.star-btn.active { color:var(--or); }
.avis-msg { font-size:.75rem; min-height:1rem; }
.avis-msg.success { color:rgba(100,200,100,.85); }
.avis-msg.error   { color:rgba(220,80,80,.85); }
.avis-note        { font-size:.68rem; color:rgba(255,255,255,.22); text-align:center; line-height:1.5; }

/* ── PARTENAIRE ─────────────────────────────────────────────── */
.partenaire        { padding-block:clamp(5rem,8vw,8rem); background:var(--noir); }
.partenaire-layout { display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,8vw,8rem); align-items:center; }
.partenaire-visual { position:relative; height:clamp(300px,30vw,380px); border:1px solid rgba(200,169,110,.1); }
.partenaire-visual-bg {
  width:100%; height:100%;
  background:linear-gradient(135deg,var(--violet-nuit),rgba(13,31,60,.85));
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem;
}
.partenaire-name   { font-family:var(--font-serif); font-size:2rem; font-style:italic; font-weight:300; color:var(--or); opacity:.8; }
.partenaire-sub    { font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:var(--texte-moyen); }
.partenaire-text p { font-size:.88rem; font-weight:300; color:rgba(255,255,255,.55); line-height:1.9; margin-bottom:1rem; }
.partenaire-block  {
  padding:1.2rem 1.5rem; border:1px solid rgba(200,169,110,.15);
  border-left:2px solid var(--or); margin-bottom:1rem;
}
.partenaire-block-label {
  font-size:.72rem; letter-spacing:.15em; text-transform:uppercase;
  color:var(--or); margin-bottom:.4rem;
}
.partenaire-block p { font-size:.85rem; font-weight:300; color:rgba(255,255,255,.55); line-height:1.7; margin:0; }
.btn-partenaire {
  display:inline-flex; align-items:center; gap:.7rem;
  font-size:.62rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  color:var(--or); border:1px solid rgba(200,169,110,.25);
  padding:.8rem 1.6rem; background:none; margin-top:1rem;
  transition:all var(--transition);
}
.btn-partenaire:hover, .btn-partenaire:focus-visible { background:var(--or); color:var(--noir); }
.btn-partenaire::after { content:'→'; }

/* ── CONTACT ────────────────────────────────────────────────── */
.contact        { padding-block:clamp(5rem,9vw,9rem); background:var(--noir-doux); }
.contact-layout { display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,8vw,8rem); margin-top:4rem; }
.citem {
  padding-block:1.7rem; border-bottom:1px solid rgba(255,255,255,.04);
  display:grid; grid-template-columns:7.5rem 1fr; gap:2rem; align-items:start;
  transition:border-color var(--transition);
}
.citem:first-child { border-top:1px solid rgba(255,255,255,.04); }
.citem:hover { border-color:rgba(200,169,110,.18); }
.ci-lbl { font-size:.58rem; letter-spacing:.18em; text-transform:uppercase; color:var(--or); opacity:.5; padding-top:.15rem; }
.ci-val { font-size:.88rem; font-weight:300; color:rgba(255,255,255,.68); line-height:1.7; }
.ci-val a:hover { color:var(--or); }
.ci-val em { font-style:normal; font-size:.73rem; color:rgba(255,255,255,.32); display:block; margin-top:.3rem; }
.rdv-box { border:1px solid rgba(200,169,110,.14); padding:4rem 3rem; position:relative; text-align:center; }
.rdv-icon { font-size:2.2rem; margin-bottom:1.5rem; opacity:.6; display:block; }
.rdv-box h3 { font-family:var(--font-serif); font-size:1.6rem; font-weight:300; color:white; margin-bottom:.5rem; }
.rdv-box p  { font-size:.8rem; font-weight:300; color:rgba(255,255,255,.45); line-height:1.7; margin-bottom:.8rem; }
.rdv-important {
  font-size:.75rem; color:rgba(200,169,110,.65); font-style:italic;
  margin-bottom:2rem; padding:.8rem; border:1px solid rgba(200,169,110,.1);
}
.rdv-btn-wa {
  display:inline-flex; align-items:center; gap:.8rem;
  background:var(--or); color:var(--noir);
  padding:1.1rem 2.5rem; border:none;
  font-size:.68rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  transition:background var(--transition), transform var(--transition);
}
.rdv-btn-wa:hover, .rdv-btn-wa:focus-visible { background:var(--or-clair); transform:translateY(-2px); }
.rdv-note { font-size:.68rem; color:rgba(255,255,255,.2); margin-top:1.2rem; line-height:1.6; }
.rdv-precisions { background:rgba(200,169,110,.04); border:1px solid rgba(200,169,110,.08); padding:1.5rem; margin-top:1.5rem; text-align:left; }
.rdv-precisions h4 { font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--or); opacity:.6; margin-bottom:.8rem; }
.rdv-precisions ul { display:flex; flex-direction:column; gap:.4rem; }
.rdv-precisions li { font-size:.75rem; color:rgba(255,255,255,.45); display:flex; align-items:center; gap:.6rem; }
.rdv-precisions li::before { content:'—'; color:var(--or); opacity:.4; font-size:.6rem; }

/* ── FOOTER ─────────────────────────────────────────────────── */
.site-footer { background:var(--noir); border-top:1px solid rgba(200,169,110,.07); padding:clamp(3rem,5vw,5rem) clamp(1.5rem,4vw,4rem) 2.5rem; }
.footer-top  {
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:2fr 1fr 1fr 1fr;
  gap:clamp(2rem,4vw,4rem); padding-bottom:4rem;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.footer-brand-name    { font-family:var(--font-serif); font-size:1.4rem; font-weight:300; color:var(--or); margin-bottom:.3rem; }
.footer-brand-name em { font-style:italic; }
.footer-brand-sub     { font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.22); margin-bottom:1.5rem; }
.footer-brand p       { font-size:.78rem; font-weight:300; color:rgba(255,255,255,.32); line-height:1.8; }
.footer-col h4        { font-size:.58rem; letter-spacing:.25em; text-transform:uppercase; color:var(--or); opacity:.5; margin-bottom:1.4rem; }
.footer-col li        { margin-bottom:.65rem; }
.footer-col a         { font-size:.78rem; font-weight:300; color:rgba(255,255,255,.38); transition:color var(--transition); }
.footer-col a:hover   { color:var(--or); }
.footer-col address p { font-size:.78rem; font-weight:300; color:rgba(255,255,255,.38); line-height:1.8; font-style:normal; }
.footer-bottom {
  max-width:1200px; margin:0 auto; padding-top:2.5rem;
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem;
}
.footer-bottom p    { font-size:.65rem; color:rgba(255,255,255,.18); letter-spacing:.05em; }
.footer-legal       { display:flex; gap:2rem; }
.footer-legal a     { font-size:.65rem; color:rgba(255,255,255,.18); transition:color var(--transition); }
.footer-legal a:hover { color:var(--or); }

/* ── PAGES DÉTAIL (services) ────────────────────────────────── */
.page-detail { display:none; min-height:100vh; background:var(--noir-doux); }
.page-detail.active { display:block; }
.detail-hero {
  padding:clamp(7rem,9vw,9rem) clamp(1.5rem,4vw,4rem) 4rem;
  position:relative; overflow:hidden;
  border-bottom:1px solid rgba(200,169,110,.07);
  background:
    radial-gradient(ellipse 70% 85% at 80% 50%, rgba(78,41,122,.78) 0%, transparent 65%),
    radial-gradient(ellipse 50% 60% at 10% 30%, rgba(13,8,30,.82) 0%, transparent 60%),
    var(--noir-doux);
}
.detail-hero-inner { max-width:1200px; margin:0 auto; }
.btn-back {
  display:inline-flex; align-items:center; gap:.7rem;
  font-size:.6rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--or); opacity:.6; background:none; border:none;
  font-family:var(--font-sans); margin-bottom:3rem;
  transition:opacity var(--transition);
}
.btn-back::before { content:'←'; }
.btn-back:hover, .btn-back:focus-visible { opacity:1; }
.detail-eyebrow { font-size:.62rem; letter-spacing:.25em; text-transform:uppercase; color:var(--or); opacity:.55; margin-bottom:1rem; }
.detail-title   { font-family:var(--font-serif); font-size:clamp(2.8rem,5.5vw,5rem); font-weight:300; line-height:1.05; color:white; }
.detail-title em { font-style:italic; color:var(--or); display:block; }
.detail-intro   { font-size:.95rem; font-weight:300; color:rgba(255,255,255,.5); line-height:1.9; max-width:580px; margin-top:1.8rem; }
.detail-body    { max-width:1200px; margin:0 auto; padding:clamp(3rem,6vw,6rem) clamp(1.5rem,4vw,4rem); }
.detail-section { margin-bottom:5rem; padding-bottom:5rem; border-bottom:1px solid rgba(255,255,255,.04); }
.detail-section:last-child { border-bottom:none; margin-bottom:0; }
.detail-section-label { font-size:.58rem; letter-spacing:.25em; text-transform:uppercase; color:var(--or); opacity:.5; margin-bottom:.8rem; }
.detail-section-title { font-family:var(--font-serif); font-size:clamp(1.7rem,3vw,2.5rem); font-weight:300; color:white; margin-bottom:1.5rem; }
.detail-section-title em { font-style:italic; color:var(--or); }
.detail-section p { font-size:.87rem; font-weight:300; color:rgba(255,255,255,.55); line-height:1.9; margin-bottom:1rem; }
.detail-list    { list-style:none; display:flex; flex-direction:column; gap:.7rem; margin-top:1.5rem; }
.detail-list li { display:flex; align-items:flex-start; gap:1rem; font-size:.85rem; font-weight:300; color:rgba(255,255,255,.55); line-height:1.6; }
.detail-list li::before { content:''; width:18px; height:1px; background:var(--or); opacity:.45; flex-shrink:0; margin-top:.65rem; }
.detail-mention {
  font-size:.72rem; color:rgba(200,169,110,.45); font-style:italic;
  padding:1rem 1.4rem; border:1px solid rgba(200,169,110,.1); margin-top:2rem; line-height:1.6;
}
.soins-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:1px; background:rgba(200,169,110,.07); margin-top:2.5rem;
}
.soin-card { background:var(--noir-doux); padding:2.2rem 1.8rem; transition:background .4s; }
.soin-card:hover { background:rgba(200,169,110,.03); }
.soin-num  { font-family:var(--font-serif); font-size:1.6rem; font-weight:300; color:rgba(200,169,110,.1); font-style:italic; margin-bottom:.8rem; }
.soin-card h4 { font-family:var(--font-serif); font-size:1.05rem; font-weight:400; color:white; margin-bottom:.5rem; }
.soin-card p  { font-size:.77rem; font-weight:300; color:rgba(255,255,255,.45); line-height:1.7; }

/* ── BLOG ───────────────────────────────────────────────────── */
.blog-page { background:var(--noir); min-height:100vh; }
.blog-hero {
  padding:clamp(7rem,9vw,9rem) clamp(1.5rem,4vw,4rem) 4rem;
  position:relative; overflow:hidden;
  border-bottom:1px solid rgba(200,169,110,.08);
  background:
    radial-gradient(ellipse 65% 80% at 85% 50%, rgba(78,41,122,.75) 0%, transparent 65%),
    radial-gradient(ellipse 50% 65% at 10% 30%, rgba(13,8,30,.85) 0%, transparent 60%),
    var(--noir);
}
.blog-hero-inner { max-width:1200px; margin:0 auto; }
.blog-hero-label { font-size:.62rem; letter-spacing:.25em; text-transform:uppercase; color:var(--or); opacity:.6; margin-bottom:1rem; }
.blog-hero-title { font-family:var(--font-serif); font-size:clamp(2.8rem,5vw,4.5rem); font-weight:300; color:white; line-height:1.05; }
.blog-hero-title em { font-style:italic; color:var(--or); }
.blog-hero-desc { font-size:.9rem; font-weight:300; color:rgba(255,255,255,.5); line-height:1.9; max-width:550px; margin-top:1.5rem; }
.blog-cats { display:flex; gap:.6rem; flex-wrap:wrap; margin-top:2rem; }
.blog-cat-btn {
  padding:.4rem 1rem; border:1px solid rgba(200,169,110,.2);
  background:none; color:rgba(255,255,255,.5);
  font-family:var(--font-sans); font-size:.65rem; letter-spacing:.15em; text-transform:uppercase;
  transition:all var(--transition);
}
.blog-cat-btn.active,
.blog-cat-btn:hover,
.blog-cat-btn:focus-visible { background:rgba(200,169,110,.1); border-color:var(--or); color:var(--or); }
.blog-layout {
  max-width:1200px; margin:0 auto;
  padding:clamp(3rem,5vw,5rem) clamp(1.5rem,4vw,4rem);
  display:grid; grid-template-columns:1fr 320px; gap:4rem;
}
.articles-grid { display:flex; flex-direction:column; gap:0; }
.article-card  {
  display:grid; grid-template-columns:280px 1fr;
  border-bottom:1px solid rgba(255,255,255,.05);
  transition:background .4s; overflow:hidden;
}
.article-card:first-child { border-top:1px solid rgba(255,255,255,.05); }
.article-card:hover { background:rgba(200,169,110,.03); }
.article-img  {
  height:200px; overflow:hidden; position:relative;
  background:linear-gradient(135deg,rgba(78,41,122,.6),rgba(13,8,30,.8));
  display:flex; align-items:center; justify-content:center;
}
.article-img img { width:100%; height:100%; object-fit:cover; opacity:.6; transition:opacity .4s; }
.article-card:hover .article-img img { opacity:.8; }
.article-img-cat {
  position:absolute; bottom:.8rem; left:.8rem;
  font-size:.55rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--or); background:rgba(8,8,13,.8);
  padding:.25rem .6rem; border:1px solid rgba(200,169,110,.2);
}
.article-body  { padding:2rem 2.5rem; display:flex; flex-direction:column; justify-content:center; }
.article-meta  { display:flex; gap:1.5rem; margin-bottom:1rem; }
.article-date  { font-size:.62rem; color:rgba(255,255,255,.3); letter-spacing:.1em; }
.article-read  { font-size:.62rem; color:rgba(200,169,110,.55); }
.article-title {
  font-family:var(--font-serif); font-size:1.3rem; font-weight:300; color:white;
  margin-bottom:.8rem; line-height:1.3; transition:color var(--transition);
}
.article-card:hover .article-title { color:var(--or); }
.article-excerpt { font-size:.82rem; font-weight:300; color:rgba(255,255,255,.5); line-height:1.8; margin-bottom:1.2rem; }
.article-link {
  font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--or);
  background:none; border:none; font-family:var(--font-sans);
  display:inline-flex; align-items:center; gap:.5rem; transition:gap var(--transition);
}
.article-link::after { content:'→'; }
.article-link:hover, .article-link:focus-visible { gap:.8rem; }
.blog-sidebar { display:flex; flex-direction:column; gap:2rem; }
.sidebar-block { border:1px solid rgba(200,169,110,.1); padding:1.8rem; }
.sidebar-block h3 {
  font-family:var(--font-serif); font-size:1rem; font-weight:300; color:var(--or);
  margin-bottom:1.2rem; padding-bottom:.8rem; border-bottom:1px solid rgba(200,169,110,.1);
}
.sidebar-cta { background:linear-gradient(135deg,rgba(78,41,122,.4),rgba(13,8,30,.6)); text-align:center; }
.sidebar-cta p { font-size:.8rem; color:rgba(255,255,255,.5); line-height:1.7; margin-bottom:1.2rem; }
.sidebar-cat, .sidebar-recent-item {
  padding-block:.8rem; border-bottom:1px solid rgba(255,255,255,.04);
  display:flex; justify-content:space-between; align-items:center;
  font-size:.78rem; color:rgba(255,255,255,.5);
  background:none; border-left:none; border-right:none; border-top:none;
  font-family:var(--font-sans); text-align:left; width:100%;
  transition:color var(--transition);
}
.sidebar-cat:last-child, .sidebar-recent-item:last-child { border-bottom:none; }
.sidebar-cat:hover, .sidebar-cat:focus-visible,
.sidebar-recent-item:hover, .sidebar-recent-item:focus-visible { color:var(--or); }
.sidebar-cat span { font-size:.65rem; color:rgba(200,169,110,.45); }
.ri-date { font-size:.6rem; color:rgba(200,169,110,.45); display:block; margin-top:.2rem; }
.sidebar-recent-item { flex-direction:column; align-items:flex-start; }

/* Article complet */
.article-full-hero {
  padding:clamp(7rem,9vw,9rem) clamp(1.5rem,4vw,4rem) 4rem;
  position:relative; overflow:hidden;
  border-bottom:1px solid rgba(200,169,110,.07);
  background:
    radial-gradient(ellipse 65% 80% at 85% 50%, rgba(78,41,122,.75) 0%, transparent 65%),
    radial-gradient(ellipse 50% 65% at 10% 30%, rgba(13,8,30,.85) 0%, transparent 60%),
    var(--noir);
}
.article-full-inner  { max-width:1200px; margin:0 auto; }
.article-full-cat    { font-size:.62rem; letter-spacing:.25em; text-transform:uppercase; color:var(--or); opacity:.6; margin-bottom:1rem; }
.article-full-title  { font-family:var(--font-serif); font-size:clamp(2.2rem,4.5vw,3.8rem); font-weight:300; color:white; line-height:1.1; max-width:700px; }
.article-full-meta   { display:flex; gap:2rem; margin-top:1.5rem; flex-wrap:wrap; }
.article-full-meta span { font-size:.65rem; color:rgba(255,255,255,.38); letter-spacing:.1em; }
.article-full-content {
  display:grid; grid-template-columns:1fr 300px; gap:4rem;
  max-width:1200px; margin:0 auto;
  padding:clamp(3rem,4vw,4rem) clamp(1.5rem,4vw,4rem);
}
.article-content-body p           { font-size:.92rem; font-weight:300; color:rgba(255,255,255,.65); line-height:2; margin-bottom:1.5rem; }
.article-content-body h2          { font-family:var(--font-serif); font-size:1.6rem; font-weight:300; color:white; margin:2.5rem 0 1rem; }
.article-content-body h2 em       { font-style:italic; color:var(--or); }
.article-content-body ul          { list-style:none; margin:1rem 0 1.5rem; display:flex; flex-direction:column; gap:.6rem; }
.article-content-body li          { font-size:.88rem; color:rgba(255,255,255,.58); display:flex; align-items:flex-start; gap:.8rem; line-height:1.6; }
.article-content-body li::before  { content:''; width:16px; height:1px; background:var(--or); opacity:.45; flex-shrink:0; margin-top:.7rem; }
.article-content-body blockquote  {
  border-left:2px solid var(--or); padding:1rem 1.5rem; margin:2rem 0;
  background:rgba(200,169,110,.04);
  font-family:var(--font-serif); font-style:italic;
  font-size:1rem; color:rgba(255,255,255,.6); line-height:1.7;
}
.article-img-full    {
  width:100%; aspect-ratio:16/9; overflow:hidden;
  background:linear-gradient(135deg,rgba(78,41,122,.5),rgba(13,8,30,.8));
  display:flex; align-items:center; justify-content:center; margin-bottom:2.5rem; position:relative;
}
.article-img-full img { width:100%; height:100%; object-fit:cover; opacity:.55; }
.article-tags { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:2rem; padding-top:2rem; border-top:1px solid rgba(255,255,255,.05); }
.article-tag  { font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(200,169,110,.65); border:1px solid rgba(200,169,110,.15); padding:.25rem .7rem; }

/* ── RESPONSIVE ─────────────────────────────────────────────── */
@media (max-width:1024px) {
  .tarifs-3col { grid-template-columns:1fr 1fr; }
  .footer-top  { grid-template-columns:1fr 1fr; }
}

@media (max-width:900px) {
  .nav-hamburger  { display:flex; }
  .nav-links      {
    display:none; position:absolute; top:100%; left:0; right:0;
    background:rgba(8,8,13,.98); flex-direction:column;
    padding:2rem clamp(1.5rem,4vw,2rem); gap:1.5rem;
  }
  .nav-links.open { display:flex; }
  .hero-meta, .hero-scroll, .hero-line { display:none; }
  .pres-layout, .ethique-layout, .partenaire-layout, .contact-layout { grid-template-columns:1fr; }
  .valeurs-grid  { grid-template-columns:1fr 1fr; }
  .services-cats { grid-template-columns:1fr; }
  .temoignages-grid { grid-template-columns:1fr 1fr; }
  .options-grid  { grid-template-columns:1fr; }
  .blog-layout, .article-full-content { grid-template-columns:1fr; }
  .blog-sidebar  { display:none; }
  .article-card  { grid-template-columns:1fr; }
  .article-img   { height:200px; }
  .services-intro { flex-direction:column; }
}

@media (max-width:600px) {
  .tarifs-3col      { grid-template-columns:1fr; }
  .temoignages-grid { grid-template-columns:1fr; }
  .valeurs-grid     { grid-template-columns:1fr; }
  .pillars          { grid-template-columns:1fr; }
  .soins-grid       { grid-template-columns:1fr; }
  .footer-top       { grid-template-columns:1fr; }
  .avis-row         { grid-template-columns:1fr; }
  .tarif-panel-body > div[style*="grid"] { grid-template-columns:1fr !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation:none !important; transition:none !important; }
  .reveal { opacity:1; transform:none; }
}
