/* ════════════════════════════════════════════════════════════
   LOANA & JULIEN — 4 juillet 2026
   Thème : champêtre & chic · ivory · gold
   ════════════════════════════════════════════════════════════ */

:root{
  --gold:#C9A96E;
  --gold-deep:#A8864E;
  --gold-pale:#FAF3E0;
  --gold-soft:#F5EBD3;
  --gold-line:#E2CFA0;
  --ink:#3A2E1F;
  --ink-soft:#6E5B3F;
  --cream:#FBF6EC;
  --cream-deep:#F2E9D6;
  --paper:#FCF8EE;
  --warm-gray:#9A8E78;
  --blue-1:#94e3fe;
  --blue-2:#caf0fe;
  --blue-3:#d4e3fe;
  --shadow-warm:0 30px 60px -30px rgba(168,134,78,.35);
  --font-display:'Cormorant Garamond', serif;
  --font-script:'Cormorant Garamond', serif;
  --font-sans:'Jost', sans-serif;
}

/* ─── BASE ───────────────────────────────────────────── */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font-sans);
  font-weight:300;
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  letter-spacing:.01em;
  position:relative;
}

/* paper grain — original SVG noise, very subtle */
body::before{
  content:"";
  position:fixed;inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .78  0 0 0 0 .66  0 0 0 0 .43  0 0 0 .08 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  pointer-events:none;
  opacity:.55;
  mix-blend-mode:multiply;
  z-index:1;
}
section,div.countdown-section,div.guest-banner{position:relative;z-index:2}

/* ─── NAV ────────────────────────────────────────────── */
.nav{
  position:fixed;top:0;left:0;right:0;
  display:flex;justify-content:center;
  padding:18px 24px;
  background:transparent;
  transition:background .4s ease, padding .4s ease, box-shadow .4s ease;
  pointer-events:none;
}
.nav.scrolled{
  background:rgba(252,248,238,.88);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  padding:12px 24px;
  box-shadow:0 1px 0 rgba(201,169,110,.18);
}
.nav-inner{
  pointer-events:auto;
  display:flex;align-items:center;gap:14px;
  padding:10px 22px;
  background:rgba(252,248,238,.7);
  backdrop-filter:blur(10px);
  border:1px solid rgba(201,169,110,.22);
  border-radius:999px;
}
.nav.scrolled .nav-inner{background:transparent;border-color:transparent}
.nav-inner a{
  font-family:var(--font-sans);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-soft);
  text-decoration:none;
  font-weight:400;
  transition:color .25s;
  white-space:nowrap;
}
.nav-inner a:hover{color:var(--gold-deep)}
.nav-diamond{
  width:4px;height:4px;
  background:var(--gold);
  transform:rotate(45deg);
  opacity:.7;
}

/* ─── GUEST BANNER ───────────────────────────────────── */
.guest-banner{
  background:linear-gradient(180deg, var(--cream) 0%, var(--cream-deep) 100%);
  border-bottom:1px solid var(--gold-line);
  padding:14px 28px;
  margin-top:64px;
}
.guest-banner-name{
  font-family:var(--font-display);
  font-weight:400;font-style:italic;
  font-size:18px;color:var(--ink);
}
.guest-banner-name span{color:var(--gold-deep);font-weight:600}
.guest-banner-sub{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--warm-gray);margin-top:3px}
.guest-banner-sub strong{color:var(--gold-deep);font-weight:500}

/* ═════════════ HERO ═════════════ */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  padding:120px 32px 100px;
  overflow:hidden;
  text-align:center;
  background:var(--cream);
  isolation:isolate;
}
.hero::before{
  content:"";
  position:absolute;inset:0;
  background-image:
    radial-gradient(ellipse at 20% 20%, rgba(201,169,110,.18), transparent 55%),
    radial-gradient(ellipse at 80% 80%, rgba(201,169,110,.14), transparent 60%),
    linear-gradient(180deg, var(--paper), var(--cream-deep));
  z-index:-2;
}
.hero::after{
  content:"";
  position:absolute;inset:36px;
  border:1px solid var(--gold-line);
  pointer-events:none;
  z-index:0;
}
.hero-photo-bg{
  position:absolute;inset:0;
  background:url("assets/couple-hero.jpg") center 30%/cover no-repeat;
  opacity:.18;
  filter:sepia(.4) saturate(.7) brightness(1.05);
  z-index:-1;
  will-change:transform;
}

/* botanical SVG frames in corners (added via JS, positioned here) */
.hero-bot{position:absolute;color:var(--gold);opacity:.6;z-index:1;pointer-events:none}
.hero-bot.tl{top:48px;left:48px;width:160px;transform-origin:top left}
.hero-bot.tr{top:48px;right:48px;width:160px;transform:scaleX(-1);transform-origin:top right}
.hero-bot.bl{bottom:48px;left:48px;width:140px;transform:scaleY(-1);transform-origin:bottom left}
.hero-bot.br{bottom:48px;right:48px;width:140px;transform:scale(-1,-1);transform-origin:bottom right}

/* floating particles */
.hero-particle{
  position:absolute;
  color:var(--gold);
  opacity:0;
  pointer-events:none;
  z-index:1;
}

.hero-ornament{
  display:flex;align-items:center;justify-content:center;gap:12px;
  margin-bottom:22px;
  color:var(--gold);
  position:relative;z-index:2;
}
.hero-ornament::before,.hero-ornament::after{
  content:"";display:block;
  width:60px;height:1px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
}
.hero-ornament svg{width:22px;height:22px}

.hero-tag{
  font-family:var(--font-sans);
  font-size:11px;letter-spacing:.42em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:400;
  margin-bottom:42px;
  position:relative;z-index:2;
}

.hero-line{display:flex;align-items:center;justify-content:center;gap:24px;position:relative;z-index:2;flex-wrap:wrap;max-width:100%}
.hero-divider{
  width:80px;height:1px;
  background:linear-gradient(90deg, transparent, var(--gold-deep), transparent);
}
.hero-names{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(48px, 10vw, 124px);
  line-height:1;
  letter-spacing:.01em;
  color:var(--ink);
  display:block;
  text-align:center;
  text-shadow:0 2px 24px rgba(252,248,238,.6);
}
.hero-ampersand{
  font-family:var(--font-display);
  font-style:italic;
  font-weight:300;
  color:var(--gold-deep);
  font-size:.7em;
  line-height:1;
  display:block;
  margin:.08em auto;
}
.hero-sub{
  position:relative;z-index:2;
  margin-top:36px;
  font-family:var(--font-display);
  font-style:italic;font-weight:400;
  font-size:22px;
  color:var(--ink-soft);
}
.hero-sub::before{content:"~ ";color:var(--gold-deep)}
.hero-sub::after{content:" ~";color:var(--gold-deep)}

.hero-message{
  position:relative;z-index:2;
  max-width:560px;margin:28px auto 0;
  font-family:var(--font-display);
  font-style:italic;font-weight:300;
  font-size:18px;line-height:1.7;
  color:var(--ink-soft);
  text-wrap:pretty;
}
.hero-date-block{
  position:relative;z-index:2;
  margin-top:42px;
  display:flex;align-items:center;justify-content:center;gap:28px;
  color:var(--ink);
}
.hero-date-num{
  font-family:var(--font-display);
  font-weight:400;
  font-size:64px;line-height:1;
  color:var(--gold-deep);
}
.hero-date-side{
  font-family:var(--font-sans);
  font-size:11px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--ink-soft);
  display:flex;flex-direction:column;gap:8px;text-align:left;
}
.hero-date-side.right{text-align:right}
.hero-date-side span{display:block}
.hero-date-line{height:1px;width:24px;background:var(--gold)}

.hero-ornament-bottom{
  position:absolute;bottom:60px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:10px;
  z-index:3;
}
.hero-ornament-bottom .scroll-line{
  width:1px;height:48px;
  background:linear-gradient(180deg, var(--gold-deep), transparent);
  animation:scrollLine 2.2s ease-in-out infinite;
}
@keyframes scrollLine{
  0%{transform:scaleY(.2);transform-origin:top}
  50%{transform:scaleY(1);transform-origin:top}
  51%{transform:scaleY(1);transform-origin:bottom}
  100%{transform:scaleY(.2);transform-origin:bottom}
}

/* ═════════════ COUNTDOWN ═════════════ */
.countdown-section{
  padding:90px 32px;
  background:linear-gradient(180deg, var(--cream-deep) 0%, var(--paper) 100%);
  text-align:center;
  border-top:1px solid rgba(201,169,110,.18);
  border-bottom:1px solid rgba(201,169,110,.18);
}
.countdown-label{
  font-family:var(--font-sans);
  font-size:11px;letter-spacing:.42em;text-transform:uppercase;
  color:var(--ink-soft);
  margin-bottom:36px;
}
.countdown-label::before,.countdown-label::after{
  content:"·";color:var(--gold-deep);margin:0 14px;
}
.countdown-grid{
  display:flex;justify-content:center;align-items:center;
  gap:8px;flex-wrap:wrap;
  max-width:780px;margin:0 auto;
}
.countdown-item{
  flex:1;min-width:120px;max-width:160px;
  background:var(--paper);
  border:1px solid var(--gold-line);
  padding:28px 12px 22px;
  position:relative;
  box-shadow:var(--shadow-warm);
}
.countdown-item::before,.countdown-item::after{
  content:"";position:absolute;width:10px;height:10px;
  border:1px solid var(--gold);
}
.countdown-item::before{top:-1px;left:-1px;border-right:none;border-bottom:none}
.countdown-item::after{bottom:-1px;right:-1px;border-left:none;border-top:none}
.countdown-num{
  font-family:var(--font-display);
  font-weight:400;
  font-size:56px;line-height:1;
  color:var(--gold-deep);
  display:block;
  font-variant-numeric:tabular-nums;
  transform-style:preserve-3d;
  perspective:200px;
}
.countdown-unit{
  margin-top:10px;
  font-family:var(--font-sans);
  font-size:10px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--ink-soft);
}
.countdown-sep{
  font-family:var(--font-display);
  font-size:36px;color:var(--gold);
  align-self:center;
}

/* ═════════════ SECTIONS COMMON ═════════════ */
.section-inner{
  max-width:1100px;margin:0 auto;
  padding:0 8px;
}
.programme-section,.dresscode-section,.rsvp-section,.table-section,.guide-section{
  padding:120px 32px;
  background:var(--cream);
}
.programme-section,.guide-section{background:var(--paper)}
.dresscode-section{
  background:linear-gradient(180deg, var(--cream) 0%, var(--cream-deep) 100%);
}
.section-tag{
  display:inline-flex;align-items:center;gap:14px;
  font-family:var(--font-sans);
  font-size:10px;letter-spacing:.4em;text-transform:uppercase;
  color:var(--gold-deep);
  margin-bottom:14px;
}
.section-tag::before{content:"";width:24px;height:1px;background:var(--gold)}
.section-title{
  font-family:var(--font-display);
  font-weight:300;font-style:italic;
  font-size:clamp(36px,5vw,64px);
  line-height:1.05;
  color:var(--ink);
  margin:0 0 56px;
  letter-spacing:.005em;
}
.section-title .word{display:inline-block;overflow:hidden;vertical-align:baseline}
.section-title .word > span{display:inline-block;transform:translateY(110%)}

/* reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1s cubic-bezier(.2,.7,.2,1), transform 1s cubic-bezier(.2,.7,.2,1)}
.reveal.visible{opacity:1;transform:none}

/* ═════════════ PROGRAMME ═════════════ */
.programme-timeline{
  display:flex;flex-direction:column;gap:0;
  max-width:620px;margin:0 auto;
  position:relative;
}
.prog-step{
  display:flex;gap:24px;
  align-items:flex-start;
  position:relative;
}
.prog-step::before{
  content:"";position:absolute;
  left:24px;top:54px;bottom:-8px;
  width:1px;
  background:repeating-linear-gradient(180deg, var(--gold-line) 0 4px, transparent 4px 8px);
  z-index:0;
}
.prog-step:last-child::before{display:none}
.prog-step-icon{
  width:50px;height:50px;
  border-radius:50%;
  background:var(--paper);
  border:1px solid var(--gold-line);
  display:flex;align-items:center;justify-content:center;
  font-size:20px;flex-shrink:0;
  position:relative;z-index:1;
  margin-top:6px;
  box-shadow:0 4px 12px -4px rgba(168,134,78,.3);
}
.prog-step-icon::after{
  content:"";position:absolute;inset:-5px;
  border:1px solid var(--gold);
  border-radius:50%;
  opacity:.35;
}
.programme-card{
  flex:1;
  background:var(--paper);
  border:1px solid rgba(201,169,110,.22);
  border-left:2px solid var(--gold);
  padding:22px 26px 24px;
  margin-bottom:24px;
  transition:transform .5s cubic-bezier(.2,.7,.2,1), box-shadow .5s;
  will-change:transform;
}
.programme-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-warm);
}
.prog-time{
  font-family:var(--font-display);
  font-weight:400;
  font-size:24px;color:var(--gold-deep);
  font-variant-numeric:tabular-nums;
  margin-bottom:4px;
}
.prog-label{
  font-family:var(--font-sans);
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--ink-soft);font-weight:400;
  margin-bottom:8px;
}
.prog-name{
  font-family:var(--font-display);
  font-style:italic;font-weight:400;
  font-size:22px;line-height:1.3;
  color:var(--ink);
  margin-bottom:6px;
}
.prog-addr{
  font-size:13px;color:var(--ink-soft);
  line-height:1.6;margin-top:6px;
}
.prog-map-link{
  display:inline-flex;align-items:center;gap:6px;
  margin-top:10px;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-deep);
  text-decoration:none;
  border-bottom:1px solid var(--gold-line);
  padding-bottom:2px;
}
.prog-map-link:hover{color:var(--ink)}

/* ═════════════ DRESS CODE ═════════════ */
.dresscode-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;align-items:center;
  max-width:920px;margin:0 auto;
}
@media(max-width:760px){.dresscode-inner{grid-template-columns:1fr;gap:48px}}
.dresscode-palette{
  display:flex;flex-direction:column;align-items:center;
  position:relative;
}
.palette-row-dc{
  display:flex;gap:18px;align-items:center;
  position:relative;
}
.swatch-dc{
  width:96px;height:96px;
  border-radius:50%;
  position:relative;
  box-shadow:0 16px 40px -16px rgba(60,80,120,.35), inset 0 -8px 24px rgba(0,0,0,.04);
  border:6px solid var(--paper);
  outline:1px solid var(--gold-line);
}
.swatch-dc::after{
  content:"";position:absolute;inset:-12px;
  border:1px dashed var(--gold-line);
  border-radius:50%;
  opacity:.6;
}
.swatch-dc:nth-child(2){transform:translateY(-14px) scale(1.1)}
.swatch-dc:nth-child(1){transform:translateX(6px)}
.swatch-dc:nth-child(3){transform:translateX(-6px)}
.dresscode-text .section-title{margin-bottom:18px}
.dresscode-desc{
  font-family:var(--font-display);
  font-style:italic;font-weight:300;
  font-size:21px;line-height:1.6;
  color:var(--ink-soft);
  text-wrap:pretty;
  max-width:440px;
}

/* ═════════════ RSVP ═════════════ */
.rsvp-section{
  background:
    radial-gradient(ellipse at top, rgba(201,169,110,.08), transparent 60%),
    var(--cream);
}
.rsvp-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px 22px;
  max-width:760px;margin:0 auto 24px;
}
.rsvp-choices{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:8px}
@media(max-width:640px){.rsvp-choices{grid-template-columns:1fr}.rsvp-grid{grid-template-columns:1fr}}
.rsvp-choice input{display:none}
.rsvp-choice label{
  display:flex;align-items:center;justify-content:center;gap:10px;
  padding:18px 16px;
  background:var(--paper);
  border:1px solid var(--gold-line);
  font-family:var(--font-sans);
  font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-soft);
  cursor:pointer;
  transition:all .3s;
  text-align:center;
}
.rsvp-choice label svg{color:var(--gold-deep);transition:transform .3s}
.rsvp-choice input:checked + label{
  background:var(--gold);
  color:var(--paper);
  border-color:var(--gold-deep);
  box-shadow:var(--shadow-warm);
}
.rsvp-choice input:checked + label svg{color:var(--paper);transform:scale(1.1)}
.rsvp-choice label:hover{border-color:var(--gold)}

.form-group label{
  display:block;
  font-family:var(--font-sans);
  font-size:10px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--ink-soft);
  margin-bottom:8px;
}
.form-input{
  width:100%;
  padding:14px 16px;
  background:var(--paper);
  border:1px solid var(--gold-line);
  border-radius:0;
  font-family:var(--font-display);
  font-style:italic;
  font-size:17px;
  color:var(--ink);
  outline:none;
  transition:border-color .25s, background .25s;
  box-sizing:border-box;
}
.form-input:focus{border-color:var(--gold-deep);background:#fff}
.form-input::placeholder{color:var(--warm-gray);opacity:.7}
textarea.form-input{font-family:var(--font-sans);font-style:normal;font-size:14px;line-height:1.6;resize:vertical}

.checkbox-label{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:var(--ink-soft);line-height:1.6;letter-spacing:.02em;text-transform:none;font-family:var(--font-sans)}
.checkbox-label input{margin-top:3px;accent-color:var(--gold-deep)}

.btn-submit{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:18px 44px;
  background:var(--gold-deep);
  color:var(--paper);
  font-family:var(--font-sans);
  font-size:11px;font-weight:400;
  letter-spacing:.28em;text-transform:uppercase;
  border:none;border-radius:0;
  cursor:pointer;
  position:relative;
  transition:transform .25s, box-shadow .3s, background .3s;
  margin-top:16px;
}
.btn-submit::before,.btn-submit::after{
  content:"";position:absolute;
  width:8px;height:8px;
  border:1px solid var(--paper);
}
.btn-submit::before{top:5px;left:5px;border-right:none;border-bottom:none}
.btn-submit::after{bottom:5px;right:5px;border-left:none;border-top:none}
.btn-submit:hover{background:var(--ink);transform:translateY(-2px);box-shadow:0 16px 40px -16px rgba(58,46,31,.6)}

/* ═════════════ PLAN DE TABLE ═════════════ */
.table-section{background:var(--paper)}
.table-search-bar{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:32px}
.tables-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:18px;
  margin-top:24px;
}
.table-card{
  background:var(--paper);
  border:1px solid var(--gold-line);
  padding:18px 20px;
  text-align:center;
  transition:border-color .25s, transform .25s;
}
.table-card:hover{border-color:var(--gold);transform:translateY(-2px)}
.table-name{font-family:var(--font-display);font-style:italic;font-size:18px;color:var(--gold-deep);margin-bottom:4px}
.table-guest{font-size:13px;color:var(--ink-soft)}

.avant-jour-j{
  background:var(--paper);
  border:1px solid var(--gold-line);
  padding:48px 32px;
  text-align:center;
  max-width:520px;
  margin:0 auto;
  position:relative;
}
.avant-jour-j::before,.avant-jour-j::after{
  content:"";position:absolute;width:14px;height:14px;border:1px solid var(--gold)
}
.avant-jour-j::before{top:-1px;left:-1px;border-right:none;border-bottom:none}
.avant-jour-j::after{bottom:-1px;right:-1px;border-left:none;border-top:none}
.avant-jour-j .icon{font-size:32px;margin-bottom:14px;color:var(--gold-deep)}
.avant-jour-j h3{font-family:var(--font-display);font-weight:400;font-style:italic;font-size:28px;color:var(--ink);margin:0 0 10px}
.avant-jour-j p{font-size:14px;color:var(--ink-soft);line-height:1.7;margin:0}

/* ═════════════ LIVRE D'OR (forced light theme to match champêtre) ═════════════ */
.livredor-section{
  padding:120px 32px;
  background:var(--cream-deep) !important;
  position:relative;
}
.livredor-section .section-title{color:var(--ink) !important}
.livredor-form{max-width:640px;margin:0 auto 48px}
.livredor-form .form-input{
  background:var(--paper) !important;
  color:var(--ink) !important;
  border-color:var(--gold-line) !important;
}
.livredor-form .form-group label{color:var(--ink-soft) !important}
.livredor-entries{display:flex;flex-direction:column;gap:18px;max-width:680px;margin:0 auto}
.livredor-entry{
  background:var(--paper) !important;
  border:1px solid var(--gold-line) !important;
  padding:26px 30px;
  border-left:3px solid var(--gold);
  position:relative;
}
.livredor-entry::before{
  content:"\201C";
  position:absolute;
  top:-8px;left:18px;
  font-family:var(--font-display);
  font-size:56px;line-height:1;
  color:var(--gold);
  background:var(--paper);
  padding:0 8px;
}
.lo-author{
  font-family:var(--font-display);
  font-weight:400;font-style:italic;
  font-size:20px;color:var(--gold-deep) !important;
  margin-bottom:10px;
  padding-left:12px;
}
.lo-message{
  font-family:var(--font-display);
  font-weight:300;
  font-size:16px;line-height:1.75;
  color:var(--ink) !important;
  opacity:1 !important;
}
.lo-date{font-size:11px;color:var(--warm-gray);margin-top:12px;letter-spacing:.16em;text-transform:uppercase}

/* ═════════════ GUIDE ═════════════ */
.guide-section{background:var(--paper)}
.guide-categorie{margin-bottom:56px}
.guide-cat-title{
  display:flex;align-items:center;gap:12px;
  font-family:var(--font-sans);
  font-size:11px;letter-spacing:.32em;text-transform:uppercase;
  color:var(--gold-deep);
  margin-bottom:20px;padding-bottom:12px;
  border-bottom:1px solid var(--gold-line);
}
.guide-cards{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:18px;
}
.guide-card{
  background:var(--cream) !important;
  border:1px solid var(--gold-line) !important;
  padding:24px 26px;
  border-radius:0;
  transition:transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s;
  position:relative;
}
.guide-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-warm)}
.guide-card-title{
  font-family:var(--font-display) !important;
  font-style:italic;font-weight:400;
  font-size:22px !important;
  color:var(--ink) !important;
  margin-bottom:8px;
}
.guide-card-desc{font-size:13px;color:var(--ink-soft);line-height:1.7;margin-bottom:10px}
.guide-card-addr{font-size:12px;color:var(--warm-gray);margin-bottom:10px;display:flex;gap:6px;align-items:flex-start}
.guide-card-link{
  font-family:var(--font-sans);
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-deep);text-decoration:none;
  border-bottom:1px solid var(--gold-line);
  padding-bottom:2px;
}
.guide-card-link:hover{color:var(--ink)}

/* ═════════════ LISTE DE MARIAGE ═════════════ */
.liste-section{
  padding:120px 32px;
  background:var(--cream-deep) !important;
}
.liste-section .section-title{color:var(--ink) !important}
.liste-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:22px;
  max-width:960px;margin:0 auto 64px;
}
.liste-card{
  background:var(--paper) !important;
  border:1px solid var(--gold-line) !important;
  overflow:hidden;border-radius:0;
  display:flex;flex-direction:column;
  transition:transform .4s, box-shadow .4s;
}
.liste-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-warm)}
.liste-card-img{width:100%;height:200px;object-fit:cover}
.liste-card-body{padding:20px 22px;flex:1;display:flex;flex-direction:column}
.liste-card-titre{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:19px;color:var(--ink) !important;margin-bottom:6px;
}
.liste-card-desc{font-size:13px;color:var(--ink-soft);line-height:1.6;flex:1;margin-bottom:10px}
.liste-card-prix{font-family:var(--font-display);font-size:24px;color:var(--gold-deep) !important;margin-bottom:14px}
.liste-card-badge{
  display:inline-block;padding:4px 12px;
  background:transparent !important;color:var(--gold-deep) !important;
  border:1px solid var(--gold-line);
  font-family:var(--font-sans);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  margin-bottom:10px;
}
.btn-reserver{
  width:100%;padding:14px;
  background:var(--gold-deep);color:var(--paper);
  font-family:var(--font-sans);font-size:11px;font-weight:400;
  letter-spacing:.22em;text-transform:uppercase;
  border:none;cursor:pointer;
  transition:background .3s;
}
.btn-reserver:hover{background:var(--ink)}

.cagnotte-block{
  max-width:600px;margin:0 auto;
  background:var(--paper) !important;
  border:1px solid var(--gold-line) !important;
  padding:48px 44px;text-align:center;
  position:relative;
}
.cagnotte-block::before,.cagnotte-block::after{
  content:"";position:absolute;width:18px;height:18px;border:1px solid var(--gold);
}
.cagnotte-block::before{top:-1px;left:-1px;border-right:none;border-bottom:none}
.cagnotte-block::after{bottom:-1px;right:-1px;border-left:none;border-top:none}
.cagnotte-titre{
  font-family:var(--font-display);font-style:italic;font-weight:400;
  font-size:32px;color:var(--ink) !important;margin-bottom:14px;
}
.cagnotte-desc{font-size:15px;color:var(--ink-soft);line-height:1.7;margin-bottom:28px;font-family:var(--font-display);font-style:italic}
.cagnotte-options{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:24px}
.cagnotte-btn{
  padding:12px 22px;
  background:transparent;border:1px solid var(--gold-line) !important;
  color:var(--ink) !important;
  font-family:var(--font-sans);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  text-decoration:none;
  transition:background .3s, border-color .3s;
}
.cagnotte-btn:hover{background:var(--gold);color:var(--paper) !important;border-color:var(--gold) !important}
.cagnotte-rib{
  background:var(--cream) !important;
  border:1px dashed var(--gold-line) !important;
  padding:18px 22px;text-align:left;
  font-size:13px;color:var(--ink) !important;
  font-family:var(--font-sans);
}
.cagnotte-rib strong{
  display:block;font-size:10px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--gold-deep) !important;margin-bottom:6px;font-style:normal;
}

/* ═════════════ GALERIE BENTO ═════════════ */
#galerie{background:var(--cream-deep) !important;padding:120px 32px}
#galerie .section-title{color:var(--ink) !important}
.bento-item{
  background:var(--paper) !important;
  border:1px solid var(--gold-line);
  border-radius:0 !important;
}
.bento-overlay{
  background:linear-gradient(to top, rgba(58,46,31,.75) 0%, transparent 60%) !important;
}

/* responsive */
@media(max-width:640px){
  .hero{padding:120px 20px 80px}
  .hero::after{inset:18px}
  .hero-bot{display:none}
  .hero-date-block{flex-direction:column;gap:14px}
  .hero-date-side,.hero-date-side.right{text-align:center}
  .programme-section,.dresscode-section,.rsvp-section,.guide-section,.liste-section,.livredor-section,.table-section{padding:80px 20px}
  .countdown-section{padding:60px 20px}
  .countdown-num{font-size:38px}
  .countdown-sep{display:none}
  .countdown-item{min-width:70px;padding:18px 8px 14px}
  .nav-inner{gap:8px;padding:8px 14px}
  .nav-inner a{font-size:10px;letter-spacing:.12em}
  .nav-inner a:not(:first-child):not(.always){display:none}
}
