/* =============================================================================
   Red Hot - assets/structural.css
   LAYOUT ONLY. Ported from live spiritual-realities-v1-0 style.css (the
   "Spiritual Realities mobile navigation" block, 2026-07-25 -> 2026-08-02) plus
   its theme.json styles.css / wp_global_styles ".sticky-header" rule.

   Every colour / font in the source has been migrated to Red Hot
   tokens:
     --wp--preset--color--accent-3  -> --wp--preset--color--border
     --wp--preset--color--accent-1  -> --wp--preset--color--hope   (active wash, +/- glyph)
     focus outlines (were accent-1)  -> --wp--preset--color--focus  (GL-009 §9.3)
     --wp--preset--color--contrast  -> --wp--preset--color--ink
     --wp--preset--color--base      -> --wp--preset--color--canvas
     --wp--preset--font-family--montserrat -> --wp--preset--font-family--system-sans

   Loaded AFTER assets/brand.css (which bridges the legacy --wp--preset--* names
   to the ramp). Enqueued in functions.php at priority 1000.

   NOT ported (page-scoped component CSS, stale pre-Luminous-Grounding gold
   grammar, or FluentCommunity portal - GL-009 §11 / tranche 2):
     - .sr-login-* / .sr-academy-page / .sr-block / .sr-price-* / .sr-faq-* /
       .sr-tier-* / .sr-checkout-* / .pwyw-* / .academy-cta-section  -> live in
       the Customizer "Additional CSS" store, page-scoped, out of theme scope.
     - .fcom_top_menu logo centering -> FluentCommunity, tranche 2.
     - Inter / 900-heading overrides -> superseded by GL-009 single-sans; the
       weights now come from theme.json + brand.css tokens.
   ============================================================================= */

/* ---- sticky header (theme.json styles.css + wp_global_styles + outer template part) ---- */
header.wp-block-template-part,
.wp-block-template-part:has(.sticky-header),
.wp-block-template-part:has(header),
.sticky-header,
header.sticky-header {
	position: sticky !important;
	top: 0 !important;
	z-index: 9999 !important;
	background-color: var(--wp--preset--color--canvas) !important;
}

/* ---- desktop nav discipline: hide inline mobile nav CTA and commerce links on desktop ---- */
@media (min-width: 600px) {
	.sticky-header .wp-block-navigation .sr-nav-login-link,
	.sticky-header .wp-block-navigation .sr-nav-account-link,
	.sticky-header .wp-block-navigation .sr-nav-cart-link {
		display: none !important;
	}
}

/* ---- wordmark one-line guarantee (GL-009 §4a; live 2026-07-26 Vera fix) ---- */
.sticky-header .wp-block-site-title {
	flex-shrink: 0;
	white-space: nowrap;
}

/* ---- desktop logo sizing (live 2026-08-26) ---- */
.wp-block-site-logo img,
.sticky-header .wp-block-site-logo img,
.custom-logo-link img {
	width: 64px !important;
	max-width: 64px !important;
	height: auto !important;
	flex-shrink: 0;
}

/* ---- mode-agnostic Incendiary mark (no inverted swap required) ---- */
html[data-scheme="dark"] .custom-logo,
[data-theme="dark"] .custom-logo,
body.fcom_dark .custom-logo {
	content: normal !important;
	filter: none !important;
}

/* =============================================================================
   MOBILE NAVIGATION OVERLAY  (<= 599px)  - ported from live style.css
   WordPress owns the drawer (open/close/Escape/focus-trap). This restyles its
   stock overlay into the editorial right-hand sheet + folding submenus.
   Controller: assets/sr-mobile-navigation.js
   ============================================================================= */
@media (max-width: 599px) {
	.sticky-header .wp-block-navigation__responsive-container-open,
	.sticky-header .wp-block-navigation__responsive-container-close {
		align-items: center;
		border: 1px solid var(--wp--preset--color--border);
		display: inline-flex;
		height: 44px;
		justify-content: center;
		width: 44px;
		color: var(--wp--preset--color--ink) !important;
		background-color: transparent !important;
		cursor: pointer;
	}

	.sticky-header .wp-block-navigation__responsive-container-open svg,
	.sticky-header .wp-block-navigation__responsive-container-close svg {
		fill: currentColor !important;
		stroke: currentColor !important;
		color: var(--wp--preset--color--ink) !important;
		width: 24px;
		height: 24px;
	}

	.sticky-header .wp-block-navigation__responsive-container-open:hover,
	.sticky-header .wp-block-navigation__responsive-container-close:hover {
		color: var(--wp--preset--color--hope) !important;
		border-color: var(--wp--preset--color--hope) !important;
	}

	.sticky-header .wp-block-navigation__responsive-container-open:focus-visible,
	.sticky-header .wp-block-navigation__responsive-container-close:focus-visible,
	.sticky-header .wp-block-navigation__responsive-container-content a:focus-visible,
	.sticky-header .wp-block-navigation-submenu__toggle:focus-visible {
		outline: 2px solid var(--wp--preset--color--focus);
		outline-offset: 3px;
	}

	/* Full viewport fixed modal container */
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open {
		align-items: flex-start !important;
		background: color-mix(in srgb, var(--wp--preset--color--ink) 26%, transparent) !important;
		padding: 0;
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100vw !important;
		height: 100vh !important;
		z-index: 100000 !important;
	}

	/* Universal border-box discipline inside drawer to prevent horizontal overflow and clipping */
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open,
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open *,
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open *::before,
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open *::after {
		box-sizing: border-box !important;
	}

	/* Sliding drawer sheet */
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
		background: var(--wp--preset--color--canvas);
		box-shadow: 18px 0 36px color-mix(in srgb, var(--wp--preset--color--ink) 16%, transparent);
		height: 100%;
		min-height: 100vh;
		margin: 0;
		max-width: min(92vw, 420px);
		padding: 32px 24px;
		width: 92vw;
		position: relative;
		overflow-y: auto;
		overflow-x: hidden;
		box-sizing: border-box !important;
	}

	/* Drawer Content and Container vertical flex column discipline */
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		align-items: stretch !important;
		display: flex !important;
		flex-direction: column !important;
		padding-top: 76px;
		width: 100% !important;
		box-sizing: border-box !important;
	}

	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		align-items: stretch !important;
		display: flex !important;
		flex-direction: column !important;
		flex-wrap: nowrap !important;
		justify-content: flex-start !important;
		gap: 0 !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		list-style: none !important;
	}

	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
		display: flex !important;
		flex-direction: row;
		align-items: center;
		border-bottom: 1px solid var(--wp--preset--color--border);
		justify-content: space-between;
		min-height: 56px;
		width: 100% !important;
		flex-shrink: 0 !important;
		box-sizing: border-box !important;
	}

	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		font-family: var(--wp--preset--font-family--system-sans);
		font-size: 1.25rem;
		font-weight: 500;
		letter-spacing: -0.01em;
		padding: 16px 0;
		width: 100%;
		color: var(--wp--preset--color--ink) !important;
		display: flex;
		align-items: center;
		text-decoration: none;
	}

	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content,
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover {
		color: var(--wp--preset--color--hope);
		font-weight: 700;
		text-decoration: none;
	}

	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
		display: inline-flex !important;
		height: 44px !important;
		width: 44px !important;
		align-items: center !important;
		justify-content: center !important;
		margin: 0 !important;
		padding: 0 !important;
		color: var(--wp--preset--color--ink) !important;
		background-color: transparent !important;
		border: none !important;
		cursor: pointer;
	}

	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle svg {
		display: none;
	}

	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle::before {
		content: '+';
		font-family: var(--wp--preset--font-family--system-sans);
		font-size: 1.75rem;
		font-weight: 400;
		line-height: 1;
	}

	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle[aria-expanded="true"]::before,
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child.sr-submenu-open > .wp-block-navigation-submenu__toggle::before {
		content: '\2212';
	}

	/* fold submenus closed by default; open via aria-expanded / .sr-submenu-open */
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {
		border-left: 2px solid var(--wp--preset--color--hope);
		display: flex !important;
		flex-direction: column !important;
		height: 0;
		max-height: 0;
		min-width: 0;
		opacity: 0;
		overflow: hidden;
		padding: 0 0 0 16px;
		transition: max-height 200ms ease, opacity 160ms ease, padding 200ms ease;
		visibility: hidden;
		width: 100% !important;
		box-sizing: border-box !important;
		list-style: none !important;
		margin: 0 !important;
	}

	.sticky-header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container,
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content .has-child.sr-submenu-open > .wp-block-navigation__submenu-container {
		height: auto;
		max-height: 420px;
		opacity: 1;
		padding: 4px 0 8px 16px;
		visibility: visible;
	}

	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
		border-bottom: 0 !important;
		min-height: 42px;
		width: 100% !important;
		display: flex !important;
		flex-direction: row;
		align-items: center;
		box-sizing: border-box !important;
	}

	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		font-size: 1rem;
		font-weight: 400;
		padding: 10px 0;
		width: 100% !important;
	}

	/* Explore row: label + chevron on one baseline, children full-width below */
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		align-items: center !important;
		width: 100% !important;
		box-sizing: border-box !important;
	}
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > .wp-block-navigation-item__content {
		flex: 1 1 auto !important;
		width: auto !important;
	}
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > .wp-block-navigation-submenu__toggle {
		flex: 0 0 44px !important;
		width: 44px !important;
		height: 44px !important;
	}
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-container {
		flex: 0 0 100% !important;
		width: 100% !important;
		box-sizing: border-box !important;
	}

	/* restrained focus cues on the controls (no stock full-row rectangle) */
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus,
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus-visible {
		box-shadow: inset 0 -2px 0 var(--wp--preset--color--focus);
		outline: none;
	}
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child:focus {
		outline: none;
	}
	.sticky-header .wp-block-navigation__responsive-container-open:focus,
	.sticky-header .wp-block-navigation__responsive-container-open:focus-visible,
	.sticky-header .wp-block-navigation-submenu__toggle:focus,
	.sticky-header .wp-block-navigation-submenu__toggle:focus-visible {
		box-shadow: inset 0 -2px 0 var(--wp--preset--color--focus);
		outline: none;
	}

	/* active-page wash (matches WordPress's !important transparent bg inside the overlay) */
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.current-menu-item {
		background-color: color-mix(in srgb, var(--wp--preset--color--hope) 10%, var(--wp--preset--color--canvas)) !important;
	}
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content {
		color: var(--wp--preset--color--ink);
	}

	/* close control tracks the hamburger's position (GL-009 §4a math via JS) */
	.sticky-header .wp-block-navigation__responsive-container-close {
		left: var(--sr-mobile-menu-close-left, 16px);
		position: fixed;
		right: auto;
		top: var(--sr-mobile-menu-close-top, 8px);
		z-index: 100001 !important;
	}

	/* left-slide reveal applied to drawer sheet */
	@keyframes sr-slide-in-left {
		from { transform: translateX(-100%); }
		to   { transform: translateX(0); }
	}
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
		animation: 0.3s ease-out forwards sr-slide-in-left !important;
	}

	/* ---- GL-009 §4a mobile header math (clean 3-element bar) ---- */
	.sticky-header .has-global-padding,
	.sticky-header .is-content-justification-space-between {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
	.sticky-header .is-content-justification-space-between {
		padding-top: 8px !important;
		padding-bottom: 8px !important;
		gap: 8px !important;
		position: relative !important;
		min-height: 60px !important;
	}
	.sticky-header .wp-block-group.is-content-justification-right .wp-block-group {
		gap: 8px !important;
	}

	/* logo centred, hamburger far-left, theme toggle far-right, wordmark text hidden */
	.sticky-header .wp-block-site-logo,
	.sticky-header .wp-block-site-logo img {
		width: 52px !important;
		max-width: 52px !important;
		height: auto !important;
		flex-shrink: 0;
	}
	.sticky-header .wp-block-site-logo {
		position: absolute !important;
		left: 50% !important;
		top: 50% !important;
		transform: translate(-50%, -50%) !important;
		margin: 0 !important;
		z-index: 5;
	}
	.sticky-header .wp-block-site-title {
		display: none !important;
	}

	/* NO TRANSFORM ON NAV: Prevents containing-block trapping of position:fixed modal */
	.sticky-header .wp-block-navigation {
		position: absolute !important;
		left: 16px !important;
		top: 50% !important;
		margin-top: -22px !important;
		transform: none !important;
		z-index: 10;
		width: 44px;
		height: 44px;
	}

	/* Theme toggle clean right alignment */
	.sticky-header .sr-theme-toggle {
		position: absolute !important;
		right: 16px !important;
		top: 50% !important;
		margin-top: -22px !important;
		transform: none !important;
		z-index: 10;
		width: 44px;
		height: 44px;
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
	}

	/* Clean Mobile Header: Hide Login button, WooCommerce account/cart icons, and extra chrome from top bar */
	.sticky-header .sr-header-login,
	.sticky-header .sr-mobile-login-btn,
	.sticky-header .wp-block-woocommerce-customer-account,
	.sticky-header .wc-block-customer-account,
	.sticky-header .wc-block-customer-account__link,
	.sticky-header .wc-block-mini-cart,
	.sticky-header .wp-block-woocommerce-mini-cart,
	.sticky-header .woocommerce-cart-link,
	.sticky-header .fcom_top_menu,
	.sticky-header .fcom_user_menu,
	.sticky-header .fcom_avatar_wrap {
		display: none !important;
	}

	/* Inside Mobile Drawer: Style the relocated Login action button (Zero-clipping guarantee) */
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-login-link {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-top: 24px !important;
		margin-bottom: 8px !important;
		border-bottom: 0 !important;
		box-sizing: border-box !important;
	}
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-login-link .wp-block-navigation-item__content {
		background-color: var(--wp--preset--color--hope) !important;
		color: var(--wp--preset--color--on-hope) !important;
		text-align: center;
		justify-content: center;
		padding: 14px 20px !important;
		font-weight: 700 !important;
		font-size: 1.05rem !important;
		border-radius: var(--sr-r-square, 0) !important;
		box-shadow: none !important;
		text-decoration: none !important;
		display: flex !important;
		align-items: center;
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
	}
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-login-link .wp-block-navigation-item__content:hover,
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-login-link .wp-block-navigation-item__content:focus-visible {
		background-color: var(--wp--preset--color--hope) !important;
		color: var(--wp--preset--color--on-hope) !important;
		outline: 2px solid var(--wp--preset--color--focus) !important;
		outline-offset: 2px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sticky-header .wp-block-navigation__responsive-container,
	.sticky-header .wp-block-navigation__submenu-container {
		animation: none !important;
		transition: none !important;
	}
}

/* Screen reader text utility */
.sticky-header .screen-reader-text {
	border: 0 !important;
	clip: rect(1px, 1px, 1px, 1px) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	width: 1px !important;
	word-wrap: normal !important;
}

/* Inside Mobile Drawer: Style Account and Cart SVG icon links via CSS mask */
@media (max-width: 599px) {
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-account-link,
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-cart-link {
		display: flex !important;
		align-items: center;
	}
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-account-link .wp-block-navigation-item__content,
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-cart-link .wp-block-navigation-item__content {
		display: inline-flex !important;
		align-items: center;
		padding: 16px 0 !important;
		color: var(--wp--preset--color--ink) !important;
		transition: color 0.15s ease;
	}
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-account-link .wp-block-navigation-item__content::before,
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-cart-link .wp-block-navigation-item__content::before {
		content: "";
		display: inline-block;
		width: 24px;
		height: 24px;
		background-color: currentColor;
		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;
		-webkit-mask-position: center;
		mask-position: center;
		-webkit-mask-size: contain;
		mask-size: contain;
		vertical-align: middle;
	}
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-account-link .wp-block-navigation-item__content::before {
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4a4 4 0 1 0 0 8 4 4 0 0 0 0-8zM6 8a6 6 0 1 1 12 0A6 6 0 0 1 6 8zm2 10a3 3 0 0 0-3 3 1 1 0 1 1-2 0 5 5 0 0 1 5-5h8a5 5 0 0 1 5 5 1 1 0 1 1-2 0 3 3 0 0 0-3-3H8z'/%3E%3C/svg%3E");
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4a4 4 0 1 0 0 8 4 4 0 0 0 0-8zM6 8a6 6 0 1 1 12 0A6 6 0 0 1 6 8zm2 10a3 3 0 0 0-3 3 1 1 0 1 1-2 0 5 5 0 0 1 5-5h8a5 5 0 0 1 5 5 1 1 0 1 1-2 0 3 3 0 0 0-3-3H8z'/%3E%3C/svg%3E");
	}
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-cart-link .wp-block-navigation-item__content::before {
		-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9 4.5a3 3 0 0 1 6 0V6h1.5A2.5 2.5 0 0 1 19 8.5v10a2.5 2.5 0 0 1-2.5 2.5h-9A2.5 2.5 0 0 1 5 18.5v-10A2.5 2.5 0 0 1 7.5 6H9v-.5zm1.5 1.5h3v-.5a1.5 1.5 0 0 0-3 0V6zm-3 1.5a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1v-10a1 1 0 0 0-1-1H7.5z'/%3E%3C/svg%3E");
		mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9 4.5a3 3 0 0 1 6 0V6h1.5A2.5 2.5 0 0 1 19 8.5v10a2.5 2.5 0 0 1-2.5 2.5h-9A2.5 2.5 0 0 1 5 18.5v-10A2.5 2.5 0 0 1 7.5 6H9v-.5zm1.5 1.5h3v-.5a1.5 1.5 0 0 0-3 0V6zm-3 1.5a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1v-10a1 1 0 0 0-1-1H7.5z'/%3E%3C/svg%3E");
	}
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-account-link .wp-block-navigation-item__content:hover,
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-account-link .wp-block-navigation-item__content:focus-visible,
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-cart-link .wp-block-navigation-item__content:hover,
	.sticky-header .wp-block-navigation__responsive-container.is-menu-open .sr-nav-cart-link .wp-block-navigation-item__content:focus-visible {
		color: var(--wp--preset--color--hope) !important;
	}
}
