/* =========================================================================
   HOME BY SAND — style.css
   Feuille de style unique du site (aucun préprocesseur, aucun framework CSS)
   ========================================================================= */

/* ---------- Polices auto-hébergées ---------- */
@font-face {
  font-family: 'Marcellus';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/marcellus-latin-400.woff2") format('woff2');
}
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url("fonts/jost-latin-var.woff2") format('woff2');
}

/* ---------- Design tokens ---------- */
:root {
  /* palette de base */
  --black-deep:#231B17;
  --near-black:#0d0b09;
  --copper:#B08461;
  --copper-dark:#8A6142;
  --copper-light:#C9A480;
  --cream:#F6EFE6;
  --cream-warm:#EFE3D2;
  --white:#FFFFFF;
  --grey-stone:#8C8478;
  --grey-mist:#D8D0C4;
  --header-bg:#F8F0E4;

  /* surfaces */
  --surface-primary:var(--black-deep);
  --surface-secondary:var(--cream);

  /* texte */
  --text-on-dark-primary:var(--cream);
  --text-on-dark-secondary:#C9BEB1;
  --text-on-cream-primary:var(--black-deep);
  --text-on-cream-secondary:#5C5147;

  /* bordures */
  --border-on-dark:rgba(246,239,230,.14);
  --border-on-cream:rgba(35,27,23,.12);

  /* typographie */
  --font-display:'Marcellus', Georgia, 'Times New Roman', serif;
  --font-body:'Jost', -apple-system, Helvetica, Arial, sans-serif;

  --text-display-xl:clamp(2.1rem, 1.7rem + 1.5vw, 3.1rem);
  --text-display-l:clamp(1.65rem, 1.4rem + .85vw, 2.2rem);
  --text-display-m:clamp(1.25rem, 1.1rem + .45vw, 1.55rem);
  --text-heading-l:1.75rem;
  --text-heading-m:1.375rem;
  --text-heading-s:1.125rem;
  --text-body-l:1.125rem;
  --text-body-m:1rem;
  --text-body-s:.875rem;
  --text-caption:.75rem;
  --text-overline:.6875rem;

  --lh-display:1.12;
  --lh-heading:1.25;
  --lh-body:1.65;

  --ls-display:.005em;
  --ls-heading:.01em;
  --ls-overline:.18em;
  --ls-button:.08em;

  --fw-regular:400;
  --fw-medium:500;
  --fw-semibold:600;

  /* espacements */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px;
  --space-6:32px; --space-7:48px; --space-8:64px; --space-9:96px; --space-10:128px;

  /* rayons (thème "doux") */
  --radius-s:2px; --radius-m:4px; --radius-l:8px; --radius-pill:999px;

  --container-max:1200px;
  --gutter:clamp(20px,4vw,64px);

  --shadow-card:0 1px 2px rgba(35,27,23,.06), 0 8px 24px -8px rgba(35,27,23,.28);
  --shadow-card-hover:0 2px 4px rgba(35,27,23,.08), 0 16px 40px -12px rgba(35,27,23,.28);

  --ease-out:cubic-bezier(.16,1,.3,1);
  --duration-fast:150ms;
  --duration-base:240ms;
}

/* ---------- Reset minimal ---------- */
*, *::before, *::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  margin:0;
  background:var(--cream);
  color:var(--text-on-cream-primary);
  font-family:var(--font-body);
  font-size:var(--text-body-m);
  line-height:var(--lh-body);
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; display:block; }
a { color:var(--copper-dark); text-decoration:none; }
a:hover { color:var(--copper); }
::selection { background:var(--copper); color:var(--near-black); }
button { font:inherit; }
:focus-visible { outline:2px solid var(--copper); outline-offset:2px; }

.sec { scroll-margin-top:86px; }
.container { max-width:var(--container-max); margin:0 auto; }

.hbs-display { font-family:var(--font-display); font-weight:var(--fw-medium); line-height:var(--lh-display); letter-spacing:var(--ls-display); }
.hbs-display em { font-style:italic; font-weight:var(--fw-regular); }
.hbs-heading { font-family:var(--font-display); font-weight:var(--fw-semibold); line-height:var(--lh-heading); letter-spacing:var(--ls-heading); }
.hbs-body { font-family:var(--font-body); font-weight:var(--fw-regular); line-height:var(--lh-body); }
.hbs-overline {
  display:inline-flex; align-items:center; gap:12px;
  font-family:var(--font-body); font-weight:var(--fw-medium);
  letter-spacing:var(--ls-overline); text-transform:uppercase; font-size:var(--text-overline);
  color:var(--copper); margin-bottom:20px;
}
.hbs-overline .num { opacity:.5; }
.hbs-overline .rule { width:34px; height:1px; background:currentColor; opacity:.5; }

@keyframes hbs-fade-in { from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:none;} }
@keyframes hbs-marquee { from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* Apparition au scroll (dégradée si JS désactivé : tout reste visible) */
.rv-ready [data-rv] { opacity:0; transform:translateY(28px); transition:opacity .9s var(--ease-out), transform .9s var(--ease-out); }
.rv-ready [data-rv].in { opacity:1; transform:none; }

/* ---------- Header ---------- */
.site-header {
  position:sticky; top:0; z-index:70;
  background:var(--header-bg);
  border-bottom:1px solid rgba(35,27,23,.1);
}
.site-header__bar {
  max-width:var(--container-max); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:6px var(--gutter);
}
.brand-btn { background:none; border:none; padding:0; cursor:pointer; display:flex; align-items:center; }
.brand-btn img { height:60px; width:auto; }

.nav-desktop { display:flex; align-items:center; gap:18px; list-style:none; margin:0; padding:0; }
.nav-lnk {
  position:relative; background:none; border:none; cursor:pointer; padding:6px 0;
  font-family:var(--font-body); font-size:11.5px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:var(--text-on-cream-secondary); white-space:nowrap;
  transition:color var(--duration-fast) var(--ease-out);
}
.nav-lnk::after {
  content:""; position:absolute; left:0; bottom:2px; height:1px; width:100%;
  background:currentColor; transform:scaleX(0); transform-origin:right;
  transition:transform .45s var(--ease-out);
}
.nav-lnk:hover::after,
.nav-lnk.is-active::after { transform:scaleX(1); transform-origin:left; }
.nav-lnk.is-active { color:var(--copper-dark); }

.header-actions { display:flex; align-items:center; gap:16px; }

.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-body); font-weight:500; letter-spacing:var(--ls-button);
  text-transform:uppercase; border-radius:var(--radius-s); cursor:pointer; border:1px solid transparent;
  transition:background var(--duration-base) ease, color var(--duration-base) ease, border-color var(--duration-base) ease, transform var(--duration-base) ease;
  text-decoration:none;
}
.btn-s { font-size:11px; padding:10px 18px; min-height:40px; }
.btn-m { font-size:12px; padding:13px 24px; min-height:46px; }
.btn-l { font-size:13px; padding:16px 30px; min-height:52px; }
.btn-primary { background:var(--copper); color:var(--near-black); border-color:var(--copper); }
.btn-primary:hover { background:var(--copper-light); border-color:var(--copper-light); color:var(--near-black); }
.btn-outline { background:transparent; color:var(--text-on-cream-primary); border-color:var(--border-on-cream); }
.btn-outline:hover { background:var(--cream-warm); }

.nav-burger {
  display:none; background:none; border:1px solid rgba(35,27,23,.2); border-radius:var(--radius-s);
  cursor:pointer; padding:8px 10px; color:var(--black-deep); font-size:16px; line-height:1;
}
.nav-mobile {
  display:none; border-top:1px solid rgba(35,27,23,.1);
  padding:8px var(--gutter) 16px; flex-direction:column; background:var(--header-bg);
}
.nav-mobile.is-open { display:flex; }
.nav-mobile button {
  background:none; border:none; border-bottom:1px solid rgba(35,27,23,.1); cursor:pointer; text-align:left;
  font-family:var(--font-body); font-size:14px; letter-spacing:.06em; text-transform:uppercase;
  padding:14px 4px; color:var(--text-on-cream-primary);
}

/* ---------- Héro ---------- */
.hero {
  position:relative; background:#000; color:var(--cream);
  padding:clamp(40px,6vw,72px) var(--gutter) 0; overflow:hidden;
}
.hero::before {
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(58% 58% at 6% 96%, rgba(176,132,97,.10) 0%, rgba(176,132,97,0) 70%);
}
.hero-grid {
  position:relative; max-width:var(--container-max); margin:0 auto;
  display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(28px,4vw,60px); align-items:center;
  min-height:min(76vh,740px); padding:clamp(28px,4vw,52px) 0;
}
.hero-kicker { display:flex; align-items:center; gap:16px; margin-bottom:clamp(22px,3vw,34px); }
.hero-kicker .rule { width:56px; height:1px; background:var(--copper); }
.hero-kicker span.hbs-overline { color:var(--copper-light); margin-bottom:0; font-size:var(--text-body-s); }
.hero h1 {
  font-size:clamp(2.2rem, 1.8rem + 1.9vw, 3.5rem); line-height:1.02;
  margin:0 0 clamp(32px,4vw,46px); letter-spacing:-.01em;
}
.hero h1 .accent { color:var(--copper); }
.hero-actions { display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.arrow-lnk {
  background:none; border:none; cursor:pointer; display:inline-flex; align-items:center; gap:10px;
  color:var(--cream); font-family:var(--font-body); font-size:12px; font-weight:500;
  letter-spacing:.14em; text-transform:uppercase; padding:14px 4px;
}
.arrow-lnk .reveal-more { max-width:0; opacity:0; overflow:hidden; white-space:nowrap; color:var(--text-on-dark-secondary); transition:max-width .6s var(--ease-out), opacity .5s ease; }
.arrow-lnk:hover .reveal-more, .arrow-lnk:focus-visible .reveal-more { max-width:22ch; opacity:1; }
.arrow-lnk .arw { display:inline-block; color:var(--copper-light); transition:transform .45s var(--ease-out); }
.arrow-lnk:hover .arw { transform:translateX(6px); }
@media (hover:none), (max-width:640px) {
  .arrow-lnk { flex-wrap:wrap; }
  .arrow-lnk .reveal-more { max-width:none !important; opacity:1 !important; overflow:visible; white-space:normal; }
}
.hero-figure { justify-self:center; }
.hero-figure img { width:clamp(324px,41vw,576px); height:auto; }

/* Carte d'invitation au test (hero) */
.test-invite {
  width:100%; max-width:520px; text-align:left; cursor:pointer;
  background:rgba(176,132,97,.07); border:1px solid rgba(176,132,97,.4); border-radius:var(--radius-l);
  padding:clamp(20px,2.5vw,26px) clamp(20px,2.5vw,28px);
  display:flex; align-items:center; gap:clamp(16px,2vw,22px);
  transition:background .45s ease, border-color .45s ease, transform .45s var(--ease-out);
}
.test-invite:hover, .test-invite:focus-visible {
  background:rgba(176,132,97,.14); border-color:var(--copper); transform:translateY(-3px);
}
.test-invite__text { flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; }
.test-invite__text .hbs-display { display:block; font-size:var(--text-display-m); color:var(--cream); line-height:1.25; }
.test-invite__text .hbs-overline { color:var(--copper-light); margin-bottom:0; }
.test-invite__arrow {
  flex:none; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px;
  border-radius:var(--radius-pill); background:var(--copper); color:var(--near-black); font-size:17px;
  transition:transform .45s var(--ease-out);
}
.test-invite:hover .test-invite__arrow { transform:translateX(5px); }

/* Bandeau défilant */
.marquee { position:relative; border-top:1px solid rgba(246,239,230,.1); overflow:hidden; }
.marquee-track { display:inline-flex; white-space:nowrap; padding:16px 0; animation:hbs-marquee 34s linear infinite; will-change:transform; }
.marquee-track span {
  font-family:var(--font-display); font-style:italic;
  font-size:clamp(.95rem, .85rem + .4vw, 1.25rem);
  padding:0 30px; display:inline-flex; align-items:center; gap:60px;
}
.marquee-track .star { color:var(--copper); font-style:normal; font-size:.7em; }
.marquee-track span:nth-child(odd) { color:rgba(246,239,230,.55); }
.marquee-track span:nth-child(even) { color:var(--copper-light); }
@media (prefers-reduced-motion: reduce) { .marquee-track { animation:none; } }

/* ---------- Sections génériques ---------- */
.section-pad { padding:clamp(72px,10vw,140px) var(--gutter); }
.section-head { max-width:60ch; margin:0 0 clamp(48px,6vw,80px); }
.section-head.centered { text-align:center; max-width:56ch; margin-inline:auto; }
.section-head h2 { font-size:var(--text-display-l); margin:0 0 16px; line-height:1.02; }
.section-head p { color:var(--text-on-cream-secondary); margin:0; font-size:var(--text-body-l); }
.on-dark .section-head p { color:var(--text-on-dark-secondary); }

#methode .section-head { max-width:none; }
#methode .section-head p,
#tarifs .section-head p { font-size:var(--text-heading-m); }
@media (min-width:1024px) {
  #methode .section-head p { white-space:nowrap; }
}

.bg-cream { background:var(--cream); color:var(--text-on-cream-primary); }
.bg-cream-warm { background:var(--cream-warm); color:var(--text-on-cream-primary); }
.bg-near-black { background:var(--near-black); color:var(--cream); }

/* Cartes / tuiles */
.tile-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:clamp(16px,2vw,22px); }
.tile {
  position:relative; background:#fff; border:1px solid var(--border-on-cream); border-radius:var(--radius-l);
  box-shadow:0 1px 2px rgba(35,27,23,.04); overflow:hidden; padding:clamp(28px,3vw,36px) clamp(24px,2.5vw,30px);
  transition:transform .55s var(--ease-out), box-shadow .55s var(--ease-out), border-color .55s ease;
}
.tile::before {
  content:""; position:absolute; left:0; top:0; height:2px; width:100%;
  background:linear-gradient(90deg,var(--copper),var(--copper-light));
  transform:scaleX(0); transform-origin:left; transition:transform .55s var(--ease-out);
}
.tile:hover { transform:translateY(-8px); box-shadow:0 22px 48px -18px rgba(35,27,23,.32); border-color:transparent; }
.tile:hover::before { transform:scaleX(1); }
.tile .tnum { font-family:var(--font-display); font-size:1.6rem; color:var(--copper); opacity:.55; display:block; margin-bottom:16px; }
.tile h3 { font-size:var(--text-heading-s); margin:0 0 8px; font-family:var(--font-display); font-weight:var(--fw-semibold); line-height:var(--lh-heading); letter-spacing:var(--ls-heading); }
.tile p { font-size:var(--text-body-s); color:var(--text-on-cream-secondary); margin:0; }

/* Méthode : gestes */
.gestes-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,20px); margin-bottom:clamp(32px,4vw,44px); }
.gestes-grid .tile { padding:clamp(20px,2.4vw,28px) clamp(18px,2vw,22px); }
@media (max-width:860px) { .gestes-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px) { .gestes-grid { grid-template-columns:1fr; } }
.geste-card { display:flex; flex-direction:column; gap:14px; }
.geste-badge {
  display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; flex:none;
  border-radius:var(--radius-pill); background:var(--cream-warm); border:1px solid var(--border-on-cream);
  font-family:var(--font-display); font-size:1.15rem; color:var(--copper-dark);
}
.geste-card h3 { font-size:var(--text-heading-m); margin:0 0 6px; }
.geste-card p { font-size:var(--text-body-s); color:var(--text-on-cream-secondary); margin:0; }

/* Méthode est une section sombre : tuiles en --black-deep (brun-noir chaud, plus clair que
   le fond --near-black) avec liseré et lueur cuivre au survol, pour un vrai relief de carte. */
#methode .tile { background:var(--cream); border-color:var(--border-on-cream); box-shadow:var(--shadow-card); }
#methode .tile:hover { box-shadow:var(--shadow-card-hover); }
#methode .tile.static:hover { border-color:var(--border-on-cream); }
#methode .tile h3, #methode .tile-inner-title { color:var(--black-deep); }
#methode .tile p, #methode .geste-card p { color:var(--text-on-cream-secondary); }
#methode .space-item .lbl { color:var(--black-deep); }

.tile.static:hover { transform:none; box-shadow:0 1px 2px rgba(35,27,23,.04); border-color:var(--border-on-cream); }
.tile.static:hover::before { transform:scaleX(0); }
.tile-inner-title { font-size:var(--text-display-m); margin:0 0 18px; font-family:var(--font-display); font-weight:var(--fw-medium); }
.space-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:clamp(24px,3vw,32px); }
.space-item { display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; }
.space-icon {
  display:flex; align-items:center; justify-content:center; width:58px; height:58px; flex:none;
  border-radius:50%; background:#fff; border:1px solid var(--border-on-cream); box-shadow:var(--shadow-card);
  color:var(--copper-dark); transition:transform .4s var(--ease-out), box-shadow .4s var(--ease-out);
}
.space-item:hover .space-icon { transform:translateY(-3px); box-shadow:var(--shadow-card-hover); }
.space-item .lbl { font-size:var(--text-body-m); color:var(--text-on-cream-primary); }
.chip-row { display:flex; flex-direction:column; align-items:center; gap:10px; }
.chip {
  display:inline-flex; align-items:center; padding:9px 18px; border:1px solid var(--copper);
  border-radius:var(--radius-pill); font-size:12px; font-weight:500; letter-spacing:.1em;
  text-transform:uppercase; color:var(--copper-dark);
}
.tile-avenir { display:flex; flex-direction:column; }
.tile-avenir .chip-row { flex:1; justify-content:center; gap:14px; }
.tile-avenir .chip { font-size:14px; padding:12px 24px; }

/* Formules / tarifs */
.compris-box {
  margin-bottom:clamp(32px,4vw,48px); background:#fff; border:1px solid var(--border-on-cream);
  border-radius:var(--radius-l); box-shadow:var(--shadow-card); padding:clamp(28px,3.5vw,40px); text-align:center;
}
.compris-lead {
  display:flex; align-items:center; justify-content:center; gap:14px; margin:0 0 20px;
  font-family:var(--font-display); font-size:var(--text-display-m); font-weight:var(--fw-medium); color:var(--text-on-cream-primary);
}
.compris-lead .star { color:var(--copper); font-size:.65em; }
.compris-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 28px; justify-items:center; }
.compris-list li { display:flex; align-items:center; gap:8px; font-size:var(--text-body-l); color:var(--text-on-cream-secondary); }
.compris-list li::before { content:"✦"; color:var(--copper); flex:none; }
@media (max-width:860px) { .compris-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:480px) { .compris-list { grid-template-columns:1fr; } }

.pricing-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:20px; }
.price-card {
  border-radius:var(--radius-l); padding:clamp(30px,3.5vw,42px); box-shadow:var(--shadow-card);
  position:relative; display:flex; flex-direction:column; border:1px solid var(--border-on-cream);
  transition:transform .5s var(--ease-out), border-color .5s ease, box-shadow .5s ease;
}
.price-card:hover { transform:translateY(-5px); border-color:var(--copper); }
.price-card.on-cream { background:#fff; color:var(--text-on-cream-primary); }
.price-card.on-dark { background:var(--near-black); color:var(--cream); border-color:var(--copper); }
.price-badge { min-height:22px; margin-bottom:14px; }
.badge {
  display:inline-flex; align-items:center; padding:5px 14px; border-radius:var(--radius-pill);
  background:var(--copper-dark); color:#fff; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
}
.price-card h3 { font-size:var(--text-display-m); margin:0 0 4px; font-style:italic; font-family:var(--font-display); font-weight:var(--fw-medium); }
.price-duration { display:block; font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--copper-light); margin-bottom:20px; }
.price-amount { display:flex; align-items:baseline; gap:8px; margin-bottom:6px; }
.price-amount .value { font-family:var(--font-display); font-size:clamp(2rem, 1.7rem + 1.1vw, 2.7rem); line-height:1; }
.price-amount .unit { font-size:13px; }
.price-card p.desc { font-size:var(--text-body-s); margin:0 0 24px; flex:1; }
.price-card.on-cream .price-amount .value,
.price-card.on-cream .unit { color:var(--copper-dark); }
.price-card.on-cream p.desc { color:var(--text-on-cream-secondary); }
.price-card.on-dark .price-amount .value { color:var(--copper-light); }
.price-card.on-dark .unit,
.price-card.on-dark p.desc { color:var(--text-on-dark-secondary); }

.two-col {
  margin-top:clamp(32px,4vw,48px); display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:clamp(16px,2vw,22px); align-items:stretch;
}
.option-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:13px; }
.option-list li { display:flex; gap:12px; align-items:flex-start; font-size:var(--text-body-s); }
.option-list li::before { content:"✦"; color:var(--copper); flex:none; }
.muted { color:var(--text-on-cream-secondary); }

.payment-box {
  margin-top:clamp(20px,2.5vw,28px); background:#fff; border:1px solid var(--border-on-cream);
  border-radius:var(--radius-l); padding:clamp(28px,3.5vw,40px);
}
.payment-box h3 { margin:0 0 16px; }
.payment-terms { list-style:none; margin:0 0 22px; padding:0; display:flex; flex-direction:column; gap:8px; }
.payment-terms li { font-size:var(--text-body-s); color:var(--text-on-cream-secondary); }
.payment-methods { display:flex; flex-wrap:wrap; gap:clamp(20px,3vw,32px); }
.payment-method { display:flex; align-items:center; gap:10px; font-size:var(--text-body-s); color:var(--text-on-cream-primary); }
.payment-icon {
  display:flex; align-items:center; justify-content:center; width:36px; height:36px; flex:none;
  border-radius:50%; background:var(--cream-warm); border:1px solid var(--border-on-cream); color:var(--copper-dark);
}

/* À propos */
.about-grid { display:grid; grid-template-columns:336px minmax(0,1fr); gap:clamp(24px,3.5vw,52px); align-items:stretch; margin-bottom:clamp(48px,6vw,80px); }
.about-photo { display:flex; flex-direction:column; }
.about-photo img { width:100%; max-width:336px; height:auto; margin:auto 0; }
.about-text { border-left:1px solid rgba(176,132,97,.4); padding-left:clamp(20px,3vw,34px); display:flex; flex-direction:column; justify-content:center; min-width:0; }
@media (max-width:860px) {
  .about-grid { grid-template-columns:1fr; }
  .about-photo img { margin:0 0 8px; }
  .about-text { border-left:none; padding-left:0; border-top:1px solid rgba(176,132,97,.4); padding-top:clamp(20px,4vw,28px); }
}
.about-text p { color:var(--text-on-dark-secondary); margin:0 0 14px; }
.about-text .about-lead { font-size:var(--text-display-m); color:var(--cream); }
.about-list-lead { font-size:var(--text-body-m); color:var(--cream); margin:0 0 10px; }
.about-list { list-style:none; margin:0 0 18px; padding:0; display:flex; flex-direction:column; gap:8px; }
.about-list li { color:var(--cream); }
.about-list li::before { content:"✦ "; color:var(--copper-light); }

.stat-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:1px;
  background:rgba(246,239,230,.12); border:1px solid rgba(246,239,230,.12); margin-bottom:clamp(40px,5vw,60px);
}
.stat-cell { background:var(--near-black); padding:clamp(26px,3vw,34px) clamp(22px,2.5vw,28px); }
.stat-num { font-family:var(--font-display); font-size:clamp(1.6rem,1.35rem + .8vw,2.2rem); line-height:1; color:var(--copper-light); display:block; margin-bottom:8px; }
.stat-title { font-size:var(--text-heading-s); font-family:var(--font-display); font-weight:var(--fw-semibold); margin-bottom:6px; }
.stat-cell p { font-size:var(--text-body-s); color:var(--text-on-dark-secondary); margin:0; }

.values-row { display:flex; flex-wrap:wrap; justify-content:center; gap:0; border-top:1px solid rgba(246,239,230,.12); }
.value-item { flex:1 1 160px; padding:24px 22px; text-align:center; border-bottom:1px solid rgba(246,239,230,.12); }
.value-item .t { font-size:var(--text-heading-m); font-family:var(--font-display); font-weight:var(--fw-semibold); color:var(--copper-light); margin-bottom:6px; }
.value-item .d { font-size:12px; color:var(--text-on-dark-secondary); }

/* Quiz */
#test .section-head { margin-bottom:clamp(32px,4vw,48px); }
.test-intro {
  display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(28px,5vw,64px);
  margin-bottom:clamp(32px,4vw,48px);
}
.test-intro__item { display:flex; align-items:center; gap:18px; }
.test-intro__icon {
  display:flex; align-items:center; justify-content:center; flex:none; width:88px; height:88px;
  border-radius:50%; background:#fff; border:1px solid var(--border-on-cream); box-shadow:var(--shadow-card);
  color:var(--copper-dark);
}
.test-intro__icon--stars { gap:2px; color:var(--copper); font-size:19px; }
.test-intro__icon--stars span { font-size:26px; color:var(--copper-dark); margin:0 -1px; }
.test-intro__txt { font-family:var(--font-display); font-size:var(--text-heading-m); color:var(--text-on-cream-primary); line-height:1.3; text-align:left; }
.test-intro__txt strong { color:var(--copper-dark); font-weight:var(--fw-semibold); }

.quiz-card { background:#fff; border:1px solid var(--border-on-cream); border-radius:var(--radius-l); box-shadow:var(--shadow-card); padding:clamp(22px,3vw,36px); display:flex; flex-direction:column; }
.quiz-q { display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; padding:16px 0; border-bottom:1px solid var(--border-on-cream); }
.quiz-q .txt { display:flex; gap:12px; align-items:flex-start; flex:1 1 240px; font-size:var(--text-body-m); }
.quiz-q .txt::before { content:"✦"; color:var(--copper); flex:none; }
.quiz-q .answers { display:flex; gap:8px; flex:none; }
.qbtn {
  cursor:pointer; font-family:var(--font-body); font-size:11px; font-weight:500; letter-spacing:.12em;
  text-transform:uppercase; padding:9px 20px; border-radius:var(--radius-pill); border:1px solid var(--border-on-cream);
  background:transparent; color:var(--text-on-cream-secondary);
  transition:background .35s ease, color .35s ease, border-color .35s ease;
}
.qbtn.yes.is-selected { background:var(--copper); color:#fff; border-color:var(--copper); }
.qbtn.no.is-selected { background:var(--black-deep); color:var(--cream); border-color:var(--black-deep); }

.quiz-footer { display:flex; flex-wrap:wrap; gap:18px; align-items:center; justify-content:space-between; padding-top:26px; }
.quiz-progress { display:flex; flex-direction:column; gap:8px; min-width:180px; flex:1 1 180px; }
.quiz-progress .lbl { font-size:13px; color:var(--text-on-cream-secondary); }
.progress-track { display:block; height:2px; width:100%; background:var(--border-on-cream); border-radius:var(--radius-pill); overflow:hidden; }
.progress-fill { display:block; height:100%; width:0%; background:var(--copper); transition:width .5s var(--ease-out); }
.quiz-controls { display:flex; gap:16px; align-items:center; flex:none; }
.link-reset {
  background:none; border:none; cursor:pointer; padding:2px 0; font-family:var(--font-body);
  font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-on-cream-secondary);
}
.btn-reveal {
  cursor:not-allowed; font-family:var(--font-body); font-weight:500; font-size:13px; letter-spacing:var(--ls-button);
  text-transform:uppercase; padding:14px 28px; border-radius:var(--radius-s); border:1px solid var(--border-on-cream);
  background:transparent; color:var(--text-on-cream-secondary);
  transition:background .35s ease, color .35s ease, border-color .35s ease;
}
.btn-reveal.is-ready { cursor:pointer; background:var(--copper); color:var(--near-black); border-color:var(--copper); }

.quiz-result {
  margin-top:clamp(24px,3vw,36px); background:var(--near-black); color:var(--cream); border-radius:var(--radius-l);
  padding:clamp(30px,4vw,52px); text-align:center; display:none; scroll-margin-top:100px;
  opacity:0; transform:translateY(16px); transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);
}
.quiz-result.is-visible { display:block; }
.quiz-result.is-shown { opacity:1; transform:translateY(0); }
.quiz-result .star { color:var(--copper); font-size:22px; }
.quiz-result blockquote { font-size:var(--text-display-m); font-family:var(--font-display); font-style:italic; line-height:1.3; margin:18px auto 10px; max-width:34ch; }
.quiz-result.is-no blockquote { max-width:30ch; }
.quiz-result p { color:var(--text-on-dark-secondary); font-size:var(--text-body-l); margin:0 auto 30px; max-width:52ch; }

/* Contact */
.contact-lead {
  text-align:center; max-width:56ch; margin:0 auto; font-family:var(--font-display); font-size:var(--text-display-l);
  font-weight:var(--fw-medium); color:var(--text-on-cream-primary);
}
.contact-grid { display:grid; grid-template-columns:minmax(240px,360px) minmax(320px,1fr); gap:clamp(32px,5vw,64px); align-items:start; margin-top:clamp(40px,5vw,56px); }
@media (max-width:760px) { .contact-grid { grid-template-columns:1fr; } }
.contact-links { display:flex; flex-direction:column; gap:14px; max-width:340px; }
.contact-link {
  display:flex; align-items:center; gap:14px; padding:16px 18px;
  background:#fff; border:1px solid var(--border-on-cream); border-radius:var(--radius-m); box-shadow:var(--shadow-card);
  transition:transform .5s var(--ease-out), border-color .5s ease;
}
.contact-link:hover { transform:translateY(-5px); border-color:var(--copper); }
.contact-link__icon {
  display:flex; align-items:center; justify-content:center; width:38px; height:38px; flex:none;
  border-radius:50%; background:var(--cream-warm); border:1px solid var(--border-on-cream); color:var(--copper-dark);
}
.contact-link__body { flex:1; min-width:0; }
.contact-link .lbl { display:block; font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--copper); }
.contact-link .val { display:block; font-size:var(--text-body-m); color:var(--text-on-cream-primary); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.contact-link .arrow { color:var(--copper); font-size:18px; flex:none; }

.formule-recap {
  display:none; background:#fff; border:1px solid var(--copper); border-radius:var(--radius-m);
  box-shadow:var(--shadow-card); padding:20px 22px;
}
.formule-recap.is-visible { display:block; }
.formule-recap__label { display:block; font-size:.6875rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--copper); margin-bottom:6px; }
.formule-recap__name { font-size:var(--text-heading-m); font-family:var(--font-display); font-weight:var(--fw-medium); margin:0 0 12px; color:var(--copper-dark); }
.formule-recap__lead { font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-on-cream-secondary); margin:0 0 10px; }
.formule-recap__list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.formule-recap__list li { display:flex; gap:10px; align-items:flex-start; font-size:var(--text-body-s); color:var(--text-on-cream-primary); }
.formule-recap__list li::before { content:"✦"; color:var(--copper); flex:none; }

.contact-form-card { background:#fff; border:1px solid var(--border-on-cream); border-radius:var(--radius-m); box-shadow:var(--shadow-card); padding:clamp(28px,4.5vw,48px); }
.contact-form-card h3 { font-size:var(--text-heading-l); margin:0 0 20px; font-family:var(--font-display); font-weight:var(--fw-medium); line-height:var(--lh-display); letter-spacing:var(--ls-display); }
.form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:20px; }
.field { display:flex; flex-direction:column; gap:6px; margin-bottom:20px; }
.field label { font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-on-cream-secondary); }
.field input:not([type="checkbox"]):not([type="radio"]), .field select, .field textarea {
  font-family:var(--font-body); font-size:15px; padding:13px 14px; border-radius:var(--radius-s);
  background:#fff; border:1px solid var(--border-on-cream); color:var(--text-on-cream-primary); outline:none;
  transition:border-color .25s ease; width:100%;
}
.field textarea { resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color:var(--copper); }
.field.checkbox { flex-direction:row; flex-wrap:wrap; align-items:flex-start; gap:10px; }
.field.checkbox input { width:18px; height:18px; flex-shrink:0; margin-top:2px; accent-color:var(--copper); }
.field.checkbox label { text-transform:none; letter-spacing:normal; font-size:13px; flex:1 1 0%; min-width:0; }
.field-error { display:none; font-size:12px; color:#8a2f18; }
.field-error.is-visible { display:block; }
.field.checkbox .field-error { flex-basis:100%; }
.field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea { border-color:#8a2f18; }
.field.checkbox.is-invalid label { color:#8a2f18; }
.select-wrap { position:relative; }
.select-wrap select { appearance:none; -webkit-appearance:none; padding-right:38px; text-overflow:ellipsis; }
.select-arrow { position:absolute; right:14px; top:50%; transform:translateY(-50%); pointer-events:none; color:var(--copper); font-size:13px; }
.field-legend { font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-on-cream-secondary); }
.pref-row, .pref-moment { display:flex; flex-wrap:wrap; gap:18px; margin-top:8px; }
.pref-moment { display:none; margin-top:10px; padding-top:10px; border-top:1px solid var(--border-on-cream); }
.pref-moment.is-visible { display:flex; }
.pref-check { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text-on-cream-primary); cursor:pointer; }
.pref-check input { width:16px; height:16px; flex-shrink:0; margin:0; accent-color:var(--copper); }
.form-note { font-size:12px; color:var(--text-on-cream-secondary); margin:8px 0 0; }
.form-msg { font-size:14px; padding:12px 14px; border-radius:var(--radius-s); margin-bottom:16px; display:none; }
.form-msg.is-visible { display:block; }
.form-msg.error { background:#fbe7e2; color:#8a2f18; border:1px solid #e3ad98; }
.form-msg.success { background:#eef2e6; color:#3f4d31; border:1px solid #c1cdab; }

.google-review {
  margin-top:clamp(28px,3.5vw,40px); display:flex; align-items:center; gap:18px; padding:22px clamp(22px,3vw,32px);
  background:#fff; border:1px solid var(--border-on-cream); border-radius:var(--radius-m); box-shadow:var(--shadow-card);
  transition:transform .5s var(--ease-out), border-color .5s ease;
}
.google-review:hover { transform:translateY(-5px); border-color:var(--copper); }
.google-review__badge {
  display:flex; align-items:center; justify-content:center; width:46px; height:46px; flex:none;
  border-radius:50%; background:var(--cream-warm); border:1px solid var(--border-on-cream);
  font-family:var(--font-display); font-weight:var(--fw-semibold); font-size:1.3rem; color:var(--copper-dark);
}
.google-review__body { flex:1; min-width:0; display:flex; flex-direction:column; gap:4px; }
.google-review__stars { color:var(--copper); letter-spacing:.1em; font-size:13px; }
.google-review__stats-row { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.google-review__count { font-family:var(--font-body); font-weight:var(--fw-medium); font-size:13px; color:var(--text-on-cream-secondary); }
.google-review__text { font-size:var(--text-body-m); color:var(--text-on-cream-primary); }
.google-review .arrow { color:var(--copper); font-size:18px; flex:none; }
.hp-field { position:absolute; left:-9999px; top:-9999px; width:1px; height:1px; overflow:hidden; }

.form-sent { text-align:center; padding:32px 8px; display:none; }
.form-sent.is-visible { display:block; }
.form-sent .star { color:var(--copper); font-size:26px; }
.form-sent h3 { font-size:var(--text-heading-l); margin:16px 0 12px; font-family:var(--font-display); font-weight:var(--fw-medium); line-height:var(--lh-display); letter-spacing:var(--ls-display); }
.form-sent p { color:var(--text-on-cream-secondary); margin:0 0 24px; max-width:40ch; margin-inline:auto; }

/* Footer */
.site-footer { background:#000; color:var(--cream); padding:clamp(56px,7vw,96px) var(--gutter) 32px; }
.footer-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:40px; }
.footer-brand { display:flex; align-items:center; justify-content:center; text-align:center; }
.footer-grid img { width:210px; height:auto; }
.footer-grid p { font-size:var(--text-body-s); color:var(--text-on-dark-secondary); max-width:34ch; margin:0; }
.footer-col .hbs-overline { color:var(--copper-light); display:block; margin-bottom:16px; }
.footer-links { display:flex; flex-direction:column; gap:10px; }
.footer-links button, .footer-links a {
  background:none; border:none; cursor:pointer; text-align:left; padding:0; font-family:var(--font-body);
  font-size:14px; color:var(--text-on-dark-secondary); align-self:flex-start;
}
.footer-social { display:inline-flex; align-items:center; gap:8px; }
.footer-social svg { flex:none; color:var(--copper-light); }

.legal-box { margin-top:40px; padding:28px 30px; background:var(--near-black); border:1px solid rgba(246,239,230,.1); border-radius:var(--radius-m); display:none; }
.legal-box.is-open { display:block; }
.legal-tabs { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; margin-bottom:18px; }
.legal-tabs .tabs { display:flex; gap:8px; }
.legal-tabs button.tab {
  background:transparent; color:var(--text-on-dark-secondary); border:1px solid rgba(246,239,230,.14); border-radius:var(--radius-s);
  cursor:pointer; font-family:var(--font-body); font-size:11px; letter-spacing:.08em; text-transform:uppercase; padding:8px 14px;
}
.legal-tabs button.tab.is-active { background:var(--copper); color:var(--near-black); }
.legal-tabs button.close-legal { background:none; border:none; cursor:pointer; color:var(--grey-stone); font-size:13px; }
.legal-content { max-height:340px; overflow-y:auto; display:flex; flex-direction:column; gap:18px; padding-right:8px; }
.legal-content div[data-legal] { display:none; }
.legal-content div[data-legal].is-active { display:block; }
.legal-content h4 { margin:0 0 6px; font-family:var(--font-display); font-weight:600; font-size:16px; color:var(--cream); }
.legal-content p { margin:0; font-family:var(--font-body); font-size:13px; line-height:1.65; color:var(--text-on-dark-secondary); }

.footer-bottom {
  display:flex; flex-wrap:wrap; gap:16px; justify-content:space-between; align-items:center;
  margin-top:44px; padding-top:24px; border-top:1px solid rgba(246,239,230,.1);
}
.footer-bottom .copy { font-size:12px; color:var(--grey-stone); }
.footer-bottom .legal-links { display:flex; gap:20px; }
.footer-bottom .legal-links button { background:none; border:none; cursor:pointer; padding:0; font-family:var(--font-body); font-size:12px; color:var(--grey-stone); }

/* Mes réalisations (avant / après) */
.realisations-info-card {
  margin-bottom:clamp(32px,4vw,48px); background:#fff; border:1px solid var(--border-on-cream);
  border-radius:var(--radius-l); box-shadow:var(--shadow-card); padding:clamp(28px,3.5vw,40px);
}
.realisations-info-card p { color:var(--text-on-cream-secondary); margin:0 0 14px; }
.realisations-info-card p:last-child { margin-bottom:0; }
.realisations-info-card .realisations-info-lead { color:var(--text-on-cream-primary); margin-bottom:12px; }
.realisations-info-list { list-style:none; margin:0 0 18px; padding:0; display:flex; flex-direction:column; gap:10px; }
.realisations-info-list li { display:flex; align-items:flex-start; gap:10px; color:var(--text-on-cream-secondary); font-size:var(--text-body-m); }
.realisations-info-list li::before { content:"✦"; color:var(--copper); flex:none; margin-top:3px; font-size:.85em; }
.realisations-info-card .realisations-info-cta { font-family:var(--font-display); font-style:italic; font-weight:var(--fw-medium); color:var(--copper-dark); font-size:var(--text-heading-s); margin:0; }

.realisations-tabs { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-bottom:clamp(28px,3.5vw,40px); }
.realisations-tab {
  cursor:pointer; font-family:var(--font-body); font-size:11px; font-weight:500; letter-spacing:.12em;
  text-transform:uppercase; padding:9px 20px; border-radius:var(--radius-pill); border:1px solid var(--copper);
  background:transparent; color:var(--copper-dark);
  transition:background .35s ease, color .35s ease, border-color .35s ease;
}
.realisations-tab.is-active { background:var(--copper); color:#fff; }

.realisations-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:clamp(16px,2vw,22px); margin-bottom:clamp(28px,3.5vw,40px); }
.realisation-card { display:flex; flex-direction:column; gap:10px; }
.realisation-pair {
  display:grid; grid-template-columns:1fr 1fr; gap:2px; border-radius:var(--radius-l); overflow:hidden;
  box-shadow:var(--shadow-card); border:0; padding:0; background:transparent; font:inherit; text-align:inherit;
  cursor:pointer; width:100%; transition:box-shadow .3s ease;
}
.realisation-pair:hover, .realisation-pair:focus-visible { box-shadow:var(--shadow-card-hover); }
.realisation-half { position:relative; aspect-ratio:1/1; background:var(--cream); }
.realisation-half img { width:100%; height:100%; object-fit:cover; display:block; }
.realisation-badge {
  position:absolute; bottom:8px; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  padding:4px 10px; border-radius:var(--radius-pill); color:#fff;
}
.realisation-badge--avant { left:8px; background:var(--near-black); }
.realisation-badge--apres { right:8px; background:var(--copper-dark); }
.realisation-caption { display:block; text-align:center; margin:0; }

.realisations-pager { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; }
.realisations-page {
  cursor:pointer; min-width:36px; height:36px; padding:0 4px; font-family:var(--font-body); font-size:13px;
  border-radius:var(--radius-pill); border:1px solid var(--border-on-cream); background:transparent; color:var(--text-on-cream-secondary);
  transition:background .3s ease, color .3s ease, border-color .3s ease;
}
.realisations-page.is-active { background:var(--copper); color:#fff; border-color:var(--copper); }

.realisations-lightbox {
  position:fixed; inset:0; z-index:200; display:none; justify-content:center;
  overflow-y:auto; background:rgba(13,11,9,.92); padding:24px;
}
.realisations-lightbox.is-open { display:flex; }
.realisations-lightbox__close {
  position:fixed; top:20px; right:20px; width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); color:#fff; font-size:16px;
  cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .25s ease;
}
.realisations-lightbox__close:hover { background:rgba(255,255,255,.2); }
.realisations-lightbox__pair { display:flex; flex-wrap:wrap; gap:16px; max-width:min(1100px,92vw); max-height:88vh; justify-content:center; margin:auto; }
.realisations-lightbox__pair figure { margin:0; flex:1 1 320px; min-width:0; display:flex; flex-direction:column; gap:10px; }
.realisations-lightbox__pair img { width:100%; max-height:76vh; object-fit:contain; border-radius:var(--radius-m); display:block; background:#000; }
.realisations-lightbox__pair figcaption {
  text-align:center; color:var(--cream); font-family:var(--font-body); font-size:11px;
  letter-spacing:.12em; text-transform:uppercase; opacity:.75;
}

/* Avis Google (carrousel) — bloc affiché juste sous le bouton "Laisser un
   avis Google" (pas une section à part), donc pas de section-pad/fond
   propre : un simple espacement au-dessus, cohérent avec .google-review. */
.avis-google-block { margin-top:clamp(24px,3vw,32px); display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px; }
.avis-google-kicker { margin-bottom:0; }

/* max-width : min(680px, 100% - 140px) réserve toujours 70px de chaque côté
   pour les flèches (44px de large, décalées à -56px du bord) quelle que soit
   la largeur disponible entre le seuil mobile (640px, flèches repositionnées
   à l'intérieur) et le desktop — évite un débordement des flèches en
   tablette, où 680px fixes laisseraient parfois moins de 56px de marge. */
.avis-carousel { position:relative; width:100%; max-width:min(680px, calc(100% - 140px)); margin:0 auto; }
.avis-carousel__arrow {
  position:absolute; top:50%; transform:translateY(-50%); z-index:2;
  display:flex; align-items:center; justify-content:center; padding:0;
  width:44px; height:44px; border-radius:50%; border:1px solid var(--copper-light);
  background:#fff; color:var(--copper-dark); font-size:18px; line-height:1; cursor:pointer;
  transition:border-color .3s ease, color .3s ease;
}
.avis-carousel__arrow:hover { border-color:var(--copper); color:var(--copper); }
.avis-carousel__arrow--prev { left:-56px; }
.avis-carousel__arrow--next { right:-56px; }

.avis-card {
  position:relative; background:#fff; border:1px solid var(--border-on-cream); border-radius:var(--radius-l);
  box-shadow:var(--shadow-card); padding:clamp(32px,4vw,44px) clamp(28px,4vw,48px);
  display:flex; flex-direction:column; align-items:flex-start; gap:16px; text-align:left;
}
.avis-card__quote { position:absolute; top:8px; left:24px; font-family:var(--font-display); font-size:64px; line-height:1; color:var(--copper-light); opacity:.35; }
.avis-card__stars { color:var(--copper); letter-spacing:.12em; font-size:14px; }
.avis-card__text { margin:0; font-size:var(--text-body-l); line-height:1.6; color:var(--text-on-cream-primary); }
.avis-card__footer { display:flex; align-items:center; gap:14px; }
.avis-card__avatar {
  display:flex; align-items:center; justify-content:center; flex:none; width:40px; height:40px; border-radius:50%;
  background:var(--cream-warm); font-family:var(--font-body); font-weight:var(--fw-semibold); font-size:14px; color:var(--copper-dark);
}
.avis-card__author { display:flex; flex-direction:column; }
.avis-card__name { font-family:var(--font-body); font-weight:var(--fw-semibold); font-size:14px; color:var(--text-on-cream-primary); }
.avis-card__meta { font-size:12px; color:var(--text-on-cream-secondary); }

.avis-carousel__dots { display:flex; justify-content:center; gap:8px; }
.avis-dot { width:8px; height:8px; padding:0; border:0; border-radius:50%; background:var(--copper-light); opacity:.4; cursor:pointer; }
.avis-dot.is-active { background:var(--copper); opacity:1; }

/* Skip link (accessibilité) */
.skip-link {
  position:absolute; left:-9999px; top:0; background:var(--copper); color:#fff; padding:12px 18px; z-index:100;
}
.skip-link:focus { left:12px; top:12px; }

/* ---------- Responsive ---------- */
@media (max-width:1024px) {
  .nav-desktop { display:none; }
  .nav-burger { display:inline-flex; }
  .hero-grid { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .quiz-q { flex-direction:column; align-items:flex-start; }
  .quiz-q .txt { flex:none; width:100%; }
  .quiz-q .answers { width:100%; }
  .contact-link { flex-direction:row; }
  .stat-grid { grid-template-columns:1fr; }
  .about-photo { align-items:center; }
  .about-photo img { margin:0 auto 8px; }

  /* Avis Google : les flèches passent à l'intérieur du cadre (plus assez de
     place de part et d'autre sur mobile) — la carte gagne un padding latéral
     dédié pour que le texte ne passe jamais sous les flèches. */
  .avis-carousel { max-width:100%; }
  .avis-carousel__arrow { width:34px; height:34px; font-size:15px; }
  .avis-carousel__arrow--prev { left:4px; }
  .avis-carousel__arrow--next { right:4px; }
  .avis-card { padding-left:44px; padding-right:44px; }
  .avis-card__quote { display:none; }
}
