*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --gold:#b8892e;--gold2:#d4a84b;--gold3:#e8c96a;
  --gold-pale:#fdf8ee;--gold-border:#e0c878;
  --white:#ffffff;--text:#2a1f08;--muted:#9a7d45;--light:#c4a96a;
}
html{scroll-behavior:smooth}
body{background:var(--white);color:var(--text);font-family:'Montserrat',sans-serif;font-weight:300;overflow-x:hidden}

/* ══ ÉCRAN D'OUVERTURE — GRAND LOGO, ANIMATION SIMPLE ══ */
#envelope-screen{
  position:fixed;inset:0;z-index:1000;
  background:var(--white);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  transition:opacity .9s ease, visibility .9s ease;
}
#envelope-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}
.open-logo-wrap{
  display:flex;flex-direction:column;align-items:center;
  opacity:0;transform:scale(.85);
  animation:logoIntro 1.3s cubic-bezier(.2,.8,.3,1) .2s forwards;
}
@keyframes logoIntro{
  to{opacity:1;transform:scale(1)}
}
.open-logo{
  width:min(420px,72vw);height:auto;
  filter:drop-shadow(0 8px 30px rgba(184,137,46,.18));
  transition:transform .7s cubic-bezier(.6,0,.3,1), opacity .7s ease;
}
#envelope-screen.opening .open-logo-wrap{
  animation:none;
  transform:scale(1.08);
  opacity:0;
  transition:transform .7s cubic-bezier(.6,0,.3,1), opacity .7s ease;
}
.open-hint{
  margin-top:2.2rem;
  font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);
  opacity:0;animation:fadeIn 1s ease 1.3s forwards;
}
#envelope-screen.opening .open-hint{opacity:0;transition:opacity .3s ease}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:center;gap:3rem;padding:1.1rem 2rem;background:rgba(255,255,255,.93);backdrop-filter:blur(14px);border-bottom:.5px solid var(--gold-border)}
nav a{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .3s}
nav a:hover{color:var(--gold)}
#bgCanvas{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.4}
.page-wrap{position:relative;z-index:1}

/* ── HERO PHOTO HOUPPA ── */
.hero{min-height:100vh;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;z-index:0}
.hero-fade{
  position:absolute;inset:0;z-index:1;
  background:
    radial-gradient(ellipse 75% 55% at 50% 38%, rgba(255,255,255,.05) 0%, rgba(255,255,255,.55) 55%, rgba(255,255,255,.97) 100%),
    linear-gradient(to bottom, rgba(255,255,255,.1) 0%, rgba(255,255,255,.8) 82%, rgba(255,255,255,1) 100%);
}
.hero-content{position:relative;z-index:2;padding:5rem 2rem 3rem}
.bsd{font-family:'Cormorant Garamond',serif;font-size:1rem;letter-spacing:.18em;color:var(--gold);margin-bottom:1.3rem;animation:fadeUp .8s ease both}
.mono-svg{display:block;margin:0 auto 1.3rem;width:72px;height:72px;animation:fadeUp 1s ease .15s both}
.hero-logo-fade{
  width:180px;height:auto;
  opacity:.95;
}
.hero-names{
  font-family:'Great Vibes',cursive;
  font-size:clamp(2.6rem,9vw,4.6rem);
  font-weight:400;
  line-height:1.3;
  color:var(--gold2);
  background:linear-gradient(100deg,#8f6a24 0%,#e8c96a 15%,#fff6d8 28%,#b8892e 40%,#8f6a24 52%,#fff6d8 66%,#e8c96a 80%,#8f6a24 100%);
  background-size:250% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  text-shadow:0 2px 18px rgba(184,137,46,.22);
  animation:fadeUp 1.2s ease .35s both, shimmer 7s linear infinite 1.5s;
}
.hero-names .amp{display:block;font-style:italic;font-family:'Cormorant Garamond',serif;color:var(--gold);-webkit-text-fill-color:var(--gold);font-size:.32em;margin:.15em 0;letter-spacing:.05em}
@keyframes shimmer{
  0%{background-position:0% 50%}
  100%{background-position:250% 50%}
}
.hero-hebrew{direction:rtl;font-family:'Cormorant Garamond',serif;font-size:clamp(1.2rem,4vw,2rem);color:var(--gold2);margin-top:.6rem;animation:fadeUp 1s ease .6s both}
.hero-date{font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-top:1.4rem;animation:fadeUp 1s ease .85s both}
.hero-dateheb{font-family:'Cormorant Garamond',serif;font-style:normal;font-size:1rem;letter-spacing:.03em;color:var(--gold2);margin-top:.35rem;direction:rtl;animation:fadeUp 1s ease 1s both}

/* ── COMPTE À REBOURS HERO ── */
.hero-countdown{
  margin-top:2.4rem;
  animation:fadeUp 1s ease 1.15s both;
}
.countdown-label{
  font-size:.58rem;letter-spacing:.32em;text-transform:uppercase;
  color:var(--muted);margin-bottom:1rem;
}
.countdown-grid{
  display:flex;align-items:center;justify-content:center;gap:.55rem;
  flex-wrap:nowrap;
}
.countdown-unit{
  display:flex;flex-direction:column;align-items:center;gap:.35rem;
  min-width:3.4rem;
  padding:.65rem .5rem .55rem;
  background:rgba(255,255,255,.72);
  border:1px solid var(--gold-border);
  box-shadow:0 4px 24px rgba(184,137,46,.12), inset 0 1px 0 rgba(255,255,255,.9);
  backdrop-filter:blur(6px);
}
.countdown-num{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.6rem,5vw,2.4rem);
  font-weight:400;line-height:1;
  color:var(--gold);
  font-variant-numeric:tabular-nums;
  min-width:1.4em;text-align:center;
}
.countdown-cap{
  font-size:.48rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);
}
.countdown-sep{
  font-family:'Cormorant Garamond',serif;
  font-size:1.4rem;color:var(--gold2);
  opacity:.55;line-height:1;
  margin-bottom:1rem;
  flex-shrink:0;
}

.scroll-arrow{position:absolute;bottom:2.5rem;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--gold-border);font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;animation:fadeIn 1s ease 1.6s both}
.scroll-arrow::after{content:'';display:block;width:.5px;height:36px;background:linear-gradient(to bottom,var(--gold-border),transparent);animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.2}}

/* ── FAIRE-PART (carte traditionnelle) ── */
.full-section{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6rem 5vw;position:relative}
.full-section.alt{background:var(--gold-pale)}
.eyebrow{font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:1.2rem;text-align:center;display:block}
.section-h{font-family:'Cormorant Garamond',serif;font-size:clamp(2.5rem,7vw,5rem);font-weight:300;text-align:center;color:var(--gold);margin-bottom:.5rem;line-height:1}
.divider{display:flex;align-items:center;justify-content:center;gap:1rem;margin:2.5rem auto;max-width:300px}
.divider::before,.divider::after{content:'';flex:1;height:.5px;background:linear-gradient(90deg,transparent,var(--gold-border))}
.divider::after{background:linear-gradient(90deg,var(--gold-border),transparent)}
.divider span{color:var(--gold2);font-size:.9rem;flex-shrink:0}

.faire-part{
  max-width:560px;width:100%;
  border:1px solid var(--gold-border);
  padding:2.3rem 2.2rem;
  text-align:center;
  background:var(--white);
  position:relative;
  font-family:'Great Vibes',cursive;
}
.faire-part::before{content:'';position:absolute;top:9px;left:9px;right:9px;bottom:9px;border:.5px solid var(--gold-border);pointer-events:none}
.fp-bsd-corner{
  position:absolute;top:16px;right:22px;
  font-family:'Great Vibes',cursive;font-size:1rem;color:var(--gold);
}
.fp-shir-top{
  font-family:'Great Vibes',cursive;direction:rtl;font-size:1.5rem;color:var(--gold);
  margin:1.2rem 0 1.6rem;line-height:1.5;letter-spacing:.01em;
}
.fp-arch{
  position:relative;
  width:100%;max-width:460px;
  margin:.6rem auto .8rem;
  overflow:visible;
  direction:rtl;
}
.fp-arch span{
  position:absolute;
  top:0;
  left:0;
  font-family:'Times New Roman', serif;
  direction:rtl;
  color:var(--gold);
  white-space:nowrap;
  will-change:transform;
  text-shadow:0 1px 0 rgba(255,255,255,.85), 0 0 8px rgba(255,255,255,.5);
  pointer-events:none;
}
.fp-two-col{
  display:flex;justify-content:space-between;gap:1rem;
  margin-bottom:.95rem;
}
.fp-col-heb{
  flex:1;direction:rtl;font-family:'Great Vibes',cursive;
  font-size:1.15rem;color:var(--gold2);line-height:1.4;
}
.fp-parents-row{margin-bottom:1rem}
.fp-parent-block{
  flex:1;font-family:'Great Vibes',cursive;font-size:1.05rem;letter-spacing:.02em;text-transform:none;
  color:var(--gold);line-height:1.4;
}
.fp-joie{
  font-family:'Great Vibes',cursive;font-style:normal;
  font-size:1.08rem;letter-spacing:.01em;text-transform:none;
  color:var(--gold);line-height:1.4;margin-bottom:1.1rem;
}
.fp-names{
  font-family:'Great Vibes',cursive;font-style:italic;
  font-size:clamp(2rem,6vw,2.8rem);color:var(--gold);
  margin-bottom:.3rem;
}
.fp-names .et2{font-family:'Great Vibes',cursive;font-style:italic;color:var(--gold);font-size:.75em;margin:0 .15em}
.fp-names-heb-row {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 120px;
}

.fp-heb-name {
  direction: rtl;
  font-family: 'Great Vibes', cursive;
  font-style: italic;
  font-size: 1.40rem;
  color: var(--gold2);
  margin: 0;
  text-align: center;
}
.fp-invite{font-family:'Great Vibes',cursive;font-size:1.05rem;letter-spacing:.01em;color:var(--gold);line-height:1.4;margin-bottom:.3rem}
.fp-salon{
  font-family:'Great Vibes',cursive;font-style:normal;
  font-size:1.85rem;color:var(--gold);margin:.85rem 0 .3rem;
}
.fp-addr{font-family:'Great Vibes',cursive;font-size:1.05rem;letter-spacing:.02em;color:var(--gold);line-height:1.4}

.fp-grandparents{
  margin-top:1.2rem;
  padding-top:1rem;
  border-top:.5px solid var(--gold-border);
}
.fp-grandparents-title{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:.8rem;letter-spacing:.02em;color:var(--muted);
  margin-bottom:.65rem;
}
.fp-grandparents-row{margin-bottom:0}
.fp-grandparent-block{
  flex:1;font-family:'Great Vibes',cursive;
  font-size:.95rem;letter-spacing:.02em;
  color:var(--gold2);line-height:1.45;
}

/* ── MAIRIE (réutilise full-section + lieu-wrap) ── */

/* ── HOUPPA, SOIRÉE & LIEU — image plein fond, texte contrasté ── */
.salle-section{
  min-height:100vh;position:relative;
  display:flex;align-items:center;justify-content:center;
  text-align:center;overflow:hidden;
  padding:6rem 5vw;
}
.salle-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.35), transparent 35%),
    radial-gradient(circle at 80% 80%, rgba(150,120,70,.08), transparent 40%),
    #eee3ce;
}
.salle-bg-color{filter:none}
.salle-section-houppa .salle-bg-color{object-position:center 35%}
.salle-overlay-houppa{
  background:
    linear-gradient(180deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.42) 35%, rgba(0,0,0,.55) 70%, rgba(0,0,0,.72) 100%),
    radial-gradient(ellipse 90% 60% at 50% 50%, rgba(0,0,0,.15) 0%, rgba(0,0,0,.45) 100%);
}
.salle-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,.52) 0%,rgba(0,0,0,.38) 40%,rgba(0,0,0,.62) 100%);
}
.salle-content{position:relative;z-index:2;padding:2rem;max-width:680px}
.salle-title{
  font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:clamp(2.2rem,6vw,4rem);color:var(--text);margin-bottom:1.5rem;
}
.salle-title-light{color:#fffaf0;text-shadow:0 2px 18px rgba(0,0,0,.5)}
.salle-line{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:clamp(1.2rem,3vw,1.8rem);color:var(--gold);line-height:1.8;
}
.salle-line strong{color:var(--text);font-style:normal}
.salle-line-light{color:#f5e8c8;text-shadow:0 2px 14px rgba(0,0,0,.5)}
.salle-line-light strong{color:#fff;font-style:normal}
.eyebrow-light{color:var(--gold3);text-shadow:0 1px 10px rgba(0,0,0,.5)}
.divider-light::before,.divider-light::after{background:linear-gradient(90deg,transparent,rgba(232,201,106,.7))}
.divider-light::after{background:linear-gradient(90deg,rgba(232,201,106,.7),transparent)}
.divider-light span{color:var(--gold3)}
.lieu-name-light{color:#fffaf0;text-shadow:0 2px 16px rgba(0,0,0,.5)}
.lieu-addr-light{color:#e8dcc0;text-shadow:0 1px 10px rgba(0,0,0,.4)}
.lieu-btn-light{border-color:var(--gold3);color:var(--gold3)}
.lieu-btn-light:hover{background:var(--gold3);color:#1a1408}

/* ── Variante TOUT BLANC (section Houppa & Soirée + Mairie) ── */
.salle-overlay-dark{background:linear-gradient(180deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.35) 40%, rgba(0,0,0,.6) 100%)}
.divider-white::before,.divider-white::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.7))}
.divider-white::after{background:linear-gradient(90deg,rgba(255,255,255,.7),transparent)}
.divider-white span{color:#ffffff}

.btn-icon{
  width:13px;height:13px;vertical-align:-2px;margin-right:.4em;
  -webkit-mask-size:contain;mask-size:contain;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  background-color:currentColor;
  display:inline-block;
}
.icon-maps{
  -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C7.6 2 4 5.6 4 10c0 5.4 7 11.5 7.3 11.7.2.2.5.3.7.3s.5-.1.7-.3C13 21.5 20 15.4 20 10c0-4.4-3.6-8-8-8zm0 11c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z"/></svg>');
  mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C7.6 2 4 5.6 4 10c0 5.4 7 11.5 7.3 11.7.2.2.5.3.7.3s.5-.1.7-.3C13 21.5 20 15.4 20 10c0-4.4-3.6-8-8-8zm0 11c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z"/></svg>');
}
.icon-waze{
  -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C7.58 2 4 5.58 4 10c0 5.25 6.16 10.74 7.39 11.78.36.3.86.3 1.22 0C13.84 20.74 20 15.25 20 10c0-4.42-3.58-8-8-8zm0 3.5a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm-1.7 3.1c-.4 0-.7.3-.7.7s.3.7.7.7.7-.3.7-.7-.3-.7-.7-.7zm3.4 0c-.4 0-.7.3-.7.7s.3.7.7.7.7-.3.7-.7-.3-.7-.7-.7zm-3.6 2.6c.4.6 1.1 1 1.9 1s1.5-.4 1.9-1c.15-.2.45-.25.65-.1.2.15.25.45.1.65-.55.8-1.5 1.35-2.65 1.35s-2.1-.55-2.65-1.35c-.15-.2-.1-.5.1-.65.2-.15.5-.1.65.1z"/></svg>');
  mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C7.58 2 4 5.58 4 10c0 5.25 6.16 10.74 7.39 11.78.36.3.86.3 1.22 0C13.84 20.74 20 15.25 20 10c0-4.42-3.58-8-8-8zm0 3.5a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9zm-1.7 3.1c-.4 0-.7.3-.7.7s.3.7.7.7.7-.3.7-.7-.3-.7-.7-.7zm3.4 0c-.4 0-.7.3-.7.7s.3.7.7.7.7-.3.7-.7-.3-.7-.7-.7zm-3.6 2.6c.4.6 1.1 1 1.9 1s1.5-.4 1.9-1c.15-.2.45-.25.65-.1.2.15.25.45.1.65-.55.8-1.5 1.35-2.65 1.35s-2.1-.55-2.65-1.35c-.15-.2-.1-.5.1-.65.2-.15.5-.1.65.1z"/></svg>');
}
.lieu-wrap{max-width:680px;width:100%;text-align:center}
.lieu-name{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,6vw,3.5rem);font-weight:300;color:var(--text);margin-bottom:.5rem}
.lieu-addr{font-size:.85rem;color:var(--muted);line-height:2;margin-bottom:2rem}
.lieu-kasher{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1rem;color:var(--gold);margin-bottom:2.5rem}
.lieu-btn{display:inline-flex;align-items:center;justify-content:center;padding:.7rem 2.2rem;border:.5px solid var(--gold);color:var(--gold);font-size:.6rem;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;transition:all .3s}
.lieu-btn:hover{background:var(--gold);color:var(--white)}

/* Variantes WHITE — placées après les règles de base pour bien les écraser */
.salle-title.salle-title-white{color:#ffffff !important;text-shadow:0 2px 20px rgba(0,0,0,.6)}
.salle-line.salle-line-white{font-style:normal;color:#ffffff !important;text-shadow:0 2px 16px rgba(0,0,0,.6)}
.eyebrow.eyebrow-white{color:#ffffff !important;text-shadow:0 1px 10px rgba(0,0,0,.6)}
.lieu-name.lieu-name-white{color:#ffffff !important;text-shadow:0 2px 18px rgba(0,0,0,.6)}
.lieu-addr.lieu-addr-white{color:#ffffff !important;text-shadow:0 1px 12px rgba(0,0,0,.55)}
.lieu-btn.lieu-btn-white{border-color:#ffffff !important;color:#ffffff !important}
.lieu-btn.lieu-btn-white:hover{background:#ffffff !important;color:#1a1408 !important}
/* ── MAIRIE : FOND PAPIER BEIGE ── */

#mairie .salle-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.35), transparent 35%),
    radial-gradient(circle at 80% 80%, rgba(150,120,70,.08), transparent 40%),
    #eee3ce;
}

#mairie .salle-content{
  position:relative;
  z-index:2;
}

#mairie .eyebrow{
  color:var(--gold) !important;
  text-shadow:none;
}

#mairie .salle-title{
  color:var(--gold) !important;
  text-shadow:none;
}

#mairie .salle-line{
  color:var(--gold) !important;
  text-shadow:none;
}

#mairie .divider-white::before,
#mairie .divider-white::after{
  background:linear-gradient(90deg,transparent,var(--gold-border));
}

#mairie .divider-white::after{
  background:linear-gradient(90deg,var(--gold-border),transparent);
}

#mairie .divider-white span{
  color:var(--gold);
}

#mairie .lieu-name{
  color:var(--gold) !important;
  text-shadow:none;
}

#mairie .lieu-addr{
  color:var(--muted) !important;
  text-shadow:none;
}

#mairie .lieu-btn{
  border-color:var(--gold) !important;
  color:var(--gold) !important;
}

#mairie .lieu-btn:hover{
  background:var(--gold) !important;
  color:white !important;
}
/* ── RSVP ── */
.rsvp-wrap{max-width:520px;width:100%}
.rsvp-intro{font-size:.82rem;color:var(--muted);line-height:1.9;text-align:center;margin-bottom:2.5rem}
.form-row{margin-bottom:1.4rem}
.form-row label{display:block;font-size:.58rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:.6rem}
.form-row input,.form-row select,.form-row textarea{width:100%;background:transparent;border:none;border-bottom:.5px solid var(--gold-border);padding:.7rem 0;font-family:'Montserrat',sans-serif;font-weight:300;font-size:.9rem;color:var(--text);outline:none;transition:border-color .3s;-webkit-appearance:none}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:var(--gold)}
.form-row select option{background:var(--white)}
.form-row textarea{resize:vertical;min-height:80px}
.submit-btn{display:block;width:100%;margin-top:2rem;padding:.9rem;background:transparent;border:.5px solid var(--gold);color:var(--gold);font-family:'Montserrat',sans-serif;font-weight:400;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;cursor:pointer;transition:all .35s}
.submit-btn:hover{background:var(--gold);color:var(--white)}
.submit-btn:disabled{opacity:.5;cursor:wait}
.rsvp-success{display:none;text-align:center;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.4rem;color:var(--gold);padding:2rem 0}
.rsvp-error{display:none;text-align:center;font-size:.78rem;color:#a33;margin-top:1rem}

footer{text-align:center;padding:4rem 2rem;border-top:.5px solid var(--gold-border)}
.ft-names{font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--gold);margin-bottom:.4rem}
.ft-heb{direction:rtl;font-family:'Cormorant Garamond',serif;font-size:1.1rem;color:var(--light);margin:.4rem 0}
.ft-copy{font-size:.55rem;letter-spacing:.12em;color:#d8c080;margin-top:1.8rem}

.audio-bar{position:fixed;bottom:1.5rem;right:1.5rem;z-index:200;display:flex;align-items:center;gap:.8rem;background:rgba(255,255,255,.95);border:.5px solid var(--gold-border);padding:.6rem 1.1rem;border-radius:40px;cursor:pointer;box-shadow:0 2px 20px rgba(184,137,46,.08);transition:border-color .3s}
.audio-bar:hover{border-color:var(--gold)}
.audio-btn{width:30px;height:30px;border-radius:50%;border:.5px solid var(--gold);background:transparent;color:var(--gold);font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;flex-shrink:0}
.audio-btn:hover{background:var(--gold);color:var(--white)}
.audio-label{font-size:.57rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);white-space:nowrap}

@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:none}

/* ══════════════════════════════════════════
   RESPONSIVE MOBILE
   ══════════════════════════════════════════ */
@media (max-width: 640px){
  /* NAV : empile mieux, espace réduit, scroll horizontal si besoin */
  nav{
    gap:1.1rem;
    padding:.85rem 1rem;
    overflow-x:auto;
    white-space:nowrap;
    justify-content:flex-start;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  nav::-webkit-scrollbar{display:none}
  nav a{font-size:.56rem;letter-spacing:.18em;flex-shrink:0}

  /* HERO */
  .hero-content{padding:5.5rem 1.2rem 2.5rem}
  .bsd{margin-bottom:.9rem;font-size:.8rem}
  .mono-svg{width:70px !important;margin-bottom:.9rem}
  .hero-names{font-size:clamp(2.1rem,11vw,2.9rem)}
  .hero-hebrew{font-size:clamp(1.05rem,5vw,1.35rem);margin-top:.45rem}
  .hero-date{margin-top:1rem;font-size:.54rem;letter-spacing:.18em}
  .hero-dateheb{font-size:.82rem}
  .hero-countdown{margin-top:1.8rem}
  .countdown-label{font-size:.52rem;letter-spacing:.24em;margin-bottom:.75rem}
  .countdown-grid{gap:.35rem}
  .countdown-unit{min-width:2.6rem;padding:.5rem .35rem .45rem}
  .countdown-num{font-size:clamp(1.35rem,6.5vw,1.75rem)}
  .countdown-cap{font-size:.42rem;letter-spacing:.16em}
  .countdown-sep{font-size:1.1rem;margin-bottom:.85rem}
  .scroll-arrow{bottom:1.4rem}

  /* Arche hébreu — plus d'espace, pas de débordement */
  .fp-arch{max-width:100%;margin:.5rem -.2rem .7rem;padding:0 .15rem}
  .faire-part{overflow:visible}

  /* SECTIONS PLEINE PAGE */
  .full-section, .salle-section{padding:5rem 1.2rem;min-height:100svh}
  .section-h{font-size:clamp(2rem,9vw,2.8rem)}
  .salle-title{font-size:clamp(1.8rem,8vw,2.6rem);margin-bottom:1rem}
  .salle-line{font-size:clamp(1rem,4.5vw,1.3rem);line-height:1.7}
  .eyebrow{font-size:.55rem;letter-spacing:.22em;margin-bottom:.9rem}

  /* FAIRE-PART */
  .faire-part{padding:1.9rem 1.2rem}
  .faire-part::before{top:7px;left:7px;right:7px;bottom:7px}
  .fp-bsd-corner{top:12px;right:14px;font-size:.85rem}
  .fp-shir-top{font-size:1.15rem;margin:1rem 0 1.2rem}
  .fp-two-col{gap:20px}
  .fp-col-heb{font-size:1rem}
  .fp-parent-block{font-size:.88rem;line-height:1.35}
  .fp-joie{font-size:.9rem;margin-bottom:.9rem}
  .fp-names{font-size:clamp(1.7rem,9vw,2.2rem)}
  .fp-heb-name{font-size:.88rem}
  .fp-invite{font-size:.9rem}
  .fp-salon{font-size:1.55rem}
  .fp-addr{font-size:.88rem}
  .fp-grandparents{margin-top:1rem;padding-top:.85rem}
  .fp-grandparents-title{font-size:.7rem}
  .fp-grandparent-block{font-size:.85rem;line-height:1.4}

  /* HOUPPA/SOIRÉE/LIEU fusionnés */
  .salle-section{padding:5rem 1.2rem}
  .salle-content{padding:0}

  /* LIEU */
  .lieu-name{font-size:clamp(1.7rem,8vw,2.4rem)}
  .lieu-addr{font-size:.78rem}
  .lieu-kasher{font-size:.88rem;margin-bottom:1.8rem}
  .lieu-btn{padding:.65rem 2rem;font-size:.56rem}

  /* RSVP */
  .rsvp-intro{font-size:.76rem}
  .form-row label{font-size:.55rem}
  .form-row input,.form-row select,.form-row textarea{font-size:.85rem}

  /* FOOTER */
  footer{padding:3rem 1.2rem}
  .ft-names{font-size:1.6rem}
  .ft-heb{font-size:.95rem}

  /* AUDIO PLAYER : plus compact, ne gêne pas le pouce */
  .audio-bar{
    bottom:1rem;right:1rem;
    padding:.5rem .8rem;
  }
  .audio-btn{width:26px;height:26px;font-size:.75rem}
  .audio-label{display:none}
}

/* Très petits écrans (iPhone SE etc.) */
@media (max-width: 360px){
  .hero-names{font-size:clamp(2.2rem,16vw,3rem)}
  nav{gap:.8rem;padding:.7rem .8rem}
  nav a{font-size:.52rem}
  .faire-part{padding:1.8rem 1rem}
  .countdown-unit{min-width:2.2rem;padding:.45rem .25rem .4rem}
  .countdown-sep{font-size:.95rem}
}

/* Hauteur d'écran très réduite (mobile en paysage) */
@media (max-height: 480px) and (orientation: landscape){
  .hero, .full-section, .salle-section{min-height:auto;padding-top:6rem;padding-bottom:3rem}
  .open-logo{width:min(220px,50vw)}
}

/* ── HÉBREU : police compatible mobile ── */
.fp-shir-top,
.fp-col-heb,
.fp-heb-name,
.hero-hebrew,
.hero-dateheb,
.ft-heb {
  font-family: 'Times New Roman', serif !important;
  direction: rtl;
}