/* =========================================================================
   Anchor v2 — Floating widgets v2
   - Poster-as-banner (the actual event poster, pinned, floating)
   - Anchor Compass FAB
   - Compass modal with image-based option cards + logo in header
   ========================================================================= */


/* ============================================================
   FLOATING POSTER BANNER (bottom-left)
   Just the actual poster image, pinned with tape, close + register.
   ============================================================ */

.poster-banner {
	position: fixed;
	left: 20px;
	bottom: 20px;
	z-index: var(--z-toast);
	width: min(220px, 30vw);
	transform: rotate(-3deg) translateY(20px);
	opacity: 0;
	visibility: hidden;
	transition:
		transform 500ms var(--ease),
		opacity 500ms var(--ease),
		visibility 0s linear 500ms;
}

.poster-banner.is-open {
	transform: rotate(-3deg) translateY(0);
	opacity: 1;
	visibility: visible;
	transition:
		transform 500ms var(--ease),
		opacity 500ms var(--ease),
		visibility 0s linear 0s;
}

.poster-banner.is-closed { display: none; }

.poster-banner:hover {
	transform: rotate(0deg) translateY(-4px) scale(1.04);
}

.poster-banner__inner {
	position: relative;
	box-shadow:
		0 24px 48px rgba(0, 0, 0, 0.30),
		0 4px 12px rgba(0, 0, 0, 0.15);
	background: #fff;
	padding: 6px;
}

/* "Tape" pinning effect at top */
.poster-banner__tape {
	position: absolute;
	top: -10px;
	left: 50%;
	transform: translateX(-50%) rotate(2deg);
	width: 80px;
	height: 22px;
	background:
		linear-gradient(90deg, rgba(255, 215, 130, 0.55), rgba(255, 235, 180, 0.55), rgba(255, 215, 130, 0.55));
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.10);
	pointer-events: none;
	z-index: 3;
}

.poster-banner__tape::before,
.poster-banner__tape::after {
	content: "";
	position: absolute;
	top: 0;
	width: 6px;
	height: 100%;
	background: linear-gradient(to bottom, transparent, rgba(0,0,0,0.04));
}
.poster-banner__tape::before { left: 0; }
.poster-banner__tape::after { right: 0; }

.poster-banner__link {
	display: block;
	cursor: pointer;
}

.poster-banner__img {
	width: 100%;
	height: auto;
	display: block;
}

/* Top-corner "NEXT EVENT" ribbon */
.poster-banner__ribbon {
	position: absolute;
	top: 14px;
	left: -8px;
	z-index: 2;
	background: var(--brand-secondary);
	color: #fff;
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	padding: 4px 10px 4px 10px;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
}

.poster-banner__ribbon::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: -5px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 5px 5px 0 0;
	border-color: #a3441a transparent transparent transparent;
}

/* Countdown chip overlaid on the poster */
.poster-banner__cd {
	position: absolute;
	bottom: 12px;
	left: 12px;
	right: 12px;
	z-index: 2;
	background: rgba(66, 27, 73, 0.92);
	color: #fff;
	padding: 6px 10px;
	display: flex;
	justify-content: space-around;
	gap: 6px;
	font-family: var(--font-display);
	font-size: 10px;
	letter-spacing: 0.06em;
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}

.poster-banner__cd-num {
	color: var(--brand-secondary);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}

/* Close button */
.poster-banner__close {
	position: absolute;
	top: -10px;
	right: -10px;
	z-index: 4;
	width: 28px; height: 28px;
	border-radius: 50%;
	background: var(--brand-primary);
	color: #fff;
	border: 2px solid #fff;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.20);
	transition: background-color 200ms var(--ease), transform 200ms var(--ease);
}

.poster-banner__close:hover {
	background: var(--brand-secondary);
	transform: scale(1.1);
}

.poster-banner__close svg { width: 12px; height: 12px; }

@media (max-width: 540px) {
	.poster-banner { width: 120px; left: 10px; bottom: 10px; }
	.poster-banner__cd { font-size: 8px; padding: 4px 8px; }
	.poster-banner__ribbon { font-size: 8px; padding: 3px 8px 3px 8px; }
	.poster-banner__close { width: 24px; height: 24px; top: -8px; right: -8px; }
}
@media (max-width: 380px) {
	.poster-banner { width: 100px; }
}


/* ============================================================
   ANCHOR COMPASS FAB (bottom-right)
   ============================================================ */

.fab-compass {
	position: fixed;
	right: 20px;
	right: max(20px, env(safe-area-inset-right));
	bottom: 96px; /* lifted to make room for the WhatsApp + Call stack */
	bottom: calc(96px + env(safe-area-inset-bottom, 0px));
	z-index: var(--z-toast);
	background: var(--brand-primary);
	color: #fff;
	border: 0;
	cursor: pointer;
	padding: 14px 22px 14px 14px;
	border-radius: 999px;
	min-height: 52px;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: inherit;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.02em;
	box-shadow: 0 14px 32px rgba(66, 27, 73, 0.40),
		0 4px 10px rgba(66, 27, 73, 0.20);
	transition: transform 240ms var(--ease), box-shadow 240ms var(--ease), background-color 240ms var(--ease);
	touch-action: manipulation;
	overflow: visible;
	isolation: isolate;
	animation: fabBob 3.4s ease-in-out infinite;
}

/* Constant gentle "alive" bob to keep eyes drawn to the FAB */
@keyframes fabBob {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-4px); }
}

/* Two stacked outer rings — staggered to feel like radar pulses */
.fab-compass::before,
.fab-compass::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	border: 2px solid var(--brand-secondary);
	opacity: 0;
	z-index: -1;
	pointer-events: none;
	animation: fabPulse 2.6s var(--ease) infinite;
}
.fab-compass::after { animation-delay: 1.3s; }

@keyframes fabPulse {
	0%   { opacity: 0.55; transform: scale(1); }
	70%  { opacity: 0;    transform: scale(1.35); }
	100% { opacity: 0;    transform: scale(1.35); }
}

.fab-compass:hover {
	background: var(--brand-secondary);
	transform: translateY(-6px) scale(1.04);
	box-shadow: 0 22px 48px rgba(201, 86, 28, 0.50),
		0 6px 14px rgba(201, 86, 28, 0.30);
	animation-play-state: paused;
}

.fab-compass:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 4px;
}

.fab-compass__icon {
	width: 36px; height: 36px;
	border-radius: 50%;
	background: var(--brand-secondary);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	flex-shrink: 0;
	box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.15) inset;
	animation: compassRing 2.6s ease-in-out infinite;
}

@keyframes compassRing {
	0%, 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.0) inset, 0 0 0 0 rgba(201, 86, 28, 0.4); }
	50%      { box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.12) inset, 0 0 0 10px rgba(201, 86, 28, 0); }
}

.fab-compass:hover .fab-compass__icon {
	background: #fff;
	color: var(--brand-secondary);
}

.fab-compass__icon svg {
	width: 18px;
	height: 18px;
	animation: compassSpin 14s linear infinite;
}

@keyframes compassSpin {
	from { transform: rotate(0deg); }
	to   { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
	.fab-compass,
	.fab-compass__icon,
	.fab-compass__icon svg,
	.fab-compass::before,
	.fab-compass::after {
		animation: none !important;
	}
}

.fab-compass__text {
	display: flex;
	flex-direction: column;
	line-height: 1.15;
	text-align: left;
}

.fab-compass__text small {
	font-size: 9px;
	opacity: 0.75;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	margin-bottom: 2px;
}

@media (max-width: 540px) {
	.fab-compass__text { display: none; }
	.fab-compass { padding: 10px; }
	.fab-compass__icon { width: 28px; height: 28px; }
	.fab-compass__icon svg { width: 14px; height: 14px; }
}

/* Safe-area for poster banner too */
.poster-banner {
	left: max(20px, env(safe-area-inset-left));
	bottom: max(20px, env(safe-area-inset-bottom));
}


/* ============================================================
   COMPASS MODAL — image-card based quiz
   ============================================================ */

.compass {
	position: fixed;
	inset: 0;
	z-index: var(--z-modal);
	background: rgba(15, 8, 22, 0.88);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 12px;
	padding-top: max(12px, env(safe-area-inset-top));
	padding-bottom: max(12px, env(safe-area-inset-bottom));
	padding-left: max(12px, env(safe-area-inset-left));
	padding-right: max(12px, env(safe-area-inset-right));
	opacity: 0;
	visibility: hidden;
	transition: opacity 180ms var(--ease), visibility 0s linear 180ms;
}

@media (max-width: 540px) {
	.compass { padding: 8px; align-items: flex-start; padding-top: max(12px, env(safe-area-inset-top)); }
}

.compass.is-open {
	opacity: 1;
	visibility: visible;
	transition: opacity 180ms var(--ease), visibility 0s linear 0s;
}

.compass__dialog {
	position: relative;
	width: 100%;
	max-width: 900px;
	max-height: calc(100dvh - 24px);
	max-height: calc(100vh - 24px); /* fallback */
	background: #fff;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transform: translateY(12px) scale(0.985);
	transition: transform 220ms var(--ease);
}

@media (max-width: 540px) {
	.compass__dialog {
		max-height: calc(100dvh - 16px);
		max-height: calc(100vh - 16px);
	}
}

.compass.is-open .compass__dialog { transform: translateY(0) scale(1); }

.compass__close {
	position: absolute;
	top: 12px; right: 12px;
	z-index: 5;
	width: 44px; height: 44px; /* WCAG 44x44 tap target */
	background: rgba(255, 255, 255, 0.95);
	border: 1px solid rgba(0, 0, 0, 0.08);
	color: var(--brand-primary);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	touch-action: manipulation;
}

.compass__close:hover { background: var(--brand-primary); color: #fff; }
.compass__close svg { width: 16px; height: 16px; }

@media (max-width: 540px) {
	.compass__close { width: 40px; height: 40px; top: 8px; right: 8px; }
}

/* Header: brand-purple band with logo */
.compass__header {
	background: var(--brand-primary);
	color: #fff;
	padding: 14px 22px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	position: relative;
	flex-shrink: 0;
}

.compass__header::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--brand-secondary), transparent);
}

.compass__brand {
	display: flex;
	align-items: center;
	gap: 16px;
}

.compass__logo {
	height: 28px;
	width: auto;
	filter: brightness(0) invert(1);
}

.compass__brand-text {
	font-family: var(--font-display);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.1;
	color: rgba(255, 255, 255, 0.9);
	border-left: 1px solid rgba(255, 255, 255, 0.22);
	padding-left: 16px;
}

.compass__brand-text small {
	display: block;
	font-size: 10px;
	color: rgba(255, 255, 255, 0.65);
	letter-spacing: 0.22em;
	text-transform: uppercase;
	margin-top: 3px;
}

.compass__progress {
	flex: 0 0 auto;
	display: flex;
	gap: 4px;
}

.compass__progress-dot {
	width: 26px;
	height: 3px;
	background: rgba(255, 255, 255, 0.22);
	transition: background-color 240ms var(--ease);
}

@media (max-width: 540px) {
	.compass__progress-dot { width: 18px; }
}

.compass__progress-dot.is-active,
.compass__progress-dot.is-done {
	background: var(--brand-secondary);
}

.compass__body {
	padding: 22px 24px 24px;
	overflow-y: auto;
	flex: 1 1 auto;
	min-height: 0;
}

@media (max-width: 540px) {
	.compass__body { padding: 18px 16px; }
	.compass__header { padding: 12px 16px; }
	.compass__brand-text { display: none; }
}

.compass__step { display: none; }
.compass__step.is-active { display: block; animation: compassFade 380ms var(--ease); }

@keyframes compassFade {
	from { opacity: 0; transform: translateY(12px); }
	to   { opacity: 1; transform: translateY(0); }
}

.compass__eyebrow {
	display: inline-block;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--brand-secondary);
	margin-bottom: 12px;
}

.compass__question {
	font-family: var(--font-display);
	font-size: clamp(18px, 2.2vw, 24px);
	font-weight: 500;
	color: var(--brand-primary);
	line-height: 1.2;
	margin: 0 0 16px;
	letter-spacing: -0.005em;
	text-wrap: balance;
}

.compass__intel {
	background: var(--brand-primary-08);
	padding: 10px 14px;
	border-left: 3px solid var(--brand-secondary);
	font-size: 13px;
	line-height: 1.5;
	color: var(--brand-text);
	margin-bottom: 16px;
	font-weight: 300;
}

.compass__intel strong {
	color: var(--brand-primary);
	font-weight: 600;
	font-family: var(--font-display);
}

.compass__question em { color: var(--brand-secondary); font-style: italic; }


/* ===== Image cards (replaces text-only cards) ===== */

.compass__options {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
}

@media (max-width: 600px) { .compass__options { grid-template-columns: 1fr 1fr; gap: 8px; } }
@media (max-width: 420px) {
	.compass__options { grid-template-columns: 1fr; gap: 8px; }
}

.compass__card {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	cursor: pointer;
	background: var(--brand-primary);
	border: 0;
	padding: 0;
	text-align: left;
	color: #fff;
	transition: transform 240ms var(--ease);
	font-family: inherit;
	isolation: isolate;
	min-height: 90px; /* ensure tappable on tiny screens */
	touch-action: manipulation;
}

@media (max-width: 600px) {
	.compass__card { aspect-ratio: 5 / 3; }
}

@media (max-width: 420px) {
	.compass__card { aspect-ratio: 16 / 9; min-height: 100px; }
}

.compass__card:hover { transform: translateY(-4px); }

.compass__card-img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 900ms var(--ease), filter 500ms var(--ease);
	filter: saturate(0.9) brightness(0.95);
}

.compass__card:hover .compass__card-img {
	transform: scale(1.08);
	filter: saturate(1.05) brightness(1);
}

/* Default gradient overlay */
.compass__card::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(66, 27, 73, 0.85) 100%);
	z-index: 1;
	transition: background 400ms var(--ease);
}

.compass__card:hover::after {
	background: linear-gradient(180deg, rgba(66, 27, 73, 0.20) 0%, rgba(66, 27, 73, 0.92) 100%);
}

/* Number badge top-left */
.compass__card-num {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 3;
	font-family: var(--font-display);
	font-size: 10px;
	font-weight: 500;
	color: var(--brand-primary);
	background: rgba(255, 255, 255, 0.95);
	padding: 3px 8px;
	letter-spacing: 0.18em;
}

/* Arrow circle top-right (animates on hover) */
.compass__card-arrow {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 3;
	width: 24px; height: 24px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.18);
	border: 1px solid rgba(255, 255, 255, 0.35);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	transition: background-color 240ms var(--ease), transform 240ms var(--ease);
}

.compass__card-arrow svg { width: 10px; height: 10px; }

.compass__card:hover .compass__card-arrow {
	background: var(--brand-secondary);
	border-color: var(--brand-secondary);
	transform: rotate(-45deg);
}

/* Content at bottom */
.compass__card-content {
	position: absolute;
	left: 12px; right: 12px; bottom: 10px;
	z-index: 2;
	transition: transform 360ms var(--ease);
}

.compass__card:hover .compass__card-content { transform: translateY(-3px); }

.compass__card-title {
	font-family: var(--font-display);
	font-size: clamp(14px, 1.3vw, 16px);
	font-weight: 500;
	color: #fff;
	margin: 0 0 2px;
	line-height: 1.18;
	letter-spacing: -0.005em;
}

.compass__card-desc {
	font-size: 11px;
	color: rgba(255, 255, 255, 0.85);
	margin: 0;
	font-weight: 300;
	line-height: 1.35;
}

.compass__back {
	margin-top: 14px;
	font-size: 10px;
	font-weight: 500;
	color: var(--brand-text);
	letter-spacing: 0.22em;
	text-transform: uppercase;
	background: transparent;
	border: 0;
	cursor: pointer;
	padding: 6px 0;
	transition: color 200ms var(--ease);
	font-family: inherit;
}

.compass__back:hover { color: var(--brand-secondary); }
.compass__back::before { content: "← "; }


/* ===== Result step ===== */

.compass__result-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--brand-secondary);
	margin-bottom: 14px;
}

.compass__result-eyebrow::before {
	content: "";
	width: 24px;
	height: 1px;
	background: var(--brand-secondary);
}

.compass__result-title {
	font-family: var(--font-display);
	font-size: clamp(22px, 2.4vw, 30px);
	font-weight: 500;
	color: var(--brand-primary);
	line-height: 1.18;
	margin: 0 0 12px;
	letter-spacing: -0.01em;
}

.compass__result-title em { color: var(--brand-secondary); font-style: italic; }

.compass__result-body {
	font-size: 14px;
	line-height: 1.6;
	color: var(--brand-text);
	font-weight: 300;
	margin: 0 0 18px;
}

.compass__result-rec {
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: 14px;
	align-items: center;
	background: var(--surface-soft);
	padding: 14px;
	margin-bottom: 18px;
}

@media (max-width: 540px) { .compass__result-rec { grid-template-columns: 80px 1fr; gap: 12px; padding: 12px; } }

.compass__result-rec-img {
	aspect-ratio: 1 / 1;
	overflow: hidden;
}

.compass__result-rec-img img { width: 100%; height: 100%; object-fit: cover; }

.compass__result-rec-eyebrow {
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--brand-secondary);
	margin-bottom: 4px;
}

.compass__result-rec-title {
	font-family: var(--font-display);
	font-size: 15px;
	font-weight: 500;
	color: var(--brand-primary);
	margin: 0 0 3px;
	line-height: 1.2;
}

.compass__result-rec-desc {
	font-size: 12px;
	color: var(--brand-text);
	line-height: 1.45;
	margin: 0;
	font-weight: 300;
}

.compass__result-actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

@media (max-width: 540px) { .compass__result-actions { grid-template-columns: 1fr; } }

.compass__action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 14px 16px;
	min-height: 44px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	transition: background-color 200ms var(--ease), color 200ms var(--ease), border-color 200ms var(--ease);
	cursor: pointer;
	border: 0;
	font-family: inherit;
	touch-action: manipulation;
}

@media (max-width: 540px) {
	.compass__action { font-size: 11px; letter-spacing: 0.14em; padding: 12px 12px; }
}

.compass__action--book {
	background: var(--brand-secondary);
	color: #fff;
}
.compass__action--book:hover { background: var(--brand-primary); }

.compass__action--email {
	background: var(--brand-primary);
	color: #fff;
}
.compass__action--email:hover { background: var(--brand-secondary); }

.compass__action--ical {
	background: transparent;
	color: var(--brand-primary);
	border: 1px solid var(--brand-primary);
}
.compass__action--ical:hover { background: var(--brand-primary); color: #fff; }

.compass__share-note {
	margin-top: 14px;
	font-size: 11px;
	letter-spacing: 0.06em;
	color: var(--brand-text);
	text-align: center;
}


/* Hide the old WhatsApp FAB everywhere */
.fab-chat { display: none !important; }


/* ============================================================
   WELCOME VIDEO POPUP — first-visit YouTube intro
   ============================================================ */

.anchor-welcome {
	position: fixed;
	inset: 0;
	z-index: var(--z-modal, 1000);
	background: rgba(20, 8, 25, 0.78);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	opacity: 0;
	visibility: hidden;
	transition: opacity 320ms var(--ease), visibility 0s linear 320ms;
}

.anchor-welcome.is-open {
	opacity: 1;
	visibility: visible;
	transition: opacity 320ms var(--ease), visibility 0s linear 0s;
}

.anchor-welcome__dialog {
	position: relative;
	background: var(--brand-primary);
	width: 100%;
	max-width: 1040px;
	max-height: calc(100vh - 48px);
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: 0 40px 100px rgba(0, 0, 0, 0.65);
	transform: translateY(20px) scale(0.98);
	transition: transform 360ms var(--ease);
}
.anchor-welcome.is-open .anchor-welcome__dialog {
	transform: translateY(0) scale(1);
}

.anchor-welcome__close {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 5;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 0;
	background: rgba(0, 0, 0, 0.4);
	backdrop-filter: blur(8px);
	color: #fff;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 200ms var(--ease), transform 200ms var(--ease);
}
.anchor-welcome__close:hover {
	background: var(--brand-secondary);
	transform: scale(1.05);
}
.anchor-welcome__close svg { width: 16px; height: 16px; }

.anchor-welcome__body {
	display: grid;
	grid-template-columns: 1fr 1.4fr;
	gap: 0;
	color: #fff;
}
@media (max-width: 880px) {
	.anchor-welcome__body { grid-template-columns: 1fr; }
}

.anchor-welcome__copy {
	padding: clamp(28px, 4vw, 48px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	background:
		radial-gradient(circle at 0% 100%, rgba(201, 86, 28, 0.30) 0%, rgba(201, 86, 28, 0) 50%),
		var(--brand-primary);
}

.anchor-welcome__eyebrow {
	display: inline-block;
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--brand-secondary);
	margin-bottom: 16px;
	padding-bottom: 8px;
	border-bottom: 1px solid rgba(201, 86, 28, 0.45);
	align-self: flex-start;
}

.anchor-welcome__title {
	font-family: var(--font-display);
	font-size: clamp(28px, 3.6vw, 42px);
	line-height: 1.05;
	font-weight: 500;
	letter-spacing: -0.02em;
	color: #fff;
	margin: 0 0 18px;
	text-wrap: balance;
}
.anchor-welcome__title em {
	font-style: italic;
	color: var(--brand-secondary);
	font-weight: 400;
	display: block;
}

.anchor-welcome__lede {
	font-size: 15px;
	line-height: 1.65;
	color: rgba(255, 255, 255, 0.85);
	margin: 0 0 24px;
	font-weight: 300;
	max-width: 360px;
}

.anchor-welcome__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.anchor-welcome__btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 11px 22px;
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	border-radius: 999px;
	border: 1.5px solid;
	cursor: pointer;
	transition: all 200ms var(--ease);
}
.anchor-welcome__btn--primary {
	background: var(--brand-secondary);
	color: #fff;
	border-color: var(--brand-secondary);
}
.anchor-welcome__btn--primary:hover {
	background: #fff;
	color: var(--brand-primary);
	border-color: #fff;
}
.anchor-welcome__btn--ghost {
	background: transparent;
	color: rgba(255, 255, 255, 0.85);
	border-color: rgba(255, 255, 255, 0.45);
}
.anchor-welcome__btn--ghost:hover {
	border-color: #fff;
	color: #fff;
}

.anchor-welcome__video {
	position: relative;
	background: #000;
	aspect-ratio: 16 / 9;
	min-height: 280px;
}
.anchor-welcome__video iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

@media (max-width: 880px) {
	.anchor-welcome__dialog { max-height: calc(100dvh - 24px); }
	.anchor-welcome__video { min-height: 0; }
	.anchor-welcome__copy { order: 2; padding: 22px; }
	.anchor-welcome__video { order: 1; }
}


/* ============================================================
   DISCOVERY CALL — multi-step modal qualifier
   Re-uses many compass visual conventions but lives independently
   so the two modals can evolve separately.
   ============================================================ */

.discovery {
	position: fixed;
	inset: 0;
	z-index: var(--z-modal, 1000);
	background: rgba(20, 8, 25, 0.65);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	opacity: 0;
	visibility: hidden;
	transition: opacity 280ms var(--ease), visibility 0s linear 280ms;
}

.discovery.is-open {
	opacity: 1;
	visibility: visible;
	transition: opacity 280ms var(--ease), visibility 0s linear 0s;
}

.discovery__dialog {
	position: relative;
	background: #fff;
	width: 100%;
	max-width: 720px;
	max-height: calc(100vh - 48px);
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
	transform: translateY(20px) scale(0.98);
	transition: transform 320ms var(--ease);
}

.discovery.is-open .discovery__dialog { transform: translateY(0) scale(1); }

.discovery__close {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 3;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 0;
	background: rgba(0, 0, 0, 0.06);
	color: var(--brand-primary);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 200ms var(--ease);
}
.discovery__close:hover { background: rgba(0, 0, 0, 0.12); }
.discovery__close svg { width: 16px; height: 16px; }

.discovery__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 20px 60px 16px 22px;
	border-bottom: 1px solid rgba(66, 27, 73, 0.08);
}

.discovery__brand {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

.discovery__logo {
	width: 36px; height: 36px; object-fit: contain;
}

.discovery__brand-text {
	display: inline-flex;
	flex-direction: column;
	font-family: var(--font-display);
	font-weight: 500;
	color: var(--brand-primary);
	line-height: 1.05;
	font-size: 15px;
}
.discovery__brand-text small {
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 400;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--brand-secondary);
	margin-top: 4px;
}

.discovery__progress {
	display: inline-flex;
	gap: 6px;
	flex-shrink: 0;
}

.discovery__progress-dot {
	width: 22px;
	height: 3px;
	border-radius: 3px;
	background: rgba(66, 27, 73, 0.12);
	transition: background-color 200ms var(--ease);
}
.discovery__progress-dot.is-done { background: rgba(201, 86, 28, 0.7); }
.discovery__progress-dot.is-active { background: var(--brand-secondary); }

.discovery__body {
	padding: 24px 22px 24px;
	overflow-y: auto;
	overflow-x: hidden;
	flex: 1;
}

.discovery__step { animation: discFade 260ms var(--ease); }

@keyframes discFade {
	from { opacity: 0; transform: translateY(6px); }
	to   { opacity: 1; transform: translateY(0); }
}

.discovery__eyebrow {
	display: inline-block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--brand-secondary);
	margin-bottom: 10px;
}

/* Step header — number badge + meta count */
.discovery__step-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
	flex-wrap: wrap;
}
.discovery__step-badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--brand-secondary);
}
.discovery__step-badge > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--brand-secondary);
	color: #fff;
	font-family: var(--font-display);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0;
}
.discovery__step-meta {
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(66, 27, 73, 0.55);
}

.discovery__helper {
	font-size: 13px;
	color: var(--brand-text);
	font-weight: 300;
	font-style: italic;
	margin: 6px 0 16px;
	line-height: 1.55;
}

/* Welcome screen — copy + portrait split */
.discovery__welcome {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 22px;
	align-items: center;
	margin: 14px 0 18px;
}
@media (max-width: 580px) {
	.discovery__welcome { grid-template-columns: 1fr; }
	.discovery__welcome-art { order: -1; max-height: 160px; }
}
.discovery__welcome-copy h3 { margin-top: 0; }
.discovery__welcome-art {
	position: relative;
	border-radius: 12px;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	max-height: 220px;
}
.discovery__welcome-art img {
	width: 100%; height: 100%;
	object-fit: cover;
	filter: saturate(0.95) brightness(0.95);
}
.discovery__welcome-art::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(160deg, rgba(40, 14, 48, 0.15) 0%, rgba(66, 27, 73, 0.55) 100%);
}
.discovery__welcome-chip {
	position: absolute;
	left: 12px; bottom: 12px;
	z-index: 1;
	font-family: var(--font-body);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: #fff;
	background: rgba(0, 0, 0, 0.32);
	padding: 6px 10px;
	border-radius: 999px;
	backdrop-filter: blur(8px);
}

.discovery__question {
	font-family: var(--font-display);
	font-size: clamp(20px, 2.6vw, 26px);
	font-weight: 500;
	line-height: 1.2;
	color: var(--brand-primary);
	margin: 0 0 8px;
	letter-spacing: -0.01em;
}
.discovery__question em {
	font-style: italic;
	color: var(--brand-secondary);
	font-weight: 400;
}

.discovery__intro {
	font-size: 15px;
	line-height: 1.65;
	color: var(--brand-text);
	margin: 6px 0 14px;
	font-weight: 300;
}

.discovery__pills {
	list-style: none;
	padding: 0;
	margin: 0 0 18px;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.discovery__pills li {
	font-size: 12px;
	letter-spacing: 0.04em;
	font-weight: 500;
	color: var(--brand-primary);
	background: rgba(66, 27, 73, 0.07);
	padding: 7px 12px;
	border-radius: var(--radius-full, 999px);
}

.discovery__options {
	display: grid;
	grid-template-columns: repeat(1, minmax(0, 1fr));
	gap: 10px;
	margin: 8px 0 0;
	width: 100%;
}
@media (min-width: 520px) {
	.discovery__options       { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.discovery__options--6    { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* "How can we reach you" — pill picker block */
.discovery__subhead {
	font-family: var(--font-body);
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-weight: 600;
	color: var(--brand-secondary);
	margin: 22px 0 10px;
}
.discovery__pillgrid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 0 0 6px;
	transition: box-shadow var(--dur-base) var(--ease);
}
@media (min-width: 640px) {
	.discovery__pillgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.discovery__pillgrid.is-error {
	box-shadow: 0 0 0 2px rgba(201, 86, 28, 0.45);
	border-radius: var(--radius-md);
}
.discovery__pill {
	appearance: none;
	background: #fff;
	border: 1.5px solid var(--line);
	border-radius: var(--radius-md);
	padding: 12px 14px;
	text-align: left;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	gap: 4px;
	transition: border-color var(--dur-base) var(--ease), background var(--dur-base) var(--ease), transform var(--dur-base) var(--ease);
	font-family: var(--font-body);
}
.discovery__pill strong {
	font-size: 14px;
	font-weight: 600;
	color: var(--brand-primary);
}
.discovery__pill span {
	font-size: 12px;
	color: var(--brand-text);
	font-weight: 400;
}
.discovery__pill:hover {
	border-color: var(--brand-primary);
	transform: translateY(-1px);
}
.discovery__pill.is-selected {
	border-color: var(--brand-secondary);
	background: var(--brand-secondary-08);
}
.discovery__pill.is-selected strong { color: var(--brand-secondary); }

.discovery__option {
	position: relative;
	background: #fff;
	border: 1.5px solid rgba(66, 27, 73, 0.12);
	border-radius: 12px;
	padding: 14px 16px;
	cursor: pointer;
	font-family: inherit;
	text-align: left;
	display: flex;
	align-items: center;
	gap: 12px;
	transition: border-color 200ms var(--ease), background-color 200ms var(--ease), box-shadow 200ms var(--ease), transform 200ms var(--ease);
	min-height: 72px;
	min-width: 0;
	width: 100%;
	box-sizing: border-box;
}
.discovery__option:hover {
	border-color: rgba(201, 86, 28, 0.5);
	background: rgba(201, 86, 28, 0.04);
	transform: translateY(-1px);
	box-shadow: 0 10px 24px rgba(66, 27, 73, 0.08);
}
.discovery__option.is-active {
	border-color: var(--brand-secondary);
	background: rgba(201, 86, 28, 0.10);
	box-shadow: 0 12px 30px rgba(201, 86, 28, 0.18);
}

.discovery__option-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 38px;
	height: 38px;
	border-radius: 10px;
	background: linear-gradient(135deg, rgba(201, 86, 28, 0.10) 0%, rgba(66, 27, 73, 0.08) 100%);
	color: var(--brand-secondary);
	transition: background-color 200ms var(--ease), color 200ms var(--ease), transform 200ms var(--ease);
}
.discovery__option-icon svg {
	width: 20px;
	height: 20px;
}
.discovery__option:hover .discovery__option-icon {
	background: linear-gradient(135deg, rgba(201, 86, 28, 0.22) 0%, rgba(66, 27, 73, 0.14) 100%);
}
.discovery__option.is-active .discovery__option-icon {
	background: var(--brand-secondary);
	color: #fff;
}

.discovery__option-text {
	display: flex;
	flex-direction: column;
	gap: 3px;
	flex: 1;
	min-width: 0;
}
.discovery__option-title {
	font-family: var(--font-display);
	font-size: 15px;
	font-weight: 500;
	color: var(--brand-primary);
	line-height: 1.25;
	letter-spacing: -0.005em;
	overflow-wrap: anywhere;
	word-break: break-word;
}
.discovery__option-desc {
	font-size: 13px;
	color: var(--brand-text);
	font-weight: 300;
	line-height: 1.45;
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* Animated checkmark — appears on the active option. Compact size so it
   sits cleanly in the top-right of the card without crowding text. */
.discovery__option-check {
	position: absolute;
	right: 10px;
	top: 10px;
	transform: scale(0.6);
	transform-origin: top right;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--brand-secondary);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity 200ms var(--ease), transform 240ms var(--ease);
	pointer-events: none;
}
.discovery__option-check svg { width: 13px; height: 13px; }
.discovery__option.is-active .discovery__option-check {
	opacity: 1;
	transform: translateY(-50%) scale(1);
}

.discovery__field-label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--brand-primary);
	margin: 16px 0 8px;
}

/* ============================================================
   Branded month-view calendar + time slot picker
   ============================================================ */

.discovery__cal {
	background: linear-gradient(180deg, #fff 0%, var(--surface-soft, #faf7f4) 100%);
	border: 1px solid rgba(66, 27, 73, 0.08);
	border-radius: 14px;
	padding: 18px;
	margin: 8px 0 18px;
	transition: border-color 200ms var(--ease), box-shadow 200ms var(--ease);
}
.discovery__cal.is-error {
	border-color: #c93030;
	box-shadow: 0 0 0 4px rgba(201, 48, 48, 0.08);
	animation: discCalShake 380ms var(--ease);
}
@keyframes discCalShake {
	0%, 100% { transform: translateX(0); }
	20% { transform: translateX(-4px); }
	60% { transform: translateX(4px); }
}

.discovery__cal-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
}
.discovery__cal-title {
	font-family: var(--font-display);
	font-size: 17px;
	font-weight: 500;
	color: var(--brand-primary);
	letter-spacing: -0.01em;
}
.discovery__cal-arrow {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid rgba(66, 27, 73, 0.12);
	color: var(--brand-primary);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background-color 180ms var(--ease), color 180ms var(--ease), border-color 180ms var(--ease);
}
.discovery__cal-arrow:hover:not(:disabled) {
	background: var(--brand-secondary);
	border-color: var(--brand-secondary);
	color: #fff;
}
.discovery__cal-arrow:disabled {
	opacity: 0.3;
	cursor: not-allowed;
}
.discovery__cal-arrow svg { width: 16px; height: 16px; }

.discovery__cal-weekdays {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 4px;
	margin-bottom: 6px;
}
.discovery__cal-weekday {
	text-align: center;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--brand-primary);
	opacity: 0.55;
	padding: 6px 0;
}

.discovery__cal-grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 4px;
}

.discovery__cal-day {
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 500;
	color: var(--brand-primary);
	background: #fff;
	border: 1px solid rgba(66, 27, 73, 0.06);
	border-radius: 8px;
	cursor: default;
	user-select: none;
	transition: background-color 180ms var(--ease),
		color 180ms var(--ease),
		border-color 180ms var(--ease),
		transform 180ms var(--ease);
}
.discovery__cal-day.is-blank {
	background: transparent;
	border-color: transparent;
}
.discovery__cal-day.is-disabled {
	color: rgba(122, 122, 122, 0.45);
	background: transparent;
	border-color: transparent;
	text-decoration: line-through;
	text-decoration-color: rgba(122, 122, 122, 0.35);
}
button.discovery__cal-day.is-bookable {
	cursor: pointer;
	background: #fff;
}
button.discovery__cal-day.is-bookable:hover {
	background: rgba(201, 86, 28, 0.10);
	border-color: var(--brand-secondary);
	color: var(--brand-primary);
	transform: translateY(-1px);
}
.discovery__cal-day.is-selected {
	background: var(--brand-secondary) !important;
	border-color: var(--brand-secondary) !important;
	color: #fff !important;
	box-shadow: 0 8px 20px rgba(201, 86, 28, 0.32);
}

.discovery__cal-hint {
	margin: 16px 0 0;
	font-size: 12px;
	letter-spacing: 0.06em;
	color: var(--brand-text);
	font-weight: 300;
	font-style: italic;
	text-align: center;
}

.discovery__cal-slots-head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 18px 0 10px;
	padding-top: 14px;
	border-top: 1px dashed rgba(66, 27, 73, 0.12);
	font-size: 13px;
	color: var(--brand-primary);
	font-weight: 500;
}
.discovery__cal-slots-head svg {
	width: 18px;
	height: 18px;
	color: var(--brand-secondary);
}

.discovery__cal-slots {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 6px;
}
@media (min-width: 540px) {
	.discovery__cal-slots { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

.discovery__slot {
	background: #fff;
	border: 1.5px solid rgba(66, 27, 73, 0.10);
	border-radius: 8px;
	padding: 8px 6px;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 500;
	color: var(--brand-primary);
	cursor: pointer;
	transition: all 180ms var(--ease);
	text-align: center;
}
.discovery__slot:hover {
	border-color: var(--brand-secondary);
	background: rgba(201, 86, 28, 0.06);
}
.discovery__slot.is-selected {
	background: var(--brand-secondary);
	border-color: var(--brand-secondary);
	color: #fff;
	box-shadow: 0 6px 14px rgba(201, 86, 28, 0.30);
}

/* Legacy chip styles (kept for any older shortcodes that still use them) */
.discovery__chips {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin-bottom: 16px;
}
@media (min-width: 640px) {
	.discovery__chips { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.discovery__chip {
	background: #fff;
	border: 1.5px solid rgba(66, 27, 73, 0.12);
	border-radius: 10px;
	padding: 10px 12px;
	cursor: pointer;
	font-family: inherit;
	text-align: left;
	display: flex;
	flex-direction: column;
	gap: 2px;
	transition: border-color 200ms var(--ease), background-color 200ms var(--ease);
}
.discovery__chip:hover { border-color: rgba(201, 86, 28, 0.5); }
.discovery__chip.is-active {
	border-color: var(--brand-secondary);
	background: rgba(201, 86, 28, 0.08);
}
.discovery__chip.is-error {
	border-color: #c93030;
	background: rgba(201, 48, 48, 0.05);
}
.discovery__chip strong {
	font-family: var(--font-display);
	font-size: 14px;
	font-weight: 500;
	color: var(--brand-primary);
}
.discovery__chip small {
	font-size: 12px;
	color: var(--brand-text);
	font-weight: 300;
}

.discovery__form {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 6px 0 12px;
}

.discovery__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.discovery__field span {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--brand-primary);
}
.discovery__field input,
.discovery__field textarea {
	font-family: inherit;
	font-size: 15px;
	color: var(--brand-text);
	padding: 12px 14px;
	border: 1.5px solid rgba(66, 27, 73, 0.15);
	border-radius: 10px;
	background: #fff;
	transition: border-color 200ms var(--ease);
	width: 100%;
	font-weight: 400;
}
.discovery__field input:focus,
.discovery__field textarea:focus {
	outline: none;
	border-color: var(--brand-secondary);
}
.discovery__field input.is-error,
.discovery__field textarea.is-error {
	border-color: #c93030;
}

.discovery__field-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}
@media (min-width: 560px) {
	.discovery__field-row { grid-template-columns: 1fr 1fr; }
}

.discovery__share-note {
	margin: 10px 0 0;
	font-size: 12px;
	letter-spacing: 0.04em;
	color: var(--brand-text);
	font-weight: 300;
}

.discovery__actions {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid rgba(66, 27, 73, 0.08);
	flex-wrap: wrap;
}
.discovery__actions--single { justify-content: flex-end; }

.discovery__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border-radius: 10px;
	cursor: pointer;
	border: 1.5px solid transparent;
	transition: background-color 200ms var(--ease), color 200ms var(--ease), border-color 200ms var(--ease);
}
.discovery__btn--primary {
	background: var(--brand-secondary);
	color: #fff;
	border-color: var(--brand-secondary);
}
.discovery__btn--primary:hover {
	background: var(--brand-primary);
	border-color: var(--brand-primary);
}
.discovery__btn--primary[disabled] {
	background: rgba(66, 27, 73, 0.18);
	border-color: rgba(66, 27, 73, 0.18);
	color: #fff;
	cursor: not-allowed;
}
.discovery__btn--ghost {
	background: transparent;
	color: var(--brand-primary);
	border-color: rgba(66, 27, 73, 0.18);
}
.discovery__btn--ghost:hover {
	border-color: var(--brand-secondary);
	color: var(--brand-secondary);
}

.discovery__result-eyebrow {
	display: inline-block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--brand-secondary);
	margin-bottom: 10px;
	border-bottom: 1px solid rgba(201, 86, 28, 0.5);
	padding-bottom: 6px;
}

.discovery__result-title {
	font-family: var(--font-display);
	font-size: clamp(24px, 3vw, 30px);
	font-weight: 500;
	color: var(--brand-primary);
	margin: 0 0 10px;
	line-height: 1.2;
}

.discovery__result-body {
	font-size: 15px;
	line-height: 1.7;
	color: var(--brand-text);
	font-weight: 300;
	margin: 0 0 18px;
}

.discovery__summary {
	background: var(--surface-soft, #faf7f4);
	border: 1px solid rgba(66, 27, 73, 0.08);
	border-radius: 12px;
	padding: 14px 18px;
	margin: 0 0 18px;
}
.discovery__summary-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-size: 14px;
	padding: 4px 0;
	border-bottom: 1px dashed rgba(66, 27, 73, 0.08);
	gap: 14px;
}
.discovery__summary-row:last-child { border-bottom: 0; }
.discovery__summary-row strong {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--brand-primary);
}
.discovery__summary-row span {
	color: var(--brand-text);
	font-weight: 400;
	text-align: right;
}

.discovery__result-actions {
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
	margin-top: 8px;
}
@media (min-width: 560px) {
	.discovery__result-actions { grid-template-columns: 1fr 1fr; }
	.discovery__result-actions .discovery__action--book { grid-column: span 2; }
}

.discovery__action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px 18px;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.04em;
	transition: background-color 200ms var(--ease), color 200ms var(--ease), border-color 200ms var(--ease);
	border: 1.5px solid transparent;
	text-align: center;
}
.discovery__action--book {
	background: var(--brand-secondary);
	color: #fff;
	font-weight: 600;
	border-color: var(--brand-secondary);
	padding: 16px 22px;
	font-size: 15px;
}
.discovery__action--book:hover { background: var(--brand-primary); color: #fff; border-color: var(--brand-primary); }
.discovery__action--wa {
	background: #25D366;
	color: #fff;
	font-weight: 600;
}
.discovery__action--wa:hover { background: #1ebe57; color: #fff; }
.discovery__action--email {
	background: var(--brand-primary);
	color: #fff;
}
.discovery__action--email:hover { background: #2f1135; color: #fff; }
.discovery__action--ical {
	background: transparent;
	color: var(--brand-primary);
	border-color: rgba(66, 27, 73, 0.18);
}
.discovery__action--ical:hover { border-color: var(--brand-secondary); color: var(--brand-secondary); }
.discovery__action--phone {
	background: transparent;
	color: var(--brand-secondary);
	border-color: rgba(201, 86, 28, 0.4);
}
.discovery__action--phone:hover { background: rgba(201, 86, 28, 0.07); color: var(--brand-secondary); }

@media (max-width: 540px) {
	.discovery__dialog { max-height: calc(100dvh - 24px); border-radius: 16px; }
	.discovery__body { padding: 18px 16px; }
	.discovery__header { padding: 16px 50px 14px 16px; }
	.discovery__brand-text small { display: none; }
	.discovery__options { grid-template-columns: 1fr; }
	.discovery__options--6 { grid-template-columns: 1fr; }
	.discovery__actions { flex-direction: column-reverse; }
	.discovery__btn { width: 100%; justify-content: center; }
}

/* =========================================================================
   CONTACT FABS — WhatsApp + Call, stacked above the Compass FAB
   ========================================================================= */
.fab-stack {
	position: fixed;
	right: 20px;
	right: max(20px, env(safe-area-inset-right));
	bottom: 20px;
	bottom: max(20px, env(safe-area-inset-bottom));
	z-index: var(--z-toast);
	display: flex;
	flex-direction: row;
	gap: 12px;
	align-items: center;
}

.fab-contact {
	position: relative;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	text-decoration: none;
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.22), 0 4px 8px rgba(0, 0, 0, 0.12);
	transition: transform 240ms var(--ease), box-shadow 240ms var(--ease), background-color 240ms var(--ease);
	touch-action: manipulation;
}
.fab-contact svg { width: 26px; height: 26px; }
.fab-contact:hover {
	transform: translateY(-3px) scale(1.04);
	box-shadow: 0 18px 36px rgba(0, 0, 0, 0.30), 0 6px 12px rgba(0, 0, 0, 0.16);
}
.fab-contact:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 4px;
}

.fab-contact--wa   { background: #25d366; }
.fab-contact--wa:hover { background: #1ebe5b; }
.fab-contact--call { background: var(--brand-secondary); }
.fab-contact--call:hover { background: var(--brand-primary); }

/* Subtle one-time pulse ring to draw the eye on first paint */
.fab-contact::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 2px solid currentColor;
	opacity: 0.5;
	animation: fab-contact-pulse 2.8s ease-out infinite;
	pointer-events: none;
}
@keyframes fab-contact-pulse {
	0%   { opacity: 0.55; transform: scale(1); }
	70%  { opacity: 0;    transform: scale(1.35); }
	100% { opacity: 0;    transform: scale(1.35); }
}
.fab-contact--call::before { animation-delay: 1.4s; }

/* Tooltip label that appears on hover */
.fab-contact__tip {
	position: absolute;
	right: calc(100% + 10px);
	top: 50%;
	transform: translate(8px, -50%);
	background: var(--brand-primary);
	color: #fff;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.02em;
	padding: 7px 12px;
	border-radius: 6px;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	transition: opacity 200ms var(--ease), transform 200ms var(--ease), visibility 0s linear 200ms;
	pointer-events: none;
}
.fab-contact__tip::after {
	content: "";
	position: absolute;
	left: 100%;
	top: 50%;
	transform: translateY(-50%);
	border: 5px solid transparent;
	border-left-color: var(--brand-primary);
}
.fab-contact:hover .fab-contact__tip,
.fab-contact:focus-visible .fab-contact__tip {
	opacity: 1;
	visibility: visible;
	transform: translate(0, -50%);
	transition: opacity 200ms var(--ease), transform 200ms var(--ease), visibility 0s linear 0s;
}

@media (max-width: 640px) {
	.fab-contact { width: 50px; height: 50px; }
	.fab-contact svg { width: 22px; height: 22px; }
	.fab-contact__tip { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.fab-contact,
	.fab-contact::before { animation: none !important; transition: none !important; }
}
