:root{
  --burgundy:#6d1734;
  --burgundy-dark:#4d1025;
  --cream:#fffaf3;
  --ivory:#f7efe4;
  --ink:#2d2526;
  --muted:#786d6f;
  --gold:#b78b52;
  --white:#fff;
  --shadow:0 12px 35px rgba(57,28,37,.10);
  --radius:24px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, sans-serif;
  color:var(--ink);
  background:var(--cream);
}
button,input,textarea{font:inherit}
button{cursor:pointer}
.hero{
  min-height:88vh;
  display:grid;
  place-items:center;
  position:relative;
  padding:32px 22px 110px;
  text-align:center;
  background:
    radial-gradient(circle at 30% 20%, rgba(255,255,255,.20), transparent 35%),
    linear-gradient(135deg,#7c1c3c,#4d1025);
  color:white;
  overflow:hidden;
}
.hero:before,.hero:after{
  content:"";
  position:absolute;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
}
.hero:before{width:420px;height:420px;left:-160px;top:-120px}
.hero:after{width:520px;height:520px;right:-240px;bottom:-180px}
.hero-content{position:relative;z-index:2;max-width:760px}
.eyebrow,.kicker{letter-spacing:.22em;font-size:.76rem;font-weight:800}
.hero h1{
  font-family:Georgia, 'Times New Roman', serif;
  font-weight:500;
  font-size:clamp(3.8rem,14vw,7.5rem);
  line-height:.9;
  margin:.28em 0 .22em;
}
.hero h1 span{font-style:italic;color:#f0d4b2}
.date{font-size:1.15rem;margin:.6rem 0}
.date small{opacity:.78}
.venue{opacity:.92;margin-bottom:1.5rem}
.hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.primary,.ghost,.chat-card{
  border:0;border-radius:999px;padding:14px 20px;font-weight:800;
}
.primary{background:var(--burgundy);color:white}
.hero .primary{background:white;color:var(--burgundy)}
.ghost{background:transparent;border:1px solid rgba(255,255,255,.65);color:white}
.inline{display:inline-block;text-decoration:none}
main{padding-bottom:90px}
.section{padding:72px 20px;max-width:1100px;margin:0 auto}
.section.alt{max-width:none;background:var(--ivory)}
.section.alt>*{max-width:1060px;margin-left:auto;margin-right:auto}
.section-head{text-align:center;margin-bottom:30px}
.section-head h2{
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(2rem,7vw,3.3rem);
  font-weight:500;
  margin:.25rem 0;
  color:var(--burgundy-dark)
}
.kicker{color:var(--gold)}
.cards{display:grid;gap:18px}
.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.card,.lock-card,.profile{
  background:white;border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)
}
.card h3,.profile h3{margin-top:0;color:var(--burgundy-dark)}
.muted,.form-note{color:var(--muted);font-size:.92rem}
.text-link{color:var(--burgundy);font-weight:800;text-decoration:none}
.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.profile{text-align:center}
.avatar{
  width:96px;height:96px;border-radius:50%;display:grid;place-items:center;
  margin:0 auto 16px;background:var(--ivory);color:var(--burgundy);
  font-family:Georgia,serif;font-size:2.2rem
}
.faq-list{display:grid;gap:10px}
details{
  background:white;border-radius:16px;padding:16px 18px;box-shadow:0 5px 18px rgba(57,28,37,.06)
}
summary{font-weight:800;cursor:pointer;color:var(--burgundy-dark)}
.question-box{text-align:center;margin-top:28px}
.form{max-width:700px;margin:auto;display:grid;gap:18px}
label,fieldset{display:grid;gap:8px;font-weight:700}
input,textarea{
  width:100%;padding:13px 14px;border:1px solid #d9ccca;border-radius:14px;background:#fffdf9
}
textarea{min-height:90px;resize:vertical}
fieldset{border:1px solid #e2d7d2;border-radius:16px;padding:16px}
.radio{display:flex;align-items:center;gap:8px;font-weight:500}
.radio input{width:auto}
.gallery-placeholder{
  min-height:160px;border:2px dashed #d7c5c0;border-radius:18px;
  display:grid;place-items:center;color:var(--muted)
}
.private-zone{padding-top:72px}
.lock-card{text-align:center;max-width:680px;margin:auto}
.lock{font-size:2rem}
.private-content{margin-top:22px}
.hidden{display:none}
.timeline{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.timeline li{display:flex;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid #eee2dc}
.announcement{padding:14px;border-left:4px solid var(--gold);background:var(--ivory);border-radius:12px}
.chat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}
.chat-card{background:var(--burgundy);color:white;border-radius:18px}
.bottom-nav{
  position:fixed;left:50%;transform:translateX(-50%);bottom:14px;z-index:50;
  display:flex;gap:4px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);
  border:1px solid rgba(109,23,52,.12);box-shadow:var(--shadow);
  border-radius:999px;padding:6px;max-width:calc(100% - 20px)
}
.bottom-nav button{
  border:0;background:transparent;color:var(--burgundy);font-weight:800;
  padding:10px 12px;border-radius:999px;font-size:.82rem
}
.bottom-nav button:hover{background:var(--ivory)}
footer{text-align:center;padding:30px 20px 110px;color:var(--muted);display:grid;gap:6px}
footer strong{color:var(--burgundy-dark);font-family:Georgia,serif;font-size:1.4rem}
@media(max-width:720px){
  .cards.two,.profile-grid,.chat-grid{grid-template-columns:1fr}
  .section{padding:56px 16px}
  .bottom-nav button{font-size:.72rem;padding:9px 8px}
  .hero{min-height:82vh}
}

.couple-strip{
  max-width:820px;
  margin:-48px auto 20px;
  position:relative;
  z-index:5;
  display:grid;
  grid-template-columns:130px 1fr 130px;
  align-items:center;
  gap:18px;
  background:white;
  border-radius:28px;
  padding:14px;
  box-shadow:var(--shadow);
}
.couple-photo{
  width:130px;
  height:130px;
  border-radius:20px;
  overflow:hidden;
  background:var(--ivory);
}
.couple-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.couple-copy{text-align:center;padding:8px}
.couple-copy p{margin:.45rem 0 0;color:var(--muted);font-family:Georgia,serif;font-style:italic}
@media(max-width:620px){
  .couple-strip{
    width:calc(100% - 32px);
    grid-template-columns:82px 1fr 82px;
    gap:10px;
    margin:-36px auto 8px;
    border-radius:22px;
    padding:10px;
  }
  .couple-photo{width:82px;height:82px;border-radius:16px}
  .couple-copy p{font-size:.78rem}
  .couple-copy .kicker{font-size:.62rem}
}

/* Version 3 visual redesign */
.venue-hero{
  background-image:
    linear-gradient(180deg,rgba(24,16,19,.28),rgba(45,16,28,.68)),
    url("https://static.wixstatic.com/media/90c65b_c649ada7318a448b88fe96c7457ece40~mv2.jpg/v1/fill/w_1600,h_1200,al_c,q_88/IMG_7731%20Jennifer%20Sawyer_edited.jpg");
  background-size:cover;
  background-position:center 48%;
}
.venue-hero .overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(0,0,0,.04),rgba(60,15,31,.28)),
    radial-gradient(circle at center,transparent 25%,rgba(0,0,0,.15) 100%);
}
.photo-credit{
  margin-top:18px;
  font-size:.72rem;
  opacity:.72;
}
.countdown{
  display:flex;
  justify-content:center;
  gap:10px;
  margin:20px auto;
}
.countdown div{
  min-width:80px;
  padding:11px 12px;
  border-radius:16px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.32);
  backdrop-filter:blur(8px);
}
.countdown strong{
  display:block;
  font-family:Georgia,serif;
  font-size:1.6rem;
}
.countdown span{
  display:block;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.story-section{padding-top:40px}
.story-card{
  max-width:760px;
  margin:auto;
  text-align:center;
  padding:30px 34px;
  border-top:1px solid #dcc9c0;
  border-bottom:1px solid #dcc9c0;
}
.story-lead{
  font-family:Georgia,serif;
  font-size:1.25rem;
  line-height:1.7;
  color:var(--burgundy-dark);
}
.weekend-banner{
  display:grid;
  grid-template-columns:1fr 110px;
  align-items:center;
  gap:24px;
  background:linear-gradient(135deg,#fff,#f5e8e0);
  border-radius:var(--radius);
  padding:26px;
  box-shadow:var(--shadow);
  margin-bottom:18px;
}
.weekend-banner h3{
  margin:.3rem 0;
  font-family:Georgia,serif;
  font-size:1.7rem;
  color:var(--burgundy-dark);
}
.weekend-date{
  text-align:center;
  color:var(--burgundy);
  border-left:1px solid #d9c5bd;
  font-weight:800;
  line-height:1.1;
  letter-spacing:.08em;
}
.weekend-date strong{
  display:block;
  font-family:Georgia,serif;
  font-size:3.5rem;
  line-height:.9;
}
.venue-feature{
  min-height:430px;
  display:grid;
  align-items:end;
  background-size:cover;
  background-position:center;
  position:relative;
}
.barn-feature{
  background-image:
    linear-gradient(180deg,rgba(0,0,0,.05),rgba(35,20,23,.68)),
    url("https://static.wixstatic.com/media/90c65b_b65cd42be6a14480b1b6d4395d6e87c7~mv2.jpeg/v1/fill/w_1600,h_1000,al_c,q_88/IMG_8490%20Jennifer%20Sawyer.jpeg");
}
.venue-feature-overlay{
  color:white;
  padding:42px max(20px,calc((100% - 1060px)/2));
  max-width:100%;
}
.venue-feature-overlay h2{
  margin:.25rem 0;
  font-family:Georgia,serif;
  font-size:clamp(2rem,6vw,3.3rem);
  font-weight:500;
}
.venue-feature-overlay p{max-width:650px}
.weather-card{
  max-width:780px;
  margin:auto;
  display:flex;
  align-items:center;
  gap:24px;
  background:white;
  border-radius:var(--radius);
  padding:26px;
  box-shadow:var(--shadow);
}
.weather-icon{
  flex:0 0 95px;
  height:95px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--ivory);
  font-size:3rem;
  color:var(--gold);
}
.weather-card h3{
  margin-top:0;
  color:var(--burgundy-dark);
}
.nearby-card{min-height:165px}
.install-section{padding-top:40px}
.install-card{
  max-width:850px;
  margin:auto;
  display:grid;
  grid-template-columns:110px 1fr;
  gap:24px;
  align-items:center;
  background:linear-gradient(135deg,var(--burgundy-dark),var(--burgundy));
  color:white;
  border-radius:30px;
  padding:28px;
  box-shadow:var(--shadow);
}
.install-card h2{
  font-family:Georgia,serif;
  font-weight:500;
  margin:.2rem 0 .5rem;
}
.install-icon{
  width:96px;
  height:96px;
  border-radius:24px;
  display:grid;
  place-items:center;
  background:var(--cream);
  color:var(--burgundy);
  font-family:Georgia,serif;
  font-size:1.7rem;
  font-weight:700;
}
.install-card .primary{
  background:white;
  color:var(--burgundy);
}
.install-card .form-note{color:rgba(255,255,255,.78)}
@media(max-width:620px){
  .countdown div{min-width:68px;padding:9px}
  .weekend-banner{grid-template-columns:1fr}
  .weekend-date{
    border-left:0;
    border-top:1px solid #d9c5bd;
    padding-top:16px;
  }
  .venue-feature{min-height:330px}
  .weather-card{align-items:flex-start}
  .weather-icon{flex-basis:70px;height:70px;font-size:2.2rem}
  .install-card{grid-template-columns:1fr;text-align:center}
  .install-icon{margin:auto}
}

/* Version 4: show the actual ceremony site clearly instead of cropping it away */
.venue-hero{
  min-height:auto;
  padding:46px 20px 90px;
  background:
    radial-gradient(circle at 15% 20%,rgba(255,255,255,.18),transparent 28%),
    linear-gradient(135deg,#5a142b,#7a203d 52%,#4b1024);
  text-align:left;
}
.hero-shell{
  width:min(1180px,100%);
  margin:auto;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(440px,1.1fr);
  gap:34px;
  align-items:center;
  position:relative;
  z-index:2;
}
.hero-copy{padding:24px 6px}
.hero-copy h1{
  font-size:clamp(3.5rem,8vw,6.8rem);
  margin:.18em 0 .2em;
}
.hero-copy .venue{max-width:520px}
.hero-copy .hero-actions{justify-content:flex-start}
.hero-copy .countdown{justify-content:flex-start}
.hero-photo-card{
  margin:0;
  background:#fff;
  padding:10px;
  border-radius:28px;
  box-shadow:0 24px 60px rgba(25,8,15,.35);
  transform:rotate(.4deg);
}
.hero-photo-card img{
  display:block;
  width:100%;
  height:auto;
  max-height:650px;
  object-fit:contain;
  border-radius:20px;
  background:#eee;
}
.hero-photo-card figcaption{
  color:var(--burgundy-dark);
  text-align:center;
  font-size:.82rem;
  font-weight:800;
  padding:10px 6px 4px;
}
.venue-gallery-section{
  padding-top:72px;
}
.gallery-intro{
  max-width:680px;
  margin:.5rem auto 0;
  color:var(--muted);
}
.venue-photo-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  max-width:1060px;
  margin:auto;
}
.venue-photo{
  margin:0;
  background:white;
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.venue-photo.large,
.venue-photo.wide{
  grid-column:1 / -1;
}
.venue-photo img{
  width:100%;
  height:330px;
  object-fit:cover;
  display:block;
}
.venue-photo.large img{
  height:auto;
  max-height:620px;
  object-fit:contain;
  background:#eee;
}
.venue-photo.wide img{
  height:380px;
}
.venue-photo figcaption{
  display:grid;
  gap:3px;
  padding:15px 18px 18px;
}
.venue-photo figcaption strong{
  color:var(--burgundy-dark);
  font-family:Georgia,serif;
  font-size:1.15rem;
}
.venue-photo figcaption span{
  color:var(--muted);
  font-size:.9rem;
}
@media(max-width:860px){
  .hero-shell{grid-template-columns:1fr}
  .venue-hero{text-align:center;padding-top:26px}
  .hero-copy .hero-actions,
  .hero-copy .countdown{justify-content:center}
  .hero-copy .venue{margin-left:auto;margin-right:auto}
  .hero-photo-card{max-width:720px;margin:auto}
}
@media(max-width:620px){
  .venue-photo-grid{grid-template-columns:1fr}
  .venue-photo.large,.venue-photo.wide{grid-column:auto}
  .venue-photo img,.venue-photo.wide img{height:240px}
  .venue-photo.large img{height:auto;max-height:none}
  .hero-photo-card{padding:7px;border-radius:20px}
  .hero-photo-card img{border-radius:15px}
}

/* Version 6 photo corrections */
.hero-photo-card img{
  width:100%;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center !important;
}
.venue-photo img{
  width:100%;
  height:auto !important;
  max-height:560px;
  object-fit:contain !important;
  object-position:center !important;
  background:#f3eee8;
}
.venue-photo.feature-photo img{
  max-height:none;
}
.venue-photo{
  display:flex;
  flex-direction:column;
}
.venue-photo figcaption{
  margin-top:auto;
}
@media(max-width:620px){
  .venue-photo img{
    height:auto !important;
    max-height:none;
  }
}

/* Version 7: full-photo opening screen with text over the ceremony view */
.venue-hero{
  min-height:92vh !important;
  padding:42px 20px 100px !important;
  display:grid !important;
  place-items:center !important;
  text-align:center !important;
  background-image:
    linear-gradient(180deg,rgba(14,12,12,.16),rgba(20,10,14,.30) 45%,rgba(30,10,18,.54)),
    url("https://static.wixstatic.com/media/90c65b_c649ada7318a448b88fe96c7457ece40~mv2.jpg") !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}
.hero-shell{
  display:block !important;
  width:min(900px,100%) !important;
  margin:auto !important;
}
.hero-copy{
  padding:28px 24px !important;
  border-radius:30px;
  background:rgba(24,12,17,.20);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  text-shadow:0 2px 14px rgba(0,0,0,.65);
}
.hero-copy h1{
  font-size:clamp(4rem,12vw,7.6rem) !important;
}
.hero-copy .venue{
  max-width:none !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.hero-copy .hero-actions,
.hero-copy .countdown{
  justify-content:center !important;
}
.hero-photo-card{
  display:none !important;
}
.venue-hero .primary{
  background:white !important;
  color:var(--burgundy) !important;
  text-shadow:none;
}
.venue-hero .ghost{
  background:rgba(0,0,0,.16) !important;
}
@media(max-width:620px){
  .venue-hero{
    min-height:88vh !important;
    background-position:center center !important;
    padding-left:14px !important;
    padding-right:14px !important;
  }
  .hero-copy{
    padding:24px 12px !important;
    background:rgba(24,12,17,.16);
  }
}

/* Version 8: exact user-selected ceremony photo */
.venue-hero{
  background-image:
    linear-gradient(180deg,rgba(8,10,12,.08),rgba(18,10,14,.18) 48%,rgba(30,10,18,.46)),
    url("ceremony-hero.jpg") !important;
  /* Favor the lower part of the image so sky is sacrificed before benches/arbor. */
  background-position:center 68% !important;
  background-size:cover !important;
}
@media(max-width:620px){
  .venue-hero{
    background-position:center 72% !important;
  }
}

/* Version 9: preserve the ceremony benches and remove the hazy text panel */
.venue-hero{
  /* Show the entire photograph whenever possible. The image itself supplies the background. */
  background-size:cover !important;
  /* Anchor to the bottom so benches/arbor/lawn are protected; any crop comes primarily from sky. */
  background-position:center bottom !important;
  background-image:url("ceremony-hero.jpg") !important;
}
.hero-copy{
  /* No gray/translucent box and no blur over the photograph. */
  background:transparent !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  border-radius:0 !important;
  /* Text shadow only, so lettering stays legible while the photo remains crisp. */
  text-shadow:
    0 2px 4px rgba(0,0,0,.88),
    0 0 14px rgba(0,0,0,.58) !important;
}
.hero-copy .eyebrow,
.hero-copy h1,
.hero-copy .date,
.hero-copy .venue{
  text-shadow:
    0 2px 4px rgba(0,0,0,.95),
    0 0 12px rgba(0,0,0,.65) !important;
}
.countdown div{
  background:rgba(0,0,0,.18) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  border:1px solid rgba(255,255,255,.72) !important;
}
@media(min-width:1000px){
  .venue-hero{
    /* Slightly less vertical fill on wide desktop screens to preserve more of the original composition. */
    background-size:100% auto !important;
    background-color:#243727 !important;
    background-repeat:no-repeat !important;
    background-position:center bottom !important;
  }
}
@media(max-width:620px){
  .venue-hero{
    /* Bottom anchoring is most important on tall phone screens. */
    background-position:center bottom !important;
  }
}

.contact-card{
  max-width:700px;
  margin:auto;
  text-align:center;
}

/* Version 12 final-layout trial */
.venue-hero{
  background-image:url("ceremony-hero-final.jpg") !important;
  background-position:center center !important;
  background-size:cover !important;
}
.hero-copy{
  background:transparent !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
.story-layout{
  display:grid;
  grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);
  gap:34px;
  align-items:center;
  max-width:980px;
  margin:auto;
}
.story-photo{
  margin:0;
  border-radius:26px;
  overflow:hidden;
  background:white;
  box-shadow:var(--shadow);
  transform:rotate(-.6deg);
}
.story-photo img{
  width:100%;
  height:auto;
  display:block;
}
.story-photo figcaption{
  padding:11px 15px 14px;
  text-align:center;
  color:var(--muted);
  font-family:Georgia,serif;
  font-style:italic;
  font-size:.9rem;
}
.story-copy{
  text-align:left;
}
.story-copy h2{
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(2.3rem,6vw,3.7rem);
  font-weight:500;
  color:var(--burgundy-dark);
  margin:.2rem 0 .5rem;
}
.story-copy .story-lead{
  text-align:left;
  border:0;
}
.rsvp-install-grid{
  max-width:980px;
  margin:auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 230px;
  gap:20px;
  align-items:stretch;
}
.rsvp-main .form{
  max-width:none;
  margin:0;
  height:100%;
}
.keep-handy-mini{
  background:linear-gradient(180deg,var(--burgundy-dark),var(--burgundy));
  color:white;
  border-radius:24px;
  padding:24px 18px;
  box-shadow:var(--shadow);
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.keep-handy-mini .install-icon{
  width:74px;
  height:74px;
  border-radius:19px;
  font-size:1.35rem;
  margin-bottom:18px;
}
.keep-handy-mini h3{
  font-family:Georgia,serif;
  font-weight:500;
  font-size:1.45rem;
  margin:.45rem 0;
}
.keep-handy-mini p{
  font-size:.9rem;
  line-height:1.5;
}
.keep-handy-mini .primary{
  background:white;
  color:var(--burgundy);
  margin-top:8px;
}
.keep-handy-mini .form-note{
  color:rgba(255,255,255,.78);
}
@media(max-width:760px){
  .story-layout{
    grid-template-columns:1fr;
    gap:22px;
  }
  .story-photo{
    max-width:430px;
    margin:auto;
  }
  .story-copy{
    text-align:center;
  }
  .story-copy .story-lead{
    text-align:center;
  }
  .rsvp-install-grid{
    grid-template-columns:minmax(0,1fr) 150px;
    gap:10px;
  }
  .keep-handy-mini{
    padding:18px 10px;
  }
  .keep-handy-mini h3{
    font-size:1.05rem;
  }
  .keep-handy-mini p{
    font-size:.76rem;
  }
  .keep-handy-mini .install-icon{
    width:58px;height:58px;font-size:1rem;
  }
  .keep-handy-mini .primary{
    padding:11px 10px;
    font-size:.78rem;
  }
}
@media(max-width:520px){
  .rsvp-install-grid{
    grid-template-columns:minmax(0,1fr) 118px;
    gap:8px;
  }
  .keep-handy-mini{
    padding:14px 7px;
    border-radius:18px;
  }
  .keep-handy-mini .kicker{
    font-size:.5rem;
  }
  .keep-handy-mini h3{
    font-size:.88rem;
  }
  .keep-handy-mini p{
    font-size:.68rem;
  }
  .keep-handy-mini .install-icon{
    width:48px;height:48px;border-radius:14px;
  }
}

/* Version 13 adjustments */
.venue-hero{
  position:relative;
}
.hero-shell{
  width:100% !important;
  min-height:72vh;
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-end !important;
  padding-top:18px;
}
.hero-copy{
  width:min(470px,46vw);
  margin-right:4vw;
  margin-left:auto;
  text-align:right !important;
  padding:18px 18px !important;
}
.hero-copy .hero-actions,
.hero-copy .countdown{
  justify-content:flex-end !important;
}
.hero-copy .venue{
  margin-left:auto !important;
  margin-right:0 !important;
}
.hero-copy h1{
  font-size:clamp(3rem,7vw,5.4rem) !important;
}
.couple-strip{
  max-width:820px;
  margin:-34px auto 20px;
  position:relative;
  z-index:5;
  display:grid;
  grid-template-columns:120px 1fr 120px;
  align-items:center;
  gap:18px;
  background:white;
  border-radius:28px;
  padding:12px;
  box-shadow:var(--shadow);
}
.couple-photo{
  width:120px;
  height:120px;
  border-radius:18px;
  overflow:hidden;
  background:var(--ivory);
}
.couple-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.couple-copy{text-align:center;padding:6px}
.couple-copy p{margin:.4rem 0 0;color:var(--muted);font-family:Georgia,serif;font-style:italic}
.story-layout-compact{
  grid-template-columns:180px minmax(0,1fr) !important;
  gap:24px !important;
}
.story-photo-small{
  max-width:180px;
  margin:0;
}
.story-photo-small img{
  width:100%;
  height:auto;
}
.story-photo-small figcaption{
  font-size:.78rem;
  padding:8px 10px 10px;
}
@media(max-width:760px){
  .hero-shell{
    min-height:70vh;
    justify-content:flex-end !important;
    align-items:flex-start !important;
    padding-top:8px;
  }
  .hero-copy{
    width:62vw;
    margin-right:2vw;
    padding:12px 8px !important;
  }
  .hero-copy h1{
    font-size:clamp(2.6rem,12vw,4.6rem) !important;
  }
  .couple-strip{
    width:calc(100% - 28px);
    grid-template-columns:82px 1fr 82px;
    gap:9px;
    margin:-28px auto 8px;
    border-radius:20px;
    padding:9px;
  }
  .couple-photo{
    width:82px;
    height:82px;
    border-radius:14px;
  }
  .couple-copy p{font-size:.74rem}
  .story-layout-compact{
    grid-template-columns:120px minmax(0,1fr) !important;
    gap:14px !important;
    align-items:start;
  }
  .story-photo-small{
    max-width:120px;
  }
  .story-copy{
    text-align:left !important;
  }
  .story-copy .story-lead{
    text-align:left !important;
  }
}
@media(max-width:500px){
  .hero-copy{
    width:68vw;
    margin-right:0;
  }
  .story-layout-compact{
    grid-template-columns:100px minmax(0,1fr) !important;
  }
  .story-photo-small{
    max-width:100px;
  }
}

/* Version 14 hero experiment:
   large title/details on left; compact countdown + actions at bottom */
.venue-hero{
  min-height:92vh !important;
  padding:0 !important;
  display:block !important;
}
.hero-shell{
  position:relative !important;
  display:block !important;
  width:100% !important;
  min-height:92vh !important;
  padding:0 !important;
}
.hero-copy{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  margin:0 !important;
  padding:7vh 5vw 4vh !important;
  text-align:left !important;
  display:block !important;
  background:transparent !important;
}
.hero-copy .eyebrow{
  font-size:clamp(.82rem,1.5vw,1.05rem) !important;
}
.hero-copy h1{
  max-width:620px;
  font-size:clamp(4.8rem,10vw,8.6rem) !important;
  line-height:.86 !important;
  margin:.16em 0 .18em !important;
}
.hero-copy .date{
  font-size:clamp(1.2rem,2vw,1.55rem) !important;
  margin:.45rem 0 !important;
}
.hero-copy .venue{
  max-width:560px !important;
  margin:.25rem 0 !important;
  font-size:clamp(1rem,1.6vw,1.25rem) !important;
}

/* Compact bottom controls */
.hero-copy .countdown{
  position:absolute !important;
  left:5vw !important;
  bottom:5.8vh !important;
  margin:0 !important;
  display:flex !important;
  gap:6px !important;
  justify-content:flex-start !important;
}
.hero-copy .countdown div{
  min-width:58px !important;
  padding:7px 8px !important;
  border-radius:12px !important;
}
.hero-copy .countdown strong{
  font-size:1.15rem !important;
}
.hero-copy .countdown span{
  font-size:.54rem !important;
}
.hero-copy .hero-actions{
  position:absolute !important;
  right:5vw !important;
  bottom:5.8vh !important;
  margin:0 !important;
  display:flex !important;
  gap:7px !important;
  justify-content:flex-end !important;
}
.hero-copy .hero-actions button{
  padding:9px 13px !important;
  font-size:.78rem !important;
}
@media(max-width:700px){
  .venue-hero,.hero-shell{
    min-height:86vh !important;
  }
  .hero-copy{
    padding:5vh 4vw 3vh !important;
  }
  .hero-copy h1{
    max-width:78vw;
    font-size:clamp(3.7rem,17vw,5.6rem) !important;
  }
  .hero-copy .date{
    max-width:75vw;
    font-size:1rem !important;
  }
  .hero-copy .venue{
    max-width:72vw !important;
    font-size:.88rem !important;
  }
  .hero-copy .countdown{
    left:3vw !important;
    bottom:3vh !important;
  }
  .hero-copy .hero-actions{
    right:3vw !important;
    bottom:3vh !important;
  }
  .hero-copy .countdown div{
    min-width:47px !important;
    padding:6px 5px !important;
  }
  .hero-copy .countdown strong{font-size:.95rem !important}
  .hero-copy .countdown span{font-size:.46rem !important}
  .hero-copy .hero-actions button{
    padding:8px 9px !important;
    font-size:.68rem !important;
  }
}

/* Version 15: Keep Us Handy beside Our Story; RSVP immediately above Weather */
.story-layout-three{
  grid-template-columns:160px minmax(0,1fr) 190px !important;
  gap:22px !important;
  align-items:center !important;
}
.keep-handy-story{
  background:linear-gradient(180deg,var(--burgundy-dark),var(--burgundy));
  color:white;
  border-radius:22px;
  padding:20px 14px;
  text-align:center;
  box-shadow:var(--shadow);
}
.keep-handy-story .install-icon{
  width:60px;height:60px;border-radius:16px;
  margin:0 auto 12px;
  font-size:1.05rem;
}
.keep-handy-story h3{
  font-family:Georgia,serif;
  font-size:1.12rem;
  font-weight:500;
  margin:.35rem 0;
}
.keep-handy-story p{font-size:.78rem;line-height:1.45}
.keep-handy-story .primary{
  background:white;color:var(--burgundy);
  padding:9px 10px;font-size:.72rem;
}
.keep-handy-story .form-note{color:rgba(255,255,255,.78)}
.rsvp-section .form{max-width:760px;margin:auto}
@media(max-width:760px){
  .story-layout-three{
    grid-template-columns:105px minmax(0,1fr) 125px !important;
    gap:10px !important;
  }
  .keep-handy-story{padding:12px 7px;border-radius:16px}
  .keep-handy-story .install-icon{width:44px;height:44px;font-size:.8rem}
  .keep-handy-story h3{font-size:.82rem}
  .keep-handy-story p{font-size:.63rem}
  .keep-handy-story .primary{font-size:.62rem;padding:7px 5px}
}
@media(max-width:520px){
  .story-layout-three{
    grid-template-columns:88px minmax(0,1fr) 105px !important;
    gap:7px !important;
  }
  .keep-handy-story h3{font-size:.72rem}
  .keep-handy-story p{font-size:.58rem}
}

/* Version 16: centered hero title/details, stronger bottom controls */
.hero-copy{
  text-align:center !important;
}

.hero-copy .eyebrow,
.hero-copy h1,
.hero-copy .date,
.hero-copy .venue{
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}

.hero-copy h1{
  max-width:760px !important;
}

.hero-copy .date{
  max-width:700px !important;
}

.hero-copy .venue{
  max-width:700px !important;
}

/* Keep countdown at bottom-left, but make it slightly easier to see */
.hero-copy .countdown{
  left:5vw !important;
  right:auto !important;
  bottom:5.8vh !important;
  justify-content:flex-start !important;
}

.hero-copy .countdown div{
  background:rgba(39,14,24,.46) !important;
  border:1px solid rgba(255,255,255,.88) !important;
  box-shadow:0 4px 14px rgba(0,0,0,.28) !important;
}

/* Keep Wedding Details + RSVP at bottom-right, slightly more visible */
.hero-copy .hero-actions{
  right:5vw !important;
  left:auto !important;
  bottom:5.8vh !important;
  justify-content:flex-end !important;
}

.hero-copy .hero-actions .primary{
  background:rgba(255,255,255,.96) !important;
  color:var(--burgundy-dark) !important;
  border:1px solid rgba(255,255,255,1) !important;
  box-shadow:0 4px 14px rgba(0,0,0,.28) !important;
}

.hero-copy .hero-actions .ghost{
  background:rgba(72,18,39,.68) !important;
  color:white !important;
  border:1px solid rgba(255,255,255,.9) !important;
  box-shadow:0 4px 14px rgba(0,0,0,.28) !important;
}

@media(max-width:700px){
  .hero-copy{
    text-align:center !important;
  }
  .hero-copy h1{
    max-width:92vw !important;
  }
  .hero-copy .date,
  .hero-copy .venue{
    max-width:90vw !important;
  }
  .hero-copy .countdown{
    left:3vw !important;
    bottom:3vh !important;
  }
  .hero-copy .hero-actions{
    right:3vw !important;
    bottom:3vh !important;
  }
}

/* Version 17: keep Kali & David on one line */
.hero-copy h1{
  max-width:none !important;
  width:100% !important;
  white-space:nowrap !important;
  font-size:clamp(4.2rem,9vw,8rem) !important;
  line-height:.92 !important;
}

@media(max-width:700px){
  .hero-copy h1{
    max-width:none !important;
    width:100% !important;
    white-space:nowrap !important;
    font-size:clamp(2.8rem,13.5vw,5.2rem) !important;
  }
}

@media(max-width:430px){
  .hero-copy h1{
    font-size:12.5vw !important;
  }
}

/* Version 18: lower the centered wedding title block below the flowers/drapery */
.hero-copy{
  padding-top:24vh !important;
}

@media(max-width:700px){
  .hero-copy{
    padding-top:22vh !important;
  }
}

@media(max-width:430px){
  .hero-copy{
    padding-top:21vh !important;
  }
}

/* Version 19: lower the centered title block roughly another inch */
.hero-copy{
  padding-top:30vh !important;
}

@media(max-width:700px){
  .hero-copy{
    padding-top:28vh !important;
  }
}

@media(max-width:430px){
  .hero-copy{
    padding-top:27vh !important;
  }
}
/* Approved guest photo gallery */
.approved-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.approved-photo {
  margin: 0;
  overflow: hidden;
  border-radius: 14px;
  background: #fff;
}

.approved-photo img {
  display: block;
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.approved-photo figcaption {
  padding: 8px 10px;
  font-size: 0.9rem;
  text-align: center;
}

@media (max-width: 600px) {
  .approved-gallery {
    grid-template-columns: 1fr;
  }

  .approved-photo img {
    height: auto;
    max-height: 420px;
  }
}

/* Version 20: polished Keep Us Handy app logo and install instructions */
.keep-handy-story .install-app-logo{
  display:block;
  width:72px;
  height:72px;
  object-fit:cover;
  border-radius:18px;
  margin:0 auto 12px;
  box-shadow:0 6px 18px rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.45);
}

.keep-handy-story .install-help{
  margin:12px 0;
  text-align:left;
}

.keep-handy-story .install-help p{
  margin:8px 0;
}

@media(max-width:760px){
  .keep-handy-story .install-app-logo{
    width:52px;
    height:52px;
    border-radius:14px;
    margin-bottom:9px;
  }

  .keep-handy-story .install-help{
    margin:8px 0;
  }
}

@media(max-width:520px){
  .keep-handy-story .install-app-logo{
    width:46px;
    height:46px;
    border-radius:12px;
  }
}
@media(max-width:760px){
  .keep-handy-story .install-app-logo{
    width:38px !important;
    height:38px !important;
    border-radius:10px !important;
  }
}

@media(max-width:520px){
  .keep-handy-story .install-app-logo{
    width:34px !important;
    height:34px !important;
    border-radius:9px !important;
  }
}
.keep-handy-story .install-help {
  text-align: center !important;
}

.keep-handy-story .install-help p {
  text-align: center !important;
}


/* =========================================================
   LIVE WEDDING UPDATES
   Controlled from the private Wedding Control Center
   ========================================================= */

.live-updates{
  max-width:1100px;
  margin:22px auto 8px;
  padding:0 20px;
  position:relative;
  z-index:6;
}

.live-updates.hidden{
  display:none !important;
}

.live-updates-inner{
  background:#fff;
  border:1px solid rgba(109,23,52,.13);
  border-radius:22px;
  box-shadow:var(--shadow);
  overflow:hidden;
}

.live-updates-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 18px;
  background:var(--burgundy-dark);
  color:#fff;
}

.live-updates-kicker{
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.18em;
}

.live-updates-status{
  font-size:.75rem;
  opacity:.82;
}

.live-update-item{
  padding:17px 18px 18px;
  border-top:1px solid #eee2dc;
}

.live-update-item:first-child{
  border-top:0;
}

.live-update-title{
  margin:0 0 6px;
  color:var(--burgundy-dark);
  font-family:Georgia,'Times New Roman',serif;
  font-size:1.2rem;
}

.live-update-message{
  margin:0;
  line-height:1.55;
}

.live-update-meta{
  margin-top:8px;
  color:var(--muted);
  font-size:.76rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.live-update-item.priority-important{
  border-left:6px solid var(--gold);
  background:#fffaf0;
}

.live-update-item.priority-urgent{
  border-left:6px solid #a52828;
  background:#fff4f4;
}

.live-update-item.priority-urgent .live-update-title{
  color:#8f2020;
}

@media(max-width:620px){
  .live-updates{
    padding:0 14px;
    margin-top:14px;
  }

  .live-updates-heading{
    padding:11px 14px;
  }

  .live-update-item{
    padding:15px 14px 16px;
  }
}


/* =========================================================
   LIVE WEDDING UPDATES — V2 HIGH-VISIBILITY TREATMENT
   Elegant, but intentionally distinct from ordinary site cards.
   ========================================================= */

.live-updates{
  margin-top:26px;
  margin-bottom:22px;
}

.live-updates-inner{
  border:2px solid var(--gold);
  border-radius:20px;
  box-shadow:0 14px 34px rgba(55,28,36,.16);
}

.live-updates-heading{
  padding:13px 20px;
  background:var(--burgundy-dark);
  border-bottom:3px solid var(--gold);
}

.live-updates-kicker{
  font-size:.78rem;
  letter-spacing:.2em;
}

.live-updates-kicker::before{
  content:"✦";
  display:inline-block;
  margin-right:9px;
  color:var(--gold);
  font-size:1rem;
}

.live-updates-status{
  font-weight:700;
}

.live-update-item{
  padding:20px 22px 21px;
  background:#fffaf0;
}

.live-update-title{
  font-size:1.38rem;
  line-height:1.2;
  margin-bottom:8px;
}

.live-update-message{
  font-size:1.04rem;
  line-height:1.6;
}

.live-update-meta{
  margin-top:11px;
}

/* NORMAL — warm ivory/gold notification */
.live-update-item.priority-normal{
  background:#fffaf0;
  border-left:8px solid var(--gold);
}

/* IMPORTANT — stronger gold callout */
.live-update-item.priority-important{
  background:#fff2cc;
  border-left:10px solid #b78a2c;
}

.live-update-item.priority-important .live-update-title{
  color:var(--burgundy-dark);
}

/* URGENT — unmistakable wedding-day alert */
.live-update-item.priority-urgent{
  background:var(--burgundy-dark);
  border-left:10px solid var(--gold);
  color:#fff;
}

.live-update-item.priority-urgent .live-update-title{
  color:#fff;
  font-size:1.45rem;
}

.live-update-item.priority-urgent .live-update-message{
  color:#fff;
}

.live-update-item.priority-urgent .live-update-meta{
  color:#f3dca0;
}

@media(max-width:620px){
  .live-updates{
    margin-top:18px;
    margin-bottom:18px;
  }

  .live-updates-inner{
    border-radius:17px;
  }

  .live-updates-heading{
    padding:12px 15px;
  }

  .live-updates-kicker{
    font-size:.7rem;
    letter-spacing:.15em;
  }

  .live-updates-status{
    font-size:.68rem;
  }

  .live-update-item{
    padding:18px 16px 19px;
  }

  .live-update-title{
    font-size:1.28rem;
  }

  .live-update-message{
    font-size:1rem;
  }
}
