:root{
  --ivory:#fbfaf7;
  --ivory-2:#f3f0eb;
  --burgundy:#7b1733;
  --burgundy-deep:#5d1026;
  --graphite:#2d2d31;
  --muted:#767279;
  --line:#d8d2cd;
  --spotify:#1ed760;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--graphite);font-family:"Manrope",sans-serif;line-height:1.65;overflow-x:hidden}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit}
a{color:inherit}
.hidden{display:none!important}
.center{text-align:center}
.narrow{width:min(760px,calc(100% - 2rem));margin:auto}
.wide{width:min(1160px,calc(100% - 2rem));margin:auto}

.loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:var(--ivory);transition:.8s ease}
.loader.hide{opacity:0;visibility:hidden}
.loader__names{font:400 clamp(2.2rem,8vw,5.8rem)/1 "Italiana",serif;color:var(--burgundy);animation:rise 1.2s ease both}
.loader__names em{font-family:"Playfair Display",serif;font-weight:500}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

.hero{position:relative;min-height:100svh;display:grid;place-items:center;background:url("/assets/hero.jpg") center 44%/cover no-repeat;color:#fff}
.hero__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.5),rgba(0,0,0,.22) 42%,rgba(0,0,0,.62)),radial-gradient(circle at center,transparent 30%,rgba(0,0,0,.25))}
.hero__content{position:relative;z-index:2;text-align:center;padding:6rem 1.2rem}
.hero__greeting{margin:0 0 1.5rem;font:500 italic clamp(1.25rem,3vw,2rem) "Playfair Display",serif}
.hero h1{margin:0;display:flex;flex-direction:column;align-items:center;font:400 clamp(4rem,12vw,9rem)/.82 "Italiana",serif;text-shadow:0 8px 35px rgba(0,0,0,.28)}
.hero h1 em{font:500 italic clamp(2.4rem,7vw,5.6rem)/1 "Playfair Display",serif;margin:.2rem 0}
.hero__date{margin:1.8rem 0 2.2rem;letter-spacing:.38em;font-size:.95rem}
.hero__cta{border:1px solid rgba(255,255,255,.85);background:rgba(255,255,255,.05);color:white;border-radius:999px;padding:.95rem 1.7rem;backdrop-filter:blur(10px);cursor:pointer}
.hero__spotify{position:absolute;z-index:3;right:1rem;bottom:1rem;display:flex;gap:.55rem;align-items:center;padding:.72rem 1rem;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:rgba(0,0,0,.3);backdrop-filter:blur(10px);text-decoration:none;font-size:.85rem}
.hero__spotify span{color:var(--spotify)}

.opening,.countdown-section,.venues,.details,.spotify,.rsvp,.pets{padding:clamp(5rem,9vw,9rem) 0}
.opening__text{font:500 clamp(1.25rem,3vw,1.75rem)/1.58 "Playfair Display",serif;margin:0}
.script{font:500 italic clamp(1.8rem,4vw,2.8rem) "Playfair Display",serif;color:var(--burgundy);margin:0 0 1rem}
.ornament{width:min(440px,86%);margin:0 auto 1.8rem;display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:center;color:var(--burgundy)}
.ornament span{height:1px;background:currentColor}.ornament b{font-size:1rem}
.kicker{margin:0 0 2rem;color:var(--burgundy);text-transform:uppercase;letter-spacing:.2em;font-size:.78rem}
.kicker.light{color:#f1dfe5}

.countdown-section{background:var(--ivory-2)}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.countdown div{background:var(--ivory-2);padding:2rem .5rem}
.countdown strong{display:block;font:400 clamp(2.8rem,7vw,6rem)/1 "Italiana",serif;color:var(--burgundy)}
.countdown span{display:block;margin-top:.7rem;color:var(--muted);font-size:.8rem}
.wedding-day{font:500 italic 1.5rem "Playfair Display",serif;color:var(--burgundy)}

.section-heading{text-align:center;margin-bottom:3rem}
.section-heading h2,.pets h2{margin:0;font:400 clamp(2.8rem,7vw,5.5rem)/1 "Italiana",serif;color:var(--burgundy)}
.section-heading>p{margin:1rem 0 0}

.venue-layout{display:grid;grid-template-columns:1fr 1px 1fr;gap:3rem}
.venue-divider{background:var(--line)}
.venue{text-align:center;padding:1rem 2rem}
.venue__label{color:var(--burgundy);text-transform:uppercase;letter-spacing:.2em;font-size:.78rem}
.venue__intro{font:500 1.2rem "Playfair Display",serif}
.venue__time{font:400 clamp(3.8rem,8vw,6.2rem)/1 "Italiana",serif;color:var(--burgundy);margin:1.6rem 0}
.venue h3{margin:0;font:600 1.25rem "Playfair Display",serif}
.soft{color:var(--muted);font-size:.9rem;margin:1.5rem 0}
.venue a{display:inline-block;border-bottom:1px solid var(--burgundy);color:var(--burgundy);text-decoration:none;padding-bottom:.2rem}

.editorial-photo{position:relative;width:min(1120px,calc(100% - 2rem));height:min(82vh,820px);margin:auto;overflow:hidden}
.editorial-photo img{width:100%;height:100%;object-fit:cover;object-position:center 35%}
.editorial-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.48),transparent 45%)}
.editorial-photo__caption{position:absolute;z-index:2;bottom:2rem;left:2rem;color:white;font:400 clamp(2.4rem,5vw,4.5rem) "Italiana",serif}

.details-list{border-top:1px solid var(--line)}
.details-list article{display:grid;grid-template-columns:90px 1fr;gap:1.5rem;padding:2rem 0;border-bottom:1px solid var(--line)}
.details-list article>span{color:var(--burgundy);font:400 2rem "Italiana",serif}
.details-list h3{margin:0 0 .4rem;font:500 1.35rem "Playfair Display",serif;color:var(--burgundy)}
.details-list p{margin:0}

.dress{padding:clamp(5rem,10vw,9rem) 0;background:var(--graphite);color:white}
.dress h2{margin:0 0 1.5rem;font:400 clamp(2.8rem,7vw,5rem)/1 "Italiana",serif}
.dress p{margin:0;font:500 clamp(1.15rem,3vw,1.55rem)/1.6 "Playfair Display",serif;color:#f7f3f0}

.spotify{background:#f1f4ef}
.spotify__dot{width:28px;height:28px;margin:0 auto 1.5rem;border-radius:50%;background:var(--spotify)}
.spotify h2{margin:0 0 2rem;font:400 clamp(2.2rem,5vw,4rem)/1.15 "Italiana",serif}
.spotify a{display:inline-flex;padding:.95rem 1.4rem;border-radius:999px;background:var(--spotify);text-decoration:none;font-weight:600}

.rsvp{background:linear-gradient(180deg,var(--ivory),#f1eeea)}
form{padding:clamp(1.2rem,4vw,2.4rem);border:1px solid var(--line);background:rgba(255,255,255,.72)}
fieldset{border:0;padding:0;margin:0 0 1.8rem}
legend,label{display:block;font-weight:600;margin-bottom:.7rem}
.attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.attendance-card{position:relative;min-height:130px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:1rem;border:1px solid var(--line);background:white;cursor:pointer;transition:.2s ease}
.attendance-card input{position:absolute;opacity:0}
.attendance-card:has(input:checked){background:#fff5f8;border-color:var(--burgundy);transform:translateY(-2px);box-shadow:0 12px 30px rgba(123,23,51,.1)}
.attendance-card span{color:var(--burgundy);font-weight:600}
.attendance-card small{margin-top:.35rem;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:2fr 1fr;gap:1rem}
input,select,textarea{width:100%;padding:.95rem 1rem;border:1px solid var(--line);background:white;border-radius:0;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--burgundy);box-shadow:0 0 0 3px rgba(123,23,51,.08)}
textarea{resize:vertical;min-height:110px}
.meal{margin:1.8rem 0}
.meal h3{margin:0;font:500 1.45rem "Playfair Display",serif;color:var(--burgundy)}
.meal>p{margin:.25rem 0 1rem;color:var(--muted)}
.meal-selector{padding:1rem 0;border-top:1px solid var(--line)}
.submit-btn{width:100%;border:0;background:var(--burgundy);color:white;padding:1rem;cursor:pointer;font-weight:600}
.form-status{text-align:center;color:var(--burgundy);font-weight:600}

.pets img{width:min(560px,100%);margin:0 auto 2rem}
.pets p{margin:0;font:500 clamp(1.2rem,3vw,1.7rem) "Playfair Display",serif}
.pets strong{display:block;margin-top:1.4rem;color:var(--burgundy);letter-spacing:.08em}

.reveal{opacity:0;transform:translateY(24px);transition:.8s ease}
.reveal.visible{opacity:1;transform:none}
.heart-burst{position:fixed;inset:0;z-index:9998;pointer-events:none}
.floating-heart{position:absolute;color:var(--burgundy);font-size:1.2rem;animation:floatHeart 1.1s ease-out forwards}
@keyframes floatHeart{from{opacity:1;transform:translate(-50%,-50%) scale(.7)}to{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1.4) rotate(var(--r))}}

@media(max-width:760px){
  .hero{background-position:57% center}
  .hero__spotify{left:1rem;right:auto}
  .countdown{grid-template-columns:repeat(2,1fr)}
  .venue-layout{grid-template-columns:1fr;gap:2rem}
  .venue-divider{height:1px}
  .venue{padding:0 .5rem}
  .editorial-photo{height:68svh}
  .editorial-photo img{object-position:50% 30%}
  .editorial-photo__caption{left:1.2rem;bottom:1.2rem}
  .attendance-options,.form-grid{grid-template-columns:1fr}
  .details-list article{grid-template-columns:50px 1fr}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}


/* V2 */
.kicker--large{font-size:clamp(1rem,2vw,1.25rem);font-weight:600;letter-spacing:.24em}
.kicker--section{font-size:clamp(.9rem,2vw,1.1rem);font-weight:600;letter-spacing:.28em}
.section-heading h2{letter-spacing:.04em}
.details-list article{grid-template-columns:88px 1fr;align-items:center}
.detail-icon{width:64px;height:64px;color:var(--burgundy)}
.detail-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.opening,.venues,.details,.pets,.rsvp{background:var(--ivory)}
.countdown-section,.spotify{background:var(--ivory-2)}
.pets__intro{margin:0 0 .25rem!important}
.pets img{margin-top:2rem;margin-bottom:1.5rem}
.pets__hashtag{font-size:clamp(1.35rem,3vw,2rem);letter-spacing:.16em!important;color:var(--burgundy-deep)!important}
.transition-heart{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;pointer-events:none;opacity:0;visibility:hidden}
.transition-heart.show{opacity:1;visibility:visible}
.transition-heart span{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:var(--burgundy);color:white;font-size:1.3rem;transform:scale(.2)}
.transition-heart.show span{animation:heartExpand .9s ease forwards}
@keyframes heartExpand{0%{transform:scale(.2);opacity:0}35%{transform:scale(1);opacity:1}100%{transform:scale(30);opacity:0}}
.music-modal{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:1rem}
.music-modal[hidden]{display:none}
.music-modal__backdrop{position:absolute;inset:0;background:rgba(20,20,24,.68);backdrop-filter:blur(8px)}
.music-modal__dialog{position:relative;width:min(520px,100%);padding:2.2rem;background:var(--ivory);text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.28)}
.music-modal__dialog h2{margin:.5rem 0 1.5rem;font:400 clamp(2rem,5vw,3.2rem)/1.15 "Italiana",serif}
.music-modal__actions{display:grid;gap:.75rem}
.music-modal__actions a,.music-modal__actions button{width:100%;padding:1rem;border:1px solid var(--burgundy);cursor:pointer;text-decoration:none;font-weight:600}
.music-modal__actions a{background:var(--spotify);border-color:var(--spotify);color:#102316}
.music-modal__actions button{background:transparent;color:var(--burgundy)}
@media(max-width:760px){.details-list article{grid-template-columns:60px 1fr}.detail-icon{width:48px;height:48px}.music-modal__dialog{padding:1.5rem}}


/* =========================
   V3 — editorial refinement
   ========================= */
:root{
  --display:"Cormorant Garamond",serif;
}

body{
  background:var(--ivory);
}

.hero{
  background-position:center 42%;
  background-attachment:scroll;
}
.hero__content{
  max-width:980px;
}
.hero h1{
  font-family:var(--display);
  font-weight:400;
  letter-spacing:-.035em;
}
.hero h1 em{
  font-family:var(--display);
}
.hero__date{
  letter-spacing:.42em;
}
.hero__cta{
  transition:background .35s ease,color .35s ease,transform .35s ease;
}
.hero__cta:hover{
  background:rgba(255,255,255,.95);
  color:var(--burgundy);
  transform:translateY(-2px);
}

.section-heading h2,
.pets h2,
.dress h2,
.spotify-after-rsvp h2,
.music-modal__dialog h2{
  font-family:var(--display);
  font-weight:500;
  letter-spacing:.02em;
}
.section-heading h2{
  font-size:clamp(2.8rem,5.5vw,4.8rem);
}
.opening__text{
  font-family:var(--display);
  font-weight:500;
  font-size:clamp(1.35rem,2.6vw,1.8rem);
}
.script{
  font-family:"Playfair Display",serif;
}
.countdown strong,
.venue__time{
  font-family:var(--display);
  font-style:normal;
  font-weight:500;
  letter-spacing:-.03em;
}
.venue__time{
  font-size:clamp(3.5rem,7vw,5.4rem);
}
.venue__label{
  margin:0 0 1rem;
  color:var(--burgundy);
  font:600 clamp(1.05rem,2vw,1.35rem)/1.2 "Manrope",sans-serif;
  letter-spacing:.16em;
}
.venue__intro{
  font-family:var(--display);
  font-size:clamp(1.25rem,2vw,1.55rem);
}
.venue h3:not(.venue__label){
  font-family:var(--display);
  font-size:clamp(1.45rem,2.3vw,1.85rem);
}
.venues{
  padding-top:clamp(5rem,8vw,7rem);
  padding-bottom:clamp(5rem,8vw,7rem);
}
.venue-layout{
  gap:clamp(2rem,5vw,4.5rem);
}
.venue{
  padding-inline:clamp(.5rem,2vw,2rem);
}

.editorial-photo{
  width:100%;
  height:min(88vh,900px);
  margin:0;
}
.editorial-photo img{
  object-position:center 34%;
  transform:scale(1.01);
  transition:transform 1.2s ease;
}
.editorial-photo.visible img{
  transform:scale(1.035);
}

.details{
  padding-top:clamp(5rem,8vw,7rem);
}
.details-list{
  max-width:980px;
  margin:auto;
}
.details-list article{
  grid-template-columns:88px 1fr;
  gap:2rem;
  padding:2.4rem 0;
}
.details-list h3{
  font-family:var(--display);
  font-size:clamp(1.65rem,2.7vw,2.15rem);
  font-weight:600;
}
.details-list p{
  font-size:clamp(1rem,1.7vw,1.18rem);
}
.detail-icon{
  width:58px;
  height:58px;
}

.dress{
  padding:clamp(5.5rem,9vw,8rem) 0;
}
.dress h2{
  font-size:clamp(2.8rem,5.8vw,4.8rem);
}
.dress p{
  max-width:900px;
  margin-inline:auto;
  font-family:var(--display);
  font-size:clamp(1.3rem,2.5vw,1.75rem);
  font-weight:500;
}

.rsvp{
  padding-top:clamp(5rem,8vw,7rem);
  padding-bottom:clamp(4rem,7vw,6rem);
}
.rsvp .section-heading{
  margin-bottom:2rem;
}
.rsvp .section-heading h2{
  max-width:980px;
  margin-inline:auto;
  font-size:clamp(2.7rem,5vw,4.4rem);
}
.rsvp-deadline{
  font-size:clamp(1rem,1.6vw,1.15rem);
}
form{
  border:1px solid rgba(123,23,51,.16);
  background:rgba(255,255,255,.58);
  box-shadow:0 18px 60px rgba(74,47,57,.06);
  padding:clamp(1.5rem,4vw,3rem);
}
.attendance-card{
  min-height:150px;
  border-color:rgba(45,45,49,.14);
}
.attendance-card span{
  font-size:clamp(1rem,1.8vw,1.2rem);
}
.attendance-card:has(input:checked){
  background:#fff7f9;
  border-color:var(--burgundy);
}
.form-grid{
  gap:1.25rem;
}
input,select,textarea{
  border-color:rgba(45,45,49,.16);
}
.submit-btn{
  margin-top:1rem;
  transition:background .25s ease,transform .25s ease;
}
.submit-btn:hover{
  background:var(--burgundy-deep);
  transform:translateY(-1px);
}
.rsvp-success{
  margin-top:1.5rem;
  padding:2rem 1.5rem;
  background:var(--burgundy);
  color:white;
  text-align:center;
}
.rsvp-success__eyebrow{
  margin:0 0 .35rem;
  text-transform:uppercase;
  letter-spacing:.2em;
  font-size:.8rem;
}
.rsvp-success h3{
  margin:0;
  font-family:var(--display);
  font-size:clamp(2rem,4vw,3rem);
  font-weight:500;
}

.spotify-after-rsvp{
  padding:clamp(4rem,7vw,6rem) 0 clamp(3rem,5vw,4.5rem);
  background:var(--ivory);
  border-top:1px solid var(--line);
}
.spotify-after-rsvp[hidden]{
  display:none;
}
.spotify-logo{
  width:54px;
  height:54px;
  margin:0 auto 1.25rem;
  color:var(--burgundy);
}
.spotify-logo svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
}
.spotify-logo circle{
  fill:none;
}
.spotify-after-rsvp h2{
  margin:0 auto 1.6rem;
  max-width:820px;
  font-size:clamp(2rem,4.8vw,3.8rem);
  line-height:1.12;
}
.spotify-after-rsvp a{
  display:inline-flex;
  padding:.95rem 1.5rem;
  border:1px solid var(--burgundy);
  color:var(--burgundy);
  text-decoration:none;
  font-weight:600;
  border-radius:999px;
  transition:.25s ease;
}
.spotify-after-rsvp a:hover{
  background:var(--burgundy);
  color:white;
}
.after-rsvp-hashtag{
  margin:2rem 0 0;
  color:var(--burgundy);
  font-weight:600;
  font-size:clamp(1.25rem,2.2vw,1.7rem);
  letter-spacing:.08em;
}

.pets{
  padding-top:clamp(3rem,5vw,4rem);
  padding-bottom:clamp(5rem,8vw,7rem);
}
.pets__intro{
  font-family:var(--display)!important;
  font-size:clamp(1.6rem,3vw,2.3rem)!important;
  margin-bottom:1.4rem!important;
}
.pets img{
  width:min(480px,88%);
  margin:0 auto 1.6rem;
  filter:grayscale(18%) saturate(72%) brightness(.94);
  opacity:.95;
}
.pets h2{
  font-size:clamp(2.6rem,5vw,4.2rem);
  margin-top:.4rem;
}

.music-modal__dialog{
  border:1px solid rgba(123,23,51,.16);
}
.music-modal__dialog h2{
  font-size:clamp(2rem,4.5vw,3rem);
}

.reveal{
  transition:opacity .9s ease,transform .9s cubic-bezier(.22,1,.36,1);
}

@media(max-width:760px){
  .hero{
    background-position:56% center;
  }
  .editorial-photo{
    height:70svh;
  }
  .editorial-photo img{
    object-position:51% 30%;
  }
  .venue-layout{
    gap:2.5rem;
  }
  .venue__label{
    font-size:1.05rem;
  }
  .details-list article{
    grid-template-columns:56px 1fr;
    gap:1rem;
    padding:1.8rem 0;
  }
  .detail-icon{
    width:44px;
    height:44px;
  }
  form{
    padding:1.2rem;
  }
  .attendance-card{
    min-height:120px;
  }
}


/* ============================================================
   GUDUKAI4LIFE V3.2
   Hero preserved; refined editorial rhythm elsewhere.
   ============================================================ */

/* HERO: restore the exact light V2 character */
.hero h1{
  font-family:"Italiana",serif !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
  line-height:.82 !important;
}
.hero h1 em{
  font-family:"Playfair Display",serif !important;
  font-style:italic;
  font-weight:500;
}
.hero__date{
  font-size:clamp(1.05rem,1.45vw,1.28rem);
  letter-spacing:.30em;
}

/* Personal greeting */
.script{
  font-size:clamp(2.2rem,4.5vw,3.6rem);
  line-height:1.15;
}

/* Uniform slow editorial reveal */
.reveal{
  opacity:0;
  transform:translateY(20px);
  transition:
    opacity 1.15s cubic-bezier(.22,1,.36,1),
    transform 1.15s cubic-bezier(.22,1,.36,1);
}
.reveal.visible{
  opacity:1;
  transform:translateY(0);
}

/* Headings: Lithuanian-friendly font only outside the hero */
.section-heading h2,
.dress h2,
.pets h2,
.spotify-after-rsvp h2,
.countdown strong,
.venue__time{
  font-family:"Cormorant Garamond",serif !important;
}
.section-heading h2{
  font-size:clamp(3rem,4.6vw,5rem);
  font-weight:500;
  letter-spacing:.035em;
}

/* Venue hierarchy and icons */
.venue-icon{
  width:92px;
  height:74px;
  margin:0 auto .65rem;
  color:var(--burgundy);
}
.venue-icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:2.25;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.venue__label{
  margin:0 0 1rem;
  font:600 clamp(1.45rem,1.8vw,1.8rem)/1.2 "Cormorant Garamond",serif;
  letter-spacing:.10em;
  color:var(--burgundy);
}
.venue__intro{
  font-size:clamp(1.25rem,1.55vw,1.55rem);
}
.venue__time{
  font-size:clamp(4.2rem,5.6vw,5.9rem);
  font-style:normal;
  letter-spacing:-.02em;
}
.venue h3:not(.venue__label){
  font-size:clamp(1.45rem,1.8vw,1.85rem);
}
.venue p,
.venue a,
.soft{
  font-size:clamp(1rem,1.1vw,1.12rem);
}

/* Invitation-style icons */
.detail-icon{
  width:68px;
  height:68px;
}
.detail-icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Colour photo: never distort or radically crop on desktop */
.editorial-photo{
  width:min(1160px,calc(100% - 2rem));
  height:auto;
  margin-inline:auto;
  overflow:hidden;
}
.editorial-photo img{
  width:100%;
  height:auto;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center;
  transform:none !important;
}

/* RSVP */
.rsvp{
  padding-bottom:clamp(3.5rem,6vw,5.5rem);
}
.rsvp .section-heading h2{
  font-size:clamp(2.9rem,4.5vw,4.6rem);
}
form{
  box-shadow:0 18px 55px rgba(80,42,55,.055);
}
.form-status{
  min-height:1.6rem;
}

/* Spotify appears only after positive RSVP */
.spotify-after-rsvp{
  padding:clamp(3.5rem,6vw,5rem) 0;
}
.spotify-after-rsvp h2{
  font-size:clamp(2.25rem,4.2vw,3.8rem);
}
.spotify-logo{
  color:#5f5d60;
}
.after-rsvp-hashtag{
  margin-top:2rem;
  font-size:clamp(1.4rem,2.4vw,1.9rem);
  font-weight:600;
  color:var(--burgundy);
}

/* Pets: compact, calm epilogue */
.pets{
  padding-top:clamp(2.8rem,4vw,4rem);
}
.pets__intro{
  font-size:clamp(1.45rem,2.6vw,2.1rem) !important;
}
.pets img{
  width:min(460px,86%);
  filter:grayscale(18%) saturate(70%) contrast(.92) brightness(.96);
  opacity:.94;
}
.pets h2{
  font-size:clamp(2.6rem,4.5vw,4.2rem);
}

/* Prevent full-width desktop layouts from making text feel tiny */
@media(min-width:1280px){
  .wide{width:min(1240px,calc(100% - 5rem))}
  .narrow{width:min(820px,calc(100% - 3rem))}
  .venue-layout{gap:4rem}
}

@media(max-width:760px){
  .hero__date{
    font-size:1rem;
    letter-spacing:.25em;
  }
  .script{
    font-size:2.15rem;
  }
  .venue-icon{
    width:78px;
    height:64px;
  }
  .venue__label{
    font-size:1.45rem;
  }
  .editorial-photo{
    width:100%;
  }
  .detail-icon{
    width:52px;
    height:52px;
  }
}


/* ============================================================
   GUDUKAI4LIFE V5 — stable fixes
   ============================================================ */

/* Hero: wide desktop focuses on faces instead of bodies. */
.hero{
  background-position:center 10% !important;
}
.hero h1{
  font-family:"Italiana",serif !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
  line-height:.82 !important;
}
.hero h1 em{
  font-family:"Playfair Display",serif !important;
  font-style:italic;
  font-weight:500;
}
.hero__date{
  font-size:clamp(1.05rem,1.45vw,1.28rem);
  letter-spacing:.30em;
}

/* Personalised salutation */
.script{
  font-size:clamp(2.2rem,4.4vw,3.55rem);
}

/* Stable two-column venue structure. */
.venue-layout{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr) !important;
  gap:clamp(2rem,4vw,4rem) !important;
  align-items:stretch;
}
.venue{
  display:block !important;
  width:auto !important;
  min-width:0;
}
.venue-divider{
  display:block !important;
  width:1px;
  background:var(--line);
}
.venue-icon{
  width:92px;
  height:76px;
  margin:0 auto .8rem;
  color:var(--burgundy);
}
.venue-icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:2.05;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.venue__label{
  margin:0 0 1rem;
  color:var(--burgundy);
  font:600 clamp(1.45rem,1.8vw,1.82rem)/1.2 "Cormorant Garamond",serif !important;
  letter-spacing:.10em;
}
.venue__intro{
  font-size:clamp(1.22rem,1.5vw,1.5rem);
}
.venue__time{
  font-size:clamp(4rem,5.4vw,5.7rem);
}

/* Second image: full width, horizontal, faces preserved, soft ivory fade. */
.editorial-photo{
  position:relative;
  width:100% !important;
  max-width:none !important;
  height:auto !important;
  aspect-ratio:16/9;
  margin:0 !important;
  overflow:hidden;
}
.editorial-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 13% !important;
  transform:none !important;
  filter:saturate(.94) contrast(.98);
}
.editorial-photo::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:22%;
  background:linear-gradient(to bottom,rgba(251,250,247,0),var(--ivory));
  pointer-events:none;
}

/* All three congratulation rows must remain visible. */
.details-list{
  display:block !important;
}
.details-list article{
  display:grid !important;
  grid-template-columns:88px minmax(0,1fr) !important;
  align-items:center;
  gap:2rem;
  opacity:1 !important;
  visibility:visible !important;
}
.detail-icon{
  width:68px;
  height:68px;
  color:var(--burgundy);
}
.detail-icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.85;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Native Netlify submission target. */
.hidden-submit-frame{
  position:absolute;
  width:1px;
  height:1px;
  border:0;
  opacity:0;
  pointer-events:none;
}

/* Slow editorial entrance. */
.reveal{
  opacity:0;
  transform:translateY(20px);
  transition:
    opacity 1.05s cubic-bezier(.22,1,.36,1),
    transform 1.05s cubic-bezier(.22,1,.36,1);
}
.reveal.visible{
  opacity:1;
  transform:translateY(0);
}

@media(max-width:760px){
  .hero{
    background-position:56% center !important;
  }
  .venue-layout{
    grid-template-columns:1fr !important;
    gap:2.4rem !important;
  }
  .venue-divider{
    width:100%;
    height:1px;
  }
  .editorial-photo{
    aspect-ratio:4/5;
  }
  .editorial-photo img{
    object-position:center 20% !important;
  }
  .details-list article{
    grid-template-columns:54px minmax(0,1fr) !important;
    gap:1rem;
  }
  .detail-icon{
    width:48px;
    height:48px;
  }
}

/* V5.1 — cropped colour photo supplied by Vaiva */
.editorial-photo{
  width:min(1280px,calc(100% - 2rem)) !important;
  margin-inline:auto !important;
  aspect-ratio:16/9;
}
.editorial-photo img{
  object-position:center 42% !important;
}
@media(max-width:760px){
  .editorial-photo{
    width:100% !important;
    aspect-ratio:4/5;
  }
  .editorial-photo img{
    object-position:center 38% !important;
  }
}


/* V5.2 hero image tuning */
.hero{
  background-position:center 26% !important;
  background-size:cover !important;
}
@media(max-width:760px){
  .hero{
    background-position:58% 24% !important;
  }
}


/* ============================================================
   GUDUKAI4LIFE V6
   ============================================================ */

/* Venue subheads: emotionally important, therefore clearly readable. */
.venue__intro{
  font-size:clamp(1.25rem,1.55vw,1.5rem) !important;
  line-height:1.45;
  font-weight:500;
  margin-bottom:clamp(1.8rem,2.5vw,2.6rem);
}
.venue__label{
  margin-bottom:clamp(1.25rem,1.8vw,1.8rem) !important;
}
.venue__time{
  margin-top:0 !important;
}

/* Cleaner, invitation-like icons */
.venue-icon{
  width:96px !important;
  height:78px !important;
}
.venue-icon svg,
.detail-icon svg{
  stroke-width:1.85 !important;
}

/* Second photo: seamless mini-hero, no visible frame. */
.editorial-photo{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  border:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
  aspect-ratio:16/8.5 !important;
  overflow:hidden;
}
.editorial-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 40% !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  filter:saturate(.98) contrast(.99) !important;
}
.editorial-photo::after{
  height:24% !important;
  background:linear-gradient(to bottom,rgba(251,250,247,0),var(--ivory)) !important;
}

/* Congratulation icons: one coherent visual system. */
.details-list article{
  grid-template-columns:92px minmax(0,1fr) !important;
  gap:2rem !important;
}
.detail-icon{
  width:72px !important;
  height:72px !important;
}

/* Pets: restore life and colour. */
.pets img{
  filter:none !important;
  opacity:1 !important;
  border-radius:12px;
  box-shadow:0 16px 40px rgba(57,37,45,.10);
}
.pets__grid{
  gap:3px !important;
}

/* Consistent section rhythm. */
.section,
.venue-section,
.details,
.dress,
.rsvp,
.spotify-after-rsvp,
.pets{
  padding-top:clamp(4.5rem,7vw,7rem);
  padding-bottom:clamp(4.5rem,7vw,7rem);
}

/* Refined interactions. */
a,
button{
  transition:color .28s ease,border-color .28s ease,background-color .28s ease,opacity .28s ease,transform .28s ease;
}
a:hover,
button:hover{
  transform:translateY(-1px);
}

@media(max-width:760px){
  .venue__intro{
    font-size:1.15rem !important;
    margin-bottom:1.8rem;
  }
  .venue-icon{
    width:82px !important;
    height:68px !important;
  }
  .editorial-photo{
    aspect-ratio:4/5 !important;
  }
  .editorial-photo img{
    object-position:center 38% !important;
  }
  .details-list article{
    grid-template-columns:56px minmax(0,1fr) !important;
    gap:1rem !important;
  }
  .detail-icon{
    width:50px !important;
    height:50px !important;
  }
}


/* ============================================================
   GUDUKAI4LIFE V7
   ============================================================ */

.hero__date{
  font-size:clamp(1.35rem,2vw,1.85rem) !important;
  letter-spacing:.28em !important;
}
.hero__cta,
#openInvitation{
  min-width:250px !important;
  min-height:70px !important;
  font-size:1.12rem !important;
}

/* Stronger venue intro hierarchy */
.venue__intro{
  font-size:clamp(1.45rem,1.9vw,1.85rem) !important;
  line-height:1.42 !important;
  font-weight:500 !important;
  margin-bottom:clamp(2rem,3vw,3rem) !important;
}
.venue-icon{
  width:102px !important;
  height:82px !important;
}
.venue-icon svg{
  stroke-width:1.75 !important;
}

/* More polished greeting icons */
.detail-icon{
  width:76px !important;
  height:76px !important;
}
.detail-icon svg{
  stroke-width:1.65 !important;
}

/* Restore initial music choice */
.music-modal[hidden]{
  display:none !important;
}
.music-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:grid;
  place-items:center;
  padding:1.25rem;
  opacity:0;
  transition:opacity .28s ease;
}
.music-modal.is-open{
  opacity:1;
}
.music-modal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(24,20,22,.72);
  backdrop-filter:blur(9px);
}
.music-modal__card{
  position:relative;
  width:min(540px,100%);
  padding:clamp(2rem,5vw,3.5rem);
  text-align:center;
  background:var(--ivory);
  border:1px solid rgba(131,22,58,.18);
  box-shadow:0 28px 80px rgba(0,0,0,.28);
}
.music-modal__logo{
  width:54px;
  height:54px;
  margin:0 auto 1.2rem;
  color:var(--burgundy);
}
.music-modal__logo svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
}
.music-modal__card h2{
  margin:0 0 .85rem;
  color:var(--burgundy);
  font-family:"Cormorant Garamond",serif;
  font-size:clamp(2rem,4vw,3rem);
  font-weight:500;
}
.music-modal__card p{
  margin:0 auto 1.8rem;
  max-width:34rem;
}
.music-modal__actions{
  display:flex;
  justify-content:center;
  gap:.9rem;
  flex-wrap:wrap;
}
.music-choice{
  min-width:170px;
  padding:.95rem 1.4rem;
  border:1px solid var(--burgundy);
  background:transparent;
  color:var(--burgundy);
  cursor:pointer;
}
.music-choice--primary{
  background:var(--burgundy);
  color:white;
}

@media(max-width:760px){
  .hero__date{
    font-size:1.18rem !important;
    letter-spacing:.22em !important;
  }
  .hero__cta,
  #openInvitation{
    min-width:220px !important;
    min-height:62px !important;
  }
  .venue__intro{
    font-size:1.25rem !important;
  }
  .venue-icon{
    width:88px !important;
    height:72px !important;
  }
  .detail-icon{
    width:54px !important;
    height:54px !important;
  }
  .music-choice{
    width:100%;
  }
}


/* V7.1 — Spotify track opens reliably in a new tab */
.music-choice-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}


/* ============================================================
   GUDUKAI4LIFE V8 — final icon and editorial polish
   ============================================================ */

/* Hero date remains clearly visible on desktop and phone. */
.hero__date{
  font-size:clamp(1.55rem,2.25vw,2.05rem) !important;
  letter-spacing:.27em !important;
}

/* Supplied reference-style icons. */
.venue-icon{
  width:108px !important;
  height:92px !important;
}
.venue-icon svg{
  stroke-width:2.15 !important;
  fill:none;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.venue-icon--glasses{
  width:112px !important;
}

/* The emotional subheads should never look like footnotes. */
.venue__intro{
  font-size:clamp(1.65rem,2.15vw,2.05rem) !important;
  line-height:1.35 !important;
  margin-bottom:clamp(2.25rem,3.2vw,3.25rem) !important;
}

/* Second photograph: framed like an editorial plate, fading only at the bottom. */
.editorial-photo{
  width:min(1320px,calc(100% - 3rem)) !important;
  max-width:1320px !important;
  margin-inline:auto !important;
  border:1px solid rgba(111,23,48,.12) !important;
  border-bottom:0 !important;
  aspect-ratio:16/8.7 !important;
  background:var(--ivory);
}
.editorial-photo img{
  object-position:center 39% !important;
}
.editorial-photo::after{
  height:25% !important;
}

/* Invitation-style detail illustrations. */
.detail-icon{
  width:86px !important;
  height:86px !important;
}
.detail-icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.85 !important;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.detail-icon .icon-fill{
  fill:currentColor;
  stroke:currentColor;
}
.detail-icon .icon-fill-soft{
  fill:var(--ivory);
  stroke:currentColor;
}

/* Keep the pet montage vivid and warm. */
.pets img{
  filter:none !important;
  opacity:1 !important;
  box-shadow:0 14px 36px rgba(50,32,38,.08) !important;
}

/* Spotify chooser remains a real link and opens the supplied track. */
.music-choice-link{
  text-decoration:none;
}

@media(max-width:760px){
  .hero__date{
    font-size:1.32rem !important;
    letter-spacing:.22em !important;
  }
  .venue__intro{
    font-size:1.35rem !important;
  }
  .venue-icon{
    width:92px !important;
    height:78px !important;
  }
  .venue-icon--glasses{
    width:98px !important;
  }
  .editorial-photo{
    width:calc(100% - 1.25rem) !important;
    aspect-ratio:4/5 !important;
  }
  .editorial-photo img{
    object-position:center 38% !important;
  }
  .detail-icon{
    width:58px !important;
    height:58px !important;
  }
}


/* ============================================================
   GUDUKAI4LIFE V9 — controlled fixes only
   ============================================================ */

/* 1. Remove the frame around the second photo. Keep only the lower fade. */
.editorial-photo{
  width:100% !important;
  max-width:none !important;
  margin-inline:0 !important;
  border:0 !important;
  border-bottom:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
  aspect-ratio:16/8.7 !important;
  overflow:hidden !important;
}
.editorial-photo img{
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  object-position:center 39% !important;
}
.editorial-photo::after{
  height:24% !important;
  background:linear-gradient(to bottom,rgba(251,250,247,0),var(--ivory)) !important;
}

/* 2. Larger venue headings and a tighter hierarchy. */
.venue__label{
  font-size:clamp(1.9rem,2.45vw,2.45rem) !important;
  line-height:1.15 !important;
  letter-spacing:.095em !important;
  margin-bottom:clamp(1.35rem,1.8vw,1.8rem) !important;
}
.venue__intro{
  font-size:clamp(1.55rem,2vw,1.95rem) !important;
  line-height:1.35 !important;
  margin-bottom:clamp(1.25rem,1.8vw,1.7rem) !important;
}
.venue__time{
  margin-top:0 !important;
}

/* 3. Venue icons: same style, no line connecting the glasses. */
.venue-icon{
  width:108px !important;
  height:92px !important;
}
.venue-icon--glasses{
  width:112px !important;
}
.venue-icon svg{
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:2.05 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}

/* 4. Greeting icons: quieter, cleaner, consistent. */
.detail-icon{
  width:80px !important;
  height:80px !important;
}
.detail-icon svg{
  width:100%;
  height:100%;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.65 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}

@media(max-width:760px){
  .editorial-photo{
    width:100% !important;
    aspect-ratio:4/5 !important;
  }
  .venue__label{
    font-size:1.62rem !important;
  }
  .venue__intro{
    font-size:1.28rem !important;
    margin-bottom:1.25rem !important;
  }
  .venue-icon{
    width:88px !important;
    height:76px !important;
  }
  .venue-icon--glasses{
    width:94px !important;
  }
  .detail-icon{
    width:56px !important;
    height:56px !important;
  }
}


/* ============================================================
   GUDUKAI4LIFE V10 — unified icon family
   ============================================================ */

.venue-icon,
.detail-icon{
  color:var(--burgundy);
}

.venue-icon svg,
.detail-icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:2.05;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.venue-icon{
  width:96px !important;
  height:88px !important;
}

.venue-icon--glasses{
  width:102px !important;
}

.detail-icon{
  width:76px !important;
  height:76px !important;
}

.detail-icon .icon-fill{
  fill:currentColor;
  stroke:currentColor;
}

.detail-icon .icon-mask{
  fill:var(--ivory);
  stroke:currentColor;
}

/* Keep icon rows visually calm and aligned. */
.details-list article{
  grid-template-columns:88px minmax(0,1fr) !important;
  align-items:center !important;
}

/* No other V9 styles are changed. */
@media(max-width:760px){
  .venue-icon{
    width:84px !important;
    height:76px !important;
  }
  .venue-icon--glasses{
    width:90px !important;
  }
  .detail-icon{
    width:54px !important;
    height:54px !important;
  }
  .details-list article{
    grid-template-columns:58px minmax(0,1fr) !important;
  }
}


/* ============================================================
   GUDUKAI4LIFE V11 — unified greeting icons
   ============================================================ */

.details-list .detail-icon svg{
  stroke-width:2.05 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}

.details-list .detail-icon .icon-fill{
  fill:currentColor !important;
  stroke:currentColor !important;
}

/* Keep all three icons optically balanced. */
.details-list article:nth-child(1) .detail-icon{
  width:76px !important;
  height:76px !important;
}
.details-list article:nth-child(2) .detail-icon{
  width:72px !important;
  height:72px !important;
}
.details-list article:nth-child(3) .detail-icon{
  width:72px !important;
  height:72px !important;
}

@media(max-width:760px){
  .details-list article:nth-child(1) .detail-icon,
  .details-list article:nth-child(2) .detail-icon,
  .details-list article:nth-child(3) .detail-icon{
    width:54px !important;
    height:54px !important;
  }
}


/* ============================================================
   GUDUKAI4LIFE V12 — custom icons based on approved visual
   ============================================================ */

.details-list .detail-icon{
  width:74px !important;
  height:74px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:var(--burgundy) !important;
}

.details-list .detail-icon svg{
  width:100% !important;
  height:100% !important;
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:1.7 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}

.details-list .detail-icon .heart-cover{
  fill:var(--ivory) !important;
  stroke:currentColor !important;
}

.details-list .detail-icon .face-dot{
  fill:currentColor !important;
  stroke:none !important;
}

/* Override older icon-size rules so the set stays visually consistent. */
.details-list article:nth-child(1) .detail-icon,
.details-list article:nth-child(2) .detail-icon,
.details-list article:nth-child(3) .detail-icon{
  width:74px !important;
  height:74px !important;
}

@media(max-width:760px){
  .details-list .detail-icon,
  .details-list article:nth-child(1) .detail-icon,
  .details-list article:nth-child(2) .detail-icon,
  .details-list article:nth-child(3) .detail-icon{
    width:52px !important;
    height:52px !important;
  }
}


/* ============================================================
   GUDUKAI4LIFE V13 — flower and baby icon correction
   ============================================================ */

/* Match the thinner line weight of rings and glasses. */
.details-list article:nth-child(2) .detail-icon svg,
.details-list article:nth-child(3) .detail-icon svg{
  stroke-width:1.55 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
  fill:none !important;
}

/* Keep both icons optically balanced with the envelope. */
.details-list article:nth-child(2) .detail-icon,
.details-list article:nth-child(3) .detail-icon{
  width:72px !important;
  height:72px !important;
}

.details-list article:nth-child(3) .detail-icon .face-dot{
  fill:currentColor !important;
  stroke:none !important;
}

@media(max-width:760px){
  .details-list article:nth-child(2) .detail-icon,
  .details-list article:nth-child(3) .detail-icon{
    width:52px !important;
    height:52px !important;
  }
}


/* ============================================================
   GUDUKAI4LIFE V13.1 — icon proportion correction only
   ============================================================ */

/* Make flower and baby icons optically equal to the envelope. */
.details-list article:nth-child(2) .detail-icon,
.details-list article:nth-child(3) .detail-icon{
  width:82px !important;
  height:82px !important;
}

@media(max-width:760px){
  .details-list article:nth-child(2) .detail-icon,
  .details-list article:nth-child(3) .detail-icon{
    width:58px !important;
    height:58px !important;
  }
}


/* ============================================================
   GUDUKAI4LIFE V14 — Spotify polish + reliable Netlify Forms
   ============================================================ */

/* A subtly distinct card so the Spotify section pops without changing the rest of the page. */
.spotify-after-rsvp{
  background:#f0f1ee !important;
  padding:clamp(4.5rem,8vw,7rem) 1rem !important;
  margin:0 !important;
}

.spotify-after-rsvp > .narrow{
  width:min(900px,100%) !important;
  padding:clamp(2.5rem,5vw,4.25rem) clamp(1.25rem,4vw,3.5rem) !important;
  background:#f5f6f3 !important;
  border:1px solid rgba(45,45,49,.08) !important;
  border-radius:24px !important;
}

.spotify-after-rsvp h2{
  max-width:860px !important;
  margin:0 auto 1.8rem !important;
  font-size:clamp(2.15rem,4.8vw,4rem) !important;
  line-height:1.13 !important;
  text-wrap:balance;
}

.spotify-after-rsvp a{
  background:#1DB954 !important;
  color:#fff !important;
  border:0 !important;
  padding:1rem 1.65rem !important;
  font-weight:700 !important;
  box-shadow:0 12px 28px rgba(29,185,84,.22) !important;
}

.spotify-after-rsvp a:hover{
  background:#1ed760 !important;
  transform:translateY(-1px);
}

.after-rsvp-hashtag{
  margin:clamp(2rem,4vw,3.2rem) auto clamp(1.5rem,3vw,2.5rem) !important;
  font-size:clamp(2.5rem,6vw,5.4rem) !important;
  line-height:1 !important;
  font-family:"Italiana",serif !important;
  color:var(--burgundy) !important;
  text-align:center !important;
}

/* Bigger confirmation eyebrow after RSVP. */
.rsvp-success__eyebrow{
  font-size:clamp(1.15rem,2vw,1.5rem) !important;
  letter-spacing:.16em !important;
  font-weight:700 !important;
  margin-bottom:.8rem !important;
}

/* Hidden Netlify deploy-time schema must never affect layout. */
#netlifyFormSchema{
  display:none !important;
}

@media(max-width:760px){
  .spotify-after-rsvp{
    padding:3rem .75rem !important;
  }

  .spotify-after-rsvp > .narrow{
    border-radius:18px !important;
    padding:2.4rem 1rem !important;
  }

  .spotify-after-rsvp h2{
    font-size:clamp(2rem,10vw,3rem) !important;
  }
}


/* ============================================================
   GUDUKAI4LIFE V15 — RSVP pause + hashtag typography
   ============================================================ */

.after-rsvp-hashtag{
  font-family:"Inter",Arial,sans-serif !important;
  font-size:clamp(2.35rem,5vw,4.5rem) !important;
  font-weight:700 !important;
  letter-spacing:.055em !important;
  line-height:1.05 !important;
  text-transform:uppercase !important;
  color:var(--burgundy) !important;
  text-align:center !important;
}

@media(max-width:760px){
  .after-rsvp-hashtag{
    font-size:clamp(2rem,10vw,3rem) !important;
    letter-spacing:.035em !important;
  }
}


/* ============================================================
   GUDUKAI4LIFE V16 — stable RSVP confirmation flow
   ============================================================ */

/* Prevent browser scroll anchoring from fighting the controlled animation. */
#rsvp,
#rsvpForm,
#rsvpSuccess,
#spotifyAfterRsvp{
  overflow-anchor:none;
}

#rsvpForm.is-submitted{
  transition:min-height .35s ease;
}

#rsvpSuccess{
  scroll-margin-top:24px;
}

#spotifyAfterRsvp{
  scroll-margin-top:24px;
}

/* The confirmation appears calmly while the form keeps its previous height. */
#rsvpSuccess:not([hidden]){
  animation:rsvp-confirmation-in .55s cubic-bezier(.22,1,.36,1) both;
}

@keyframes rsvp-confirmation-in{
  from{
    opacity:0;
    transform:translateY(14px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

@media(max-width:760px){
  #rsvpSuccess{
    padding-top:1rem;
  }
}


/* V17 RSVP refinement */
#rsvpSuccess{
  max-width:760px;
  margin:1.5rem auto 0;
}
#rsvpSuccess .success-card,
#rsvpSuccess .success-message{
  padding:2rem !important;
}
#rsvpSuccess::after{
  content:"Tai dar ne pabaiga ↓\ASlinkite žemyn";
  white-space:pre;
  display:block;
  text-align:center;
  margin:1.25rem auto .25rem;
  font-family:"Inter",sans-serif;
  font-size:.95rem;
  color:#7d7d7d;
  line-height:1.6;
  letter-spacing:.03em;
}
#spotifyAfterRsvp{
  margin-top:2rem !important;
}


/* ============================================================
   GUDUKAI4LIFE V18 — mobile RSVP viewport stabilization
   ============================================================ */

#rsvpForm.is-submitted{
  min-height:0 !important;
}

#rsvpSuccess{
  max-width:680px !important;
  margin:1rem auto 0 !important;
}

#rsvpSuccess .success-card,
#rsvpSuccess .success-message{
  padding:1.45rem 1.25rem !important;
}

#rsvpSuccess::after{
  margin:.9rem auto 0 !important;
  font-size:.9rem !important;
  line-height:1.45 !important;
}

#spotifyAfterRsvp{
  margin-top:1.15rem !important;
}

@media(max-width:760px){
  #rsvp{
    overflow-anchor:none;
  }

  #rsvpForm,
  #rsvpSuccess,
  #spotifyAfterRsvp{
    overflow-anchor:none;
  }

  #rsvpSuccess{
    width:calc(100% - 1rem) !important;
    margin:.65rem auto 0 !important;
  }

  #rsvpSuccess .success-card,
  #rsvpSuccess .success-message{
    padding:1.15rem .9rem !important;
  }

  #rsvpSuccess::after{
    content:"Tai dar ne pabaiga ↓\ASlinkite žemyn";
    white-space:pre;
    margin:.7rem auto 0 !important;
    font-size:.82rem !important;
  }

  #spotifyAfterRsvp{
    margin-top:.75rem !important;
  }
}
