/* InviteOS — Event page themes.
   Every theme skins the SAME markup, so the RSVP block is structurally
   guaranteed to appear in all of them. Only colour, type and shape change. */

/* ---------------- shared theme scaffolding ---------------- */

.ios-rsvp-body[class*="theme-"] .rs-card,
.ios-rsvp-body[class*="theme-"] .rs-block {
	transition: none;
}

.rs-monogram {
	width: 118px; height: 118px;
	border-radius: 99px;
	display: flex; align-items: center; justify-content: center;
	margin: 0 auto 18px;
	font-family: var(--font-display);
	font-size: 38px; letter-spacing: 2px;
}

/* live countdown */
.rs-count4 { display: flex; justify-content: center; gap: 9px; margin-top: 20px; flex-wrap: wrap; }
.rs-count4 div {
	min-width: 76px; padding: 12px 10px;
	border-radius: 10px; text-align: center;
	background: #faf5ea; border: 1px solid var(--line-light);
}
.rs-count4 b {
	display: block; font-family: var(--font-display);
	font-size: 30px; font-weight: 600; line-height: 1.1; color: var(--foil);
	font-variant-numeric: tabular-nums;
}
.rs-count4 span { font-size: 9px; letter-spacing: 2px; text-transform: uppercase; color: var(--muted-l); }

/* calendar grid */
.rs-cal { margin-top: 20px; }
.rs-cal-month { font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: var(--muted-l); margin-bottom: 10px; }
.rs-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.rs-cal-grid span {
	aspect-ratio: 1; display: flex; align-items: center; justify-content: center;
	font-size: 13px; color: #6b6259; border-radius: 99px;
}
.rs-cal-grid span.dow { font-size: 9.5px; letter-spacing: 1px; text-transform: uppercase; color: #a99c8c; }
.rs-cal-grid span.on { background: var(--foil); color: #fff; font-weight: 700; }

/* dress-code palette */
.rs-palette { display: flex; justify-content: center; gap: 12px; margin-top: 16px; flex-wrap: wrap; }
.rs-palette i {
	width: 42px; height: 42px; border-radius: 99px; display: block;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12);
}

/* guest info cards */
.rs-info { display: grid; gap: 12px; margin-top: 6px; }
.rs-info-row { display: flex; gap: 14px; align-items: flex-start; text-align: left; }
.rs-info-row svg { width: 30px; height: 30px; flex-shrink: 0; color: var(--foil); }
.rs-info-row b { display: block; font-size: 11.5px; letter-spacing: 2.2px; text-transform: uppercase; margin-bottom: 4px; }
.rs-info-row p { font-size: 14px; color: var(--muted-l); line-height: 1.6; }

/* quote */
.rs-quote {
	border: 1px solid var(--line-light);
	padding: 26px 24px; margin-top: 8px;
	font-family: var(--font-display); font-style: italic;
	font-size: 20px; line-height: 1.6; color: #6b6070; text-align: center;
	position: relative;
}
.rs-quote::before {
	content: "\201C"; position: absolute; top: -2px; left: 50%; transform: translateX(-50%);
	font-family: var(--font-display); font-size: 54px; color: var(--foil); line-height: 1;
}

/* second venue */
.rs-venues { display: grid; gap: 14px; }
.rs-venue-card {
	border: 1px solid var(--line-light); border-radius: 12px;
	padding: 18px 20px; text-align: center; background: #faf5ea;
}
.rs-venue-card .vk { font-size: 10.5px; letter-spacing: 2.6px; text-transform: uppercase; color: var(--foil); font-weight: 700; }
.rs-venue-card .vt { font-family: var(--font-display); font-size: 26px; font-weight: 600; margin: 6px 0 2px; }
.rs-venue-card .va { font-size: 13.5px; color: var(--muted-l); line-height: 1.6; }

/* guest-count stepper */
.rs-step { display: flex; align-items: center; gap: 14px; }
.rs-step button {
	width: 44px; height: 44px; border-radius: 10px;
	border: 1px solid var(--line-light); background: var(--paper);
	font-size: 22px; line-height: 1; color: #2a2430;
}
.rs-step output {
	flex: 1; text-align: center;
	font-family: var(--font-display); font-size: 30px; font-weight: 600;
	border: 1px solid var(--line-light); border-radius: 10px;
	padding: 7px 0; background: var(--paper);
	font-variant-numeric: tabular-nums;
}
.rs-adults { font-size: 13px; color: var(--muted-l); text-align: center; margin-top: 14px; font-style: italic; }

/* ================= THEME: LOVE ================= */
.theme-love {
	--foil: #7a5c3e; --foil-soft: #c2a98c;
	background: #f2ece1;
	color: #3a2f28;
}
.theme-love .rs-card, .theme-love .rs-block {
	background: #f7f2e8; border-radius: 2px;
	box-shadow: 0 14px 40px rgba(58, 47, 40, 0.12);
}
.theme-love .rs-card::before { border-color: #d8cab4; }
.theme-love .rs-title {
	font-family: 'Great Vibes', cursive; font-size: clamp(46px, 10vw, 66px);
	color: #3a2f28; font-weight: 400;
}
.theme-love .rs-block h3 {
	font-family: 'Great Vibes', cursive; font-weight: 400;
	font-size: 34px; color: #3a2f28;
}
.theme-love .rs-rule { background: #c2a98c; }
.theme-love .rs-eyebrow { color: #8d7761; }
.theme-love .rs-choice button.yes.on { background: #3a2f28; border-color: #3a2f28; color: #f7f2e8; }
.theme-love .rs-send, .theme-love .rs-map-btn { background: #2e241f; border-radius: 2px; }
.theme-love .rs-count4 b { color: #7a5c3e; }
.theme-love .rs-cal-grid span.on { background: #a8332a; }
/* the RSVP form sits on a dark panel, as in the reference */
.theme-love .rs-form-panel {
	background: #2b211c; color: #efe6d8;
	margin: 22px -44px -44px; padding: 34px 44px 40px;
	border-radius: 0 0 2px 2px;
}
.theme-love .rs-form-panel .rs-field label { color: #b9a892; }
.theme-love .rs-form-panel .rs-field input,
.theme-love .rs-form-panel .rs-field textarea,
.theme-love .rs-form-panel .rs-field select {
	background: #3a2e27; border-color: #55443a; color: #f7f2e8;
}
.theme-love .rs-form-panel .rs-step output { background: #3a2e27; border-color: #55443a; color: #f7f2e8; }
.theme-love .rs-form-panel .rs-step button { background: #3a2e27; border-color: #55443a; color: #f7f2e8; }
.theme-love .rs-form-panel .rs-choice button { background: #3a2e27; border-color: #55443a; color: #e6dccd; }
.theme-love .rs-form-panel .rs-choice button.yes.on { background: #f7f2e8; color: #2b211c; border-color: #f7f2e8; }
.theme-love .rs-form-panel .rs-choice button.no.on { background: #8a4038; color: #fff; border-color: #8a4038; }
.theme-love .rs-form-panel .rs-send { background: #f7f2e8; color: #2b211c; }

/* ================= THEME: SAGE ================= */
.theme-sage {
	--foil: #4a5230; --foil-soft: #8a9470;
	background: #f0efe9;
	color: #3f4436;
}
.theme-sage .rs-card, .theme-sage .rs-block {
	background: #fdfdfa; border-radius: 20px;
	box-shadow: 0 12px 34px rgba(63, 68, 54, 0.09);
	border: 1px solid #e3e3d8;
}
.theme-sage .rs-card::before { display: none; }
.theme-sage .rs-title { font-family: var(--font-display); font-weight: 500; letter-spacing: 3px; color: #3f4436; }
.theme-sage .rs-block h3 { letter-spacing: 4px; text-transform: uppercase; font-size: 23px; font-weight: 500; }
.theme-sage .rs-rule { background: #8a9470; width: 60px; }
.theme-sage .rs-card.with-hero .rs-hero-in { border-radius: 20px 20px 0 0; }
.theme-sage .rs-send, .theme-sage .rs-map-btn { background: #4a5230; border-radius: 8px; }
.theme-sage .rs-choice button.yes.on { background: #eef0e6; border-color: #4a5230; color: #4a5230; }
.theme-sage .rs-venue-card, .theme-sage .rs-marks li, .theme-sage .rs-count4 div { background: #f4f5ee; border-color: #e3e3d8; }

/* ================= THEME: VELURE ================= */
.theme-velure {
	--foil: #c9a961; --foil-soft: #e3d3a8;
	background: #0d2b24;
	color: #f5f1e6;
}
.theme-velure .rs-card, .theme-velure .rs-block {
	background: linear-gradient(165deg, #134034, #0f342b);
	border: 1px solid rgba(201, 169, 97, 0.4);
	border-radius: 18px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.35);
	color: #f5f1e6;
}
.theme-velure .rs-card::before { border-color: rgba(201, 169, 97, 0.45); }
.theme-velure .rs-title { color: #f5f1e6; letter-spacing: 4px; text-transform: uppercase; font-weight: 500; }
.theme-velure .rs-block h3 { color: #f5f1e6; letter-spacing: 4px; text-transform: uppercase; font-size: 23px; }
.theme-velure .rs-eyebrow, .theme-velure .rs-details, .theme-velure .rs-venue-note,
.theme-velure .rs-info-row p, .theme-velure .rs-marks span { color: #c2bda8; }
.theme-velure .rs-msg, .theme-velure .rs-quote { color: #b9b3a0; }
.theme-velure .rs-venue, .theme-velure .rs-address, .theme-velure .rs-marks b,
.theme-velure .rs-venue-card .vt, .theme-velure .rs-info-row b { color: #f5f1e6; }
.theme-velure .rs-monogram { border: 1.5px solid #c9a961; color: #c9a961; }
.theme-velure .rs-guest, .theme-velure .rs-venue-card, .theme-velure .rs-marks li,
.theme-velure .rs-count4 div, .theme-velure .rs-quote {
	background: rgba(255, 255, 255, 0.05); border-color: rgba(201, 169, 97, 0.32);
}
.theme-velure .rs-guest .n, .theme-velure .rs-count4 b { color: #c9a961; }
.theme-velure .rs-field label { color: #a89f8c; }
.theme-velure .rs-field input, .theme-velure .rs-field textarea, .theme-velure .rs-field select,
.theme-velure .rs-step output, .theme-velure .rs-step button {
	background: rgba(0, 0, 0, 0.25); border-color: rgba(201, 169, 97, 0.35); color: #f5f1e6;
}
.theme-velure .rs-choice button { background: rgba(0, 0, 0, 0.2); border-color: rgba(201, 169, 97, 0.35); color: #e6e1d2; }
.theme-velure .rs-choice button.yes.on { background: #c9a961; border-color: #c9a961; color: #10332a; }
.theme-velure .rs-send, .theme-velure .rs-map-btn { background: #c9a961; color: #10332a; border-radius: 99px; }
.theme-velure .rs-map { background: #f5f1e6; }
.theme-velure .rs-foot { color: #8f8b7a; }

/* ================= THEME: EUCALYPTUS ================= */
.theme-eucalyptus {
	--foil: #5f7250; --foil-soft: #a8bb96;
	background: #f4f7f1;
	color: #3f4a36;
}
.theme-eucalyptus .rs-card, .theme-eucalyptus .rs-block {
	background: #fff; border-radius: 4px;
	box-shadow: 0 12px 34px rgba(63, 74, 54, 0.1);
	border: 1px solid #e6ece0;
}
.theme-eucalyptus .rs-card::before { display: none; }
.theme-eucalyptus .rs-title { font-family: 'Great Vibes', cursive; font-size: clamp(44px, 9vw, 62px); color: #4a5a3a; font-weight: 400; }
.theme-eucalyptus .rs-block h3 { letter-spacing: 4px; text-transform: uppercase; font-size: 21px; font-weight: 600; font-family: var(--font-ui); }
.theme-eucalyptus .rs-rule { background: #a8bb96; }
.theme-eucalyptus .rs-monogram {
	border-radius: 0; width: auto; height: auto;
	font-family: var(--font-ui); font-weight: 600; font-size: 34px;
	letter-spacing: 5px; color: #5f7250;
}
.theme-eucalyptus .rs-send, .theme-eucalyptus .rs-map-btn { background: #5f7250; border-radius: 6px; }
.theme-eucalyptus .rs-choice button.yes.on { background: #eef3e9; border-color: #5f7250; color: #4a5a3a; }
.theme-eucalyptus .rs-venue-card, .theme-eucalyptus .rs-marks li, .theme-eucalyptus .rs-count4 div { background: #f4f7f1; border-color: #e0e8d8; }

/* ================= THEME: MODERN ROMANCE ================= */
.theme-romance {
	--foil: #b08d57; --foil-soft: #d8c19b;
	background: #f7f3ee;
	color: #2b2620;
}
.theme-romance .rs-card, .theme-romance .rs-block {
	background: #fff; border-radius: 22px;
	box-shadow: 0 10px 30px rgba(43, 38, 32, 0.07);
	border: 1px solid #ece5db;
}
.theme-romance .rs-card::before { display: none; }
.theme-romance .rs-title { font-family: var(--font-display); font-weight: 500; letter-spacing: -0.5px; }
.theme-romance .rs-block h3 { font-family: var(--font-display); font-weight: 500; font-size: 30px; }
.theme-romance .rs-rule { background: #b08d57; }
.theme-romance .rs-card.with-hero .rs-hero-in { border-radius: 22px 22px 0 0; }
.theme-romance .rs-eyebrow { color: #a99c8c; }
.theme-romance .rs-send { background: #2b2620; border-radius: 12px; }
.theme-romance .rs-map-btn { background: #2b2620; border-radius: 12px; }
.theme-romance .rs-choice button { border-radius: 12px; }
.theme-romance .rs-choice button.yes.on { background: #f4efe6; border-color: #b08d57; color: #8a6c3c; }
.theme-romance .rs-count4 div { background: #fff; border-color: #ece5db; border-radius: 14px; }
.theme-romance .rs-venue-card, .theme-romance .rs-marks li { background: #faf7f2; border-color: #ece5db; border-radius: 14px; }
.theme-romance .rs-prog li { border-bottom-color: #ece5db; }


/* hero corners follow each theme's card radius */
.theme-love .rs-card.with-hero .rs-hero-in { border-radius: 2px 2px 0 0; }
.theme-velure .rs-card.with-hero .rs-hero-in { border-radius: 17px 17px 0 0; }
.theme-eucalyptus .rs-card.with-hero .rs-hero-in { border-radius: 3px 3px 0 0; }

/* Love's dark RSVP panel must reach the card edges at the narrow width */
.theme-love .rs-form-panel { margin: 22px -34px -36px; padding: 30px 34px 34px; }
@media (max-width: 600px) { .theme-love .rs-form-panel { margin: 20px -20px -28px; padding: 26px 20px 28px; } }

/* ================================================================
   PER-THEME INFORMATION ARCHITECTURE
   Each theme reorders the same children and treats the photo
   differently, mirroring its reference layout.
   ================================================================ */

/* ---- LOVE: text first, photo beneath, photo fades into the paper ---- */
.theme-love .rs-card.with-hero > .rs-head { display: block; order: 1; padding-top: 34px; }
.theme-love .rs-card.with-hero > .rs-hero-in { order: 2; aspect-ratio: 4 / 3.4; margin-bottom: 22px; }
.theme-love .rs-card.with-hero > .rs-details { order: 3; }
.theme-love .rs-hero-cap { display: none; }
/* gradual fade from the photo into the ivory card */
.theme-love .rs-hero-veil {
	background: linear-gradient(to bottom, rgba(247, 242, 232, 0) 55%, rgba(247, 242, 232, 0.55) 82%, #f7f2e8 100%);
}
.theme-love .rs-card.with-hero { padding-top: 0; }
.theme-love .rs-details {
	border-top: 1px solid #d8cab4; border-bottom: 1px solid #d8cab4;
	padding: 16px 0; margin: 0 auto; display: inline-block;
}

/* ---- SAGE: photo leads, names sit over the foot of the image ---- */
.theme-sage .rs-card.with-hero > .rs-hero-in { aspect-ratio: 3 / 4; }
.theme-sage .rs-hero-veil {
	background: linear-gradient(to bottom, rgba(20,17,23,0) 38%, rgba(20,17,23,0.2) 62%, rgba(20,17,23,0.78) 100%);
}
.theme-sage .rs-hero-cap { padding: 30px 26px 26px; }
.theme-sage .rs-hero-title { letter-spacing: 2px; font-weight: 500; }
/* alternating tone between panels, as in the reference */
.theme-sage .rs-blocks .rs-block:nth-child(even) { background: #eef0e6; }

/* ---- VELURE: emerald panel header, then an arched photo ---- */
.theme-velure .rs-card.with-hero > .rs-head { display: block; order: 1; padding-top: 40px; }
.theme-velure .rs-card.with-hero > .rs-details { order: 2; padding-bottom: 26px; }
.theme-velure .rs-card.with-hero > .rs-hero-in {
	order: 3;
	aspect-ratio: 4 / 4.4;
	margin-bottom: 24px;
	border-radius: 200px 200px 0 0 !important;
	border-top: 1.5px solid rgba(201, 169, 97, 0.6);
}
.theme-velure .rs-hero-cap { display: none; }
.theme-velure .rs-hero-veil {
	background: linear-gradient(to bottom, rgba(15,52,43,0.12) 0%, rgba(15,52,43,0) 30%, rgba(15,52,43,0.55) 82%, #0f342b 100%);
}
.theme-velure .rs-card.with-hero { padding-top: 0; }
.theme-velure .rs-monogram { margin-top: 4px; }

/* ---- EUCALYPTUS: monogram and text first, soft-edged photo below ---- */
.theme-eucalyptus .rs-card.with-hero > .rs-head { display: block; order: 1; padding-top: 36px; }
.theme-eucalyptus .rs-card.with-hero > .rs-hero-in { order: 2; aspect-ratio: 4 / 3.6; margin-bottom: 22px; }
.theme-eucalyptus .rs-card.with-hero > .rs-details { order: 3; }
.theme-eucalyptus .rs-hero-cap { display: none; }
.theme-eucalyptus .rs-hero-veil {
	background: linear-gradient(to bottom, rgba(255,255,255,0) 62%, rgba(255,255,255,0.5) 84%, #fff 100%);
}
.theme-eucalyptus .rs-card.with-hero { padding-top: 0; }

/* ---- MODERN ROMANCE: split hero on desktop — copy left, photo right ---- */
.theme-romance .rs-card.with-hero > .rs-head { display: block; }
.theme-romance .rs-hero-cap { display: none; }
.theme-romance .rs-hero-veil { background: none; }
.theme-romance .rs-card.with-hero > .rs-hero-in {
	order: 2; aspect-ratio: 4 / 3; margin: 0 0 20px; border-radius: 18px !important;
}
.theme-romance .rs-card.with-hero > .rs-head { order: 1; padding-top: 8px; }
.theme-romance .rs-card { text-align: left; }
.theme-romance .rs-rule { margin-left: 0; }
.theme-romance .rs-details { text-align: left; }
.theme-romance .rs-count4 { justify-content: flex-start; }
.theme-romance .rs-eyebrow { text-align: left; }

@media (min-width: 1080px) {
	.theme-romance .rs-card.with-hero {
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-column-gap: 26px;
		align-items: center;
		padding: 32px;
	}
	.theme-romance .rs-card.with-hero > .rs-hero-in {
		grid-column: 2; grid-row: 1 / span 4;
		aspect-ratio: 3 / 4; margin: 0; height: 100%;
	}
	.theme-romance .rs-card.with-hero > .rs-head,
	.theme-romance .rs-card.with-hero > .rs-details,
	.theme-romance .rs-card.with-hero > .rs-count4 { grid-column: 1; }
	.theme-romance .rs-card.with-hero > .rs-form-panel,
	.theme-romance .rs-card.with-hero > .rs-eyebrow,
	.theme-romance .rs-card.with-hero > .rs-choice,
	.theme-romance .rs-card.with-hero > .rs-form,
	.theme-romance .rs-card.with-hero > .rs-send,
	.theme-romance .rs-card.with-hero > .rs-msg,
	.theme-romance .rs-card.with-hero > .rs-foot,
	.theme-romance .rs-card.with-hero > .rs-cal,
	.theme-romance .rs-card.with-hero > .rs-guest,
	.theme-romance .rs-card.with-hero > .rs-adults { grid-column: 1 / -1; }
}

/* ---- CLASSIC: photo leads with a gentle fade ---- */
.theme-classic .rs-hero-veil,
.ios-rsvp-body:not([class*="theme-"]) .rs-hero-veil {
	background: linear-gradient(to bottom, rgba(20,17,23,0) 40%, rgba(20,17,23,0.68) 100%);
}


/* ================================================================
   THEME DETAIL (v4.1)
   Ornaments are CSS MASKS, so their colour comes from custom properties
   rather than being baked into the artwork. Every decorative layer sits
   at z-index 0 with the card's own content lifted above it, so nothing
   is ever drawn on top of text.
   ================================================================ */

/* content always rides above decoration */
.rs-card > *, .rs-block > * { position: relative; z-index: 1; }
.rs-card, .rs-block { isolation: isolate; }
.rs-card::after, .rs-card::before,
.rs-block::after, .rs-block::before { z-index: 0; }

/* ---------------------------------------------------------------
   LOVE
   --------------------------------------------------------------- */
.theme-love {
	--paper: #f7f2e8;
	--ink: #3a2f28;
	--ornament: #c2a98c;
	--panel: #2b211c;
	--panel-ink: #efe6d8;
	--heart: #a8332a;
}
.theme-love .rs-card, .theme-love .rs-block {
	background:
		radial-gradient(ellipse at 18% 8%, rgba(255,255,255,.5), transparent 55%),
		radial-gradient(ellipse at 84% 92%, rgba(216,202,180,.26), transparent 55%),
		var(--paper);
	color: var(--ink);
}
.theme-love .rs-title, .theme-love .rs-block h3, .theme-love .rs-hero-title {
	font-family: var(--font-display, 'Pinyon Script'), cursive;
	font-weight: 400; line-height: 1.35;
}
.theme-love .rs-title { font-size: clamp(38px, 9.5vw, 52px); }
.theme-love .rs-block h3 { font-size: 33px; letter-spacing: 0; text-transform: none; }
.theme-love .rs-eyebrow, .theme-love .rs-details, .theme-love .rs-marks span, .theme-love .rs-foot {
	font-family: var(--font-ui, 'Sora'), sans-serif;
	text-transform: uppercase; letter-spacing: 3px; font-size: 10.5px;
}
.theme-love .rs-details { font-size: 11px; letter-spacing: 2.6px; line-height: 2.2; }
.theme-love .rs-msg { font-family: 'Cormorant Garamond', serif; font-size: 19px; }
.theme-love .rs-rule {
	width: 190px; height: 26px; background-color: var(--ornament);
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20200%2040%27%3E%3Cpath%20d%3D%27M10%2020c30-16%2050%2016%2080%200s50-16%2080%200%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20fill%3D%27none%27%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20200%2040%27%3E%3Cpath%20d%3D%27M10%2020c30-16%2050%2016%2080%200s50-16%2080%200%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20fill%3D%27none%27%2F%3E%3C%2Fsvg%3E");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;
}
.theme-love .rs-rule::after {
	content: ""; position: absolute; left: 50%; top: 50%;
	width: 20px; height: 20px; transform: translate(-50%, -50%);
	background-color: var(--heart);
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2040%2040%27%3E%3Cpath%20d%3D%27M20%2037S3%2025%203%2014A9.5%209.5%200%200%201%2020%208%209.5%209.5%200%200%201%2037%2014c0%2011-17%2023-17%2023z%27%20fill%3D%27%23000%27%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2040%2040%27%3E%3Cpath%20d%3D%27M20%2037S3%2025%203%2014A9.5%209.5%200%200%201%2020%208%209.5%209.5%200%200%201%2037%2014c0%2011-17%2023-17%2023z%27%20fill%3D%27%23000%27%2F%3E%3C%2Fsvg%3E");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;
}
.theme-love .rs-rule { position: relative; }
.theme-love .rs-cal-grid span.on { background: none; color: var(--panel-ink); position: relative; font-weight: 700; z-index: 1; }
.theme-love .rs-cal-grid span.on::before {
	content: ""; position: absolute; inset: -5px; z-index: -1;
	background-color: var(--heart);
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2040%2040%27%3E%3Cpath%20d%3D%27M20%2037S3%2025%203%2014A9.5%209.5%200%200%201%2020%208%209.5%209.5%200%200%201%2037%2014c0%2011-17%2023-17%2023z%27%20fill%3D%27%23000%27%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2040%2040%27%3E%3Cpath%20d%3D%27M20%2037S3%2025%203%2014A9.5%209.5%200%200%201%2020%208%209.5%209.5%200%200%201%2037%2014c0%2011-17%2023-17%2023z%27%20fill%3D%27%23000%27%2F%3E%3C%2Fsvg%3E");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;
}
/* the wave is the panel's own edge, so it takes the panel colour */
.theme-love .rs-form-panel { position: relative; border-radius: 0; background: var(--panel); color: var(--panel-ink); }
.theme-love .rs-form-panel::before {
	content: ""; position: absolute; left: 0; right: 0; top: -30px; height: 32px;
	background-color: var(--panel);
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201200%2040%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M0%2040V16c150-22%20300%2018%20450%2010s300-32%20450-16%20150%2022%20300%2012v18z%27%20fill%3D%27%23000%27%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201200%2040%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M0%2040V16c150-22%20300%2018%20450%2010s300-32%20450-16%20150%2022%20300%2012v18z%27%20fill%3D%27%23000%27%2F%3E%3C%2Fsvg%3E");
	-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
	-webkit-mask-size: 100% 100%; mask-size: 100% 100%;
}
.theme-love .rs-form-panel .rs-eyebrow {
	font-family: var(--font-display, 'Pinyon Script'), cursive;
	text-transform: none; letter-spacing: 0; font-size: 30px; color: var(--panel-ink);
}
.theme-love .rs-form-panel .rs-field label { color: #b9a892; }
.theme-love .rs-form-panel .rs-field input,
.theme-love .rs-form-panel .rs-field textarea,
.theme-love .rs-form-panel .rs-field select,
.theme-love .rs-form-panel .rs-step output,
.theme-love .rs-form-panel .rs-step button { background: #3a2e27; border-color: #55443a; color: var(--paper); }
.theme-love .rs-form-panel .rs-choice button { background: #3a2e27; border-color: #55443a; color: #e6dccd; }
.theme-love .rs-form-panel .rs-choice button.yes.on { background: var(--paper); color: var(--panel); border-color: var(--paper); }
.theme-love .rs-form-panel .rs-choice button.no.on { background: #8a4038; color: #fff; border-color: #8a4038; }
.theme-love .rs-form-panel .rs-send { background: var(--paper); color: var(--panel); }
.theme-love .rs-send, .theme-love .rs-map-btn { border-radius: 2px; letter-spacing: 3px; text-transform: uppercase; font-size: 12.5px; }
.theme-love .rs-map-btn { background: none; border: 1px solid var(--ink); color: var(--ink); }
.theme-love .rs-prog { position: relative; padding: 6px 0; }
.theme-love .rs-prog::before {
	content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px;
	background: repeating-linear-gradient(to bottom, var(--ornament) 0 7px, transparent 7px 14px);
	transform: translateX(-50%);
}
.theme-love .rs-prog li { border: 0; position: relative; display: block; width: 50%; padding: 10px 22px 10px 0; text-align: right; }
.theme-love .rs-prog li:nth-child(even) { margin-left: 50%; padding: 10px 0 10px 22px; text-align: left; }
.theme-love .rs-prog li::after {
	content: ""; position: absolute; top: 50%; right: -5px;
	width: 9px; height: 9px; border-radius: 99px; background: var(--heart); transform: translateY(-50%);
}
.theme-love .rs-prog li:nth-child(even)::after { right: auto; left: -5px; }
.theme-love .rs-prog .t { font-family: 'Cormorant Garamond', serif; font-size: 20px; color: var(--ink); display: block; }
.theme-love .rs-prog .n { font-family: var(--font-ui, 'Sora'), sans-serif; font-size: 10px; letter-spacing: 2.4px; text-transform: uppercase; opacity: .7; }

/* ---------------------------------------------------------------
   EUCALYPTUS
   --------------------------------------------------------------- */
.theme-eucalyptus {
	--paper: #ffffff;
	--ink: #3f4a36;
	--ornament: #a8bb96;
}
.theme-eucalyptus .rs-card, .theme-eucalyptus .rs-block {
	position: relative; overflow: hidden; background: var(--paper); color: var(--ink);
}
.theme-eucalyptus .rs-card::after {
	content: ""; position: absolute; top: -26px; right: -46px;
	width: 260px; height: 210px; pointer-events: none;
	background-color: var(--ornament); opacity: .9; transform: scaleX(-1);
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20300%20240%27%3E%3Cpath%20d%3D%27M18%20224C74%20176%20122%20128%20268%2026%27%20stroke%3D%27%23000%27%20stroke-width%3D%274%27%20fill%3D%27none%27%2F%3E%3Cg%20fill%3D%27%23000%27%3E%3Cellipse%20cx%3D%2772%27%20cy%3D%27180%27%20rx%3D%2727%27%20ry%3D%2718%27%20transform%3D%27rotate%28-38%2072%20180%29%27%2F%3E%3Cellipse%20cx%3D%27120%27%20cy%3D%27142%27%20rx%3D%2728%27%20ry%3D%2719%27%20transform%3D%27rotate%28-34%20120%20142%29%27%2F%3E%3Cellipse%20cx%3D%27172%27%20cy%3D%27104%27%20rx%3D%2727%27%20ry%3D%2718%27%20transform%3D%27rotate%28-30%20172%20104%29%27%2F%3E%3Cellipse%20cx%3D%27224%27%20cy%3D%2768%27%20rx%3D%2725%27%20ry%3D%2717%27%20transform%3D%27rotate%28-26%20224%2068%29%27%2F%3E%3Cellipse%20cx%3D%27262%27%20cy%3D%2734%27%20rx%3D%2720%27%20ry%3D%2714%27%20transform%3D%27rotate%28-22%20262%2034%29%27%2F%3E%3Cellipse%20cx%3D%2798%27%20cy%3D%27208%27%20rx%3D%2722%27%20ry%3D%2715%27%20transform%3D%27rotate%2826%2098%20208%29%27%2F%3E%3Cellipse%20cx%3D%27150%27%20cy%3D%27168%27%20rx%3D%2723%27%20ry%3D%2715%27%20transform%3D%27rotate%2830%20150%20168%29%27%2F%3E%3Cellipse%20cx%3D%27204%27%20cy%3D%27128%27%20rx%3D%2721%27%20ry%3D%2714%27%20transform%3D%27rotate%2832%20204%20128%29%27%2F%3E%3Cellipse%20cx%3D%27248%27%20cy%3D%2792%27%20rx%3D%2718%27%20ry%3D%2712%27%20transform%3D%27rotate%2834%20248%2092%29%27%2F%3E%3Cellipse%20cx%3D%2752%27%20cy%3D%27150%27%20rx%3D%2718%27%20ry%3D%2712%27%20transform%3D%27rotate%28-52%2052%20150%29%27%2F%3E%3Cellipse%20cx%3D%27140%27%20cy%3D%2796%27%20rx%3D%2717%27%20ry%3D%2711%27%20transform%3D%27rotate%28-48%20140%2096%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20300%20240%27%3E%3Cpath%20d%3D%27M18%20224C74%20176%20122%20128%20268%2026%27%20stroke%3D%27%23000%27%20stroke-width%3D%274%27%20fill%3D%27none%27%2F%3E%3Cg%20fill%3D%27%23000%27%3E%3Cellipse%20cx%3D%2772%27%20cy%3D%27180%27%20rx%3D%2727%27%20ry%3D%2718%27%20transform%3D%27rotate%28-38%2072%20180%29%27%2F%3E%3Cellipse%20cx%3D%27120%27%20cy%3D%27142%27%20rx%3D%2728%27%20ry%3D%2719%27%20transform%3D%27rotate%28-34%20120%20142%29%27%2F%3E%3Cellipse%20cx%3D%27172%27%20cy%3D%27104%27%20rx%3D%2727%27%20ry%3D%2718%27%20transform%3D%27rotate%28-30%20172%20104%29%27%2F%3E%3Cellipse%20cx%3D%27224%27%20cy%3D%2768%27%20rx%3D%2725%27%20ry%3D%2717%27%20transform%3D%27rotate%28-26%20224%2068%29%27%2F%3E%3Cellipse%20cx%3D%27262%27%20cy%3D%2734%27%20rx%3D%2720%27%20ry%3D%2714%27%20transform%3D%27rotate%28-22%20262%2034%29%27%2F%3E%3Cellipse%20cx%3D%2798%27%20cy%3D%27208%27%20rx%3D%2722%27%20ry%3D%2715%27%20transform%3D%27rotate%2826%2098%20208%29%27%2F%3E%3Cellipse%20cx%3D%27150%27%20cy%3D%27168%27%20rx%3D%2723%27%20ry%3D%2715%27%20transform%3D%27rotate%2830%20150%20168%29%27%2F%3E%3Cellipse%20cx%3D%27204%27%20cy%3D%27128%27%20rx%3D%2721%27%20ry%3D%2714%27%20transform%3D%27rotate%2832%20204%20128%29%27%2F%3E%3Cellipse%20cx%3D%27248%27%20cy%3D%2792%27%20rx%3D%2718%27%20ry%3D%2712%27%20transform%3D%27rotate%2834%20248%2092%29%27%2F%3E%3Cellipse%20cx%3D%2752%27%20cy%3D%27150%27%20rx%3D%2718%27%20ry%3D%2712%27%20transform%3D%27rotate%28-52%2052%20150%29%27%2F%3E%3Cellipse%20cx%3D%27140%27%20cy%3D%2796%27%20rx%3D%2717%27%20ry%3D%2711%27%20transform%3D%27rotate%28-48%20140%2096%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;
}
.theme-eucalyptus .rs-blocks .rs-block:nth-child(odd)::after {
	content: ""; position: absolute; bottom: -30px; left: -40px;
	width: 190px; height: 150px; pointer-events: none;
	background-color: var(--ornament); opacity: .6;
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20300%20240%27%3E%3Cpath%20d%3D%27M18%20224C74%20176%20122%20128%20268%2026%27%20stroke%3D%27%23000%27%20stroke-width%3D%274%27%20fill%3D%27none%27%2F%3E%3Cg%20fill%3D%27%23000%27%3E%3Cellipse%20cx%3D%2772%27%20cy%3D%27180%27%20rx%3D%2727%27%20ry%3D%2718%27%20transform%3D%27rotate%28-38%2072%20180%29%27%2F%3E%3Cellipse%20cx%3D%27120%27%20cy%3D%27142%27%20rx%3D%2728%27%20ry%3D%2719%27%20transform%3D%27rotate%28-34%20120%20142%29%27%2F%3E%3Cellipse%20cx%3D%27172%27%20cy%3D%27104%27%20rx%3D%2727%27%20ry%3D%2718%27%20transform%3D%27rotate%28-30%20172%20104%29%27%2F%3E%3Cellipse%20cx%3D%27224%27%20cy%3D%2768%27%20rx%3D%2725%27%20ry%3D%2717%27%20transform%3D%27rotate%28-26%20224%2068%29%27%2F%3E%3Cellipse%20cx%3D%27262%27%20cy%3D%2734%27%20rx%3D%2720%27%20ry%3D%2714%27%20transform%3D%27rotate%28-22%20262%2034%29%27%2F%3E%3Cellipse%20cx%3D%2798%27%20cy%3D%27208%27%20rx%3D%2722%27%20ry%3D%2715%27%20transform%3D%27rotate%2826%2098%20208%29%27%2F%3E%3Cellipse%20cx%3D%27150%27%20cy%3D%27168%27%20rx%3D%2723%27%20ry%3D%2715%27%20transform%3D%27rotate%2830%20150%20168%29%27%2F%3E%3Cellipse%20cx%3D%27204%27%20cy%3D%27128%27%20rx%3D%2721%27%20ry%3D%2714%27%20transform%3D%27rotate%2832%20204%20128%29%27%2F%3E%3Cellipse%20cx%3D%27248%27%20cy%3D%2792%27%20rx%3D%2718%27%20ry%3D%2712%27%20transform%3D%27rotate%2834%20248%2092%29%27%2F%3E%3Cellipse%20cx%3D%2752%27%20cy%3D%27150%27%20rx%3D%2718%27%20ry%3D%2712%27%20transform%3D%27rotate%28-52%2052%20150%29%27%2F%3E%3Cellipse%20cx%3D%27140%27%20cy%3D%2796%27%20rx%3D%2717%27%20ry%3D%2711%27%20transform%3D%27rotate%28-48%20140%2096%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20300%20240%27%3E%3Cpath%20d%3D%27M18%20224C74%20176%20122%20128%20268%2026%27%20stroke%3D%27%23000%27%20stroke-width%3D%274%27%20fill%3D%27none%27%2F%3E%3Cg%20fill%3D%27%23000%27%3E%3Cellipse%20cx%3D%2772%27%20cy%3D%27180%27%20rx%3D%2727%27%20ry%3D%2718%27%20transform%3D%27rotate%28-38%2072%20180%29%27%2F%3E%3Cellipse%20cx%3D%27120%27%20cy%3D%27142%27%20rx%3D%2728%27%20ry%3D%2719%27%20transform%3D%27rotate%28-34%20120%20142%29%27%2F%3E%3Cellipse%20cx%3D%27172%27%20cy%3D%27104%27%20rx%3D%2727%27%20ry%3D%2718%27%20transform%3D%27rotate%28-30%20172%20104%29%27%2F%3E%3Cellipse%20cx%3D%27224%27%20cy%3D%2768%27%20rx%3D%2725%27%20ry%3D%2717%27%20transform%3D%27rotate%28-26%20224%2068%29%27%2F%3E%3Cellipse%20cx%3D%27262%27%20cy%3D%2734%27%20rx%3D%2720%27%20ry%3D%2714%27%20transform%3D%27rotate%28-22%20262%2034%29%27%2F%3E%3Cellipse%20cx%3D%2798%27%20cy%3D%27208%27%20rx%3D%2722%27%20ry%3D%2715%27%20transform%3D%27rotate%2826%2098%20208%29%27%2F%3E%3Cellipse%20cx%3D%27150%27%20cy%3D%27168%27%20rx%3D%2723%27%20ry%3D%2715%27%20transform%3D%27rotate%2830%20150%20168%29%27%2F%3E%3Cellipse%20cx%3D%27204%27%20cy%3D%27128%27%20rx%3D%2721%27%20ry%3D%2714%27%20transform%3D%27rotate%2832%20204%20128%29%27%2F%3E%3Cellipse%20cx%3D%27248%27%20cy%3D%2792%27%20rx%3D%2718%27%20ry%3D%2712%27%20transform%3D%27rotate%2834%20248%2092%29%27%2F%3E%3Cellipse%20cx%3D%2752%27%20cy%3D%27150%27%20rx%3D%2718%27%20ry%3D%2712%27%20transform%3D%27rotate%28-52%2052%20150%29%27%2F%3E%3Cellipse%20cx%3D%27140%27%20cy%3D%2796%27%20rx%3D%2717%27%20ry%3D%2711%27%20transform%3D%27rotate%28-48%20140%2096%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;
}
.theme-eucalyptus .rs-title {
	font-family: var(--font-display, 'Pinyon Script'), cursive; font-weight: 400;
	font-size: clamp(40px, 10vw, 56px); line-height: 1.3;
}
.theme-eucalyptus .rs-block h3 {
	font-family: var(--font-ui, 'Sora'), sans-serif; font-size: 15px;
	letter-spacing: 4.5px; text-transform: uppercase; font-weight: 600;
}
.theme-eucalyptus .rs-eyebrow, .theme-eucalyptus .rs-details {
	font-family: var(--font-ui, 'Sora'), sans-serif; letter-spacing: 3px; text-transform: uppercase; font-size: 10.5px;
}
.theme-eucalyptus .rs-monogram { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: 46px; letter-spacing: 4px; }
/* torn edges take the paper colour so they read as the page tearing */
.theme-eucalyptus .rs-hero-in::after, .theme-eucalyptus .rs-hero-in::before {
	content: ""; position: absolute; left: -2%; width: 104%; height: 22px; z-index: 2;
	background-color: var(--paper);
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201200%2026%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M0%2026V9c40-6%2076%205%20118%202s72-11%20116-8%2078%2012%20122%209%2074-12%20118-9%2080%2013%20124%2010%2072-11%20116-8%2078%2011%20122%208%2076-12%20120-9%2084%2012%20124%206v16z%27%20fill%3D%27%23000%27%2F%3E%3C%2Fsvg%3E"); mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201200%2026%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M0%2026V9c40-6%2076%205%20118%202s72-11%20116-8%2078%2012%20122%209%2074-12%20118-9%2080%2013%20124%2010%2072-11%20116-8%2078%2011%20122%208%2076-12%20120-9%2084%2012%20124%206v16z%27%20fill%3D%27%23000%27%2F%3E%3C%2Fsvg%3E");
	-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
	-webkit-mask-size: 100% 100%; mask-size: 100% 100%;
}
.theme-eucalyptus .rs-hero-in::before { top: -1px; transform: scaleY(-1); }
.theme-eucalyptus .rs-hero-in::after { bottom: -1px; }
.theme-eucalyptus .rs-hero-veil { background: none; }
.theme-eucalyptus .rs-send, .theme-eucalyptus .rs-map-btn {
	border-radius: 7px; letter-spacing: 2.6px; text-transform: uppercase; font-size: 12.5px;
}
.theme-eucalyptus .rs-details { border-top: 1px solid var(--ornament); border-bottom: 1px solid var(--ornament); padding: 13px 0; display: block; }
.theme-eucalyptus .rs-prog li { border-bottom-color: color-mix(in srgb, var(--ornament) 60%, transparent); }
.theme-eucalyptus .rs-prog .t { font-family: var(--font-ui, 'Sora'), sans-serif; font-weight: 600; }
.theme-eucalyptus .rs-prog .n { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 17px; }

/* ---------------------------------------------------------------
   VELURE
   --------------------------------------------------------------- */
.theme-velure {
	--paper: #103b31;
	--ink: #f5f1e6;
	--ornament: #c9a961;
}
.theme-velure .rs-card, .theme-velure .rs-block {
	background:
		radial-gradient(ellipse at 22% 12%, rgba(255,255,255,.07), transparent 52%),
		radial-gradient(ellipse at 78% 84%, rgba(201,169,97,.10), transparent 55%),
		var(--paper);
	position: relative; overflow: hidden; color: var(--ink);
}
.theme-velure .rs-card::after {
	content: ""; position: absolute; bottom: -30px; left: -30px;
	width: 230px; height: 230px; pointer-events: none;
	background-color: var(--ornament); opacity: .5;
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20240%20240%27%3E%3Cg%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20fill%3D%27none%27%3E%3Cpath%20d%3D%27M14%20226C58%20186%2096%20132%20128%2062%27%2F%3E%3Cpath%20d%3D%27M40%20200c30%206%2058-2%2078-22%27%2F%3E%3Cpath%20d%3D%27M66%20160c26%208%2050%202%2068-14%27%2F%3E%3Cpath%20d%3D%27M92%20118c22%208%2044%204%2060-10%27%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%27%23000%27%3E%3Cellipse%20cx%3D%27118%27%20cy%3D%27178%27%20rx%3D%2716%27%20ry%3D%277%27%20transform%3D%27rotate%28-20%20118%20178%29%27%2F%3E%3Cellipse%20cx%3D%27134%27%20cy%3D%27146%27%20rx%3D%2715%27%20ry%3D%277%27%20transform%3D%27rotate%28-24%20134%20146%29%27%2F%3E%3Cellipse%20cx%3D%27152%27%20cy%3D%27108%27%20rx%3D%2714%27%20ry%3D%276%27%20transform%3D%27rotate%28-28%20152%20108%29%27%2F%3E%3Cellipse%20cx%3D%27128%27%20cy%3D%2762%27%20rx%3D%2711%27%20ry%3D%275%27%20transform%3D%27rotate%28-40%20128%2062%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20240%20240%27%3E%3Cg%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20fill%3D%27none%27%3E%3Cpath%20d%3D%27M14%20226C58%20186%2096%20132%20128%2062%27%2F%3E%3Cpath%20d%3D%27M40%20200c30%206%2058-2%2078-22%27%2F%3E%3Cpath%20d%3D%27M66%20160c26%208%2050%202%2068-14%27%2F%3E%3Cpath%20d%3D%27M92%20118c22%208%2044%204%2060-10%27%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%27%23000%27%3E%3Cellipse%20cx%3D%27118%27%20cy%3D%27178%27%20rx%3D%2716%27%20ry%3D%277%27%20transform%3D%27rotate%28-20%20118%20178%29%27%2F%3E%3Cellipse%20cx%3D%27134%27%20cy%3D%27146%27%20rx%3D%2715%27%20ry%3D%277%27%20transform%3D%27rotate%28-24%20134%20146%29%27%2F%3E%3Cellipse%20cx%3D%27152%27%20cy%3D%27108%27%20rx%3D%2714%27%20ry%3D%276%27%20transform%3D%27rotate%28-28%20152%20108%29%27%2F%3E%3Cellipse%20cx%3D%27128%27%20cy%3D%2762%27%20rx%3D%2711%27%20ry%3D%275%27%20transform%3D%27rotate%28-40%20128%2062%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;
}
.theme-velure .rs-blocks .rs-block::after {
	content: ""; position: absolute; top: -24px; right: -24px;
	width: 150px; height: 150px; pointer-events: none;
	background-color: var(--ornament); opacity: .35; transform: scale(-1);
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20240%20240%27%3E%3Cg%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20fill%3D%27none%27%3E%3Cpath%20d%3D%27M14%20226C58%20186%2096%20132%20128%2062%27%2F%3E%3Cpath%20d%3D%27M40%20200c30%206%2058-2%2078-22%27%2F%3E%3Cpath%20d%3D%27M66%20160c26%208%2050%202%2068-14%27%2F%3E%3Cpath%20d%3D%27M92%20118c22%208%2044%204%2060-10%27%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%27%23000%27%3E%3Cellipse%20cx%3D%27118%27%20cy%3D%27178%27%20rx%3D%2716%27%20ry%3D%277%27%20transform%3D%27rotate%28-20%20118%20178%29%27%2F%3E%3Cellipse%20cx%3D%27134%27%20cy%3D%27146%27%20rx%3D%2715%27%20ry%3D%277%27%20transform%3D%27rotate%28-24%20134%20146%29%27%2F%3E%3Cellipse%20cx%3D%27152%27%20cy%3D%27108%27%20rx%3D%2714%27%20ry%3D%276%27%20transform%3D%27rotate%28-28%20152%20108%29%27%2F%3E%3Cellipse%20cx%3D%27128%27%20cy%3D%2762%27%20rx%3D%2711%27%20ry%3D%275%27%20transform%3D%27rotate%28-40%20128%2062%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20240%20240%27%3E%3Cg%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20fill%3D%27none%27%3E%3Cpath%20d%3D%27M14%20226C58%20186%2096%20132%20128%2062%27%2F%3E%3Cpath%20d%3D%27M40%20200c30%206%2058-2%2078-22%27%2F%3E%3Cpath%20d%3D%27M66%20160c26%208%2050%202%2068-14%27%2F%3E%3Cpath%20d%3D%27M92%20118c22%208%2044%204%2060-10%27%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%27%23000%27%3E%3Cellipse%20cx%3D%27118%27%20cy%3D%27178%27%20rx%3D%2716%27%20ry%3D%277%27%20transform%3D%27rotate%28-20%20118%20178%29%27%2F%3E%3Cellipse%20cx%3D%27134%27%20cy%3D%27146%27%20rx%3D%2715%27%20ry%3D%277%27%20transform%3D%27rotate%28-24%20134%20146%29%27%2F%3E%3Cellipse%20cx%3D%27152%27%20cy%3D%27108%27%20rx%3D%2714%27%20ry%3D%276%27%20transform%3D%27rotate%28-28%20152%20108%29%27%2F%3E%3Cellipse%20cx%3D%27128%27%20cy%3D%2762%27%20rx%3D%2711%27%20ry%3D%275%27%20transform%3D%27rotate%28-40%20128%2062%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;
}
.theme-velure .rs-title, .theme-velure .rs-hero-title {
	font-family: var(--font-display, 'Marcellus'), serif;
	letter-spacing: 5px; text-transform: uppercase; font-weight: 400;
}
.theme-velure .rs-block h3 {
	font-family: var(--font-display, 'Marcellus'), serif;
	letter-spacing: 4px; text-transform: uppercase; font-weight: 400;
}
.theme-velure .rs-monogram {
	border: 0; width: 128px; height: 128px;
	background-color: var(--ornament);
	font-family: 'Marcellus', serif; font-size: 30px; letter-spacing: 2px;
	color: var(--ink);
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20200%20200%27%3E%3Ccircle%20cx%3D%27100%27%20cy%3D%27100%27%20r%3D%2778%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%2F%3E%3Cg%20stroke%3D%27%23000%27%20stroke-width%3D%272.2%27%20fill%3D%27none%27%3E%3Cpath%20d%3D%27M58%20152c-22-24-24-62-6-90%27%2F%3E%3Cpath%20d%3D%27M142%20152c22-24%2024-62%206-90%27%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%27%23000%27%3E%3Cellipse%20cx%3D%2752%27%20cy%3D%27134%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%28-40%2052%20134%29%27%2F%3E%3Cellipse%20cx%3D%2747%27%20cy%3D%27116%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%28-25%2047%20116%29%27%2F%3E%3Cellipse%20cx%3D%2746%27%20cy%3D%2797%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%28-8%2046%2097%29%27%2F%3E%3Cellipse%20cx%3D%2750%27%20cy%3D%2778%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%2810%2050%2078%29%27%2F%3E%3Cellipse%20cx%3D%27148%27%20cy%3D%27134%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%2840%20148%20134%29%27%2F%3E%3Cellipse%20cx%3D%27153%27%20cy%3D%27116%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%2825%20153%20116%29%27%2F%3E%3Cellipse%20cx%3D%27154%27%20cy%3D%2797%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%288%20154%2097%29%27%2F%3E%3Cellipse%20cx%3D%27150%27%20cy%3D%2778%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%28-10%20150%2078%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20200%20200%27%3E%3Ccircle%20cx%3D%27100%27%20cy%3D%27100%27%20r%3D%2778%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%2F%3E%3Cg%20stroke%3D%27%23000%27%20stroke-width%3D%272.2%27%20fill%3D%27none%27%3E%3Cpath%20d%3D%27M58%20152c-22-24-24-62-6-90%27%2F%3E%3Cpath%20d%3D%27M142%20152c22-24%2024-62%206-90%27%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%27%23000%27%3E%3Cellipse%20cx%3D%2752%27%20cy%3D%27134%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%28-40%2052%20134%29%27%2F%3E%3Cellipse%20cx%3D%2747%27%20cy%3D%27116%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%28-25%2047%20116%29%27%2F%3E%3Cellipse%20cx%3D%2746%27%20cy%3D%2797%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%28-8%2046%2097%29%27%2F%3E%3Cellipse%20cx%3D%2750%27%20cy%3D%2778%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%2810%2050%2078%29%27%2F%3E%3Cellipse%20cx%3D%27148%27%20cy%3D%27134%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%2840%20148%20134%29%27%2F%3E%3Cellipse%20cx%3D%27153%27%20cy%3D%27116%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%2825%20153%20116%29%27%2F%3E%3Cellipse%20cx%3D%27154%27%20cy%3D%2797%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%288%20154%2097%29%27%2F%3E%3Cellipse%20cx%3D%27150%27%20cy%3D%2778%27%20rx%3D%279%27%20ry%3D%275%27%20transform%3D%27rotate%28-10%20150%2078%29%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;
}
.theme-velure .rs-monogram { -webkit-mask-composite: source-over; }
.theme-velure .rs-rule {
	width: 120px; height: 24px; background-color: var(--ornament);
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20120%2030%27%3E%3Cpath%20d%3D%27M6%2015h34M80%2015h34%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.6%27%2F%3E%3Cg%20fill%3D%27%23000%27%3E%3Cellipse%20cx%3D%2752%27%20cy%3D%2715%27%20rx%3D%279%27%20ry%3D%274.5%27%20transform%3D%27rotate%28-18%2052%2015%29%27%2F%3E%3Cellipse%20cx%3D%2768%27%20cy%3D%2715%27%20rx%3D%279%27%20ry%3D%274.5%27%20transform%3D%27rotate%2818%2068%2015%29%27%2F%3E%3Ccircle%20cx%3D%2760%27%20cy%3D%2715%27%20r%3D%272.4%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20120%2030%27%3E%3Cpath%20d%3D%27M6%2015h34M80%2015h34%27%20stroke%3D%27%23000%27%20stroke-width%3D%271.6%27%2F%3E%3Cg%20fill%3D%27%23000%27%3E%3Cellipse%20cx%3D%2752%27%20cy%3D%2715%27%20rx%3D%279%27%20ry%3D%274.5%27%20transform%3D%27rotate%28-18%2052%2015%29%27%2F%3E%3Cellipse%20cx%3D%2768%27%20cy%3D%2715%27%20rx%3D%279%27%20ry%3D%274.5%27%20transform%3D%27rotate%2818%2068%2015%29%27%2F%3E%3Ccircle%20cx%3D%2760%27%20cy%3D%2715%27%20r%3D%272.4%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;
}
.theme-velure .rs-details { letter-spacing: 6px; font-size: 12px; }
.theme-velure .rs-send, .theme-velure .rs-map-btn {
	border: 1px solid var(--ornament); letter-spacing: 2.6px; text-transform: uppercase; font-size: 12.5px;
}
.theme-velure .rs-prog { position: relative; padding-left: 8px; }
.theme-velure .rs-prog::before {
	content: ""; position: absolute; left: 21px; top: 14px; bottom: 14px; width: 1px;
	background: color-mix(in srgb, var(--ornament) 50%, transparent);
}
.theme-velure .rs-prog li { border: 0; padding: 11px 0; gap: 18px; align-items: center; }
.theme-velure .rs-prog .t {
	position: relative; z-index: 1; min-width: 0; width: 34px; height: 34px; border-radius: 99px;
	background: color-mix(in srgb, var(--paper) 80%, #000);
	border: 1px solid var(--ornament); color: var(--ornament);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--font-ui, 'Sora'), sans-serif; font-size: 9.5px; letter-spacing: 0;
}
.theme-velure .rs-prog .n {
	font-family: var(--font-ui, 'Sora'), sans-serif; font-size: 11.5px;
	letter-spacing: 2.4px; text-transform: uppercase; color: var(--ink);
}
.theme-velure .rs-info-row {
	border: 1px solid color-mix(in srgb, var(--ornament) 30%, transparent);
	border-radius: 10px; padding: 13px 15px; background: rgba(0,0,0,.14);
}
.theme-velure .rs-quote::before { color: var(--ornament); }

/* ---------------------------------------------------------------
   SAGE
   --------------------------------------------------------------- */
.theme-sage {
	--paper: #fdfdfa;
	--ink: #3f4436;
	--ornament: #cfd8c2;
}
.theme-sage .rs-card, .theme-sage .rs-block { position: relative; overflow: hidden; background: var(--paper); color: var(--ink); }
.theme-sage .rs-card::after {
	content: ""; position: absolute; bottom: -46px; left: -40px;
	width: 210px; height: 210px; pointer-events: none;
	background-color: var(--ornament); opacity: .75;
	-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20240%20240%27%3E%3Cg%20fill%3D%27%23000%27%3E%3Cellipse%20cx%3D%27120%27%20cy%3D%2784%27%20rx%3D%2726%27%20ry%3D%2738%27%20transform%3D%27rotate%28-18%20120%2084%29%27%2F%3E%3Cellipse%20cx%3D%2788%27%20cy%3D%27118%27%20rx%3D%2726%27%20ry%3D%2738%27%20transform%3D%27rotate%28-72%2088%20118%29%27%2F%3E%3Cellipse%20cx%3D%27152%27%20cy%3D%27118%27%20rx%3D%2726%27%20ry%3D%2738%27%20transform%3D%27rotate%2872%20152%20118%29%27%2F%3E%3Cellipse%20cx%3D%27104%27%20cy%3D%27158%27%20rx%3D%2724%27%20ry%3D%2734%27%20transform%3D%27rotate%28-140%20104%20158%29%27%2F%3E%3Cellipse%20cx%3D%27140%27%20cy%3D%27158%27%20rx%3D%2724%27%20ry%3D%2734%27%20transform%3D%27rotate%28140%20140%20158%29%27%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D%27%23000%27%20stroke-width%3D%273%27%20fill%3D%27none%27%3E%3Cpath%20d%3D%27M120%20168c0%2030-8%2050-24%2066%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20240%20240%27%3E%3Cg%20fill%3D%27%23000%27%3E%3Cellipse%20cx%3D%27120%27%20cy%3D%2784%27%20rx%3D%2726%27%20ry%3D%2738%27%20transform%3D%27rotate%28-18%20120%2084%29%27%2F%3E%3Cellipse%20cx%3D%2788%27%20cy%3D%27118%27%20rx%3D%2726%27%20ry%3D%2738%27%20transform%3D%27rotate%28-72%2088%20118%29%27%2F%3E%3Cellipse%20cx%3D%27152%27%20cy%3D%27118%27%20rx%3D%2726%27%20ry%3D%2738%27%20transform%3D%27rotate%2872%20152%20118%29%27%2F%3E%3Cellipse%20cx%3D%27104%27%20cy%3D%27158%27%20rx%3D%2724%27%20ry%3D%2734%27%20transform%3D%27rotate%28-140%20104%20158%29%27%2F%3E%3Cellipse%20cx%3D%27140%27%20cy%3D%27158%27%20rx%3D%2724%27%20ry%3D%2734%27%20transform%3D%27rotate%28140%20140%20158%29%27%2F%3E%3C%2Fg%3E%3Cg%20stroke%3D%27%23000%27%20stroke-width%3D%273%27%20fill%3D%27none%27%3E%3Cpath%20d%3D%27M120%20168c0%2030-8%2050-24%2066%27%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center;
}
.theme-sage .rs-title, .theme-sage .rs-hero-title {
	font-family: var(--font-display, 'Cormorant Garamond'), serif; letter-spacing: 5px; font-weight: 500;
}
.theme-sage .rs-block h3 {
	font-family: var(--font-display, 'Cormorant Garamond'), serif;
	font-size: 30px; letter-spacing: 6px; font-weight: 500; text-transform: uppercase;
}
.theme-sage .rs-details { letter-spacing: 3px; font-size: 11px; }
.theme-sage .rs-msg { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 19px; }
.theme-sage .rs-prog li { border: 0; padding: 12px 0; align-items: baseline; gap: 14px; }
.theme-sage .rs-prog .t { font-family: 'Cormorant Garamond', serif; font-size: 27px; min-width: 74px; }
.theme-sage .rs-prog .n { font-size: 13.5px; position: relative; padding-left: 20px; opacity: .8; }
.theme-sage .rs-prog .n::before { content: ""; position: absolute; left: 0; top: 50%; width: 12px; height: 1px; background: currentColor; }
.theme-sage .rs-send, .theme-sage .rs-map-btn { border-radius: 4px; letter-spacing: 2.6px; text-transform: uppercase; font-size: 12.5px; }
.theme-sage .rs-palette i { border-radius: 99px; width: 46px; height: 46px; }

/* ================================================================
   DESKTOP COMPOSITION
   The invitation holds a fixed readable measure on the left while the
   detail panels run beside it, so wide screens feel composed rather
   than stretched. Type steps up to suit the extra room.
   ================================================================ */
@media (min-width: 1080px) {
	.rs-card { padding: 46px 40px 40px; }
	.rs-card.with-hero { padding-top: 0; }
	.rs-hero-in { margin-left: -40px; margin-right: -40px; }
	.rs-block { padding: 34px 34px 30px; }
	.rs-title { font-size: 46px; }
	.rs-block h3 { font-size: 26px; }

	/* two columns of detail panels once there is room for them */
	.theme-sage .rs-page > .rs-blocks,
	.theme-eucalyptus .rs-page > .rs-blocks,
	.theme-romance .rs-page > .rs-blocks {
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-gap: 18px;
		align-content: start;
	}
	.theme-sage .rs-blocks > .rs-block:first-child,
	.theme-eucalyptus .rs-blocks > .rs-block:first-child,
	.theme-romance .rs-blocks > .rs-block:first-child { grid-column: 1 / -1; }

	.theme-love .rs-form-panel { margin-left: -40px; margin-right: -40px; padding: 34px 40px 38px; }
	.theme-love .rs-title { font-size: 54px; }
	.theme-eucalyptus .rs-title { font-size: 58px; }
	.theme-velure .rs-title { font-size: 42px; }
	.theme-velure .rs-card::after { width: 250px; height: 250px; }
	.theme-eucalyptus .rs-card::after { width: 300px; height: 240px; }
}

@media (min-width: 1480px) {
	.rs-title { font-size: 52px; }
	.theme-love .rs-title { font-size: 60px; }
	.theme-eucalyptus .rs-title { font-size: 64px; }
}

/* the ornaments are decorative only */
@media print {
	.rs-card::after, .rs-block::after { display: none; }
}

/* conversational mode picks up each theme's voice */
.theme-love .rs-ask { font-family: 'Pinyon Script', cursive; font-size: 34px; }
.theme-eucalyptus .rs-ask { font-family: 'Pinyon Script', cursive; font-size: 32px; color: #4a5a3a; }
.theme-velure .rs-ask { font-family: 'Marcellus', serif; letter-spacing: 2px; text-transform: uppercase; font-size: 21px; }
.theme-sage .rs-ask { letter-spacing: 3px; text-transform: uppercase; font-size: 21px; }
.theme-romance .rs-ask { text-align: left; }
.theme-love .rs-rail span.now i, .theme-love .rs-rail span.done i { background: #2b211c; border-color: #2b211c; }
.theme-velure .rs-rail span { color: #c2bda8; }
.theme-velure .rs-rail span.now { color: #c9a961; }
.theme-velure .rs-rail span.now i { background: #c9a961; color: #10332a; }
.theme-velure .rs-microcopy, .theme-velure .rs-passcode { color: #c2bda8; }
.theme-velure .rs-back { color: #a89f8c; }

/* ---------------------------------------------------------------
   ONYX — black tie, minimal, gold hairlines
   --------------------------------------------------------------- */
.theme-onyx {
	--paper: #0e0e10;
	--ink: #f0ece4;
	--ornament: #c8a96a;
	--foil: #c8a96a;
	--foil-soft: #e0cb9c;
	background: #050506;
	color: var(--ink);
}
.theme-onyx .rs-card, .theme-onyx .rs-block {
	background:
		radial-gradient(ellipse at 30% 0%, rgba(255,255,255,.06), transparent 55%),
		var(--paper);
	border: 1px solid rgba(200,169,106,.28);
	border-radius: 3px;
	color: var(--ink);
	box-shadow: 0 24px 60px rgba(0,0,0,.55);
	position: relative;
}
.theme-onyx .rs-card::before {
	content: ""; position: absolute; inset: 12px;
	border: 1px solid rgba(200,169,106,.22); pointer-events: none;
}
.theme-onyx .rs-card.with-hero::before { display: none; }
.theme-onyx .rs-title, .theme-onyx .rs-hero-title {
	font-family: var(--font-display, 'Marcellus'), serif;
	font-weight: 400; letter-spacing: 7px; text-transform: uppercase;
	font-size: clamp(26px, 6.4vw, 36px);
}
.theme-onyx .rs-block h3 {
	font-family: var(--font-display, 'Marcellus'), serif;
	font-weight: 400; letter-spacing: 6px; text-transform: uppercase; font-size: 19px;
}
.theme-onyx .rs-eyebrow, .theme-onyx .rs-details, .theme-onyx .rs-foot {
	font-family: var(--font-ui, 'Sora'), sans-serif;
	letter-spacing: 4px; text-transform: uppercase; font-size: 10px;
	color: rgba(240,236,228,.62);
}
.theme-onyx .rs-details { font-size: 11.5px; line-height: 2.3; letter-spacing: 5px; }
.theme-onyx .rs-rule { width: 46px; height: 1px; background: var(--ornament); }
.theme-onyx .rs-msg { font-family: 'Cormorant Garamond', serif; font-style: italic; color: rgba(240,236,228,.72); }
.theme-onyx .rs-monogram {
	border: 1px solid var(--ornament); color: var(--ornament);
	font-family: 'Marcellus', serif; letter-spacing: 3px;
}
.theme-onyx .rs-guest, .theme-onyx .rs-venue-card, .theme-onyx .rs-marks li,
.theme-onyx .rs-count4 div, .theme-onyx .rs-quote, .theme-onyx .rs-info-row {
	background: rgba(255,255,255,.035);
	border-color: rgba(200,169,106,.25);
}
.theme-onyx .rs-guest .n, .theme-onyx .rs-count4 b { color: var(--ornament); }
.theme-onyx .rs-venue, .theme-onyx .rs-address, .theme-onyx .rs-marks b { color: var(--ink); }
.theme-onyx .rs-venue-note, .theme-onyx .rs-marks span, .theme-onyx .rs-info-row p,
.theme-onyx .rs-microcopy, .theme-onyx .rs-passcode { color: rgba(240,236,228,.6); }
.theme-onyx .rs-field label { color: rgba(240,236,228,.55); }
.theme-onyx .rs-field input, .theme-onyx .rs-field textarea, .theme-onyx .rs-field select,
.theme-onyx .rs-step output, .theme-onyx .rs-step button {
	background: rgba(255,255,255,.05); border-color: rgba(200,169,106,.3); color: var(--ink);
}
.theme-onyx .rs-choice button { background: rgba(255,255,255,.04); border-color: rgba(200,169,106,.3); color: rgba(240,236,228,.85); }
.theme-onyx .rs-choice button.yes.on { background: var(--ornament); border-color: var(--ornament); color: #0e0e10; }
.theme-onyx .rs-send, .theme-onyx .rs-map-btn {
	background: var(--ornament); color: #0e0e10; border-radius: 2px;
	letter-spacing: 4px; text-transform: uppercase; font-size: 12px; font-weight: 700;
}
.theme-onyx .rs-prog li { border-bottom-color: rgba(200,169,106,.18); }
.theme-onyx .rs-prog .t { color: var(--ornament); }
.theme-onyx .rs-map { background: #f0ece4; }
.theme-onyx .rs-ask { font-family: 'Marcellus', serif; letter-spacing: 3px; text-transform: uppercase; font-size: 20px; }
.theme-onyx .rs-rail span { color: rgba(240,236,228,.5); }
.theme-onyx .rs-rail span.now { color: var(--ornament); }
.theme-onyx .rs-rail span.now i { background: var(--ornament); color: #0e0e10; border-color: var(--ornament); }

/* ================================================================
   PER-EVENT CUSTOMISATION
   Values written onto :root by the page override the theme defaults.
   Higher specificity than the theme rules, so no !important needed.
   ================================================================ */
.ios-rsvp-body[data-custom="1"] .rs-card,
.ios-rsvp-body[data-custom="1"] .rs-block {
	background: var(--paper);
	color: var(--ink);
}
.ios-rsvp-body[data-custom="1"] .rs-title,
.ios-rsvp-body[data-custom="1"] .rs-block h3,
.ios-rsvp-body[data-custom="1"] .rs-venue,
.ios-rsvp-body[data-custom="1"] .rs-hero-title { color: var(--ink); }
.ios-rsvp-body[data-custom="1"] { background: var(--page-bg, var(--paper)); }

/* the invitation line takes each theme's voice */
.theme-love .rs-intro { font-family: 'Cormorant Garamond', serif; color: #6b5a4c; font-size: 18px; }
.theme-eucalyptus .rs-intro { color: #6f7a64; }
.theme-velure .rs-intro { color: rgba(245,241,230,.72); }
.theme-onyx .rs-intro { color: rgba(240,236,228,.62); }
.theme-sage .rs-intro { color: #6b7160; }
.theme-romance .rs-intro { text-align: left; margin-left: 0; }

/* calendar buttons follow each theme */
.theme-velure .rs-cal-btn, .theme-onyx .rs-cal-btn { background: rgba(255,255,255,.05); border-color: rgba(201,169,97,.3); color: var(--ink); }
.theme-love .rs-cal-btn { border-radius: 2px; }
.theme-eucalyptus .rs-cal-btn { border-radius: 7px; }
.theme-romance .rs-cal-btn { border-radius: 12px; }
