/* Aquarius Intuitive: component styles. Tokens (colors, type, spacing) come from theme.json. Mobile-first. */

/* ---------- Header: sticky, hides on scroll down, returns on scroll up (assets/js/site.js) ---------- */
.wp-site-blocks > header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
	transition: transform 0.25s ease;
}
@media (max-width: 600px) {
	/* The admin bar scrolls away on phones, so don't leave a gap for it. */
	.wp-site-blocks > header {
		top: 0;
	}
}
/* With JS on, the header keeps its full-size slot in the page, so the compact bar never shifts content. */
.has-sticky-header .wp-site-blocks > header {
	height: var(--header-h, auto);
	pointer-events: none;
}
.wp-site-blocks > header.is-hidden {
	transform: translateY(-110%);
}
@media (prefers-reduced-motion: reduce) {
	.wp-site-blocks > header {
		transition: none;
	}
}
.site-header {
	pointer-events: auto;
	background: var(--wp--preset--color--surface);
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	--wp--style--block-gap: 0;
	transition: box-shadow 0.25s ease;
}
.site-header > *,
.site-header__inner > * {
	margin-block: 0;
}
/* Phones: logo and menu button on the first row, socials underneath. Wider screens: the logo spans the full header height with socials above the menu. */
.site-header__inner {
	--logo-h: clamp(46px, 13.5vw, 80px);
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: "logo nav" "social social";
	align-items: center;
	column-gap: 1rem;
	max-width: 75rem;
	margin-inline: auto;
	padding: 0 1rem;
}
.site-header__inner > .wp-block-site-logo {
	grid-area: logo;
	/* Sit at the very top of the header, even though the socials share its row: the logo sets the header height. */
	align-self: start;
}
.site-header__inner > .header-social {
	grid-area: social;
	padding: 0.3rem 0 0.4rem;
}
.site-header__inner > .wp-block-navigation {
	grid-area: nav;
	justify-self: end;
}
.header-social .wp-block-social-links {
	justify-content: center;
	gap: 0.85rem;
	font-size: 18px;
	/* Core adds 1em above and below the list; that padding made the social row taller than it looks and pushed the logo off the top edge. */
	margin: 0;
}
@media (min-width: 782px) {
	.site-header__inner {
		grid-template-columns: auto minmax(0, 1fr);
		grid-template-areas: "logo social" "logo nav";
	}
	.site-header__inner > .header-social {
		padding: 0.5rem 0 0;
	}
	.header-social .wp-block-social-links {
		justify-content: flex-end;
	}
}
/* Logo: fills the header height and touches the top edge; the PNG's transparent margins are cropped away. Its width follows --logo-h. */
.site-header .wp-block-site-logo {
	--logo-w: calc(var(--logo-h) / 0.15);
	margin: 0;
	padding: 0;
	line-height: 0;
	width: calc(var(--logo-w) * 0.757);
	height: var(--logo-h);
	overflow: hidden;
}
/* Full-size header only: a little air above (5px) and below (10px) the logo. The compact bar stays tight. */
.wp-site-blocks > header:not(.is-compact) .site-header .wp-block-site-logo {
	margin-top: 5px;
	margin-bottom: 10px;
}
.site-header .wp-block-site-logo a {
	display: block;
}
.site-header .wp-block-site-logo img {
	display: block;
	width: var(--logo-w);
	max-width: none;
	height: auto;
	margin-left: calc(var(--logo-w) * -0.19);
	margin-top: calc(var(--logo-w) * -0.0133);
}
/* Compact bar (the header on scroll up): about a third of the full height, with a smaller logo, socials and a menu button. */
.is-compact .site-header {
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
}
.is-compact .site-header__inner {
	--logo-h: 32px;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas: "logo social nav";
	align-items: center;
	column-gap: 0.75rem;
	padding-block: 0;
}
.is-compact .site-header__inner > .header-social {
	padding: 0;
}
.is-compact .header-social .wp-block-social-links {
	justify-content: flex-end;
	font-size: 14px;
	gap: 0.5rem;
}
.is-compact .site-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
	display: none;
}
.is-compact .site-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
	display: flex;
}
@media (max-width: 440px) {
	.is-compact .site-header__inner {
		column-gap: 0.5rem;
		padding-inline: 0.75rem;
	}
	.is-compact .header-social .wp-block-social-links {
		font-size: 12px;
		gap: 0.3rem;
	}
	.is-compact .header-social .wp-social-link:nth-child(n + 7) {
		display: none;
	}
}
.site-header .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--surface);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 0.75rem;
	padding: 0.5rem;
}
/* Switch to the hamburger below 1200px (core's default breakpoint is 600px): six top-level items plus the tall logo need that much room. */
@media (min-width: 1200px) {
	.site-header .wp-block-navigation__container {
		gap: 0.4rem 0.9rem;
	}
	.site-header .wp-block-navigation {
		font-size: 0.875rem;
	}
}
@media (min-width: 600px) and (max-width: 1199.98px) {
	.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none;
	}
	.site-header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
}

/* ---------- Social icons ---------- */
/* Single-color icons (core's "logos only" style uses each brand's own color; TikTok would vanish on dark). */
.wp-block-social-links.is-style-logos-only .wp-social-link[class] {
	color: var(--wp--preset--color--contrast);
}
.wp-block-social-links .wp-social-link a {
	transition: color 0.2s ease;
}
.wp-block-social-links.is-style-logos-only .wp-social-link[class]:hover {
	color: var(--wp--preset--color--accent);
}
.site-footer .wp-block-social-links {
	font-size: 26px;
	gap: 1rem;
}
/* Brand logos core doesn't ship: the link block's icon is swapped for the logo (simple-icons, CC0). */
.wp-social-link-chain a[href*="substack.com"] { --i: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M22.539%208.242H1.46V5.406h21.08v2.836zM1.46%2010.812V24L12%2018.11%2022.54%2024V10.812H1.46zM22.54%200H1.46v2.836h21.08V0z%22%2F%3E%3C%2Fsvg%3E"); }
.wp-social-link-chain a[href*="slideshare.net"] { --i: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M3.222.21C1.762.21%201.06%201.337%201.06%202.497v7.883c-.53-.502-1.096-.15-1.058.295.038.439.59%201.546%201.436%202.517.843.968%201.924%201.776%202.94%202.268a11.19%2011.19%200%2000-.491%203.598c.09%201.096.378%201.95.903%202.75.918%201.407%202.32%201.985%203.674%201.985%201.209%200%202.494-.563%202.698-2.373v-4.694c1.308.552%203.47.363%204.47-.39.19-.14.326-.207.416-.113.095.09.106.166-.113.439a5.6%205.6%200%2001-3.103%201.965l.008%202.72a2.532%202.532%200%20002.543%202.446c1.64.015%202.48-.556%203.148-1.164.632-.567%201.399-1.754%201.558-3.243a10.128%2010.128%200%2000-.454-3.926%2010.358%2010.358%200%20002.948-2.268C23.213%2012.5%2024%2011.185%2024%2010.675c0-.51-.556-.782-1.036-.302V2.497c0-.824-.48-2.29-2.135-2.29zm.423%201.35H20.41c.756%200%201.17.28%201.17%201.224v8.904a8.73%208.73%200%2001-3.555%201.534c-1.606.352-2.94.087-3.666.148-.718.06-1.428.529-1.296%201.79-.491-.154-1.236-.683-1.682-1.117-.438-.428-.87-.711-1.534-.692-1.013.03-1.663.102-2.57.01a9.656%209.656%200%2001-4.838-1.786V2.78c0-.87.378-1.22%201.206-1.22zm4.497%204.988a2.994%202.994%200%20100%205.987%202.993%202.993%200%20000-5.983zm7.71%200a2.994%202.994%200%20100%205.987%202.993%202.993%200%20000-5.983z%22%2F%3E%3C%2Fsvg%3E"); }
.wp-social-link-chain a[href*="mix.com"] { --i: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M.001%200v21.61c0%201.32%201.074%202.39%202.4%202.39a2.396%202.396%200%200%200%202.402-2.39V8.54c0%20.014-.005.026-.006.04V6.364a2.395%202.395%200%200%201%202.399-2.393%202.396%202.396%200%200%201%202.398%202.393v9.356a2.394%202.394%200%200%200%202.398%202.393%202.394%202.394%200%200%200%202.398-2.39v-3.692a2.398%202.398%200%200%201%202.385-2.078%202.4%202.4%200%200%201%202.41%202.389v1.214a2.397%202.397%200%200%200%202.408%202.389%202.399%202.399%200%200%200%202.406-2.39V.006a4.61%204.61%200%200%200-.145-.004c-1.31%200-2.558.264-3.693.74A9.449%209.449%200%200%201%2023.841%200z%22%2F%3E%3C%2Fsvg%3E"); }
.wp-social-link-chain a[href*="substack.com"] svg,
.wp-social-link-chain a[href*="slideshare.net"] svg,
.wp-social-link-chain a[href*="mix.com"] svg {
	display: none;
}
.wp-social-link-chain a[href*="substack.com"]::before,
.wp-social-link-chain a[href*="slideshare.net"]::before,
.wp-social-link-chain a[href*="mix.com"]::before {
	content: "";
	display: block;
	width: 1em;
	height: 1em;
	background: currentColor;
	-webkit-mask: var(--i) center / contain no-repeat;
	mask: var(--i) center / contain no-repeat;
}

/* ---------- Homepage hero video (poster shows after the clip ends) ---------- */
.hero-video {
	margin: 0;
	background: #000 url("https://aquariusintuitive.com/wp-content/uploads/2026/07/Gemini_Generated_Image_h17sq0h17sq0h17s-scaled.png") center / contain no-repeat;
}
.hero-video video {
	display: block;
	width: 100%;
	height: auto;
	animation: hero-video-hide 0.1s ease-in-out 33s forwards;
}
@keyframes hero-video-hide {
	to {
		opacity: 0;
		visibility: hidden;
	}
}

/* ---------- Grids: never wider than the screen (core's min(18rem,100%) can stretch on phones) ---------- */
.wp-block-post-template.is-layout-grid {
	grid-template-columns: repeat(auto-fill, minmax(min(18rem, calc(100vw - 3rem)), 1fr));
}
.wp-block-group.is-layout-grid {
	grid-template-columns: repeat(auto-fill, minmax(min(16rem, calc(100vw - 3rem)), 1fr));
}
.wp-block-post-template.is-layout-grid > li,
.wp-block-group.is-layout-grid > * {
	min-width: 0;
}

/* ---------- Cards (blog grid, Explore) ---------- */
.card {
	background: var(--wp--preset--color--surface);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 1rem;
	overflow: hidden;
	height: 100%;
	transition: transform 0.2s ease, border-color 0.2s ease;
}
.card:hover {
	border-color: var(--wp--preset--color--accent);
}
@media (prefers-reduced-motion: no-preference) {
	.card:hover {
		transform: translateY(-2px);
	}
}
.card .wp-block-post-featured-image {
	margin: 0;
}
.card .wp-block-post-featured-image img {
	display: block;
	width: 100%;
}
.card-body {
	padding: var(--wp--preset--spacing--30);
}
.card a {
	color: inherit;
	text-decoration: none;
}
.card a:hover {
	color: var(--wp--preset--color--accent);
}

/* ---------- Layout niceties ---------- */
.wp-block-post-content {
	overflow-wrap: anywhere;
}
.wp-block-post-content img,
.wp-block-post-content video {
	max-width: 100%;
	height: auto;
}
.wp-block-post-content iframe {
	max-width: 100%;
}
.wp-block-post-content pre,
.wp-block-post-content table {
	max-width: 100%;
	overflow-x: auto;
}
.wp-site-blocks > * {
	margin-block-start: 0;
}
.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}
:where(a, button, summary, input, textarea):focus-visible {
	outline: 2px solid var(--wp--preset--color--sage);
	outline-offset: 3px;
}

/* ---------- Search box (404, results page) ---------- */
.wp-block-search .wp-block-search__inside-wrapper {
	background: var(--wp--preset--color--surface);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 999px;
	padding: 0.3rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.wp-block-search .wp-block-search__inside-wrapper:focus-within {
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 0 0 4px rgba(207, 64, 96, 0.22);
}
.wp-block-search .wp-block-search__input {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--contrast);
	padding: 0.6rem 1.1rem;
	min-width: 0;
	outline: none;
}
.wp-block-search .wp-block-search__input::placeholder {
	color: var(--wp--preset--color--muted);
}
.wp-block-search .wp-block-search__button {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	border: 0;
	border-radius: 999px;
	padding: 0.6rem 1.4rem;
	font-weight: 600;
	margin: 0;
	cursor: pointer;
}
.wp-block-search .wp-block-search__button:hover {
	background: var(--wp--preset--color--blush);
	color: var(--wp--preset--color--base);
}

/* ---------- 404 ---------- */
.error-404 {
	position: relative;
	overflow: hidden;
	min-height: 75vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-align: center;
	padding-block: var(--wp--preset--spacing--60);
	background:
		radial-gradient(1.5px 1.5px at 12% 22%, #fff, transparent),
		radial-gradient(1px 1px at 28% 68%, #fff, transparent),
		radial-gradient(1.5px 1.5px at 44% 14%, var(--wp--preset--color--sage), transparent),
		radial-gradient(1px 1px at 63% 82%, #fff, transparent),
		radial-gradient(1.5px 1.5px at 78% 30%, #fff, transparent),
		radial-gradient(1px 1px at 91% 64%, var(--wp--preset--color--blush), transparent),
		radial-gradient(60rem 28rem at 50% -5%, rgba(207, 64, 96, 0.3), transparent 65%),
		radial-gradient(40rem 22rem at 95% 105%, rgba(178, 199, 181, 0.18), transparent 65%),
		var(--wp--preset--color--base);
}
.error-404__code {
	margin: 0;
	font-size: clamp(6.5rem, 30vw, 17rem);
	font-weight: 800;
	line-height: 0.9;
	letter-spacing: -0.04em;
	background: linear-gradient(135deg, var(--wp--preset--color--accent), var(--wp--preset--color--blush) 55%, var(--wp--preset--color--sage));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	filter: drop-shadow(0 0 40px rgba(207, 64, 96, 0.35));
}

/* ---------- Newsletter (Mailchimp for WP) ---------- */
.footer-newsletter .mc4wp-form-fields {
	display: grid;
	gap: 0.6rem;
}
.footer-newsletter .mc4wp-form-fields p {
	margin: 0;
}
.footer-newsletter label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
.footer-newsletter input[type="email"],
.footer-newsletter input[type="tel"],
.footer-newsletter input[type="text"] {
	width: 100%;
	box-sizing: border-box;
	background: var(--wp--preset--color--base);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 999px;
	color: var(--wp--preset--color--contrast);
	padding: 0.75rem 1.1rem;
	font: inherit;
}
.footer-newsletter input:not([type="submit"]):focus {
	border-color: var(--wp--preset--color--accent);
	outline: none;
}
.footer-newsletter input[type="submit"] {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	border: 0;
	border-radius: 999px;
	padding: 0.75rem 1.4rem;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.footer-newsletter input[type="submit"]:hover {
	background: var(--wp--preset--color--blush);
	color: var(--wp--preset--color--base);
}
.footer-newsletter .mc4wp-response {
	margin-top: 0.75rem;
	font-size: var(--wp--preset--font-size--small);
}
.footer-newsletter .mc4wp-alert {
	border-radius: 0.75rem;
	padding: 0.6rem 0.9rem;
	border: 1px solid var(--wp--preset--color--sage);
}
.footer-newsletter .mc4wp-error {
	border-color: var(--wp--preset--color--accent);
}

/* ---------- Contact dialog (Contact Form 7 inside a native <dialog>) ---------- */
.contact-dialog {
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 1.25rem;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
	width: min(36rem, calc(100vw - 2rem));
	max-height: calc(100dvh - 2rem);
	overflow: auto;
	overscroll-behavior: contain;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6);
}
.contact-dialog::backdrop {
	background: rgba(10, 12, 14, 0.78);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}
.contact-dialog[open] {
	animation: dialog-in 0.22s ease-out;
}
@keyframes dialog-in {
	from {
		opacity: 0;
		transform: translateY(12px) scale(0.98);
	}
}
@media (prefers-reduced-motion: reduce) {
	.contact-dialog[open] {
		animation: none;
	}
}
.contact-dialog__inner {
	position: relative;
	padding: clamp(1.25rem, 4vw, 2rem);
	background: radial-gradient(28rem 14rem at 100% 0%, rgba(207, 64, 96, 0.16), transparent 70%);
}
.contact-dialog__close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.18);
	background: transparent;
	color: inherit;
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
}
.contact-dialog__close:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}
.contact-dialog__title {
	margin: 0 2.5rem 0.25rem 0;
	font-size: var(--wp--preset--font-size--x-large);
}
.contact-dialog__lede {
	margin: 0 0 1.25rem;
	color: var(--wp--preset--color--muted);
}
.contact-dialog .wpcf7 br {
	display: none;
}
.contact-dialog .wpcf7 p {
	margin: 0;
}
.contact-dialog .ai-form-row {
	display: grid;
	gap: 0;
}
@media (min-width: 560px) {
	.contact-dialog .ai-form-row {
		grid-template-columns: 1fr 1fr;
		gap: 1rem;
	}
}
.contact-dialog .ai-form-group {
	margin-bottom: 1rem;
}
.contact-dialog .ai-form-label {
	display: block;
	margin-bottom: 0.4rem;
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--sage);
}
.contact-dialog .wpcf7-form-control-wrap {
	display: block;
}
.contact-dialog .ai-input,
.contact-dialog .ai-textarea {
	width: 100%;
	box-sizing: border-box;
	background: var(--wp--preset--color--base);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 0.75rem;
	padding: 0.8rem 1rem;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.contact-dialog .ai-textarea {
	min-height: 7rem;
	resize: vertical;
}
.contact-dialog .ai-input:focus,
.contact-dialog .ai-textarea:focus {
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 0 0 4px rgba(207, 64, 96, 0.2);
	outline: none;
}
.contact-dialog .ai-submit-btn {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	border: 0;
	border-radius: 999px;
	padding: 0.8rem 1.8rem;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}
.contact-dialog .ai-submit-btn:hover {
	background: var(--wp--preset--color--blush);
	color: var(--wp--preset--color--base);
}
.contact-dialog .wpcf7-spinner {
	margin: 0 0 0 0.75rem;
}
.contact-dialog .wpcf7-not-valid-tip {
	margin-top: 0.3rem;
	font-size: 0.85rem;
	color: #ff9db0;
}
.contact-dialog .wpcf7 form .wpcf7-response-output {
	margin: 1rem 0 0;
	padding: 0.75rem 1rem;
	border: 1px solid var(--wp--preset--color--sage);
	border-radius: 0.75rem;
}
.contact-dialog .wpcf7 form.invalid .wpcf7-response-output,
.contact-dialog .wpcf7 form.failed .wpcf7-response-output {
	border-color: var(--wp--preset--color--accent);
}
.contact-dialog label.ai-form-group {
	display: block;
}
.contact-dialog .ai-form-label em {
	margin-left: 0.4rem;
	font-style: normal;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wp--preset--color--muted);
}
/* Stop the page scrolling behind the dialog. */
html:has(.contact-dialog[open]) {
	overflow: hidden;
}
/* Phones: the dialog becomes a full-screen sheet that scrolls, with the close button pinned so the whole form is reachable. */
@media (max-width: 600px) {
	.contact-dialog {
		width: 100%;
		max-width: 100%;
		height: 100dvh;
		max-height: 100dvh;
		margin: 0;
		border: 0;
		border-radius: 0;
	}
	.contact-dialog__inner {
		min-height: 100%;
		padding: 4rem 1.25rem calc(2rem + env(safe-area-inset-bottom));
		box-sizing: border-box;
	}
	.contact-dialog__close {
		position: fixed;
		z-index: 2;
		background: var(--wp--preset--color--surface);
	}
	.contact-dialog .ai-textarea {
		min-height: 9rem;
	}
	.contact-dialog .ai-submit-btn {
		width: 100%;
	}
}
/* The free full access sign-in in the contact dialog (site.js 4): the form fills the dialog. */
.join-dialog .member-access {
	max-width: none;
	margin: 0;
}
.join-dialog .badge {
	margin-top: 0;
}
.join-dialog .ai-submit-btn {
	width: 100%;
}
/* The same sign-in on the Tsiyon pages (#tg-gate, inc/tsiyon-grid.php): the top never clips on short screens,
   and on phones it is the same full-screen sheet as the contact dialog, so the whole form is reachable. */
html body.tg-js:not(.logged-in) #tg-gate {
	align-items: flex-start;
}
@media (max-width: 600px) {
	html body.tg-js:not(.logged-in) #tg-gate {
		padding: 0;
	}
	html body #tg-gate .tg-modal__box {
		max-width: 100%;
		min-height: 100dvh;
		margin: 0;
		border: 0;
		border-radius: 0;
		padding: 4rem 1.25rem calc(2rem + env(safe-area-inset-bottom));
		box-sizing: border-box;
	}
	html body #tg-gate .tg-modal__close {
		position: fixed;
		top: 0.5rem;
		right: 0.6rem;
		z-index: 2;
		background: var(--wp--preset--color--surface);
	}
	html body #tg-gate .ai-submit-btn {
		width: 100%;
	}
}

/* ---------- Section rail and bar (inc/section-rail.php, site.js 5; design.yml layout.section_nav) ----------
   Where the page leaves room on the left (html.section-nav-rail, measured by site.js), the rail floats there;
   otherwise a slim bar sits at the bottom and opens the same list as a sheet. */
.section-rail,
.section-bar {
	position: fixed;
	z-index: 40;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0s linear 0.25s;
}
html.has-section-nav .section-bar,
html.has-section-nav.section-nav-rail .section-rail,
html.has-section-nav .section-rail.is-open {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.25s ease, transform 0.25s ease;
}
.section-rail {
	box-sizing: border-box;
	overflow-y: auto;
	background: var(--wp--preset--color--surface);
	border: 1px solid rgba(255, 255, 255, 0.1);
	/* The sheet (the default): it slides up from the bar. */
	left: 0;
	right: 0;
	bottom: 0;
	max-height: 75vh;
	padding: 1rem 1rem calc(4.75rem + env(safe-area-inset-bottom));
	border-radius: 1rem 1rem 0 0;
	box-shadow: 0 -12px 32px rgba(0, 0, 0, 0.4);
	transform: translateY(100%);
}
.section-rail.is-open {
	transform: none;
}
html.section-nav-rail .section-rail {
	left: 1rem;
	right: auto;
	top: 50%;
	bottom: auto;
	width: 12rem;
	max-height: 70vh;
	padding: 0.75rem;
	border-radius: 1rem;
	box-shadow: none;
	background: color-mix(in srgb, var(--wp--preset--color--surface) 90%, transparent);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	transform: translate(-0.5rem, -50%);
}
html.has-section-nav.section-nav-rail .section-rail {
	transform: translate(0, -50%);
}
html.section-nav-rail .section-bar {
	display: none;
}
.section-rail__title {
	margin: 0 0 0.5rem;
	padding: 0 0.65rem;
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--wp--preset--color--sage);
}
.section-rail__title a {
	color: inherit;
	text-decoration: none;
}
.section-rail__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.15rem;
}
.section-rail__list a {
	display: block;
	padding: 0.75rem;
	border-radius: 12px;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	font-size: 1rem;
	line-height: 1.3;
}
html.section-nav-rail .section-rail__list a {
	padding: 0.45rem 0.65rem;
	font-size: 0.9rem;
}
.section-rail__list a:hover,
.section-rail__list a:focus-visible {
	background: rgba(255, 255, 255, 0.06);
}
.section-rail__list a[aria-current] {
	background: rgba(207, 64, 96, 0.18);
	font-weight: 600;
}
.section-bar {
	z-index: 41;
	left: 50%;
	bottom: max(0.75rem, env(safe-area-inset-bottom));
	transform: translate(-50%, 0.5rem);
}
html.has-section-nav .section-bar {
	transform: translate(-50%, 0);
}
.section-bar__btn {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	max-width: calc(100vw - 2rem);
	min-height: 44px;
	padding: 0.5rem 1rem;
	box-sizing: border-box;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 999px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: 0.85rem;
	white-space: nowrap;
	cursor: pointer;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}
.section-bar__name,
.section-bar__pos {
	color: var(--wp--preset--color--muted);
	flex: none;
}
.section-bar__page {
	font-weight: 600;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
}
.section-bar__chev {
	width: 0.45rem;
	height: 0.45rem;
	border-right: 2px solid currentColor;
	border-top: 2px solid currentColor;
	transform: translateY(2px) rotate(-45deg);
	flex: none;
}
.section-bar__btn[aria-expanded="true"] .section-bar__chev {
	transform: translateY(-2px) rotate(135deg);
}
@media (max-width: 380px) {
	.section-bar__name {
		display: none;
	}
}
@media (prefers-reduced-motion: reduce) {
	.section-rail,
	.section-bar {
		transition: none;
	}
}

/* ---------- The ExperiVerse symbol: a soft light that rises from the core and passes out through the rings ---------- */
.ev-mark {
	position: relative;
}
.ev-mark::before {
	content: "";
	position: absolute;
	inset: -18%;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(114, 228, 211, 0.5) 0%, rgba(114, 228, 211, 0.22) 42%, rgba(114, 228, 211, 0) 68%);
	transform: scale(0.35);
	opacity: 0;
	pointer-events: none;
	animation: ev-ripple 6s ease-out infinite;
}
.ev-mark svg {
	position: relative;
	overflow: visible;
}
.ev-mark svg path {
	animation: ev-ring 6s ease-in-out infinite;
}
.ev-mark svg path:nth-of-type(1) {
	--o: 1;
	--p: 1;
	animation-delay: 0.25s;
}
.ev-mark svg path:nth-of-type(2) {
	--o: 0.78;
	--p: 0.95;
	animation-delay: 0.6s;
}
.ev-mark svg path:nth-of-type(3) {
	--o: 0.58;
	--p: 0.8;
	animation-delay: 0.95s;
}
.ev-mark svg path:nth-of-type(4) {
	--o: 0.4;
	--p: 0.62;
	animation-delay: 1.3s;
}
.ev-mark svg circle:first-of-type {
	transform-box: fill-box;
	transform-origin: center;
	animation: ev-core 6s ease-in-out infinite;
}
@keyframes ev-ripple {
	0% { transform: scale(0.3); opacity: 0; }
	12% { opacity: 0.9; }
	55%, 100% { transform: scale(1.1); opacity: 0; }
}
@keyframes ev-ring {
	0%, 26%, 100% { stroke-opacity: var(--o); filter: none; }
	11% { stroke-opacity: var(--p); filter: drop-shadow(0 0 2px rgba(114, 228, 211, 0.5)); }
}
@keyframes ev-core {
	0%, 30%, 100% { transform: scale(1); }
	9% { transform: scale(1.16); }
}
@media (prefers-reduced-motion: reduce) {
	.ev-mark::before,
	.ev-mark svg path,
	.ev-mark svg circle {
		animation: none;
	}
}

/* ---------- Card sets never leave an empty spot (site.js 6; design.yml layout.no_empty_spots) ---------- */
.card-set {
	--gap: 1.25rem; /* site.js sets the grid's own gap here */
}
/* In a text column (44rem), a set of cards widens to 60rem where the screen allows, so three across stay readable. */
.card-set--wide {
	width: min(60rem, 100%) !important;
	max-width: none !important;
	margin-left: calc((100% - min(60rem, 100%)) / 2) !important;
	margin-right: 0 !important;
	box-sizing: border-box;
}
.card-set--row {
	display: grid !important;
	grid-template-columns: repeat(var(--n), minmax(0, 1fr)) !important;
}
.card-set--scroll:not(.is-expanded) {
	display: grid !important;
	grid-template-columns: none !important;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 2 * var(--gap)) / 3); /* three, the middle one largest */
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	padding: 4px 0 0.75rem; /* room for a card's hover lift */
	scrollbar-width: none; /* swipe, the arrows and the keys move it; no bar shows */
}
.card-set--scroll::-webkit-scrollbar {
	display: none;
}
.card-set--scroll:not(.is-expanded) > * {
	scroll-snap-align: center;
	min-width: 0;
	transition: transform 0.35s ease, opacity 0.35s ease;
}
@media (min-width: 701px) {
	.card-set--scroll:not(.is-expanded) > *:not(.is-center) {
		transform: scale(0.9);
		opacity: 0.7;
	}
}
.card-set--scroll:focus-visible {
	outline: 2px solid var(--wp--preset--color--link);
	outline-offset: 4px;
}
.card-set--balanced {
	grid-template-columns: repeat(var(--cols), minmax(0, 1fr)) !important;
}
.card-set--scroll.is-expanded {
	display: grid !important;
	grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)) !important;
}
@media (max-width: 700px) {
	.card-set--row,
	.card-set--scroll.is-expanded {
		grid-template-columns: minmax(0, 1fr) !important;
	}
	.card-set--scroll:not(.is-expanded) {
		grid-auto-columns: 85%;
	}
}
.card-set__controls {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.75rem;
	margin-top: 0.75rem;
}
.card-set__arrow {
	position: relative;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
}
.card-set__arrow::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 0.5rem;
	height: 0.5rem;
	border-right: 2px solid currentColor;
	border-top: 2px solid currentColor;
	transform: translate(-65%, -50%) rotate(45deg);
}
.card-set__arrow--back::before {
	transform: translate(-35%, -50%) rotate(-135deg);
}
.card-set__arrow:disabled {
	opacity: 0.3;
	cursor: default;
}
.card-set__controls.is-expanded .card-set__arrow {
	display: none;
}
.card-set__more {
	display: block;
	margin: 0;
	padding: 0.55rem 1.25rem;
	min-height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: 0.9rem;
	cursor: pointer;
}
.card-set__more:hover,
.card-set__more:focus-visible,
.card-set__arrow:not(:disabled):hover,
.card-set__arrow:focus-visible {
	background: rgba(255, 255, 255, 0.06);
}

/* ---------- A card or tile with a linked title is clickable as a whole; other links inside stay clickable ---------- */
@supports selector(:has(a)) {
	.card:has(h3 a),
	.tile:has(h3 a) {
		position: relative;
		cursor: pointer;
	}
	.card h3 a::after,
	.tile h3 a::after {
		content: "";
		position: absolute;
		inset: 0;
		border-radius: inherit;
	}
	.card a:not(h3 a),
	.tile a:not(h3 a),
	.card .wp-block-post-featured-image a {
		position: relative;
		z-index: 1;
	}
	.tile:has(h3 a):hover {
		border-color: var(--wp--preset--color--accent);
	}
}

/* The frame holds the row and its side arrows (site.js 6). */
.card-set-frame {
	position: relative;
}
.card-set__side {
	position: absolute;
	top: 50%;
	z-index: 2;
	width: 44px;
	height: 44px;
	margin-top: -22px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);
}
.card-set__side--back {
	left: -22px;
}
.card-set__side--next {
	right: -22px;
}
.card-set__side::before,
.card-set__arrow::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 0.5rem;
	height: 0.5rem;
	border-right: 2px solid currentColor;
	border-top: 2px solid currentColor;
	transform: translate(-65%, -50%) rotate(45deg);
}
.card-set__side--back::before,
.card-set__arrow--back::before {
	transform: translate(-35%, -50%) rotate(-135deg);
}
.card-set__side:disabled {
	opacity: 0;
	pointer-events: none;
}
.card-set-frame.is-expanded .card-set__side,
.card-set__controls.is-expanded .card-set__play {
	display: none;
}
@media (max-width: 700px) {
	.card-set__side {
		display: none;
	}
}
.card-set__play {
	position: relative;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
}
/* Paused: a triangle (press to play). Playing: two bars (press to pause). */
.card-set__play::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-35%, -50%);
	border-style: solid;
	border-width: 0.4rem 0 0.4rem 0.65rem;
	border-color: transparent transparent transparent currentColor;
}
.card-set__play.is-playing::before {
	transform: translate(-50%, -50%);
	width: 0.6rem;
	height: 0.8rem;
	border-width: 0 0.2rem;
	border-color: currentColor;
	box-sizing: border-box;
}
.card-set__play:hover,
.card-set__play:focus-visible,
.card-set__side:hover {
	background: rgba(255, 255, 255, 0.08);
}

/* ---------- The four spheres with their callouts (ExperiVerse page, site.js 7; brand guide page 2) ---------- */
.ev-spheres-wrap {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: 2.5rem;
	align-items: start;
}
.ev-spheres {
	position: sticky;
	top: 18vh;
	margin: 0;
}
.ev-spheres svg {
	display: block;
	width: 100%;
	height: auto;
}
.ev-spheres .evs-ring {
	transition: stroke-opacity 0.4s ease, filter 0.4s ease;
}
.ev-spheres-wrap.is-live .evs-ring:not(.is-on) {
	stroke-opacity: 0.3;
}
.ev-spheres .evs-ring.is-on {
	stroke-opacity: 1;
	filter: drop-shadow(0 0 4px rgba(114, 228, 211, 0.6));
}
.ev-spheres .evs-core {
	transition: opacity 0.4s ease;
}
.ev-spheres-wrap.is-live .evs-core:not(.is-on) {
	opacity: 0.8;
}
.ev-spheres .evs-lead {
	stroke: #8c99a6;
	transition: stroke 0.4s ease;
}
.ev-spheres .evs-lead.is-on {
	stroke: #72e4d3;
}
.ev-spheres .evs-label {
	fill: var(--wp--preset--color--muted);
	font-size: 16px;
	transition: fill 0.4s ease;
}
.ev-spheres .evs-label .evs-name {
	font-weight: 700;
	font-size: 20px;
	fill: var(--wp--preset--color--contrast);
}
.ev-spheres .evs-label.is-on .evs-name {
	fill: #72e4d3;
}
.ev-spheres .evs-label.is-on {
	fill: var(--wp--preset--color--contrast);
}
.ev-spheres-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 2.25rem;
}
.ev-spheres-list li {
	padding-left: 1rem;
	border-left: 2px solid rgba(255, 255, 255, 0.12);
	transition: border-color 0.4s ease, opacity 0.4s ease;
}
.ev-spheres-wrap.is-live .ev-spheres-list li:not(.is-on) {
	opacity: 0.65;
}
.ev-spheres-list li.is-on {
	border-color: #72e4d3;
}
.ev-spheres-list strong {
	display: block;
	font-size: 1.1rem;
}
@media (max-width: 899px) {
	.ev-spheres-wrap {
		grid-template-columns: minmax(0, 1fr);
	}
	.ev-spheres {
		position: static;
		max-width: 560px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.ev-spheres .evs-ring,
	.ev-spheres .evs-core,
	.ev-spheres .evs-lead,
	.ev-spheres .evs-label,
	.ev-spheres-list li,
	.card-set--scroll > * {
		transition: none;
	}
}
