/* ==========================================================================
   Photobooth à louer — feuille de style unique
   Charte « Nuit de fête » : fond aubergine profond, corail incandescent, or.
   Toutes les couleurs sont regroupées ci-dessous : en changer une seule
   suffit à faire évoluer l'ensemble du site.
   ========================================================================== */

:root{
  /* --- Fonds et surfaces --- */
  --nuit:       #0E060B;   /* le plus sombre : bandeau défilant, pied de page */
  --fond:       #170D14;   /* fond général des pages */
  --fond-2:     #1F111B;   /* sections alternées */
  --surface:    #21121C;   /* cartes, panneaux, encadrés */
  --surface-2:  #2A1725;   /* champs de formulaire, survols */

  /* --- Bordures --- */
  --bord:       #3B2231;
  --bord-2:     #55324A;

  /* --- Textes --- */
  --texte:      #FFF3E9;
  --texte-doux: #C6A9B8;

  /* --- Couleur principale : corail incandescent --- */
  --corail:      #FF5C39;
  --corail-vif:  #FF7C4F;
  --corail-fond: #3B1B22;  /* aplat teinté pour pastilles et icônes */

  /* --- Couleur d'accent : or --- */
  --or:      #FFC247;
  --or-fond: #3A2A18;

  /* --- Prune : cartes mises en avant, encart partenaires --- */
  --prune:   #3A1B36;
  --prune-2: #5C2340;

  --r-s: 10px;
  --r-m: 16px;
  --r-l: 24px;
  --r-xl: 34px;

  --ombre-s: 0 1px 2px rgba(0,0,0,.32), 0 4px 14px rgba(0,0,0,.26);
  --ombre-m: 0 2px 6px rgba(0,0,0,.34), 0 18px 44px rgba(0,0,0,.42);
  --ombre-l: 0 30px 70px rgba(255,92,57,.26);

  --max: 1180px;
  --pas: clamp(1.25rem, 4vw, 2rem);

  --sans: 'Outfit', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --serif:'Instrument Serif', Georgia, 'Times New Roman', serif;

  color-scheme: dark;   /* calendriers, listes déroulantes et barres de défilement sombres */
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top:5.5rem; }
body{
  margin:0;
  font-family:var(--sans);
  font-size:clamp(1rem, .96rem + .2vw, 1.075rem);
  line-height:1.65;
  color:var(--texte);
  background:var(--fond);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--corail-vif); text-decoration-thickness:1px; text-underline-offset:3px; }
h1,h2,h3,h4{ line-height:1.14; margin:0 0 .5em; font-weight:600; letter-spacing:-.018em; }
h1{ font-size:clamp(2rem, 1.35rem + 2.55vw, 3.15rem); font-weight:700; letter-spacing:-.03em; }
h2{ font-size:clamp(1.8rem, 1.25rem + 2.2vw, 2.75rem); letter-spacing:-.026em; }
h3{ font-size:clamp(1.18rem, 1.05rem + .55vw, 1.45rem); }
p{ margin:0 0 1.05em; }
ul,ol{ margin:0 0 1.05em; padding-left:1.15em; }
.serif{ font-family:var(--serif); font-weight:400; font-style:italic; letter-spacing:-.01em; }

.conteneur{ width:100%; max-width:var(--max); margin-inline:auto; padding-inline:var(--pas); }
.skip{ position:absolute; left:-9999px; }
.skip:focus{ left:1rem; top:1rem; z-index:99; background:var(--corail); color:#fff; padding:.7rem 1rem; border-radius:var(--r-s); }
:focus-visible{ outline:3px solid var(--corail); outline-offset:3px; border-radius:4px; }
::selection{ background:var(--corail); color:#fff; }

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.92rem 1.6rem; border-radius:100px; border:1.5px solid transparent;
  font-weight:600; font-size:1rem; line-height:1; text-decoration:none; cursor:pointer;
  background:var(--corail); color:#FFF6F2;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  box-shadow:0 8px 26px rgba(255,92,57,.32);
}
.btn:hover{ background:var(--corail-vif); transform:translateY(-2px); box-shadow:0 14px 34px rgba(255,92,57,.42); }
.btn--fantome{ background:transparent; color:var(--texte); border-color:var(--bord-2); box-shadow:none; }
.btn--fantome:hover{ background:rgba(255,243,233,.06); border-color:var(--corail); color:var(--corail-vif); }
.btn--clair{ background:var(--texte); color:#8E2A10; box-shadow:0 8px 22px rgba(0,0,0,.32); }
.btn--clair:hover{ background:var(--or); color:#4A1A05; }
.btn--petit{ padding:.6rem 1.05rem; font-size:.9rem; }
.btn--large{ padding:1.05rem 2rem; font-size:1.06rem; }

/* ---------- En-tête ---------- */
.entete{
  position:sticky; top:0; z-index:50;
  background:rgba(23,13,20,.82);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid rgba(255,243,233,.09);
}
.entete__inner{ display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:72px; }
.logo{ display:inline-flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--texte); font-weight:700; font-size:1.12rem; letter-spacing:-.03em; }
.logo__mark{ color:var(--corail); display:inline-flex; }
.logo__accent{ color:var(--corail); font-weight:500; }
.nav{ display:flex; align-items:center; gap:.35rem; }
.nav a{ color:var(--texte); text-decoration:none; font-weight:500; font-size:.97rem; padding:.5rem .78rem; border-radius:100px; transition:background .16s ease, color .16s ease; }
.nav a:hover{ background:var(--surface); color:var(--corail-vif); }
.nav a.actif{ color:var(--corail); background:var(--corail-fond); }
.nav__cta{ margin-left:.4rem; color:#FFF6F2 !important; }
.nav__cta:hover{ color:#FFF6F2 !important; }
.nav__item{ position:relative; }
.nav__lien{ display:inline-flex; align-items:center; gap:.38rem; }
.nav__item--sous > .nav__lien::after{
  content:""; width:.38rem; height:.38rem; flex:none;
  border-right:1.6px solid currentColor; border-bottom:1.6px solid currentColor;
  transform:rotate(45deg) translateY(-1px); opacity:.7;
}
.nav__sous{
  position:absolute; top:calc(100% - .2rem); left:0; z-index:60;
  min-width:15.5rem; max-height:min(70vh, 28rem); overflow:auto;
  margin:0; padding:.45rem;
  list-style:none;
  background:var(--fond); border:1px solid var(--bord); border-radius:var(--r-m);
  box-shadow:var(--ombre-m);
  opacity:0; visibility:hidden; pointer-events:none;
  transform:translateY(.35rem);
  transition:opacity .16s ease, transform .16s ease, visibility .16s ease;
}
.nav__sous::before{
  content:""; position:absolute; left:0; right:0; bottom:100%; height:.55rem;
}
.nav__sous a{
  display:block; border-radius:10px; padding:.55rem .78rem; font-size:.92rem; font-weight:500;
  white-space:nowrap;
}
.nav__item:hover > .nav__sous,
.nav__item:focus-within > .nav__sous{
  opacity:1; visibility:visible; pointer-events:auto; transform:none;
}
.menu-burger{ display:none; }

@media (max-width:900px){
  .menu-burger{
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    width:44px; height:44px; padding:0 10px; cursor:pointer; border-radius:12px;
  }
  .menu-burger span{ display:block; height:2px; background:var(--texte); border-radius:2px; transition:transform .2s ease, opacity .2s ease; }
  .nav{
    position:absolute; inset:100% 0 auto 0; flex-direction:column; align-items:stretch;
    background:var(--fond); border-bottom:1px solid var(--bord);
    padding:.5rem var(--pas) 1.1rem; gap:.15rem;
    display:none; box-shadow:var(--ombre-m); max-height:min(78vh, 640px); overflow:auto;
  }
  .menu-toggle:checked ~ .nav{ display:flex; }
  .menu-toggle:checked ~ .menu-burger span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
  .menu-toggle:checked ~ .menu-burger span:nth-child(2){ opacity:0; }
  .menu-toggle:checked ~ .menu-burger span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
  .nav a{ padding:.8rem .9rem; }
  .nav__cta{ margin:.4rem 0 0; justify-content:center; }
  .nav__item--sous > .nav__lien::after{ display:none; }
  .nav__sous{
    position:static; opacity:1; visibility:visible; pointer-events:auto;
    transform:none; box-shadow:none; border:none; background:transparent;
    min-width:0; max-height:none; overflow:visible; padding:0 0 .35rem .7rem;
  }
  .nav__sous::before{ display:none; }
  .nav__sous a{ white-space:normal; font-size:.9rem; padding:.42rem .75rem; color:var(--texte-doux); }
  .nav__sous a:hover{ color:var(--corail-vif); }
}

/* ---------- Sections ---------- */
.section{ padding:clamp(3.5rem, 7vw, 6.5rem) 0; }
.section--creme{ background:var(--fond-2); }
.section--sable{ background:linear-gradient(175deg, var(--fond-2), #2C1726); }
.section__intro{ max-width:660px; margin-bottom:clamp(2rem,4vw,3rem); }
.section__intro--centre{ margin-inline:auto; text-align:center; }
.oeil{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.79rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase;
  color:var(--corail); background:rgba(255,92,57,.14);
  padding:.42rem .95rem; border-radius:100px; margin-bottom:1.15rem;
}
.oeil--or{ color:var(--or); background:rgba(255,194,71,.15); }
.chapo{ font-size:clamp(1.05rem,1rem + .35vw,1.22rem); color:var(--texte-doux); }

/* ---------- Hero (Attention) ---------- */
.hero{
  position:relative; overflow:hidden;
  padding:clamp(3rem,6vw,5.5rem) 0 clamp(3rem,6vw,5rem);
  background:
    radial-gradient(120% 90% at 92% -12%, rgba(255,92,57,.34) 0%, rgba(255,92,57,0) 62%),
    radial-gradient(100% 85% at -12% 108%, rgba(255,194,71,.22) 0%, rgba(255,194,71,0) 60%),
    var(--fond);
}
.hero__grille{ display:grid; grid-template-columns:1.02fr .98fr; gap:clamp(2rem,4vw,3.4rem); align-items:center; }
.hero__titre span{ color:var(--corail); }
.hero__accroche{ font-size:clamp(1.08rem,1rem + .5vw,1.3rem); color:var(--texte-doux); max-width:36em; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:.75rem; margin:1.8rem 0 1.4rem; }
.hero__preuves{ display:flex; flex-wrap:wrap; gap:.5rem; list-style:none; padding:0; margin:0; }
.hero__preuves li{
  font-size:.86rem; font-weight:500; color:var(--texte-doux);
  background:rgba(255,243,233,.05); border:1px solid var(--bord);
  padding:.42rem .85rem; border-radius:100px;
}
.hero__visuel{ position:relative; }
.hero__visuel .zone-photo,
.hero__visuel .diaporama__cadre{
  border-radius:var(--r-xl); box-shadow:var(--ombre-l); aspect-ratio:4/5; object-fit:cover;
}
.hero__pastille{
  position:absolute; z-index:3; bottom:-14px; left:-14px;
  background:var(--nuit); color:var(--texte);
  border:1px solid var(--bord);
  border-radius:var(--r-m); padding:.85rem 1.1rem; box-shadow:var(--ombre-m);
  font-size:.88rem; line-height:1.3; max-width:230px;
}
.hero__pastille strong{ display:block; font-size:1.35rem; font-weight:700; color:var(--or); }
@media (max-width:860px){
  .hero__grille{ grid-template-columns:1fr; }
  .hero__visuel{ max-width:480px; margin-inline:auto; width:100%; }
  .hero__visuel .zone-photo,
  .hero__visuel .diaporama__cadre{ aspect-ratio:4/3; }
  .hero__pastille{ left:auto; right:0; bottom:-10px; max-width:210px; }
}

/* ---------- Bandeau défilant ---------- */
.ruban{ background:var(--nuit); color:var(--texte); overflow:hidden; padding:.85rem 0; border-block:1px solid var(--bord); }
.ruban__piste{ display:flex; gap:2.5rem; white-space:nowrap; animation:defile 34s linear infinite; width:max-content; }
.ruban__piste span{ font-size:.9rem; letter-spacing:.06em; text-transform:uppercase; font-weight:500; opacity:.92; }
.ruban__piste span::before{ content:"◆"; color:var(--or); margin-right:2.5rem; }
@keyframes defile{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
@media (prefers-reduced-motion:reduce){ .ruban__piste{ animation:none; } }

/* ---------- Cartes ---------- */
.grille{ display:grid; gap:1.15rem; }
.grille .zone-photo{ border-radius:var(--r-l); box-shadow:var(--ombre-s); aspect-ratio:4/3; object-fit:cover; }
.grille--2{ grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); }
.grille--3{ grid-template-columns:repeat(auto-fit,minmax(268px,1fr)); }
.grille--4{ grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
@media (prefers-reduced-motion:no-preference){
  .is-prepare{
    transition:opacity .5s ease, transform .5s ease;
  }
  .is-prepare:not(.is-visible){
    opacity:0; transform:translateY(14px);
  }
}
.carte{
  background:var(--surface); border:1px solid var(--bord);
  border-radius:var(--r-l); padding:1.6rem 1.5rem;
  box-shadow:var(--ombre-s);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.carte:hover{ transform:translateY(-3px); box-shadow:var(--ombre-m); border-color:var(--bord-2); }
.carte h3{ margin-bottom:.45rem; }
.carte p:last-child{ margin-bottom:0; }
.carte__icone{
  width:46px; height:46px; border-radius:14px; display:grid; place-items:center;
  background:var(--corail-fond); font-size:1.35rem; margin-bottom:1rem;
}
.carte--accent{ background:linear-gradient(155deg, var(--prune), var(--prune-2) 78%); border-color:var(--bord-2); }
.carte--accent .carte__icone{ background:rgba(255,194,71,.16); }

/* ---------- Mises en scène IA ---------- */
.scenes{ display:flex; flex-wrap:wrap; gap:.55rem; list-style:none; padding:0; margin:1.5rem 0 0; }
.scenes li{
  background:rgba(255,243,233,.05); border:1px solid var(--bord); border-radius:100px;
  padding:.55rem 1.05rem; font-weight:500; font-size:.95rem;
  display:inline-flex; align-items:center; gap:.45rem;
}
.scenes li span{ font-size:1.05rem; }

/* ---------- Duo texte + image ---------- */
.duo{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.8rem,4vw,3.5rem); align-items:center; }
.duo--inverse .duo__visuel{ order:-1; }
.duo__visuel .zone-photo{ border-radius:var(--r-l); box-shadow:var(--ombre-m); aspect-ratio:4/3; object-fit:cover; }
@media (max-width:820px){ .duo{ grid-template-columns:1fr; } .duo--inverse .duo__visuel{ order:0; } }

/* ---------- Diaporama (section mode IA) ---------- */
.diaporama{ position:relative; }
.diaporama__cadre{
  position:relative; aspect-ratio:4/3; overflow:hidden;
  border-radius:var(--r-l); box-shadow:var(--ombre-m); background:var(--surface-2);
}
.diaporama__slide{
  position:absolute; inset:0; margin:0;
  opacity:0; transition:opacity .7s ease; pointer-events:none;
}
.diaporama__slide.is-actif{ opacity:1; z-index:1; }
.diaporama__slide img{ width:100%; height:100%; object-fit:cover; }
.diaporama__points{
  position:absolute; z-index:2; left:50%; bottom:.85rem; transform:translateX(-50%);
  display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:.4rem;
  max-width:calc(100% - 1.6rem);
  padding:.35rem .5rem; border-radius:100px;
  background:rgba(14,6,11,.48); backdrop-filter:blur(8px);
}
.diaporama__point{
  width:8px; height:8px; padding:0; border:0; border-radius:50%;
  background:rgba(255,243,233,.42); cursor:pointer;
  transition:width .25s ease, background .25s ease, border-radius .25s ease;
}
.diaporama__point:hover{ background:rgba(255,243,233,.75); }
.diaporama__point.is-actif{ width:22px; border-radius:100px; background:var(--or); }
@media (prefers-reduced-motion:reduce){
  .diaporama__slide{ transition:none; }
}

/* ---------- Zones photo ---------- */
.zone-photo{ width:100%; }
.zone-photo--vide{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.28rem;
  aspect-ratio:4/3; text-align:center; padding:1.25rem;
  background:repeating-linear-gradient(45deg,var(--surface),var(--surface) 12px,var(--surface-2) 12px,var(--surface-2) 24px);
  border:2px dashed var(--bord-2); color:var(--texte-doux);
}
.zone-photo__icone{ font-size:1.7rem; opacity:.6; }
.zone-photo__nom{ font-weight:600; color:var(--texte); font-size:.95rem; }
.zone-photo__format{ font-size:.82rem; }
.zone-photo__aide{ font-size:.74rem; opacity:.75; }
.zone-photo__aide code{ background:var(--nuit); padding:.1rem .3rem; border-radius:4px; }

/* ---------- Galerie ---------- */
.galerie{
  display:grid; gap:.85rem;
  grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  grid-auto-rows:190px;
}
.galerie__item{
  overflow:hidden; border-radius:var(--r-m); border:1px solid var(--bord);
  background:var(--surface-2); position:relative; padding:0; cursor:zoom-in;
}
.galerie__item img{ width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.galerie__item:hover img{ transform:scale(1.06); }
.galerie__item--grand{ grid-column:span 2; grid-row:span 2; }
@media (max-width:600px){ .galerie__item--grand{ grid-column:span 2; grid-row:span 1; } }

.lightbox{ position:fixed; inset:0; z-index:100; background:rgba(8,4,7,.94); display:none; place-items:center; padding:2rem; }
.lightbox.ouvert{ display:grid; }
.lightbox img{ max-width:min(1100px,94vw); max-height:88vh; border-radius:var(--r-m); box-shadow:var(--ombre-l); }
.lightbox__fermer{
  position:absolute; top:1rem; right:1rem; width:44px; height:44px; border-radius:50%;
  background:rgba(255,243,233,.14); color:var(--texte); border:0; font-size:1.4rem; cursor:pointer;
}

/* ---------- Tarifs ---------- */
.tarifs{ display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:1.3rem; align-items:start; }
.tarif{
  background:var(--surface); border:1px solid var(--bord); border-radius:var(--r-l);
  padding:1.9rem 1.7rem; box-shadow:var(--ombre-s); position:relative;
}
.tarif--vedette{ border-color:var(--corail); box-shadow:0 0 0 1px rgba(255,92,57,.25), var(--ombre-m); }
.tarif__etiquette{
  position:absolute; top:-13px; left:1.7rem; background:var(--corail); color:#FFF6F2;
  font-size:.74rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase;
  padding:.3rem .8rem; border-radius:100px;
}
.tarif__etiquette--or{ background:var(--or); color:#2A1405; }
.tarif__type{ font-size:.82rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--texte-doux); margin-bottom:.4rem; }
.tarif__prix{ font-size:2.9rem; font-weight:700; letter-spacing:-.035em; line-height:1; color:var(--texte); }
.tarif__prix small{ font-size:.95rem; font-weight:500; color:var(--texte-doux); letter-spacing:0; }
.tarif__note{ font-size:.9rem; color:var(--texte-doux); margin-top:.45rem; }
.liste-check{ list-style:none; padding:0; margin:1.3rem 0; display:grid; gap:.6rem; }
.liste-check li{ position:relative; padding-left:1.75rem; font-size:.97rem; }
.liste-check li::before{
  content:""; position:absolute; left:0; top:.42em; width:1.1rem; height:1.1rem; border-radius:50%;
  background:var(--corail-fond) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23FF7C4F' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 8.5l3 3 6-7'/%3E%3C/svg%3E") center/.75rem no-repeat;
}
.packs{ display:flex; flex-wrap:wrap; gap:.45rem; margin:.2rem 0 1.1rem; padding:0; list-style:none; }
.packs li{ background:var(--or-fond); border-radius:8px; padding:.35rem .7rem; font-size:.87rem; font-weight:600; color:var(--or); }

/* ---------- Étapes ---------- */
.etapes{ counter-reset:etape; display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.etape{ background:var(--surface); border:1px solid var(--bord); border-radius:var(--r-l); padding:1.5rem; }
.etape::before{
  counter-increment:etape; content:counter(etape);
  display:grid; place-items:center; width:38px; height:38px; border-radius:50%;
  background:var(--or-fond); color:var(--or); font-weight:700; margin-bottom:.9rem;
}
.etape h3{ font-size:1.08rem; }
.etape p{ margin:0; font-size:.95rem; color:var(--texte-doux); }

/* ---------- Zones desservies ---------- */
.zones{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:1.15rem; }
.zone{ background:var(--surface); border:1px solid var(--bord); border-radius:var(--r-l); padding:1.7rem; }
.zone h3{ display:flex; align-items:center; gap:.55rem; }
.zone__villes{ display:flex; flex-wrap:wrap; gap:.4rem; list-style:none; padding:0; margin:.9rem 0 0; }
.zone__villes li{ font-size:.88rem; background:var(--surface-2); border-radius:7px; padding:.28rem .6rem; }
.alerte{
  background:var(--or-fond); border-left:4px solid var(--or);
  padding:.9rem 1.1rem; border-radius:0 var(--r-s) var(--r-s) 0; font-size:.94rem; margin-top:1rem;
}

/* ---------- FAQ ---------- */
.faq{ display:grid; gap:.7rem; max-width:820px; }
.faq details{
  background:var(--surface); border:1px solid var(--bord); border-radius:var(--r-m);
  padding:1.05rem 1.3rem; transition:border-color .18s ease;
}
.faq details[open]{ border-color:var(--bord-2); box-shadow:var(--ombre-s); }
.faq summary{ cursor:pointer; font-weight:600; font-size:1.03rem; list-style:none; display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; color:var(--corail); font-size:1.4rem; line-height:1; font-weight:400; }
.faq details[open] summary::after{ content:"–"; }
.faq details p{ margin:.8rem 0 0; color:var(--texte-doux); }

/* ---------- Partenaires ---------- */
.partenaire{
  background:linear-gradient(150deg, var(--prune), #6B2749 82%); color:var(--texte);
  border:1px solid var(--bord-2);
  border-radius:var(--r-xl); padding:clamp(2rem,4vw,3.2rem); display:grid;
  grid-template-columns:1.15fr .85fr; gap:clamp(1.6rem,3vw,3rem); align-items:center;
}
.partenaire p{ color:rgba(255,243,233,.86); }
.partenaire .zone-photo{ border-radius:var(--r-l); aspect-ratio:4/3; object-fit:cover; }
.partenaire .zone-photo--vide{ background:rgba(255,255,255,.05); border-color:rgba(255,243,233,.26); color:rgba(255,243,233,.72); }
.partenaire .zone-photo__aide code{ background:rgba(0,0,0,.3); }
@media (max-width:820px){ .partenaire{ grid-template-columns:1fr; } }

/* ---------- Bandeau final ---------- */
.bandeau-final{ background:linear-gradient(115deg,#FF4D2E 0%, #FF8A2B 52%, #FFC247 100%); color:#25100A; padding:clamp(2.6rem,5vw,4rem) 0; }
.bandeau-final__inner{ display:flex; flex-wrap:wrap; gap:1.5rem; align-items:center; justify-content:space-between; }
.bandeau-final__titre{ margin:0 0 .3rem; color:#25100A; }
.bandeau-final__texte{ margin:0; color:rgba(37,16,10,.86); max-width:44ch; }
.bandeau-final__actions{ display:flex; flex-wrap:wrap; gap:.7rem; }
.bandeau-final .btn--clair{ background:#25100A; color:var(--or); box-shadow:0 8px 22px rgba(37,16,10,.25); }
.bandeau-final .btn--clair:hover{ background:#3B1B10; color:var(--or); }
.bandeau-final .btn--fantome{ color:#25100A; border-color:rgba(37,16,10,.42); }
.bandeau-final .btn--fantome:hover{ background:rgba(37,16,10,.12); color:#25100A; border-color:#25100A; }

/* ---------- Pied de page ---------- */
.pied{ background:var(--nuit); color:rgba(255,243,233,.7); padding:clamp(2.6rem,5vw,4rem) 0 1.5rem; font-size:.95rem; }
.pied__grille{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:2rem; }
.pied__marque{ font-weight:700; font-size:1.1rem; color:var(--texte); margin-bottom:.5rem; }
.pied__desc{ max-width:34ch; }
.pied__titre{ font-weight:600; color:var(--texte); margin-bottom:.7rem; font-size:.94rem; }
.pied ul{ list-style:none; padding:0; margin:0; display:grid; gap:.45rem; }
.pied a{ color:rgba(255,243,233,.78); text-decoration:none; }
.pied a:hover{ color:var(--or); text-decoration:underline; }
.pied__bas{
  display:flex; flex-wrap:wrap; gap:.6rem 1.5rem; justify-content:space-between;
  border-top:1px solid rgba(255,243,233,.14); margin-top:2.4rem; padding-top:1.3rem; font-size:.88rem;
}
.pied__bas p{ margin:0; }
@media (max-width:800px){ .pied__grille{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .pied__grille{ grid-template-columns:1fr; } }

/* ---------- Pages intérieures ---------- */
.entete-page{
  padding:clamp(2.6rem,5vw,4.2rem) 0 clamp(1.6rem,3vw,2.4rem);
  background:radial-gradient(90% 130% at 100% -20%, rgba(255,92,57,.26), transparent 62%), var(--fond);
}
.fil{ font-size:.85rem; color:var(--texte-doux); margin-bottom:.9rem; }
.fil a{ color:var(--texte-doux); text-decoration:none; }
.fil a:hover{ text-decoration:underline; color:var(--corail-vif); }

/* ---------- Blog ---------- */
.articles{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.4rem; }
.article-carte{
  background:var(--surface); border:1px solid var(--bord); border-radius:var(--r-l);
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .2s ease, box-shadow .2s ease;
}
.article-carte:hover{ transform:translateY(-3px); box-shadow:var(--ombre-m); }
.article-carte__img{ aspect-ratio:16/10; object-fit:cover; width:100%; background:var(--surface-2); }
.article-carte__corps{ padding:1.3rem 1.4rem 1.5rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.article-carte__date{ font-size:.82rem; color:var(--texte-doux); text-transform:uppercase; letter-spacing:.06em; }
.article-carte h2, .article-carte h3{ font-size:1.2rem; margin:0; }
.article-carte a{ text-decoration:none; color:var(--texte); }
.article-carte a:hover{ color:var(--corail-vif); }
.article-carte__extrait{ color:var(--texte-doux); font-size:.95rem; margin:0; }
.article-carte__lien{ margin-top:auto; font-weight:600; font-size:.93rem; }
.article-carte__lien a{ color:var(--corail-vif); }

.article{ max-width:760px; margin-inline:auto; }
.article__meta{ color:var(--texte-doux); font-size:.9rem; margin-bottom:1.4rem; }
.article__hero{ border-radius:var(--r-l); margin:0 0 2rem; box-shadow:var(--ombre-m); }
.article__corps{ font-size:1.06rem; }
.article__corps h2{ font-size:1.6rem; margin-top:2.2rem; }
.article__corps h3{ font-size:1.25rem; margin-top:1.8rem; }
.article__corps img{ border-radius:var(--r-m); margin:1.6rem 0; }
.article__corps blockquote{
  margin:1.6rem 0; padding:.4rem 0 .4rem 1.3rem; border-left:4px solid var(--or);
  font-family:var(--serif); font-size:1.2rem; font-style:italic; color:var(--texte-doux);
}
.article__corps table{ width:100%; border-collapse:collapse; margin:1.5rem 0; font-size:.95rem; }
.article__corps th,.article__corps td{ border:1px solid var(--bord); padding:.6rem .8rem; text-align:left; }
.article__corps th{ background:var(--surface-2); }
.article__corps code{ background:var(--surface-2); padding:.1rem .35rem; border-radius:4px; font-size:.92em; }

/* ---------- Formulaire ---------- */
.formulaire{ display:grid; gap:1rem; max-width:620px; }
.champ{ display:grid; gap:.35rem; }
.champ label{ font-weight:600; font-size:.93rem; }
.champ input, .champ select, .champ textarea{
  font:inherit; font-size:1rem; padding:.8rem .95rem; border-radius:var(--r-s);
  border:1.5px solid var(--bord-2); background:var(--surface-2); color:var(--texte); width:100%;
}
.champ select option{ background:var(--surface-2); color:var(--texte); }
.champ input::placeholder, .champ textarea::placeholder{ color:var(--texte-doux); opacity:.65; }
.champ textarea{ min-height:150px; resize:vertical; }
.champ input:focus, .champ select:focus, .champ textarea:focus{ border-color:var(--corail); outline:none; box-shadow:0 0 0 3px rgba(255,92,57,.2); }
.champ--double{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:600px){ .champ--double{ grid-template-columns:1fr; } }
.pot-a-miel{ position:absolute; left:-9999px; }
.message{ padding:.95rem 1.15rem; border-radius:var(--r-s); font-size:.96rem; margin-bottom:1.2rem; }
.message--ok{ background:#14301F; border-left:4px solid #3FBE7B; color:#9CE9BE; }
.message--ko{ background:#3A1512; border-left:4px solid var(--corail); color:#FFB9A6; }

/* ---------- Coordonnées ---------- */
.coord{ display:grid; gap:.9rem; }
.coord a{
  display:flex; align-items:center; gap:.9rem; text-decoration:none; color:var(--texte);
  background:var(--surface); border:1px solid var(--bord); border-radius:var(--r-m); padding:1.05rem 1.2rem;
  transition:border-color .18s ease, transform .18s ease;
}
.coord a:hover{ border-color:var(--corail); transform:translateX(3px); }
.coord__icone{ width:42px; height:42px; border-radius:12px; background:var(--corail-fond); display:grid; place-items:center; font-size:1.2rem; flex:none; }
.coord__label{ display:block; font-size:.8rem; color:var(--texte-doux); text-transform:uppercase; letter-spacing:.08em; }
.coord__valeur{ font-weight:600; }

/* ---------- Texte légal ---------- */
.legal{ max-width:760px; }
.legal h2{ font-size:1.35rem; margin-top:2.2rem; }
.legal p, .legal li{ color:var(--texte-doux); }
.legal code{ background:var(--surface-2); padding:.1rem .35rem; border-radius:4px; }

/* ---------- Admin ---------- */
.admin-body{ background:var(--fond-2); }
.admin-entete{ background:var(--nuit); color:var(--texte); padding:.9rem 0; }
.admin-entete__inner{ display:flex; flex-wrap:wrap; gap:1rem; align-items:center; justify-content:space-between; }
.admin-entete a{ color:rgba(255,243,233,.82); text-decoration:none; margin-left:1.1rem; font-size:.94rem; }
.admin-entete a:hover{ color:var(--or); }
.admin-entete strong{ font-size:1.02rem; }
.panneau{ background:var(--surface); border:1px solid var(--bord); border-radius:var(--r-l); padding:clamp(1.4rem,3vw,2.2rem); margin-bottom:1.5rem; }
.tableau{ width:100%; border-collapse:collapse; font-size:.95rem; }
.tableau th,.tableau td{ text-align:left; padding:.75rem .7rem; border-bottom:1px solid var(--bord); vertical-align:middle; }
.tableau th{ font-size:.8rem; text-transform:uppercase; letter-spacing:.07em; color:var(--texte-doux); }
.tableau tr:last-child td{ border-bottom:0; }
.puce{ font-size:.76rem; font-weight:600; padding:.2rem .55rem; border-radius:100px; }
.puce--on{ background:#14301F; color:#9CE9BE; }
.puce--off{ background:var(--bord); color:var(--texte-doux); }
.aide{ font-size:.85rem; color:var(--texte-doux); margin:.15rem 0 0; }
.aide code{ background:var(--surface-2); padding:.05rem .3rem; border-radius:4px; }
.actions-form{ display:flex; flex-wrap:wrap; gap:.6rem; align-items:center; margin-top:1.4rem; }
.separateur{ border:0; border-top:1px solid var(--bord); margin:.5rem 0; }
.lien-danger{ color:#FF8E7A; font-size:.9rem; text-decoration:none; }
.lien-danger:hover{ text-decoration:underline; }
.connexion{ min-height:100vh; display:grid; place-items:center; padding:2rem 1rem; }
.connexion__carte{ background:var(--surface); border:1px solid var(--bord); border-radius:var(--r-l); padding:2.2rem; width:min(420px,100%); box-shadow:var(--ombre-m); }

/* ---------- Impression ---------- */
@media print{
  .entete,.bandeau-final,.pied,.btn,.ruban{ display:none !important; }
  html,body{ background:#fff !important; color:#111 !important; }
  .section,.section--creme,.section--sable,.entete-page,.hero{ background:#fff !important; }
  .carte,.tarif,.zone,.etape,.faq details,.panneau,.article-carte{ background:#fff !important; border-color:#ccc !important; box-shadow:none !important; }
  .chapo,.aide,.tarif__note,.etape p,.faq details p{ color:#333 !important; }
  h1,h2,h3,.tarif__prix,.hero__titre span{ color:#111 !important; }
}
