/**
 * Full-page body background: PHP adds background-image when it finds (first match):
 *   background-mobile | bg_mobile | bg-mobile | mobile
 *   background-desktop | bg_desktop | bg-desktop | desktop
 *   + jpg, jpeg, png, webp, gif. Breakpoint: 768px (mobile first, then desktop).
 * Form cards use a solid fill (`.dianair-rsvp-card`).
 */

body.dianair-rsvp-site {
	font-family: "Caveat", cursive;
	font-size: 1.375rem;
	line-height: 1.35;
	background-color: #f4f2ef;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	background-attachment: scroll;
	min-height: 100vh;
}

body.dianair-rsvp-site h1 {
	font-family: "Mea Culpa", cursive;
	font-style: normal;
	letter-spacing: 0.02em;
}

/* --- RSVP layout --- */

.dianair-rsvp-wrap {
	box-sizing: border-box;
	max-width: calc( 32rem + 100px );
	margin: 0 auto;
	padding: 40px 1rem 3rem;
}

@media ( max-width: 768px ) {
	.dianair-rsvp-wrap {
		padding-left: 0;
		padding-right: 0;
	}
}

.dianair-rsvp-hero {
	text-align: center;
	margin-bottom: 1.5rem;
	color: #1a1a1a;
	text-shadow: 0 1px 2px rgba( 255, 255, 255, 0.85 );
}

/* Hero inside `.dianair-rsvp-card` — reads on solid panel, not photo. */
.dianair-rsvp-hero--in-card {
	margin: 0 0 40px;
	padding: 0 0 1.25rem;
	border-bottom: 1px solid rgba( 0, 0, 0, 0.08 );
	text-shadow: none;
}

.dianair-rsvp-hero--in-card .dianair-rsvp-title {
	display: block;
	margin: 0 0 0.5rem;
	font-size: min( 70px, 12vw );
	font-weight: 600;
	line-height: 1.1;
	white-space: normal;
}

/* Sequential “written” reveal on load (one span per grapheme). */
.dianair-rsvp-title .dianair-rsvp-title__bit {
	display: inline-block;
	opacity: 0;
	animation: dianair-title-write 0.42s cubic-bezier( 0.22, 1, 0.36, 1 ) forwards;
	animation-delay: calc( var( --t ) * 0.065s );
}

.dianair-rsvp-title .dianair-rsvp-title__bit--sp {
	min-width: 0.15em;
}

@keyframes dianair-title-write {
	from {
		opacity: 0;
		transform: translate( 0.06em, 0.08em );
	}
	to {
		opacity: 1;
		transform: translate( 0, 0 );
	}
}

@media ( prefers-reduced-motion: reduce ) {
	.dianair-rsvp-title .dianair-rsvp-title__bit {
		opacity: 1;
		animation: none;
		transform: none;
	}
}

.dianair-rsvp-tagline {
	margin: 0;
	font-size: calc( 1rem + 15px );
	opacity: 0.92;
}

.dianair-rsvp-card {
	background: #faf9f7;
	border-radius: 12px;
	padding: 1.25rem 0.5rem 1.5rem;
	box-shadow: 0 8px 32px rgba( 0, 0, 0, 0.12 );
}

.dianair-rsvp-form .dianair-rsvp-label {
	display: block;
	margin-top: 1rem;
	margin-bottom: 0.35rem;
	font-weight: 600;
	font-size: calc( 0.9rem + 10px );
}

.dianair-rsvp-form .dianair-rsvp-label:first-of-type,
.dianair-rsvp-form .dianair-rsvp-fieldset:first-of-type {
	margin-top: 0;
}

.dianair-rsvp-input {
	width: 100%;
	box-sizing: border-box;
	padding: 0.6rem 0.75rem;
	border: 1px solid #ccc;
	border-radius: 8px;
	font: inherit;
}

.dianair-rsvp-fieldset {
	margin: 1rem 0 0;
	padding: 0.75rem 0 0;
	border: none;
	border-top: 1px solid rgba( 0, 0, 0, 0.08 );
}

.dianair-rsvp-form .dianair-rsvp-legend {
	padding: 0;
	font-weight: 600;
	font-size: calc( 0.9rem + 10px );
}

.dianair-rsvp-radio,
.dianair-rsvp-check {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	margin: 0.5rem 0 0;
	font-size: calc( 0.95rem + 10px );
	cursor: pointer;
}

.dianair-rsvp-radio input,
.dianair-rsvp-check input {
	margin-top: 0.2rem;
	flex-shrink: 0;
}

.dianair-rsvp-button {
	display: inline-block;
	margin-top: 1.25rem;
	padding: 0.65rem 1.25rem;
	border: none;
	border-radius: 999px;
	background: #2c2c2c;
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.dianair-rsvp-button:hover,
.dianair-rsvp-button:focus-visible {
	background: #111;
}

a.dianair-rsvp-button {
	color: #fff;
	text-decoration: none;
	box-sizing: border-box;
}

.dianair-rsvp-notice {
	margin: 0 0 1rem;
	padding: 0.75rem 1rem;
	border-radius: 8px;
	background: rgba( 255, 235, 230, 0.95 );
	color: #6b1a1a;
	font-size: 0.95rem;
}

.dianair-rsvp-thanks {
	text-align: center;
}

.dianair-rsvp-thanks-figure {
	margin: 0;
}

.dianair-rsvp-thanks-img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 0 auto;
	border-radius: 10px;
	box-shadow: 0 4px 20px rgba( 0, 0, 0, 0.1 );
}

.dianair-rsvp-thanks-figure-caption {
	margin: 1rem 0 0;
}

.dianair-rsvp-button--download {
	margin-top: 0.75rem;
}

.dianair-rsvp-thanks-figure + .dianair-rsvp-thanks-text {
	margin-top: 1.25rem;
}

.dianair-rsvp-thanks-text {
	margin: 0;
	font-size: 1.1rem;
}
