/* ============================================================
   Maison Pétale — feuille de style principale
   Direction : Herbier vivant. #FAFAFA / #1A1A20 / #2A5C35
   ============================================================ */

/* --- Polices --- */
@font-face{font-family:'Cormorant Garamond';src:url('polices/cormorant-300.woff2?v=c18dbd11') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('polices/cormorant-400.woff2?v=c18dbd11') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('polices/cormorant-300-italic.woff2?v=ad99a4c1') format('woff2');font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('polices/cormorant-400-italic.woff2?v=ad99a4c1') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'DM Sans';src:url('polices/dm-sans-400.woff2?v=f78180b1') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url('polices/dm-sans-500.woff2?v=f78180b1') format('woff2');font-weight:500;font-style:normal;font-display:swap}

/* --- Variables --- */
:root{
  --fond:#FAFAFA;
  --encre:#1A1A20;
  --accent:#2A5C35;
  --rose:#C8A898;
  --sombre:#2A2832;
  --blanc:#FFFFFF;
  --rayon:3px;
  --max:1200px;
  --h-bandeau:36px;
  --h-entete:72px;
  --t:0.24s;
  --ombre:0 2px 8px rgba(42,92,53,.08);
}

/* --- Reset --- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:auto;color-scheme:light}
body{
  background:var(--fond);color:var(--encre);
  font-family:'DM Sans',system-ui,-apple-system,sans-serif;
  font-size:16px;line-height:1.55;
  overflow-wrap:break-word;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:none}
ul,ol{list-style:none}
button{cursor:pointer;font-family:inherit;border:none;background:none}
input,textarea,select{font-family:inherit;font-size:inherit}

/* --- Accessibilité --- */
.saut{
  position:absolute;left:-9999px;
  top:auto;width:1px;height:1px;overflow:hidden;
}
.saut:focus{
  position:fixed;top:8px;left:8px;width:auto;height:auto;
  background:var(--accent);color:var(--blanc);
  padding:8px 16px;border-radius:var(--rayon);z-index:999;
}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
*:focus:not(:focus-visible){outline:none}

/* --- Transitions de page --- */
body{animation:apparition-page .25s ease-out}
@keyframes apparition-page{from{opacity:0}to{opacity:1}}
body.sortie{opacity:0;transition:opacity .2s ease-in;pointer-events:none}

/* --- Bandeau info --- */
.bandeau-info{
  background:var(--accent);color:var(--blanc);
  height:var(--h-bandeau);
  display:flex;align-items:center;justify-content:center;gap:24px;
  font-size:12.5px;font-weight:500;letter-spacing:.01em;
  position:relative;z-index:101;
}
.bandeau-info a{color:inherit;font-weight:500}
.bandeau-info a:hover{text-decoration:underline}
.bandeau-sep{opacity:.4;margin:0 2px}

/* --- En-tête --- */
.entete{
  position:sticky;top:0;z-index:100;
  height:var(--h-entete);
  background:var(--fond);
  border-bottom:1px solid rgba(42,92,53,.12);
  display:flex;align-items:center;gap:0;
  padding:0 max(20px,(100% - var(--max)) / 2);
  transition:height var(--t),box-shadow var(--t);
}
.entete.compacte{
  height:56px;
  box-shadow:var(--ombre);
}

.marque{
  display:flex;align-items:center;gap:10px;
  flex-shrink:0;text-decoration:none;
  margin-right:auto;align-self:stretch;
}
.marque-logo{
  width:44px;height:44px;flex-shrink:0;
}
.marque-nom{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:400;font-size:19px;
  letter-spacing:.01em;color:var(--encre);
  white-space:nowrap;
}

#navigation{display:flex}
.menu{display:flex;align-items:center;gap:0;list-style:none}
.menu a{
  display:block;padding:0 14px;
  font-size:14px;font-weight:500;color:var(--encre);
  line-height:var(--h-entete);
  transition:color var(--t);white-space:nowrap;
}
.menu a:hover,.menu a[aria-current="page"]{color:var(--accent)}
.menu a[aria-current="page"]{position:relative}
.menu a[aria-current="page"]::after{
  content:'';position:absolute;bottom:0;left:14px;right:14px;
  height:2px;background:var(--accent);border-radius:1px;
}

.entete-appel{
  display:inline-flex;align-items:center;
  background:var(--accent);color:var(--blanc);
  padding:0 18px;height:38px;border-radius:var(--rayon);
  font-size:13.5px;font-weight:500;letter-spacing:.02em;
  white-space:nowrap;margin-left:16px;flex-shrink:0;
  transition:opacity var(--t);
}
.entete-appel:hover{opacity:.88}

.bascule{
  display:none;flex-shrink:0;
  margin-left:auto;padding:8px;
  font-size:14px;font-weight:500;color:var(--encre);
  line-height:1;
}
.bascule[aria-expanded="true"] .bascule-ouvert{display:none}
.bascule[aria-expanded="true"] .bascule-ferme{display:block}
.bascule[aria-expanded="false"] .bascule-ferme{display:none}

/* --- Conteneur max-width --- */
.conteneur{
  width:100%;max-width:var(--max);
  margin:0 auto;padding:0 24px;
}
.conteneur-large{width:100%;max-width:var(--max);margin:0 auto;padding:0 20px}

/* --- Pied mobile (caché par défaut, visible < 720px) --- */
.pied-mobile{display:none}

/* --- Écrans paliers (accueil) --- */
.ecran{
  min-height:calc(100svh - var(--h-bandeau) - var(--h-entete));
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;
}
.ecran.fixe{
  height:calc(100svh - var(--h-bandeau) - var(--h-entete));
  overflow:hidden;
}

/* --- Premier écran --- */
.ecran-accueil{
  display:grid;
  grid-template-columns:55fr 45fr;
  height:calc(100svh - var(--h-bandeau) - var(--h-entete));
  overflow:hidden;
  align-items:stretch;
}
.accueil-texte{
  display:flex;flex-direction:column;justify-content:center;
  padding:48px 48px 48px max(24px,(100vw - var(--max)) / 2 + 20px);
  position:relative;z-index:2;
}
.accueil-photo{
  position:relative;overflow:hidden;
}
.accueil-photo img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center top;
}
.accueil-photo::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to right, var(--fond) 0%, transparent 15%);
  pointer-events:none;z-index:1;
}

/* Surtitre */
.surtitre{
  font-family:'DM Sans',sans-serif;
  font-weight:500;font-size:11.5px;
  letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent);margin-bottom:12px;
}
.separateur-tige{
  width:1px;height:48px;background:var(--accent);
  display:block;margin:12px 0 16px;
  opacity:.6;
}

/* Titre principal */
p.titre-accueil,.titre-accueil{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:300;font-size:clamp(38px,4vw,60px);
  line-height:1.08;letter-spacing:-.01em;
  color:var(--encre);margin-bottom:20px;
}
.titre-accueil{text-wrap:balance}
/* Entrée du texte d'accueil : une seule apparition douce du bloc, état de repos visible (règle de fabrication). */
.accueil-texte > *{animation:entree-douce .5s cubic-bezier(.2,.7,.2,1) both}
.accueil-texte > :nth-child(2){animation-delay:.06s}
.accueil-texte > :nth-child(3){animation-delay:.12s}
.accueil-texte > :nth-child(4){animation-delay:.2s}
.accueil-texte > :nth-child(5){animation-delay:.28s}
.accueil-texte > :nth-child(6){animation-delay:.36s}
.accueil-photo img{animation:entree-photo 1.2s ease-out both}
@keyframes entree-douce{from{opacity:0;transform:translateY(12px)}}
@keyframes entree-photo{from{opacity:0;transform:scale(1.03)}}

.accueil-para{
  font-size:15.5px;line-height:1.6;color:var(--encre);
  opacity:.82;margin-bottom:28px;max-width:420px;
}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px}
.reperes{
  display:flex;flex-wrap:wrap;gap:16px 24px;
  font-size:13px;color:var(--encre);opacity:.7;
}
.repere{display:flex;align-items:center;gap:6px;font-weight:500}
.repere-etoile{color:var(--accent);font-size:14px}

/* SVG tige */

/* --- Boutons --- */
.bouton{
  display:inline-flex;align-items:center;
  background:var(--accent);color:var(--blanc);
  padding:0 22px;height:44px;border-radius:var(--rayon);
  font-size:14px;font-weight:500;letter-spacing:.02em;
  white-space:nowrap;transition:opacity var(--t);
}
.bouton:hover{opacity:.88}
.bouton.creux{
  background:transparent;color:var(--accent);
  border:1px solid var(--accent);
}
.bouton.creux:hover{background:var(--accent);color:var(--blanc)}
.bouton.sombre{background:var(--sombre);color:var(--blanc)}
.bouton.sombre:hover{opacity:.88}
.bouton.rose-pale{background:var(--blanc);color:var(--accent);border:1px solid var(--accent)}
.bouton.rose-pale:hover{background:var(--accent);color:var(--blanc)}
a.lien{
  color:var(--accent);font-weight:500;font-size:14px;
  text-decoration:underline;text-underline-offset:3px;
}

/* --- Sections communes --- */
.section{
  padding:80px 0;
  min-height:calc(100svh - var(--h-bandeau) - var(--h-entete));
  display:flex;align-items:center;
}
.section-sombre{background:var(--sombre);color:var(--blanc)}
.section-vert{background:var(--accent);color:var(--blanc)}
.section-claire{background:var(--fond)}
.section-titre{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:300;font-size:clamp(32px,3.5vw,48px);
  line-height:1.1;letter-spacing:-.01em;
  margin-bottom:12px;
}
.section-surtitre{margin-bottom:8px}
.section-chapeau{
  font-size:16px;line-height:1.6;opacity:.78;
  max-width:520px;margin-bottom:32px;
}
.section-sombre .section-titre,
.section-sombre .surtitre,
.section-vert .section-titre,
.section-vert .surtitre{color:var(--blanc)}
.section-sombre .surtitre,.section-vert .surtitre{color:rgba(255,255,255,.65)}

/* Titres de pages intérieures */
.page-titre{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:300;font-size:clamp(38px,4vw,56px);
  line-height:1.05;letter-spacing:-.01em;
  color:var(--encre);
}
.page-en-tete{
  padding:48px 0 32px;
  border-bottom:1px solid rgba(42,92,53,.12);
  margin-bottom:48px;
}

/* --- SECTION 2 : Ce que nous proposons --- */
.proposons-grille{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:24px;margin-top:40px;
}
.proposons-carte{
  border:1px solid rgba(42,92,53,.14);border-radius:var(--rayon);
  padding:28px;
  display:flex;flex-direction:column;gap:12px;
  transition:box-shadow var(--t);position:relative;overflow:hidden;
}
.proposons-carte::after{
  content:'';position:absolute;inset:0;
  border-radius:var(--rayon);
  box-shadow:0 0 0 1px var(--accent);
  opacity:0;transition:opacity var(--t);pointer-events:none;
}
.proposons-carte:hover::after{opacity:1}
.proposons-carte-vignette{
  width:100%;height:160px;border-radius:var(--rayon);overflow:hidden;
  margin-bottom:4px;
}
.proposons-carte-vignette img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .4s ease;
}
.proposons-carte:hover .proposons-carte-vignette img{transform:scale(1.04)}
.proposons-carte-titre{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:400;font-size:22px;line-height:1.2;
}
.proposons-carte-prix{font-size:14px;color:var(--accent);font-weight:500}
.proposons-carte-texte{font-size:14.5px;line-height:1.55;opacity:.78;flex:1}
.proposons-carte .bouton{margin-top:auto;align-self:flex-start}

/* --- SECTION 3 : Abonnement (fond sombre) --- */
.section-abonnement-accroche{
  position:relative;overflow:hidden;
  display:flex;align-items:center;
  min-height:calc(100svh - var(--h-bandeau) - var(--h-entete));
}
.section-abonnement-accroche .fond-photo{
  position:absolute;inset:0;
}
.section-abonnement-accroche .fond-photo img{
  width:100%;height:100%;object-fit:cover;
  filter:brightness(.3);
}
.section-abonnement-accroche .contenu-rel{
  position:relative;z-index:1;padding:64px max(24px,(100vw - var(--max)) / 2 + 20px);
}
.abo-liste{
  display:grid;grid-template-columns:repeat(2,auto);gap:10px 24px;
  margin:20px 0 32px;
}
.abo-item{
  display:flex;align-items:center;gap:10px;
  font-size:15px;line-height:1.4;color:#fff;
}
.abo-puce{
  width:20px;height:20px;border-radius:50%;border:1px solid rgba(255,255,255,.4);
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:11px;
}

/* --- SECTION 4 : Ruban réalisations --- */
.section-ruban{
  overflow:hidden;
  min-height:calc(100svh - var(--h-bandeau) - var(--h-entete));
  display:flex;flex-direction:column;justify-content:center;
  gap:0;
}
.ruban-titre-zone{
  padding:48px max(24px,(100vw - var(--max)) / 2 + 20px) 32px;
}
.ruban-wrap{position:relative;overflow:hidden;flex:1;min-height:200px}
.ruban{display:flex;gap:16px;height:300px;width:max-content;user-select:none}
.ruban.anime{animation:defiler-ruban 150s linear infinite}
@keyframes defiler-ruban{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ruban:hover,.ruban:has(:focus){animation-play-state:paused}
.ruban-item{
  flex-shrink:0;height:300px;border-radius:var(--rayon);overflow:hidden;
  position:relative;
}
.ruban-item img{
  height:100%;width:auto;object-fit:cover;
  transition:transform .4s ease;display:block;
}
.ruban-item:hover img{transform:scale(1.04)}
/* Révélation image (IntersectionObserver) */
.reveler{clip-path:inset(0 100% 0 0);transition:clip-path .7s ease-out}
.reveler.visible{clip-path:inset(0 0% 0 0)}

/* --- SECTION 5 : Zone livraison --- */
.zone-grille{
  display:grid;grid-template-columns:1fr 1fr;
  gap:48px;align-items:center;
}
.zone-tarifs{margin-top:24px}
.tarif-ligne{
  display:grid;grid-template-columns:1fr max-content;
  gap:12px 16px;align-items:baseline;
  padding:10px 0;
  border-bottom:1px solid rgba(42,92,53,.1);
}
.tarif-ligne:last-child{border-bottom:none}
.tarif-nom{font-size:15px}
.tarif-prix{font-weight:500;font-size:15px;color:var(--accent);white-space:nowrap}
.zone-horaires{margin-top:24px}
.horaires-titre{font-weight:500;font-size:14px;color:var(--accent);margin-bottom:8px}

/* --- SECTION 6 : Avis --- */
.avis-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}
.avis-carte{
  background:var(--fond);
  border:1px solid rgba(42,92,53,.14);
  border-radius:var(--rayon);
  padding:24px;
  display:flex;flex-direction:column;gap:10px;
}
.avis-etoiles{color:var(--accent);font-size:16px;letter-spacing:1px}
.avis-texte{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:400;font-size:17px;line-height:1.5;
  flex:1;
}
.avis-texte::before{content:'\00AB\00A0'}
.avis-texte::after{content:'\00A0\00BB'}
.avis-auteur{font-size:12.5px;opacity:.6;margin-top:4px}
.avis-note-tete{
  display:flex;align-items:center;gap:16px;margin-bottom:32px;
  flex-wrap:wrap;
}
.avis-note-chiffre{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:300;font-size:52px;line-height:1;
  color:var(--accent);
}
.avis-note-texte{font-size:14px;line-height:1.5;opacity:.7}
.avis-reponse{
  font-size:13px;line-height:1.5;padding:10px 12px;
  background:rgba(42,92,53,.06);border-radius:var(--rayon);
  border-left:2px solid var(--accent);margin-top:6px;
}
.avis-reponse-label{font-weight:500;color:var(--accent);font-size:12px}

/* --- FAQ --- */
.faq{margin-top:48px}
.faq-titre{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:300;font-size:28px;margin-bottom:20px;
}
.faq-liste{display:flex;flex-direction:column;gap:0}
.faq-item{border-bottom:1px solid rgba(42,92,53,.14)}
.faq-question{
  width:100%;display:flex;align-items:center;justify-content:space-between;
  gap:16px;padding:18px 0;
  font-size:15px;font-weight:500;text-align:left;
  cursor:pointer;
}
.faq-icone{
  width:20px;height:20px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:transform var(--t);color:var(--accent);
}
.faq-item[open] .faq-icone{transform:rotate(180deg)}
.faq-reponse{
  font-size:14.5px;line-height:1.6;padding-bottom:16px;
  opacity:.82;max-width:640px;
}

/* ============================================================
   BOUTIQUE
   ============================================================ */
.filtres{
  display:flex;gap:8px;margin-bottom:40px;flex-wrap:wrap;
}
.filtre-btn{
  display:inline-flex;align-items:center;
  height:40px;padding:0 20px;border-radius:var(--rayon);
  font-size:14px;font-weight:500;color:var(--encre);
  border:1px solid rgba(42,92,53,.2);
  transition:all var(--t);text-decoration:none;white-space:nowrap;
}
.filtre-btn:hover,.filtre-btn.actif{
  background:var(--accent);color:var(--blanc);border-color:var(--accent);
}
.famille-titre{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:300;font-size:clamp(28px,3vw,38px);
  margin-bottom:8px;
}
.famille-sous-titre{font-size:14px;opacity:.6;margin-bottom:28px}
.produits-grille{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:24px;margin-bottom:16px;
}
.produit-carte{
  border:1px solid rgba(42,92,53,.12);border-radius:var(--rayon);
  overflow:hidden;position:relative;cursor:pointer;
  transition:box-shadow var(--t);
}
.produit-carte::after{
  content:'';position:absolute;inset:0;border-radius:var(--rayon);
  box-shadow:0 0 0 1px var(--accent);opacity:0;transition:opacity var(--t);pointer-events:none;
}
.produit-carte:hover::after{opacity:1}
.produit-carte:hover{box-shadow:0 0 0 1px var(--accent)}
.produit-photo{
  width:100%;height:200px;overflow:hidden;
}
.produit-photo img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .4s ease;
}
.produit-carte:hover .produit-photo img{transform:scale(1.04)}
.produit-info{padding:16px 18px 20px}
.produit-nom{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:400;font-size:19px;line-height:1.2;margin-bottom:4px;
}
.produit-desc{font-size:13.5px;line-height:1.5;opacity:.7;margin-bottom:10px}
.produit-prix{font-weight:500;font-size:15px;color:var(--accent)}

.boutique-note{
  font-size:13px;opacity:.6;margin-top:8px;margin-bottom:48px;
  padding-top:16px;border-top:1px solid rgba(42,92,53,.1);
}
.famille-section{margin-bottom:64px}

.services-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}
.service-encart{
  border:1px solid rgba(42,92,53,.14);border-radius:var(--rayon);padding:24px;
}
.service-titre{font-weight:500;font-size:16px;margin-bottom:8px}
.service-texte{font-size:14px;line-height:1.55;opacity:.78}
.service-prix{font-size:14px;color:var(--accent);font-weight:500;margin-top:8px}

.cloture-encart{
  margin-top:48px;border-top:1px solid rgba(42,92,53,.14);
  padding:32px 0;text-align:center;
}
.cloture-texte{font-size:16px;line-height:1.6;margin-bottom:12px}

/* ============================================================
   ABONNEMENT
   ============================================================ */
.formules-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}
.formule-carte{
  border:1px solid rgba(42,92,53,.2);border-radius:var(--rayon);
  padding:28px;display:flex;flex-direction:column;gap:12px;
  transition:box-shadow var(--t);
}
.formule-carte.vedette{
  border:2px solid var(--accent);
  box-shadow:0 4px 24px rgba(42,92,53,.12);
}
.formule-label{
  font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent);
}
.formule-vedette-badge{
  display:inline-block;background:var(--accent);color:var(--blanc);
  font-size:11px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;
  padding:2px 10px;border-radius:99px;margin-bottom:4px;align-self:flex-start;
}
.formule-titre{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:300;font-size:28px;line-height:1.1;
}
.formule-prix{
  font-size:36px;font-weight:500;color:var(--accent);line-height:1;
}
.formule-unite{font-size:15px;font-weight:400;color:var(--encre);opacity:.7}
.formule-liste{
  display:flex;flex-direction:column;gap:7px;
  font-size:14px;line-height:1.5;flex:1;
}
.formule-liste li{display:flex;gap:8px;align-items:flex-start}
.formule-liste li::before{
  content:'·';color:var(--accent);font-size:18px;line-height:1;flex-shrink:0;
}

.avantages-bloc{
  margin-top:48px;padding:32px;
  border:1px solid rgba(42,92,53,.14);border-radius:var(--rayon);
  display:grid;grid-template-columns:1fr 1fr;gap:16px 32px;
}
.avantages-titre{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:300;font-size:24px;grid-column:1/-1;margin-bottom:4px;
}
.avantage-item{display:flex;gap:10px;align-items:flex-start;font-size:14.5px}
.avantage-item::before{
  content:'✓';color:var(--accent);font-weight:500;flex-shrink:0;margin-top:1px;
}

.section-entreprises{
  margin:48px auto 72px;position:relative;overflow:hidden;border-radius:var(--rayon);background:var(--sombre);
}
.section-entreprises .fond-photo{
  position:absolute;inset:0;
}
.section-entreprises .fond-photo img{width:100%;height:100%;object-fit:cover;filter:brightness(.25)}
.section-entreprises .contenu-rel{
  position:relative;z-index:1;padding:48px 40px;color:var(--blanc);
}

/* ============================================================
   RÉALISATIONS
   ============================================================ */
.cas-grille{display:flex;flex-direction:column;gap:0}
.cas{
  display:grid;grid-template-columns:1fr 1fr;
  gap:0;min-height:60vh;border-bottom:1px solid rgba(42,92,53,.1);
  overflow:hidden;
}
.cas.inverse{direction:rtl}
.cas.inverse > *{direction:ltr}
.cas-photo{position:relative;overflow:hidden;min-height:400px}
.cas-photo img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;
}
.cas-texte{
  padding:48px 48px 48px 48px;
  display:flex;flex-direction:column;justify-content:center;
}
.cas-label{
  font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;
  color:var(--accent);margin-bottom:12px;
}
.cas-titre{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:300;font-size:28px;line-height:1.15;margin-bottom:16px;
}
.cas-etape{margin-bottom:12px;font-size:15px;line-height:1.6}
.cas-etape strong{color:var(--accent);display:block;font-size:12px;letter-spacing:.04em;text-transform:uppercase;margin-bottom:2px}
.cas-budget{
  margin-top:16px;font-size:14px;font-weight:500;color:var(--accent);
  padding:8px 0;border-top:1px solid rgba(42,92,53,.14);
}

.appel-devis{
  padding:64px max(24px,(100vw - var(--max)) / 2 + 20px);
  background:var(--sombre);color:var(--blanc);
  text-align:center;
}
.appel-devis .section-titre{margin-bottom:12px}
.appel-devis .section-chapeau{max-width:500px;margin:0 auto 28px}

/* ============================================================
   CONTACT
   ============================================================ */
.contact-grille{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;margin-bottom:56px}
.contact-info{display:flex;flex-direction:column;gap:20px}
.contact-photo{
  width:100%;height:280px;border-radius:var(--rayon);overflow:hidden;margin-bottom:24px;
}
.contact-photo img{width:100%;height:100%;object-fit:cover}
.info-ligne{display:flex;gap:12px;align-items:flex-start}
.info-icone{
  width:20px;flex-shrink:0;margin-top:1px;
  color:var(--accent);
}
.info-texte{font-size:15px;line-height:1.6}
.info-texte a{color:var(--accent);font-weight:500}
.horaires-tableau{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;font-size:14px;margin-top:4px}
.jour-ferme{opacity:.4}
.acces-bloc{margin-top:24px;padding:16px;background:rgba(42,92,53,.06);border-radius:var(--rayon);border-left:2px solid var(--accent)}
.acces-titre{font-weight:500;font-size:14px;color:var(--accent);margin-bottom:6px}
.acces-texte{font-size:14px;line-height:1.6;opacity:.82}

/* Formulaire */
.formulaire{display:flex;flex-direction:column;gap:20px}
.champ{display:flex;flex-direction:column;gap:6px}
.label{font-size:14px;font-weight:500;color:var(--encre)}
.input,.textarea{
  border:1px solid rgba(42,92,53,.22);border-radius:var(--rayon);
  padding:0 14px;height:52px;
  font-size:15px;color:var(--encre);background:var(--blanc);
  transition:border-color var(--t);width:100%;
}
.textarea{height:auto;padding:14px;min-height:120px;resize:vertical;line-height:1.5}
.input:focus,.textarea:focus{border-color:var(--accent);outline:none}
.input::placeholder,.textarea::placeholder{color:#999;font-size:14.5px}
.occasions{display:flex;flex-wrap:wrap;gap:8px}
.occasion-btn{
  padding:8px 16px;border-radius:var(--rayon);
  font-size:13.5px;font-weight:500;cursor:pointer;
  border:1px solid rgba(42,92,53,.2);color:var(--encre);
  background:var(--blanc);transition:all var(--t);white-space:nowrap;
  min-height:44px;display:inline-flex;align-items:center;
}
.occasion-btn.selectionne,.occasion-btn:hover{
  background:var(--accent);color:var(--blanc);border-color:var(--accent);
}
/* Radio input caché */
input[type="radio"].radio-cache{
  position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);
  white-space:nowrap;
}
input[type="radio"].radio-cache:checked + .occasion-btn{
  background:var(--accent);color:var(--blanc);border-color:var(--accent);
}
input[type="radio"].radio-cache:focus-visible + .occasion-btn{
  outline:2px solid var(--accent);outline-offset:2px;
}
.pot-de-miel{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formulaire-note{font-size:12.5px;opacity:.6;line-height:1.5}
.formulaire-envoi{
  display:flex;flex-direction:column;gap:8px;
}

/* ============================================================
   FOOTER
   ============================================================ */
.pied{
  background:var(--encre);color:var(--blanc);
  padding:30px max(20px,(100vw - var(--max)) / 2 + 20px) calc(30px + env(safe-area-inset-bottom));
}
.pied-colonnes{
  display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;
  padding-bottom:20px;
  border-bottom:1px solid rgba(255,255,255,.1);
  margin-bottom:16px;
}
.pied-logo{
  display:flex;align-items:center;gap:10px;margin-bottom:12px;
}
.pied-logo-svg{width:44px;height:44px;flex-shrink:0}
.pied-nom{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:300;font-size:17px;color:var(--blanc);
}
.pied-desc{font-size:13px;line-height:1.6;opacity:.65;margin-bottom:10px}
.pied-contact a{font-size:13px;opacity:.7;display:block;line-height:1.9}
.pied-contact a:hover{opacity:1;text-decoration:underline}
.pied-col-titre{
  font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  color:var(--rose);margin-bottom:12px;
}
.pied-nav li{line-height:36px}
.pied-nav a{font-size:14px;opacity:.7;transition:opacity var(--t)}
.pied-nav a:hover{opacity:1;text-decoration:underline}
.pied-bas{
  display:flex;align-items:center;flex-wrap:wrap;gap:4px 20px;
  font-size:12px;opacity:.5;
}
.pied-bas a{min-height:44px;display:inline-flex;align-items:center}
.pied-bas a:hover{opacity:1;text-decoration:underline;color:var(--blanc)}
.pied-bas .demo-label{
  font-size:11px;opacity:.6;width:100%;margin-top:6px;
  font-style:italic;
}

/* ============================================================
   PAGES LÉGALES / MENTIONS / CONFIDENTIALITE
   ============================================================ */
.contenu-legale{
  max-width:720px;margin:0 auto;padding:48px 20px 80px;
}
.contenu-legale h1{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:300;font-size:38px;margin-bottom:24px;
}
.contenu-legale h2{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:400;font-size:22px;margin:32px 0 12px;
}
.contenu-legale p{font-size:15px;line-height:1.65;margin-bottom:14px;opacity:.85}
.contenu-legale a{color:var(--accent);text-decoration:underline}
.contenu-legale address{font-style:normal;font-size:15px;line-height:1.65;opacity:.85}

/* ============================================================
   404 / MERCI
   ============================================================ */
.page-simple{
  min-height:calc(100svh - var(--h-bandeau) - var(--h-entete));
  display:flex;align-items:center;justify-content:center;text-align:center;
  flex-direction:column;gap:16px;padding:40px 20px;
}
.page-simple h1{
  font-family:'Cormorant Garamond',Georgia,serif;
  font-weight:300;font-size:clamp(32px,4vw,52px);line-height:1.1;
}
.page-simple p{font-size:16px;opacity:.7;max-width:400px;margin:0 auto}

/* ============================================================
   MEDIUM : tablette (< 900px, > 720px)
   ============================================================ */
@media(max-width:900px){
  .ecran-accueil{grid-template-columns:1fr;height:auto}
  .accueil-photo{
    display:none;/* cachée en tablette, le premier écran devient une colonne */
  }
  .accueil-texte{padding:48px 24px}
  .proposons-grille{grid-template-columns:repeat(2,1fr)}
  .produits-grille{grid-template-columns:repeat(2,1fr)}
  .formules-grille{grid-template-columns:repeat(2,1fr)}
  .cas{grid-template-columns:1fr;min-height:auto}
  .cas.inverse{direction:ltr}
  .cas-photo{min-height:300px;position:relative}
  .cas-texte{padding:32px 24px}
  .zone-grille{grid-template-columns:1fr}
  .contact-grille{grid-template-columns:1fr}
  .avis-grille{grid-template-columns:repeat(2,1fr)}
  .avantages-bloc{grid-template-columns:1fr}
  .services-grille{grid-template-columns:repeat(2,1fr)}
  .pied-colonnes{grid-template-columns:1fr 1fr}
  .pied-colonnes > :first-child{grid-column:1/-1}
}

/* ============================================================
   MOBILE : < 720px — BLOC UNIQUE
   ============================================================ */
@media(max-width:719px){
  :root{
    --h-bandeau:30px;
    --h-entete:60px;
  }

  /* Bandeau mobile : plus compact */
  .bandeau-info{font-size:11.5px;gap:12px;height:30px}

  /* En-tête mobile */
  .entete{
    height:var(--h-entete);
    padding:0 18px;
    background:var(--fond);
    /* Pas de backdrop-filter */
  }
  .marque-nom{font-size:16px}
  .marque-logo{width:32px;height:32px}
  .menu{
    position:fixed;top:var(--h-entete);left:0;right:0;
    flex-direction:column;align-items:flex-start;gap:0;
    background:var(--fond);border-top:1px solid rgba(42,92,53,.12);
    box-shadow:0 4px 20px rgba(0,0,0,.12);
    max-height:0;overflow:hidden;
    transition:max-height .3s ease;z-index:99;
  }
  .menu.ouvert{max-height:400px}
  .menu li{width:100%}
  .menu a{
    padding:0 20px;line-height:52px;font-size:16px;
    border-bottom:1px solid rgba(42,92,53,.08);
  }
  .menu a[aria-current="page"]::after{
    top:auto;bottom:0;left:0;right:auto;
    width:3px;height:100%;
  }
  .entete-appel{display:none}
  .bascule{display:flex;padding:10px;min-height:44px;min-width:44px;align-items:center;justify-content:center}

  /* Scroll-snap accueil */
  html.paliers-snap{
    scroll-snap-type:y mandatory;
    scroll-padding-top:var(--h-entete);
  }
  html.paliers-snap .ecran,
  html.paliers-snap .ecran-accueil,
  html.paliers-snap .section-abonnement-accroche,
  html.paliers-snap .section-ruban,
  html.paliers-snap .section{
    scroll-snap-align:start;
    scroll-snap-stop:always;
    min-height:100svh;
  }
  html.paliers-snap footer{scroll-snap-align:end}
  .ecran,.section,.section-abonnement-accroche,.section-ruban{
    scroll-margin-top:0;
  }

  /* Premier écran mobile */
  .ecran-accueil{
    grid-template-columns:1fr;
    height:calc(100svh - var(--h-entete));
    min-height:calc(100svh - var(--h-entete));
  }
  .accueil-texte{
    padding:32px 18px 40px;
    justify-content:flex-start;padding-top:40px;
  }
  .accueil-photo{display:none}
  .titre-accueil{font-size:clamp(32px,8vw,44px)}
  .actions{flex-direction:column;width:100%}
  .actions .bouton{width:100%;justify-content:center;height:52px}
  .reperes{flex-direction:column;gap:8px}

  /* Sections générales mobile */
  .section{padding:48px 18px;min-height:100svh}
  .ecran{min-height:100svh;padding:0 18px}
  .section-titre{font-size:clamp(28px,7vw,36px)}

  /* Proposons */
  .proposons-grille{grid-template-columns:1fr;gap:16px}

  /* Abonnement accroche */
  .section-abonnement-accroche{min-height:100svh}
  .section-abonnement-accroche .contenu-rel{padding:48px 18px}
  .abo-liste{grid-template-columns:1fr}

  /* Ruban */
  .section-ruban{min-height:100svh;padding:0}
  .ruban-titre-zone{padding:40px 18px 24px}
  .ruban{height:220px;gap:10px}
  .ruban-item{height:220px}

  /* Zone */
  .zone-grille{grid-template-columns:1fr;gap:24px}

  /* Avis */
  .avis-grille{grid-template-columns:1fr;gap:12px}

  /* Boutique */
  .produits-grille{grid-template-columns:1fr 1fr;gap:12px}
  .produit-photo{height:140px}
  .services-grille{grid-template-columns:1fr}

  /* Abonnement */
  .formules-grille{grid-template-columns:1fr}

  /* Réalisations */
  .cas{grid-template-columns:1fr;min-height:auto}
  .cas.inverse{direction:ltr}
  .cas-photo{height:220px;position:relative}
  .cas-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .cas-texte{padding:24px 18px}

  /* Contact */
  .contact-grille{grid-template-columns:1fr}
  .contact-photo{height:200px}
  .occasions{flex-direction:column}
  .occasion-btn{width:100%}

  /* Pied mobile compact */
  .pied{padding:16px 18px calc(10px + env(safe-area-inset-bottom))}
  .pied-colonnes{display:none}
  .pied-mobile{
    display:flex;flex-direction:column;align-items:center;
    gap:0;text-align:center;
  }
  .pied-mobile-top{
    display:flex;align-items:center;gap:8px;
    margin-bottom:8px;font-size:13.5px;
  }
  .pied-mobile-top .pied-logo-svg{width:24px;height:24px}
  .pied-mobile-top .pied-nom{font-size:13.5px}
  .pied-mobile-tel{
    font-size:13.5px;font-weight:500;color:var(--blanc);
    min-height:44px;display:flex;align-items:center;
  }
  .pied-mobile-liens{
    display:flex;gap:16px;flex-wrap:wrap;justify-content:center;
    margin-top:6px;
  }
  .pied-mobile-liens a{
    font-size:12px;opacity:.6;min-height:44px;display:flex;align-items:center;
  }
  .pied-mobile-liens a:hover{opacity:1}
  .pied-bas{margin-top:8px;justify-content:center;gap:0 12px}
  .pied-bas .demo-label{text-align:center;margin-top:4px}

  /* Pied mobile : desktop caché, mobile visible */
  .pied-colonnes{display:none}
  .pied-mobile{display:flex !important}
  /* Sur mobile, pied-bas = demo-label seulement (le reste est dans pied-mobile) */
  .pied-bas > span:not(.demo-label),
  .pied-bas > a{display:none}
  .pied-bas .demo-label{display:block;text-align:center;font-size:10.5px;line-height:1.45;margin-top:4px}
  .pied{padding-bottom:calc(24px + env(safe-area-inset-bottom))}

  /* Avantages */
  .avantages-bloc{grid-template-columns:1fr;padding:20px 18px}

  /* Services encarts */
  .services-grille{grid-template-columns:1fr}

  /* Format texte sur mobile */
  .cloture-encart{text-align:left}
  .avis-grille{grid-template-columns:1fr}
  .faq{margin-top:32px}
}

/* ============================================================
   prefers-reduced-motion
   ============================================================ */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    transition-duration:.05s !important;
  }
  /* Les animations keyframe (ruban, tige) continuent — seulement les transitions raccourcissent */
  body{animation:none}
  .reveler,.reveler.visible{clip-path:none !important;transition:none !important}
}
