/*
 * Link Tooltip — default styles.
 * Every selector is wrapped in :where() (zero specificity) so any rule in
 * Bricks custom CSS overrides it without !important.
 */

:where(.link-tooltip) {
	--lt-bg: #1e1e1e;
	--lt-color: #fff;
	--lt-link-color: #9ecbff;
	--lt-radius: 6px;
	--lt-padding: 0.75em 1em;
	--lt-width: 280px;
	--lt-offset: 10px;
	--lt-arrow-size: 6px;
	--lt-font-size: 0.875rem;
	--lt-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
	--lt-z: 1000;
	--lt-delay: 150ms;

	position: relative;
	display: inline;
}

:where(.link-tooltip__bubble) {
	position: absolute;
	z-index: var(--lt-z);
	display: block;
	box-sizing: border-box;
	width: max-content;
	max-width: min(var(--lt-width), 90vw);
	padding: var(--lt-padding);
	border-radius: var(--lt-radius);
	background: var(--lt-bg);
	color: var(--lt-color);
	box-shadow: var(--lt-shadow);
	font-size: var(--lt-font-size);
	font-weight: normal;
	font-style: normal;
	line-height: 1.45;
	text-align: left;
	white-space: normal;
	opacity: 0;
	visibility: hidden;
	transition: opacity 120ms ease, visibility 0s linear 120ms;
}

/* Hover bridge: fills the gap so the pointer can travel into the bubble. */
:where(.link-tooltip__bubble)::before {
	content: "";
	position: absolute;
}

/* Arrow. */
:where(.link-tooltip__bubble)::after {
	content: "";
	position: absolute;
	border: var(--lt-arrow-size) solid transparent;
}

:where(.link-tooltip__text),
:where(.link-tooltip__more) {
	display: block;
}

:where(.link-tooltip__more) {
	margin-top: 0.5em;
	color: var(--lt-link-color);
	font-weight: 600;
	text-decoration: underline;
}

/* Show. */
:where(.link-tooltip:hover, .link-tooltip:focus-within) > :where(.link-tooltip__bubble) {
	opacity: 1;
	visibility: visible;
	transition-delay: var(--lt-delay), 0s;
}

/* Dismissed with Escape (frontend.js). Must stay after the show rule. */
:where(.link-tooltip.is-dismissed) > :where(.link-tooltip__bubble) {
	opacity: 0;
	visibility: hidden;
	transition: none;
}

/* ---- Top ---- */
:where(.link-tooltip--top) > :where(.link-tooltip__bubble) {
	bottom: calc(100% + var(--lt-offset));
	left: 50%;
	transform: translateX(-50%);
}
:where(.link-tooltip--top) > :where(.link-tooltip__bubble)::before {
	top: 100%;
	left: 0;
	right: 0;
	height: calc(var(--lt-offset) + 2px);
}
:where(.link-tooltip--top) > :where(.link-tooltip__bubble)::after {
	top: 100%;
	left: 50%;
	margin-left: calc(var(--lt-arrow-size) * -1);
	border-top-color: var(--lt-bg);
}

/* ---- Bottom ---- */
:where(.link-tooltip--bottom) > :where(.link-tooltip__bubble) {
	top: calc(100% + var(--lt-offset));
	left: 50%;
	transform: translateX(-50%);
}
:where(.link-tooltip--bottom) > :where(.link-tooltip__bubble)::before {
	bottom: 100%;
	left: 0;
	right: 0;
	height: calc(var(--lt-offset) + 2px);
}
:where(.link-tooltip--bottom) > :where(.link-tooltip__bubble)::after {
	bottom: 100%;
	left: 50%;
	margin-left: calc(var(--lt-arrow-size) * -1);
	border-bottom-color: var(--lt-bg);
}

/* ---- Left ---- */
:where(.link-tooltip--left) > :where(.link-tooltip__bubble) {
	right: calc(100% + var(--lt-offset));
	top: 50%;
	transform: translateY(-50%);
}
:where(.link-tooltip--left) > :where(.link-tooltip__bubble)::before {
	left: 100%;
	top: 0;
	bottom: 0;
	width: calc(var(--lt-offset) + 2px);
}
:where(.link-tooltip--left) > :where(.link-tooltip__bubble)::after {
	left: 100%;
	top: 50%;
	margin-top: calc(var(--lt-arrow-size) * -1);
	border-left-color: var(--lt-bg);
}

/* ---- Right ---- */
:where(.link-tooltip--right) > :where(.link-tooltip__bubble) {
	left: calc(100% + var(--lt-offset));
	top: 50%;
	transform: translateY(-50%);
}
:where(.link-tooltip--right) > :where(.link-tooltip__bubble)::before {
	right: 100%;
	top: 0;
	bottom: 0;
	width: calc(var(--lt-offset) + 2px);
}
:where(.link-tooltip--right) > :where(.link-tooltip__bubble)::after {
	right: 100%;
	top: 50%;
	margin-top: calc(var(--lt-arrow-size) * -1);
	border-right-color: var(--lt-bg);
}

@media (prefers-reduced-motion: reduce) {
	:where(.link-tooltip__bubble) {
		transition: none;
	}
}
