/**
 * Rentamira Promo Calendar — Floating teaser.
 * Persistent, discreet, user-initiated. Never auto-opens, never blocks content.
 */

.rpc-teaser {
	--tz-bg: #2D4A5E;
	--tz-text: #FFFFFF;
	--tz-accent: #2D4A5E;
	--tz-card-bg: #FFFFFF;
	--tz-card-text: #2A2A2A;
	--tz-chip-radius: 999px;
	--tz-card-radius: 14px;
	--tz-el-radius: 8px;
	--tz-ease: cubic-bezier(0.4, 0, 0.2, 1);

	position: fixed;
	bottom: 22px;
	right: 22px;
	/* Above third-party chat widgets (LeadConnector, Intercom, etc.) so their
	   open bubble never blocks the chip's tap target. */
	z-index: 2147483000;
	/* The closed card keeps opacity:0 but still occupies layout, so this fixed
	   box can span a large (near full-width on mobile) region. Make the
	   container transparent to pointer events so it never blocks the page
	   behind it; only the chip and the OPEN card re-enable hits below. */
	pointer-events: none;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	/* No font-family on the container by design: fonts are set per section
	   (chip label, eyebrow, title, body copy) via their own tokens, so the
	   embedded form (rpc-teaser__gate) keeps the site/plugin font untouched. */
	font-family: inherit;

	/* Entrance: hidden until JS adds .is-shown (fade + slide up). */
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 320ms var(--tz-ease), transform 320ms var(--tz-ease);
}

.rpc-teaser.is-shown {
	opacity: 1;
	transform: translateY(0);
}

.rpc-teaser *,
.rpc-teaser *::before,
.rpc-teaser *::after { box-sizing: border-box; }

.rpc-teaser[hidden] { display: none; }

@media (prefers-reduced-motion: reduce) {
	.rpc-teaser {
		transition: opacity 200ms linear;
		transform: none;
	}
}

.rpc-teaser--left {
	right: auto;
	left: 22px;
	align-items: flex-start;
}

/* Shape variants */
.rpc-teaser--rounded { --tz-chip-radius: 10px; }
.rpc-teaser--sharp   { --tz-chip-radius: 0; --tz-card-radius: 0; --tz-el-radius: 0; }

/* ============== CHIP ============== */

.rpc-teaser button.rpc-teaser__chip {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	background: var(--tz-bg);
	color: var(--tz-text);
	border: none;
	border-radius: var(--tz-chip-radius);
	padding: 11px 18px;
	margin: 0;
	font-size: 13px;
	line-height: 1;
	/* Chip label font, weight, spacing, case and slant are all token-driven so
	   the admin can style the chip independently of the card copy. */
	font-weight: var(--tz-weight-chip, 600);
	letter-spacing: var(--tz-ls-chip, 0.05em);
	font-family: var(--tz-font-chip, inherit);
	cursor: pointer;
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.16);
	transition: transform 220ms var(--tz-ease), box-shadow 220ms var(--tz-ease);
	text-transform: var(--tz-chip-transform, none);
	font-style: var(--tz-chip-style, normal);
}

.rpc-teaser button.rpc-teaser__chip:hover,
.rpc-teaser button.rpc-teaser__chip:focus {
	background: var(--tz-bg);
	color: var(--tz-text);
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.20);
	outline: none;
}

.rpc-teaser button.rpc-teaser__chip:focus-visible {
	outline: 2px solid var(--tz-bg);
	outline-offset: 3px;
}

.rpc-teaser__chip-icon {
	width: 15px;
	height: 15px;
	flex: 0 0 auto;
	background-color: currentColor;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}

.rpc-teaser__chip-count {
	background: rgba(255, 255, 255, 0.22);
	border-radius: var(--tz-chip-radius);
	padding: 4px 9px;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.08em;
}
.rpc-teaser--sharp .rpc-teaser__chip-count,
.rpc-teaser--rounded .rpc-teaser__chip-count { border-radius: calc(var(--tz-chip-radius) / 2); }

/* Animations */
@keyframes tz-breathe {
	0%, 86%, 100% { transform: scale(1); }
	90% { transform: scale(1.045); }
	94% { transform: scale(1); }
	97% { transform: scale(1.03); }
}
@keyframes tz-bounce {
	0%, 86%, 100% { transform: translateY(0); }
	89% { transform: translateY(-8px); }
	93% { transform: translateY(0); }
	95.5% { transform: translateY(-4px); }
	98% { transform: translateY(0); }
}
/* Animate the whole chip wrapper so the remove ✕ moves with the chip. */
.rpc-teaser__chip-wrap.anim-breathe { animation: tz-breathe 7s ease-in-out infinite; }
.rpc-teaser__chip-wrap.anim-bounce  { animation: tz-bounce 7s ease-in-out infinite; }
.rpc-teaser__chip-wrap.anim-breathe:hover,
.rpc-teaser__chip-wrap.anim-bounce:hover { animation-play-state: paused; }

/* Minimized dot */
.rpc-teaser button.rpc-teaser__chip.rpc-teaser__chip--dot {
	padding: 12px;
	border-radius: 50%;
}
.rpc-teaser--sharp button.rpc-teaser__chip.rpc-teaser__chip--dot { border-radius: 0; }
.rpc-teaser__chip--dot .rpc-teaser__chip-label,
.rpc-teaser__chip--dot .rpc-teaser__chip-count { display: none; }
.rpc-teaser__chip--dot .rpc-teaser__chip-icon { width: 16px; height: 16px; }

/* ============== CARD ============== */

.rpc-teaser__card {
	width: 316px;
	max-width: calc(100vw - 44px);
	background: var(--tz-card-bg);
	color: var(--tz-card-text);
	border-radius: var(--tz-card-radius);
	box-shadow: 0 18px 50px rgba(0, 0, 0, 0.22);
	overflow: hidden;
	margin-bottom: 12px;
	opacity: 0;
	transform: translateY(10px) scale(0.98);
	transform-origin: bottom right;
	pointer-events: none;
	transition: opacity 240ms var(--tz-ease), transform 240ms var(--tz-ease);
}
.rpc-teaser--left .rpc-teaser__card { transform-origin: bottom left; }
.rpc-teaser.is-open .rpc-teaser__card {
	opacity: 1;
	transform: translateY(0) scale(1);
	pointer-events: auto;
}

/* Auto-open at load: the card is placed in its open state with the expand
   transition suppressed, so on first paint only the container's fade/slide
   entrance is visible, never a chip -> card flip. JS removes this class after
   the entrance frame to restore the normal open/close animation. */
.rpc-teaser.is-preopen .rpc-teaser__card { transition: none; }

.rpc-teaser__card-head {
	background: var(--tz-bg);
	color: var(--tz-text);
	padding: 18px 44px 16px 20px;
	position: relative;
}

/* Header image variant: photo with baked-in dark overlay (inline style) */
.rpc-teaser__card-head--img {
	background-size: cover;
	background-position: center;
	min-height: 104px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	color: #ffffff;
}
.rpc-teaser__eyebrow {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	opacity: 0.8;
	margin: 0 0 5px;
}
.rpc-teaser__title {
	font-size: 17px;
	font-weight: 600;
	margin: 0;
	line-height: 1.3;
	color: inherit;
}
/* Card close button. Base sizing shared by all styles. The bare style keeps a
   text-shadow so a lone ✕ stays legible over a header photo. Circle/square use
   a translucent dark scrim + white glyph, which reads on any header (solid
   color or image with its dark overlay). */
.rpc-teaser button.rpc-teaser__close {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 34px;
	height: 34px;
	border: none;
	background: transparent;
	box-shadow: none;
	color: inherit;
	cursor: pointer;
	font-size: 15px;
	line-height: 1;
	padding: 0;
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: inherit;
	transition: background 160ms var(--tz-ease), opacity 160ms var(--tz-ease), transform 160ms var(--tz-ease);
	z-index: 2;
}

/* The glyph itself scales up a touch on hover; background/color stay put so
   the ✕ never darkens into an unreadable state over a photo. */
.rpc-teaser button.rpc-teaser__close > * { pointer-events: none; }
.rpc-teaser button.rpc-teaser__close:hover,
.rpc-teaser button.rpc-teaser__close:focus {
	transform: scale(1.16);
}

/* Bare: just the glyph, with a shadow so it stays legible over photos. */
.rpc-teaser--close-bare button.rpc-teaser__close {
	border-radius: 0;
	opacity: 0.85;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

/* Circle / square: translucent dark scrim + white glyph, fixed in every state. */
.rpc-teaser--close-circle button.rpc-teaser__close,
.rpc-teaser--close-circle button.rpc-teaser__close:hover,
.rpc-teaser--close-circle button.rpc-teaser__close:focus,
.rpc-teaser--close-square button.rpc-teaser__close,
.rpc-teaser--close-square button.rpc-teaser__close:hover,
.rpc-teaser--close-square button.rpc-teaser__close:focus {
	width: 30px;
	height: 30px;
	background: rgba(0, 0, 0, 0.32);
	color: #fff;
	font-size: 13px;
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
}
.rpc-teaser--close-circle button.rpc-teaser__close { border-radius: 50%; }
.rpc-teaser--close-square button.rpc-teaser__close { border-radius: 0; }

/* Chip + kill wrapper. The remove control is a small companion button sitting
   to the RIGHT of the chip, in the same brand colors, so it reads as one unit
   and blends with any brand. It lives inside the wrap, so it travels with the
   chip (entrance animation, position). */
.rpc-teaser__chip-wrap {
	position: relative;
	display: inline-flex;
	align-items: stretch;
	gap: 3px;
	/* Re-enable hits on the chip itself; the container above is pointer-events:none. */
	pointer-events: auto;
}

.rpc-teaser button.rpc-teaser__kill {
	flex: 0 0 auto;
	/* A perfect circle: fixed square dimensions, centered beside the chip rather
	   than stretched to the chip's height (which produced an oval on mobile,
	   where the chip is taller). */
	width: 34px;
	height: 34px;
	align-self: center;
	border: none;
	border-radius: 50%;
	background: var(--tz-bg);
	color: var(--tz-text);
	font-size: 12px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 18px rgba(0, 0, 0, 0.16);
	padding: 0;
	margin: 0;
	font-family: inherit;
	opacity: 1;
	transition: filter 150ms var(--tz-ease);
}
.rpc-teaser button.rpc-teaser__kill:hover,
.rpc-teaser button.rpc-teaser__kill:focus {
	filter: brightness(1.12);
}
.rpc-teaser button.rpc-teaser__kill > * { pointer-events: none; }
.rpc-teaser button.rpc-teaser__kill[hidden] { display: none; }
/* When collapsed to a dot, make the companion a matching circle. */
.rpc-teaser__chip--dot ~ button.rpc-teaser__kill,
.rpc-teaser__chip-wrap:has(.rpc-teaser__chip--dot) button.rpc-teaser__kill {
	width: 30px;
	height: 30px;
	border-radius: 50%;
}
/* Sharp variant: the companion is a square that must match the chip's height so
   the two read as one unit. We size it explicitly rather than stretching in flex
   (align-self:stretch + aspect-ratio collapsed the width to the glyph, producing
   a thin vertical bar). The chip's box is fully controlled by our own reset —
   15px icon (the tallest child) + 11px top/bottom padding, border 0 — so its
   border-box height is a deterministic 37px here; the square matches it exactly.
   Kept in sync with the chip padding/icon rules above and their mobile values. */
.rpc-teaser--sharp button.rpc-teaser__kill {
	border-radius: 0;
	width: 37px;
	height: 37px;
	align-self: center;
}

.rpc-teaser__card-body { padding: 18px 20px 20px; }
.rpc-teaser__copy {
	font-size: 13px;
	color: #5c5c5c;
	margin: 0 0 14px;
	line-height: 1.5;
}

.rpc-teaser__countdown {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--tz-accent);
	background: rgba(0, 0, 0, 0.05);
	border-radius: var(--tz-chip-radius);
	padding: 4px 11px;
	margin-bottom: 14px;
}
.rpc-teaser__countdown::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--tz-accent);
}
.rpc-teaser--sharp .rpc-teaser__countdown::before { border-radius: 0; }
.rpc-teaser__countdown:empty { display: none; }

.rpc-teaser__code-row { display: flex; gap: 8px; margin-bottom: 12px; }
.rpc-teaser__code {
	flex: 1;
	border: 1.5px dashed var(--tz-accent);
	border-radius: var(--tz-el-radius);
	padding: 10px 12px;
	font-family: 'SF Mono', Menlo, Consolas, monospace;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-align: center;
	color: var(--tz-card-text);
	background: #fafafa;
	user-select: all;
}
.rpc-teaser button.rpc-teaser__copy-btn {
	border: none;
	border-radius: var(--tz-el-radius);
	background: #f0f0f1;
	color: #3c3c3c;
	padding: 0 14px;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	transition: background 160ms var(--tz-ease);
	font-family: inherit;
	line-height: 1;
}
.rpc-teaser button.rpc-teaser__copy-btn:hover { background: #e4e4e6; color: #3c3c3c; }
.rpc-teaser button.rpc-teaser__copy-btn.is-copied { background: #d8efdd; color: #176635; }

.rpc-teaser a.rpc-teaser__cta,
.rpc-teaser a.rpc-teaser__cta:visited {
	display: block;
	width: 100%;
	background: var(--tz-bg);
	color: var(--tz-text);
	border: none;
	border-radius: var(--tz-chip-radius);
	padding: 12px 18px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: filter 180ms var(--tz-ease), transform 180ms var(--tz-ease);
	font-family: inherit;
	text-transform: none;
}
.rpc-teaser a.rpc-teaser__cta:hover,
.rpc-teaser a.rpc-teaser__cta:focus {
	background: var(--tz-bg);
	color: var(--tz-text);
	filter: brightness(1.07);
	transform: translateY(-1px);
	text-decoration: none;
}

.rpc-teaser__fineprint {
	font-size: 10.5px;
	color: #9a9a9a;
	text-align: center;
	margin: 10px 0 0;
}

/* ============== EMAIL GATE ============== */

.rpc-teaser__gate[hidden],
.rpc-teaser__revealed[hidden],
.rpc-teaser__inbox[hidden] { display: none; }

/* Once the form is submitted, collapse the card to just the confirmation:
   drop the intro copy and any countdown so only the inbox panel remains. */
.rpc-teaser.is-converted .rpc-teaser__copy,
.rpc-teaser.is-converted .rpc-teaser__countdown { display: none; }

.rpc-teaser__inbox-icon {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.05);
	color: var(--tz-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 4px auto 12px;
}
.rpc-teaser__inbox-icon svg { width: 20px; height: 20px; }
.rpc-teaser__inbox-title {
	font-size: 15px;
	font-weight: 600;
	text-align: center;
	margin: 0 0 6px;
	color: var(--tz-card-text);
}
.rpc-teaser__inbox-copy {
	font-size: 12.5px;
	color: #5c5c5c;
	text-align: center;
	margin: 0;
	line-height: 1.5;
}
/* Webmail provider row shown in the "check your inbox" panel.
   Minimalist: icon-only circles, one brand logo per ring. */
.rpc-teaser__providers {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: center;
	margin-top: 16px;
}
.rpc-teaser a.rpc-teaser__provider,
.rpc-teaser a.rpc-teaser__provider:visited {
	width: 40px;
	height: 40px;
	border-radius: 999px;
	border: 1px solid #e4e4e6;
	background: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: border-color 150ms var(--tz-ease), transform 150ms var(--tz-ease), box-shadow 150ms var(--tz-ease);
}
.rpc-teaser a.rpc-teaser__provider:hover,
.rpc-teaser a.rpc-teaser__provider:focus {
	border-color: var(--rpc-prov, var(--tz-accent));
	transform: translateY(-2px);
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.08);
	text-decoration: none;
}
.rpc-teaser__provider-icon {
	width: 20px;
	height: 20px;
	display: inline-flex;
	flex: none;
}
/* Real brand logos carry their own fills — do not recolour them. */
.rpc-teaser__provider-icon svg { width: 20px; height: 20px; display: block; }

/* Consistent, visible keyboard focus for the card's interactive controls
   (close, remove, CTA, webmail providers) — WCAG 2.4.7. */
.rpc-teaser .rpc-teaser__close:focus-visible,
.rpc-teaser .rpc-teaser__kill:focus-visible,
.rpc-teaser a.rpc-teaser__cta:focus-visible,
.rpc-teaser a.rpc-teaser__provider:focus-visible {
	outline: 2px solid var(--tz-accent, #111);
	outline-offset: 2px;
}

/* Scoped restyle for embedded Fluent Forms / Gravity Forms */
.rpc-teaser__gate form { margin: 0; }
.rpc-teaser__gate input[type="text"],
.rpc-teaser__gate input[type="email"],
.rpc-teaser__gate input[type="tel"],
.rpc-teaser__gate select {
	width: 100%;
	border: 1.5px solid #ddd;
	border-radius: var(--tz-el-radius);
	padding: 10px 12px;
	font-size: 13px;
	font-family: inherit;
	background: #fff;
	color: var(--tz-card-text);
	margin: 0 0 8px;
	box-shadow: none;
	line-height: 1.4;
}
.rpc-teaser__gate input:focus {
	border-color: var(--tz-accent);
	outline: none;
	box-shadow: none;
}
.rpc-teaser__gate label {
	font-size: 11px;
	font-weight: 600;
	color: #6a6a6a;
	margin-bottom: 3px;
	display: block;
}
.rpc-teaser__gate button[type="submit"],
.rpc-teaser__gate input[type="submit"],
.rpc-teaser__gate .ff-btn-submit,
.rpc-teaser__gate .gform_button {
	width: 100%;
	border: none;
	border-radius: var(--tz-chip-radius);
	background: var(--tz-bg);
	color: var(--tz-text);
	padding: 11px 16px;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.05em;
	cursor: pointer;
	font-family: inherit;
	transition: filter 180ms var(--tz-ease);
	text-transform: none;
	margin: 2px 0 0;
}
.rpc-teaser__gate button[type="submit"]:hover,
.rpc-teaser__gate .ff-btn-submit:hover,
.rpc-teaser__gate .gform_button:hover { filter: brightness(1.07); }
.rpc-teaser__gate .ff-el-group,
.rpc-teaser__gate .gfield { margin-bottom: 8px; }
.rpc-teaser__gate .ff-el-is-error .ff-el-form-control { border-color: #d63638; }
.rpc-teaser__gate .ff-message-success,
.rpc-teaser__gate .gform_confirmation_message {
	font-size: 12.5px;
	color: #176635;
	background: #eaf6ee;
	border-radius: var(--tz-el-radius);
	padding: 10px 12px;
}

/* ============== MOBILE ============== */

@media (max-width: 640px) {
	/* Sit at the same low offset as the site's other floating controls (chat
	   FAB, back-to-top). We no longer add an extra lift above the home-indicator
	   inset: the teaser is not used on property pages, so it does not need to
	   clear on-page controls there. Use a full-size chip: small floating UI is
	   hard to re-open once minimized. */
	.rpc-teaser {
		bottom: 20px;
		right: 14px;
	}
	.rpc-teaser--left { left: 14px; }
	/* Larger circular remove button to match the bigger chip and close target. */
	.rpc-teaser button.rpc-teaser__kill {
		width: 38px;
		height: 38px;
	}
	/* Sharp: square sized to the chip's mobile height (16px icon + 26px padding). */
	.rpc-teaser--sharp button.rpc-teaser__kill {
		width: 42px;
		height: 42px;
	}
	.rpc-teaser__card { width: calc(100vw - 28px); }
	.rpc-teaser button.rpc-teaser__chip {
		font-size: 13px;
		padding: 13px 19px;
	}
	.rpc-teaser button.rpc-teaser__chip.rpc-teaser__chip--dot {
		padding: 15px;
	}
	.rpc-teaser__chip-icon { width: 16px; height: 16px; }

	/* Bigger, clearer close target on phones (easier to tap, more visible).
	   Widen the head's right padding so the larger button never crowds the
	   title. */
	.rpc-teaser__card-head { padding-right: 54px; }
	.rpc-teaser button.rpc-teaser__close {
		top: 10px;
		right: 10px;
		width: 40px;
		height: 40px;
		font-size: 18px;
	}
	.rpc-teaser--close-circle button.rpc-teaser__close,
	.rpc-teaser--close-circle button.rpc-teaser__close:hover,
	.rpc-teaser--close-circle button.rpc-teaser__close:focus,
	.rpc-teaser--close-square button.rpc-teaser__close,
	.rpc-teaser--close-square button.rpc-teaser__close:hover,
	.rpc-teaser--close-square button.rpc-teaser__close:focus {
		width: 40px;
		height: 40px;
		font-size: 17px;
		background: rgba(0, 0, 0, 0.45);
	}
	.rpc-teaser--close-bare button.rpc-teaser__close { opacity: 1; }
}

/* ============== ACCESSIBILITY / PRINT ============== */

@media (prefers-reduced-motion: reduce) {
	.rpc-teaser__chip { animation: none !important; }
	.rpc-teaser__card,
	.rpc-teaser__chip { transition: none; }
}

@media print {
	.rpc-teaser, .rpc-teaser-stack { display: none !important; }
}

/* ==========================================================================
   Theme-defense overrides. Elementor kits style h3/p/a/buttons globally
   (.elementor-kit-N h3 { color: ... }) and form plugins ship their own
   button colors. Chained selectors here win those cascades.
   ========================================================================== */

/* Card typography: keep the token colors and per-section font tokens, kill
   kit fonts/margins. Each token falls back to inherit (site font) when unset.
   Fonts live on these high-specificity rules so the per-section choice beats
   Elementor kit rules; the embedded form is never selected here, so it keeps
   the site/plugin font. */
.rpc-teaser .rpc-teaser__card-head h3.rpc-teaser__title {
	color: inherit;
	font-family: var(--tz-font-title, inherit);
	font-size: 17px;
	font-weight: var(--tz-weight-title, 600);
	line-height: 1.3;
	letter-spacing: var(--tz-ls-title, normal);
	text-transform: none;
	margin: 0;
}
.rpc-teaser .rpc-teaser__card-head p.rpc-teaser__eyebrow {
	color: inherit;
	font-family: var(--tz-font-eyebrow, inherit);
	font-weight: var(--tz-weight-eyebrow, 700);
	letter-spacing: var(--tz-ls-eyebrow, 0.22em);
	margin: 0 0 5px;
}
.rpc-teaser .rpc-teaser__card-body p.rpc-teaser__copy {
	font-family: var(--tz-font-copy, inherit);
	font-weight: var(--tz-weight-copy, 400);
	letter-spacing: var(--tz-ls-copy, normal);
	margin: 0 0 14px;
}
.rpc-teaser .rpc-teaser__card-body p.rpc-teaser__fineprint {
	font-family: var(--tz-font-copy, inherit);
	letter-spacing: var(--tz-ls-copy, normal);
	margin: 10px 0 0;
}
.rpc-teaser .rpc-teaser__card-body h4.rpc-teaser__inbox-title {
	color: var(--tz-card-text);
	font-family: var(--tz-font-title, inherit);
	font-size: 15px;
	font-weight: var(--tz-weight-title, 600);
	letter-spacing: var(--tz-ls-title, normal);
	margin: 0 0 6px;
}

/* Embedded form submit: out-specify Fluent (.fluentform .ff-btn-submit) and
   Gravity defaults plus Elementor kit button rules, in any load order */
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate button[type="submit"],
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate input[type="submit"],
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .ff-btn-submit,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_button {
	width: 100%;
	border: none;
	border-radius: var(--tz-chip-radius);
	background: var(--tz-bg);
	background-color: var(--tz-bg);
	color: var(--tz-text);
	padding: 11px 16px;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.05em;
	cursor: pointer;
	font-family: inherit;
	text-transform: none;
	box-shadow: none;
	margin: 2px 0 0;
	line-height: 1.4;
}
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate button[type="submit"]:hover,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate input[type="submit"]:hover,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .ff-btn-submit:hover,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_button:hover {
	background: var(--tz-bg);
	background-color: var(--tz-bg);
	color: var(--tz-text);
	filter: brightness(1.07);
}

/* Embedded form inputs: same defense */
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate input[type="text"],
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate input[type="email"],
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate input[type="tel"] {
	width: 100%;
	border: 1.5px solid #ddd;
	border-radius: var(--tz-el-radius);
	padding: 10px 12px;
	font-size: 13px;
	font-family: inherit;
	background: #fff;
	background-color: #fff;
	color: var(--tz-card-text);
	margin: 0 0 8px;
	box-shadow: none;
	line-height: 1.4;
	min-height: 0;
}
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate input[type="text"]:focus,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate input[type="email"]:focus,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate input[type="tel"]:focus {
	border-color: var(--tz-accent);
	outline: none;
	box-shadow: none;
}

/* ==========================================================================
   Gravity Forms: tame the default theme inside the narrow card.
   GF ships its own "Orbital"/legacy theme with a large type scale, roomy field
   gaps and a tall submit — sized for a full-width page, not a 316px teaser, so
   an embedded [gravityform] renders oversized. These scoped rules (same chain
   as the theme-defense block above) shrink the label scale, collapse the field
   grid to a tight single column, and normalise input/button sizing to match the
   card's other controls. Fluent Forms is already handled by the rules above.
   ========================================================================== */

/* Base scale + kill GF's own custom-property sizing so children inherit small. */
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper {
	font-size: 13px;
	line-height: 1.4;
	margin: 0;
	--gform-theme-control-label-font-size-primary: 11px;
	--gform-theme-control-label-font-size-secondary: 10px;
	--gform-theme-control-font-size: 13px;
	--gform-theme-field-row-gap: 8px;
	--gform-theme-field-page-gap: 8px;
}
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .gform_heading,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .gform_title,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .gform_description {
	display: none;
}

/* Collapse the field grid to a tight, single-column stack. */
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .gform_fields {
	display: block;
	grid-template-columns: 1fr;
	grid-row-gap: 0;
	row-gap: 0;
	margin: 0;
}
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .gfield {
	margin: 0 0 8px;
	padding: 0;
	width: 100%;
	max-width: 100%;
}

/* Field labels + sub-labels (First/Last, Area/Number, etc.). */
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .gfield_label,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper legend.gfield_label {
	font-size: 11px;
	font-weight: 600;
	line-height: 1.3;
	margin: 0 0 3px;
	padding: 0;
	color: #6a6a6a;
}
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .ginput_complex label,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .gform-field-label--type-sub,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .gfield_description {
	font-size: 10px;
	font-weight: 400;
	line-height: 1.3;
	margin: 2px 0 0;
	padding: 0;
	color: #9a9a9a;
}

/* Inputs (GF often adds its own high-specificity padding / min-height, and on
   UIkit/YooTheme sites the fields carry .uk-input with a fixed 40px height —
   height:auto lets our padding drive the size instead). */
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper input[type="text"],
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper input[type="email"],
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper input[type="tel"],
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper select,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper textarea {
	width: 100%;
	height: auto;
	border: 1.5px solid #ddd;
	border-radius: var(--tz-el-radius);
	padding: 10px 12px;
	font-size: 13px;
	line-height: 1.4;
	background: #fff;
	color: var(--tz-card-text);
	margin: 0;
	box-shadow: none;
	min-height: 0;
}

/* Footer + submit: drop the tall page-sized button down to card scale. */
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .gform_footer,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .gform_page_footer {
	margin: 6px 0 0;
	padding: 0;
}
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .gform_footer input[type="submit"],
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .gform_footer button {
	width: 100%;
	height: auto;
	min-height: 0;
	padding: 11px 16px;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.05em;
	line-height: 1.4;
	margin: 0;
	text-transform: none;
}

/* GF validation / required marker: keep them small and unobtrusive. */
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .gfield_required { font-size: 11px; }
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .validation_message,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_wrapper .gfield_validation_message {
	font-size: 10.5px;
	padding: 4px 0 0;
	margin: 0;
	background: none;
	border: none;
}

/* UIkit / YooTheme defense. On these sites Gravity fields are tagged with uk-
   classes (uk-legend, uk-input, uk-button, uk-fieldset) whose page-scale sizing
   is what blows the embedded form up. Neutralise the specific properties GF's
   own selectors above do not already reset (legend scale, fieldset chrome,
   button line-height that forces a tall pill). Scoped to the gate, so the rest
   of the site's UIkit styling is untouched. */
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate legend.uk-legend {
	font-size: 11px;
	line-height: 1.3;
}
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate fieldset.uk-fieldset {
	margin: 0;
	padding: 0;
	border: none;
}
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .uk-button.gform_button,
.rpc-teaser .rpc-teaser__card .rpc-teaser__gate .gform_footer .uk-button {
	line-height: 1.4;
	min-height: 0;
	text-transform: none;
}
