.boda-rsvp-wrap {
	--boda-primary: #7f5a4f;
	--boda-accent: #d9b88f;
	--boda-ink: #241f1c;
	--boda-muted: #6f6a64;
	--boda-paper: #fffdf9;
	--boda-line: rgba(36, 31, 28, 0.12);
	box-sizing: border-box;
	color: var(--boda-ink);
	font-family: inherit;
	margin: 0 auto;
	max-width: 900px;
	padding: 32px 18px 56px;
}

.boda-rsvp-wrap *,
.boda-rsvp-wrap *::before,
.boda-rsvp-wrap *::after {
	box-sizing: border-box;
}

.boda-rsvp-hero,
.boda-rsvp-card,
.boda-rsvp-success,
.boda-rsvp-empty,
.boda-rsvp-alert {
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(255, 253, 249, 0.98)),
		radial-gradient(circle at 15% 10%, rgba(217, 184, 143, 0.2), transparent 30%);
	border: 1px solid var(--boda-line);
	border-radius: 8px;
	box-shadow: 0 22px 60px rgba(36, 31, 28, 0.08);
}

.boda-rsvp-hero {
	margin-bottom: 18px;
	padding: 34px 30px;
	text-align: center;
}

.boda-rsvp-kicker {
	color: var(--boda-primary);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0;
	margin: 0 0 8px;
	text-transform: uppercase;
}

.boda-rsvp-hero h1,
.boda-rsvp-success h1 {
	color: var(--boda-ink);
	font-family: Georgia, 'Times New Roman', serif;
	font-size: clamp(32px, 5vw, 54px);
	font-weight: 500;
	line-height: 1.04;
	margin: 0;
}

.boda-rsvp-rule {
	background: linear-gradient(90deg, transparent, var(--boda-accent), transparent);
	height: 1px;
	margin: 22px auto;
	max-width: 270px;
}

.boda-rsvp-hero p:not(.boda-rsvp-kicker) {
	color: var(--boda-muted);
	font-size: 18px;
	line-height: 1.55;
	margin: 0 auto 18px;
	max-width: 680px;
}

.boda-rsvp-hero span {
	background: rgba(127, 90, 79, 0.08);
	border: 1px solid rgba(127, 90, 79, 0.18);
	border-radius: 999px;
	color: var(--boda-primary);
	display: inline-flex;
	font-size: 14px;
	font-weight: 700;
	padding: 8px 14px;
}

.boda-rsvp-card {
	display: grid;
	gap: 22px;
	padding: 28px;
}

.boda-rsvp-section {
	border-bottom: 1px solid var(--boda-line);
	display: grid;
	gap: 14px;
	padding-bottom: 22px;
}

.boda-rsvp-section:last-of-type {
	border-bottom: 0;
	padding-bottom: 0;
}

.boda-rsvp-section h2 {
	color: var(--boda-ink);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.25;
	margin: 0;
}

.boda-rsvp-options {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.boda-rsvp-options label,
.boda-rsvp-attendee-field {
	align-items: center;
	background: #ffffff;
	border: 1px solid var(--boda-line);
	border-radius: 8px;
	color: var(--boda-ink);
	display: flex;
	font-size: 15px;
	gap: 10px;
	line-height: 1.35;
	min-height: 50px;
	padding: 12px 14px;
}

.boda-rsvp-options input {
	accent-color: var(--boda-primary);
	flex: 0 0 auto;
}

.boda-rsvp-field,
.boda-rsvp-attendees {
	display: grid;
	gap: 10px;
}

.boda-rsvp-field label,
.boda-rsvp-attendee-field {
	color: var(--boda-muted);
	font-size: 14px;
	font-weight: 700;
}

.boda-rsvp-attendee-field {
	align-items: stretch;
	flex-direction: column;
}

.boda-rsvp-field input,
.boda-rsvp-field select,
.boda-rsvp-attendee-field input {
	appearance: none;
	background: #ffffff;
	border: 1px solid var(--boda-line);
	border-radius: 8px;
	color: var(--boda-ink);
	font: inherit;
	min-height: 48px;
	padding: 10px 12px;
	width: 100%;
}

.boda-rsvp-field input:focus,
.boda-rsvp-field select:focus,
.boda-rsvp-attendee-field input:focus {
	border-color: var(--boda-primary);
	box-shadow: 0 0 0 3px rgba(127, 90, 79, 0.16);
	outline: 0;
}

.boda-rsvp-submit,
.boda-rsvp-whatsapp,
.boda-rsvp-edit {
	align-items: center;
	border-radius: 8px;
	display: inline-flex;
	font-weight: 800;
	justify-content: center;
	line-height: 1.2;
	min-height: 48px;
	padding: 13px 18px;
	text-decoration: none;
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.boda-rsvp-submit {
	background: var(--boda-primary);
	border: 0;
	color: #ffffff;
	cursor: pointer;
	font-size: 16px;
	width: 100%;
}

.boda-rsvp-submit:hover,
.boda-rsvp-whatsapp:hover,
.boda-rsvp-edit:hover {
	box-shadow: 0 10px 24px rgba(36, 31, 28, 0.14);
	transform: translateY(-1px);
}

.boda-rsvp-alert {
	background: #fff7f2;
	border-color: rgba(160, 70, 45, 0.28);
	color: #8a321e;
	font-weight: 700;
	margin-bottom: 18px;
	padding: 14px 16px;
}

.boda-rsvp-success,
.boda-rsvp-empty {
	padding: 34px 30px;
	text-align: center;
}

.boda-rsvp-success pre {
	background: rgba(36, 31, 28, 0.04);
	border: 1px solid var(--boda-line);
	border-radius: 8px;
	color: var(--boda-ink);
	font-family: inherit;
	font-size: 15px;
	line-height: 1.55;
	margin: 22px auto;
	max-width: 680px;
	overflow: auto;
	padding: 18px;
	text-align: left;
	white-space: pre-wrap;
}

.boda-rsvp-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
}

.boda-rsvp-whatsapp {
	background: #1f8f5f;
	color: #ffffff;
}

.boda-rsvp-edit {
	background: #ffffff;
	border: 1px solid var(--boda-line);
	color: var(--boda-primary);
}

[hidden] {
	display: none !important;
}

@media (max-width: 700px) {
	.boda-rsvp-wrap {
		padding: 20px 12px 42px;
	}

	.boda-rsvp-hero,
	.boda-rsvp-card,
	.boda-rsvp-success,
	.boda-rsvp-empty {
		padding: 24px 18px;
	}

	.boda-rsvp-options {
		grid-template-columns: 1fr;
	}

	.boda-rsvp-hero p:not(.boda-rsvp-kicker) {
		font-size: 16px;
	}

	.boda-rsvp-actions {
		display: grid;
		grid-template-columns: 1fr;
	}
}
