/* ===========================================================
   VD Wedding Planner — feuille de style commune
   Style « Solaire » : l'ivoire domine, le jaune du logo passe en aplat,
   les formes s'arrondissent. Le noir ne sert plus que de ponctuation
   (photo du hero, pied de page, menu mobile).
   Palette issue du logo : noir, ivoire, or #FEDB7F
   =========================================================== */
:root{
  --noir:#0f0e0d;
  --noir-2:#1c1915;
  --ivoire:#fdfbf6;      /* le fond principal du site */
  --ivoire-2:#f7efdd;    /* les sections miel */
  --blanc:#ffffff;       /* les sections en pleine lumiere */
  --or:#fedb7f;          /* l'or du logo : aplats, filets, texte sur le pied de page */
  --or-p:#f3cc63;        /* survol */
  --or-ink:#8a6a16;      /* or foncé — petits textes sur fond clair */
  --texte:#241f1a;
  --gris:#6d665e;
  --ligne:rgba(15,14,13,.12);
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --nav-h:76px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 1rem)}
body{
  background:var(--ivoire);color:var(--texte);
  font-family:var(--sans);font-weight:300;font-size:16.5px;line-height:1.72;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
:focus-visible{outline:2px solid var(--or-ink);outline-offset:3px;border-radius:2px}
::selection{background:var(--or);color:var(--noir)}
.wrap{width:min(1240px,100% - 2.6rem);margin-inline:auto}
.wrap--tight{width:min(820px,100% - 2.6rem);margin-inline:auto}
section{padding:clamp(4.2rem,9vw,7.5rem) 0}
.lumiere{background:var(--blanc);border-top:1px solid var(--ligne);border-bottom:1px solid var(--ligne)}
.creme{background:var(--ivoire-2)}
/* ---------- typographie ---------- */
h1,h2,h3,h4{font-family:var(--serif);font-weight:300;line-height:1.1;text-wrap:balance}
h1{font-size:clamp(2.6rem,6vw,4.9rem)}
h2{font-size:clamp(2.1rem,4.4vw,3.4rem)}
h3{font-size:clamp(1.4rem,2.2vw,1.75rem)}
em,.ital{font-style:italic}
.eyebrow{font-size:.71rem;letter-spacing:.3em;text-transform:uppercase;color:var(--or-ink);font-weight:400}
.lead{font-family:var(--serif);font-size:clamp(1.2rem,2vw,1.45rem);font-style:italic;color:#544d46;line-height:1.5}
.intro{max-width:56ch}
.intro p + p{margin-top:1rem}
.muted{color:var(--gris);font-size:.93rem}
.center{text-align:center}
.center .intro{margin-inline:auto}
/* ---------- boutons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:1.05rem 2.1rem;font-size:.74rem;font-weight:400;border-radius:999px;
  letter-spacing:.2em;text-transform:uppercase;text-align:center;
  border:1px solid var(--or-ink);color:var(--or-ink);background:transparent;
  transition:background .3s,color .3s,border-color .3s,transform .3s;
}
.btn:hover{background:var(--or-ink);color:var(--ivoire);transform:translateY(-2px)}
.btn--or{background:var(--or);border-color:var(--or);color:var(--noir);box-shadow:0 12px 26px -16px rgba(138,106,22,.75)}
.btn--or:hover{background:var(--or-p);border-color:var(--or-p);color:var(--noir)}
.btn--noir{background:var(--texte);border-color:var(--texte);color:var(--ivoire)}
.btn--noir:hover{background:transparent;color:var(--noir)}
.btn--clair{border-color:rgba(251,248,242,.55);color:var(--ivoire)}
.btn--clair:hover{background:var(--ivoire);color:var(--noir)}
.btn--sm{padding:.8rem 1.4rem}
.btns{display:flex;gap:.9rem;flex-wrap:wrap}
.center .btns{justify-content:center}
/* ---------- navigation ---------- */
.nav{position:sticky;top:0;z-index:100;background:rgba(253,251,246,.93);backdrop-filter:blur(12px);border-bottom:1px solid var(--ligne)}
.nav__in{height:var(--nav-h);display:flex;align-items:center;gap:1.5rem}
.nav__logo{display:flex;align-items:center;gap:.7rem;flex-shrink:0}
.nav__logo img{height:54px;width:auto}
.nav__logo span{font-family:var(--serif);font-size:1.02rem;letter-spacing:.14em;line-height:1.15;white-space:nowrap}
.nav__logo small{display:block;font-family:var(--sans);font-size:.5rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gris)}
.nav__links{display:flex;gap:1.45rem;margin-left:auto;font-size:.79rem;letter-spacing:.11em;text-transform:uppercase}
.nav__links a{padding-bottom:3px;border-bottom:1px solid transparent;transition:.25s}
.nav__links a:hover{color:var(--or-ink);border-color:var(--or)}
.nav__links a[aria-current="page"]{color:var(--or-ink);border-color:var(--or-ink)}
.nav .btn{flex-shrink:0}
.burger{display:none;margin-left:auto;width:44px;height:44px;align-items:center;justify-content:center}
.burger span{display:block;width:24px;height:1px;background:var(--noir);position:relative;transition:.3s}
.burger span::before,.burger span::after{content:'';position:absolute;left:0;width:24px;height:1px;background:var(--noir);transition:.3s}
.burger span::before{top:-7px}.burger span::after{top:7px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.burger[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}
@media(max-width:1180px){
  .nav__links,.nav > .wrap > .nav__in > .btn{display:none}
  .burger{display:flex}
  .nav__panel{
    position:fixed;inset:var(--nav-h) 0 0 0;z-index:99;background:var(--noir);color:var(--ivoire);
    display:grid;align-content:start;gap:.1rem;padding:1.8rem 1.6rem 2.4rem;
    transform:translateY(-12px);opacity:0;pointer-events:none;transition:.3s;overflow-y:auto;
  }
  .nav__panel[data-open="true"]{transform:none;opacity:1;pointer-events:auto}
  .nav__panel a{font-family:var(--serif);font-size:clamp(1.2rem,5.2vw,1.65rem);padding:.42rem 0;border-bottom:1px solid rgba(251,248,242,.1)}
  .nav__panel a:active{color:var(--or)}
  .nav__panel .btn{margin-top:1.3rem;justify-content:center;text-align:center;border-bottom:none}
}
@media(min-width:1181px){.nav__panel{display:none}}
/* ---------- hero ---------- */
.hero{position:relative;margin:1rem;border-radius:2rem;min-height:min(78vh,740px);display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden;padding:6rem 0}
.hero__bg{position:absolute;inset:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center 38%;animation:zoomlent 26s ease-in-out infinite alternate}
.hero__bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,20,16,.52),rgba(24,20,16,.34) 45%,rgba(24,20,16,.68))}
@keyframes zoomlent{from{transform:scale(1)}to{transform:scale(1.08)}}
@media(prefers-reduced-motion:reduce){.hero__bg img{animation:none}}
.hero__in{position:relative;max-width:920px;padding-inline:1.4rem}
.hero h1{margin:1.5rem 0 1.4rem;color:#fff}
/* le mot accentue est surligne au jaune, il n'est plus ecrit en dore */
.hero h1 em{color:#fff;background:linear-gradient(transparent 62%,rgba(254,219,127,.42) 62%);padding:0 .12em}
.hero p{font-size:1.1rem;color:rgba(255,255,255,.88);max-width:610px;margin-inline:auto}
.hero .eyebrow{color:var(--or)}
.hero .btns{justify-content:center;margin-top:2.6rem}
/* ---------- bandeau chiffres ---------- */
.chiffres{background:var(--ivoire-2);color:var(--texte);padding:3.2rem 0}
.chiffres__g{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;text-align:center}
.chiffres b{display:block;font-family:var(--serif);font-size:clamp(2rem,3.4vw,2.9rem);color:var(--or-ink);font-weight:300;line-height:1.1}
.chiffres span{font-size:.67rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris)}
@media(max-width:760px){.chiffres__g{grid-template-columns:repeat(2,1fr);gap:2.2rem}}
/* ---------- blocs deux colonnes ---------- */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.4rem,6vw,5.5rem);align-items:center}
.duo--large{grid-template-columns:.85fr 1.15fr}
@media(max-width:920px){.duo,.duo--large{grid-template-columns:1fr;gap:2.6rem}}
.cadre{position:relative}
.cadre img{aspect-ratio:4/5;object-fit:cover;width:100%;position:relative;z-index:1;border-radius:1.6rem}
.cadre::after{content:'';position:absolute;inset:1.4rem -1.4rem -1.4rem 1.4rem;border:1px solid var(--or);border-radius:1.6rem}
@media(max-width:920px){.cadre::after{inset:1rem -1rem -1rem 1rem}}
.signature{font-family:var(--serif);font-style:italic;font-size:1.9rem;color:var(--or-ink);margin-top:1.4rem}
/* ---------- cartes formules ---------- */
.cartes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3.4rem}
@media(max-width:980px){.cartes{grid-template-columns:1fr;max-width:560px;margin-inline:auto}}
.carte{background:#fff;border:1px solid rgba(15,14,13,.08);border-radius:1.4rem;padding:2.5rem 2.1rem;display:flex;flex-direction:column;transition:.35s}
.carte:hover{border-color:var(--or);transform:translateY(-6px);box-shadow:0 30px 60px -38px rgba(36,31,26,.4)}
.carte__num{font-family:var(--serif);font-size:.92rem;letter-spacing:.2em;color:var(--or-ink)}
.carte h3{margin:.6rem 0 .25rem}
.carte__qui{font-family:var(--serif);font-style:italic;font-size:1.08rem;color:var(--gris);margin-bottom:1.4rem}
.carte ul,.liste{list-style:none;display:grid;gap:.6rem;font-size:.95rem;color:#4b453f;margin-bottom:1.8rem}
.carte li,.liste li{padding-left:1.5rem;position:relative}
.carte li::before,.liste li::before{content:'';position:absolute;left:0;top:.68em;width:.75rem;height:1px;background:var(--or-ink)}
.carte__prix{margin-top:auto;padding-top:1.4rem;border-top:1px solid var(--ligne);font-family:var(--serif);font-size:1.5rem}
.carte__prix small{display:block;font-family:var(--sans);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gris);margin-bottom:.2rem}
.carte--phare{background:#fdf4dc;color:var(--texte);border-color:var(--or)}
.carte--phare .carte__num,.carte--phare .carte__qui{color:var(--or-ink)}
.carte--phare ul,.carte--phare p{color:#4b453f}
.carte--phare li::before{background:var(--or-ink)}
.carte--phare .carte__prix{border-color:rgba(138,106,22,.25)}
.carte--phare .carte__prix small{color:var(--gris)}
.ruban{position:absolute;top:0;right:0;border-radius:0 1.4rem 0 1rem;background:var(--or);color:var(--noir);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;padding:.35rem .9rem}
.carte{position:relative}
/* ---------- étapes ---------- */
.etapes{display:grid;grid-template-columns:repeat(4,1fr);gap:2.2rem;margin-top:3.4rem}
@media(max-width:900px){.etapes{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.etapes{grid-template-columns:1fr}}
.etape{border-top:1px solid var(--or);padding-top:1.3rem}
.etape b{display:block;font-family:var(--serif);font-size:2.5rem;color:var(--or-ink);font-weight:300;line-height:1}
.etape h3{font-size:1.2rem;margin:.45rem 0 .5rem}
.etape p{font-size:.94rem;color:#57514a}
/* ---------- galerie ---------- */
.galerie{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;margin-top:3rem}
.galerie figure{position:relative;overflow:hidden;margin:0;border-radius:1.2rem}
.galerie img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.galerie figure:hover img{transform:scale(1.07)}
.galerie figcaption{position:absolute;inset:auto 0 0 0;padding:2.4rem 1.1rem .9rem;color:#fff;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;background:linear-gradient(transparent,rgba(15,14,13,.82));opacity:0;transition:.35s}
.galerie figure:hover figcaption,.galerie figure:focus-within figcaption{opacity:1}
.galerie .haut{grid-row:span 2}
.galerie .haut img{aspect-ratio:1/2.07}
@media(max-width:860px){
  .galerie{grid-template-columns:repeat(2,1fr)}
  .galerie .haut{grid-row:span 1}
  .galerie .haut img{aspect-ratio:1/1}
}
/* ---------- avis : déroulé horizontal ---------- */
.avis__tete{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap}
.fleches{display:flex;gap:.6rem}
.fleche{width:52px;height:52px;border-radius:50%;border:1px solid var(--ligne);display:grid;place-items:center;font-size:1.1rem;transition:.25s;background:#fff}
.fleche:hover{background:var(--noir);color:var(--or);border-color:var(--noir)}
.fleche[disabled]{opacity:.3;pointer-events:none}
.piste{
  display:grid;grid-auto-flow:column;grid-auto-columns:min(420px,82vw);gap:1.4rem;
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  margin-top:2.6rem;padding-bottom:1.4rem;
  scrollbar-width:none;-ms-overflow-style:none;
}
.piste::-webkit-scrollbar{display:none}
.temoignage{
  scroll-snap-align:start;background:#fff;border:1px solid var(--ligne);
  padding:2.3rem 2rem;display:flex;flex-direction:column;border-radius:1.4rem;
}
.lumiere .temoignage{background:var(--ivoire);border-color:var(--ligne)}
.temoignage .etoiles{color:var(--or-ink);letter-spacing:.22em;font-size:.85rem}
.temoignage h3{font-size:1.28rem;margin:.9rem 0 .8rem;color:var(--noir)}
.temoignage p{font-size:.97rem;color:#4b453f;flex:1}
.temoignage footer{margin-top:1.6rem;padding-top:1.1rem;border-top:1px solid var(--ligne);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gris)}
/* ---------- partenaires ---------- */
.partenaires{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(2rem,5vw,4rem);margin-top:2.4rem}
.partenaires img{height:88px;width:auto;object-fit:contain;opacity:.85;transition:opacity .3s,transform .3s}
.partenaires a:hover img{opacity:1;transform:translateY(-3px)}
.partenaires .texte{font-family:var(--serif);font-size:1.15rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gris)}
/* ---------- tableaux tarifs ---------- */
.tableau{margin-top:2.2rem;overflow-x:auto;border:1px solid var(--ligne);border-radius:1.2rem;background:#fff}
.tableau table{width:100%;border-collapse:collapse;min-width:520px;font-size:.95rem}
.tableau th,.tableau td{padding:1rem 1.3rem;text-align:left;border-bottom:1px solid var(--ligne)}
.tableau thead th{font-family:var(--serif);font-weight:400;font-size:1.1rem;background:var(--ivoire-2)}
.tableau td:last-child,.tableau th:last-child{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tableau tbody tr:last-child td{border-bottom:none}
.tableau tbody tr:hover{background:var(--ivoire)}
.tableau a{color:var(--or-ink);border-bottom:1px solid var(--or);transition:.2s}
.tableau a:hover{background:var(--or);border-color:var(--or);color:var(--noir)}
.tableau .prix{font-family:var(--serif);font-size:1.15rem}
.note{font-size:.84rem;color:var(--gris);margin-top:.9rem}
/* ---------- FAQ ---------- */
.faq{margin-top:2.6rem;border-top:1px solid var(--ligne)}
.faq h2{font-family:var(--sans);font-size:.72rem;font-weight:400;letter-spacing:.24em;text-transform:uppercase;color:var(--or-ink);padding:2.6rem 0 .3rem}
.faq > h2:first-child{padding-top:1.6rem}
.faq details > div ul.liste{margin:.8rem 0 0}
.faq details{border-bottom:1px solid var(--ligne)}
.faq summary{
  list-style:none;cursor:pointer;padding:1.5rem 3rem 1.5rem 0;position:relative;
  font-family:var(--serif);font-size:clamp(1.15rem,1.8vw,1.4rem);transition:color .25s;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--or-ink)}
.faq summary::after{content:'+';position:absolute;right:.4rem;top:50%;transform:translateY(-50%);font-size:1.5rem;color:var(--or-ink);transition:transform .3s}
.faq details[open] summary::after{content:'–'}
.faq details > div{padding:0 3rem 1.7rem 0;color:#4b453f;font-size:.98rem}
.faq details > div p + p{margin-top:.8rem}
/* ---------- formulaire ---------- */
.form{display:grid;gap:1.1rem;margin-top:2.4rem}
.form__duo{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media(max-width:640px){.form__duo{grid-template-columns:1fr}}
.champ{display:grid;gap:.45rem}
.champ label{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gris)}
.champ input,.champ select,.champ textarea{
  width:100%;background:#fff;border:1px solid var(--ligne);padding:.95rem 1.1rem;
  font-family:var(--sans);font-size:.97rem;font-weight:300;color:var(--texte);border-radius:.9rem;
}
.champ textarea{min-height:150px;resize:vertical}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:none;border-color:var(--or-ink)}
.rgpd{display:flex;gap:.7rem;align-items:flex-start;font-size:.84rem;color:var(--gris)}
.rgpd input{margin-top:.35rem;accent-color:var(--or-ink);width:auto}
/* ---------- appel à l'action final ---------- */
.final{position:relative;text-align:center;color:#fff;overflow:hidden;border-radius:2rem;margin:0 1rem 1rem}
.final > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.42)}
.final .wrap{position:relative}
.final h2{color:#fff;margin:1rem 0 1.1rem}
.final p{max-width:540px;margin:0 auto 2.3rem;color:rgba(255,255,255,.86)}
.final .eyebrow{color:var(--or)}
/* ---------- pied de page ---------- */
.pied{background:var(--noir-2);color:#9c948b;padding:4.5rem 0 2rem;font-size:.9rem}
.pied__g{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2.6rem}
@media(max-width:880px){.pied__g{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.pied__g{grid-template-columns:1fr}}
.pied img{height:86px;width:auto}
.pied h4{font-family:var(--sans);font-weight:400;font-size:.67rem;letter-spacing:.24em;text-transform:uppercase;color:var(--or);margin-bottom:1.1rem}
.pied ul{list-style:none;display:grid;gap:.55rem}
.pied a:hover{color:var(--or)}
.pied__bas{border-top:1px solid rgba(251,248,242,.09);margin-top:3rem;padding-top:1.5rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.75rem;color:#6f6862}
/* ---------- barre d'action mobile ---------- */
.barre-mobile{position:fixed;bottom:0;left:0;right:0;z-index:90;background:rgba(253,251,246,.96);backdrop-filter:blur(10px);border-top:1px solid var(--ligne);padding:.65rem;display:none;gap:.55rem}
.barre-mobile .btn--clair{border-color:var(--or-ink);color:var(--or-ink)}
.barre-mobile .btn--clair:hover{background:var(--or-ink);color:#fff}
.barre-mobile .btn{flex:1;padding:.9rem .6rem;font-size:.66rem;letter-spacing:.14em}
@media(max-width:760px){.barre-mobile{display:flex}body{padding-bottom:4.6rem}}
/* ---------- bouton WhatsApp flottant ---------- */
.wa{position:fixed;right:1.1rem;bottom:5.6rem;z-index:80;width:54px;height:54px;border-radius:50%;
  background:#25d366;display:grid;place-items:center;box-shadow:0 10px 30px -8px rgba(0,0,0,.45);transition:.25s}
.wa:hover{transform:scale(1.07)}
.wa svg{width:28px;height:28px;fill:#fff}
@media(min-width:761px){.wa{bottom:1.6rem}}
/* ---------- agenda de reservation ---------- */
.agenda{margin-top:2rem;border:1px solid var(--ligne);border-radius:1.4rem;background:#fff;overflow:hidden}
.agenda iframe{width:100%;height:760px;border:0;display:block}
.agenda__ouvrir{display:grid;gap:.5rem;width:100%;padding:clamp(2.6rem,7vw,4.2rem) 1.5rem;text-align:center;transition:background .3s}
.agenda__ouvrir:hover{background:var(--ivoire-2)}
.agenda__ouvrir strong{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2rem);font-weight:300}
.agenda__ouvrir::after{content:'';width:2.6rem;height:1px;background:var(--or);margin:.6rem auto 0}
@media(max-width:700px){.agenda iframe{height:1040px}}
/* ---------- utilitaires ---------- */
.mt-2{margin-top:2rem}.mt-3{margin-top:3rem}
.bandeau-page{padding:clamp(3.4rem,7vw,5.4rem) 0 clamp(2.4rem,5vw,3.4rem);background:var(--ivoire-2);border-bottom:1px solid var(--ligne)}
.fil{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gris);margin-bottom:1rem}
.fil a:hover{color:var(--or-ink)}
