:root {
	--sage: #768a79;
	--sage-dark: #536457;
	--ivory: #f8f5ef;
	--ink: #333833;
	--rose: #caa39a;
}

body { color: var(--ink); font-family: "Montserrat", sans-serif; letter-spacing: 0; }
h1, h2, h3, h4, .hero-title, .footer-logo, .signature { font-family: "Cormorant Garamond", serif; letter-spacing: 0; }
.nav-section { background: rgba(248, 245, 239, .96); }
.nav-section .container { display: flex; align-items: center; justify-content: space-between; }
.couple-mark { color: var(--sage-dark); font-family: "Cormorant Garamond", serif; font-size: 27px; font-weight: 600; padding: 20px 0; }
.couple-mark:hover { color: var(--rose); }
.couple-mark span { color: var(--rose); font-weight: 400; }
.navbar-nav > li > a { font-size: 12px; letter-spacing: 0; text-transform: uppercase; }

#hero::before { background: linear-gradient(90deg, rgba(30, 40, 33, .48), rgba(30, 40, 33, .18)); }
.hero-kicker, .eyebrow { font-size: 12px; font-weight: 500; letter-spacing: 3px; margin-bottom: 16px; text-transform: uppercase; }
.hero-kicker { color: #fff; }
.hero-title span { white-space: nowrap; }
.hero-subtitle { letter-spacing: 3px; }
.hero-subtitle span { border-color: #fff; font-size: inherit; margin: 0 8px; padding: 5px 10px; }
.btn { letter-spacing: 1px; }

.welcome-section { padding-bottom: 120px; padding-top: 120px; }
.lead-copy { font-size: 17px; line-height: 1.9; margin: 0 auto 45px; max-width: 760px; }
.date-seal { align-items: center; border-bottom: 1px solid var(--rose); border-top: 1px solid var(--rose); display: inline-flex; gap: 22px; padding: 14px 24px; }
.date-seal span { font-size: 11px; letter-spacing: 2px; }
.date-seal strong { color: var(--sage-dark); font-family: "Cormorant Garamond", serif; font-size: 45px; font-weight: 500; line-height: 1; }

.story-band { background-image: url("https://images.unsplash.com/photo-1519225421980-715cb0215aed?auto=format&fit=crop&w=1920&q=85"); padding: 120px 0; }
.story-band::before, .gift-section::before { background-color: rgba(46, 61, 50, .84); }
.story-photo img { height: 560px; object-fit: cover; width: 100%; }
.story-copy { color: #fff; }
.story-copy h2 { font-size: 50px; margin-bottom: 25px; }
.story-copy p { line-height: 1.9; }
.signature { color: #fff; font-size: 30px; margin-top: 30px; }

#celebracion { padding: 120px 0; }
.event-grid { margin-top: 55px; }
.event-panel { border: 1px solid #d9d5cc; height: 100%; padding: 55px 35px; text-align: center; }
.event-panel > i { color: var(--sage); display: block; font-size: 60px; margin-bottom: 20px; }
.event-panel h3 { font-size: 38px; }
.event-panel h4 { color: var(--sage-dark); font-size: 23px; }
.event-time { color: var(--rose); font-size: 12px; font-weight: 500; letter-spacing: 3px; }
.dress-code { margin-top: 55px; }
.dress-code > i { color: var(--sage); font-size: 32px; }
.dress-code h3 { font-size: 28px; margin: 12px 0 3px; }

#galeria { padding: 120px 0; }
.photo-grid { display: grid; gap: 12px; grid-template-columns: repeat(4, 1fr); margin-top: 50px; }
.photo-grid a { display: block; height: 290px; overflow: hidden; }
.photo-grid .photo-wide { grid-column: span 2; }
.photo-grid img { height: 100%; object-fit: cover; transition: transform .6s ease; width: 100%; }
.photo-grid a:hover img { transform: scale(1.04); }

.gift-section { background-image: url("https://images.unsplash.com/photo-1519167758481-83f550bb49b3?auto=format&fit=crop&w=1920&q=85"); padding: 130px 0; }
.gift-section p { font-size: 16px; line-height: 1.8; margin: 0 auto 30px; max-width: 650px; }
.gift-icon { display: block; font-size: 62px; margin-bottom: 20px; }
.form-wrapper { background-color: #fff; }
.form-floating { margin-bottom: 18px; }
.form-check-wrapper { margin: 22px 0; }
.form-control, .form-select { letter-spacing: 0; }
.footer-date { color: #fff; letter-spacing: 3px; margin-top: 25px; text-align: center; }
.modal-content { border: 0; border-radius: 0; padding: 20px; }
.modal-title { font-size: 30px; }

@media (max-width: 991px) {
	.story-photo { margin-bottom: 45px; }
	.story-photo img { height: 420px; }
	.photo-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 767px) {
	.couple-mark { font-size: 23px; padding: 15px 0; }
	.hero-title span { font-size: 42px; white-space: normal; }
	.hero-subtitle { font-size: 14px; }
	.welcome-section, #celebracion, #galeria { padding-bottom: 80px; padding-top: 80px; }
	.story-band, .gift-section { padding: 85px 0; }
	.story-copy h2 { font-size: 40px; }
	.event-grid > div + div { margin-top: 20px; }
	.photo-grid { display: block; }
	.photo-grid a { height: 290px; margin-bottom: 12px; }
	.date-seal { gap: 13px; padding-left: 12px; padding-right: 12px; }
}