/* ==========================================================================
   BET Soul Train Awards 2026 — private invitation
   Palette sampled from the official 2026 invitation key art.
   ========================================================================== */

:root {
	--sta-ink: #1a0b09;
	--sta-espresso: #28130e;
	--sta-maroon: #4b1912;
	--sta-oxblood: #78231e;
	--sta-crimson: #9a2f29;
	--sta-brick: #b13a32;
	--sta-coral: #d95f54;
	--sta-salmon: #e47c71;
	--sta-blush: #e9a399;
	--sta-pale: #f4cfc7;
	--sta-cream: #fbe9e4;
	--sta-wine: #500a12;
	--sta-text: #e2b6ad;
	--sta-muted: #a8766c;
	--sta-line: rgba(233, 163, 153, 0.2);
	--sta-line-strong: rgba(233, 163, 153, 0.45);
	--sta-sans: "Outfit", "Proxima Nova", "Helvetica Neue", Arial, sans-serif;
	--sta-heavy: "Archivo Black", "Outfit", Arial, sans-serif;
	--sta-serif: "Instrument Serif", "Didot", Georgia, serif;
	--sta-key: linear-gradient(180deg, #28130e 0%, #3a150f 14%, #5d1c16 28%, #78231e 38%, #9a2f29 49%, #b13a32 57%, #c24941 65%, #d95f54 75%, #e47c71 85%, #e7978c 100%);
	--sta-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--sta-gutter: clamp(16px, 4vw, 48px);
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body.sta-site {
	background: var(--sta-ink);
	color: var(--sta-text);
	font-family: var(--sta-sans);
	font-weight: 300;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

/* Film grain over everything for a printed, luxurious feel. */
body.sta-site::after {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 9998;
	opacity: 0.07;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

body.sta-site ::selection { background: var(--sta-coral); color: var(--sta-cream); }
body.sta-site a { color: var(--sta-blush); transition: color 0.3s; }
body.sta-site a:hover { color: var(--sta-pale); }
body.sta-site :focus-visible { outline: 2px solid var(--sta-blush); outline-offset: 3px; }

[id="invitation"], [id="details"], [id="rsvp"], [id="moments"], [id="performances"], [id="faq"] {
	scroll-margin-top: 72px;
}

/* ---------------------------------------------------------------- type */

.elementor .sta-eyebrow .elementor-heading-title {
	font-family: var(--sta-heavy);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 0.34em;
	text-transform: uppercase;
	color: var(--sta-blush);
	line-height: 1.6;
}

.elementor .sta-display .elementor-heading-title {
	font-family: var(--sta-sans);
	font-weight: 200;
	font-size: clamp(46px, 5.6vw, 96px);
	line-height: 0.95;
	letter-spacing: -0.015em;
	text-transform: uppercase;
	color: var(--sta-pale);
}

.elementor .sta-h2 .elementor-heading-title {
	font-family: var(--sta-sans);
	font-weight: 200;
	font-size: clamp(36px, 5vw, 72px);
	line-height: 1;
	letter-spacing: -0.01em;
	text-transform: uppercase;
	color: var(--sta-pale);
}

.elementor .sta-h3 .elementor-heading-title {
	font-family: var(--sta-sans);
	font-weight: 500;
	font-size: 15px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--sta-pale);
	line-height: 1.4;
}

/* Italic serif accent inside headings: <em>soul</em> */
.elementor .elementor-heading-title em,
.elementor .sta-lead em {
	font-family: var(--sta-serif);
	font-style: italic;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	color: var(--sta-salmon);
}

.elementor .sta-heavy .elementor-heading-title {
	font-family: var(--sta-heavy);
	font-weight: 400;
	font-size: clamp(22px, 3.2vw, 44px);
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--sta-pale);
	line-height: 1.1;
}

/* Section label: ——  THE DETAILS  ———————————— */
.elementor .sta-label .elementor-heading-title {
	display: flex;
	align-items: center;
	gap: clamp(14px, 2vw, 26px);
	font-family: var(--sta-sans);
	font-weight: 200;
	font-size: clamp(22px, 2.6vw, 34px);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--sta-muted);
	line-height: 1;
}
.elementor .sta-label .elementor-heading-title::before,
.elementor .sta-label .elementor-heading-title::after {
	content: "";
	height: 1px;
	background: var(--sta-line);
}
.elementor .sta-label .elementor-heading-title::before { flex: 0 0 clamp(28px, 5vw, 64px); }
.elementor .sta-label .elementor-heading-title::after { flex: 1 1 auto; }
.elementor .sta-label--center .elementor-heading-title::before { flex: 1 1 auto; }

.elementor .sta-lead,
.elementor .sta-lead p {
	font-size: clamp(17px, 1.5vw, 20px);
	line-height: 1.75;
	font-weight: 300;
	color: var(--sta-text);
}
.elementor .sta-body,
.elementor .sta-body p {
	font-size: 16px;
	line-height: 1.75;
	color: var(--sta-text);
}
.elementor .sta-small,
.elementor .sta-small p {
	font-size: 13px;
	line-height: 1.7;
	color: var(--sta-muted);
	letter-spacing: 0.02em;
}
.elementor .sta-lead p:last-child,
.elementor .sta-body p:last-child,
.elementor .sta-small p:last-child { margin-bottom: 0; }

.elementor .sta-guest-name,
.elementor .sta-guest-name p {
	font-family: var(--sta-serif);
	font-style: italic;
	font-weight: 400;
	font-size: clamp(40px, 5.6vw, 84px);
	line-height: 1;
	color: var(--sta-blush);
	margin: 0;
}

.elementor .sta-party-line { color: var(--sta-pale); }

/* ------------------------------------------------------------- buttons */

.elementor .sta-btn-solid .elementor-button,
.elementor .sta-btn-ghost .elementor-button,
.elementor .sta-btn-link .elementor-button {
	font-family: var(--sta-sans);
	font-weight: 600;
	font-size: 12px;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	border-radius: 0;
	padding: 18px 34px;
	transition: background-color 0.35s var(--sta-ease), color 0.35s var(--sta-ease), border-color 0.35s var(--sta-ease), transform 0.35s var(--sta-ease);
}
.elementor .sta-btn-solid .elementor-button {
	background: var(--sta-blush);
	color: var(--sta-wine);
	border: 1px solid var(--sta-blush);
}
.elementor .sta-btn-solid .elementor-button:hover {
	background: var(--sta-pale);
	border-color: var(--sta-pale);
	color: var(--sta-wine);
	transform: translateY(-2px);
}
.elementor .sta-btn-ghost .elementor-button {
	background: transparent;
	color: var(--sta-pale);
	border: 1px solid var(--sta-line-strong);
}
.elementor .sta-btn-ghost .elementor-button:hover {
	background: var(--sta-blush);
	border-color: var(--sta-blush);
	color: var(--sta-wine);
}
.elementor .sta-btn-link .elementor-button {
	background: transparent;
	color: var(--sta-pale);
	padding: 6px 0;
	border-bottom: 1px solid var(--sta-blush);
}
.elementor .sta-btn-link .elementor-button:hover { color: var(--sta-blush); }

/* ----------------------------------------------------------------- nav */

.elementor .sta-nav {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 60;
	background: rgba(26, 11, 9, 0.72);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	backdrop-filter: blur(14px) saturate(140%);
	border-bottom: 1px solid var(--sta-line);
}
.elementor .sta-wordmark .elementor-heading-title {
	font-family: var(--sta-heavy);
	font-size: 13px;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	color: var(--sta-pale);
	white-space: nowrap;
}
.elementor .sta-wordmark .elementor-heading-title a { color: inherit; }
.elementor .sta-navlink .elementor-heading-title {
	font-family: var(--sta-sans);
	font-weight: 500;
	font-size: 11px;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--sta-text);
}
.elementor .sta-navlink .elementor-heading-title a { color: inherit; }
.elementor .sta-navlink .elementor-heading-title a:hover { color: var(--sta-blush); }
.elementor .sta-nav .sta-btn-solid .elementor-button { padding: 12px 22px; font-size: 11px; }

/* ---------------------------------------------------------------- hero */

.elementor .sta-hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(55% 60% at 78% 42%, rgba(217, 95, 84, 0.36), transparent 70%),
		radial-gradient(40% 40% at 10% 90%, rgba(154, 47, 41, 0.35), transparent 70%),
		linear-gradient(180deg, #1a0b09 0%, #28130e 45%, #3a150f 100%);
}
.elementor .sta-hero > .e-con-inner,
.elementor .sta-hero > .e-con { position: relative; z-index: 2; }

.elementor .sta-watermark { pointer-events: none; user-select: none; }
.elementor .sta-watermark .elementor-heading-title {
	font-family: var(--sta-sans);
	font-weight: 100;
	font-size: clamp(88px, 17vw, 290px);
	line-height: 0.8;
	letter-spacing: -0.03em;
	color: transparent;
	-webkit-text-stroke: 1px rgba(233, 163, 153, 0.2);
	white-space: nowrap;
	text-align: center;
}

.elementor .sta-flyer img {
	width: 100%;
	height: auto;
	border-radius: 3px;
	box-shadow: 0 50px 90px -30px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(233, 163, 153, 0.22);
}
.elementor .sta-flyer {
	animation: sta-float 9s ease-in-out infinite;
}
@keyframes sta-float {
	0%, 100% { transform: translateY(0) rotate(0.0001deg); }
	50% { transform: translateY(-12px) rotate(0.0001deg); }
}

/* -------------------------------------------------------------- images */

.elementor .sta-photo img {
	width: 100%;
	object-fit: cover;
	display: block;
	filter: saturate(0.92) contrast(1.04);
	transition: transform 1.2s var(--sta-ease), filter 0.6s;
}
.elementor .sta-photo .elementor-widget-container,
.elementor .sta-photo > a,
.elementor .sta-photo figure { overflow: hidden; display: block; }
.elementor .sta-photo:hover img { transform: scale(1.04); filter: saturate(1.05) contrast(1.06); }
.elementor .sta-ar-portrait img { aspect-ratio: 4 / 5; }
.elementor .sta-ar-tall img { aspect-ratio: 3 / 4; }
.elementor .sta-ar-land img { aspect-ratio: 3 / 2; }
.elementor .sta-ar-wide img { aspect-ratio: 16 / 9; }
.elementor .sta-ar-square img { aspect-ratio: 1 / 1; }
.elementor .sta-photo.sta-frame figure,
.elementor .sta-photo.sta-frame .elementor-widget-container { overflow: visible; }
.elementor .sta-frame img { outline: 1px solid var(--sta-line-strong); outline-offset: 12px; }
.elementor .sta-photo.sta-frame:hover img { transform: none; }
.elementor .sta-photo.sta-frame figcaption { margin-top: 26px; }

.elementor .sta-photo figcaption,
.elementor .sta-photo .widget-image-caption {
	margin-top: 14px;
	font-size: 11px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--sta-muted);
	text-align: left;
}

/* -------------------------------------------------------------- panels */

.elementor .sta-panel {
	background: linear-gradient(180deg, rgba(75, 25, 18, 0.55), rgba(40, 19, 14, 0.55));
	border: 1px solid var(--sta-line);
}
.elementor .sta-detail {
	border-top: 1px solid var(--sta-line-strong);
}
.elementor .sta-detail-icon .elementor-icon { color: var(--sta-blush); font-size: 22px; }
.elementor .sta-detail-icon .elementor-icon svg { fill: var(--sta-blush); width: 22px; height: 22px; }

.elementor .sta-key-bg {
	background: var(--sta-key);
}
.elementor .sta-dark-bg { background: var(--sta-ink); }
.elementor .sta-espresso-bg { background: var(--sta-espresso); }
.elementor .sta-maroon-bg {
	background:
		radial-gradient(70% 80% at 50% 0%, rgba(177, 58, 50, 0.35), transparent 70%),
		linear-gradient(180deg, #28130e, #3a150f);
}
.elementor .sta-blush-bg { background: linear-gradient(180deg, #e7978c 0%, #e9a399 100%); }
.elementor .sta-blush-bg .sta-eyebrow .elementor-heading-title { color: var(--sta-oxblood); }
.elementor .sta-blush-bg .sta-h2 .elementor-heading-title { color: var(--sta-wine); }
.elementor .sta-blush-bg .elementor-heading-title em { color: var(--sta-oxblood); }
.elementor .sta-blush-bg .sta-lead,
.elementor .sta-blush-bg .sta-lead p { color: #5d1c16; }

.elementor .sta-rule {
	height: 1px;
	background: var(--sta-line);
}

/* ----------------------------------------------------------- countdown */

.sta-countdown {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--sta-line);
	border-bottom: 1px solid var(--sta-line);
}
.sta-countdown__unit {
	padding: 22px 8px;
	text-align: center;
	border-left: 1px solid var(--sta-line);
}
.sta-countdown__unit:first-child { border-left: 0; }
.sta-countdown__num {
	display: block;
	font-family: var(--sta-sans);
	font-weight: 100;
	font-size: clamp(40px, 6vw, 84px);
	line-height: 1;
	color: var(--sta-pale);
	font-variant-numeric: tabular-nums;
}
.sta-countdown__label {
	display: block;
	margin-top: 10px;
	font-size: 10px;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--sta-muted);
}

/* ---------------------------------------------------- calendar buttons */

.sta-cal { display: flex; flex-wrap: wrap; gap: 10px; }
.sta-cal__btn {
	display: inline-block;
	padding: 12px 18px;
	border: 1px solid var(--sta-line-strong);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--sta-pale) !important;
	text-decoration: none;
	transition: background 0.3s, color 0.3s;
}
.sta-cal__btn:hover { background: var(--sta-blush); color: var(--sta-wine) !important; }

/* ------------------------------------------------------------ the note */

.sta-note {
	margin-top: 8px;
	padding: 22px 26px;
	border-left: 2px solid var(--sta-coral);
	background: rgba(154, 47, 41, 0.18);
	color: var(--sta-pale);
	font-size: 16px;
	line-height: 1.7;
}
.sta-note__label {
	display: block;
	margin-bottom: 8px;
	font-family: var(--sta-heavy);
	font-size: 10px;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--sta-blush);
}
.sta-note p:last-child { margin-bottom: 0; }

.sta-signout { font-size: 12px; letter-spacing: 0.08em; color: var(--sta-muted) !important; }
.sta-signout:hover { color: var(--sta-blush) !important; }

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

.sta-rsvp {
	position: relative;
	padding: clamp(28px, 4vw, 56px);
	background:
		radial-gradient(80% 60% at 100% 0%, rgba(217, 95, 84, 0.18), transparent 60%),
		linear-gradient(180deg, rgba(40, 19, 14, 0.96), rgba(26, 11, 9, 0.96));
	border: 1px solid var(--sta-line-strong);
	box-shadow: 0 40px 80px -40px rgba(0, 0, 0, 0.6);
	color: var(--sta-text);
}
.sta-rsvp [hidden] { display: none !important; }
.sta-rsvp__preview {
	margin: 0 0 22px;
	padding: 10px 14px;
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--sta-wine);
	background: var(--sta-blush);
}
.sta-rsvp__kicker {
	display: block;
	font-family: var(--sta-heavy);
	font-size: 11px;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--sta-blush);
	margin-bottom: 12px;
}
.sta-rsvp__title {
	margin: 0 0 26px;
	font-family: var(--sta-sans);
	font-weight: 200;
	font-size: clamp(30px, 3.6vw, 48px);
	line-height: 1.05;
	text-transform: uppercase;
	color: var(--sta-pale);
}
.sta-rsvp__summary { margin: -10px 0 24px; font-size: 17px; line-height: 1.7; }
.sta-rsvp__status.is-fresh { animation: sta-pop 0.8s var(--sta-ease); }
@keyframes sta-pop { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

.sta-rsvp__choices { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 26px; }
.sta-choice { position: relative; cursor: pointer; margin: 0; }
.sta-choice input { position: absolute; opacity: 0; pointer-events: none; }
.sta-choice__box {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 22px 22px 20px;
	border: 1px solid var(--sta-line-strong);
	transition: background 0.35s var(--sta-ease), border-color 0.35s, color 0.35s, transform 0.35s var(--sta-ease);
}
.sta-choice__big {
	font-family: var(--sta-sans);
	font-weight: 200;
	font-size: 34px;
	line-height: 1;
	text-transform: uppercase;
	color: var(--sta-pale);
}
.sta-choice__small { font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--sta-muted); }
.sta-choice:hover .sta-choice__box { border-color: var(--sta-blush); transform: translateY(-2px); }
.sta-choice input:focus-visible + .sta-choice__box { outline: 2px solid var(--sta-blush); outline-offset: 3px; }
.sta-choice input:checked + .sta-choice__box { background: var(--sta-blush); border-color: var(--sta-blush); }
.sta-choice input:checked + .sta-choice__box .sta-choice__big { color: var(--sta-wine); }
.sta-choice input:checked + .sta-choice__box .sta-choice__small { color: var(--sta-oxblood); }

.sta-count { border: 0; padding: 0; margin: 0 0 22px; }
.sta-count legend,
.sta-field > span {
	display: block;
	margin-bottom: 10px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--sta-pale);
}
.sta-field em { font-style: normal; color: var(--sta-muted); letter-spacing: 0.1em; }
.sta-count__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.sta-count__opt { position: relative; margin: 0; cursor: pointer; }
.sta-count__opt input { position: absolute; opacity: 0; pointer-events: none; }
.sta-count__opt span {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border: 1px solid var(--sta-line-strong);
	font-size: 18px;
	font-weight: 300;
	color: var(--sta-pale);
	transition: background 0.25s, color 0.25s, border-color 0.25s;
}
.sta-count__opt:hover span { border-color: var(--sta-blush); }
.sta-count__opt input:checked + span { background: var(--sta-blush); border-color: var(--sta-blush); color: var(--sta-wine); font-weight: 500; }
.sta-count__opt input:focus-visible + span { outline: 2px solid var(--sta-blush); outline-offset: 3px; }
.sta-count__hint { margin: 10px 0 0; font-size: 12px; color: var(--sta-muted); }

.sta-guests { display: grid; gap: 14px; margin-bottom: 18px; }
.sta-field { display: block; margin: 0 0 18px; }
.sta-rsvp input[type="text"],
.sta-rsvp textarea {
	width: 100%;
	padding: 14px 16px;
	background: rgba(26, 11, 9, 0.6);
	border: 1px solid var(--sta-line-strong);
	border-radius: 0;
	color: var(--sta-cream);
	font-family: var(--sta-sans);
	font-size: 16px;
	font-weight: 300;
	transition: border-color 0.25s, background 0.25s;
}
.sta-rsvp input[type="text"]:focus,
.sta-rsvp textarea:focus { outline: none; border-color: var(--sta-blush); background: rgba(26, 11, 9, 0.85); }

.sta-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 18px 34px;
	border-radius: 0;
	font-family: var(--sta-sans);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.26em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.3s, color 0.3s, border-color 0.3s, opacity 0.3s;
}
.sta-btn--solid { background: var(--sta-blush); color: var(--sta-wine); border: 1px solid var(--sta-blush); width: 100%; }
.sta-btn--solid:hover:not([disabled]) { background: var(--sta-pale); border-color: var(--sta-pale); color: var(--sta-wine); }
.sta-btn--ghost { background: transparent; color: var(--sta-pale); border: 1px solid var(--sta-line-strong); }
.sta-btn--ghost:hover { background: var(--sta-blush); color: var(--sta-wine); border-color: var(--sta-blush); }
.sta-btn[disabled] { opacity: 0.4; cursor: not-allowed; }
.sta-btn.is-loading { opacity: 0.7; pointer-events: none; }
.sta-btn.is-loading::after {
	content: "";
	width: 14px;
	height: 14px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: sta-spin 0.8s linear infinite;
}
@keyframes sta-spin { to { transform: rotate(360deg); } }
.sta-rsvp__msg { margin: 14px 0 0; min-height: 1.4em; font-size: 14px; color: var(--sta-salmon); }
.sta-rsvp__closed .sta-rsvp__summary { margin-top: 0; }

/* ---------------------------------------------------------------- gate */

.sta-gate { width: 100%; max-width: 520px; }
.sta-gate__label {
	display: block;
	margin-bottom: 12px;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--sta-pale);
}
.sta-gate__row { display: flex; gap: 0; border: 1px solid var(--sta-line-strong); background: rgba(26, 11, 9, 0.55); }
.sta-gate__input {
	flex: 1 1 auto;
	min-width: 0;
	padding: 18px 18px !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	color: var(--sta-cream) !important;
	font-family: var(--sta-sans) !important;
	font-size: 18px !important;
	font-weight: 400;
	letter-spacing: 0.24em;
	text-transform: uppercase;
}
.sta-gate__input::placeholder { color: rgba(233, 163, 153, 0.45); }
.sta-gate__input:focus { outline: none; }
.sta-gate__row:focus-within { border-color: var(--sta-blush); box-shadow: 0 0 0 1px var(--sta-blush); }
.sta-gate__btn {
	flex: 0 0 auto;
	padding: 0 26px !important;
	background: var(--sta-blush) !important;
	color: var(--sta-wine) !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-family: var(--sta-sans) !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 0.3s;
}
.sta-gate__btn:hover { background: var(--sta-pale) !important; }
.sta-gate__msg { margin: 16px 0 0; padding: 12px 16px; font-size: 14px; line-height: 1.5; }
.sta-gate__msg.is-error { color: var(--sta-cream); background: rgba(177, 58, 50, 0.45); border-left: 2px solid var(--sta-salmon); }
.sta-gate__msg.is-info { color: var(--sta-pale); background: rgba(233, 163, 153, 0.12); border-left: 2px solid var(--sta-blush); }
.sta-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 520px) {
	.sta-gate__row { flex-direction: column; }
	.sta-gate__btn { padding: 18px !important; }
	.sta-rsvp__choices { grid-template-columns: 1fr; }
}

/* -------------------------------------------------------------- videos */

.elementor .sta-video .elementor-custom-embed-image-overlay,
.elementor .sta-video .elementor-wrapper { border-radius: 2px; overflow: hidden; }
.elementor .sta-video .elementor-custom-embed-image-overlay img { transition: transform 1s var(--sta-ease), filter 0.6s; filter: saturate(0.9) brightness(0.86); }
.elementor .sta-video:hover .elementor-custom-embed-image-overlay img { transform: scale(1.05); filter: saturate(1.05) brightness(0.95); }
.elementor .sta-video .elementor-custom-embed-play i,
.elementor .sta-video .elementor-custom-embed-play svg {
	color: var(--sta-pale);
	fill: var(--sta-pale);
	opacity: 0.95;
	filter: drop-shadow(0 6px 18px rgba(0, 0, 0, 0.45));
}
.elementor .sta-video-meta .elementor-heading-title {
	font-family: var(--sta-sans);
	font-weight: 500;
	font-size: 14px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--sta-pale);
}
.elementor .sta-video-sub,
.elementor .sta-video-sub p { font-size: 13px; color: var(--sta-muted); margin: 0; line-height: 1.5; }
.elementor .sta-year .elementor-heading-title {
	font-family: var(--sta-heavy);
	font-size: 11px;
	letter-spacing: 0.3em;
	color: var(--sta-coral);
}

/* ----------------------------------------------------------------- FAQ */

.elementor .sta-faq .elementor-accordion-item { border: 0; border-bottom: 1px solid var(--sta-line); }
.elementor .sta-faq .elementor-accordion-item:first-child { border-top: 1px solid var(--sta-line); }
.elementor .sta-faq .elementor-tab-title {
	padding: 24px 0;
	font-family: var(--sta-sans);
	font-weight: 300;
	font-size: clamp(17px, 1.6vw, 21px);
	color: var(--sta-pale);
	border: 0;
}
.elementor .sta-faq .elementor-tab-title a { color: inherit; }
.elementor .sta-faq .elementor-tab-title.elementor-active,
.elementor .sta-faq .elementor-tab-title:hover { color: var(--sta-blush); }
.elementor .sta-faq .elementor-accordion-icon { color: var(--sta-blush); }
.elementor .sta-faq .elementor-accordion-icon svg { fill: var(--sta-blush); }
.elementor .sta-faq .elementor-tab-content {
	padding: 0 0 26px;
	border: 0;
	font-size: 16px;
	line-height: 1.75;
	color: var(--sta-text);
	max-width: 760px;
}

/* ----------------------------------------------------------------- map */

.elementor .sta-map iframe {
	filter: grayscale(1) invert(0.92) sepia(0.55) saturate(2.4) hue-rotate(-28deg) brightness(0.92) contrast(0.95);
	border: 1px solid var(--sta-line);
}

/* --------------------------------------------------------------- reveal */

html.sta-js .sta-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 1.1s var(--sta-ease), transform 1.1s var(--sta-ease);
	transition-delay: var(--sta-delay, 0s);
}
html.sta-js .sta-reveal.is-in { opacity: 1; transform: none; }
.elementor-editor-active .sta-reveal,
.elementor-editor-preview .sta-reveal { opacity: 1 !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) {
	html.sta-js .sta-reveal { opacity: 1; transform: none; transition: none; }
	.elementor .sta-flyer { animation: none; }
}

/* -------------------------------------------------------------- footer */

.elementor .sta-footer-mark .elementor-heading-title {
	font-family: var(--sta-heavy);
	font-size: clamp(30px, 6.4vw, 96px);
	letter-spacing: 0.06em;
	line-height: 0.95;
	text-transform: uppercase;
	color: transparent;
	background: linear-gradient(180deg, #f4cfc7 0%, #e9a399 45%, #d95f54 100%);
	-webkit-background-clip: text;
	background-clip: text;
}

/* -------------------------------------------------------------- mobile */

@media (max-width: 767px) {
	.elementor .sta-display .elementor-heading-title { font-size: clamp(42px, 13vw, 64px); }
	.elementor .sta-watermark .elementor-heading-title { font-size: 26vw; }
	.sta-countdown__unit { padding: 16px 2px; }
	.sta-countdown__label { letter-spacing: 0.16em; font-size: 9px; }
	.elementor .sta-nav .sta-btn-solid .elementor-button { padding: 10px 16px; letter-spacing: 0.18em; }
	.elementor .sta-wordmark .elementor-heading-title { font-size: 11px; letter-spacing: 0.18em; }
}

/* ------------------------------------------------------------- layouts
   Multi-column layouts use CSS grid on Elementor containers (class names
   set in Advanced › CSS Classes) so they collapse cleanly on phones. */

.elementor .e-con.sta-split,
.elementor .e-con.sta-grid-2,
.elementor .e-con.sta-grid-3,
.elementor .e-con.sta-grid-4 {
	display: grid !important;
	width: 100%;
}
.elementor .e-con.sta-split {
	grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
	gap: clamp(40px, 6vw, 110px);
	align-items: center;
}
.elementor .e-con.sta-split--even { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
.elementor .e-con.sta-split--rsvp { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); align-items: start; }
.elementor .e-con.sta-split--feature { grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.65fr); align-items: end; }
.elementor .e-con.sta-split--faq { grid-template-columns: minmax(0, 0.55fr) minmax(0, 1.45fr); align-items: start; }
.elementor .e-con.sta-split--gate { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); align-items: center; }
.elementor .e-con.sta-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 48px; }
.elementor .e-con.sta-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px 32px; }
.elementor .e-con.sta-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 36px; }
.elementor .e-con.sta-collage { gap: 28px; align-items: start; }
.elementor .e-con.sta-collage > .e-con:nth-child(2) { margin-top: 90px; }
.elementor .e-con.sta-collage > .e-con:nth-child(3) { margin-top: 36px; }
.elementor .e-con.sta-split > .e-con,
.elementor .e-con[class*="sta-grid"] > .e-con { width: auto; min-width: 0; }

.elementor .sta-hero__art { perspective: 1200px; }
.elementor .sta-hero__art .sta-flyer { width: min(100%, 460px); }
.elementor .sta-footer-logo img,
.elementor .sta-gate-logo img { width: auto; height: auto; }
.elementor .sta-footer-logo img { max-width: 220px; }
.elementor .sta-gate-logo img { max-width: min(78%, 380px); filter: drop-shadow(0 30px 60px rgba(0, 0, 0, 0.45)); }
.elementor .sta-center { text-align: center; }
.elementor .sta-footer { border-top: 1px solid var(--sta-line); background: var(--sta-ink); }
.elementor .sta-footer .sta-small p { text-align: center; }
.elementor .sta-display--gate .elementor-heading-title { font-size: clamp(52px, 7.4vw, 118px); }
.elementor .sta-gate-page { justify-content: center; }
.elementor .sta-gate__foot { opacity: 0.8; }
.elementor .sta-gate__art {
	position: relative;
	aspect-ratio: 1 / 1.05;
	display: flex !important;
	align-items: center;
	justify-content: center;
}
.elementor .sta-gate__art::before {
	content: "";
	position: absolute;
	inset: 6%;
	border-radius: 50%;
	background: repeating-radial-gradient(circle at 50% 50%, rgba(233, 163, 153, 0.10) 0 1px, transparent 1px 22px);
	-webkit-mask: radial-gradient(circle, #000 35%, transparent 72%);
	mask: radial-gradient(circle, #000 35%, transparent 72%);
	animation: sta-spin 80s linear infinite;
}
.elementor .sta-gate__art > * { position: relative; z-index: 1; }
.elementor .sta-video--feature .elementor-custom-embed-image-overlay img { aspect-ratio: 16 / 9; object-fit: cover; }
.elementor .sta-rsvp-intro { position: sticky; top: 110px; }
.elementor .sta-faq-item { border-top: 1px solid var(--sta-line); }

@media (max-width: 1024px) {
	.elementor .e-con.sta-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.elementor .e-con.sta-grid-3.sta-videos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 880px) {
	.elementor .e-con.sta-split,
	.elementor .e-con.sta-split--even,
	.elementor .e-con.sta-split--rsvp,
	.elementor .e-con.sta-split--feature,
	.elementor .e-con.sta-split--faq,
	.elementor .e-con.sta-split--gate,
	.elementor .e-con.sta-grid-2 { grid-template-columns: minmax(0, 1fr); gap: 44px; }
	.elementor .e-con.sta-grid-3.sta-collage { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.elementor .e-con.sta-collage > .e-con:nth-child(2) { margin-top: 48px; }
	.elementor .e-con.sta-collage > .e-con:nth-child(3) { margin-top: 0; grid-column: 1 / -1; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.elementor .sta-rsvp-intro { position: static; }
	.elementor .sta-gate__art { aspect-ratio: auto; padding: 10px 0; }
	.elementor .sta-gate-logo img { max-width: 220px; }
	.elementor .sta-hero__art .sta-flyer { width: min(86%, 400px); }
}

@media (max-width: 600px) {
	.elementor .e-con.sta-grid-4,
	.elementor .e-con.sta-grid-3.sta-videos { grid-template-columns: minmax(0, 1fr); }
	.elementor .e-con.sta-grid-3.sta-collage { gap: 12px; }
	.elementor .sta-photo figcaption,
	.elementor .sta-photo .widget-image-caption { font-size: 9px; letter-spacing: 0.14em; margin-top: 8px; }
}

/* nav: links + wordmark size to content */
.elementor .sta-nav .e-con { --width: auto; width: auto; flex: 0 1 auto; }
.elementor .sta-nav .sta-wordmark { flex: 0 0 auto; }
.elementor .e-con.sta-split--feature { grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr); }
.elementor .sta-split--feature .sta-h2 .elementor-heading-title { font-size: clamp(34px, 3.4vw, 54px); }
@media (max-width: 1100px) { .elementor .sta-nav .sta-navlink .elementor-heading-title { letter-spacing: 0.16em; } }
