/**
 * Smiles by Choice — site-specific styles.
 *
 * Loaded by sbc-theme-custom.php. Theme-independent: safe across theme
 * switches and Hello Elementor parent updates.
 */

/* Tooltip: desktop affordance only. Touch devices get the modal instead. */
@media (hover: hover) and (pointer: fine) {
	/**
	 * External-site disclaimer tooltip.
	 *
	 * Any link inside an element with the .disclaimer-modal class shows a tooltip
	 * on hover/focus. Override the text per-element with data-disclaimer="...".
	 */
	.disclaimer-modal {
		--disclaimer-tooltip-bg: #0067AB;
		--disclaimer-tooltip-color: #fff;
	}

	.disclaimer-modal a {
		position: relative;
	}

	.disclaimer-modal a::after,
	.disclaimer-modal a::before {
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity 0.15s ease, visibility 0.15s ease;
		position: absolute;
		top: 120%;
		left: 50%;
		z-index: 999;
	}

	.disclaimer-modal a::after {
		content: "This leads to Modento, an external site";
		transform: translate(-50%, -8px);
		width: max-content;
		max-width: 200px;
		padding: 8px 12px;
		border-radius: 6px;
		background: var(--disclaimer-tooltip-bg);
		color: var(--disclaimer-tooltip-color);
		font-size: 13px;
		line-height: 1.4;
		font-weight: 400;
		text-align: center;
		white-space: normal;
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
	}

	.disclaimer-modal a[data-disclaimer]::after {
		content: attr(data-disclaimer);
	}

	/* Arrow — sits between the link and the tooltip box, pointing up. */
	.disclaimer-modal a::before {
		content: "";
		transform: translate(-50%, -20px);
		border: 6px solid transparent;
		border-bottom-color: var(--disclaimer-tooltip-bg);
	}

	.disclaimer-modal a:hover::after,
	.disclaimer-modal a:hover::before,
	.disclaimer-modal a:focus-visible::after,
	.disclaimer-modal a:focus-visible::before {
		opacity: 1;
		visibility: visible;
	}

	/* Elementor containers often clip overflow — let the tooltip escape. */
	.disclaimer-modal,
	.disclaimer-modal .elementor-widget-container {
		overflow: visible;
	}
}

/* -------------------------------------------------------------------------
 * Third-party external link interstitial.
 *
 * Markup is injected by assets/js/custom.js. Modelled on the CMS Design
 * System "Third-party external link" pattern.
 * ---------------------------------------------------------------------- */
.sbc-disclaimer {
	--sbc-modal-accent: #0067AB;
	--sbc-modal-surface: #fff;
	--sbc-modal-ink: #1f2124;

	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}

.sbc-disclaimer[hidden] {
	display: none;
}

.sbc-disclaimer__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
}

.sbc-disclaimer__dialog {
	position: relative;
	width: 100%;
	max-width: 640px;
	max-height: calc(100vh - 40px);
	overflow-y: auto;
	padding: 32px 40px 40px;
	background: var(--sbc-modal-surface);
	color: var(--sbc-modal-ink);
	border-radius: 4px;
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.28);
	text-align: left;
}

.sbc-disclaimer__title {
	margin: 0 48px 20px 0;
	font-size: 28px;
	line-height: 1.25;
	font-weight: 700;
	color: var(--sbc-modal-ink);
}

.sbc-disclaimer__body {
	margin: 0 0 28px;
	font-size: 18px;
	line-height: 1.55;
}

.sbc-disclaimer__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 28px;
}

.sbc-disclaimer__continue {
	padding: 12px 28px;
	border: 1px solid var(--sbc-modal-accent);
	border-radius: 4px;
	background: var(--sbc-modal-accent);
	color: #fff;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
}

.sbc-disclaimer__continue:hover {
	background: #00558f;
	border-color: #00558f;
}

.sbc-disclaimer__cancel {
	padding: 12px 4px;
	border: 0;
	background: none;
	color: var(--sbc-modal-accent);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.2;
	text-decoration: underline;
	cursor: pointer;
}

.sbc-disclaimer__cancel:hover {
	color: #00558f;
}

.sbc-disclaimer__close {
	position: absolute;
	top: 24px;
	right: 24px;
	width: 40px;
	height: 40px;
	padding: 8px;
	border: 0;
	background: none;
	color: var(--sbc-modal-ink);
	cursor: pointer;
	line-height: 0;
}

.sbc-disclaimer__close svg {
	width: 100%;
	height: 100%;
}

.sbc-disclaimer__continue:focus-visible,
.sbc-disclaimer__cancel:focus-visible,
.sbc-disclaimer__close:focus-visible {
	outline: 3px solid #bd13b8;
	outline-offset: 2px;
}

/* Lock background scrolling while the dialog is open. */
body.sbc-disclaimer-open {
	overflow: hidden;
}

@media (max-width: 600px) {
	.sbc-disclaimer__dialog {
		padding: 24px 20px 28px;
	}

	.sbc-disclaimer__title {
		margin-right: 40px;
		font-size: 22px;
	}

	.sbc-disclaimer__body {
		font-size: 16px;
	}

	.sbc-disclaimer__actions {
		gap: 16px 20px;
	}

	.sbc-disclaimer__continue,
	.sbc-disclaimer__cancel {
		font-size: 16px;
	}
}
