/* Stili della demo (sito/demo.html). Prima erano nel <style> della pagina. */

/* ── Tokens ─────────────────────────────────────────── */
:root{
  --white:#FFFEF9;--ivory:#F5F0E8;--ivory-dk:#EDE6D6;
  --gold:#C9A84C;--gold-lt:#E8D5A0;--gold-dk:#A67C35;
  --sage:#8A9E7B;--blush:#E8C5B8;--blush-dk:#D4A898;
  --dark:#1A1208;--text:#3D3428;--text-lt:#7A6F60;
  --f-title:'Playfair Display',Georgia,serif;
  --f-body:'Montserrat',Arial,sans-serif;
  --r:12px;--r-lg:20px;--r-full:9999px;
  --sh:0 4px 24px rgba(26,18,8,.10);
  --sh-lg:0 12px 48px rgba(26,18,8,.14);
  --sh-gold:0 8px 32px rgba(201,168,76,.25);
  --t:.3s ease;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--f-body);color:var(--text);background:var(--white);overflow-x:hidden;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}

/* ── Typography ──────────────────────────────────────── */
h1,h2,h3,h4{font-family:var(--f-title);line-height:1.2;}
h2{font-size:clamp(2rem,4vw,3rem);}
h3{font-size:clamp(1.25rem,2.5vw,1.6rem);}
p{line-height:1.8;color:var(--text-lt);}

/* ── Nav ─────────────────────────────────────────────── */
.wn-nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:1rem 0;
  transition:var(--t);
}
.wn-nav.scrolled{
  background:rgba(255,254,249,.95);
  backdrop-filter:blur(20px);
  padding:.6rem 0;
  box-shadow:0 1px 24px rgba(26,18,8,.08);
}
.wn-nav-inner{
  max-width:1100px;margin:0 auto;padding:0 1.5rem;
  display:flex;align-items:center;justify-content:space-between;
}
.wn-nav-names{
  font-family:var(--f-title);font-size:1.25rem;color:#fff;
  transition:var(--t);letter-spacing:.02em;
}
.wn-nav.scrolled .wn-nav-names{color:var(--dark);}
.wn-nav-links{display:flex;gap:1.5rem;}
.wn-nav-link{
  font-size:.78rem;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:rgba(255,255,255,.8);transition:var(--t);
}
.wn-nav.scrolled .wn-nav-link{color:var(--text-lt);}
.wn-nav-link:hover{color:var(--gold)!important;}
.wn-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:.5rem;}
.wn-hamburger span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:var(--t);}
.wn-nav.scrolled .wn-hamburger span{background:var(--dark);}

/* ── HERO ────────────────────────────────────────────── */
.wn-hero{
  position:relative;min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--dark),#3a2510);
  overflow:hidden;
}
.wn-hero-bg{
  position:absolute;inset:0;
  background:url('../../assets/img/hero-bg.jpg') center/cover no-repeat;
  animation:kbHero 22s ease-in-out infinite alternate;
}
@keyframes kbHero{0%{transform:scale(1);}100%{transform:scale(1.06) translate(-1%,-1%);}}
.wn-hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(26,18,8,.5),rgba(26,18,8,.75));}
.wn-hero-content{
  position:relative;z-index:1;text-align:center;
  padding:0 1.5rem;max-width:760px;
}
.wn-hero-date{
  font-size:.75rem;font-weight:600;letter-spacing:.25em;
  text-transform:uppercase;color:var(--gold-lt);
  margin-bottom:1.5rem;
  animation:fadeUp .8s ease .3s both;
}
.wn-hero-title{
  font-family:var(--f-title);font-size:clamp(3rem,8vw,6rem);
  color:#fff;font-weight:400;line-height:1.1;
  margin-bottom:.75rem;
  animation:fadeUp .8s ease .6s both;
}
.wn-hero-amp{
  font-style:italic;color:var(--gold-lt);
  display:block;font-size:.6em;margin:.25rem 0;
}
.wn-hero-subtitle{
  color:rgba(255,255,255,.65);font-size:1rem;font-weight:300;
  margin-bottom:2.5rem;letter-spacing:.05em;
  animation:fadeUp .8s ease .9s both;
}
.wn-hero-cta{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.9rem 2rem;border-radius:var(--r-full);
  background:linear-gradient(135deg,var(--gold),var(--gold-lt),var(--gold-dk));
  color:var(--dark);font-weight:700;font-size:.85rem;letter-spacing:.08em;
  box-shadow:var(--sh-gold);transition:var(--t);
  animation:fadeUp .8s ease 1.2s both;
}
.wn-hero-cta:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(201,168,76,.4);}
.wn-hero-scroll{
  position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.75rem;
  color:rgba(255,255,255,.4);font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;
  animation:fadeIn 1s ease 1.5s both;
}
.wn-scroll-line{width:1px;height:44px;background:rgba(255,255,255,.2);position:relative;overflow:hidden;}
.wn-scroll-line::after{content:'';position:absolute;top:-100%;left:0;right:0;height:100%;background:var(--gold-lt);animation:scrollL 2s ease-in-out infinite;}
@keyframes scrollL{0%{top:-100%;}100%{top:100%;}}

/* ── COUNTDOWN ───────────────────────────────────────── */
.wn-countdown{
  background:var(--dark);padding:3.5rem 0;
  border-top:1px solid rgba(201,168,76,.12);
  border-bottom:1px solid rgba(201,168,76,.12);
}
.wn-countdown-title{
  font-family:var(--f-title);font-size:1rem;font-style:italic;
  color:rgba(255,255,255,.4);text-align:center;margin-bottom:2rem;
  letter-spacing:.05em;
}
.wn-countdown-grid{
  display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap;
}
.wn-cd-item{text-align:center;}
.wn-cd-num{
  display:block;font-family:var(--f-title);font-size:clamp(2.5rem,5vw,4rem);
  color:var(--gold);line-height:1;font-weight:600;
  text-shadow:0 0 40px rgba(201,168,76,.3);
}
.wn-cd-label{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-top:.5rem;}
.wn-cd-sep{
  font-family:var(--f-title);font-size:2.5rem;color:rgba(201,168,76,.3);
  align-self:center;padding-bottom:.5rem;
}

/* ── Section base ────────────────────────────────────── */
.wn-section{padding:6rem 0;}
.wn-section.bg-ivory{background:var(--ivory);}
.wn-section.bg-dark{background:var(--dark);}
.wn-container{max-width:1100px;margin:0 auto;padding:0 1.5rem;}
.wn-container--narrow{max-width:720px;}
.wn-section-label{
  font-size:.7rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);display:flex;align-items:center;gap:.5rem;
  justify-content:center;margin-bottom:1rem;
}
.wn-section-label::before,.wn-section-label::after{content:'✦';font-size:.5rem;opacity:.7;}
.wn-section-title{font-size:clamp(2rem,4vw,3rem);text-align:center;color:var(--dark);margin-bottom:1rem;}
.wn-section-title em{font-style:italic;color:var(--gold);}
.wn-section-sub{text-align:center;max-width:580px;margin:0 auto 3rem;font-size:.95rem;line-height:1.9;}
.wn-divider{
  display:flex;align-items:center;gap:1rem;margin:0 auto 3rem;
  max-width:140px;color:var(--gold);opacity:.4;
}
.wn-divider::before,.wn-divider::after{content:'';flex:1;height:1px;background:var(--gold);}

/* ── Storia ──────────────────────────────────────────── */
.wn-story-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;}
.wn-story-img{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-lg);position:relative;}
.wn-story-img img{width:100%;aspect-ratio:3/4;object-fit:cover;}
.wn-story-badge{
  position:absolute;bottom:1.5rem;right:1.5rem;
  background:rgba(26,18,8,.85);backdrop-filter:blur(12px);
  border:1px solid rgba(201,168,76,.3);border-radius:var(--r);
  padding:.75rem 1.25rem;color:var(--gold);font-size:.75rem;
  font-weight:600;letter-spacing:.05em;
}
.wn-story-text{font-family:var(--f-title);font-size:1.05rem;font-style:italic;line-height:1.9;color:var(--text-lt);}
.wn-story-quote{
  margin:2rem 0;padding-left:1.5rem;
  border-left:3px solid var(--gold);
}
.wn-story-quote p{font-family:var(--f-title);font-size:1.2rem;font-style:italic;color:var(--dark);}

/* ── Timeline ────────────────────────────────────────── */
.wn-timeline{position:relative;max-width:700px;margin:0 auto;}
.wn-timeline::before{
  content:'';position:absolute;left:50%;transform:translateX(-50%);
  top:0;bottom:0;width:1px;background:linear-gradient(to bottom,transparent,var(--gold),transparent);
  opacity:.3;
}
.wn-tl-item{
  display:flex;gap:2rem;align-items:flex-start;margin-bottom:3rem;
}
.wn-tl-item:nth-child(even){flex-direction:row-reverse;}
.wn-tl-side{flex:1;text-align:right;}
.wn-tl-item:nth-child(even) .wn-tl-side{text-align:left;}
.wn-tl-center{display:flex;flex-direction:column;align-items:center;gap:.5rem;flex-shrink:0;padding-top:.25rem;}
.wn-tl-dot{
  width:44px;height:44px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold),var(--gold-lt));
  display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;box-shadow:var(--sh-gold);
  position:relative;z-index:1;
}
.wn-tl-time{font-size:.7rem;color:var(--text-lt);letter-spacing:.05em;font-weight:600;}
.wn-tl-content h4{font-size:1rem;font-family:var(--f-body);font-weight:700;color:var(--dark);margin-bottom:.3rem;}
.wn-tl-content p{font-size:.85rem;}
.wn-tl-content small{display:block;font-size:.75rem;color:var(--gold);font-weight:600;margin-bottom:.25rem;letter-spacing:.05em;}

/* ── Mappa & Hotel ───────────────────────────────────── */
.wn-venue-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;}
.wn-venue-card{background:var(--white);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh);}
.wn-venue-map{width:100%;height:240px;border:0;}
.wn-venue-info{padding:1.5rem;}
.wn-venue-info h4{font-size:1rem;font-family:var(--f-body);font-weight:700;color:var(--dark);margin-bottom:.25rem;}
.wn-venue-info p{font-size:.85rem;}
.wn-venue-link{
  display:inline-flex;align-items:center;gap:.4rem;
  margin-top:.75rem;font-size:.78rem;font-weight:700;
  color:var(--gold);letter-spacing:.05em;
  text-transform:uppercase;transition:var(--t);
}
.wn-venue-link:hover{gap:.7rem;}
.wn-hotels-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem;}
.wn-hotel-card{
  background:var(--white);border:1px solid rgba(201,168,76,.15);
  border-radius:var(--r);padding:1.5rem;transition:var(--t);
}
.wn-hotel-card:hover{transform:translateY(-4px);box-shadow:var(--sh-lg);}
.wn-hotel-stars{color:var(--gold);font-size:.85rem;margin-bottom:.5rem;}
.wn-hotel-name{font-size:1rem;font-weight:700;font-family:var(--f-body);color:var(--dark);margin-bottom:.25rem;}
.wn-hotel-price{font-size:.78rem;color:var(--text-lt);margin-bottom:.75rem;}
.wn-hotel-link{font-size:.75rem;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.05em;}

/* ── Dress Code ──────────────────────────────────────── */
.wn-dresscode{
  background:var(--ivory);border:1px solid rgba(201,168,76,.2);
  border-radius:var(--r-lg);padding:3rem;text-align:center;max-width:660px;margin:0 auto;
}
.wn-dresscode-icon{font-size:3rem;margin-bottom:1rem;}
.wn-dresscode h3{font-size:1.5rem;color:var(--dark);margin-bottom:.75rem;}
.wn-dresscode p{font-size:.9rem;line-height:1.8;}
.wn-palette{display:flex;justify-content:center;gap:.75rem;margin-top:1.5rem;}
.wn-palette-dot{
  width:36px;height:36px;border-radius:50%;
  border:2px solid rgba(255,255,255,.6);
  box-shadow:var(--sh);cursor:default;
  position:relative;
}
.wn-palette-dot::after{
  content:attr(title);
  position:absolute;bottom:100%;left:50%;transform:translateX(-50%);
  background:var(--dark);color:#fff;font-size:.6rem;white-space:nowrap;
  padding:.3rem .6rem;border-radius:var(--r);opacity:0;transition:var(--t);
  pointer-events:none;
}
.wn-palette-dot:hover::after{opacity:1;bottom:calc(100% + 4px);}

/* ── Lista Nozze ─────────────────────────────────────── */
.wn-nozze-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.wn-nozze-card{
  background:var(--white);border:1px solid rgba(201,168,76,.2);
  border-radius:var(--r-lg);padding:2rem;text-align:center;
  transition:var(--t);cursor:pointer;
}
.wn-nozze-card:hover{transform:translateY(-4px);box-shadow:var(--sh-gold);}
.wn-nozze-icon{font-size:2.5rem;margin-bottom:1rem;}
.wn-nozze-card h4{font-size:1rem;font-family:var(--f-body);font-weight:700;color:var(--dark);margin-bottom:.5rem;}
.wn-nozze-card p{font-size:.83rem;}
.wn-nozze-copy{
  display:inline-flex;align-items:center;gap:.4rem;
  margin-top:1rem;padding:.5rem 1.25rem;
  border-radius:var(--r-full);background:linear-gradient(135deg,var(--gold),var(--gold-lt));
  color:var(--dark);font-size:.75rem;font-weight:700;
  border:none;cursor:pointer;transition:var(--t);letter-spacing:.05em;
}
.wn-nozze-copy:hover{transform:scale(1.04);}
.wn-iban-box{
  background:var(--ivory);border:1px dashed rgba(201,168,76,.3);
  border-radius:var(--r);padding:1rem 1.5rem;margin-top:.75rem;
  font-family:monospace;font-size:.8rem;color:var(--text);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  word-break:break-all;
}

/* ── Gallery ─────────────────────────────────────────── */
.wn-gallery-grid{
  columns:3 200px;gap:1rem;
}
.wn-gallery-item{
  break-inside:avoid;margin-bottom:1rem;border-radius:var(--r);
  overflow:hidden;cursor:pointer;position:relative;transition:var(--t);
}
.wn-gallery-item:hover{transform:scale(1.02);box-shadow:var(--sh-lg);}
.wn-gallery-item img{width:100%;display:block;}
.wn-gallery-overlay{
  position:absolute;inset:0;background:rgba(26,18,8,.4);
  opacity:0;transition:var(--t);
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.5rem;
}
.wn-gallery-item:hover .wn-gallery-overlay{opacity:1;}
.wn-gallery-upload{
  border:2px dashed rgba(201,168,76,.3);border-radius:var(--r-lg);
  padding:3rem;text-align:center;margin-top:2rem;cursor:pointer;
  transition:var(--t);
}
.wn-gallery-upload:hover{border-color:var(--gold);background:rgba(201,168,76,.03);}
.wn-gallery-upload-icon{font-size:2.5rem;margin-bottom:1rem;}
.wn-gallery-upload p{font-size:.85rem;}

/* ── RSVP ────────────────────────────────────────────── */
.wn-rsvp{
  background:linear-gradient(135deg,var(--dark),#2a1a08);
  padding:5rem 0;position:relative;overflow:hidden;
}
.wn-rsvp::before{
  content:'';position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);width:500px;height:500px;
  background:radial-gradient(circle,rgba(201,168,76,.07) 0%,transparent 70%);
  pointer-events:none;
}
.wn-rsvp-form{
  background:rgba(255,254,249,.04);backdrop-filter:blur(20px);
  border:1px solid rgba(201,168,76,.15);border-radius:1.5rem;
  padding:3rem;max-width:660px;margin:0 auto;
  position:relative;z-index:1;
}
.wn-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;}
.wn-form-group{display:flex;flex-direction:column;gap:.4rem;}
.wn-form-label{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);}
.wn-form-input{
  padding:.85rem 1.1rem;border-radius:var(--r);
  background:rgba(255,255,255,.05);border:1px solid rgba(201,168,76,.2);
  color:#fff;font-family:var(--f-body);font-size:.9rem;
  transition:var(--t);outline:none;
}
.wn-form-input:focus{border-color:var(--gold);background:rgba(255,255,255,.08);}
.wn-form-input::placeholder{color:rgba(255,255,255,.25);}
.wn-form-textarea{min-height:100px;resize:vertical;}
.wn-attending-toggle{
  display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem;
}
.wn-attending-btn{
  padding:1rem;border-radius:var(--r);
  border:1.5px solid rgba(201,168,76,.2);background:transparent;
  color:rgba(255,255,255,.5);font-family:var(--f-body);font-weight:600;font-size:.9rem;
  cursor:pointer;transition:var(--t);text-align:center;
}
.wn-attending-btn.yes.active{border-color:#4ade80;background:rgba(74,222,128,.1);color:#4ade80;}
.wn-attending-btn.no.active{border-color:#f87171;background:rgba(248,113,113,.1);color:#f87171;}
.wn-num-select{
  display:flex;gap:.5rem;flex-wrap:wrap;
}
.wn-num-btn{
  width:42px;height:42px;border-radius:50%;
  border:1.5px solid rgba(201,168,76,.25);background:transparent;
  color:rgba(255,255,255,.5);font-weight:700;cursor:pointer;transition:var(--t);
}
.wn-num-btn.active{background:var(--gold);border-color:var(--gold);color:var(--dark);}
.wn-diet-checks{display:flex;gap:.75rem;flex-wrap:wrap;}
.wn-diet-chip{
  padding:.4rem 1rem;border-radius:var(--r-full);
  border:1.5px solid rgba(201,168,76,.2);background:transparent;
  color:rgba(255,255,255,.45);font-size:.78rem;font-weight:600;cursor:pointer;transition:var(--t);
}
.wn-diet-chip.active{background:rgba(201,168,76,.15);border-color:var(--gold);color:var(--gold-lt);}
.wn-rsvp-submit{
  width:100%;padding:1.1rem;margin-top:1.5rem;
  border-radius:var(--r-full);
  background:linear-gradient(135deg,var(--gold),var(--gold-lt),var(--gold-dk));
  color:var(--dark);font-family:var(--f-body);font-weight:700;font-size:1rem;
  border:none;cursor:pointer;transition:var(--t);letter-spacing:.05em;
  box-shadow:var(--sh-gold);
}
.wn-rsvp-submit:hover{transform:translateY(-2px);box-shadow:0 12px 36px rgba(201,168,76,.4);}
.wn-rsvp-success{display:none;text-align:center;padding:3rem 2rem;}
.wn-rsvp-success-icon{font-size:4rem;margin-bottom:1rem;}
.wn-rsvp-success h3{color:#fff;margin-bottom:.5rem;}
.wn-rsvp-success p{color:rgba(255,255,255,.5);}

/* ── Messaggi ────────────────────────────────────────── */
.wn-messages-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;}
.wn-message-card{
  background:var(--white);border:1px solid rgba(201,168,76,.15);
  border-radius:var(--r-lg);padding:1.75rem;transition:var(--t);
}
.wn-message-card:hover{box-shadow:var(--sh);}
.wn-message-quote{color:var(--gold);font-size:1.5rem;line-height:1;margin-bottom:.75rem;}
.wn-message-text{font-size:.88rem;font-style:italic;color:var(--text-lt);line-height:1.7;margin-bottom:1rem;}
.wn-message-author{font-size:.75rem;font-weight:700;letter-spacing:.08em;color:var(--gold);}
.wn-message-form{
  background:var(--ivory);border-radius:var(--r-lg);padding:2rem;margin-top:2rem;
}
.wn-message-form textarea{
  width:100%;min-height:100px;padding:.85rem 1.1rem;
  border-radius:var(--r);border:1px solid rgba(201,168,76,.2);
  background:var(--white);font-family:var(--f-body);font-size:.9rem;resize:vertical;outline:none;
  transition:var(--t);color:var(--text);
}
.wn-message-form textarea:focus{border-color:var(--gold);}
.wn-message-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;}
.wn-message-input{
  width:100%;padding:.85rem 1.1rem;border-radius:var(--r);
  border:1px solid rgba(201,168,76,.2);background:var(--white);
  font-family:var(--f-body);font-size:.9rem;outline:none;transition:var(--t);color:var(--text);
}
.wn-message-input:focus{border-color:var(--gold);}

/* ── QR Code & Hashtag ───────────────────────────────── */
.wn-qr-section{
  background:var(--dark);padding:4rem 0;text-align:center;
}
.wn-qr-card{
  display:inline-flex;flex-direction:column;align-items:center;gap:1.5rem;
  background:rgba(255,255,255,.04);border:1px solid rgba(201,168,76,.15);
  border-radius:var(--r-lg);padding:2.5rem;
}
#qrcode canvas,#qrcode img{border-radius:var(--r);}
.wn-hashtag{
  font-family:var(--f-title);font-size:1.5rem;
  color:var(--gold);letter-spacing:.05em;
}
.wn-qr-download{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.7rem 1.5rem;border-radius:var(--r-full);
  background:rgba(201,168,76,.1);border:1px solid rgba(201,168,76,.3);
  color:var(--gold-lt);font-size:.8rem;font-weight:700;cursor:pointer;transition:var(--t);
}
.wn-qr-download:hover{background:rgba(201,168,76,.2);}

/* ── Spotify ─────────────────────────────────────────── */
.wn-spotify{
  border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--sh-lg);max-width:500px;margin:0 auto;
}

/* ── Reveal animations ───────────────────────────────── */
.r{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);}
.r.v{opacity:1;transform:none;}
.r1{transition-delay:.1s;} .r2{transition-delay:.2s;} .r3{transition-delay:.3s;} .r4{transition-delay:.4s;}

/* ── Lightbox ────────────────────────────────────────── */
.wn-lightbox{
  display:none;position:fixed;inset:0;z-index:1000;
  background:rgba(0,0,0,.95);align-items:center;justify-content:center;
}
.wn-lightbox.open{display:flex;}
.wn-lightbox img{max-height:90vh;max-width:90vw;border-radius:var(--r);}
.wn-lightbox-close{
  position:absolute;top:1.5rem;right:1.5rem;
  color:#fff;font-size:2rem;cursor:pointer;opacity:.7;background:none;border:none;
}

/* ── Btn ─────────────────────────────────────────────── */
.wn-btn{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.8rem 1.75rem;border-radius:var(--r-full);
  font-family:var(--f-body);font-size:.82rem;font-weight:700;
  letter-spacing:.06em;transition:var(--t);cursor:pointer;border:none;
}
.wn-btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-lt));color:var(--dark);box-shadow:var(--sh-gold);}
.wn-btn-gold:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(201,168,76,.35);}
.wn-btn-outline{background:transparent;border:1.5px solid var(--gold);color:var(--gold);}
.wn-btn-outline:hover{background:var(--gold);color:var(--dark);}
.wn-btn-dark{background:var(--dark);color:var(--gold);border:1px solid rgba(201,168,76,.2);}

/* ── Responsive ──────────────────────────────────────── */
@media(max-width:768px){
  .wn-nav-links{display:none;}
  .wn-hamburger{display:flex;}
  .wn-story-grid{grid-template-columns:1fr;}
  .wn-venue-grid{grid-template-columns:1fr;}
  .wn-hotels-grid{grid-template-columns:1fr;}
  .wn-nozze-grid{grid-template-columns:1fr;}
  .wn-gallery-grid{columns:2 150px;}
  .wn-messages-grid{grid-template-columns:1fr;}
  .wn-form-row{grid-template-columns:1fr;}
  .wn-message-form-row{grid-template-columns:1fr;}
  .wn-timeline::before{left:22px;}
  .wn-tl-item,.wn-tl-item:nth-child(even){flex-direction:column;gap:1rem;}
  .wn-tl-side,.wn-tl-item:nth-child(even) .wn-tl-side{text-align:left;}
  .wn-tl-center{flex-direction:row;justify-content:flex-start;}
  .wn-section{padding:4rem 0;}
}
@media(max-width:480px){
  .wn-container{padding:0 1rem;}
  .wn-gallery-grid{columns:1;}
}

/* ── Keyframes ───────────────────────────────────────── */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:none;}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
