/**
 * Gambit Modal — minimal accessible modal styles.
 * Used by the hero --visual safety-info popover and reusable across the site.
 */

.gambit-modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: clamp(16px, 4vw, 32px);
}

.gambit-modal[hidden] {
	display: none;
}

.gambit-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(10, 10, 12, 0.72);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	opacity: 0;
	transition: opacity 0.2s var(--ease-out-expo, ease-out);
}

.gambit-modal.is-open .gambit-modal__backdrop {
	opacity: 1;
}

.gambit-modal__panel {
	position: relative;
	max-width: 720px;
	width: 100%;
	max-height: calc(100vh - 64px);
	overflow-y: auto;
	background: var(--surface-elevated, #232328);
	color: var(--warm-white, #F7F5F2);
	border: 1px solid var(--warm-white-8, rgba(247, 245, 242, 0.08));
	border-radius: 20px;
	padding: clamp(28px, 4vw, 44px);
	box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.55);
	transform: translateY(8px);
	opacity: 0;
	transition:
		transform 0.25s var(--ease-out-expo, ease-out),
		opacity 0.25s var(--ease-out-expo, ease-out);
}

.gambit-modal.is-open .gambit-modal__panel {
	transform: translateY(0);
	opacity: 1;
}

.gambit-modal__close {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	color: rgba(247, 245, 242, 0.7);
	border: 1px solid var(--warm-white-8, rgba(247, 245, 242, 0.08));
	border-radius: 999px;
	cursor: pointer;
	padding: 0;
	transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.gambit-modal__close:hover {
	color: var(--warm-white, #F7F5F2);
	border-color: rgba(247, 245, 242, 0.22);
	background: rgba(247, 245, 242, 0.04);
}

.gambit-modal__close:focus-visible {
	outline: 2px solid var(--signal-red, #C43D2F);
	outline-offset: 2px;
}

.gambit-modal__title {
	font-family: var(--font-heading, "General Sans", sans-serif);
	font-size: clamp(20px, 2.4vw, 24px);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.2;
	margin: 0 40px 16px 0;
	color: var(--warm-white, #F7F5F2);
}

.gambit-modal__body {
	font-family: var(--font-body, "Inter", sans-serif);
	font-size: 15px;
	line-height: 1.6;
	color: rgba(247, 245, 242, 0.82);
}

.gambit-modal__body p {
	margin: 0 0 14px;
}

.gambit-modal__body p:last-child {
	margin-bottom: 0;
}

.gambit-modal__body strong {
	color: var(--warm-white, #F7F5F2);
	font-weight: 600;
}

.gambit-modal__body ul {
	margin: 6px 0 18px;
	padding-left: 22px;
}

.gambit-modal__body ul:last-child {
	margin-bottom: 0;
}

.gambit-modal__body li {
	margin-bottom: 6px;
}

.gambit-modal__body li:last-child {
	margin-bottom: 0;
}

/* Light-mode panel — fires when the body class allowlist matches
   (weight-loss / women's-health pages). Modal renders inside <body>,
   so `.is-program-light` cascades. Dark-surface pages are unaffected. */
.is-program-light .gambit-modal__panel {
	background: var(--warm-white, #F7F5F2);
	color: var(--deep-charcoal, #1A1A1E);
	border-color: rgba(26, 26, 30, 0.10);
	box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.18);
}

.is-program-light .gambit-modal__title {
	color: var(--deep-charcoal, #1A1A1E);
}

.is-program-light .gambit-modal__body {
	color: rgba(26, 26, 30, 0.78);
}

.is-program-light .gambit-modal__body strong {
	color: var(--deep-charcoal, #1A1A1E);
}

.is-program-light .gambit-modal__close {
	color: rgba(26, 26, 30, 0.7);
	border-color: rgba(26, 26, 30, 0.10);
}

.is-program-light .gambit-modal__close:hover {
	color: var(--deep-charcoal, #1A1A1E);
	border-color: rgba(26, 26, 30, 0.22);
	background: rgba(26, 26, 30, 0.04);
}

html.gambit-modal-open {
	overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
	.gambit-modal__backdrop,
	.gambit-modal__panel {
		transition: none;
	}
}
