.photo-card:hover img,
.gift-collage .instant-photo:hover img,
.rsvp-collage .instant-photo:hover img,
.travel-collage .instant-photo:hover img {
	transform: none !important;
}

/* Remove default shadows from image and card elements site-wide */
.photo-card,
.photo-card img,
.photo-card .donation-photo img,
.instant-photo,
.instant-photo img,
.gift-collage .instant-photo,
.rsvp-collage .instant-photo,
.travel-collage .instant-photo,
.account-card,
.bank-details,
.detail-block,
.countdown div {
	box-shadow: none !important;
}

/* Remove small decorative shadows on header and nav items if any */
header, .main-nav, .nav-wrap a::after { box-shadow: none !important; }
/* style.css */
:root{
	--hero-bg: url('https://i.postimg.cc/8zcS0ws9/heroimg.jpg');
	--gift-panel-bg: url('https://i.postimg.cc/d1jQY3Fh/V-S-78.jpg');
	--gift-bank-bg: url('https://i.postimg.cc/d1jQY3Fh/V-S-78.jpg');
	--espresso: #5A341C; /* primary text & buttons */
	--sandstone: #B79C82; /* cards, countdown */
	--greige: #D5CABE; /* muted panels */
	--candle: #F3EEE7; /* page background */
	--olive: #6F6A3F; /* accent */
	--muted: rgba(90,52,28,0.08);
	--card-shadow: 0 14px 42px rgba(90,52,28,0.14);
	--card-radius: 16px;
	--card-transition: 260ms cubic-bezier(.2,.9,.2,1);
	--header-height: 72px;
}
*{box-sizing:border-box}
html, body { width:100%; max-width:100%; overflow-x:hidden; }
body { margin:0; font-family: 'Montserrat', sans-serif; color:var(--espresso); background:var(--candle); -webkit-text-size-adjust:100%; -webkit-tap-highlight-color:transparent; line-height:1.7; position:relative; }
main, header, section, .container, .site-inner, .wedding-layout, .travel-layout, .gift-content, .rsvp-layout, .rsvp-copy, .bank-details, .account-grid, .rsvp-collage, .travel-collage, .gift-collage { max-width:100%; overflow-x:hidden; }
header { position:fixed; top:0; width:100%; background:linear-gradient(180deg,var(--candle), rgba(255,255,255,0.7)); padding:0.75rem 0.75rem; box-shadow:0 2px 5px rgba(0,0,0,0.06); z-index:20; overflow:visible; box-sizing:border-box; transition:all 0.25s ease; }
header.header--shrink { padding:0.35rem 0.75rem; background:rgba(243,238,231,0.96); box-shadow:0 10px 24px rgba(0,0,0,0.12); }
header.header--shrink .site-inner { gap:1.25rem; }
header.header--shrink .site-title { font-size:0.95rem; }
header.header--shrink .main-nav { padding:0.2rem 0; }
*{max-width:100%;}
img, iframe{max-width:100%;}
section{overflow-x:hidden;}
main { padding-top: calc(var(--header-height) + 0.5rem); }
/* Navigation */
.main-nav{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:0.5rem 0;position:relative;overflow:hidden;}
.site-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:3rem}
.site-title{margin:0;font-family:'Montserrat',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.18em;font-size:1.1rem;}
.nav-wrap{display:block;overflow:visible;}
.nav-wrap ul{display:flex;list-style:none;gap:2rem;margin:0;padding:0}
.nav-wrap a{color:var(--espresso);text-decoration:none;padding:.4rem 0;border-radius:0;font-family:'Montserrat',sans-serif;text-transform:uppercase;letter-spacing:.08em;font-size:.85rem;position:relative;transition:color .2s ease;}
.nav-wrap a.active::after, .nav-wrap a:hover::after{content:'';position:absolute;bottom:-4px;left:0;right:0;height:2px;background:var(--espresso);}
.nav-toggle{display:none;background:transparent;border:0;padding:0.2rem;cursor:pointer;position:relative;z-index:50;line-height:1;height:auto;}
.nav-toggle .hamburger{display:inline-block;width:18px;height:1.5px;background:var(--espresso);position:relative;transition:all 0.3s ease}
.nav-toggle .hamburger::after,.nav-toggle .hamburger::before{content:'';position:absolute;left:0;width:18px;height:1.5px;background:var(--espresso);transition:all 0.3s ease}
.nav-toggle .hamburger::before{top:-6px}
.nav-toggle .hamburger::after{top:6px}
.nav-toggle[aria-expanded="true"] .hamburger{background:transparent}
.nav-toggle[aria-expanded="true"] .hamburger::before{transform:rotate(45deg);top:0}
.nav-toggle[aria-expanded="true"] .hamburger::after{transform:rotate(-45deg);top:0}
/* Center final image when odd count: span both columns and reduce width */
.rsvp-panel .rsvp-collage .instant-photo:last-child {
	grid-column: 1 / -1;
	justify-self: center;
	width: 70% !important;
	max-width: 320px !important;
	margin: 0 auto !important;
	transform: rotate(0deg) !important;
	box-shadow:0 28px 64px rgba(0,0,0,0.16) !important;
}

@media (max-width:420px) {
	.rsvp-panel .rsvp-collage .instant-photo:last-child {
		width: 78% !important;
		max-width: 260px !important;
	}
}

/* Apply the slanted two-column photo stack to desktop as well */
@media (min-width:641px) {
	.rsvp-panel .rsvp-collage { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 1rem !important; padding: 1rem 0 !important; align-items:start; }
	/* Center the RSVP collage on wider screens */
	.rsvp-panel .rsvp-collage { width: min(820px, 100%) !important; margin: 0 auto !important; justify-items: center !important; }
	.rsvp-panel .rsvp-collage::before { display: none !important; }
	.rsvp-panel .rsvp-collage .instant-photo { width:100% !important; height:300px !important; min-height:0 !important; border-radius:14px !important; box-shadow:0 22px 56px rgba(0,0,0,0.12) !important; transform-origin:center center !important; transition: transform 260ms ease, box-shadow 260ms ease; }
	.rsvp-panel .rsvp-collage .instant-photo img{ width:100%; height:100%; object-fit:cover; display:block; border-radius:10px; }
	.rsvp-panel .rsvp-collage .instant-photo:nth-child(odd){ transform: rotate(-4deg) translateY(8px); }
	.rsvp-panel .rsvp-collage .instant-photo:nth-child(even){ transform: rotate(4deg) translateY(-8px); }
	.rsvp-panel .rsvp-collage .instant-photo:hover{ box-shadow:0 34px 78px rgba(0,0,0,0.18); z-index:3 }
	/* center last item if odd count */
	.rsvp-panel .rsvp-collage .instant-photo:last-child { grid-column: 1 / -1; justify-self:center; width:60% !important; max-width:520px !important; margin:0 auto !important; transform: rotate(0deg) !important; }
}
main { padding-top: calc(var(--header-height) + 0.5rem); }
/* center content inside sections */
.container{max-width:980px;margin:0 auto;padding:0 20px;width:100%;box-sizing:border-box}
section { padding:60px 20px; width:100%; box-sizing:border-box; overflow:hidden; }
section:not(.hero):not(.gift-panel){background:rgba(255,255,255,0.92);border-radius:32px;box-shadow:0 26px 70px rgba(90,52,28,0.08);margin:1.5rem 0;}
#the-wedding{background:linear-gradient(135deg, rgba(183,156,130,0.15), rgba(213,202,190,0.12)) !important;}
#travel{background:linear-gradient(135deg, rgba(243,238,231,0.6), rgba(255,255,255,0.85)) !important;}
#rsvp{background:linear-gradient(135deg, rgba(183,156,130,0.15), rgba(213,202,190,0.12)) !important;}
.hero { height:100vh; color:var(--candle); display:flex; flex-direction:column; justify-content:flex-start; align-items:center; text-align:center; position:relative; overflow:hidden; padding:2rem 0 0; margin-top:0; }
.hero { background-image: var(--hero-bg); background-size:cover; background-position:center; background-repeat:no-repeat; }
.hero-slideshow{position:absolute;inset:0;z-index:0}
.hero-slideshow .slide{position:absolute;inset:0;background-size:cover;background-position:center center;opacity:0;transition:opacity 1s ease-in-out}
.hero-slideshow .slide.active{opacity:1}
/* disable slideshow — use static background image */
.hero-slideshow{display:none !important}
.hero::before{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(90,52,28,0.45), rgba(90,52,28,0.12));z-index:1}
.hero > *{position:relative;z-index:2}
.hero h2{font-size:2.4rem; margin:0 0 1rem; font-weight:600}
.hero .hero-subtitle{font-family:'Cormorant Garamond', serif; font-size:1.05rem; letter-spacing:.16em; text-transform:uppercase; margin:0 0 0.5rem; color:rgba(243,238,231,0.95);}
.hero .hero-title{font-size:clamp(3.2rem, 8vw, 5rem); margin:0; font-family:Allura, 'Segoe Script', serif; text-transform:none; letter-spacing:0; line-height:1.02;}
.hero .hero-invite{font-family:'Cormorant Garamond', serif; font-size:0.95rem; letter-spacing:.18em; text-transform:uppercase; margin:0 0 0.65rem; color:rgba(243,238,231,0.95); opacity:0; transform:translateY(-14px) scale(0.97); animation:heroDrop 0.8s ease-out 0.45s both;}
.hero .names{display:block;}
.hero .hero-line{display:block; opacity:0; transform:translateY(-24px) scale(0.95); animation:heroDrop 0.8s ease-out forwards;}
.hero .hero-subtitle .hero-line:first-child{animation-delay:0.1s;}
.hero .hero-subtitle .hero-line:last-child{animation-delay:0.28s;}
.hero .hero-title .hero-line:first-child{animation-delay:0.58s;}
.hero .hero-title .hero-line:last-child{animation-delay:0.88s;}
.hero-date{font-family:'Cormorant Garamond', serif; font-size:clamp(1.3rem, 2vw, 1.6rem); letter-spacing:.16em; text-transform:uppercase; margin-top:0.5rem; opacity:0; transform:translateY(-14px) scale(0.97); animation:heroDrop 0.8s ease-out 1.15s both;}
.hero-content{max-width:900px;padding:2rem 1.5rem 2.5rem;animation:none;margin-top:0.75rem;width:100%;box-sizing:border-box;}
@keyframes heroDrop{from{opacity:0;transform:translateY(-28px) scale(0.94);}to{opacity:1;transform:translateY(0) scale(1);}}
h1,h2,h3,h4,h5,h6{font-family:'Cormorant Garamond', serif;text-transform:none;letter-spacing:.04em;margin-top:0;margin-bottom:1rem;font-weight:600;}
header .site-title{font-family:'Montserrat',sans-serif;text-transform:uppercase;letter-spacing:.18em;}
.section-intro, .map-note, .registry-note, .registry-callout{font-family:'Montserrat',sans-serif;}
.registry-note{font-size:1rem; text-transform:none; letter-spacing:0.04em; margin:0 0 0.75rem;}
.registry-callout{font-size:1rem; text-transform:none; letter-spacing:0.04em; margin:0 0 1.5rem;}
.wedding-details{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1rem; margin-top:1rem;}
.detail-block{background:rgba(255,255,255,0.8); padding:1rem 1.25rem; border-radius:16px; border:1px solid rgba(90,52,28,0.12); box-shadow:0 8px 18px rgba(90,52,28,0.08); transition:all 0.3s ease; }
.detail-block:hover { transform:translateY(-4px); box-shadow:0 12px 28px rgba(90,52,28,0.15); }
.dress-code-card{display:flex;flex-direction:column;gap:0.8rem;}
.dress-code-image{width:100%;height:auto;border-radius:14px;border:1px solid rgba(90,52,28,0.1);object-fit:cover;}
.detail-block h3{margin-top:0; margin-bottom:.5rem;}
.detail-block p{margin:0; font-family:'Montserrat',sans-serif; text-transform:none; letter-spacing:0.04em; line-height:1.7;}
.schedule-timeline {
  position:relative;
  padding:1.5rem 0 0.5rem;
  margin:1.5rem 0 0;
  display:grid;
  gap:1rem;
}
.schedule-timeline::before {
  content:'';
  position:absolute;
  left:50%;
  top:0.25rem;
  bottom:0.25rem;
  width:2px;
  background:linear-gradient(180deg, rgba(90,52,28,0.15), rgba(90,52,28,0.55));
  transform:translateX(-50%);
}
.schedule-item {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:start;
  gap:1rem;
  column-gap:1rem;
}
.schedule-item-left .schedule-details { grid-column:1; text-align:right; }
.schedule-item-left .schedule-time {
  grid-column:1;
  justify-content:flex-end;
  text-align:right;
  padding-right:1rem;
  margin-left:auto;
}
.schedule-item-right .schedule-details {
  grid-column:2;
  text-align:left;
  display:flex;
  flex-direction:column;
  gap:0.2rem;
}
.schedule-item-right .schedule-time {
  grid-column:2;
  justify-content:flex-start;
  text-align:left;
  padding-left:1rem;
  margin-right:auto;
}
.schedule-point {
  display:block;
  width:10px;
  height:10px;
  border-radius:50%;
  background:var(--olive);
  border:2px solid var(--candle);
  box-shadow:0 0 0 2px rgba(111,106,63,0.16);
  position:absolute;
  left:50%;
  top:0.3rem;
  transform:translateX(-50%);
  z-index:2;
}
.schedule-details { padding:0.2rem 0; }
.schedule-time {
  display:flex;
  align-items:center;
  margin:0 0 .35rem;
  font-size:1rem;
  font-weight:700;
  color:var(--olive);
  letter-spacing:.18em;
  text-transform:uppercase;
  white-space:nowrap;
  width:max-content;
}
.schedule-time-label {
  display:block;
}
.schedule-details h3 {
  margin:.15rem 0 .45rem;
  font-size:1.15rem;
  font-family:'Cormorant Garamond', serif;
  font-weight:400;
  letter-spacing:0.08em;
  color:var(--espresso);
}
.schedule-details p {
  margin:0;
  font-family:'Montserrat',sans-serif;
  text-transform:none;
  letter-spacing:0.04em;
  line-height:1.7;
  color:rgba(90,52,28,0.8);
}

@media (max-width: 680px) {
  .detail-grid {
    grid-template-columns:1fr;
  }
  .venue-image-row {
    grid-template-columns:1fr;
  }
  .countdown {
    gap:0.16rem;
    justify-content:flex-start;
    padding-bottom:0.25rem;
  }
  .countdown-unit {
    min-width:0;
  }
  .countdown-separator {
    margin:0 0.04rem;
  }
  .schedule-timeline {
    padding-left:0.25rem;
    margin-top:1rem;
  }
  .schedule-timeline::before {
    left:0.75rem;
    top:0.15rem;
    bottom:0.15rem;
    transform:none;
  }
  .schedule-item {
    grid-template-columns:auto minmax(0,1fr);
    gap:0.7rem 0.85rem;
    align-items:start;
    position:relative;
  }
  .schedule-item-left .schedule-details,
  .schedule-item-right .schedule-details,
  .schedule-item-left .schedule-time,
  .schedule-item-right .schedule-time {
    grid-column:2;
    text-align:left;
    padding:0;
  }
  .schedule-item-left .schedule-time,
  .schedule-item-right .schedule-time {
    margin-left:0;
    margin-right:0;
    padding-left:0;
    padding-right:0.85rem;
  }
  .schedule-point {
    left:0.2rem;
    top:0.35rem;
    transform:none;
  }
}
.map-card{margin-top:2rem;}
.map-card .map{background:var(--greige); min-height:380px; border-radius:16px; border:1px solid rgba(90,52,28,0.12); display:flex; align-items:center; justify-content:center; color:var(--espresso); padding:1rem; overflow:hidden;}
.map-card .map iframe{width:100%;height:100%;border:none;border-radius:12px;}
.map-card p{margin:.75rem 0 0; font-family:'Montserrat',sans-serif; text-transform:none; letter-spacing:0.04em;}
.map-card p a{color:var(--espresso);text-decoration:underline;}
.accommodation-list, .area-list{margin:1rem 0 0 1.25rem; padding-left:0;}
.area-list{list-style:none;}
.area-list li{position:relative;padding-left:1.1rem;}
.area-list li::before{content:'•';position:absolute;left:0;top:0;color:var(--olive);font-size:1.2rem;line-height:1;}
.venue-image-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.85rem;margin:1.5rem 0;}
.venue-image-row .photo-card{min-height:220px;min-width:0;flex:1 1 0;}
.rsvp-instruction{font-family:'Montserrat',sans-serif;font-size:1rem;line-height:1.8;letter-spacing:0.03em;margin:1.25rem 0 0;}
.rsvp-note{font-family:'Montserrat',sans-serif;font-size:0.95rem;line-height:1.7;letter-spacing:0.03em;margin-top:0.35rem;color:rgba(90,52,28,0.74);} .rsvp-deadline{margin-top:0.8rem;font-weight:600;color:var(--espresso);}
.rsvp-link-btn{margin-top:1rem;display:inline-flex;align-items:center;justify-content:center;text-align:center;}
.rsvp-copy{display:flex;flex-direction:column;align-items:center;text-align:center;}
.accommodation-list li, .area-list li{margin-bottom:0.75rem; font-family:'Montserrat',sans-serif; text-transform:none; letter-spacing:0.03em; line-height:1.6;}
.accommodation-list li p{margin:.4rem 0 0;}
.bank-details{background:rgba(255,255,255,0.88);padding:1.5rem;border-radius:24px;margin-top:1rem;color:var(--espresso);position:relative;overflow:hidden;min-height:320px;}
.bank-details > *{position:relative;z-index:1;}
.account-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-top:1.25rem;}
.account-card{background:rgba(255,255,255,0.92);border:1px solid rgba(90,52,28,0.12);border-radius:24px;padding:1.25rem;box-shadow:0 18px 40px rgba(90,52,28,0.08);}
.account-card h4{margin:0 0 0.75rem;font-size:1rem;letter-spacing:.12em;text-transform:uppercase;color:var(--espresso);}
.account-card p{margin:.35rem 0;font-family:'Montserrat',sans-serif;text-transform:none;letter-spacing:0.03em;line-height:1.7;}
.account-card strong{font-weight:700;}
@media (max-width: 680px) {
  .account-card p{display:flex;flex-wrap:wrap;gap:0.25rem;align-items:baseline;}
  .account-card strong{flex:0 0 auto;}
}
.account-block{margin-bottom:1rem;}
.account-block:last-child{margin-bottom:0;}
.account-block p{margin:.25rem 0; font-family:'Montserrat',sans-serif; text-transform:none; letter-spacing:0.03em;}
.countdown {
  display:flex;
  gap:0.18rem;
  margin-top:2rem;
  justify-content:center;
  align-items:center;
  flex-wrap:nowrap;
  padding:0.2rem 0;
  overflow-x:auto;
  -ms-overflow-style:none;
  scrollbar-width:none;
}
.countdown::-webkit-scrollbar { display:none; }
.countdown-separator {
  font-size:clamp(1.25rem, 3.4vw, 1.8rem);
  font-weight:600;
  color:rgba(90,52,28,0.45);
  line-height:1;
  margin:0 0.08rem;
}
.countdown-unit {
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  min-width:0;
  flex:0 0 auto;
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
}
.countdown-value {
  display:block;
  font-size:clamp(1.7rem, 5vw, 2.6rem);
  font-weight:700;
  letter-spacing:0.06em;
  line-height:1;
  color:var(--espresso);
  font-family:'Montserrat', sans-serif;
}
.countdown-unit small {
  display:block;
  font-size:0.6rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:rgba(90,52,28,0.72);
  margin-top:0.35rem;
}
@keyframes countdownPulse{0%,100%{transform:scale(1);box-shadow:0 16px 45px rgba(90,52,28,0.16);}50%{transform:scale(1.03);box-shadow:0 20px 55px rgba(90,52,28,0.22);}}
.photo-strip, .photo-gallery { display:flex; gap:1rem; flex-wrap:wrap; margin:1rem 0 1.25rem; }
.photo-strip.single-row { justify-content:space-between; }
.photo-card {
	flex:1 1 0;
	min-width:0;
	min-height:320px;
	border: 1px solid rgba(166,128,61,0.2);
	border-radius:34px;
	display:flex;
	align-items:center;
	justify-content:center;
	overflow:hidden;
	box-shadow:0 30px 80px rgba(90,52,28,0.18);
	position:relative;
	transition:transform var(--card-transition), box-shadow var(--card-transition), border-color var(--card-transition);
}
.photo-card::before {
	display:none;
}
.photo-card img {
	width:100%;
	height:auto;
	object-fit:cover;
	display:block;
	border-radius:26px;
	box-shadow:0 16px 40px rgba(0,0,0,0.1);
	transition:transform var(--card-transition);
	transform-origin:center center;
}
.photo-card.tall { min-height:360px; }
.photo-card.small { min-height:260px; }
.photo-card:hover { transform:translateY(-6px); box-shadow:var(--card-shadow); }
.photo-card:hover img { transform:scale(1.02); }

.photo-card:hover img { transform:scale(1.05); }
.donation-photo img { width:100%; height:auto; object-fit:cover; display:block; border-radius:10px; }
.photo-card.wide { flex:2 1 calc(66.666% - 0.66rem); }
form { max-width:720px; margin:0 auto }
form input, form textarea, form select { width:100%; padding:0.5rem; margin:0.5rem 0; border:1px solid rgba(0,0,0,0.1); border-radius:6px; background:transparent }
.attendance-fieldset { border:none; border-radius:0; padding:0; background:transparent; margin:0.5rem 0; }
.attendance-fieldset legend { font-weight:600; padding:0 0.25rem; margin-bottom:0.25rem; }
.attendance-options { display:flex; flex-wrap:wrap; gap:0.75rem; margin-top:0.25rem; }
.attendance-options label { display:block; width:100%; font-weight:500; padding:1rem 1.25rem; background:rgba(90,52,28,0.05); border-radius:18px; border:1px solid rgba(90,52,28,0.14); cursor:pointer; transition:background 0.2s ease, transform 0.2s ease; }
.attendance-options label:hover { background:rgba(90,52,28,0.12); transform:translateY(-1px); }
.attendance-options input { margin:0; accent-color:var(--espresso); }


/* Meal field styling: reuse attendance pill styles */
.meal-fieldset { margin:0.5rem 0; border:none; padding:0; }
.meal-fieldset legend { font-weight:600; padding:0 0.25rem; margin-bottom:0.25rem; }
.meal-options { display:grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap:0.75rem; margin-top:0.25rem; }
.meal-options label { display:flex; align-items:center; justify-content:center; padding:0.9rem 0.9rem; min-height:58px; text-align:center; font-weight:500; background:rgba(90,52,28,0.08); border-radius:999px; border:1px solid rgba(90,52,28,0.12); cursor:pointer; transition:background 0.2s ease, transform 0.2s ease; white-space:normal; }
.meal-options label:hover { background:rgba(90,52,28,0.14); transform:translateY(-1px); }
.meal-options input { margin:0; accent-color:var(--espresso); }

/* Collage - Instant Camera photo layout */
.gift-collage, .travel-collage {
	display: grid;
	grid-template-columns: repeat(8, 1fr);
	grid-auto-rows: minmax(220px, auto);
	gap: 0.85rem;
	width: 100%;
	margin-bottom: 2rem;
	grid-auto-flow: dense;
}

.rsvp-collage {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	grid-auto-rows: minmax(220px, auto);
	gap: 1rem;
	width: 100%;
	margin-bottom: 2rem;
	grid-auto-flow: dense;
}

.gift-collage .instant-photo,
.rsvp-collage .instant-photo,
.travel-collage .instant-photo {
	border:1px solid rgba(144,103,26,0.22);
	border-radius:24px;
	box-shadow:0 26px 62px rgba(90,52,28,0.18);
	display:flex;
	align-items:center;
	justify-content:center;
	overflow:hidden;
	aspect-ratio:4 / 3;
	transition:transform var(--card-transition), box-shadow var(--card-transition), border-color var(--card-transition);
}

.gift-collage .instant-photo:hover,
.rsvp-collage .instant-photo:hover,
.travel-collage .instant-photo:hover {
	transform:translateY(-4px);
	box-shadow:0 30px 72px rgba(90,52,28,0.22);
	border-color:rgba(144,103,26,0.32);
}

.gift-collage .instant-photo img,
.rsvp-collage .instant-photo img,
.travel-collage .instant-photo img {
	width:100%;
	height:100%;
	object-fit:cover;
	border-radius:20px;
	box-shadow: 0 14px 34px rgba(0,0,0,0.08);
}

/* Feature sizes */
.gift-collage .instant-photo:first-child {
	grid-column: span 8;
	min-height:420px;
}

.travel-collage .instant-photo:first-child {
	grid-column: span 5;
	min-height:340px;
}

.travel-collage .instant-photo:nth-child(2) {
	grid-column: span 3;
	min-height:340px;
}

.travel-collage .instant-photo:nth-child(3) {
	grid-column: span 8;
	min-height:280px;
}

@media (max-width: 960px) {
	.wedding-layout, .travel-layout, .rsvp-panel .rsvp-layout { grid-template-columns:1fr; }
	.gift-collage, .travel-collage, .rsvp-collage { grid-template-columns: 1fr; grid-auto-rows: minmax(180px, auto); grid-auto-flow: row; }
	.gift-collage .instant-photo:first-child, .travel-collage .instant-photo:first-child, .rsvp-collage .instant-photo:first-child { grid-column: span 1; min-height:260px; }
	.gift-collage .instant-photo:nth-child(2), .travel-collage .instant-photo:nth-child(2), .rsvp-collage .instant-photo:nth-child(2) { grid-column: span 1; }
	.rsvp-panel .rsvp-copy { padding: 1.5rem 1rem; }
	.rsvp-panel .rsvp-link { width: 100%; text-align: center; }
	.gift-collage .instant-photo:nth-child(n+3), .travel-collage .instant-photo:nth-child(n+3), .rsvp-collage .instant-photo:nth-child(n+3) { grid-column: span 1; }
	.section-panel .photo-card,
	.gift-collage .instant-photo,
	.travel-collage .instant-photo,
	.rsvp-collage .instant-photo { min-width:0; }
	.hero { min-height: 100vh; padding-top: 4rem; }
	.hero-content { padding: 2rem 1.2rem 2.5rem; }
}

/* Small/phone screens: place RSVP images in a narrow column beside the timer */
@media (max-width: 780px) {
	.rsvp-layout { grid-template-columns: 1fr; gap:0.75rem; align-items:start; }
	.rsvp-panel .rsvp-collage { display:grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap:0.45rem; margin-top:0; }
	.rsvp-panel .rsvp-collage .instant-photo { min-height:120px; border-radius:16px; box-shadow:0 18px 40px rgba(90,52,28,0.14); aspect-ratio:4/3; transition:transform 260ms ease, box-shadow 260ms ease; }
	.rsvp-panel .rsvp-collage .instant-photo:first-child { min-height:150px; }
	.rsvp-panel .rsvp-collage .instant-photo:nth-child(odd) { transform:rotate(-2.5deg) translateY(6px); }
	.rsvp-panel .rsvp-collage .instant-photo:nth-child(even) { transform:rotate(2.5deg) translateY(-6px); }
	.rsvp-panel .rsvp-collage .instant-photo:last-child { grid-column: 1 / -1; justify-self: center; width: 72%; max-width: 320px; margin: -0.75rem auto 0 !important; transform: rotate(0deg) !important; z-index: 2; }
	.rsvp-panel .rsvp-copy { padding-right:0; }
}

@media (max-width: 420px) {
	.rsvp-layout { grid-template-columns: 1fr; }
	.rsvp-panel .rsvp-collage { grid-template-columns: repeat(2, minmax(0, 1fr)); gap:0.35rem; }
	.rsvp-panel .rsvp-collage .instant-photo { min-height:100px; }
	.rsvp-panel .rsvp-collage .instant-photo:first-child { min-height:120px; }
	.rsvp-panel .rsvp-collage .instant-photo:last-child { grid-column: 1 / -1; width: 78%; max-width: 280px; margin: -0.65rem auto 0 !important; }
}

/* Make RSVP images visually consistent: same crop, radius and spacing */
.rsvp-panel .rsvp-collage .instant-photo,
.gift-collage .instant-photo,
.travel-collage .instant-photo { border-radius:18px; overflow:hidden; }
.rsvp-panel .rsvp-collage .instant-photo img,
.gift-collage .instant-photo img,
.travel-collage .instant-photo img { object-position:center center; object-fit:cover; display:block; }

@media (max-width: 680px) {
	.gift-collage, .travel-collage, .rsvp-collage {
		grid-template-columns: 1fr;
		grid-auto-flow: row;
		grid-auto-rows: auto;
		gap: 0.85rem;
	}
	.gift-collage .instant-photo:first-child, .travel-collage .instant-photo:first-child, .rsvp-collage .instant-photo:first-child { grid-column: span 1; min-height:260px; }
	.gift-collage .instant-photo:nth-child(n+2), .travel-collage .instant-photo:nth-child(n+2), .rsvp-collage .instant-photo:nth-child(n+2) { grid-column: span 1; }
	.gift-panel .gift-content { grid-template-columns:1fr; }
	.gift-panel .gift-content .gift-collage,
	.gift-panel .gift-content .gift-copy { grid-column:auto; }
}

#allergies { margin-top:0.5rem; }
button, .btn { background:var(--espresso); color:var(--candle); border:none; padding:0.8rem 1.5rem; border-radius:999px; cursor:pointer; text-decoration:none; display:inline-block; font-weight:600; transition:all 0.3s ease; font-family:'Montserrat', sans-serif; letter-spacing:0.04em; }
.btn.secondary{background:transparent;color:var(--olive);border:2px solid var(--olive)}
button:hover, .btn:hover{opacity:.95;transform:translateY(-2px);box-shadow:0 10px 18px rgba(90,52,28,0.18)}
footer { display:block; width:100%; text-align:center; padding:1.5rem 1rem 2rem; margin-top:2rem; background:rgba(243,238,231,0.9); color:rgba(90,52,28,0.75); border-top:1px solid rgba(90,52,28,0.12); position:relative; z-index:2; }
.map { background:var(--greige); height:200px; display:flex; align-items:center; justify-content:center; color:var(--espresso) }
.skip-link{position:absolute;left:0;top:0;background:var(--espresso);color:var(--candle);padding:.5rem;transform:translateY(-120%);transition:transform .2s;border-radius:0 0 4px 0}
.skip-link:focus{transform:translateY(0)}
.rsvp-message{margin-top:1rem;color:var(--olive)}
.rsvp-countdown{margin-bottom:1rem}
.donation-actions{display:flex;gap:.75rem;align-items:center;margin:.5rem 0}
.bank-details{background:linear-gradient(180deg,var(--greige), rgba(213,202,190,0.6));padding:1rem;border-radius:8px;margin-top:1rem;color:var(--espresso)}
.contact-copy{cursor:pointer;position:relative;transition:opacity .2s ease;}
.contact-copy:hover{opacity:.7;}
.contact-copy.copied::after{content:'Copied!';position:absolute;bottom:-24px;left:0;font-size:.75rem;color:var(--olive);font-weight:600;animation:fadeInOut 2s ease-in-out;}
@keyframes fadeInOut{0%,100%{opacity:0;}50%{opacity:1;}}

.wedding-layout,
.travel-layout,
.rsvp-layout{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start;}
.wedding-panel .wedding-visual{display:flex;flex-wrap:wrap;gap:1rem;align-items:stretch;flex:1 1 58%;}
.wedding-panel .wedding-copy{flex:1 1 40%;display:flex;flex-direction:column;justify-content:center;}
.travel-panel .travel-images{display:flex;flex-direction:column;gap:1rem;}
.wedding-panel .photo-row{display:grid;grid-template-columns:1fr;gap:1rem;}
.wedding-panel .photo-row .photo-card{width:100%;}
.section-panel .photo-card.tall{min-height:320px;}
.section-panel .photo-card.small{min-height:320px;}
.wedding-copy .detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem;}
.wedding-copy .detail-grid .detail-block{background:rgba(255,255,255,0.85);}
.wedding-copy .map-card{margin-top:1.5rem;}
.travel-panel .travel-copy{display:flex;flex-direction:column;gap:1rem;}
.travel-panel .travel-images{gap:1rem;}
.gift-panel{position:relative;padding:40px 20px;background-image:var(--gift-panel-bg);background-size:cover;background-position:center center;background-repeat:no-repeat;border-radius:24px;border:1px solid rgba(255,255,255,0.2);}
.gift-panel::before{content:'';position:absolute;inset:0;background:transparent;}
.gift-panel .gift-content{position:relative;z-index:1;padding:3rem;display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,1fr);align-items:start;gap:2.5rem;max-width:1100px;width:min(100%, 1100px);margin:0 auto;box-sizing:border-box;justify-content:center;overflow:hidden}
.gift-panel .gift-content .gift-collage{grid-column:1;display:flex;justify-content:center;align-items:center;width:100%;min-width:0;}
.gift-panel .gift-content .gift-collage .instant-photo{width:100%;max-width:100%;min-height:320px;height:100%;border-radius:32px;overflow:hidden;box-shadow:0 26px 62px rgba(90,52,28,0.18);transition:transform var(--card-transition), box-shadow var(--card-transition);}
.gift-panel .gift-content .gift-collage .instant-photo:hover{transform:translateY(-4px);box-shadow:0 30px 72px rgba(90,52,28,0.22);}
.gift-panel .gift-content .gift-collage .instant-photo img{width:100%;height:100%;object-fit:cover;display:block;border-radius:28px;box-shadow:0 8px 20px rgba(0,0,0,0.08);}
.gift-panel .gift-content .gift-copy{grid-column:2;display:flex;flex-direction:column;gap:1rem;min-width:0;width:100%;max-width:100%;background:rgba(255,255,255,0.15);padding:1.5rem;border-radius:16px;backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,0.2);box-sizing:border-box;}
.gift-panel .gift-copy h2{margin-top:0;margin-bottom:0.75rem;color:#6B4423;text-shadow:0 2px 6px rgba(0,0,0,0.4);}
.gift-panel .gift-copy .registry-note{font-size:1rem;color:#704D2C;margin-bottom:0.5rem;background:transparent;text-shadow:0 1px 4px rgba(0,0,0,0.3);}
.gift-panel .gift-copy .registry-callout{font-size:1rem;line-height:1.8;color:#6B4423;margin-bottom:1.25rem;background:transparent;text-shadow:0 1px 4px rgba(0,0,0,0.3);}
.gift-panel .gift-copy p{margin:0 0 1rem;line-height:1.75;}
.gift-panel .bank-details{background:linear-gradient(180deg, rgba(255,255,255,0.92), rgba(255,255,255,0.88)); padding:1.5rem; border-radius:24px; box-shadow:0 22px 46px rgba(90,52,28,0.08); border:1px solid rgba(255,255,255,0.5); overflow-wrap:anywhere;word-break:break-word;}
.gift-panel .bank-details h3{margin-top:0;margin-bottom:1rem;font-size:1.05rem;}
.gift-panel .bank-details .account-block{display:grid;gap:0.8rem;}
.gift-panel .bank-details .account-block:nth-child(2){border-top:1px solid rgba(90,52,28,0.1);padding-top:1rem;margin-top:1rem;}
.gift-panel .bank-details p{margin:0;line-height:1.6;}
.gift-panel .bank-details p strong{font-weight:700;}
.gift-panel .bank-details .contact-copy{color:var(--espresso);text-decoration:underline;}
.gift-panel .bank-details .contact-copy:hover{opacity:0.85;}
.rsvp-panel .rsvp-layout{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:start;}
@media (min-width: 961px) {
	.gift-panel .gift-content .gift-copy { background:rgba(255,255,255,0.45); }
}
@media (min-width: 1100px) {
	.rsvp-panel .rsvp-layout{grid-template-columns:minmax(420px,1.1fr) minmax(320px,0.9fr);}
}
.rsvp-panel .rsvp-copy{background:linear-gradient(135deg, rgba(183,156,130,0.16), rgba(213,202,190,0.16));padding:2rem 2rem 2.2rem;border-radius:28px;box-shadow:0 22px 56px rgba(90,52,28,0.08);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}
.rsvp-countdown { margin-bottom:0.8rem; width:100%; }
.countdown-section { background:transparent; border-radius:22px; padding:1.2rem 1rem 0.7rem; text-align:center; color:var(--espresso); box-shadow:none; width:100%; box-sizing:border-box; }
.countdown-heading { margin:0 0 0.3rem; font-family:'Cormorant Garamond', serif; font-size:1.25rem; font-weight:400; letter-spacing:0.12em; text-transform:uppercase; color:var(--espresso); }
.rsvp-panel .rsvp-countdown .countdown { margin-top:0.35rem; padding:0.45rem 0 0.15rem; }
.countdown-card-inner { display:flex; flex-direction:column; align-items:center; width:100%; }
.countdown-footer { margin-top:0.9rem; padding-top:0.8rem; border-top:1px solid rgba(90,52,28,0.18); width:100%; }
.countdown-footer h4 { margin:0 0 0.3rem; font-family:'Cormorant Garamond', serif; font-size:1.15rem; font-weight:400; letter-spacing:0.1em; text-transform:capitalize; color:var(--espresso); }
.countdown-footer p { margin:0; font-size:0.82rem; letter-spacing:0.08em; color:rgba(90,52,28,0.8); font-weight:400; }
.rsvp-panel .rsvp-panel-form{display:grid;gap:1rem;}
.rsvp-panel .rsvp-panel-form label{display:block;font-weight:600;margin-top:1rem;}
.rsvp-panel .rsvp-panel-form button{margin-top:1rem;}
.attendance-options,
.meal-options{display:flex;flex-wrap:wrap;gap:0.75rem;margin-top:1rem;}
.attendance-options label,
.meal-options label{display:block;position:relative;width:100%;}
.attendance-options label span,
.meal-options label span{display:block;align-items:center;justify-content:flex-start;padding:1rem 1.25rem;border-radius:18px;border:1px solid rgba(90,52,28,0.16);background:rgba(90,52,28,0.05);color:var(--espresso);font-weight:600;transition:all 0.2s ease;cursor:pointer;text-align:left;}
.attendance-options label:hover span,
.meal-options label:hover span{background:rgba(90,52,28,0.12);}
.attendance-options label input[type="radio"],
.meal-options label input[type="radio"]{position:absolute;opacity:0;width:0;height:0;pointer-events:none;}
.attendance-options label input[type="radio"]:checked + span,
.meal-options label input[type="radio"]:checked + span{background:var(--espresso);color:var(--candle);border-color:var(--espresso);}
.rsvp-panel .rsvp-collage{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:0.75rem;width:100%;margin-left:0;justify-content:flex-start;align-items:start;}
.rsvp-panel .rsvp-collage .instant-photo{min-height:140px;width:100%;border-radius:18px;overflow:hidden;flex:0 0 auto;box-shadow:0 16px 40px rgba(90,52,28,0.12);transform:rotate(0deg);transition:transform 260ms ease, box-shadow 260ms ease;}
.rsvp-panel .rsvp-collage .instant-photo:first-child{min-height:180px;}
.rsvp-panel .rsvp-collage .instant-photo:nth-child(odd){transform:rotate(-3deg);}
.rsvp-panel .rsvp-collage .instant-photo:nth-child(even){transform:rotate(3deg);}
.rsvp-panel .rsvp-collage .instant-photo img{width:100%;height:100%;object-fit:cover;border-radius:14px;display:block}
.rsvp-panel .rsvp-collage .instant-photo:hover{transform:translateY(-4px);box-shadow:0 20px 46px rgba(90,52,28,0.16);}

@media (max-width: 960px) {
	.rsvp-panel .rsvp-layout{grid-template-columns:1fr;}
	.rsvp-panel .rsvp-copy{padding:1.75rem;}
	.rsvp-panel .rsvp-collage{grid-template-columns:1fr;}
	.gift-collage, .travel-collage{grid-template-columns:1fr;}
	.gift-panel .gift-content{grid-template-columns:1fr; padding:2rem;}
	.gift-panel .gift-collage{order:-1;}
}

@media (max-width: 680px) {
	.rsvp-panel .rsvp-collage{grid-template-columns:repeat(2, minmax(0, 1fr));gap:0.55rem;}
	.rsvp-panel .rsvp-collage .instant-photo{min-height:110px;border-radius:14px;}
	.rsvp-panel .rsvp-collage .instant-photo:first-child{min-height:130px;}
	.rsvp-panel .rsvp-copy{padding:1rem 0.7rem 1.1rem;border-radius:22px;}
	.rsvp-panel .rsvp-layout{gap:1.25rem;}
	.rsvp-countdown { margin-bottom:0.45rem; }
	.countdown-section { padding:0.4rem 0.2rem 0.15rem; border-radius:16px; width:100%; box-sizing:border-box; }
	.countdown-card-inner { gap:0.1rem; }
	.countdown { display:flex; flex-wrap:nowrap; justify-content:center; align-items:center; gap:0.06rem; margin-top:0.1rem; overflow:hidden; width:100%; padding:0.1rem 0; }
	.countdown-unit { min-width:0; flex:0 0 auto; padding:0.02rem 0.04rem; text-align:center; }
	.countdown-separator { display:block; margin:0 0.03rem; font-size:0.55rem; flex:0 0 auto; }
	.countdown-value { font-size:clamp(0.9rem, 3.8vw, 1.05rem); line-height:1; display:block; white-space:nowrap; }
	.countdown-unit small { font-size:0.34rem; margin-top:0.08rem; display:block; white-space:nowrap; letter-spacing:0.12em; }
	.countdown-heading { font-size:0.78rem; letter-spacing:0.08em; margin-bottom:0.04rem; }
	.countdown-footer { margin-top:0.45rem; padding-top:0.45rem; }
	.countdown-footer h4 { font-size:0.72rem; margin-bottom:0.2rem; }
	.countdown-footer p { font-size:0.58rem; line-height:1.15; }
	.schedule-timeline { padding:0.75rem 0 0.25rem; margin-top:0.75rem; }
	.schedule-timeline::before { left:0.45rem; top:0.15rem; bottom:0.15rem; transform:none; }
	.schedule-item { grid-template-columns:auto minmax(0,1fr); gap:0.6rem 0.8rem; align-items:start; }
	.schedule-item-left .schedule-details,
	.schedule-item-right .schedule-details,
	.schedule-item-left .schedule-time,
	.schedule-item-right .schedule-time {
		grid-column:2;
		text-align:left;
		padding:0;
	}
	.schedule-item-left .schedule-point,
	.schedule-item-right .schedule-point {
		grid-column:1;
		margin-top:0.2rem;
	}
	.schedule-details h3 { font-size:1rem; margin-bottom:0.25rem; }
	.schedule-details p { font-size:0.88rem; line-height:1.6; }
	.schedule-time { font-size:0.85rem; letter-spacing:0.12em; }
}

/* Collage - instant-photo layout */
.gift-collage, .travel-collage, .rsvp-collage { display:grid; gap:1rem; width:100%; margin-bottom:2rem; grid-auto-flow:row; }
.gift-collage { grid-template-columns:1fr; }
.travel-collage { grid-template-columns: repeat(8, 1fr); grid-auto-rows: minmax(240px, auto); }
.rsvp-collage { grid-template-columns: repeat(2, 1fr); grid-auto-rows: minmax(220px, auto); }

.gift-collage .instant-photo,
.rsvp-collage .instant-photo,
.travel-collage .instant-photo {
	border:1px solid rgba(90,52,28,0.14);
	border-radius:28px;
	overflow:hidden;
	min-height:220px;
	box-shadow:0 22px 52px rgba(90,52,28,0.14);
	transition:transform var(--card-transition), box-shadow var(--card-transition);
}
.gift-collage .instant-photo img,
.rsvp-collage .instant-photo img,
.travel-collage .instant-photo img { width:100%; height:100%; object-fit:cover; display:block; border-radius:28px; }

.travel-collage .instant-photo:first-child { grid-column: span 5; min-height:360px; }
.travel-collage .instant-photo:nth-child(2) { grid-column: span 3; min-height:360px; }
.travel-collage .instant-photo:nth-child(3) { grid-column: span 8; min-height:260px; }

.gift-collage .instant-photo:hover,
.rsvp-collage .instant-photo:hover,
.travel-collage .instant-photo:hover { transform:translateY(-4px); box-shadow:0 20px 46px rgba(90,52,28,0.16); }

@media (max-width: 960px) {
	.gift-panel .gift-content { grid-template-columns:1fr; }
	.gift-panel .gift-content .gift-collage,
	.gift-panel .gift-content .gift-copy { grid-column: auto !important; }
	.gift-collage, .travel-collage { grid-auto-flow:row; grid-template-columns: repeat(4, 1fr); }
	.travel-collage .instant-photo:first-child { grid-column: span 4; min-height:260px; }
	.travel-collage .instant-photo:nth-child(2) { grid-column: span 2; }
	.travel-collage .instant-photo:nth-child(3) { grid-column: span 2; }
}

@media (max-width: 780px) {
	.gift-panel { background-size: cover; background-position: center center; border-color: rgba(255,255,255,0.3); }
	.gift-panel::before { background: linear-gradient(180deg, rgba(255,255,255,0.08), rgba(255,255,255,0.08)); }
	.gift-panel .gift-content { display:flex; flex-direction:column; gap:1.25rem; padding:1.75rem 1.25rem; width:100%; max-width:100%; grid-template-columns:1fr; }
	.gift-panel .gift-content .gift-collage,
	.gift-panel .gift-content .gift-copy { grid-column:auto !important; width:100%; min-width:0; max-width:100%; }
	.gift-panel .gift-content .gift-collage { order:1; margin-bottom:0; }
	.gift-panel .gift-content .gift-collage .instant-photo { min-height:320px; border-radius:28px; box-shadow:0 22px 56px rgba(90,52,28,0.18); }
	.gift-panel .gift-content .gift-copy { order:2; background:rgba(255,255,255,0.9); padding:1.35rem; border-radius:22px; box-shadow:0 18px 40px rgba(90,52,28,0.12); }
	.gift-panel .gift-copy h2 { font-size:1.4rem; margin-bottom:0.5rem; }
	.gift-panel .gift-copy p { font-size:0.95rem; margin:0 0 0.75rem; }
	.gift-panel .bank-details { padding:1.2rem; border-radius:20px; box-shadow:0 16px 38px rgba(90,52,28,0.12); font-size:0.93rem; background:linear-gradient(180deg, rgba(255,255,255,0.95), rgba(255,255,255,0.9)); }
	.account-grid { grid-template-columns:1fr !important; gap:0.9rem; }
	.account-card { padding:1rem; border-radius:18px; box-shadow:none; background:rgba(255,255,255,0.95); }
}

@media (max-width: 680px) {
	.gift-panel .gift-content { padding:1.25rem 0.75rem; gap:1rem; }
	.gift-panel .gift-content .gift-collage, .gift-panel .gift-content .gift-copy { grid-column: auto !important; width:100%; min-width:0; max-width:100%; }
	.gift-panel .gift-content .gift-collage { order:1; margin-bottom:0.25rem; }
	.gift-panel .gift-content .gift-collage .instant-photo { min-height:300px; border-radius:24px; }
	.gift-panel .gift-content .gift-copy { order:2; background:rgba(255,255,255,0.94); padding:1.2rem; border-radius:18px; }
	.gift-panel .gift-copy h2 { font-size:1.3rem; margin-bottom:0.75rem; }
	.gift-panel .gift-copy p { font-size:0.95rem; margin:0 0 0.9rem; }
	.gift-panel .bank-details { padding:1.05rem; border-radius:18px; font-size:0.92rem; }
	.account-grid { gap:0.8rem; }
	.account-card { padding:0.95rem; }
	.gift-collage, .travel-collage, .rsvp-collage { grid-template-columns:1fr; grid-auto-flow:row; gap:0.9rem; }
	.gift-collage .instant-photo:first-child, .travel-collage .instant-photo:first-child, .rsvp-collage .instant-photo:first-child { grid-column: span 1; min-height:220px; }
	.gift-collage .instant-photo:nth-child(n+2), .travel-collage .instant-photo:nth-child(n+2), .rsvp-collage .instant-photo:nth-child(n+2) { grid-column: span 1; }
}

/* animations */
@keyframes fadeInUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideInLeft{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideInRight{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}
@keyframes scaleIn{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}

.hero-title{animation:fadeInUp 1s ease-out 0.2s both}
.hero-date{animation:fadeInUp 1s ease-out 0.4s both}

.animate-in{opacity:0;transform:translateY(18px);transition:opacity .6s ease, transform .6s ease}
.in-view{opacity:1;transform:none}

section:not(.hero){animation:fadeInUp 0.8s ease-out both}
.hero .names{font-size:3.2rem;max-width:100%;}
.hero-date{font-size:0.95rem;letter-spacing:.12em;}
.hero{min-height:100vh;padding:0;}

/* smooth scrolling */
html{scroll-behavior:smooth}

@media(max-width:768px){
	.site-inner{justify-content:space-between;align-items:center;gap:0.75rem;}
	.site-title{flex:1 1 auto;min-width:0;font-size:0.95rem;letter-spacing:0.12em;}
	.main-nav{margin-left:auto;justify-content:flex-end;flex:0 0 auto;}
	.wedding-panel .wedding-visual .photo-card, .venue-image-row .photo-card {min-width:0;flex-basis:0;}
	.nav-wrap{display:none;position:fixed;left:0;right:0;top:var(--header-height);margin:0;padding:0.75rem 0.75rem 0.6rem;box-sizing:border-box;z-index:40;background:rgba(243,238,231,0.98);backdrop-filter:blur(10px);box-shadow:0 10px 28px rgba(90,52,28,0.12);border-top:1px solid rgba(90,52,28,0.12);max-height:calc(100vh - var(--header-height));overflow-y:auto;}
	.main-nav{margin-left:auto;justify-content:flex-end;flex:0 0 auto;align-items:center;padding:0.2rem 0;}
	.nav-toggle{display:flex;margin-left:auto;padding:0;width:44px;height:44px;min-width:44px;min-height:44px;align-items:center;justify-content:center;}
	.nav-wrap.open{display:block !important;}
	.nav-wrap ul{display:flex;flex-direction:column;gap:0.25rem;align-items:stretch;}
	.nav-wrap li{width:100%;}
	.nav-wrap a{display:block;padding:0.6rem 0.75rem;border-radius:8px;background:transparent;border:1px solid transparent;text-align:left;font-size:0.85rem;}
	.nav-wrap a.active, .nav-wrap a:hover{background:rgba(90,52,28,0.06);border-color:rgba(90,52,28,0.08);} 
	.nav-wrap a.active::after, .nav-wrap a:hover::after{display:none;}

	.nav-wrap a{color:var(--espresso);}
	.nav-wrap li{list-style:none;}
	.hero .hero-title{font-size:2.1rem;letter-spacing:.16em;}
	.hero .names{font-size:2.8rem}
	.hero-date{font-size:0.95rem;letter-spacing:.12em;}
	.hero{height:100vh;padding:0;}
	.hero-content{margin-top:0.5rem;padding-top:0.75rem;}
	.hero .hero-subtitle{margin-bottom:0.4rem;}
	.hero .hero-invite{margin-bottom:0.55rem;}
	main{padding-top:50px;}
	section { padding:40px 16px; }
	section:not(.hero){margin:1rem 0;border-radius:24px;}
	.section-panel .photo-card.tall{min-height:220px;}
	.section-panel .photo-card.small{min-height:140px;}
	.section-panel:not(.wedding-panel) .photo-card{min-width:100%;flex-basis:100%;min-height:220px;}
	.venue-image-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:0.75rem;}
	.venue-image-row .photo-card{min-width:0;flex-basis:0;min-height:170px;}
	.wedding-visual{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.75rem;}
	.wedding-panel .wedding-visual .photo-card{width:100%;min-width:0;flex-basis:0;}
	.wedding-panel .photo-row{grid-template-columns:1fr;display:grid;gap:1rem;}
	.wedding-visual{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:stretch;}
	.wedding-panel .wedding-visual .photo-card{width:100%;min-width:0;flex-basis:0;}
	.rsvp-panel .rsvp-layout{grid-template-columns:1fr;}
	.rsvp-panel .rsvp-photo{order:-1;max-height:300px;}
	.wedding-copy .detail-grid{grid-template-columns:1fr;}
	.detail-block{padding:1.25rem 1.5rem;border-radius:20px;background:rgba(255,255,255,0.9);}
	.detail-block h3{font-size:1.2rem;margin-bottom:0.75rem;}
	.detail-block p{font-size:1rem;line-height:1.8;}
	.travel-panel .travel-layout{gap:1.25rem;}
	.travel-panel .travel-images{order:-1;}
	.gift-panel{padding:40px 16px;min-height:auto;}
	.gift-panel .gift-content{padding:2rem;max-width:100%;box-sizing:border-box;overflow:visible;grid-template-columns:1fr;}
	.gift-panel .bank-details{min-height:280px;}
	.countdown{gap:0.75rem;}
	.countdown div{min-width:85px;padding:1rem 0.75rem;}
	.countdown div span{font-size:1.8rem;}
	.map-card .map{min-height:280px;}
	body{font-size:1.05rem;}
	h2{font-size:1.8rem;}
	h3{font-size:1.15rem;}
	p{line-height:1.8;}
	form input, form textarea, form select{padding:0.75rem;font-size:1rem;border-radius:8px;}
}

/* Mobile-specific form/button improvements */
@media (max-width:480px) {
	form button,
	.registry-buttons button {
		display:block;
		width:100%;
		margin:0.75rem auto 0;
		box-sizing:border-box;
	}
	.nav-wrap ul { gap:1rem; }
	.nav-wrap.open ul { gap:1rem; padding:0.5rem 0; margin:0; }
	.nav-wrap.open { padding-top:var(--header-height); }
}

/* Ensure smoother touch scrolling for iOS on large collages */
.gift-collage, .rsvp-collage, .travel-collage { -webkit-overflow-scrolling: touch; }
@media(max-width:480px){
	.site-title{font-size:0.9rem;}
	.nav-wrap{left:0.75rem;right:0.75rem;top:var(--header-height); padding:calc(var(--header-height) + 0.35rem) 0.8rem 0.8rem;}
	.nav-wrap ul{gap:0.5rem;}
	.nav-wrap a{font-size:.8rem;padding:.7rem 0.9rem;}
	.nav-wrap.open ul{gap:0.5rem;margin:0;padding:0;}
	.nav-wrap.open a{padding:0.75rem 1rem;}
	.hero .hero-title{font-size:1.8rem;letter-spacing:.16em;}
	.hero .names{font-size:2.6rem}
	.hero-date{font-size:0.85rem;letter-spacing:.1em;}
	.hero{height:100vh;padding:0;}
	main{padding-top:45px;}
	section { padding:30px 16px; }
	.container{padding:0 16px;}
	.wedding-visual,.travel-images{gap:0.75rem;}
	.wedding-panel .photo-row{gap:0.75rem;display:grid;grid-template-columns:1fr;}
	.section-panel .photo-card.tall{min-height:200px;}
	.section-panel .photo-card{min-height:120px;flex:1 1 100% !important;}
	.rsvp-panel .rsvp-photo{max-height:280px;}
	.countdown{flex-direction:row;justify-content:center;flex-wrap:wrap;gap:0.5rem;}
	.countdown div{min-width:70px;padding:1rem 0.8rem;border-radius:14px;}
	.countdown div span{font-size:1.8rem;font-weight:900;}
	h1{font-size:1.5rem;}
	h2{font-size:1.5rem;letter-spacing:.1em;margin-bottom:1rem;}
	h3{font-size:1.1rem;letter-spacing:.08em;margin-bottom:0.75rem;}
	p{font-size:1rem;line-height:1.8;}
	.detail-block{padding:1.25rem 1.25rem;border-radius:18px;background:rgba(255,255,255,0.95);margin-bottom:1rem;}
	.detail-block h3{font-size:1.1rem;margin-bottom:0.65rem;}
	.detail-block p{font-size:0.98rem;line-height:1.8;}
	.map-card .map{min-height:260px;}
	form input, form textarea, form select{padding:0.75rem;font-size:1rem;border-radius:8px;margin:0.75rem 0;border:2px solid rgba(90,52,28,0.15);}
	form label{display:block;font-size:1rem;font-weight:600;margin-top:1rem;margin-bottom:0.5rem;}
	.attendance-options, .meal-options{display:flex;flex-direction:column;gap:0.75rem;}
	.attendance-options label, .meal-options label{padding:1rem;min-height:auto;font-size:1rem;width:100%;}
	.accommodation-list, .area-list{padding-left:1.5rem;margin:1rem 0 0 0;font-size:1rem;}
	.accommodation-list li, .area-list li{margin-bottom:0.75rem;font-size:1rem;line-height:1.7;}
	.section-intro{font-size:1.05rem;}
	.registry-note, .registry-callout{font-size:1.05rem;}
	.gift-panel .gift-content{padding:1rem;box-shadow:none;border-radius:18px;}
	.bank-details{padding:1.5rem;border-radius:16px;}
	.account-block p{font-size:1rem;margin:0.5rem 0;}
}
/* Make collages 2-column on very small screens so images sit side-by-side */
@media (max-width:480px) {
    .gift-collage, .travel-collage, .rsvp-collage { grid-template-columns: repeat(2, 1fr); gap:0.5rem; }
    .gift-collage .instant-photo, .travel-collage .instant-photo, .rsvp-collage .instant-photo { min-height:120px; }
    .rsvp-panel .rsvp-collage .instant-photo { min-height:120px; }
}
img, iframe, video, embed { max-width:100%; height:auto; }

@media (max-width: 900px) {
  .site-inner { flex-direction: row; align-items: center; gap: 1rem; }
  .main-nav { width: auto; justify-content: flex-end; margin-left: auto; }
  .nav-wrap { display: none; position: fixed; left: 0; right: 0; top: var(--header-height); margin: 0; padding: 0.75rem 0.75rem 0.6rem; box-sizing: border-box; z-index: 40; background: rgba(243,238,231,0.98); backdrop-filter: blur(10px); box-shadow: 0 10px 28px rgba(90,52,28,0.12); border-top: 1px solid rgba(90,52,28,0.12); max-height: calc(100vh - var(--header-height)); overflow-y: auto; }
  .nav-toggle { display: block; }
  .nav-wrap.open { display: flex !important; flex-direction: column; }
  .hero { min-height: 100svh; padding: 4.2rem 0 2rem; }
  .hero-content { padding: 1.5rem 1rem 2rem; margin-top: 1rem; }
  .hero .hero-title { font-size: clamp(2.6rem, 8vw, 3.8rem); line-height: 1.05; }
  .hero-date { font-size: clamp(1.05rem, 2.8vw, 1.35rem); }
  .container { padding: 0 16px; }
  section { padding: 40px 16px; }
  .wedding-layout, .travel-layout, .gift-content, .rsvp-layout { grid-template-columns: 1fr !important; gap: 1.25rem; }
  .wedding-visual, .venue-image-row, .detail-grid { grid-template-columns: 1fr; gap: 0.75rem; }
  .photo-card, .venue-image-row .photo-card, .travel-collage .instant-photo, .rsvp-collage .instant-photo, .gift-collage .instant-photo { min-height: 180px; }
  .countdown { gap: 0.3rem; justify-content: center; overflow-x: auto; padding-bottom: 0.25rem; }
  .countdown-unit { min-width: 56px; }
  .countdown-value { font-size: 1.7rem; }
  .countdown-separator { display: block; }
  .rsvp-copy { align-items: center; text-align: center; }
  .rsvp-panel .rsvp-collage { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 0.75rem !important; }
  .rsvp-panel .rsvp-collage .instant-photo { width: 100% !important; height: auto !important; min-height: 120px !important; }
  .gift-panel .gift-content { padding: 1.5rem; gap: 1.25rem; }
  .bank-details { min-height: auto; padding: 1.25rem; }
  .map-card .map { min-height: 260px; }
}

@media (max-width: 600px) {
  header { padding: 0.6rem 0.9rem; }
  .site-title { font-size: 0.95rem; }
  .hero { min-height: 100svh; padding: 4rem 0 1.4rem; }
  .hero .hero-title { font-size: clamp(2.15rem, 9vw, 2.9rem); max-width: 100%; line-height: 1.04; white-space: normal; }
  .hero .hero-subtitle { font-size: 1rem; }
  .hero-date { font-size: 0.95rem; letter-spacing: 0.14em; }
  .hero-content { padding: 1rem 0.5rem 1.5rem; }
  .hero .names,
  .hero .hero-line { max-width: 100%; }
  .section-panel .photo-card.tall,
  .section-panel .photo-card.small,
  .photo-card,
  .travel-collage .instant-photo,
  .gift-collage .instant-photo,
  .rsvp-collage .instant-photo { min-height: 160px; }
  .countdown { gap: 0.2rem; }
  .countdown-unit { min-width: 50px; }
  .countdown-value { font-size: 1.45rem; }
  .countdown-unit small { font-size: 0.55rem; }
  .rsvp-link-btn { width: 100%; }
  .rsvp-note { font-size: 0.9rem; }
  .map-card .map { min-height: 220px; }
  .account-card { padding: 1rem; }
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.registry-buttons{display:flex;gap:.5rem;flex-wrap:wrap}
.registry-buttons button{border-radius:6px;padding:.5rem 1rem}

.copy-bank-text{margin:0 0 1rem;font-size:0.95rem;color:rgba(90,52,28,0.8);}
.copy-msg{margin:0;font-size:0.95rem;color:rgba(90,52,28,0.8);min-height:1.35rem;}
.contact-copy{cursor:pointer;color:var(--olive);text-decoration:underline dotted;transition:color .2s ease;}
.contact-copy:hover{color:var(--espresso);}
.contact-copy.copied{position:relative;color:var(--espresso);}
.contact-copy.copied::after{content:' copied';font-size:0.85rem;color:rgba(90,52,28,0.7);margin-left:0.25rem;}

/* Enhanced touch-friendly interactions */
@media (hover: none) and (pointer: coarse) {
	button, .btn, .attendance-options label, .meal-options label { padding: 1rem 1.25rem; min-height: 48px; font-size: 1.05rem; }
	.nav-wrap a { padding: 0.75rem; }
	.contact-copy { padding: 0.5rem; }
}

/* Clean layout override: remove overlapping image grids and simplify section layouts */
section { overflow: visible; }
.wedding-layout, .travel-layout, .gift-content, .rsvp-layout { display: grid; gap: 2rem; align-items: start; }
@media (min-width: 900px) {
	.wedding-layout, .travel-layout, .gift-content, .rsvp-layout { grid-template-columns: minmax(320px, 1fr) minmax(320px, 1fr); }
}
.wedding-visual { display: grid; gap: 1rem; }
.wedding-panel .photo-row { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.gift-collage, .travel-collage, .rsvp-collage { display: grid; gap: 1rem; width: 100%; grid-auto-flow: row; }
.gift-collage { grid-template-columns: 1fr; }
.travel-collage, .rsvp-collage { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.gift-collage .instant-photo, .travel-collage .instant-photo, .rsvp-collage .instant-photo, .photo-card { width: 100%; min-width: 0; border-radius: 24px; overflow: hidden; box-shadow: 0 20px 48px rgba(90,52,28,0.14); }
.gift-collage .instant-photo, .travel-collage .instant-photo, .rsvp-collage .instant-photo { min-height: 260px; }
.rsvp-panel .rsvp-collage .instant-photo:first-child { grid-column: auto; min-height: 300px; }
.gift-collage .instant-photo img, .travel-collage .instant-photo img, .rsvp-collage .instant-photo img, .photo-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
.photo-card { min-height: 280px; }
.gift-panel .gift-content { align-items: center; }
@media (max-width: 960px) {
	.wedding-layout, .travel-layout, .gift-content, .rsvp-layout { grid-template-columns: 1fr; }
	.travel-collage, .rsvp-collage { grid-template-columns: 1fr; }
	.gift-collage .instant-photo, .travel-collage .instant-photo, .rsvp-collage .instant-photo { min-height: 240px; }
}
@media (max-width: 780px) {
	.wedding-layout, .travel-layout {
		grid-template-columns: minmax(140px, 42%) minmax(180px, 1fr);
		gap: 1rem;
		align-items: start;
	}
	.wedding-layout .wedding-visual,
	.travel-layout .travel-collage {
		min-width: 0;
	}
	.wedding-visual { display: grid; gap: 0.85rem; }
	.travel-collage { grid-template-columns: 1fr; }
	.photo-card, .travel-collage .instant-photo { min-height: 180px; }
}
@media (max-width: 640px) {
	.wedding-layout, .travel-layout {
		grid-template-columns: 1fr;
	}
	.wedding-layout .wedding-visual,
	.travel-layout .travel-collage {
		order: -1;
	}
	.wedding-visual, .travel-collage { grid-template-columns: 1fr; }
	.wedding-visual { gap: 1rem; }
	.travel-collage { gap: 0.85rem; }
	.photo-card, .travel-collage .instant-photo { min-height: 220px; }
}
/* Keep the RSVP collage fully inside the viewport on mobile */
@media (max-width: 640px) {
	.rsvp-panel .rsvp-collage {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 0.65rem !important;
		padding: 0 !important;
		overflow: hidden !important;
		align-items: start !important;
	}
	.rsvp-panel .rsvp-collage .instant-photo {
		width: 100% !important;
		height: auto !important;
		min-height: 120px !important;
		margin-top: 0 !important;
		border-radius: 12px !important;
		box-shadow: 0 18px 40px rgba(0,0,0,0.12) !important;
		transform: none !important;
		flex: 0 0 auto !important;
	}
	.rsvp-panel .rsvp-collage .instant-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
}
@media (max-width: 520px) {
	section { padding: 26px 14px; }
	.photo-card, .gift-collage .instant-photo, .travel-collage .instant-photo, .rsvp-collage .instant-photo { min-height: 200px; }
}

@media (max-width: 640px) {
	.countdown { flex-wrap: nowrap !important; gap: 0.28rem !important; padding: 0.45rem 0 !important; overflow-x: auto !important; }
	.countdown-unit { flex: 0 0 auto !important; min-width: 46px !important; padding: 0.2rem 0.35rem !important; }
	.countdown-value { font-size: clamp(1.35rem, 5vw, 1.85rem) !important; }
	.countdown-separator { display: inline-block !important; margin: 0 0.1rem !important; line-height: 1 !important; }
	.countdown-unit small { font-size: 0.55rem !important; }
	.rsvp-panel .rsvp-collage { gap: 0.65rem !important; }
}

/* Layout stability overrides */
main { padding-top: calc(var(--header-height) + 0.5rem); }
section { overflow: visible; }
section[id] { scroll-margin-top: calc(var(--header-height) + 1.5rem); }
.wedding-layout, .travel-layout, .gift-content, .rsvp-layout { display: grid; gap: 2rem; align-items: start; grid-template-columns: 1fr; min-width: 0; }
@media (min-width: 960px) {
	.wedding-layout, .travel-layout, .gift-content, .rsvp-layout { grid-template-columns: minmax(280px, 1fr) minmax(280px, 1fr); }
}
.wedding-layout, .travel-layout, .gift-content, .rsvp-layout, .wedding-visual, .wedding-copy, .travel-collage, .rsvp-collage { min-width: 0; }
.wedding-visual { display: grid; gap: 1rem; }
.wedding-panel .wedding-copy { display: block; }
.wedding-panel .photo-row { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.venue-image-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.photo-card { width: 100%; min-width: 0; }
.wedding-copy .detail-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 900px) {
	.wedding-copy .detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Reduce animations on slow devices */
@media (prefers-reduced-motion: reduce) {
	* { animation-duration: 0.1s !important; transition-duration: 0.1s !important; }
}

/* Final mobile layout overrides */

/* Center gift registry on desktop when left collage is absent */
@media (min-width: 961px) {
  .gift-panel .gift-content { grid-template-columns: 1fr !important; justify-items: center !important; }
  .gift-panel .gift-content .gift-copy { grid-column: 1 / -1 !important; max-width: 720px; width: 100%; justify-self: center; }
  .gift-panel .gift-content .bank-details { max-width: 720px; width: 100%; }
}

@media (max-width: 900px) {
	.wedding-layout,
	.travel-layout,
	.gift-content,
	.rsvp-layout { grid-template-columns: 1fr !important; }
	.wedding-visual { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 0.75rem !important; }
	.venue-image-row { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 0.75rem !important; }
	.photo-card,
	.venue-image-row .photo-card,
	.travel-collage .instant-photo,
	.rsvp-collage .instant-photo { min-height: 180px !important; }
	.bank-details { min-height: 280px !important; }
}

@media (max-width: 900px) {
	.main-nav { align-items: center; padding: 0; }
	.nav-toggle {
		display: flex !important;
		width: 44px !important;
		height: 44px !important;
		min-width: 44px !important;
		min-height: 44px !important;
		margin: 0 !important;
		padding: 0 !important;
		border-radius: 50% !important;
		align-items: center !important;
		justify-content: center !important;
		line-height: 1 !important;
	}
	.nav-toggle .hamburger,
	.nav-toggle .hamburger::before,
	.nav-toggle .hamburger::after {
		width: 22px !important;
		height: 2px !important;
	}
	.nav-toggle .hamburger { top: 0 !important; transform: none !important; }
	.nav-toggle .hamburger::before { top: -6px !important; }
	.nav-toggle .hamburger::after { top: 6px !important; }
}

@media (max-width: 768px) {
	.site-inner { align-items: center; }
	.main-nav { padding: 0 !important; min-height: 0 !important; }
	.nav-toggle {
		display: flex !important;
		width: 40px !important;
		height: 40px !important;
		min-width: 40px !important;
		min-height: 40px !important;
		margin: 0 !important;
		padding: 0 !important;
		border-radius: 50% !important;
		align-items: center !important;
		justify-content: center !important;
		line-height: 1 !important;
	}
	.nav-toggle .hamburger,
	.nav-toggle .hamburger::before,
	.nav-toggle .hamburger::after {
		width: 20px !important;
		height: 2px !important;
	}
	.nav-toggle .hamburger::before { top: -6px !important; }
	.nav-toggle .hamburger::after { top: 6px !important; }
}

/* Remove all image hover effects site-wide: no movement, no scale, no extra shadow */

.photo-card:hover,
.photo-card:hover img,
.gift-collage .instant-photo:hover,
.rsvp-collage .instant-photo:hover,
.travel-collage .instant-photo:hover,
.gift-panel .gift-content .gift-collage .instant-photo:hover,
.rsvp-panel .rsvp-collage .instant-photo:hover {
	transform: none !important;
	box-shadow: none !important;
	border-color: inherit !important;
}
.photo-card:hover img,
.gift-collage .instant-photo:hover img,
.rsvp-collage .instant-photo:hover img,
.travel-collage .instant-photo:hover img {
	transform: none !important;
}
@media (max-width: 680px) {
	.rsvp-panel .rsvp-layout { grid-template-columns: 1fr !important; }
	.rsvp-panel .rsvp-collage {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 0.75rem !important;
		width: 100% !important;
		min-width: 0 !important;
		padding: 0 !important;
		margin: 0 !important;
		align-items: start !important;
	}
	.rsvp-panel .rsvp-collage .instant-photo {
		width: 100% !important;
		min-height: 130px !important;
		border-radius: 14px !important;
		box-shadow: 0 18px 40px rgba(0,0,0,0.12) !important;
		transform: none !important;
		flex: none !important;
	}
	.rsvp-panel .rsvp-collage .instant-photo img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		display: block !important;
	}
}

@media (max-width: 640px) {
	.wedding-visual,
	.venue-image-row { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.photo-card,
	.venue-image-row .photo-card { min-height: 160px !important; }
	.bank-details { min-height: 240px !important; }
}

/* Final stable RSVP mobile fix */
@media (max-width: 640px) {
	.rsvp-panel .rsvp-collage {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 0.65rem !important;
		width: 100% !important;
		min-width: 0 !important;
		padding: 0 !important;
		margin: 0 !important;
		overflow: hidden !important;
		align-items: start !important;
	}
	.rsvp-panel .rsvp-collage .instant-photo {
		width: 100% !important;
		height: auto !important;
		min-height: 120px !important;
		border-radius: 12px !important;
		box-shadow: 0 18px 40px rgba(0,0,0,0.12) !important;
		margin: 0 !important;
		flex: none !important;
		transition: transform 260ms ease, box-shadow 260ms ease !important;
	}
	.rsvp-panel .rsvp-collage .instant-photo:nth-child(odd) {
		transform: rotate(-2.5deg) translateY(4px) !important;
	}
	.rsvp-panel .rsvp-collage .instant-photo:nth-child(even) {
		transform: rotate(2.5deg) translateY(-4px) !important;
	}
	.rsvp-panel .rsvp-collage .instant-photo:last-child {
		grid-column: 1 / -1 !important;
		justify-self: center !important;
		width: 72% !important;
		max-width: 320px !important;
		margin: -0.75rem auto 0 !important;
		transform: rotate(0deg) !important;
		z-index: 2 !important;
	}
	.rsvp-panel .rsvp-collage .instant-photo img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		display: block !important;
	}
}
