:root{
  --navy:#061426;
  --navy2:#0b1e33;
  --gold:#d9aa4f;
  --gold2:#ffe39a;
  --ivory:#fff8e8;
  --white:#fffdf7;
  --muted:rgba(255,253,247,.76);
  --glass:rgba(5,15,29,.72);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--white);
  font-family: Georgia, "Times New Roman", serif;
  background:
    radial-gradient(circle at 50% 20%, rgba(45,98,155,.25), transparent 35%),
    linear-gradient(180deg,#030a14 0%, var(--navy) 38%, #03101f 100%);
  overflow-x:hidden;
}
body:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 20% 30%, rgba(217,170,79,.12), transparent 18%),
    radial-gradient(circle at 85% 55%, rgba(68,133,220,.10), transparent 20%);
  z-index:-2;
}
.ambient{
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.28;
  background-image:
    linear-gradient(90deg, transparent 0 48%, rgba(217,170,79,.16) 49%, transparent 50%),
    radial-gradient(circle, rgba(255,227,154,.45) 0 1px, transparent 2px);
  background-size:100% 100%, 110px 110px;
  z-index:-1;
}
section{padding:82px 20px}
h1,h2,h3,p{margin:0}
h1,h2{
  color:var(--gold2);
  font-weight:400;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-shadow:0 0 18px rgba(217,170,79,.25);
}
h1{font-size:clamp(3rem,7vw,6.2rem)}
h2{font-size:clamp(2.2rem,5.6vw,4.8rem)}
p{line-height:1.65}
.reveal{opacity:0; transform:translateY(18px); transition:opacity .9s ease, transform .9s ease}
.reveal.in{opacity:1; transform:none}

.music-toggle{
  position:fixed;
  top:18px;
  right:18px;
  z-index:20;
  width:56px;
  height:56px;
  border-radius:50%;
  border:1px solid var(--gold);
  background:rgba(3,10,20,.65);
  color:var(--gold2);
  font-size:25px;
  box-shadow:0 0 22px rgba(217,170,79,.22);
}

.hero{
  min-height:100vh;
  display:grid;
  place-items:center;
  text-align:center;
  padding-top:40px;
}
.hero-inner{width:min(760px,94vw)}
.eyebrow,.section-kicker{
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:.82rem;
  margin-bottom:14px;
}
.subtitle{
  color:var(--muted);
  margin:10px auto 28px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.invitation-frame{
  display:block;
  margin:0 auto;
  padding:10px;
  width:min(430px,88vw);
  border:1px solid rgba(217,170,79,.65);
  border-radius:24px;
  background:linear-gradient(135deg,rgba(217,170,79,.16),rgba(255,255,255,.06));
  box-shadow:0 22px 70px rgba(0,0,0,.55), 0 0 38px rgba(217,170,79,.20);
  cursor:pointer;
}
.invitation-frame img{display:block;width:100%;border-radius:16px}
.tap-note{
  margin-top:14px;
  color:rgba(255,253,247,.62);
  font-size:.9rem;
}

.countdown-section{text-align:center;padding-top:55px}
.countdown{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  width:min(760px,94vw);
  margin:28px auto 24px;
}
.countdown div{
  border:1px solid rgba(217,170,79,.45);
  border-radius:18px;
  padding:22px 10px;
  background:rgba(255,255,255,.04);
  box-shadow:inset 0 0 20px rgba(217,170,79,.05);
}
.countdown span{
  display:block;
  color:var(--gold2);
  font-size:clamp(2rem,5vw,3.7rem);
}
.countdown small{color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.quick-links{
  display:flex;
  gap:12px;
  justify-content:center;
  flex-wrap:wrap;
  width:min(920px,96vw);
  margin:0 auto;
}
.quick-links a,.primary-button{
  color:var(--gold2);
  text-decoration:none;
  border:1px solid rgba(217,170,79,.60);
  border-radius:999px;
  padding:14px 22px;
  background:linear-gradient(135deg,rgba(217,170,79,.18),rgba(255,255,255,.04));
  box-shadow:0 0 18px rgba(217,170,79,.12);
  transition:transform .25s ease, box-shadow .25s ease;
  font:inherit;
  cursor:pointer;
}
.quick-links a:hover,.primary-button:hover{transform:translateY(-2px);box-shadow:0 0 30px rgba(217,170,79,.28)}
.quick-links span,.primary-button span{font-size:.78em;color:var(--muted)}

.story-section{
  position:relative;
  overflow:hidden;
  padding-top:55px;
}
.story-section:before,.story-section:after{
  content:"";
  position:absolute;
  top:4%;
  bottom:4%;
  width:28%;
  pointer-events:none;
  opacity:.28;
  background:
    radial-gradient(ellipse at 50% 12%, rgba(217,170,79,.22), transparent 28%),
    linear-gradient(transparent, rgba(217,170,79,.10), transparent);
  filter:blur(.2px);
}
.story-section:before{left:-12%}
.story-section:after{right:-12%}
.story-shell{
  position:relative;
  max-width:960px;
  margin:0 auto;
  text-align:center;
}
.story-copy{
  max-width:820px;
  margin:0 auto;
  padding:0 8px;
}
.story-copy h2{margin-bottom:8px}
.gold-line{
  height:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  color:var(--gold2);
  margin-bottom:20px;
}
.gold-line:before,.gold-line:after{
  content:"";
  height:1px;
  width:min(260px,35vw);
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
}
.story-copy p{
  color:rgba(255,253,247,.90);
  font-size:clamp(1rem,2.3vw,1.25rem);
  margin:0 auto 14px;
}
.story-copy.english{margin-top:42px}
.story-copy.english p{color:rgba(255,253,247,.82)}
.glow-line{
  color:var(--gold2)!important;
  margin-top:18px!important;
}
.glow-line span{
  display:inline-block;
  font-size:clamp(2.5rem,9vw,5.8rem);
  font-style:italic;
  line-height:1;
  color:var(--gold2);
  text-shadow:
    0 0 8px rgba(255,227,154,.9),
    0 0 24px rgba(217,170,79,.55),
    0 0 42px rgba(217,170,79,.32);
  animation:softGlow 3.5s ease-in-out infinite;
}
@keyframes softGlow{
  0%,100%{filter:brightness(1)}
  50%{filter:brightness(1.22)}
}
.story-photo-card{
  width:100vw;
  margin:34px 0 22px;
  margin-left:calc(50% - 50vw);
  border-radius:0;
  overflow:hidden;
  border-top:1px solid rgba(217,170,79,.35);
  border-bottom:1px solid rgba(217,170,79,.35);
  box-shadow:
    0 18px 65px rgba(0,0,0,.58),
    0 0 32px rgba(217,170,79,.12);
  background:#020914;
  position:relative;
}
.story-photo-card:before{
  content:none;
}
.story-photo-card img{
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  object-fit:contain;
  transform:none;
  filter:none;
}

.details-section,.directions-section,.rsvp-section,footer{text-align:center}
.details-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  max-width:920px;
  margin:32px auto 18px;
}
.details-grid article,.rsvp-card{
  border:1px solid rgba(217,170,79,.35);
  background:rgba(255,255,255,.045);
  border-radius:24px;
  padding:28px 18px;
  box-shadow:0 14px 45px rgba(0,0,0,.22);
}
.icon{
  display:block;
  color:var(--gold2);
  font-size:2rem;
  margin-bottom:10px;
}
.details-grid h3{color:var(--gold2);font-weight:400;letter-spacing:.08em;text-transform:uppercase}
.details-grid p,.small-note,.rsvp-intro{color:var(--muted);margin-top:10px}
.details-grid span,.rsvp-intro span{color:rgba(255,253,247,.58)}

.rsvp-card{
  max-width:650px;
  margin:30px auto 0;
  text-align:left;
}
.rsvp-card label{
  display:block;
  color:var(--gold2);
  margin-bottom:18px;
}
input,select,textarea{
  width:100%;
  margin-top:8px;
  border:1px solid rgba(217,170,79,.50);
  border-radius:16px;
  padding:15px 16px;
  background:rgba(3,10,20,.72);
  color:var(--white);
  font:inherit;
  outline:none;
}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px rgba(217,170,79,.16)}
.guest-counter-wrap{
  margin:20px 0 22px;
  padding:20px;
  border:1px solid rgba(217,170,79,.30);
  border-radius:20px;
  background:rgba(255,255,255,.035);
}
.guest-counter-wrap h3{
  text-align:center;
  color:var(--gold2);
  font-weight:400;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:18px;
}
.guest-counter-wrap h3 span,.counter-row small{color:rgba(255,253,247,.62);font-size:.75em}
.counter-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 0;
  border-top:1px solid rgba(217,170,79,.15);
}
.counter-controls{
  display:flex;
  align-items:center;
  gap:12px;
}
.counter-controls button{
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid var(--gold);
  background:rgba(217,170,79,.08);
  color:var(--gold2);
  font-size:1.2rem;
  cursor:pointer;
}
.counter-controls strong{
  min-width:24px;
  text-align:center;
  font-size:1.2rem;
}
.submit-button{
  width:100%;
  border-radius:18px;
  margin-top:6px;
}
.rsvp-private-note{
  text-align:center;
  margin-top:18px;
  color:rgba(255,253,247,.72);
  font-size:.95rem;
}
.rsvp-private-note span{color:rgba(255,253,247,.54)}
.rsvp-confirmation{
  opacity:0;
  transform:translateY(12px);
  transition:all .7s ease;
  text-align:center;
  margin-top:22px;
  color:var(--white);
  padding:18px;
  border-radius:18px;
}
.rsvp-confirmation.show{
  opacity:1;
  transform:translateY(0);
  background:rgba(217,170,79,.08);
  border:1px solid rgba(217,170,79,.28);
}
.confirm-title{
  display:block;
  color:var(--gold2);
  font-size:1.15rem;
  animation:confirmGlow 2.8s ease-in-out infinite;
}
@keyframes confirmGlow{
  0%,100%{text-shadow:0 0 0 rgba(217,170,79,0)}
  50%{text-shadow:0 0 12px rgba(217,170,79,.55)}
}

.modal{
  position:fixed;
  inset:0;
  z-index:50;
  background:rgba(0,0,0,.88);
  display:none;
  place-items:center;
  padding:18px;
}
.modal.open{display:grid}
.modal img{
  max-width:min(94vw,780px);
  max-height:92vh;
  border-radius:20px;
  box-shadow:0 0 60px rgba(217,170,79,.20);
}
.modal-close{
  position:fixed;
  top:18px;
  right:20px;
  z-index:51;
  width:48px;
  height:48px;
  border-radius:50%;
  border:1px solid var(--gold);
  background:rgba(3,10,20,.75);
  color:var(--gold2);
  font-size:2rem;
}
footer{padding:36px 20px;color:rgba(255,253,247,.55)}

@media(max-width:720px){
  section{padding:62px 16px}
  .countdown{grid-template-columns:repeat(2,1fr)}
  .details-grid{grid-template-columns:1fr}
  .story-copy p{font-size:1rem;line-height:1.58}
  .story-photo-card{border-radius:0}
  .quick-links a{width:calc(50% - 8px);padding:12px 10px}
  .counter-row{align-items:flex-start}
}


/* ===== FINAL ULTRA POLISH: transitions + luxury feel ===== */

/* Softer story section depth */
.story-section {
  background:
    radial-gradient(ellipse at center top, rgba(217,170,79,.075), transparent 28%),
    radial-gradient(ellipse at center 42%, rgba(22,88,160,.16), transparent 34%),
    linear-gradient(180deg, rgba(2,8,16,.02), rgba(2,8,16,.22) 42%, rgba(2,8,16,.04));
}

/* More editorial spacing */
.story-copy {
  padding-left: clamp(14px, 3vw, 32px);
  padding-right: clamp(14px, 3vw, 32px);
}

.story-copy p {
  margin-bottom: 12px;
  text-shadow: 0 2px 10px rgba(0,0,0,.45);
}

/* Cinematic divider spacing */
.story-copy.spanish {
  margin-bottom: 0;
}

.story-copy.english {
  margin-top: 28px;
}

/* Photo stays untouched; these overlays sit ABOVE/AROUND the photo only */
.story-photo-card {
  margin-top: 26px;
  margin-bottom: 26px;
  position: relative;
  isolation: isolate;
}

.story-photo-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  background:
    linear-gradient(180deg,
      rgba(6,20,38,.72) 0%,
      rgba(6,20,38,.22) 14%,
      rgba(6,20,38,0) 35%,
      rgba(6,20,38,0) 66%,
      rgba(6,20,38,.26) 86%,
      rgba(6,20,38,.78) 100%
    ),
    radial-gradient(ellipse at center, transparent 58%, rgba(6,20,38,.42) 100%);
}

/* Gold edge glow without changing image pixels */
.story-photo-card {
  box-shadow:
    0 -22px 55px rgba(6,20,38,.72),
    0 22px 55px rgba(6,20,38,.72),
    0 0 42px rgba(217,170,79,.11),
    inset 0 1px 0 rgba(217,170,79,.35),
    inset 0 -1px 0 rgba(217,170,79,.35);
}

/* Make photo reveal feel smooth */
.story-photo-card.reveal {
  transform: translateY(18px) scale(.992);
}
.story-photo-card.reveal.in {
  transform: translateY(0) scale(1);
  transition-duration: 1.15s;
}

/* Refined glow for final lines */
.glow-line {
  margin-top: 16px !important;
  margin-bottom: 6px !important;
  position: relative;
}

.glow-line::before {
  content: "";
  display: block;
  width: min(520px, 82vw);
  height: 1px;
  margin: 0 auto 8px;
  background: linear-gradient(90deg, transparent, rgba(217,170,79,.45), transparent);
  box-shadow: 0 0 18px rgba(217,170,79,.25);
}

.glow-line span {
  letter-spacing: .02em;
  animation: softGlow 4.2s ease-in-out infinite;
}

/* Button and section transition polish */
.quick-links a,
.primary-button,
.invitation-frame,
.rsvp-card,
.details-grid article {
  backdrop-filter: blur(8px);
}

/* Slightly smoother global reveal */
.reveal {
  transition-timing-function: cubic-bezier(.2,.7,.2,1);
}

/* Mobile polish */
@media (max-width:720px) {
  .story-copy p {
    font-size: .98rem;
    line-height: 1.52;
    margin-bottom: 10px;
  }

  .story-photo-card {
    margin-top: 22px;
    margin-bottom: 22px;
  }

  .story-photo-card::after {
    background:
      linear-gradient(180deg,
        rgba(6,20,38,.78) 0%,
        rgba(6,20,38,.25) 16%,
        rgba(6,20,38,0) 38%,
        rgba(6,20,38,0) 62%,
        rgba(6,20,38,.30) 84%,
        rgba(6,20,38,.82) 100%
      ),
      radial-gradient(ellipse at center, transparent 62%, rgba(6,20,38,.40) 100%);
  }

  .glow-line span {
    font-size: clamp(2.4rem, 12vw, 4.6rem);
  }
}



/* ===== TRUE HOMEPAGE FIRST SCREEN ===== */
.homepage-only {
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 24%, rgba(217,170,79,.18), transparent 28%),
    radial-gradient(circle at 50% 58%, rgba(36,100,176,.18), transparent 35%),
    linear-gradient(180deg, rgba(4,14,28,.08), rgba(3,10,20,.18));
}

.homepage-only::before {
  content: "";
  position: absolute;
  inset: 7%;
  border: 1px solid rgba(217,170,79,.23);
  border-radius: 34px;
  pointer-events: none;
  box-shadow:
    inset 0 0 45px rgba(217,170,79,.06),
    0 0 45px rgba(217,170,79,.06);
}

.homepage-only::after {
  content: "♡";
  position: absolute;
  left: 50%;
  top: 22%;
  transform: translateX(-50%);
  color: rgba(217,170,79,.35);
  font-size: clamp(3rem, 10vw, 8rem);
  line-height: 1;
  pointer-events: none;
  text-shadow: 0 0 28px rgba(217,170,79,.25);
}

.homepage-only .hero-inner {
  position: relative;
  z-index: 2;
  width: min(860px, 92vw);
}

.homepage-only h1 {
  font-size: clamp(3.6rem, 9vw, 7.8rem);
  letter-spacing: .06em;
  margin-bottom: 14px;
}

.homepage-only .subtitle {
  font-size: clamp(1rem, 2.6vw, 1.35rem);
  line-height: 1.7;
  color: rgba(255,253,247,.84);
  margin-bottom: 18px;
}

.homepage-only .subtitle span {
  color: rgba(255,253,247,.62);
}

.home-date {
  color: var(--gold2);
  letter-spacing: .14em;
  text-transform: uppercase;
  margin: 0 auto 32px;
  font-size: .95rem;
}

.home-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  width: min(620px, 92vw);
  margin: 0 auto;
}

.home-action {
  display: block;
  width: 100%;
  border: 1px solid rgba(217,170,79,.58);
  border-radius: 999px;
  padding: 15px 18px;
  text-align: center;
  color: var(--gold2);
  text-decoration: none;
  background: linear-gradient(135deg, rgba(217,170,79,.18), rgba(255,255,255,.04));
  box-shadow: 0 0 20px rgba(217,170,79,.12);
  font: inherit;
  cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.home-action:hover {
  transform: translateY(-2px);
  box-shadow: 0 0 34px rgba(217,170,79,.28);
}

.home-action span {
  display: block;
  color: rgba(255,253,247,.62);
  font-size: .78em;
  margin-top: 2px;
}

.primary-home-action {
  background: linear-gradient(135deg, rgba(217,170,79,.32), rgba(255,255,255,.07));
  box-shadow: 0 0 28px rgba(217,170,79,.22);
}

/* Keep countdown clean with no section buttons below it */
.countdown-section .quick-links {
  display: none !important;
}

@media(max-width:720px){
  .homepage-only::before {
    inset: 4%;
    border-radius: 24px;
  }

  .home-actions {
    grid-template-columns: 1fr;
    gap: 11px;
  }

  .home-action {
    padding: 13px 16px;
  }
}


/* ===== CINEMATIC ORIGINAL PHOTO SECTION ===== */
.cinematic-photo-section {
  padding: 0;
  background: #030a14;
  position: relative;
  overflow: hidden;
}

.cinematic-photo-wrap {
  position: relative;
  width: 100%;
  min-height: 72vh;
  overflow: hidden;
  border-top: 1px solid rgba(217,170,79,.28);
  border-bottom: 1px solid rgba(217,170,79,.28);
  box-shadow:
    0 -25px 65px rgba(3,10,20,.75),
    0 25px 65px rgba(3,10,20,.75),
    inset 0 0 60px rgba(217,170,79,.06);
}

.cinematic-photo-wrap img {
  width: 100%;
  height: 100%;
  min-height: 72vh;
  object-fit: cover;
  object-position: center center;
  display: block;
  filter: none;
  transform: none;
}

.cinematic-photo-wrap::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(3,10,20,.50) 0%, rgba(3,10,20,.08) 30%, rgba(3,10,20,.08) 62%, rgba(3,10,20,.62) 100%),
    radial-gradient(ellipse at center, transparent 52%, rgba(3,10,20,.42) 100%);
  z-index: 1;
}

.cinematic-photo-overlay {
  position: absolute;
  left: 50%;
  bottom: clamp(28px, 8vw, 74px);
  transform: translateX(-50%);
  z-index: 2;
  text-align: center;
  width: min(680px, 90vw);
  color: var(--gold2);
  text-shadow: 0 0 20px rgba(0,0,0,.85), 0 0 22px rgba(217,170,79,.32);
}

.cinematic-photo-overlay p {
  font-size: clamp(2rem, 6vw, 4.4rem);
  line-height: 1.05;
  font-style: italic;
  color: var(--gold2);
  margin-bottom: 6px;
}

.cinematic-photo-overlay span {
  color: rgba(255,253,247,.72);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: clamp(.72rem, 2vw, .95rem);
}

.cinematic-photo-overlay::before,
.cinematic-photo-overlay::after {
  content: "";
  display: block;
  width: min(420px, 72vw);
  height: 1px;
  margin: 0 auto 12px;
  background: linear-gradient(90deg, transparent, rgba(217,170,79,.65), transparent);
  box-shadow: 0 0 18px rgba(217,170,79,.30);
}

.cinematic-photo-overlay::after {
  margin: 12px auto 0;
}

@media(max-width:720px) {
  .cinematic-photo-wrap {
    min-height: 68vh;
  }

  .cinematic-photo-wrap img {
    min-height: 68vh;
    object-position: center center;
  }

  .cinematic-photo-overlay {
    bottom: 34px;
  }
}


/* ===== COMBINE HERO ONLY: homepage + cinematic photo merged ===== */
.combined-hero {
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: #030a14;
}

.combined-hero-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  filter: none;
  transform: none;
  z-index: 0;
}

.combined-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(180deg,
      rgba(3,10,20,.76) 0%,
      rgba(3,10,20,.46) 28%,
      rgba(3,10,20,.30) 50%,
      rgba(3,10,20,.56) 76%,
      rgba(3,10,20,.88) 100%
    ),
    radial-gradient(ellipse at center, rgba(217,170,79,.10), transparent 42%);
}

.combined-hero .hero-inner {
  position: relative;
  z-index: 2;
}

.hero-monogram {
  position: absolute;
  left: 50%;
  top: 48%;
  transform: translate(-50%, -50%);
  font-size: clamp(7rem, 22vw, 16rem);
  letter-spacing: .08em;
  color: rgba(255,230,166,.20);
  text-shadow:
    0 0 28px rgba(217,170,79,.38),
    0 0 72px rgba(217,170,79,.18);
  pointer-events: none;
  z-index: -1;
  animation: heroMonogramBreath 7s ease-in-out infinite;
}

@keyframes heroMonogramBreath {
  0%,100% { opacity:.18; transform: translate(-50%, -50%) scale(.98); }
  50% { opacity:.30; transform: translate(-50%, -50%) scale(1.02); }
}

.combined-hero h1,
.combined-hero .subtitle,
.combined-hero .home-date,
.combined-hero .eyebrow {
  text-shadow: 0 0 18px rgba(0,0,0,.85), 0 0 24px rgba(217,170,79,.22);
}

.combined-hero .subtitle {
  color: rgba(255,230,166,.90);
}

.combined-hero .subtitle span {
  color: rgba(255,253,247,.76);
}

.combined-hero .home-actions {
  margin-top: 30px;
}

.combined-hero .home-action {
  background: linear-gradient(135deg, rgba(217,170,79,.24), rgba(255,255,255,.07));
  backdrop-filter: blur(8px);
}

@media(max-width:720px){
  .combined-hero-bg {
    object-position: center center;
  }

  .combined-hero-overlay {
    background:
      linear-gradient(180deg,
        rgba(3,10,20,.82) 0%,
        rgba(3,10,20,.50) 30%,
        rgba(3,10,20,.36) 52%,
        rgba(3,10,20,.62) 76%,
        rgba(3,10,20,.90) 100%
      ),
      radial-gradient(ellipse at center, rgba(217,170,79,.10), transparent 42%);
  }

  .hero-monogram {
    font-size: clamp(6rem, 28vw, 12rem);
  }
}


/* ===== FINAL HERO + COUNTDOWN MERGE / TEXT POP ===== */

/* Stronger readability layer without editing the photo */
.combined-hero-overlay {
  background:
    linear-gradient(180deg,
      rgba(2,6,12,.86) 0%,
      rgba(3,10,20,.58) 22%,
      rgba(3,10,20,.28) 45%,
      rgba(3,10,20,.64) 72%,
      rgba(2,6,12,.92) 100%
    ),
    radial-gradient(ellipse at center 46%,
      rgba(0,0,0,.48) 0%,
      rgba(0,0,0,.26) 35%,
      transparent 64%
    ),
    radial-gradient(ellipse at center,
      rgba(217,170,79,.13),
      transparent 43%
    );
}

/* Crisp luxury text */
.combined-hero .eyebrow,
.combined-hero h1,
.combined-hero .subtitle,
.combined-hero .home-date {
  text-shadow:
    0 2px 8px rgba(0,0,0,.95),
    0 0 22px rgba(0,0,0,.88),
    0 0 30px rgba(217,170,79,.30);
}

.combined-hero h1 {
  color: #fff0b8;
  filter: drop-shadow(0 0 9px rgba(217,170,79,.24));
}

.combined-hero .subtitle {
  color: rgba(255,239,190,.96);
  font-weight: 500;
}

.combined-hero .subtitle span {
  color: rgba(255,255,255,.86);
}

.combined-hero .home-date {
  color: rgba(255,255,255,.92);
}

/* Countdown now lives inside hero */
.hero-countdown-block {
  margin: 28px auto 0;
  width: min(780px, 94vw);
  text-align: center;
}

.hero-countdown-block .section-kicker {
  margin-bottom: 8px;
  color: rgba(255,230,166,.92);
  text-shadow: 0 2px 10px rgba(0,0,0,.85);
}

.hero-countdown-block h2 {
  font-size: clamp(1.45rem, 4vw, 2.6rem);
  margin-bottom: 14px;
  color: #ffe6a6;
  letter-spacing: .11em;
  text-shadow:
    0 2px 10px rgba(0,0,0,.95),
    0 0 20px rgba(217,170,79,.28);
}

/* Make countdown smaller and more refined in hero */
.combined-hero .countdown {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: min(720px, 94vw);
  margin: 0 auto 0;
  gap: 10px;
}

.combined-hero .countdown div {
  padding: 14px 8px;
  background: rgba(3,10,20,.44);
  backdrop-filter: blur(8px);
  border-color: rgba(217,170,79,.52);
  box-shadow:
    inset 0 0 20px rgba(217,170,79,.06),
    0 0 20px rgba(0,0,0,.25);
}

.combined-hero .countdown span {
  font-size: clamp(1.65rem, 4.5vw, 2.8rem);
  color: #ffe6a6;
  text-shadow:
    0 1px 8px rgba(0,0,0,.95),
    0 0 18px rgba(217,170,79,.42);
}

.combined-hero .countdown small {
  color: rgba(255,255,255,.74);
  font-size: .72rem;
}

/* Buttons sit below countdown on same page */
.combined-hero .home-actions {
  margin-top: 22px;
}

/* Hide any leftover standalone countdown if browser cache leaves class present */
.countdown-section {
  display: none !important;
}

@media(max-width:720px) {
  .combined-hero {
    min-height: 100svh;
  }

  .combined-hero-overlay {
    background:
      linear-gradient(180deg,
        rgba(2,6,12,.90) 0%,
        rgba(3,10,20,.64) 25%,
        rgba(3,10,20,.44) 48%,
        rgba(3,10,20,.70) 74%,
        rgba(2,6,12,.94) 100%
      ),
      radial-gradient(ellipse at center 48%,
        rgba(0,0,0,.55) 0%,
        rgba(0,0,0,.30) 38%,
        transparent 68%
      );
  }

  .hero-countdown-block {
    margin-top: 22px;
  }

  .combined-hero .countdown {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(360px, 92vw);
    gap: 9px;
  }

  .combined-hero .countdown div {
    padding: 12px 8px;
  }

  .hero-countdown-block h2 {
    font-size: clamp(1.25rem, 6vw, 1.8rem);
  }

  .combined-hero .home-actions {
    margin-top: 18px;
  }
}


/* FINAL FINAL MICRO POLISH */
.combined-hero h1 {
  text-shadow:
    0 2px 6px rgba(0,0,0,.9),
    0 0 12px rgba(0,0,0,.8),
    0 0 20px rgba(217,170,79,.25);
}

.combined-hero .subtitle {
  text-shadow:
    0 2px 6px rgba(0,0,0,.9),
    0 0 10px rgba(0,0,0,.7);
}

.combined-hero-bg {
  object-position: center 40%;
}

.hero-monogram {
  opacity: 0.18;
}


/* ===== CLEAN HERO APPLY: less clutter, more luxury breathing room ===== */

/* Remove visual clutter */
.hero-monogram {
  display: none !important;
}

/* Turn hero into calm two-zone composition */
.combined-hero .hero-inner {
  min-height: 100vh;
  width: min(920px, 94vw);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(72px, 10vh, 120px) 0 clamp(34px, 6vh, 64px);
}

/* Top identity zone */
.hero-top-zone {
  text-align: center;
  max-width: 820px;
  margin: 0 auto;
}

.combined-hero .eyebrow {
  margin-bottom: 12px;
  letter-spacing: .24em;
}

.combined-hero h1 {
  font-size: clamp(3.4rem, 8vw, 6.8rem);
  margin-bottom: 12px;
}

.combined-hero .subtitle {
  max-width: 680px;
  margin: 18px auto 0;
  line-height: 1.55;
}

.combined-hero .home-date {
  margin-top: 18px;
}

/* Bottom countdown / button zone */
.hero-bottom-zone {
  width: 100%;
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
  padding-top: 32px;
}

.hero-countdown-block {
  margin-top: 0 !important;
}

.hero-countdown-block .section-kicker {
  font-size: .72rem;
  opacity: .85;
  margin-bottom: 6px;
}

.hero-countdown-block h2 {
  font-size: clamp(1.1rem, 2.8vw, 1.85rem) !important;
  margin-bottom: 12px !important;
  opacity: .95;
}

.combined-hero .countdown {
  width: min(620px, 92vw);
  gap: 8px !important;
}

.combined-hero .countdown div {
  padding: 10px 8px !important;
  background: rgba(3,10,20,.36) !important;
  border-color: rgba(217,170,79,.40) !important;
}

.combined-hero .countdown span {
  font-size: clamp(1.35rem, 3.6vw, 2.2rem) !important;
}

.combined-hero .countdown small {
  font-size: .66rem !important;
  opacity: .74;
}

.combined-hero .home-actions {
  margin-top: 16px !important;
}

/* More relaxed buttons */
.combined-hero .home-action {
  padding: 12px 18px;
  background: linear-gradient(135deg, rgba(217,170,79,.18), rgba(255,255,255,.055)) !important;
}

/* Softer overlay so the photo breathes but text stays readable */
.combined-hero-overlay {
  background:
    linear-gradient(180deg,
      rgba(2,6,12,.78) 0%,
      rgba(3,10,20,.52) 24%,
      rgba(3,10,20,.30) 48%,
      rgba(3,10,20,.54) 74%,
      rgba(2,6,12,.88) 100%
    ),
    radial-gradient(ellipse at center 30%,
      rgba(0,0,0,.38) 0%,
      rgba(0,0,0,.22) 36%,
      transparent 66%
    ),
    radial-gradient(ellipse at center,
      rgba(217,170,79,.10),
      transparent 44%
    ) !important;
}

/* Mobile calm layout */
@media(max-width:720px) {
  .combined-hero .hero-inner {
    min-height: 100svh;
    padding: 68px 0 28px;
  }

  .combined-hero h1 {
    font-size: clamp(2.65rem, 12vw, 4.35rem);
  }

  .combined-hero .subtitle {
    font-size: .94rem;
    line-height: 1.48;
    margin-top: 14px;
  }

  .combined-hero .home-date {
    margin-top: 14px;
    font-size: .78rem;
    letter-spacing: .16em;
  }

  .hero-bottom-zone {
    padding-top: 22px;
  }

  .combined-hero .countdown {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    width: min(390px, 94vw);
  }

  .combined-hero .countdown div {
    padding: 9px 4px !important;
  }

  .combined-hero .countdown span {
    font-size: 1.25rem !important;
  }

  .combined-hero .countdown small {
    font-size: .56rem !important;
    letter-spacing: .04em;
  }

  .home-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 9px !important;
  }

  .combined-hero .home-action {
    padding: 10px 8px;
    font-size: .86rem;
  }
}


/* FINAL PHOTO FRAMING */
.combined-hero-bg {
  object-position: center 30% !important;
  transform: scale(1.05);
}

.combined-hero-overlay {
  background:
    linear-gradient(to bottom,
      rgba(0,0,0,0) 0%,
      rgba(3,10,20,.25) 45%,
      rgba(3,10,20,.85) 100%
    ) !important;
}


/* ===== GLOBAL RSVP COUNTER ===== */
.global-rsvp-counter {
  max-width: 650px;
  margin: 24px auto 18px;
  text-align: center;
  padding: 18px 20px;
  border: 1px solid rgba(217,170,79,.34);
  border-radius: 22px;
  background: rgba(255,255,255,.045);
  box-shadow: 0 0 28px rgba(217,170,79,.10);
}

.global-rsvp-counter p {
  color: #ffe6a6;
  font-size: clamp(1.15rem, 3vw, 1.45rem);
  letter-spacing: .06em;
  margin: 0;
  text-shadow: 0 0 14px rgba(217,170,79,.28);
}

.global-rsvp-counter small {
  display: block;
  color: rgba(255,253,247,.68);
  margin-top: 6px;
  letter-spacing: .05em;
}

.submit-button.loading {
  opacity: .75;
  pointer-events: none;
}

.rsvp-confirmation.error {
  background: rgba(160,60,60,.12);
  border-color: rgba(255,150,150,.28);
}


/* ===== RSVP LUXURY CONFIRMATION UPGRADE ===== */
.rsvp-card {
  transition: opacity .45s ease, transform .45s ease;
}

.rsvp-card.luxury-submitted {
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
}

.rsvp-confirmation.show {
  padding: 0;
  border: none;
  background: transparent;
}

.rsvp-success {
  text-align: center;
  padding: 30px 22px;
  border: 1px solid rgba(217,170,79,.36);
  border-radius: 24px;
  background:
    radial-gradient(ellipse at center, rgba(217,170,79,.12), transparent 64%),
    rgba(255,255,255,.045);
  box-shadow:
    0 0 34px rgba(217,170,79,.14),
    inset 0 0 28px rgba(255,255,255,.035);
  animation: rsvpFadeUp .8s ease both;
}

.rsvp-success h3 {
  font-size: clamp(1.55rem, 4vw, 2rem);
  color: #ffe6a6;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin: 0 0 8px;
  font-weight: 400;
  text-shadow: 0 0 16px rgba(217,170,79,.38);
}

.rsvp-success p {
  color: rgba(255,255,255,.82);
  margin: 0 0 18px;
  line-height: 1.55;
}

.guest-summary {
  font-size: clamp(1.35rem, 4vw, 1.85rem);
  color: #fffdf7;
  margin: 14px 0;
  letter-spacing: .04em;
  text-shadow: 0 0 14px rgba(0,0,0,.75);
}

.guest-summary small {
  display: block;
  margin-top: 6px;
  color: rgba(255,255,255,.64);
  font-size: .82rem;
  letter-spacing: .05em;
}

.success-line {
  height: 1px;
  width: min(360px, 72%);
  margin: 20px auto;
  background: linear-gradient(to right, transparent, rgba(217,170,79,.95), transparent);
  box-shadow: 0 0 14px rgba(217,170,79,.38);
}

.rsvp-sparkle {
  color: #ffe6a6;
  font-size: 1.35rem;
  margin-bottom: 8px;
  animation: sparklePulse 2.8s ease-in-out infinite;
}

@keyframes rsvpFadeUp {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes sparklePulse {
  0%,100% {
    opacity: .72;
    transform: scale(1);
    text-shadow: 0 0 8px rgba(217,170,79,.22);
  }
  50% {
    opacity: 1;
    transform: scale(1.08);
    text-shadow: 0 0 18px rgba(217,170,79,.48);
  }
}


/* ===== BOTTOM GLOBAL RSVP COUNTER + SCROLL FADE ===== */
.global-footer-counter {
  padding: 64px 20px 42px;
  text-align: center;
  background: linear-gradient(
    to bottom,
    transparent,
    rgba(3,10,20,.88)
  );
}

.bottom-counter {
  max-width: 560px;
  margin: 0 auto;
  padding: 24px 22px;
  border-radius: 26px;
  border: 1px solid rgba(217,170,79,.32);
  background:
    radial-gradient(ellipse at center, rgba(217,170,79,.08), transparent 65%),
    rgba(255,255,255,.035);
  box-shadow:
    0 0 34px rgba(217,170,79,.13),
    inset 0 0 24px rgba(255,255,255,.025);
}

.counter-main {
  font-size: clamp(1.12rem, 3.4vw, 1.35rem);
  color: #ffe6a6;
  letter-spacing: .07em;
  margin: 0 0 6px;
  text-shadow: 0 0 14px rgba(217,170,79,.35);
}

.counter-sub {
  display: block;
  font-size: .9rem;
  color: rgba(255,255,255,.68);
  letter-spacing: .05em;
}

.reveal-counter {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity .9s ease, transform .9s ease;
}

.reveal-counter.in {
  opacity: 1;
  transform: translateY(0);
}

.reveal-counter.in .bottom-counter {
  animation: bottomCounterGlow 3.2s ease-in-out 1;
}

@keyframes bottomCounterGlow {
  0% {
    box-shadow:
      0 0 12px rgba(217,170,79,.08),
      inset 0 0 24px rgba(255,255,255,.025);
  }
  45% {
    box-shadow:
      0 0 42px rgba(217,170,79,.24),
      inset 0 0 28px rgba(255,255,255,.04);
  }
  100% {
    box-shadow:
      0 0 34px rgba(217,170,79,.13),
      inset 0 0 24px rgba(255,255,255,.025);
  }
}


/* ===== POST-RSVP GLOBAL COUNTER + ACTIVATION ===== */
.post-rsvp-counter {
  padding: 56px 20px 26px;
  text-align: center;
  background: linear-gradient(
    to bottom,
    transparent,
    rgba(3,10,20,.72)
  );
}

.post-rsvp-counter .bottom-counter {
  max-width: 560px;
  margin: 0 auto;
  padding: 24px 22px;
  border-radius: 26px;
  border: 1px solid rgba(217,170,79,.32);
  background:
    radial-gradient(ellipse at center, rgba(217,170,79,.08), transparent 65%),
    rgba(255,255,255,.035);
  box-shadow:
    0 0 34px rgba(217,170,79,.13),
    inset 0 0 24px rgba(255,255,255,.025);
}

.counter-main {
  font-size: clamp(1.12rem, 3.4vw, 1.35rem);
  color: #ffe6a6;
  letter-spacing: .07em;
  margin: 0 0 6px;
  text-shadow: 0 0 14px rgba(217,170,79,.35);
}

.counter-sub {
  display: block;
  font-size: .9rem;
  color: rgba(255,255,255,.68);
  letter-spacing: .05em;
}

.hidden-counter {
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  max-height: 0;
  overflow: hidden;
  padding-top: 0;
  padding-bottom: 0;
  transition:
    opacity 1s ease,
    transform 1s cubic-bezier(.22,1,.36,1),
    max-height 1s ease,
    padding .8s ease;
}

.hidden-counter.show {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  max-height: 300px;
  padding-top: 56px;
  padding-bottom: 26px;
}

.hidden-counter.show .bottom-counter {
  animation: bottomCounterGlow 3.2s ease-in-out 1;
}

@keyframes bottomCounterGlow {
  0% {
    box-shadow:
      0 0 12px rgba(217,170,79,.08),
      inset 0 0 24px rgba(255,255,255,.025);
  }
  45% {
    box-shadow:
      0 0 42px rgba(217,170,79,.24),
      inset 0 0 28px rgba(255,255,255,.04);
  }
  100% {
    box-shadow:
      0 0 34px rgba(217,170,79,.13),
      inset 0 0 24px rgba(255,255,255,.025);
  }
}

/* ===== UPDATED RSVP SUCCESS MESSAGE ===== */
.confirmation-note {
  margin-top: 16px !important;
  color: rgba(255,255,255,.76) !important;
  font-size: .95rem;
  line-height: 1.55;
}

.confirmation-note span {
  color: rgba(255,255,255,.58);
  font-size: .9rem;
}


/* ===== FINAL NO RSVP FLOW POLISH ===== */
.rsvp-section,
.post-rsvp-counter,
.global-footer-counter,
.global-rsvp-counter {
  display: none !important;
}

/* Rebalance closing footer after removing RSVP */
footer {
  margin-top: 30px;
}

/* Make homepage actions feel balanced with RSVP removed */
.home-actions {
  max-width: 620px;
}


/* ===== LUXURY RSVP SECTION ===== */
.luxury-rsvp-section {
  padding: 88px 20px;
  text-align: center;
  background:
    radial-gradient(ellipse at center top, rgba(217,170,79,.10), transparent 34%),
    linear-gradient(180deg, rgba(3,10,20,.05), rgba(3,10,20,.72));
}

.rsvp-shell {
  max-width: 720px;
  margin: 0 auto;
}

.luxury-rsvp-section .section-kicker {
  color: #d9aa4f;
  text-transform: uppercase;
  letter-spacing: .22em;
  font-size: .82rem;
  margin-bottom: 14px;
}

.luxury-rsvp-section h2 {
  color: #ffe6a6;
  font-weight: 400;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-shadow: 0 0 22px rgba(217,170,79,.28);
  margin-bottom: 14px;
}

.rsvp-intro {
  color: rgba(255,253,247,.82);
  line-height: 1.65;
  margin-bottom: 30px;
}

.rsvp-intro span {
  color: rgba(255,253,247,.58);
}

.rsvp-card {
  text-align: left;
  border: 1px solid rgba(217,170,79,.36);
  border-radius: 28px;
  padding: clamp(24px, 5vw, 38px);
  background:
    radial-gradient(ellipse at top, rgba(217,170,79,.08), transparent 56%),
    rgba(255,255,255,.045);
  box-shadow:
    0 20px 70px rgba(0,0,0,.32),
    0 0 34px rgba(217,170,79,.10),
    inset 0 0 28px rgba(255,255,255,.025);
  transition: opacity .45s ease, transform .45s ease;
}

.rsvp-card label {
  display: block;
  color: #ffe6a6;
  margin-bottom: 18px;
  letter-spacing: .03em;
}

.rsvp-card input,
.rsvp-card select,
.rsvp-card textarea {
  width: 100%;
  margin-top: 8px;
  border: 1px solid rgba(217,170,79,.50);
  border-radius: 16px;
  padding: 15px 16px;
  background: rgba(3,10,20,.72);
  color: #fffdf7;
  font: inherit;
  outline: none;
}

.rsvp-card input:focus,
.rsvp-card select:focus,
.rsvp-card textarea:focus {
  box-shadow: 0 0 0 3px rgba(217,170,79,.16), 0 0 16px rgba(217,170,79,.15);
}

.guest-counter-wrap {
  margin: 20px 0 22px;
  padding: 20px;
  border: 1px solid rgba(217,170,79,.30);
  border-radius: 20px;
  background: rgba(255,255,255,.035);
}

.guest-counter-wrap h3 {
  text-align: center;
  color: #ffe6a6;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin: 0 0 18px;
}

.guest-counter-wrap h3 span,
.counter-row small {
  color: rgba(255,253,247,.62);
  font-size: .75em;
}

.counter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-top: 1px solid rgba(217,170,79,.15);
  color: rgba(255,253,247,.88);
}

.counter-controls {
  display: flex;
  align-items: center;
  gap: 12px;
}

.counter-controls button {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid #d9aa4f;
  background: rgba(217,170,79,.08);
  color: #ffe6a6;
  font-size: 1.2rem;
  cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease;
}

.counter-controls button:hover {
  transform: translateY(-1px);
  box-shadow: 0 0 18px rgba(217,170,79,.28);
}

.counter-controls strong {
  min-width: 24px;
  text-align: center;
  font-size: 1.2rem;
  color: #fffdf7;
}

.rsvp-total {
  text-align: center;
  margin: 18px 0 0;
  color: #ffe6a6;
  letter-spacing: .05em;
  text-shadow: 0 0 12px rgba(217,170,79,.24);
}

.rsvp-total small {
  color: rgba(255,253,247,.62);
  font-size: .85rem;
}

.submit-button {
  width: 100%;
  border-radius: 18px;
  margin-top: 6px;
}

.rsvp-note {
  margin-top: 18px;
  text-align: center;
  font-size: .9rem;
  letter-spacing: .04em;
  color: rgba(255,255,255,.62);
  line-height: 1.6;
}

.rsvp-note span {
  display: block;
  margin-top: 4px;
  font-size: .82rem;
  color: rgba(255,255,255,.46);
}

.rsvp-note::before {
  content: "";
  display: block;
  width: 60px;
  height: 1px;
  margin: 0 auto 12px;
  background: linear-gradient(to right, transparent, rgba(217,170,79,.5), transparent);
  box-shadow: 0 0 14px rgba(217,170,79,.35);
}

.rsvp-confirmation {
  opacity: 0;
  transform: translateY(12px);
  transition: all .7s ease;
  text-align: center;
  margin-top: 22px;
}

.rsvp-confirmation.show {
  opacity: 1;
  transform: translateY(0);
}

.rsvp-success {
  text-align: center;
  padding: 28px 20px;
  border: 1px solid rgba(217,170,79,.34);
  border-radius: 22px;
  background: rgba(217,170,79,.075);
  box-shadow: 0 0 28px rgba(217,170,79,.13);
}

.rsvp-success h3 {
  color: #ffe6a6;
  font-size: 1.5rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin: 0 0 8px;
  font-weight: 400;
}

.rsvp-success p {
  color: rgba(255,255,255,.78);
  margin: 0;
}

@media(max-width:720px) {
  .luxury-rsvp-section {
    padding: 68px 16px;
  }

  .counter-row {
    align-items: flex-start;
  }
}


/* ===== VISIBLE LUXURY RSVP SECTION ===== */
.luxury-rsvp-section {
  display: block !important;
  padding: 88px 20px;
  text-align: center;
  background:
    radial-gradient(ellipse at center top, rgba(217,170,79,.10), transparent 34%),
    linear-gradient(180deg, rgba(3,10,20,.05), rgba(3,10,20,.72));
}

.rsvp-shell {
  max-width: 720px;
  margin: 0 auto;
}

.luxury-rsvp-section .section-kicker {
  color: #d9aa4f;
  text-transform: uppercase;
  letter-spacing: .22em;
  font-size: .82rem;
  margin-bottom: 14px;
}

.luxury-rsvp-section h2 {
  color: #ffe6a6;
  font-weight: 400;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-shadow: 0 0 22px rgba(217,170,79,.28);
  margin-bottom: 14px;
}

.rsvp-intro {
  color: rgba(255,253,247,.82);
  line-height: 1.65;
  margin-bottom: 30px;
}

.rsvp-intro span {
  color: rgba(255,253,247,.58);
}

.rsvp-card {
  display: block !important;
  text-align: left;
  border: 1px solid rgba(217,170,79,.36);
  border-radius: 28px;
  padding: clamp(24px, 5vw, 38px);
  background:
    radial-gradient(ellipse at top, rgba(217,170,79,.08), transparent 56%),
    rgba(255,255,255,.045);
  box-shadow:
    0 20px 70px rgba(0,0,0,.32),
    0 0 34px rgba(217,170,79,.10),
    inset 0 0 28px rgba(255,255,255,.025);
}

.rsvp-card label {
  display: block;
  color: #ffe6a6;
  margin-bottom: 18px;
  letter-spacing: .03em;
}

.rsvp-card input,
.rsvp-card select,
.rsvp-card textarea {
  width: 100%;
  margin-top: 8px;
  border: 1px solid rgba(217,170,79,.50);
  border-radius: 16px;
  padding: 15px 16px;
  background: rgba(3,10,20,.72);
  color: #fffdf7;
  font: inherit;
  outline: none;
}

.guest-counter-wrap {
  margin: 20px 0 22px;
  padding: 20px;
  border: 1px solid rgba(217,170,79,.30);
  border-radius: 20px;
  background: rgba(255,255,255,.035);
}

.guest-counter-wrap h3 {
  text-align: center;
  color: #ffe6a6;
  font-weight: 400;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin: 0 0 18px;
}

.guest-counter-wrap h3 span,
.counter-row small {
  color: rgba(255,253,247,.62);
  font-size: .75em;
}

.counter-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-top: 1px solid rgba(217,170,79,.15);
  color: rgba(255,253,247,.88);
}

.counter-controls {
  display: flex;
  align-items: center;
  gap: 12px;
}

.counter-controls button {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid #d9aa4f;
  background: rgba(217,170,79,.08);
  color: #ffe6a6;
  font-size: 1.2rem;
  cursor: pointer;
}

.counter-controls strong {
  min-width: 24px;
  text-align: center;
  font-size: 1.2rem;
  color: #fffdf7;
}

.rsvp-total {
  text-align: center;
  margin: 18px 0 0;
  color: #ffe6a6;
  letter-spacing: .05em;
  text-shadow: 0 0 12px rgba(217,170,79,.24);
}

.rsvp-total small {
  color: rgba(255,253,247,.62);
  font-size: .85rem;
}

.submit-button {
  width: 100%;
  border-radius: 18px;
  margin-top: 6px;
}

.rsvp-note {
  margin-top: 18px;
  text-align: center;
  font-size: .9rem;
  letter-spacing: .04em;
  color: rgba(255,255,255,.62);
  line-height: 1.6;
}

.rsvp-note span {
  display: block;
  margin-top: 4px;
  font-size: .82rem;
  color: rgba(255,255,255,.46);
}

.rsvp-note::before {
  content: "";
  display: block;
  width: 60px;
  height: 1px;
  margin: 0 auto 12px;
  background: linear-gradient(to right, transparent, rgba(217,170,79,.5), transparent);
  box-shadow: 0 0 14px rgba(217,170,79,.35);
}

.rsvp-confirmation {
  opacity: 0;
  transform: translateY(12px);
  transition: all .7s ease;
  text-align: center;
  margin-top: 22px;
}

.rsvp-confirmation.show {
  opacity: 1;
  transform: translateY(0);
}

.rsvp-success {
  text-align: center;
  padding: 28px 20px;
  border: 1px solid rgba(217,170,79,.34);
  border-radius: 22px;
  background: rgba(217,170,79,.075);
  box-shadow: 0 0 28px rgba(217,170,79,.13);
}

.rsvp-success h3 {
  color: #ffe6a6;
  font-size: 1.5rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin: 0 0 8px;
  font-weight: 400;
}

.rsvp-success p {
  color: rgba(255,255,255,.78);
  margin: 0;
}

@media(max-width:720px) {
  .luxury-rsvp-section {
    padding: 68px 16px;
  }

  .counter-row {
    align-items: flex-start;
  }
}


/* ===== HERO MICRO LUXURY: SLOW NAME FADE + SUBTLE PHOTO ZOOM ===== */

/* Very subtle photo zoom on load — CSS only, no image edits */
.combined-hero-bg,
.hero-bg {
  animation: heroPhotoSlowZoom 18s ease-out forwards;
  transform-origin: center center;
}

@keyframes heroPhotoSlowZoom {
  from {
    transform: scale(1.02);
  }
  to {
    transform: scale(1.055);
  }
}

/* Slow luxury fade-in for hero names/title */
.hero-name-fade,
.hero-title-fade,
.combined-hero .eyebrow,
.combined-hero h1 {
  opacity: 0;
  transform: translateY(14px);
  animation: heroTextFadeIn 1.8s cubic-bezier(.22, 1, .36, 1) forwards;
}

.hero-name-fade,
.combined-hero .eyebrow {
  animation-delay: .35s;
}

.hero-title-fade,
.combined-hero h1 {
  animation-delay: .65s;
}

@keyframes heroTextFadeIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Keep the effect softer on mobile */
@media(max-width:720px) {
  .combined-hero-bg,
  .hero-bg {
    animation-duration: 20s;
  }

  .hero-name-fade,
  .hero-title-fade,
  .combined-hero .eyebrow,
  .combined-hero h1 {
    transform: translateY(10px);
  }
}

/* ===== LOCKED LUXURY UPGRADES — PRESERVE ORIGINAL DESIGN ===== */
.forever-divider{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin:14px auto 6px;
  color:rgba(255,230,166,.86);
  letter-spacing:.28em;
  font-size:.72rem;
  text-transform:uppercase;
  text-shadow:0 2px 10px rgba(0,0,0,.85),0 0 18px rgba(217,170,79,.24);
  opacity:0;
  animation:foreverFade .95s ease .55s forwards;
}
.forever-divider::before,.forever-divider::after{
  content:"";
  width:min(132px,24vw);
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(217,170,79,.65),transparent);
  transform:scaleX(0);
  animation:dividerExtend 1.2s cubic-bezier(.2,.7,.2,1) .5s forwards;
}
@keyframes foreverFade{to{opacity:1}}
@keyframes dividerExtend{to{transform:scaleX(1)}}
.combined-hero-bg{animation:heroPhotoZoom 8s cubic-bezier(.2,.7,.2,1) forwards, heroBreath 12s ease-in-out 8s infinite alternate;}
@keyframes heroPhotoZoom{from{transform:scale(1.065)}to{transform:scale(1.05)}}
@keyframes heroBreath{from{transform:scale(1.05)}to{transform:scale(1.058)}}
.hero-title-fade{position:relative;overflow:hidden;}
.hero-title-fade::after{
  content:"";position:absolute;top:0;bottom:0;width:34%;left:-42%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.16),transparent);
  transform:skewX(-18deg);animation:nameSweep 1.4s ease 1s 1;
}
@keyframes nameSweep{to{left:112%}}
.combined-hero .home-actions{grid-template-columns:repeat(2,minmax(0,1fr));max-width:560px;}
.combined-hero .home-action{letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;}
.combined-hero .home-action span{text-transform:none;letter-spacing:.03em;}

.story-photo-card img{will-change:transform;}
.story-photo-card.parallax img{transform:translateY(var(--story-parallax,0px));}
.story-copy.english p{max-width:780px;}
.story-section{padding-bottom:86px;}

.celebration-flow{max-width:640px;margin:34px auto 0;text-align:center;}
.celebration-flow article{padding:24px 10px;}
.celebration-flow h3{font-weight:400;text-transform:uppercase;letter-spacing:.18em;color:var(--gold2);font-size:1rem;margin-bottom:9px;}
.celebration-flow p{color:rgba(255,253,247,.88);font-size:1.12rem;line-height:1.55;}
.celebration-flow small{display:block;margin-top:6px;color:rgba(255,253,247,.56);letter-spacing:.06em;}
.venue-link{display:inline-block;margin-top:4px;color:var(--gold2);text-decoration:none;border-bottom:1px solid rgba(217,170,79,.34);padding-bottom:2px;}
.calendar-button{display:inline-block;margin-top:24px;}
.directions-section{padding-top:30px;}

.guided-rsvp{text-align:center;overflow:hidden;}
.rsvp-progress{color:rgba(255,253,247,.58);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;margin-bottom:22px;}
.rsvp-step{display:none;animation:rsvpStepIn .55s cubic-bezier(.2,.7,.2,1) both;}
.rsvp-step.active{display:block;}
@keyframes rsvpStepIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.rsvp-step h3{font-weight:400;color:var(--gold2);letter-spacing:.10em;text-transform:uppercase;margin-bottom:14px;}
.rsvp-step p{color:rgba(255,253,247,.76);}
.rsvp-step label{text-align:left;}
.choice-card{display:block!important;border:1px solid rgba(217,170,79,.35);border-radius:18px;padding:16px 18px;margin:12px 0;color:rgba(255,253,247,.86)!important;background:rgba(255,255,255,.035);cursor:pointer;}
.choice-card input{width:auto;margin:0 10px 0 0;}
.rsvp-step-actions{display:flex;gap:12px;justify-content:center;align-items:center;margin-top:22px;}
.rsvp-back{border:1px solid rgba(217,170,79,.36);border-radius:999px;padding:13px 22px;background:transparent;color:var(--gold2);font:inherit;cursor:pointer;}
.rsvp-total{margin-top:14px;color:rgba(255,253,247,.78);}
.rsvp-success{max-width:650px;margin:0 auto;}

.closing-section{text-align:center;padding:90px 20px 46px;background:linear-gradient(180deg,transparent,rgba(217,170,79,.045));}
.closing-section p{color:rgba(255,253,247,.82);margin-bottom:16px;font-size:clamp(1rem,2.4vw,1.25rem);}
.closing-section span{color:var(--gold2);font-size:clamp(1.4rem,4vw,2.2rem);font-style:italic;}
.closing-section small{color:rgba(255,253,247,.52);letter-spacing:.10em;text-transform:uppercase;}

@media(max-width:720px){
  .forever-divider{gap:8px;letter-spacing:.18em;font-size:.62rem;margin-top:10px;}
  .forever-divider::before,.forever-divider::after{width:18vw;}
  .combined-hero .home-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .combined-hero .home-action{font-size:.72rem;line-height:1.25;}
  .celebration-flow article{padding:20px 8px;}
  .rsvp-step-actions{flex-direction:column;}
  .rsvp-step-actions .primary-button,.rsvp-back{width:100%;}
}


/* ===== FINAL SURGICAL HERO POLISH — SIMPLE + ELEGANT, FULL ANIMATED ===== */
/* Only affects the hero section. Everything else remains untouched. */
.combined-hero .hero-inner{
  min-height:100svh !important;
  width:min(880px,94vw) !important;
  padding:clamp(82px,12vh,132px) 0 clamp(30px,5vh,58px) !important;
  justify-content:space-between !important;
}
.combined-hero .eyebrow{
  font-size:.66rem !important;
  letter-spacing:.30em !important;
  opacity:.68 !important;
  margin-bottom:14px !important;
  color:rgba(255,230,166,.72) !important;
}
.combined-hero h1{
  font-size:clamp(3.35rem,8.2vw,6.55rem) !important;
  letter-spacing:.055em !important;
  margin:0 auto 20px !important;
  color:rgba(255,239,190,.98) !important;
  transform:translateY(-4px);
  text-shadow:
    0 2px 7px rgba(0,0,0,.72),
    0 0 18px rgba(0,0,0,.58),
    0 0 22px rgba(217,170,79,.20) !important;
}
/* keep the hero calmer by hiding the extra subtitle line only */
.combined-hero .subtitle{display:none !important;}
.forever-divider{
  margin:4px auto 24px !important;
  gap:0 !important;
  font-size:.68rem !important;
  letter-spacing:.22em !important;
  opacity:.72 !important;
  color:rgba(255,230,166,.78) !important;
}
.forever-divider::before,
.forever-divider::after{display:none !important;}
.combined-hero .home-date{
  margin-top:0 !important;
  font-size:.80rem !important;
  letter-spacing:.15em !important;
  line-height:1.72 !important;
  opacity:.78 !important;
  color:rgba(255,255,255,.80) !important;
}
.hero-bottom-zone{
  padding-top:24px !important;
}
.hero-countdown-block .section-kicker{
  font-size:.62rem !important;
  letter-spacing:.24em !important;
  opacity:.55 !important;
  margin-bottom:5px !important;
}
.hero-countdown-block h2{
  font-size:clamp(.92rem,2.2vw,1.34rem) !important;
  letter-spacing:.15em !important;
  opacity:.72 !important;
  margin-bottom:10px !important;
}
.combined-hero .countdown{
  width:min(540px,90vw) !important;
  gap:12px !important;
}
.combined-hero .countdown div{
  padding:8px 7px !important;
  border-color:rgba(217,170,79,.25) !important;
  background:rgba(3,10,20,.23) !important;
  border-radius:16px !important;
}
.combined-hero .countdown span{
  font-size:clamp(1.12rem,3vw,1.76rem) !important;
  opacity:.88 !important;
}
.combined-hero .countdown small{
  font-size:.55rem !important;
  opacity:.50 !important;
  letter-spacing:.06em !important;
}
.combined-hero .home-actions{
  max-width:480px !important;
  gap:12px !important;
  margin-top:18px !important;
}
.combined-hero .home-action{
  padding:11px 14px !important;
  font-size:.70rem !important;
  letter-spacing:.095em !important;
  border-color:rgba(217,170,79,.34) !important;
  background:rgba(255,255,255,.035) !important;
  box-shadow:0 0 14px rgba(217,170,79,.07) !important;
  transition:transform .48s cubic-bezier(.2,.7,.2,1), background .48s cubic-bezier(.2,.7,.2,1), border-color .48s cubic-bezier(.2,.7,.2,1), box-shadow .48s cubic-bezier(.2,.7,.2,1) !important;
}
.combined-hero .home-action:hover{
  transform:translateY(-1px) !important;
  background:rgba(217,170,79,.075) !important;
  border-color:rgba(217,170,79,.48) !important;
  box-shadow:0 0 18px rgba(217,170,79,.12) !important;
}
.combined-hero .home-action span{
  opacity:.66 !important;
}
/* presentation crop only — no image edit. Focuses upper bodies/faces and removes lower half visually. */
.combined-hero-bg{
  object-position:center 16% !important;
  transform-origin:center 16% !important;
  animation:heroPhotoZoomFinal 9s cubic-bezier(.2,.7,.2,1) forwards, heroBreathFinal 14s ease-in-out 9s infinite alternate !important;
}
@keyframes heroPhotoZoomFinal{from{transform:scale(1.18)}to{transform:scale(1.125)}}
@keyframes heroBreathFinal{from{transform:scale(1.125)}to{transform:scale(1.138)}}
.combined-hero-overlay{
  background:
    linear-gradient(180deg,
      rgba(2,6,12,.58) 0%,
      rgba(3,10,20,.30) 24%,
      rgba(3,10,20,.20) 46%,
      rgba(3,10,20,.54) 78%,
      rgba(2,6,12,.94) 100%),
    radial-gradient(ellipse at center 28%, rgba(0,0,0,.28), transparent 58%),
    radial-gradient(ellipse at center, rgba(217,170,79,.08), transparent 45%) !important;
}
/* delayed luxury sequence */
.combined-hero .eyebrow{animation-delay:.25s !important;}
.combined-hero h1{animation-delay:.55s !important;}
.forever-divider{animation-delay:1.02s !important;}
.combined-hero .home-date{opacity:0;animation:heroTextFadeIn 1.3s cubic-bezier(.22,1,.36,1) 1.35s forwards;}
.hero-bottom-zone{opacity:0;transform:translateY(10px);animation:heroTextFadeIn 1.35s cubic-bezier(.22,1,.36,1) 1.72s forwards;}

@media(max-width:720px){
  .combined-hero .hero-inner{
    padding:72px 0 24px !important;
  }
  .combined-hero .eyebrow{
    font-size:.58rem !important;
    margin-bottom:12px !important;
  }
  .combined-hero h1{
    font-size:clamp(2.55rem,11.5vw,4.15rem) !important;
    margin-bottom:18px !important;
  }
  .forever-divider{
    font-size:.56rem !important;
    letter-spacing:.18em !important;
    margin-bottom:20px !important;
  }
  .combined-hero .home-date{
    font-size:.70rem !important;
    letter-spacing:.12em !important;
  }
  .combined-hero-bg{
    object-position:center 12% !important;
  }
  .combined-hero .countdown{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    width:min(360px,94vw) !important;
    gap:7px !important;
  }
  .combined-hero .countdown div{
    padding:7px 3px !important;
    border-radius:12px !important;
  }
  .combined-hero .countdown span{
    font-size:1.05rem !important;
  }
  .combined-hero .countdown small{
    font-size:.46rem !important;
  }
  .combined-hero .home-actions{
    max-width:330px !important;
    gap:10px !important;
  }
  .combined-hero .home-action{
    padding:10px 8px !important;
    font-size:.62rem !important;
  }
}

/* ===== SURGICAL EDIT: HERO LUXURY GRAPHIC HEADER ONLY ===== */
.hero-top-zone{
  position:relative;
}

.combined-hero .eyebrow{
  letter-spacing:.30em !important;
  opacity:.78 !important;
}

.combined-hero h1{
  letter-spacing:.065em !important;
  margin-bottom:18px !important;
  text-shadow:
    0 2px 8px rgba(0,0,0,.78),
    0 0 22px rgba(0,0,0,.50),
    0 0 26px rgba(217,170,79,.22) !important;
}

.forever-divider{
  display:grid !important;
  grid-template-columns:1fr !important;
  place-items:center !important;
  gap:8px !important;
  width:min(390px,72vw) !important;
  margin:2px auto 24px !important;
  color:rgba(255,232,178,.78) !important;
  font-size:.64rem !important;
  letter-spacing:.25em !important;
  line-height:1.2 !important;
  opacity:.82 !important;
  text-shadow:0 2px 12px rgba(0,0,0,.78),0 0 18px rgba(217,170,79,.18) !important;
}

.forever-divider span{
  position:relative;
  display:inline-block;
  padding:0 .6rem;
}

.forever-divider span::before,
.forever-divider span::after{
  content:"✧";
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  font-size:.72rem;
  letter-spacing:0;
  color:rgba(255,232,178,.66);
  text-shadow:0 0 12px rgba(217,170,79,.20);
}

.forever-divider span::before{left:-1.15rem;}
.forever-divider span::after{right:-1.15rem;}

.forever-divider::before,
.forever-divider::after{
  content:"" !important;
  display:block !important;
  width:min(235px,48vw) !important;
  height:1px !important;
  background:linear-gradient(90deg, transparent, rgba(217,170,79,.18), rgba(255,232,178,.58), rgba(217,170,79,.18), transparent) !important;
  transform:scaleX(0) !important;
  transform-origin:center !important;
  animation:dividerExtend 1.15s cubic-bezier(.2,.7,.2,1) 1.02s forwards !important;
}

@media(max-width:720px){
  .combined-hero h1{
    letter-spacing:.045em !important;
    margin-bottom:16px !important;
  }
  .forever-divider{
    width:min(320px,82vw) !important;
    gap:7px !important;
    font-size:.52rem !important;
    letter-spacing:.20em !important;
    margin-bottom:22px !important;
  }
  .forever-divider::before,
  .forever-divider::after{
    width:min(178px,46vw) !important;
  }
  .forever-divider span::before{left:-.95rem;}
  .forever-divider span::after{right:-.95rem;}
}

/* ===== LOCKED HERO HEADER MICRO REFINEMENT + REST HERO REFINEMENT ===== */
/* Surgical hero-only update. Header concept remains locked; refinements below only balance it. */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600&display=swap');

.combined-hero .hero-inner{
  transform:translateY(-8px) !important;
}

/* Locked luxury header: font + refined graphic, micro-polished */
.combined-hero h1,
.forever-divider{
  font-family:'Playfair Display', Georgia, serif !important;
}
.combined-hero h1{
  font-size:clamp(3.55rem,8.4vw,6.85rem) !important;
  letter-spacing:.058em !important;
  margin-bottom:15px !important;
}
.forever-divider{
  width:min(350px,70vw) !important;
  gap:9px !important;
  margin:0 auto 26px !important;
  font-size:.60rem !important;
  letter-spacing:.21em !important;
  opacity:.76 !important;
  color:rgba(255,232,178,.72) !important;
}
.forever-divider::before,
.forever-divider::after{
  width:min(190px,42vw) !important;
  background:linear-gradient(90deg, transparent, rgba(217,170,79,.14), rgba(255,232,178,.48), rgba(217,170,79,.14), transparent) !important;
}
.forever-divider span::before,
.forever-divider span::after{
  font-size:.61rem !important;
  color:rgba(255,232,178,.56) !important;
}
.forever-divider span::before{left:-1.02rem !important;}
.forever-divider span::after{right:-1.02rem !important;}

/* Rest of hero: quieter buttons, calmer countdown, slower photo motion */
.combined-hero .home-actions{
  max-width:440px !important;
  gap:14px 12px !important;
  margin-top:24px !important;
}
.combined-hero .home-action{
  padding:10px 13px !important;
  min-height:44px !important;
  font-size:.66rem !important;
  line-height:1.22 !important;
  letter-spacing:.10em !important;
  border-color:rgba(217,170,79,.24) !important;
  background:rgba(255,255,255,.026) !important;
  box-shadow:0 0 10px rgba(217,170,79,.045) !important;
  transition:transform .62s cubic-bezier(.22,1,.36,1), background .62s cubic-bezier(.22,1,.36,1), border-color .62s cubic-bezier(.22,1,.36,1), box-shadow .62s cubic-bezier(.22,1,.36,1) !important;
}
.combined-hero .home-action:hover{
  transform:translateY(-1px) !important;
  background:rgba(217,170,79,.048) !important;
  border-color:rgba(217,170,79,.36) !important;
  box-shadow:0 0 14px rgba(217,170,79,.085) !important;
}
.combined-hero .home-action span{
  display:block !important;
  margin-top:3px !important;
  font-size:.72em !important;
  letter-spacing:.04em !important;
  opacity:.54 !important;
}
.hero-countdown-block{
  margin-top:4px !important;
}
.hero-countdown-block .section-kicker{
  font-size:.58rem !important;
  letter-spacing:.25em !important;
  opacity:.48 !important;
}
.hero-countdown-block h2{
  font-size:clamp(.86rem,2vw,1.18rem) !important;
  letter-spacing:.16em !important;
  opacity:.64 !important;
  margin-bottom:12px !important;
}
.combined-hero .countdown{
  width:min(500px,88vw) !important;
  gap:15px !important;
}
.combined-hero .countdown div{
  padding:7px 6px !important;
  border-color:rgba(217,170,79,.18) !important;
  background:rgba(3,10,20,.16) !important;
  box-shadow:none !important;
}
.combined-hero .countdown span{
  font-size:clamp(1.02rem,2.7vw,1.58rem) !important;
  opacity:.78 !important;
  text-shadow:0 1px 6px rgba(0,0,0,.72), 0 0 10px rgba(217,170,79,.16) !important;
}
.combined-hero .countdown small{
  font-size:.50rem !important;
  opacity:.42 !important;
  letter-spacing:.075em !important;
}
.combined-hero-bg{
  animation:heroPhotoZoomRest 11s cubic-bezier(.22,1,.36,1) forwards, heroBreathRest 18s ease-in-out 11s infinite alternate !important;
}
@keyframes heroPhotoZoomRest{from{transform:scale(1.16)}to{transform:scale(1.125)}}
@keyframes heroBreathRest{from{transform:scale(1.125)}to{transform:scale(1.132)}}
.combined-hero-overlay{
  background:
    linear-gradient(180deg,
      rgba(2,6,12,.64) 0%,
      rgba(3,10,20,.31) 23%,
      rgba(3,10,20,.18) 47%,
      rgba(3,10,20,.56) 78%,
      rgba(2,6,12,.95) 100%),
    radial-gradient(ellipse at center 24%, rgba(0,0,0,.32), transparent 58%),
    radial-gradient(ellipse at center, rgba(217,170,79,.07), transparent 45%) !important;
}

@media(max-width:720px){
  .combined-hero .hero-inner{
    transform:translateY(-5px) !important;
  }
  .combined-hero h1{
    font-size:clamp(2.66rem,11.6vw,4.25rem) !important;
    letter-spacing:.042em !important;
    margin-bottom:14px !important;
  }
  .forever-divider{
    width:min(295px,80vw) !important;
    gap:8px !important;
    font-size:.49rem !important;
    letter-spacing:.17em !important;
    margin-bottom:22px !important;
  }
  .forever-divider::before,
  .forever-divider::after{
    width:min(150px,40vw) !important;
  }
  .forever-divider span::before,
  .forever-divider span::after{
    font-size:.52rem !important;
  }
  .forever-divider span::before{left:-.84rem !important;}
  .forever-divider span::after{right:-.84rem !important;}
  .combined-hero .countdown{
    width:min(344px,92vw) !important;
    gap:8px !important;
  }
  .combined-hero .countdown div{
    padding:6px 3px !important;
  }
  .combined-hero .countdown span{
    font-size:.98rem !important;
  }
  .combined-hero .countdown small{
    font-size:.42rem !important;
  }
  .combined-hero .home-actions{
    max-width:318px !important;
    gap:12px 9px !important;
    margin-top:22px !important;
  }
  .combined-hero .home-action{
    padding:9px 7px !important;
    font-size:.58rem !important;
  }
}

/* Invitation section inserted after hero */
.invitation-section{
  text-align:center;
  padding-top:76px;
  padding-bottom:72px;
}
.invitation-shell{
  width:min(760px,94vw);
  margin:0 auto;
}
.invitation-section h2{
  margin:0;
}
.invitation-intro{
  color:var(--muted);
  margin:14px auto 30px;
  line-height:1.65;
  letter-spacing:.035em;
}
.invitation-intro span{
  color:rgba(255,253,247,.62);
}
.premium-invitation-card{
  width:min(520px,94vw);
  margin:0 auto;
  padding:18px;
  border:1px solid rgba(217,170,79,.36);
  border-radius:34px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.075), rgba(217,170,79,.08)),
    radial-gradient(circle at 50% 0%, rgba(217,170,79,.18), transparent 54%);
  box-shadow:0 28px 90px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.09);
}
.invitation-frame-button{
  border:1px solid rgba(217,170,79,.58);
  appearance:none;
  -webkit-appearance:none;
}
.invitation-action-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-top:16px;
}
.invitation-action{
  border:1px solid rgba(217,170,79,.36);
  border-radius:999px;
  padding:12px 10px;
  color:var(--white);
  text-decoration:none;
  font-size:.78rem;
  letter-spacing:.11em;
  text-transform:uppercase;
  background:rgba(255,255,255,.045);
  transition:transform .35s ease, border-color .35s ease, background .35s ease;
}
.invitation-action span{
  display:block;
  margin-top:4px;
  color:rgba(255,253,247,.58);
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:none;
}
.invitation-action:hover{
  transform:translateY(-2px);
  border-color:rgba(217,170,79,.72);
  background:rgba(217,170,79,.10);
}
.primary-invitation-action{
  background:linear-gradient(135deg, rgba(217,170,79,.28), rgba(255,255,255,.06));
}
@media(max-width:720px){
  .premium-invitation-card{padding:12px;border-radius:28px}
  .invitation-action-row{grid-template-columns:1fr;gap:8px}
}

/* ===== OPTION A: FULL SITE LUXURY CONSISTENCY POLISH ===== */
:root{
  --luxury-ease:cubic-bezier(.18,.72,.18,1);
  --luxury-shadow:0 24px 80px rgba(0,0,0,.44), 0 0 34px rgba(217,170,79,.12);
  --luxury-border:rgba(217,170,79,.38);
}

section{
  padding-top:clamp(78px,10vw,118px);
  padding-bottom:clamp(78px,10vw,118px);
  position:relative;
}
section:not(.hero):not(.combined-hero)::before{
  content:"";
  position:absolute;
  left:50%;
  top:0;
  width:min(760px,82vw);
  height:1px;
  transform:translateX(-50%);
  background:linear-gradient(90deg,transparent,rgba(217,170,79,.24),transparent);
  pointer-events:none;
}

h1,h2,h3{
  text-wrap:balance;
}
h2{
  letter-spacing:.095em;
  line-height:1.08;
}
.section-kicker,.eyebrow{
  letter-spacing:.26em;
  line-height:1.45;
}
p{
  text-wrap:pretty;
}

.reveal{
  opacity:0;
  transform:translateY(22px) scale(.992);
  transition:opacity 1.15s var(--luxury-ease), transform 1.15s var(--luxury-ease), filter 1.15s var(--luxury-ease);
  filter:blur(1px);
}
.reveal.in{
  opacity:1;
  transform:translateY(0) scale(1);
  filter:blur(0);
}

.primary-button,
.home-action,
.invitation-action,
.quick-links a,
.rsvp-back,
.counter-controls button,
.submit-button{
  transition:transform .42s var(--luxury-ease), box-shadow .42s var(--luxury-ease), border-color .42s var(--luxury-ease), background .42s var(--luxury-ease), color .42s var(--luxury-ease);
  will-change:transform;
}
.primary-button:hover,
.home-action:hover,
.invitation-action:hover,
.quick-links a:hover,
.rsvp-back:hover,
.counter-controls button:hover,
.submit-button:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 38px rgba(0,0,0,.24), 0 0 28px rgba(217,170,79,.24);
}

.invitation-section{
  padding-top:clamp(86px,10vw,122px) !important;
  padding-bottom:clamp(86px,10vw,124px) !important;
  background:linear-gradient(180deg, rgba(217,170,79,.025), rgba(255,255,255,0) 34%, rgba(217,170,79,.032));
}
.premium-invitation-card{
  transform:translateZ(0);
  box-shadow:var(--luxury-shadow), inset 0 1px 0 rgba(255,255,255,.10) !important;
  transition:transform .8s var(--luxury-ease), box-shadow .8s var(--luxury-ease), border-color .8s var(--luxury-ease);
}
.premium-invitation-card:hover{
  transform:translateY(-4px) scale(1.006);
  border-color:rgba(217,170,79,.52);
  box-shadow:0 34px 100px rgba(0,0,0,.48), 0 0 46px rgba(217,170,79,.17), inset 0 1px 0 rgba(255,255,255,.12) !important;
}
.invitation-frame-button img{
  transition:transform 1.15s var(--luxury-ease);
}
.premium-invitation-card:hover .invitation-frame-button img{
  transform:scale(1.006);
}

.story-section{
  padding-top:clamp(82px,9vw,112px) !important;
  padding-bottom:clamp(86px,10vw,124px) !important;
}
.story-copy{
  max-width:850px;
}
.story-copy p{
  line-height:1.72;
  margin-bottom:15px;
}
.story-copy.english{
  margin-top:clamp(46px,6vw,68px) !important;
}
.gold-line{
  margin-top:4px;
  margin-bottom:24px;
}
.story-photo-card{
  margin-top:clamp(36px,5vw,54px) !important;
  margin-bottom:clamp(32px,5vw,48px) !important;
}

.details-section,
.directions-section,
.luxury-rsvp-section,
.closing-section{
  background:linear-gradient(180deg, rgba(255,255,255,0), rgba(217,170,79,.026), rgba(255,255,255,0));
}
.celebration-flow article,
.details-grid article,
.rsvp-card,
.choice-card{
  border-color:var(--luxury-border) !important;
  box-shadow:0 18px 58px rgba(0,0,0,.25), inset 0 1px 0 rgba(255,255,255,.06);
}
.celebration-flow article,
.details-grid article,
.choice-card{
  transition:transform .55s var(--luxury-ease), box-shadow .55s var(--luxury-ease), border-color .55s var(--luxury-ease);
}
.celebration-flow article:hover,
.details-grid article:hover,
.choice-card:hover{
  transform:translateY(-4px);
  border-color:rgba(217,170,79,.55) !important;
  box-shadow:0 24px 72px rgba(0,0,0,.32), 0 0 28px rgba(217,170,79,.11), inset 0 1px 0 rgba(255,255,255,.08);
}

.rsvp-card{
  backdrop-filter:blur(14px);
}
.rsvp-step.active{
  animation:luxuryStepIn .62s var(--luxury-ease) both;
}
@keyframes luxuryStepIn{
  from{opacity:0;transform:translateY(10px) scale(.995)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

.modal.open img{
  animation:luxuryModalIn .58s var(--luxury-ease) both;
}
@keyframes luxuryModalIn{
  from{opacity:0;transform:translateY(16px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

footer{
  padding-top:30px;
  padding-bottom:34px;
  border-top:1px solid rgba(217,170,79,.16);
}
footer p{
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(255,253,247,.58);
}

@media(max-width:720px){
  section{
    padding-top:70px;
    padding-bottom:70px;
  }
  h2{
    letter-spacing:.075em;
  }
  .section-kicker,.eyebrow{
    letter-spacing:.21em;
  }
  .story-copy p{
    line-height:1.62;
    margin-bottom:12px;
  }
  .premium-invitation-card:hover{
    transform:none;
  }
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.01ms !important;
  }
  .reveal,.reveal.in{
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
  }
}

/* ===== TOP-RIGHT CURATED MUSIC CONTROLS ===== */
.music-controls{
  position:fixed;
  top:18px;
  right:18px;
  z-index:40;
  display:flex;
  align-items:center;
  gap:8px;
}
.music-controls .music-toggle{
  position:static;
  top:auto;
  right:auto;
}
.music-next{
  border:1px solid rgba(217,170,79,.62);
  background:rgba(3,10,20,.62);
  color:var(--gold2);
  border-radius:999px;
  padding:11px 14px;
  font-family:inherit;
  letter-spacing:.13em;
  text-transform:uppercase;
  font-size:.68rem;
  box-shadow:0 0 18px rgba(217,170,79,.16);
  backdrop-filter:blur(10px);
  transition:transform .35s ease, box-shadow .35s ease, background .35s ease;
}
.music-next:hover,
.music-toggle:hover{
  transform:translateY(-1px);
  box-shadow:0 0 28px rgba(217,170,79,.28);
}
.youtube-music-player{
  position:fixed;
  width:1px;
  height:1px;
  left:-9999px;
  top:-9999px;
  opacity:0;
  pointer-events:none;
}
@media (max-width:560px){
  .music-controls{top:12px;right:12px;gap:6px}
  .music-toggle{width:48px;height:48px;font-size:22px}
  .music-next{padding:10px 12px;font-size:.62rem}
}


/* Our Story final line enhancement (scoped) */
.story-copy.english .glow-line{
  font-size: clamp(1.6rem, 2.4vw, 2.2rem);
  letter-spacing: 0.04em;
  color: #f3e5b5;
  text-shadow: 0 0 8px rgba(212,175,55,0.35), 0 0 18px rgba(212,175,55,0.25);
  display: block;
  text-align: center;
  margin-top: 1rem;
}


/* FINAL HERO FOCAL RESTORE — OUR FOREVER BEGINS AS MAIN MOMENT */
.hero-focal-version{
  text-align:center;
}

.hero-focal-version .hero-forever-focus{
  order:0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  margin:0 auto 18px;
  color:rgba(255,239,190,.98);
  font-family:var(--serif);
  font-size:clamp(1.65rem, 4.6vw, 3.45rem);
  line-height:1.05;
  letter-spacing:.18em;
  font-weight:400;
  text-transform:uppercase;
  text-shadow:
    0 2px 12px rgba(0,0,0,.88),
    0 0 14px rgba(217,170,79,.34),
    0 0 30px rgba(217,170,79,.22);
  opacity:0;
  animation:heroTextFadeIn 1.9s cubic-bezier(.22,1,.36,1) .18s forwards;
  transform:translateY(12px);
}

.hero-focal-version .hero-forever-focus::before,
.hero-focal-version .hero-forever-focus::after{
  content:"";
  width:min(96px,18vw);
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(239,205,130,.72),transparent);
  transform:scaleX(1);
  animation:none;
}

.hero-focal-version .hero-title-fade{
  font-size:clamp(2.75rem, 6.8vw, 5.65rem);
  margin:0 auto 12px;
  opacity:0;
  transform:translateY(12px);
  animation:heroTextFadeIn 1.6s cubic-bezier(.22,1,.36,1) .55s forwards;
}

.hero-focal-version .hero-support-line{
  margin:0 auto 18px;
  font-size:.72rem;
  letter-spacing:.28em;
  opacity:0;
  color:rgba(255,253,247,.72);
  animation:heroTextFadeIn 1.35s cubic-bezier(.22,1,.36,1) .88s forwards;
}

.hero-focal-version .subtitle{
  margin-top:12px;
}

@media(max-width:720px){
  .hero-focal-version .hero-forever-focus{
    font-size:clamp(1.25rem, 7vw, 2.2rem);
    letter-spacing:.12em;
    gap:10px;
  }
  .hero-focal-version .hero-forever-focus::before,
  .hero-focal-version .hero-forever-focus::after{
    width:min(54px,14vw);
  }
  .hero-focal-version .hero-title-fade{
    font-size:clamp(2.35rem, 11vw, 4.2rem);
  }
}


/* FINAL LOCKED HERO — NOVEL TITLE MOMENT */
.hero-focal-version{
  text-align:center;
}

.hero-focal-version .hero-novel-title,
.hero-focal-version .hero-forever-focus{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin:0 auto 24px;
  color:rgba(255,239,190,.99);
  font-family:var(--serif);
  font-size:clamp(2.35rem, 7.5vw, 5.65rem);
  line-height:.98;
  letter-spacing:.16em;
  font-weight:400;
  text-transform:uppercase;
  text-shadow:
    0 3px 14px rgba(0,0,0,.92),
    0 0 18px rgba(217,170,79,.42),
    0 0 42px rgba(217,170,79,.26);
  opacity:0;
  transform:translateY(14px);
  animation:heroTextFadeIn 2.05s cubic-bezier(.22,1,.36,1) .15s forwards;
}

.hero-focal-version .hero-novel-title::before,
.hero-focal-version .hero-novel-title::after,
.hero-focal-version .hero-forever-focus::before,
.hero-focal-version .hero-forever-focus::after{
  content:"";
  width:min(112px,18vw);
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(239,205,130,.74),transparent);
  transform:scaleX(1);
  animation:none;
}

.hero-focal-version .hero-title-fade{
  font-size:clamp(2.35rem, 5.6vw, 4.85rem);
  margin:0 auto 18px;
  opacity:0;
  transform:translateY(12px);
  animation:heroTextFadeIn 1.55s cubic-bezier(.22,1,.36,1) .72s forwards;
}

.hero-focal-version .subtitle{
  margin-top:16px;
}

@media(max-width:720px){
  .hero-focal-version .hero-novel-title,
  .hero-focal-version .hero-forever-focus{
    font-size:clamp(1.75rem, 10.8vw, 3.35rem);
    letter-spacing:.095em;
    gap:10px;
    margin-bottom:18px;
  }
  .hero-focal-version .hero-novel-title::before,
  .hero-focal-version .hero-novel-title::after,
  .hero-focal-version .hero-forever-focus::before,
  .hero-focal-version .hero-forever-focus::after{
    width:min(48px,12vw);
  }
  .hero-focal-version .hero-title-fade{
    font-size:clamp(2.2rem, 10vw, 3.8rem);
  }
}


/* HERO FINAL UNMISTAKABLE OVERRIDE */
.hero-final-unmistakable{
  text-align:center !important;
  max-width:min(1120px,96vw) !important;
  margin:0 auto !important;
}
.hero-final-unmistakable .hero-novel-title-final{
  display:block !important;
  margin:0 auto clamp(18px,3.2vw,34px) !important;
  font-family:var(--serif) !important;
  font-size:clamp(2.9rem, 9.8vw, 7.4rem) !important;
  line-height:.92 !important;
  letter-spacing:.145em !important;
  font-weight:400 !important;
  text-transform:uppercase !important;
  color:rgba(255,239,190,.99) !important;
  text-shadow:0 4px 18px rgba(0,0,0,.95),0 0 18px rgba(217,170,79,.55),0 0 52px rgba(217,170,79,.34) !important;
}
.hero-final-unmistakable .hero-couple-names-final{
  font-size:clamp(2.25rem,5.2vw,4.7rem) !important;
  margin:0 auto 18px !important;
}


/* FINAL CLEAN LUXURY HERO — EDITORIAL, RESTRAINED */
.hero-luxury-clean{
  text-align:center !important;
  max-width:min(900px,94vw) !important;
  margin:0 auto !important;
}

.hero-luxury-clean .hero-luxury-heading{
  margin:0 auto clamp(12px,2.2vw,24px) !important;
  font-family:var(--serif) !important;
  font-size:clamp(2.25rem, 6.2vw, 5.15rem) !important;
  line-height:1.04 !important;
  font-weight:400 !important;
  letter-spacing:.055em !important;
  text-transform:none !important;
  color:rgba(255,245,218,.96) !important;
  text-shadow:0 2px 14px rgba(0,0,0,.72) !important;
  opacity:0;
  transform:translateY(8px);
  animation:heroTextFadeIn 1.75s cubic-bezier(.22,1,.36,1) .12s forwards !important;
}

.hero-luxury-clean .hero-luxury-names{
  font-size:clamp(2.55rem, 6.6vw, 5.7rem) !important;
  line-height:.95 !important;
  margin:0 auto 16px !important;
  letter-spacing:.015em !important;
  color:rgba(255,253,247,.98) !important;
  text-shadow:0 3px 16px rgba(0,0,0,.78) !important;
  opacity:0;
  transform:translateY(8px);
  animation:heroTextFadeIn 1.55s cubic-bezier(.22,1,.36,1) .48s forwards !important;
}

.hero-luxury-clean .subtitle{
  margin-top:18px !important;
  color:rgba(255,253,247,.74) !important;
  letter-spacing:.11em !important;
}

.hero-luxury-clean .home-date{
  margin-top:18px !important;
  color:rgba(255,245,218,.82) !important;
}

/* Neutralize previous dramatic divider/title classes if cached in DOM */
.hero-luxury-clean .forever-divider,
.hero-luxury-clean .hero-novel-title-final,
.hero-luxury-clean .hero-novel-title,
.hero-luxury-clean .hero-forever-focus{
  display:none !important;
}

@media(max-width:720px){
  .hero-luxury-clean .hero-luxury-heading{
    font-size:clamp(1.8rem, 10vw, 3.3rem) !important;
    letter-spacing:.035em !important;
  }
  .hero-luxury-clean .hero-luxury-names{
    font-size:clamp(2.4rem, 12vw, 4.2rem) !important;
  }
  .hero-luxury-clean .subtitle{
    font-size:.78rem !important;
    letter-spacing:.08em !important;
  }
}

/* ===== SPANISH-PRIMARY BILINGUAL INVITATION UPDATE ===== */
.invitation-section .primary-lang,
.invitation-action .primary-lang{
  display:block;
  color:var(--white);
}
.invitation-section .secondary-lang,
.invitation-action .secondary-lang{
  display:block;
  color:rgba(255,253,247,.62);
  font-style:italic;
  font-size:.72em;
  letter-spacing:.08em;
  margin-top:5px;
}
.invitation-section h2 .primary-lang{
  color:var(--gold2);
}
.invitation-section h2 .secondary-lang{
  color:rgba(255,253,247,.58);
  font-size:.36em;
  font-weight:400;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin-top:10px;
}
.invitation-intro .primary-lang{
  color:rgba(255,253,247,.86);
}
.invitation-intro .secondary-lang{
  color:rgba(255,253,247,.58);
  font-size:.94em;
}
.invitation-action .secondary-lang{
  font-size:.68rem;
}

/* ===== FINAL CINEMATIC + MINIMAL LUXURY HERO ===== */
.cinematic-hero-copy {
  max-width: 980px;
  animation: heroSequenceIn 1.25s ease both;
}
.hero-microline {
  margin: 0 auto 18px;
  text-transform: uppercase;
  letter-spacing: .24em;
  color: #ffe6a6;
  font-size: clamp(.74rem, 1.8vw, .98rem);
  text-shadow: 0 2px 14px rgba(0,0,0,.58);
  animation: heroFadeRise .9s ease .15s both;
}
.hero-microline .primary-lang,
.hero-microline .secondary-lang,
.hero-statement .primary-lang,
.hero-statement .secondary-lang,
.gift-section .primary-lang,
.gift-section .secondary-lang {
  display: block;
}
.hero-microline .secondary-lang {
  margin-top: 6px;
  color: rgba(255,253,247,.66);
  font-size: .82em;
  letter-spacing: .18em;
  font-style: italic;
  text-transform: none;
}
.hero-statement {
  margin: 0 auto 18px !important;
  max-width: 760px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.55rem, 4.2vw, 3.65rem) !important;
  line-height: 1.12;
  font-weight: 400;
  letter-spacing: .105em;
  color: rgba(255,247,223,.92);
  text-transform: uppercase;
  text-shadow: 0 5px 22px rgba(0,0,0,.58), 0 0 16px rgba(217,170,79,.12);
  animation: heroFadeRise 1.25s ease .45s both;
}
.hero-statement .secondary-lang {
  margin-top: 10px;
  font-size: clamp(.72rem, 1.35vw, .98rem);
  line-height: 1.45;
  letter-spacing: .14em;
  color: rgba(255,253,247,.62);
  text-transform: none;
  font-style: italic;
}
.cinematic-hero-copy .hero-luxury-names {
  margin: 18px auto 0 !important;
  font-size: clamp(2.2rem, 5vw, 4.4rem) !important;
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  letter-spacing: .05em;
  color: #ffe6a6;
  text-shadow: 0 4px 22px rgba(0,0,0,.66), 0 0 22px rgba(217,170,79,.22);
  animation: heroFadeRise 1.1s ease .95s both;
}
.cinematic-hero-copy .home-date {
  animation: heroFadeRise 1s ease 1.15s both;
}
.combined-hero-bg {
  animation: cinematicHeroZoom 14s ease-out both;
  transform-origin: center center;
}
.combined-hero-overlay {
  background:
    linear-gradient(180deg, rgba(2,6,12,.82) 0%, rgba(3,10,20,.54) 28%, rgba(3,10,20,.28) 50%, rgba(3,10,20,.58) 76%, rgba(2,6,12,.90) 100%),
    radial-gradient(ellipse at center 30%, rgba(217,170,79,.12), transparent 48%),
    radial-gradient(ellipse at center, rgba(0,0,0,.34), transparent 64%) !important;
}
@keyframes heroFadeRise {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes heroSequenceIn {
  from { opacity: .96; }
  to { opacity: 1; }
}
@keyframes cinematicHeroZoom {
  from { transform: scale(1); }
  to { transform: scale(1.055); }
}
@media(max-width:720px){
  .hero-statement { font-size: clamp(1.82rem, 8.7vw, 3.2rem) !important; letter-spacing: .055em; }
  .hero-microline { letter-spacing: .18em; }
  .cinematic-hero-copy .hero-luxury-names { font-size: clamp(2rem, 9vw, 3.4rem) !important; }
}

/* ===== FINAL GIFTS + BLESSINGS SECTION ===== */
.gift-section {
  padding: 84px 20px;
  text-align: center;
  background:
    radial-gradient(ellipse at center top, rgba(217,170,79,.12), transparent 38%),
    linear-gradient(180deg, rgba(3,10,20,.72), rgba(3,10,20,.92));
}
.gift-shell {
  max-width: 760px;
  margin: 0 auto;
  border: 1px solid rgba(217,170,79,.36);
  border-radius: 32px;
  padding: clamp(28px, 6vw, 52px);
  background: linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.025));
  box-shadow: 0 24px 80px rgba(0,0,0,.34), inset 0 0 28px rgba(255,255,255,.025);
}
.gift-section h2 {
  margin: 0 0 18px;
  color: #ffe6a6;
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  letter-spacing: .11em;
  text-transform: uppercase;
  text-shadow: 0 0 22px rgba(217,170,79,.24);
}
.gift-section h2 .secondary-lang,
.gift-intro .secondary-lang,
.gift-action .secondary-lang {
  color: rgba(255,253,247,.64);
  font-size: .76em;
  margin-top: 7px;
  font-style: italic;
  text-transform: none;
  letter-spacing: .04em;
}
.gift-intro {
  max-width: 620px;
  margin: 0 auto 28px;
  color: rgba(255,253,247,.86);
  line-height: 1.75;
}
.gift-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}
.gift-action {
  min-width: 220px;
  border: 1px solid rgba(217,170,79,.48);
  border-radius: 999px;
  padding: 14px 22px;
  background: rgba(255,255,255,.045);
  color: #fffdf7;
  font: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: transform .25s ease, border-color .25s ease, background .25s ease;
}
.gift-action:hover {
  transform: translateY(-2px);
  border-color: rgba(255,230,166,.75);
  background: rgba(217,170,79,.12);
}
.primary-gift-action {
  background: linear-gradient(135deg, rgba(217,170,79,.28), rgba(255,255,255,.06));
}
.zelle-note {
  margin: 18px 0 0;
  color: rgba(255,253,247,.58);
  font-size: .84rem;
}

/* Final clean hero date hierarchy */
.cinematic-hero-copy .home-date .primary-lang,
.cinematic-hero-copy .home-date .secondary-lang{
  display:block;
}
.cinematic-hero-copy .home-date .secondary-lang{
  margin-top:5px;
  color:rgba(255,253,247,.68);
  font-style:italic;
  text-transform:none;
  letter-spacing:.12em;
}


/* Final hero refinement: softer, quieter luxury headline */
.combined-hero .hero-statement{
  font-size: clamp(1.55rem, 4.2vw, 3.65rem) !important;
  max-width: 760px !important;
  line-height: 1.12 !important;
  letter-spacing: .105em !important;
  color: rgba(255,247,223,.92) !important;
  text-shadow: 0 5px 22px rgba(0,0,0,.58), 0 0 16px rgba(217,170,79,.12) !important;
}
.combined-hero .hero-statement .secondary-lang{
  font-size: clamp(.72rem, 1.35vw, .98rem) !important;
  margin-top: 10px !important;
  letter-spacing: .14em !important;
  color: rgba(255,253,247,.62) !important;
}
@media(max-width:720px){
  .combined-hero .hero-statement{
    font-size: clamp(1.38rem, 7vw, 2.35rem) !important;
    max-width: 92vw !important;
    letter-spacing: .075em !important;
  }
}


/* Final hero language polish: Spanish primary, English secondary */
.hero-countdown-block .section-kicker .primary-lang,
.hero-countdown-block .section-kicker .secondary-lang,
.home-action .primary-lang,
.home-action .secondary-lang {
  display: block;
}
.hero-countdown-block .section-kicker .primary-lang {
  color: rgba(255,230,166,.94);
  letter-spacing: .18em;
}
.hero-countdown-block .section-kicker .secondary-lang {
  margin-top: 5px;
  color: rgba(255,253,247,.62);
  font-size: .78em;
  font-style: italic;
  letter-spacing: .12em;
  text-transform: none;
}
.home-action .primary-lang {
  color: rgba(255,253,247,.96);
  letter-spacing: .10em;
}
.home-action .secondary-lang {
  margin-top: 4px;
  color: rgba(255,253,247,.62);
  font-size: .76em;
  font-style: italic;
  letter-spacing: .04em;
  text-transform: none;
}
.primary-home-action .secondary-lang {
  color: rgba(255,253,247,.70);
}
@media(max-width:720px){
  .hero-countdown-block .section-kicker .primary-lang { letter-spacing: .12em; }
  .home-action .primary-lang { letter-spacing: .07em; }
}

/* ===== SITE-WIDE SPANISH PRIMARY MICRO POLISH ===== */
.primary-lang,
.secondary-lang{
  display:block;
}
.secondary-lang{
  color:rgba(255,253,247,.62);
  font-style:italic;
  font-size:.78em;
  letter-spacing:.045em;
  margin-top:5px;
}
.section-kicker .secondary-lang{
  font-size:.78em;
  letter-spacing:.11em;
  text-transform:none;
}
.details-section h2 .secondary-lang,
.directions-section h2 .secondary-lang,
.luxury-rsvp-section h2 .secondary-lang,
.story-copy h2 .secondary-lang{
  color:rgba(255,253,247,.58);
  font-size:.38em;
  font-weight:400;
  letter-spacing:.16em;
  text-transform:uppercase;
  margin-top:9px;
}
.celebration-flow h3 .secondary-lang,
.rsvp-step h3 .secondary-lang{
  color:rgba(255,253,247,.58);
  font-size:.72em;
  letter-spacing:.08em;
  margin-top:6px;
}
.celebration-flow p .secondary-lang,
.celebration-flow small .secondary-lang,
.rsvp-step p .secondary-lang,
.rsvp-card label .secondary-lang,
.choice-card .secondary-lang,
.counter-row .secondary-lang,
.rsvp-total .secondary-lang,
.global-rsvp-counter .secondary-lang,
.closing-section .secondary-lang{
  color:rgba(255,253,247,.58);
  font-size:.82em;
  font-style:italic;
  margin-top:4px;
}
.primary-button .secondary-lang,
.rsvp-next .secondary-lang,
.rsvp-back .secondary-lang,
.submit-button .secondary-lang,
.music-next .secondary-lang{
  font-size:.68em;
  margin-top:3px;
}
.rsvp-subline{
  margin-top:14px;
}
.rsvp-success .secondary-lang,
.guest-summary .secondary-lang{
  color:rgba(255,253,247,.62);
  font-style:italic;
  font-size:.78em;
  margin-top:4px;
}
.music-next .primary-lang{letter-spacing:.08em;}
.music-next .secondary-lang{text-transform:none;letter-spacing:.04em;}


/* Final patch backup styles */


/* Final visibility + content fixes */
.combined-hero .home-actions{
  position:relative !important;
  z-index:20 !important;
  gap:14px !important;
  max-width:590px !important;
}
.combined-hero .home-action,
.combined-hero .home-action:visited{
  color:#fff !important;
  background:linear-gradient(135deg, rgba(255,255,255,.28), rgba(217,170,79,.22)) !important;
  border:1.5px solid rgba(255,255,255,.72) !important;
  box-shadow:0 14px 34px rgba(0,0,0,.34), 0 0 24px rgba(217,170,79,.22), inset 0 1px 0 rgba(255,255,255,.24) !important;
  text-shadow:0 2px 9px rgba(0,0,0,.55) !important;
  backdrop-filter:blur(14px) !important;
  -webkit-backdrop-filter:blur(14px) !important;
  opacity:1 !important;
}
.combined-hero .home-action span{
  color:#fff !important;
  opacity:1 !important;
  font-weight:700 !important;
}
.combined-hero .home-action .secondary-lang{
  opacity:.92 !important;
}
.combined-hero .home-action:hover{
  background:linear-gradient(135deg, rgba(255,255,255,.38), rgba(217,170,79,.32)) !important;
  border-color:rgba(255,255,255,.92) !important;
  transform:translateY(-2px) !important;
}

/* Elegant top-right music player */




/* RSVP per-adult dinner selection — final */
.rsvp-step[data-step="5"].active,
.rsvp-step[data-step="5"] .adult-meal-selections,
.adult-meal-selections,
.adult-meal-fields{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}
.adult-meal-selections{
  margin:18px 0 18px !important;
  padding:18px !important;
  border-radius:24px !important;
  background:rgba(255,255,255,.70) !important;
  border:1px solid rgba(111,90,79,.16) !important;
  box-shadow:0 12px 32px rgba(82,55,43,.07) !important;
}
.meal-helper-text{
  text-align:center !important;
  color:#6f5a4f !important;
  line-height:1.6 !important;
  margin:8px 0 16px !important;
}
.adult-meal-group{
  margin:18px 0 !important;
  padding:16px !important;
  border-radius:20px !important;
  background:rgba(255,255,255,.58) !important;
  border:1px solid rgba(111,90,79,.12) !important;
}
.adult-meal-title{
  font-family:Georgia, 'Times New Roman', serif !important;
  color:#5b463d !important;
  font-weight:700 !important;
  text-align:center !important;
  margin-bottom:12px !important;
  letter-spacing:.04em !important;
}
.meal-options-luxury{
  display:grid !important;
  gap:12px !important;
}
.meal-choice-card{
  display:flex !important;
  align-items:flex-start !important;
  gap:12px !important;
  padding:15px !important;
  border-radius:18px !important;
  border:1px solid rgba(111,90,79,.20) !important;
  background:rgba(255,255,255,.84) !important;
  cursor:pointer !important;
  box-shadow:0 8px 22px rgba(82,55,43,.06) !important;
  color:#5b463d !important;
}
.meal-choice-card input{
  display:inline-block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:auto !important;
  height:auto !important;
  margin-top:5px !important;
  transform:scale(1.14) !important;
  accent-color:#9a714f !important;
}
.meal-choice-card span{
  display:block !important;
  text-align:left !important;
}
.meal-choice-card strong{
  display:block !important;
  font-size:10.5px !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
  color:#9a714f !important;
  margin-bottom:6px !important;
}
.meal-choice-card em{
  display:block !important;
  font-style:normal !important;
  font-weight:700 !important;
  color:#5b463d !important;
  margin-bottom:5px !important;
}
.meal-choice-card small{
  display:block !important;
  color:#6f5a4f !important;
  line-height:1.55 !important;
}
.meal-count-notice{
  text-align:center !important;
  margin:14px 0 0 !important;
  font-size:13px !important;
  color:#6f5a4f !important;
}
.rsvp-note-field{
  display:block !important;
  margin-top:18px !important;
}



/* Final invisible-first-interaction music player */
#weddingMusicPlayer{
  position:fixed;
  top:18px;
  right:18px;
  z-index:99999;
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 9px;
  border-radius:999px;
  background:rgba(26,18,15,.42);
  border:1px solid rgba(255,255,255,.28);
  box-shadow:0 12px 30px rgba(0,0,0,.22);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
#weddingMusicPlayer button{
  width:36px;
  height:36px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.12);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  font-size:14px;
  line-height:1;
  text-shadow:0 1px 8px rgba(0,0,0,.35);
  transition:background .2s ease, transform .2s ease;
}
#weddingMusicPlayer button:hover{
  background:rgba(255,255,255,.22);
}
#weddingMusicPlayer button:active{
  transform:scale(.94);
}
html.music-playing #musicToggle{
  background:rgba(217,170,79,.28);
  box-shadow:0 0 18px rgba(217,170,79,.25);
}
@media(max-width:600px){
  #weddingMusicPlayer{
    top:12px;
    right:12px;
    padding:6px 8px;
  }
  #weddingMusicPlayer button{
    width:34px;
    height:34px;
  }
}
