/* ═══════════════════════════════════════════════════
   EVENTIA SIGNATURE — Global CSS v3.0
   Palette éclaircie · Icônes SVG · Mobile-first
═══════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=Great+Vibes&family=Jost:wght@200;300;400&display=swap');

:root {
  /* Palette principale — fonds clairs */
  --blanc:    #FDFAF4;
  --creme:    #F5F0E8;
  --creme2:   #EDE5D4;
  --or:       #C9963A;
  --or-pale:  #D4AF7F;
  --or-light: #E8CC9A;
  --brun:     #3A2810;
  --brun-mid: #6B4C2A;
  --brun-lt:  #8A6840;
  /* Nuit pour hero/sections sombres */
  --nuit:     #2B2318;
  --nuit2:    #1E1810;
  /* Nav */
  --nav-h: 60px;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box }
html { scroll-behavior:smooth }
body {
  background:var(--blanc);
  font-family:"Jost",sans-serif;
  font-weight:300;
  color:var(--brun);
  overflow-x:hidden;
  padding-top:var(--nav-h);
}

/* ══ NAV ══ */
.nav {
  position:fixed; top:0; left:0; right:0;
  height:var(--nav-h);
  background:rgba(43,35,24,.97);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(201,150,58,.1);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 1.5rem; z-index:400;
}
.nav-logo { text-decoration:none; display:flex; flex-direction:column; gap:.08rem }
.nav-ev {
  font-family:"Cormorant Garamond",serif; font-size:.82rem;
  font-weight:400; letter-spacing:.32em; text-transform:uppercase;
  background:linear-gradient(90deg,#F5F0E8 0%,#C9963A 35%,#E8CC9A 50%,#C9963A 65%,#F5F0E8 100%);
  background-size:200% auto; -webkit-background-clip:text;
  -webkit-text-fill-color:transparent; background-clip:text;
  animation:shimmer 5s linear infinite;
}
.nav-sr { display:flex; align-items:center; gap:.3rem }
.nav-sl { height:1px; width:20px; opacity:.45 }
.nav-sl.l { background:linear-gradient(to left,#C9963A,transparent) }
.nav-sl.r { background:linear-gradient(to right,#C9963A,transparent) }
.nav-sig { font-family:"Great Vibes",cursive; font-size:.7rem; color:#C9963A; clip-path:inset(0 100% 0 0); animation:reveal 3s cubic-bezier(.4,0,.2,1) .6s forwards }
@keyframes shimmer { 0%{background-position:200% center} 100%{background-position:-200% center} }
@keyframes reveal  { 0%{clip-path:inset(0 100% 0 0)} 100%{clip-path:inset(0 0% 0 0)} }

/* Hamburger */
.hbg { display:flex; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:.4rem }
.hbg span { display:block; width:22px; height:1.5px; background:rgba(245,240,232,.7); transition:all .3s cubic-bezier(.4,0,.2,1); transform-origin:center }
.hbg.open span:nth-child(1) { transform:translateY(6.5px) rotate(45deg) }
.hbg.open span:nth-child(2) { opacity:0; transform:scaleX(0) }
.hbg.open span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg) }

/* Overlay + Drawer */
.ov { position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:404; opacity:0; pointer-events:none; transition:opacity .4s }
.ov.open { opacity:1; pointer-events:auto }
.drw {
  position:fixed; top:0; right:0; bottom:0;
  width:min(300px,82vw); background:#2B2318;
  border-left:1px solid rgba(201,150,58,.1); z-index:405;
  display:flex; flex-direction:column;
  padding:5rem 2rem 2.5rem;
  transform:translateX(100%);
  transition:transform .4s cubic-bezier(.4,0,.2,1);
  overflow-y:auto; box-shadow:-8px 0 40px rgba(0,0,0,.4);
}
.drw.open { transform:translateX(0) }
.drw a {
  font-family:"Jost",sans-serif; font-weight:300; font-size:.66rem;
  letter-spacing:.22em; text-transform:uppercase;
  color:rgba(245,240,232,.42); text-decoration:none;
  padding:.85rem 0; border-bottom:1px solid rgba(201,150,58,.06);
  transition:color .2s, padding-left .2s; display:block;
}
.drw a:hover    { color:#C9963A; padding-left:.35rem }
.drw a.active   { color:rgba(245,240,232,.7) }
.drw a.gd       { color:#C9963A }
.drw a.gd:hover { color:#E8CC9A }
.drw-langs { margin-top:auto; padding-top:1.5rem; border-top:1px solid rgba(201,150,58,.1); display:flex; gap:.4rem; flex-wrap:wrap }
.dlb { background:none; border:1px solid rgba(201,150,58,.15); font-family:"Jost",sans-serif; font-size:.46rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(245,240,232,.3); cursor:pointer; padding:.3rem .55rem; transition:all .2s; border-radius:2px }
.dlb:hover { color:#C9963A; border-color:rgba(201,150,58,.4) }

/* Sélecteur langue */
.lsel { position:fixed; top:1rem; right:4.2rem; z-index:500; display:flex; flex-direction:column; align-items:flex-end; gap:.3rem }
.lbtn { background:rgba(43,35,24,.9); backdrop-filter:blur(8px); border:1px solid rgba(201,150,58,.22); color:#C9963A; font-family:"Jost",sans-serif; font-size:.46rem; letter-spacing:.14em; text-transform:uppercase; padding:.3rem .62rem; cursor:pointer; border-radius:2px; white-space:nowrap; transition:all .2s }
.lbtn:hover { background:rgba(201,150,58,.1) }
.ldd { display:none; flex-direction:column; background:rgba(43,35,24,.98); border:1px solid rgba(201,150,58,.15); padding:.3rem; border-radius:2px; box-shadow:0 8px 24px rgba(0,0,0,.3); min-width:130px }
.ldd.open { display:flex }
.lopt { background:none; border:none; color:rgba(245,240,232,.38); font-family:"Jost",sans-serif; font-size:.46rem; letter-spacing:.1em; text-transform:uppercase; padding:.38rem .55rem; cursor:pointer; text-align:left; display:flex; align-items:center; gap:.4rem; transition:color .15s; border-radius:2px }
.lopt:hover { color:#C9963A; background:rgba(201,150,58,.06) }

/* ══ FOOTER ══ */
.site-footer { background:#2B2318; padding:3rem 2rem 2rem; border-top:1px solid rgba(201,150,58,.06) }
.footer-inner { max-width:900px; margin:0 auto 2rem; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2rem }
.footer-brand-name { font-family:"Cormorant Garamond",serif; font-size:1rem; color:#F5F0E8; margin-bottom:.25rem }
.footer-brand-tag  { font-size:.43rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(201,150,58,.28); display:block; margin-bottom:1rem }
.footer-col h4  { font-size:.43rem; letter-spacing:.28em; text-transform:uppercase; color:rgba(201,150,58,.32); margin-bottom:.9rem }
.footer-col a   { display:block; font-size:.58rem; color:rgba(245,240,232,.25); text-decoration:none; margin-bottom:.45rem; transition:color .2s }
.footer-col a:hover { color:#C9963A }
.footer-col a.gd   { color:rgba(201,150,58,.5) }
.footer-bottom { border-top:1px solid rgba(201,150,58,.05); padding-top:1.2rem; text-align:center; font-size:.42rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(201,150,58,.15) }
@media(max-width:700px){ .footer-inner{grid-template-columns:1fr 1fr;gap:1.5rem} }
@media(max-width:460px){ .footer-inner{grid-template-columns:1fr} }

/* ══ BOUTONS ══ */
.btn-primary {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.82rem 2rem; background:#C9963A; color:#2B2318;
  font-family:"Jost",sans-serif; font-size:.52rem; letter-spacing:.2em;
  text-transform:uppercase; text-decoration:none; transition:all .3s;
  position:relative; overflow:hidden; border:none; cursor:pointer; border-radius:2px;
}
.btn-primary::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent); transform:translateX(-100%); transition:transform .5s }
.btn-primary:hover::after { transform:translateX(100%) }
.btn-primary:hover { background:#8A6840; color:#F5F0E8 }

.btn-ghost {
  display:inline-flex; align-items:center; padding:.82rem 2rem;
  background:transparent; color:rgba(58,40,16,.5);
  font-family:"Jost",sans-serif; font-size:.52rem; letter-spacing:.2em;
  text-transform:uppercase; text-decoration:none; transition:all .25s;
  border:1px solid rgba(201,150,58,.25); border-radius:2px;
}
.btn-ghost:hover { color:#C9963A; border-color:#C9963A }

.btn-ghost-lt {
  display:inline-flex; align-items:center; padding:.82rem 2rem;
  background:transparent; color:rgba(245,240,232,.45);
  font-family:"Jost",sans-serif; font-size:.52rem; letter-spacing:.2em;
  text-transform:uppercase; text-decoration:none; transition:all .25s;
  border:1px solid rgba(201,150,58,.2); border-radius:2px;
}
.btn-ghost-lt:hover { color:#C9963A; border-color:#C9963A }

/* ══ SECTIONS ══ */
.sec       { padding:clamp(3rem,7vw,5.5rem) clamp(1.5rem,5vw,3rem) }
.sec-blanc { background:var(--blanc) }
.sec-creme { background:var(--creme) }
.sec-creme2{ background:var(--creme2) }
.sec-dk    { background:var(--nuit) }
.sec-dk2   { background:var(--nuit2) }

.sec-head     { text-align:center; max-width:560px; margin:0 auto 2.5rem }
.sec-tag      { font-family:"Jost",sans-serif; font-weight:300; font-size:.43rem; letter-spacing:.42em; text-transform:uppercase; color:var(--or); display:block; margin-bottom:.5rem }
.sec-tag-lt   { color:rgba(201,150,58,.5) }
.sec-title    { font-family:"Cormorant Garamond",serif; font-weight:300; font-size:clamp(1.6rem,4.5vw,2.6rem); line-height:1.1; color:var(--brun) }
.sec-title em { color:var(--or); font-style:italic }
.sec-title-lt { color:#F5F0E8 }
.sec-sub      { font-family:"Jost",sans-serif; font-weight:300; font-size:.66rem; color:var(--brun-lt); line-height:1.8; margin-top:.6rem }
.sec-sub-lt   { color:rgba(245,240,232,.4) }
.sec-div      { width:2rem; height:1px; background:linear-gradient(90deg,transparent,var(--or),transparent); margin:.7rem auto 0 }

/* ══ RÉVEAL AU SCROLL ══ */
.rv { opacity:0; transform:translateY(18px); transition:opacity .9s ease,transform .9s ease }
.rv.on { opacity:1; transform:translateY(0) }

/* ══ ANIMATIONS ══ */
@keyframes fadeUp { from{opacity:0;transform:translateY(14px)} to{opacity:1;transform:translateY(0)} }
@keyframes starDrift { 0%,100%{transform:translateY(0) rotate(0deg);opacity:.3} 50%{transform:translateY(-10px) rotate(20deg);opacity:.7} }
.star-float { position:absolute; pointer-events:none; font-size:.5rem; color:rgba(201,150,58,.25); animation:starDrift 6s ease-in-out infinite }

/* ══ WATERMARK ══ */
.wm {
  position:fixed; bottom:1.2rem; right:1.2rem; z-index:500;
  font-family:"Jost",sans-serif; font-weight:300; font-size:.36rem; letter-spacing:.14em; text-transform:uppercase;
  color:rgba(58,40,16,.2); text-decoration:none; display:flex; align-items:center; gap:.3rem;
  background:rgba(253,250,244,.8); backdrop-filter:blur(4px);
  padding:.28rem .6rem; border-radius:20px; border:1px solid rgba(201,150,58,.12);
}
.wm svg { width:11px; height:11px; color:var(--or) }

/* ══ WHATSAPP WIDGET ══ */
.wa {
  position:fixed; bottom:5.5rem; right:1.5rem; z-index:400;
  width:50px; height:50px; border-radius:50%;
  background:#25D366; box-shadow:0 4px 18px rgba(37,211,102,.32);
  display:flex; align-items:center; justify-content:center;
  text-decoration:none; transition:all .3s;
  animation:waPop .5s ease 2s both;
}
.wa:hover { transform:scale(1.08); box-shadow:0 6px 26px rgba(37,211,102,.5) }
.wa svg { width:25px; height:25px; color:white }
.wa-tip { position:absolute; right:58px; top:50%; transform:translateY(-50%); background:#2B2318; color:#F5F0E8; font-family:"Jost",sans-serif; font-weight:300; font-size:.5rem; letter-spacing:.06em; padding:.38rem .8rem; border-radius:4px; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .2s }
.wa:hover .wa-tip { opacity:1 }
.wa-tip::after { content:''; position:absolute; left:100%; top:50%; transform:translateY(-50%); border:5px solid transparent; border-left-color:#2B2318 }
@keyframes waPop { from{opacity:0;transform:scale(.6)} to{opacity:1;transform:scale(1)} }

/* ══ FORMULAIRE RSVP COMPLET — Composant partagé ══ */
.rsvp-card { background:white; border:1px solid rgba(201,150,58,.16); padding:2.5rem 2rem; border-radius:2px; max-width:540px; margin:0 auto; box-shadow:0 4px 28px rgba(58,40,16,.05) }
.rsvp-title { font-family:"Cormorant Garamond",serif; font-size:1.3rem; color:var(--brun); margin-bottom:1.8rem; text-align:center; display:block }
.rf { width:100%; background:rgba(201,150,58,.04); border:1px solid rgba(201,150,58,.16); color:var(--brun); font-family:"Jost",sans-serif; font-weight:300; font-size:.72rem; padding:.78rem 1rem; outline:none; transition:border-color .25s; margin-bottom:.75rem; border-radius:2px }
.rf::placeholder { color:rgba(58,40,16,.26) }
.rf:focus { border-color:var(--or) }
.rf option { background:white }
.rf-r2 { display:grid; grid-template-columns:1fr 1fr; gap:.75rem }
.rf-lbl { font-family:"Jost",sans-serif; font-weight:300; font-size:.46rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(58,40,16,.42); display:block; margin-bottom:.35rem; margin-top:.4rem }
/* Checkboxes régimes */
.ck-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:.38rem; margin-bottom:.75rem }
.ck { display:flex; align-items:center; gap:.45rem; cursor:pointer; padding:.32rem .58rem; border:1px solid rgba(201,150,58,.1); border-radius:2px; background:rgba(201,150,58,.025); transition:all .2s }
.ck:hover { border-color:rgba(201,150,58,.28) }
.ck.on { border-color:var(--or); background:rgba(201,150,58,.07) }
.ck-box { width:16px; height:16px; border-radius:2px; border:1px solid rgba(201,150,58,.22); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:all .2s }
.ck.on .ck-box { background:var(--or); border-color:var(--or) }
.ck-box svg { width:10px; height:10px; color:white; display:none }
.ck.on .ck-box svg { display:block }
.ck-lbl { font-family:"Jost",sans-serif; font-weight:300; font-size:.58rem; color:rgba(58,40,16,.58) }
.rsvp-btn { width:100%; padding:.88rem; background:linear-gradient(135deg,var(--brun-mid),var(--or)); color:white; font-family:"Jost",sans-serif; font-weight:300; font-size:.52rem; letter-spacing:.22em; text-transform:uppercase; border:none; cursor:pointer; transition:all .3s; border-radius:2px; margin-top:.4rem }
.rsvp-btn:hover { opacity:.88 }
.rsvp-ok { display:none; text-align:center; padding:2.5rem 1rem }
.rsvp-ok svg { width:44px; height:44px; margin:0 auto 1rem; color:var(--or) }
.rsvp-ok p { font-family:"Cormorant Garamond",serif; font-size:1.1rem; color:var(--brun); margin-bottom:.4rem }
.rsvp-ok span { font-family:"Jost",sans-serif; font-weight:300; font-size:.62rem; color:var(--brun-lt) }

/* ══ ADD TO CALENDAR ══ */
.cal-block { display:flex; gap:.6rem; justify-content:center; flex-wrap:wrap; margin:1.5rem 0 }
.cal-btn { display:inline-flex; align-items:center; gap:.45rem; font-family:"Jost",sans-serif; font-weight:300; font-size:.46rem; letter-spacing:.15em; text-transform:uppercase; color:var(--brun-mid); border:1px solid rgba(107,76,42,.2); padding:.46rem .92rem; text-decoration:none; transition:all .25s; border-radius:2px; background:rgba(201,150,58,.04) }
.cal-btn:hover { background:rgba(201,150,58,.1); border-color:var(--or) }
.cal-btn svg { width:13px; height:13px; flex-shrink:0 }

@media(max-width:480px) { .rf-r2{grid-template-columns:1fr} .ck-grid{grid-template-columns:1fr 1fr} }
