/* Green Orbit Core: the monthly surprise-gift popup (03 §4.10, 04 §10.15). Loaded only on pages that print it.
   The card is one picture (assets/img/offer-card.webp, 1122 x 1402; the Diwali artwork of 2 Nov 2026, whose painted logo was
   removed): the headline, Tern with the mystery box, the offer line, the seal and the panel are painted into it. The real Green Orbit logo, the email field, the button and the privacy link
   are live elements placed over it in percentages, so they stay lined up at every size. One <dialog class="go-offer"> in the footer. */

.go-offer {
	--go-offer-ink: #0A3B61;
	--go-offer-error: #B3261E;

	box-sizing: border-box;
	/* Never taller than 85% of the screen (30 Oct 2026): the page stays visible round it, and the card scrolls inside if it must. */
	width: min(560px, calc(100vw - 24px), calc(85vh * 0.8));
	width: min(560px, calc(100vw - 24px), calc(85dvh * 0.8));
	max-width: none;
	max-height: 85vh;
	max-height: 85dvh;
	overflow-y: auto;
	overscroll-behavior: contain;
	margin: auto;
	padding: 0;
	border: 0;
	border-radius: 18px;
	background: #BFE3EA;
	color: var(--go-offer-ink);
	box-shadow: 0 24px 60px rgba(10, 59, 97, .4);
	font-family: var(--go-font-body, "DM Sans", system-ui, sans-serif);
}

.go-offer *,
.go-offer *::before,
.go-offer *::after {
	box-sizing: border-box;
}

.go-offer::backdrop {
	background: rgba(10, 59, 97, .6);
}

html.go-offer-open {
	overflow: hidden;
}

.go-offer .go-offer__card {
	position: relative;
	aspect-ratio: 1122 / 1402;
	background: #BFE3EA url("../img/offer-card.webp?ver=0.30.0") center / 100% 100% no-repeat;
	container-type: inline-size;
}

.go-offer .go-offer__main {
	position: absolute;
	inset: 0;
}

.go-offer .go-offer__sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* ---------- Close ---------- */
.go-offer .go-offer__close {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 1.5px solid rgba(190, 145, 25, .65);
	border-radius: 50%;
	background: rgba(255, 255, 255, .85);
	color: var(--go-offer-ink);
	cursor: pointer;
	transition: transform 150ms ease, background-color 150ms ease;
}

.go-offer .go-offer__close:hover {
	background: #fff;
	color: var(--go-offer-ink);
	transform: scale(1.06);
}

.go-offer .go-offer__close:focus-visible,
.go-offer .go-offer__submit:focus-visible,
.go-offer .go-offer__btn:focus-visible,
.go-offer .go-offer__privacy:focus-visible {
	outline: 3px solid #084066;
	outline-offset: 2px;
}

.go-offer .go-offer__close .go-icon {
	width: 20px;
	height: 20px;
}

/* ---------- Live parts placed over the picture ---------- */
/* The line the picture used to carry ("Shop for ...") is live text now, so the amount follows the offer. A card chosen for another campaign paints its own line. */
.go-offer .go-offer__offer-line {
	position: absolute;
	top: 31.2%;
	left: 50.2%;
	width: 36%;
	margin: 0;
	font-family: var(--go-font-display, "DM Serif Display", Georgia, serif);
	font-size: 3cqw;
	line-height: 1.22;
	text-align: center;
	text-wrap: balance;
	color: var(--go-offer-ink);
	pointer-events: none;
}

.go-offer .go-offer__card.has-custom-card .go-offer__offer-line {
	display: none;
}

.go-offer .go-offer__logo {
	position: absolute;
	top: 2%;
	left: 35%;
	width: 30%;
	height: auto;
	margin: 0;
}

.go-offer .go-offer__form {
	margin: 0;
}

/* The painted email field is covered by a real one with the same look. */
.go-offer .go-offer__field {
	position: absolute;
	top: 71.1%;
	left: 22.3%;
	width: 56.5%;
	height: 5.8%;
	display: block;
}

.go-offer .go-offer__field .go-icon {
	position: absolute;
	top: 50%;
	left: 4%;
	width: 7%;
	height: auto;
	aspect-ratio: 1;
	transform: translateY(-50%);
	color: #656565;
	pointer-events: none;
}

.go-offer.go-offer .go-offer__field input[type="email"] {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0 12px 0 8cqw !important;
	border: 1px solid #6C757D;
	border-radius: 10px;
	background: #fff;
	box-shadow: none;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 16px !important; /* 16 px stops iPhones zooming in when the field is focused. */
	line-height: 1;
	color: var(--go-offer-ink);
}

.go-offer .go-offer__field input[type="email"]::placeholder {
	color: #656565;
	opacity: 1;
}

.go-offer .go-offer__field input[type="email"]:focus {
	border-color: #084066;
	outline: 3px solid rgba(8, 64, 102, .45);
	outline-offset: 1px;
}

.go-offer .go-offer__field input[aria-invalid="true"] {
	border-color: var(--go-offer-error);
}

.go-offer .go-offer__trap {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.go-offer .go-offer__error {
	position: absolute;
	top: 66.6%;
	left: 22.3%;
	width: 56.5%;
	margin: 0;
	padding: 4px 8px;
	border-radius: 8px;
	background: rgba(255, 255, 255, .95);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--go-offer-error);
}

.go-offer .go-offer__error[hidden] {
	display: none;
}

/* The painted button shows its own words; this one is invisible until it is busy. */
.go-offer.go-offer .go-offer__submit {
	position: absolute;
	top: 78.5%;
	left: 20.3%;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 59.4%;
	height: 6.6%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	box-shadow: none;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 15px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: transparent;
	cursor: pointer;
	transition: background-color 150ms ease;
}

.go-offer.go-offer .go-offer__submit:hover {
	background: rgba(255, 255, 255, .1);
}

.go-offer.go-offer .go-offer__submit[aria-busy="true"] {
	background: linear-gradient(180deg, #084066, #0A3B61);
	color: #fff;
	cursor: progress;
}

.go-offer .go-offer__privacy {
	position: absolute;
	top: 86.2%;
	left: 22.7%;
	width: 55.3%;
	height: 2.6%;
	overflow: hidden;
	color: transparent;
	text-indent: 100%;
	white-space: nowrap;
}

/* ---------- After a confirmed send: the Diwali gift reveal (same dialog, same card, now sized by its content) ----------
   Built to look like the supplied artwork (Assets/Offer Reveal 2026-11-02/diwali-reveal-reference.webp): garlands, lanterns and
   curtains across the top corners, flowers at the sides, diyas at the bottom corners (cut-outs reveal-*.webp, faded into the card),
   maroon and gold for the gift and coupon plates. Every word is live text, set in the site's own fonts (DM Serif Display, Playfair
   Display Black, DM Sans). All sizes are multiples of --u (1% of the card's width), so the card scales as one picture. */
.go-offer {
	--go-offer-maroon: #6E1126;
	--go-offer-maroon-light: #9A1F38;
	--go-offer-red: #8E1B2D;
	--go-offer-gold: #E2B54A;
	--go-offer-gold-light: #FFE9A4;
	--go-offer-gold-dark: #A9791B;
	--go-offer-gold-grad: linear-gradient(180deg, #FFEFB8 0%, #F0C558 48%, #C99A2E 100%);
	/* The theme's bright gold (--go-cta) for anything that holds text: flat, no bands, no shine. */
	--go-offer-gold-flat: var(--go-cta, #F4C542);
	/* Brushed gold: bright and dark bands alternate, as on the painted offer card. */
	--go-offer-metal: linear-gradient(180deg, #FFF4C6 0%, #F5D06A 18%, #C58F28 44%, #F3D67A 58%, #AE781B 82%, #E9C45C 100%);
	--go-offer-metal-diag: linear-gradient(135deg, #FFF4C6 0%, #DDAE42 26%, #FAE394 44%, #B8841F 68%, #F3D67A 100%);
	--go-offer-serif: var(--go-font-display, "DM Serif Display", Georgia, serif);
	--go-offer-accent: var(--go-font-accent, "Playfair Display", Georgia, serif);
	--go-offer-sans: var(--go-font-body, "DM Sans", system-ui, sans-serif);
}

.go-offer.is-done {
	/* One screen, no scrolling: the card is about 1.2 times as tall as it is wide, so its width follows the window's height (top size 490px, 30% under the first 700px). */
	width: min(490px, calc(100vw - 24px), calc((100vh - 24px) * .56));
	width: min(490px, calc(100vw - 24px), calc((100dvh - 24px) * .56));
	max-height: calc(100vh - 12px);
	max-height: calc(100dvh - 12px);
}

.go-offer.is-done .go-offer__card {
	--u: 1cqw;
	aspect-ratio: auto;
	background: #FFFCF6;
}

.go-offer.is-done .go-offer__main {
	position: static;
}

.go-offer.is-done :is(.go-offer__form, .go-offer__logo) {
	display: none;
}

.go-offer .go-offer__done {
	display: none;
	flex-direction: column;
	outline: none;
	text-align: center;
	font-family: var(--go-offer-serif);
}

.go-offer.is-done .go-offer__done {
	display: flex;
}

/* The scene: everything painted in the artwork. */
.go-offer .go-offer__scene {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: calc(var(--u) * 1.3);
	padding: calc(var(--u) * 2.4) calc(var(--u) * 6) calc(var(--u) * 3);
	overflow: hidden;
	background:
		radial-gradient(120% 55% at 50% 12%, #FFFFFF 0%, rgba(255, 255, 255, 0) 70%),
		linear-gradient(180deg, #FFF8EC 0%, #FDF5E8 46%, #E9F3F6 100%);
}

.go-offer .go-offer__scene > :not(.go-offer__deco) {
	position: relative;
	z-index: 1;
}

.go-offer .go-offer__deco {
	display: none;
	position: absolute;
	z-index: 0;
	height: auto;
	margin: 0;
	pointer-events: none;
	user-select: none;
}

.go-offer.is-done .go-offer__deco {
	display: block;
}

.go-offer .go-offer__deco--tl { top: 0; left: 0; width: 17.9cqw; }
.go-offer .go-offer__deco--tr { top: 0; right: 0; width: 16.6cqw; }
.go-offer .go-offer__deco--sl { top: 26cqw; left: 0; width: 14cqw; opacity: .95; }
.go-offer .go-offer__deco--sr { top: 30cqw; right: 0; width: 15cqw; opacity: .95; }
.go-offer .go-offer__deco--bl { bottom: 0; left: 0; width: 20cqw; }
.go-offer .go-offer__deco--br { bottom: 0; right: 0; width: 20cqw; }

.go-offer .go-offer__done-logo {
	display: block;
	width: calc(var(--u) * 29);
	height: auto;
	margin: 0;
}

.go-offer .go-offer__done-title {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0;
	font-weight: 400;
	line-height: 1.02;
	color: var(--go-offer-ink);
}

.go-offer .go-offer__title-top {
	font-family: var(--go-offer-serif);
	font-size: max(15px, calc(var(--u) * 4.4));
	font-weight: 400;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.go-offer .go-offer__title-main {
	margin-top: calc(var(--u) * .4);
	font-family: var(--go-offer-accent);
	font-size: max(22px, calc(var(--u) * 6.1));
	font-style: normal;
	font-weight: 900;
	line-height: 1.05;
	text-transform: uppercase;
	color: var(--go-offer-red);
	text-shadow: 0 1px 0 #fff, 0 calc(var(--u) * .5) calc(var(--u) * 1) rgba(124, 18, 38, .22);
}

.go-offer .go-offer__title-main::first-letter {
	font-size: 1.16em;
}

.go-offer .go-offer__flourish {
	display: block;
	width: calc(var(--u) * 30);
	height: auto;
	margin: calc(var(--u) * -.4) 0 0;
}

.go-offer .go-offer__done-copy {
	margin: 0;
	font-family: var(--go-offer-serif);
	font-size: max(12px, calc(var(--u) * 2.3));
	font-weight: 400;
	line-height: 1.35;
	letter-spacing: .01em;
	color: var(--go-offer-ink);
}

.go-offer .go-offer__reveal {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: calc(var(--u) * 2);
	width: 100%;
	margin-top: calc(var(--u) * 1.8);
}

.go-offer.is-done .is-plain .go-offer__reveal,
.go-offer.is-done .is-plain .go-offer__flourish,
.go-offer.is-done .is-plain .go-offer__scene > .go-offer__done-copy,
.go-offer .go-offer__done.is-plain .go-offer__reveal,
.go-offer .go-offer__done.is-plain .go-offer__flourish,
.go-offer .go-offer__done.is-plain .go-offer__scene > .go-offer__done-copy {
	display: none;
}

/* ---------- The gift plate: a gold frame round an ivory plate under a maroon crown, with the bow on the corner ---------- */
.go-offer .go-offer__gifts {
	display: flex;
	justify-content: center;
	width: min(100%, calc(var(--u) * 58));
	margin: 0;
	padding: 0;
	list-style: none;
}

.go-offer .go-offer__gift {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	margin: 0;
	padding: 0 calc(var(--u) * 1.4) calc(var(--u) * 1.2);
	overflow: visible;
	border: 3px solid transparent;
	border-radius: calc(var(--u) * 4.4);
	background: linear-gradient(180deg, #FFFFFF 0%, #FFF8EA 100%) padding-box, var(--go-offer-metal-diag) border-box;
	background-origin: border-box;
	box-shadow: 0 calc(var(--u) * 1.2) calc(var(--u) * 3) rgba(110, 17, 38, .16), inset 0 0 0 2px rgba(255, 255, 255, .95);
}

.go-offer .go-offer__gift-head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: calc(var(--u) * .9);
	width: calc(100% + var(--u) * 2.8);
	padding: calc(var(--u) * 2.2) calc(var(--u) * 1.2) calc(var(--u) * 3);
	border-radius: calc(var(--u) * 4.2) calc(var(--u) * 4.2) 50% 50% / calc(var(--u) * 4.2) calc(var(--u) * 4.2) 16% 16%;
	background: linear-gradient(180deg, var(--go-offer-maroon-light) 0%, var(--go-offer-maroon) 100%);
}

.go-offer .go-offer__gift-lead {
	font-family: var(--go-offer-sans);
	font-size: max(9px, calc(var(--u) * 1.5));
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #FFE9B6;
}

.go-offer .go-offer__gift-amount {
	display: inline-block;
	min-width: 48%;
	padding: calc(var(--u) * .35) calc(var(--u) * 2.2);
	border: 1.5px solid var(--go-offer-gold-dark);
	border-radius: 999px;
	background: var(--go-offer-gold-flat);
	box-shadow: 0 2px 6px rgba(0, 0, 0, .28);
	font-family: var(--go-offer-serif);
	font-size: max(16px, calc(var(--u) * 3.7));
	font-weight: 400;
	line-height: 1.2;
	color: #4A0A18;
}

.go-offer .go-offer__gift-name {
	margin-top: calc(var(--u) * 1);
	font-family: var(--go-offer-serif);
	font-size: max(12px, calc(var(--u) * 2.6));
	font-weight: 400;
	line-height: 1.2;
	color: var(--go-offer-ink);
	text-wrap: balance;
}

.go-offer .go-offer__bow {
	position: absolute;
	top: calc(var(--u) * -4.6);
	right: calc(var(--u) * -3.6);
	z-index: 2;
	width: calc(var(--u) * 11);
	height: auto;
	margin: 0;
	pointer-events: none;
}

.go-offer .go-offer__stage {
	position: relative;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	width: 100%;
	margin-top: auto;
	padding-bottom: calc(var(--u) * 1);
}

/* The gold pedestal the bags stand on. */
.go-offer .go-offer__stage::after {
	content: "";
	position: absolute;
	left: 2%;
	right: 2%;
	bottom: 0;
	height: calc(var(--u) * 3);
	border-radius: 50%;
	background: var(--go-offer-metal);
	box-shadow: 0 3px 8px rgba(110, 17, 38, .28);
}

.go-offer .go-offer__gift-img {
	position: relative;
	z-index: 1;
	display: block;
	width: auto;
	max-width: 92%;
	height: calc(var(--u) * 23);
	margin: 0 0 calc(var(--u) * 1.2);
	object-fit: contain;
}

.go-offer .go-offer__gift-note {
	margin-top: calc(var(--u) * .4);
	font-family: var(--go-offer-sans);
	font-size: max(9px, calc(var(--u) * 1.55));
	font-style: italic;
	line-height: 1.25;
	text-align: center;
	color: var(--go-offer-ink);
}

.go-offer .go-offer__gift-note:empty {
	display: none;
}

/* ---------- The coupon plate ---------- */
.go-offer .go-offer__code {
	position: relative;
	display: grid;
	justify-items: center;
	gap: calc(var(--u) * .6);
	width: calc(var(--u) * 52);
	margin-top: calc(var(--u) * 2.6);
	padding: calc(var(--u) * 3.2) calc(var(--u) * 3) calc(var(--u) * 2.2);
	border: 3px solid transparent;
	border-radius: calc(var(--u) * 3.6);
	background:
		radial-gradient(90% 120% at 50% 0, rgba(255, 255, 255, .16) 0%, rgba(255, 255, 255, 0) 60%) padding-box,
		linear-gradient(180deg, var(--go-offer-maroon-light) 0%, var(--go-offer-maroon) 100%) padding-box,
		var(--go-offer-metal-diag) border-box;
	background-origin: border-box;
	box-shadow: 0 0 0 3px #FFFCF6, 0 0 0 4.5px var(--go-offer-gold-dark), 0 calc(var(--u) * 1.2) calc(var(--u) * 2.6) rgba(110, 17, 38, .3), inset 0 0 0 3px rgba(255, 226, 140, .3);
}

.go-offer .go-offer__code[hidden] {
	display: none;
}

.go-offer .go-offer__code-label {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -52%);
	padding: calc(var(--u) * .55) calc(var(--u) * 3);
	border: 1.5px solid var(--go-offer-gold-dark);
	border-radius: 999px;
	background: var(--go-offer-gold-flat);
	box-shadow: 0 2px 4px rgba(0, 0, 0, .25);
	font-family: var(--go-offer-sans);
	font-size: max(9px, calc(var(--u) * 1.5));
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--go-offer-maroon);
}

.go-offer .go-offer__code-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: calc(var(--u) * 2);
}

.go-offer .go-offer__code-value {
	font-family: var(--go-offer-serif);
	font-size: max(20px, calc(var(--u) * 4.4));
	font-weight: 400;
	letter-spacing: .08em;
	line-height: 1.1;
	color: var(--go-cta, #F4C542);
	text-shadow: 0 1px 2px rgba(0, 0, 0, .3);
	user-select: all;
}

/* Copy Code is a round icon button; its words are kept for screen readers. */
.go-offer.go-offer .go-offer__copy {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: max(34px, calc(var(--u) * 4.4));
	height: max(34px, calc(var(--u) * 4.4));
	margin: 0;
	padding: 0;
	border: 2px solid var(--go-offer-gold-dark);
	border-radius: 50%;
	background: var(--go-offer-gold-flat);
	box-shadow: 0 2px 4px rgba(0, 0, 0, .3);
	color: var(--go-offer-maroon);
	cursor: pointer;
	transition: transform 150ms ease, filter 150ms ease;
}

.go-offer.go-offer .go-offer__copy span {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.go-offer.go-offer .go-offer__copy:hover {
	filter: brightness(1.06);
	transform: scale(1.05);
}

.go-offer.go-offer .go-offer__copy.is-copied {
	background: #BFE88A;
	color: var(--go-offer-ink);
}

.go-offer.go-offer .go-offer__copy:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 2px;
	box-shadow: 0 0 0 6px var(--go-offer-ink);
}

.go-offer .go-offer__copy .go-icon {
	width: 18px;
	height: 18px;
}

/* Sits over the plate's bottom edge so the words appearing do not move anything. */
.go-offer .go-offer__code .go-offer__copied {
	position: absolute;
	right: 0;
	bottom: calc(var(--u) * .4);
	left: 0;
	font-family: var(--go-offer-sans);
	font-size: 11px;
	font-weight: 600;
	line-height: 1.2;
	color: #FFF1D0;
}

/* ---------- Button, line and fine print ---------- */
.go-offer.go-offer .go-offer__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 40px;
	margin: 0;
	padding: 0 calc(var(--u) * 2);
	border: 1.5px solid var(--go-offer-ink);
	border-radius: 999px;
	background: transparent;
	font-family: var(--go-offer-sans);
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	color: var(--go-offer-ink);
	cursor: pointer;
}

.go-offer.go-offer .go-offer__btn--cta {
	width: calc(var(--u) * 58);
	min-height: max(34px, calc(var(--u) * 5.4));
	padding: 0 calc(var(--u) * 2);
	border: 3px solid transparent;
	background:
		linear-gradient(180deg, #14507F 0%, #0A3B61 55%, #072C49 100%) padding-box,
		var(--go-offer-metal) border-box;
	background-origin: border-box;
	box-shadow: 0 0 0 2px #FFFCF6, 0 0 0 3.5px var(--go-offer-gold-dark), 0 8px 18px rgba(10, 59, 97, .35);
	font-family: var(--go-offer-serif);
	font-size: max(11px, calc(var(--u) * 2.3));
	font-weight: 400;
	letter-spacing: .05em;
	white-space: nowrap;
	text-transform: uppercase;
	color: #fff;
}

.go-offer.go-offer .go-offer__btn--cta::after {
	content: "\203A";
	margin-left: 4px;
	font-size: 1.7em;
	font-weight: 400;
	line-height: .8;
	color: var(--go-offer-gold);
}

.go-offer.go-offer .go-offer__btn--cta:hover {
	filter: brightness(1.12);
}

.go-offer.go-offer .go-offer__btn:focus-visible {
	outline: 3px solid var(--go-offer-gold);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--go-offer-ink);
}

.go-offer .go-offer__book {
	margin: 0;
	padding: 0 calc(var(--u) * 6);
	font-family: var(--go-offer-serif);
	font-size: max(10.5px, calc(var(--u) * 1.8));
	line-height: 1.4;
	color: var(--go-offer-ink);
}

.go-offer .go-offer__fine {
	position: relative;
	width: 100%;
	margin: 0;
	padding: 0 calc(var(--u) * 9);
	font-family: var(--go-offer-sans);
	font-size: max(9.5px, calc(var(--u) * 1.4));
	line-height: 1.4;
	color: #3B4A58;
}

.go-offer .go-offer__fine::before,
.go-offer .go-offer__fine::after {
	content: "";
	position: absolute;
	top: 50%;
	width: 9%;
	height: 1px;
	background: var(--go-offer-gold);
}

.go-offer .go-offer__fine::before { left: 0; }
.go-offer .go-offer__fine::after { right: 0; }

/* ---------- Below the scene: where the email went, and the other buttons ---------- */
.go-offer .go-offer__after {
	display: grid;
	gap: 6px;
	padding: 8px clamp(14px, 4cqw, 28px) 10px;
	background: #FFFCF6;
	border-top: 1px solid #F0E3BC;
}

.go-offer .go-offer__sent {
	margin: 0;
	font-family: var(--go-font-body, "DM Sans", system-ui, sans-serif);
	font-size: clamp(10px, 2cqw, 12px);
	line-height: 1.35;
	font-style: normal;
	color: #495057;
}

.go-offer .go-offer__done-actions {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	width: 100%;
	gap: calc(var(--u) * 1.6);
}

.go-offer.go-offer .go-offer__done-actions .go-offer__btn {
	min-height: max(32px, calc(var(--u) * 5.6));
	font-size: max(11px, calc(var(--u) * 2.3));
	white-space: nowrap;
}

.go-offer .go-offer__done-actions .go-icon {
	width: max(15px, calc(var(--u) * 3.2));
	height: max(15px, calc(var(--u) * 3.2));
}

.go-offer.go-offer .go-offer__btn--wa {
	border-color: transparent;
	background: var(--go-whatsapp, #25D366);
	color: #0A3B61;
}

.go-offer .go-offer__btn .go-icon {
	width: 20px;
	height: 20px;
}

/* ---------- The reveal arrives once: plates rise in turn, the coupon settles last ---------- */
@keyframes go-offer-rise {
	from { opacity: 0; transform: translateY(10px) scale(.97); }
	to { opacity: 1; transform: none; }
}

.go-offer.is-done .go-offer__gift,
.go-offer.is-done .go-offer__code {
	animation: go-offer-rise 380ms cubic-bezier(.23, 1, .32, 1) both;
}

.go-offer.is-done .go-offer__code { animation-delay: 150ms; }

@media (prefers-reduced-motion: reduce) {
	.go-offer.is-done .go-offer__gift,
	.go-offer.is-done .go-offer__code {
		animation: none;
	}
}

/* ---------- Opening ---------- */
.go-offer[open] {
	animation: go-offer-in 300ms cubic-bezier(.2, .8, .2, 1) both;
}

.go-offer[open]::backdrop {
	animation: go-offer-fade 300ms ease both;
}

@keyframes go-offer-in {
	from { opacity: 0; transform: translateY(16px); }
	to { opacity: 1; transform: none; }
}

@keyframes go-offer-fade {
	from { opacity: 0; }
	to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
	.go-offer[open],
	.go-offer[open]::backdrop {
		animation: none;
	}
}

/* Short windows (small laptops, phones): drop the three least needed lines so the reveal still fits without scrolling. */
@media (max-height: 700px) {
	.go-offer.is-done :is(.go-offer__flourish, .go-offer__scene > .go-offer__done-copy, .go-offer__sent) {
		display: none;
	}
}

/* ---------- Phones: a compact card, not a full-screen takeover ---------- */
@media (max-width: 767px) {
	.go-offer {
		width: min(340px, calc(100vw - 32px), calc(85dvh * 0.8));
		border-radius: 14px;
	}

	.go-offer.is-done {
		width: min(420px, calc(100vw - 24px), calc((100dvh - 24px) * .66));
		/* 25% smaller than before; zoom scales the pixel minimums too (browsers without it keep the full size). */
		zoom: .75;
	}

	/* On a phone the picture is small, so type and plates are drawn larger against the card's width. */
	.go-offer.is-done .go-offer__card {
		--u: 1.22cqw;
	}

	.go-offer.go-offer .go-offer__btn--cta {
		width: calc(var(--u) * 62);
	}

	.go-offer .go-offer__close {
		top: 6px;
		right: 6px;
		width: 36px;
		height: 36px;
	}

	.go-offer .go-offer__close .go-icon {
		width: 18px;
		height: 18px;
	}
}

/* ---------- Printed inline on the Monthly Offer admin screen (a picture of the popup, not a dialog) ---------- */
.go-offer.go-offer--inline {
	width: 100%;
	max-width: 420px;
	max-height: none;
	overflow: visible;
	animation: none;
}

.go-offer.go-offer--inline.is-done {
	max-width: 460px;
}

.go-offer.go-offer--inline .go-offer__close {
	display: none;
}
