/*
 * GORGY LuminaPath — motion and interaction layer (v2.0).
 * Uses only the existing theme tokens; adds no new palette colours. Small-text "ink" shades are
 * derived from the tokens with color-mix (token + the theme's contrast colour) so they meet
 * WCAG 2.2 AA 4.5:1 and adapt to the Night style automatically. Durations:
 * micro 160ms · component 280ms · entrance 520ms. Everything is disabled under prefers-reduced-motion.
 */
:root {
	--lp-t-micro: 160ms;
	--lp-t-comp: 280ms;
	--lp-t-enter: 520ms;
	--lp-ease: cubic-bezier(.2, .7, .2, 1);
	--lp-lift: 0 14px 30px -18px rgba(14, 35, 70, .35);
	--lp-teal-ink: var(--wp--preset--color--teal);
	--lp-sun-ink: var(--wp--preset--color--sun);
	--lp-sea-ink: var(--wp--preset--color--sea);
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
	:root {
		--lp-teal-ink: color-mix(in srgb, var(--wp--preset--color--teal) 72%, var(--wp--preset--color--contrast));
		--lp-sun-ink: color-mix(in srgb, var(--wp--preset--color--sun) 80%, var(--wp--preset--color--contrast));
		--lp-sea-ink: color-mix(in srgb, var(--wp--preset--color--sea) 90%, var(--wp--preset--color--contrast));
	}
}
/* Accessibility: small text in brand hues meets 4.5:1 (large display uses keep the original tokens). */
.lp-eyebrow, .lp-month .lp-season, .lp-shot figcaption, .lp-ws-row strong, .lp-ws-key strong { color: var(--lp-teal-ink); }
.lp-time, .lp-month .lp-month-no, .lp-theme-samples .lp-mono, ol.lp-timeline summary .lp-mono { color: var(--lp-sun-ink); }
.lp-ws-tag, .has-dawn-background-color a:not(.wp-block-button__link), .is-style-lp-notice a:not(.wp-block-button__link) { color: var(--lp-sea-ink); }

/* Smooth anchors, sticky-header aware */
html { scroll-padding-top: 96px; }
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
	@view-transition { navigation: auto; }
	::view-transition-old(root), ::view-transition-new(root) { animation-duration: 220ms; }
}

/* ---------- Scroll reveal (only when JS has marked the element) ---------- */
@media (prefers-reduced-motion: no-preference) {
	.lp-reveal { transition: opacity var(--lp-t-enter) var(--lp-ease) var(--lp-d, 0ms), transform var(--lp-t-enter) var(--lp-ease) var(--lp-d, 0ms); }
	.lp-reveal:not(.is-in) { opacity: 0; transform: translate3d(0, 14px, 0); }
	.lp-month.lp-reveal:not(.is-in), .lp-store-card.lp-reveal:not(.is-in) { transform: translate3d(0, 10px, 0) scale(.985); }
}

/* ---------- Hero entrance ---------- */
@media (prefers-reduced-motion: no-preference) {
	@keyframes lp-rise { from { opacity: 0; transform: translate3d(0, 16px, 0); } to { opacity: 1; transform: none; } }
	@keyframes lp-slide-in { from { opacity: 0; transform: translate3d(28px, 18px, 0) rotate(2deg); } to { opacity: 1; } }
	.lp-hero .wp-block-column:first-child > * { animation: lp-rise var(--lp-t-enter) var(--lp-ease) both; }
	.lp-hero .wp-block-column:first-child > :nth-child(2) { animation-delay: 70ms; }
	.lp-hero .wp-block-column:first-child > :nth-child(3) { animation-delay: 140ms; }
	.lp-hero .wp-block-column:first-child > :nth-child(4) { animation-delay: 210ms; }
	.lp-hero .wp-block-column:first-child > :nth-child(n+5) { animation-delay: 280ms; }
	/* LCP-safe: the headline and introduction move but never start invisible, so they paint at once. */
	@keyframes lp-rise-visible { from { transform: translate3d(0, 12px, 0); } to { transform: none; } }
	.lp-hero .wp-block-column:first-child > h1, .lp-hero .wp-block-column:first-child > .lp-lede { animation-name: lp-rise-visible; animation-delay: 0ms; }
	.lp-device-front { animation: lp-rise 700ms var(--lp-ease) 120ms both; }
	.lp-device-back { animation: lp-slide-in 800ms var(--lp-ease) 260ms both; }
	[dir="rtl"] .lp-device-back { animation-name: lp-rise; }
	.lp-devices .lp-device img { transition: transform var(--lp-t-comp) var(--lp-ease), box-shadow var(--lp-t-comp) var(--lp-ease); }
	.lp-devices:hover .lp-device-front img { transform: translateY(-4px); }
}

/* ---------- Header and navigation ---------- */
.lp-header { transition: box-shadow var(--lp-t-comp) var(--lp-ease), background-color var(--lp-t-comp) var(--lp-ease); }
.lp-header.is-scrolled { box-shadow: 0 8px 24px -18px rgba(14, 35, 70, .45); }
.lp-header .wp-block-navigation a { transition: background-color var(--lp-t-micro) ease, color var(--lp-t-micro) ease; }
/* Current page keeps the original navy pill (style.css, a[aria-current="page"]). */
.lp-header .wp-block-navigation a:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 2px; }
@media (prefers-reduced-motion: no-preference) {
	@keyframes lp-menu-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
	.wp-block-navigation__responsive-container.is-menu-open { animation: lp-menu-in var(--lp-t-comp) var(--lp-ease) both; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { animation: lp-rise var(--lp-t-comp) var(--lp-ease) both; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay: 30ms; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay: 60ms; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay: 90ms; }
	.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:nth-child(n+5) { animation-delay: 120ms; }
	.lp-lang ul { animation: lp-rise var(--lp-t-micro) var(--lp-ease) both; }
}

/* ---------- Buttons ---------- */
.wp-element-button, .wp-block-button__link, .lp-store { transition: transform var(--lp-t-micro) var(--lp-ease), box-shadow var(--lp-t-micro) var(--lp-ease), background-color var(--lp-t-micro) ease, color var(--lp-t-micro) ease, border-color var(--lp-t-micro) ease; }
@media (prefers-reduced-motion: no-preference) {
	.wp-element-button:hover, .wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 8px 18px -12px rgba(14, 35, 70, .55); }
	.wp-element-button:active, .wp-block-button__link:active, .lp-store:active { transform: translateY(0) scale(.98); box-shadow: none; }
}
.wp-element-button:focus-visible, .wp-block-button__link:focus-visible, .lp-store:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 3px; }
button.is-loading { position: relative; padding-inline-start: 2.6rem !important; }
button.is-loading::before { content: ""; position: absolute; inset-inline-start: 1.1rem; top: 50%; width: 1rem; height: 1rem; margin-top: -.5rem; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: lp-spin .8s linear infinite; }
@keyframes lp-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { button.is-loading::before { animation-duration: 2.4s; } }

/* ---------- Cards and panels ---------- */
.is-style-lp-panel, .lp-store-card, .lp-shot img, .lp-feature, .lp-month { transition: transform var(--lp-t-comp) var(--lp-ease), box-shadow var(--lp-t-comp) var(--lp-ease), border-color var(--lp-t-comp) ease; }
@media (prefers-reduced-motion: no-preference) {
	.is-style-lp-panel.lp-card-link:hover, .lp-store-card:hover { transform: translateY(-3px); box-shadow: var(--lp-lift); }
	.lp-feature:hover svg { transform: scale(1.06); }
	.lp-feature svg { transition: transform var(--lp-t-comp) var(--lp-ease); }
}
.is-style-lp-panel.lp-card-link { position: relative; }
.is-style-lp-panel.lp-card-link :is(h2, h3) a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.is-style-lp-panel.lp-card-link:hover, .is-style-lp-panel.lp-card-link:focus-within { border-color: var(--wp--preset--color--sea); }

/* ---------- Screenshot buttons and lightbox ---------- */
.lp-zoom { display: block; width: 100%; padding: 0; margin: 0; border: 0; background: none; cursor: zoom-in; border-radius: 18px; }
.lp-device .lp-zoom { border-radius: 28px; }
.lp-zoom:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 4px; }
@media (prefers-reduced-motion: no-preference) {
	.lp-shot .lp-zoom:hover img { transform: translateY(-4px); box-shadow: 0 22px 36px -20px rgba(14, 35, 70, .55); }
}
.lp-lightbox { border: 0; padding: 0; background: transparent; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; overflow: hidden; }
.lp-lightbox::backdrop { background: rgba(10, 20, 36, .86); }
.lp-lightbox[open] { display: flex; align-items: center; justify-content: center; }
.lp-lightbox figure { margin: 0; display: flex; flex-direction: column; align-items: center; gap: .75rem; max-height: 92vh; }
.lp-lightbox img { max-height: 82vh; max-width: 90vw; width: auto; height: auto; border-radius: 22px; border: 8px solid #10223f; background: #10223f; }
.lp-lightbox figcaption { color: #FBF6EC; font-size: .95rem; text-align: center; max-width: 60ch; padding-inline: 1rem; }
.lp-lb-btn { position: fixed; border: 0; border-radius: 999px; width: 48px; height: 48px; background: rgba(251, 246, 236, .14); color: #FBF6EC; font-size: 2rem; line-height: 1; cursor: pointer; display: grid; place-items: center; }
.lp-lb-btn:hover { background: rgba(251, 246, 236, .26); }
.lp-lb-btn:focus-visible { outline: 3px solid var(--wp--preset--color--gold); outline-offset: 2px; }
.lp-lb-close { top: max(16px, env(safe-area-inset-top)); inset-inline-end: 16px; font-size: 1.8rem; }
.lp-lb-prev { inset-inline-start: 16px; top: 50%; margin-top: -24px; }
.lp-lb-next { inset-inline-end: 16px; top: 50%; margin-top: -24px; }
.lp-lb-count { position: fixed; bottom: 14px; left: 0; right: 0; text-align: center; color: rgba(251, 246, 236, .8); font-family: var(--wp--preset--font-family--mono); font-size: .8rem; margin: 0; }
@media (prefers-reduced-motion: no-preference) {
	.lp-lightbox[open] figure { animation: lp-rise var(--lp-t-comp) var(--lp-ease) both; }
}

/* ---------- Back to top and reading progress ---------- */
.lp-top { position: fixed; z-index: 40; inset-inline-end: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); display: grid; place-items: center; cursor: pointer; box-shadow: 0 10px 24px -14px rgba(14, 35, 70, .5); }
.lp-top:hover { border-color: var(--wp--preset--color--sea); }
.lp-top:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 3px; }
.lp-top[hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) { .lp-top:not([hidden]) { animation: lp-rise var(--lp-t-comp) var(--lp-ease) both; } }
.lp-progress { position: fixed; z-index: 45; top: 0; left: 0; right: 0; height: 3px; background: var(--wp--preset--color--sun); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }
[dir="rtl"] .lp-progress { transform-origin: 100% 50%; }
.admin-bar .lp-progress { top: var(--wp-admin--admin-bar--height, 32px); }

/* ---------- Year bar segments ---------- */
.lp-yearbar span[tabindex] { cursor: help; transition: opacity var(--lp-t-micro) ease, filter var(--lp-t-micro) ease; }
/* Other seasons are shaded, not faded: fading with opacity also faded the white labels below 4.5:1 (2.3 fix). */
.lp-yearbar span.is-dim { background-image: linear-gradient(rgba(10, 20, 36, .42), rgba(10, 20, 36, .42)); filter: saturate(.55); }
/* Gold seasons carry dark text, so they are shaded lighter instead. */
.lp-yearbar span.lp-s-christmas.is-dim, .lp-yearbar span.lp-s-easter.is-dim { background-image: linear-gradient(rgba(255, 255, 255, .5), rgba(255, 255, 255, .5)); }
.lp-yearbar span[tabindex]:focus-visible { outline: 3px solid var(--wp--preset--color--contrast); outline-offset: -3px; }
.lp-tip { min-height: 1.6em; margin: .55rem 0 0; font-size: .9rem; font-weight: 600; color: var(--wp--preset--color--contrast); opacity: 0; transition: opacity var(--lp-t-micro) ease; }
.lp-tip.is-on { opacity: 1; }

/* ---------- Journey month navigator ---------- */
html:not(.lp-js) .lp-tip, html:not(.lp-js) .lp-month-nav, html:not(.lp-js) .lp-faq-tools { display: none; }
.lp-month-nav { min-height: 58.7px; box-sizing: border-box; }
.lp-month-nav { position: sticky; top: calc(var(--lp-header-h, 70px) + var(--wp-admin--admin-bar--height, 0px)); z-index: 20; margin: 1.5rem 0 1rem; padding: .6rem 0 .2rem; background: color-mix(in srgb, var(--wp--preset--color--base) 94%, transparent); backdrop-filter: blur(8px); }
.lp-month-chips { display: flex; gap: .4rem; overflow-x: auto; scrollbar-width: thin; padding-bottom: .35rem; }
.lp-month-chips button { flex: 0 0 auto; font: inherit; font-size: .88rem; font-weight: 600; padding: .4rem .8rem; border-radius: 999px; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); cursor: pointer; transition: background-color var(--lp-t-micro) ease, color var(--lp-t-micro) ease, border-color var(--lp-t-micro) ease; }
.lp-month-chips button:hover { border-color: var(--wp--preset--color--sea); }
.lp-month-chips button.is-active { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--on-contrast); border-color: var(--wp--preset--color--contrast); }
.lp-month-chips button:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 2px; }
.lp-month-track { height: 3px; border-radius: 3px; background: var(--wp--preset--color--line); overflow: hidden; }
.lp-month-track span { display: block; height: 100%; background: var(--wp--preset--color--sun); transform-origin: 0 50%; transform: scaleX(0); transition: transform var(--lp-t-comp) var(--lp-ease); }
[dir="rtl"] .lp-month-track span { transform-origin: 100% 50%; }
.lp-month.is-active { border-top-color: var(--wp--preset--color--sun); }
.lp-month.is-active .lp-month-no { color: var(--wp--preset--color--contrast); }
.lp-month-toggle { all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: .5rem; font: inherit; }
.lp-month-toggle:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 3px; border-radius: 4px; }
@media (max-width: 600px) {
	.lp-month-toggle::after { content: "+"; font-family: var(--wp--preset--font-family--mono); color: var(--wp--preset--color--sea); }
	.lp-month-toggle[aria-expanded="true"]::after { content: "\2212"; }
	.lp-month.is-collapsed ol { display: none; }
}
@media (min-width: 601px) { .lp-month-toggle { cursor: default; pointer-events: none; } }

/* ---------- Minimum viable day ---------- */
ul.lp-mvd { list-style: none; padding: 0; margin: .4rem 0 0; display: grid; gap: .5rem; }
ul.lp-mvd li { display: flex; align-items: center; gap: .7rem; padding: .7rem .9rem; border: 1px solid var(--wp--preset--color--line); border-radius: 12px; background: var(--wp--preset--color--surface); transition: border-color var(--lp-t-micro) ease, background-color var(--lp-t-micro) ease; }
ul.lp-mvd input { width: 20px; height: 20px; accent-color: var(--wp--preset--color--teal); flex: 0 0 auto; }
ul.lp-mvd label { cursor: pointer; }
ul.lp-mvd li:has(input:checked) { border-color: var(--wp--preset--color--teal); background: var(--wp--preset--color--mist); }
ul.lp-mvd li:has(input:checked) label { text-decoration: line-through; text-decoration-color: color-mix(in srgb, var(--wp--preset--color--contrast) 45%, transparent); }
.lp-mvd-hint { font-size: .9rem; color: var(--wp--preset--color--muted); margin: .8rem 0 0; }
.lp-mvd-meter { height: 6px; border-radius: 6px; background: var(--wp--preset--color--line); overflow: hidden; margin-top: .8rem; }
.lp-mvd-meter span { display: block; height: 100%; background: var(--wp--preset--color--teal); transform-origin: 0 50%; transform: scaleX(0); transition: transform var(--lp-t-comp) var(--lp-ease); }
[dir="rtl"] .lp-mvd-meter span { transform-origin: 100% 50%; }
.lp-mvd-status { margin: .5rem 0 0; font-weight: 600; font-size: .95rem; }

/* ---------- FAQ tools ---------- */
.lp-faq-tools { display: grid; gap: .6rem; margin-bottom: .6rem; }
.lp-faq-tools label { font-weight: 600; font-size: .92rem; }
.lp-faq-tools input[type="search"] { width: 100%; box-sizing: border-box; font: inherit; padding: .7rem .9rem; border-radius: 10px; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); }
.lp-faq-tools input[type="search"]:focus { outline: 3px solid color-mix(in srgb, var(--wp--preset--color--sea) 35%, transparent); border-color: var(--wp--preset--color--sea); }
.lp-faq-cats { display: flex; flex-wrap: wrap; gap: .4rem; }
.lp-faq-cats button { font: inherit; font-size: .85rem; padding: .35rem .75rem; border-radius: 999px; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); cursor: pointer; }
.lp-faq-cats button[aria-pressed="true"] { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--on-contrast); border-color: var(--wp--preset--color--contrast); }
.lp-faq-cats button:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 2px; }
.lp-faq-count { margin: 0; font-size: .82rem; color: var(--wp--preset--color--muted); }
.lp-faq-none { padding: 1rem; border-radius: 12px; background: var(--wp--preset--color--sunk); }
.wp-block-details[hidden] { display: none; }
@media (prefers-reduced-motion: no-preference) {
	.wp-block-details[open] > :not(summary) { animation: lp-rise var(--lp-t-comp) var(--lp-ease) both; }
	.wp-block-details summary::after { transition: transform var(--lp-t-comp) var(--lp-ease); }
	.wp-block-details[open] summary::after { transform: rotate(180deg); }
}
.wp-block-details summary:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 3px; border-radius: 4px; }

/* ---------- Tabs (rating guide) ---------- */
.lp-rate-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin: .4rem 0 1rem; }
.lp-rate-tabs [role="tab"] { font: inherit; display: flex; flex-direction: column; align-items: flex-start; gap: .1rem; padding: .6rem 1rem; border-radius: 12px; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); cursor: pointer; font-weight: 700; transition: border-color var(--lp-t-micro) ease, background-color var(--lp-t-micro) ease; }
.lp-rate-tabs [role="tab"] small { font-weight: 500; font-size: .75rem; color: var(--wp--preset--color--muted); }
.lp-rate-tabs [role="tab"][aria-selected="true"] { border-color: var(--wp--preset--color--contrast); box-shadow: inset 0 -3px 0 var(--wp--preset--color--sun); }
.lp-rate-tabs [role="tab"]:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 2px; }
.lp-fade { animation: lp-rise var(--lp-t-comp) var(--lp-ease) both; }

/* ---------- Testing journey stepper ---------- */
ol.lp-steps.is-enhanced > li { position: relative; }
ol.lp-steps.is-enhanced > li::before { transition: color var(--lp-t-comp) ease, transform var(--lp-t-comp) var(--lp-ease); }
ol.lp-steps.is-enhanced > li.is-current::before { color: var(--wp--preset--color--contrast); }
ol.lp-steps.is-enhanced > li.is-done::before { content: "\2713"; color: var(--wp--preset--color--teal); }
.lp-step-done { display: inline-block; margin-inline-start: .6rem; padding: .1rem .55rem; border-radius: 999px; font-size: .75rem; font-weight: 600; background: var(--wp--preset--color--mist); color: var(--wp--preset--color--contrast); vertical-align: middle; }
@media (prefers-reduced-motion: no-preference) { ol.lp-steps.is-enhanced > li.is-current::before { transform: scale(1.08); } }

/* ---------- Privacy contents ---------- */
.lp-toc { border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius); background: var(--wp--preset--color--surface); padding: .9rem 1.2rem; margin-bottom: 1.5rem; }
.lp-toc summary { cursor: pointer; font-weight: 700; }
.lp-toc ol { margin: .6rem 0 0; padding-inline-start: 1.2rem; display: grid; gap: .25rem; }
.lp-toc a { color: var(--wp--preset--color--sea); }
.lp-legal h2:focus { outline: none; }
.lp-legal h2:target, .lp-legal h2:focus-visible { box-shadow: inset 4px 0 0 var(--wp--preset--color--sun); padding-inline-start: .6rem; }

/* ---------- Forms ---------- */
.lp-form input, .lp-form select, .lp-form textarea { transition: border-color var(--lp-t-micro) ease, box-shadow var(--lp-t-micro) ease, background-color var(--lp-t-micro) ease; }
.lp-form input:focus, .lp-form select:focus, .lp-form textarea:focus { background: var(--wp--preset--color--surface); }
.lp-form [aria-invalid="true"] { border-color: #B3261E !important; }
.lp-field-err { color: #B3261E; font-size: .85rem; font-weight: 500; }
.lp-field-err:empty { display: none; }
.lp-check .lp-field-err { grid-column: 2; }
.lp-err-summary ul { margin: .4rem 0 0; padding-inline-start: 1.2rem; }
.lp-err-summary a { color: #8C1D18; font-weight: 600; }
@media (prefers-reduced-motion: no-preference) { .lp-form-msg:not([hidden]) { animation: lp-rise var(--lp-t-comp) var(--lp-ease) both; } }

/* ---------- Store cards (Get LuminaPath) ---------- */
.lp-store-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1.25rem; }
.lp-store-card { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius); padding: 1.4rem; display: flex; flex-direction: column; gap: .7rem; }
.lp-store-card header { display: flex; gap: .8rem; align-items: center; }
.lp-store-card h3 { margin: 0; font-size: 1.15rem; }
.lp-store-card-icon { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--wp--preset--color--sunk); color: var(--wp--preset--color--contrast); flex: 0 0 auto; }
.lp-store-card.is-available .lp-store-card-icon, .lp-store-card.is-closed-testing .lp-store-card-icon { background: #000; }
.lp-store-plat, .lp-store-desc, .lp-store-checked { margin: 0; }
.lp-store-plat { font-size: .88rem; color: var(--wp--preset--color--muted); }
.lp-store-desc { color: var(--wp--preset--color--muted); }
.lp-store-checked { font-size: .8rem; color: var(--wp--preset--color--muted); margin-top: auto; }
.lp-pill { margin: 0; width: fit-content; font-size: .75rem; font-weight: 700; padding: .2rem .65rem; border-radius: 999px; border: 1px solid var(--wp--preset--color--line); }
.lp-pill-available { background: var(--wp--preset--color--mist); }
.lp-pill-closed-testing { background: var(--wp--preset--color--dawn); }
.lp-pill-coming-soon, .lp-pill-unavailable { background: var(--wp--preset--color--sunk); }
.lp-store-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.lp-btn-solid, .lp-btn-ghost { display: inline-block; text-decoration: none !important; border-radius: 999px; padding: .7rem 1.2rem; font-weight: 600; font-size: .95rem; }
.lp-btn-ghost { background: transparent !important; color: var(--wp--preset--color--contrast) !important; border: 2px solid var(--wp--preset--color--contrast); }
.lp-text-link { font-size: .88rem; font-weight: 600; color: var(--wp--preset--color--sea); }
.lp-listing-link { margin: .8rem 0 0; font-weight: 600; }
.lp-store-test .lp-store-txt small { opacity: 1; }
.lp-store-off { opacity: .6; cursor: not-allowed; }

/* ---------- Rating guide ---------- */
.lp-rate { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius); padding: 1.5rem; }
.lp-rate-choose { margin: 0; font-weight: 700; }
.lp-rate-steps { margin: 0 0 .8rem; padding-inline-start: 1.3rem; display: grid; gap: .45rem; }
.lp-rate-note { margin: 0 0 1rem; padding: .9rem 1rem; border-radius: 12px; background: var(--wp--preset--color--dawn); border: 1px solid var(--wp--preset--color--line); }
.lp-rate-small { font-size: .88rem; color: var(--wp--preset--color--muted); margin: 0 0 .8rem; }
.lp-rate-integrity { margin: 1rem 0 0; padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--line); font-size: .92rem; }

/* ---------- About timeline ---------- */
/* Timeline. The list keeps a top margin of its own: a plain "margin: 0" here used to cancel the flow-layout
   block gap, so the first card touched the heading above it (2.3 fix). 24 px on phones → 36 px on desktop. */
ol.lp-timeline { --lp-tl-gap: .8rem; --lp-tl-dot: 1rem; list-style: none; margin: clamp(1.5rem, 1rem + 1.6vw, 2.25rem) 0 0; padding: 0; position: relative; display: grid; gap: var(--lp-tl-gap); }
ol.lp-timeline > li { position: relative; padding-inline-start: 2.4rem; }
/* Marker: same 22 px ring as before (it was 16 px + 3 px border, content-box), now border-box so its centre sits
   exactly on the connector (12 px) and on the first line of the card's summary. */
ol.lp-timeline > li::before { content: ""; position: absolute; z-index: 1; inset-inline-start: 1px; top: var(--lp-tl-dot); width: 22px; height: 22px; box-sizing: border-box; border-radius: 50%; background: var(--wp--preset--color--surface); border: 3px solid var(--wp--preset--color--sun); }
/* Connector: one segment per item, from this marker to the next one, so the line never runs above the
   first marker or below the last one, whatever the card heights. */
ol.lp-timeline > li:not(:last-child)::after { content: ""; position: absolute; inset-inline-start: 11px; top: calc(var(--lp-tl-dot) + 22px); bottom: calc(-1 * (var(--lp-tl-gap) + var(--lp-tl-dot))); width: 2px; background: var(--wp--preset--color--line); }
ol.lp-timeline details { border: 1px solid var(--wp--preset--color--line); border-radius: 12px; background: var(--wp--preset--color--surface); padding: .8rem 1rem; }
ol.lp-timeline summary { cursor: pointer; font-weight: 700; display: flex; flex-wrap: wrap; gap: .2rem .7rem; align-items: baseline; }
ol.lp-timeline summary .lp-mono { font-size: .78rem; color: var(--lp-sun-ink); letter-spacing: .06em; }
ol.lp-timeline details p { margin: .5rem 0 0; color: var(--wp--preset--color--muted); }
ol.lp-timeline summary:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 3px; border-radius: 4px; }

/* ---------- Approach examples ---------- */
.lp-example { margin-top: .4rem; border-top: 1px solid var(--wp--preset--color--line); padding-top: .7rem; }
.lp-example summary { font-size: .95rem; color: var(--wp--preset--color--sea); }
.lp-example p { font-size: .95rem; }

/* ---------- Founder emblem (About) ---------- */
.lp-about-emblem { display: block; width: min(240px, 60vw); height: auto; border-radius: 50%; margin-inline: auto; box-shadow: 0 24px 50px -28px rgba(14, 35, 70, .5); }

/* ---------- Reduced motion: hard stop ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* Visually hidden text (accessible name includes the visible label, WCAG 2.5.3) */
.lp-sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ====================================================================== 2.1 */
/* Google Play badge in closed testing: store name only */
.lp-store-name-only b { font-size: 1.22rem; }
.lp-store-name-only { justify-content: center; }

/* LuminaPath sub-navigation */
.lp-subnav { margin: 0 0 var(--wp--preset--spacing--40, 1.5rem); }
.lp-subnav ul { list-style: none; margin: 0; padding: .25rem 0; display: flex; gap: .45rem; overflow-x: auto; scrollbar-width: thin; }
.lp-subnav a { display: inline-flex; align-items: center; min-height: 40px; padding: .35rem .95rem; border-radius: 999px; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); text-decoration: none; font-weight: 600; font-size: .92rem; white-space: nowrap; transition: background-color var(--lp-t-micro) ease, border-color var(--lp-t-micro) ease; }
.lp-subnav a:hover { border-color: var(--wp--preset--color--contrast); }
.lp-subnav a[aria-current="page"] { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--on-contrast); border-color: var(--wp--preset--color--contrast); }
.lp-subnav a:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 2px; }

/* Story */
.lp-big-quote { margin: 0 0 1rem; padding: 0; border: 0; }
.lp-big-quote p { font-family: var(--wp--preset--font-family--display); font-style: italic; font-weight: 600; font-size: clamp(1.9rem, 1.2rem + 3vw, 3.4rem); line-height: 1.12; margin: 0 0 .6rem; color: var(--wp--preset--color--contrast); }
.lp-big-quote cite { font-style: normal; font-weight: 600; color: var(--lp-teal-ink); font-size: .98rem; }
.lp-part-index { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.lp-part-index a { display: grid; gap: .35rem; height: 100%; box-sizing: border-box; padding: 1.2rem 1.25rem; border-radius: 14px; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); text-decoration: none; transition: transform var(--lp-t-comp) var(--lp-ease), box-shadow var(--lp-t-comp) var(--lp-ease); }
.lp-part-index a:hover { transform: translateY(-2px); box-shadow: var(--lp-lift); }
.lp-part-index span { font-family: var(--wp--preset--font-family--display); font-size: 1.9rem; font-weight: 700; color: var(--lp-sea-ink); line-height: 1; }
.lp-part-index strong { font-family: var(--wp--preset--font-family--display); font-size: 1.12rem; line-height: 1.25; }
.lp-part-index small { color: var(--wp--preset--color--muted); font-size: .92rem; }
.lp-part-head { margin-bottom: 1.5rem; }
.lp-story-row { gap: clamp(1.5rem, 4vw, 4rem) !important; margin-block: clamp(2rem, 5vw, 4rem) !important; }
.lp-story-row h3 { font-size: clamp(1.45rem, 1.1rem + 1.4vw, 2.1rem); margin-top: .2rem; }
.lp-deck-pair { gap: 1rem !important; justify-content: center; }
.lp-deck-pair .lp-deck-shot { margin: 0; flex: 0 1 230px; }
.lp-deck-shot img, .lp-moment img, .lp-scn-shot img, .lp-feat-shot img { display: block; width: 100%; height: auto; border-radius: 22px; border: 6px solid var(--wp--preset--color--contrast); box-sizing: border-box; background: var(--wp--preset--color--contrast); box-shadow: 0 18px 40px -26px rgba(14, 35, 70, .55); }
.lp-deck-shot figcaption, .lp-moment figcaption { margin-top: .55rem; text-align: center; font-size: .86rem; font-weight: 600; color: var(--wp--preset--color--muted); }
.lp-creator-quote { margin: clamp(2rem, 5vw, 3.5rem) auto; max-width: 46rem; padding: 0 0 0 1.4rem; border: 0; border-inline-start: 4px solid var(--wp--preset--color--sun); }
.lp-creator-quote p { font-family: var(--wp--preset--font-family--display); font-style: italic; font-size: clamp(1.25rem, 1rem + 1vw, 1.7rem); line-height: 1.4; margin: 0 0 .7rem; color: var(--wp--preset--color--contrast); }
.lp-creator-quote cite { font-style: normal; font-weight: 600; font-size: .95rem; color: var(--wp--preset--color--muted); }
[dir="rtl"] .lp-creator-quote { padding: 0 1.4rem 0 0; }
.lp-chips { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.lp-chips li { margin: 0; padding: .35rem .8rem; border-radius: 999px; background: var(--wp--preset--color--mist); color: var(--wp--preset--color--deep); font-size: .88rem; font-weight: 600; }
.lp-moments { gap: 1rem !important; margin-top: 1.5rem; }
.lp-moments .lp-moment { margin: 0; }
.lp-fmm { margin-top: 2rem; }
.lp-center { text-align: center; margin-inline: auto; }
.lp-center .wp-block-buttons { justify-content: center; }
.lp-small { font-size: .86rem; color: var(--wp--preset--color--muted); }
.lp-story-close .lp-small { margin-top: 1.5rem; color: var(--wp--preset--color--contrast); }
.lp-teaser-shot { max-width: 260px; margin-inline: auto; }
@media (max-width: 781px) {
	.lp-story-row.is-flipped { flex-direction: column-reverse; }
	.lp-deck-pair .lp-deck-shot { flex-basis: 46%; }
}

/* Features */
.lp-feat-filter { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; margin-bottom: 1.5rem; }
.lp-feat-filter button { min-height: 40px; padding: .35rem .95rem; border-radius: 999px; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); font: inherit; font-weight: 600; font-size: .92rem; cursor: pointer; }
.lp-feat-filter button[aria-pressed="true"] { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--on-contrast); border-color: var(--wp--preset--color--contrast); }
.lp-feat-filter button:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 2px; }
.lp-feat-count { margin: 0; margin-inline-start: auto; font-size: .9rem; color: var(--wp--preset--color--muted); }
html:not(.lp-js) .lp-feat-filter { display: none; }
.lp-feats { gap: 1.1rem !important; }
.lp-feat { display: flex; flex-direction: column; gap: .8rem; padding: 1rem; border-radius: 14px; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); transition: transform var(--lp-t-comp) var(--lp-ease), box-shadow var(--lp-t-comp) var(--lp-ease); }
.lp-feat:hover { transform: translateY(-2px); box-shadow: var(--lp-lift); }
.lp-feat[hidden] { display: none; }
.lp-feat .lp-feat-shot { margin: 0; aspect-ratio: 4 / 3.4; overflow: hidden; border-radius: 16px; }
.lp-feat .lp-feat-shot img { border-width: 5px; border-bottom: 0; border-radius: 16px 16px 0 0; box-shadow: none; }
.lp-feat h3 { font-size: 1.12rem; margin: 0 0 .3rem; }
.lp-feat p { margin: 0; font-size: .95rem; color: var(--wp--preset--color--muted); }

/* Scenarios */
.lp-scn-tabs { display: flex; gap: .6rem; overflow-x: auto; padding: .25rem .1rem 1rem; scrollbar-width: thin; }
html:not(.lp-js) .lp-scn-tabs, html:not(.lp-js) .lp-scn-ctrl { display: none; }
.lp-scn-tabs [role="tab"] { flex: 0 0 auto; display: grid; gap: .15rem; text-align: start; min-width: 11rem; max-width: 15rem; padding: .75rem 1rem; border-radius: 14px; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); font: inherit; font-weight: 700; font-size: .95rem; line-height: 1.3; cursor: pointer; transition: border-color var(--lp-t-micro) ease, background-color var(--lp-t-micro) ease; }
.lp-scn-tabs [role="tab"] small { font-weight: 600; font-size: .78rem; color: var(--lp-teal-ink); text-transform: uppercase; letter-spacing: .06em; }
[dir="rtl"] .lp-scn-tabs [role="tab"] small { text-transform: none; letter-spacing: 0; }
.lp-scn-tabs [role="tab"][aria-selected="true"] { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--on-contrast); border-color: var(--wp--preset--color--contrast); }
.lp-scn-tabs [role="tab"][aria-selected="true"] small { color: var(--wp--preset--color--gold); }
.lp-scn-tabs [role="tab"]:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 2px; }
.lp-scn { padding: clamp(1.2rem, 3vw, 2rem); border-radius: 14px; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); margin-bottom: 1.5rem; }
.lp-scn[hidden] { display: none; }
.lp-scn-head :is(h2,h3) { margin: .2rem 0 .4rem; font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem); }
.lp-scn-sit { color: var(--wp--preset--color--muted); max-width: 60ch; margin: 0 0 1.2rem; }
.lp-scn-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.6rem; }
.lp-scn-step { display: grid; grid-template-columns: minmax(170px, 260px) 1fr; gap: clamp(1rem, 4vw, 3rem); align-items: center; }
.lp-scn-shot { margin: 0; }
.lp-scn-n { margin: 0 0 .3rem; font-family: var(--wp--preset--font-family--mono); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: var(--lp-sun-ink); font-weight: 500; }
[dir="rtl"] .lp-scn-n { font-family: var(--wp--preset--font-family--arabic); letter-spacing: 0; text-transform: none; font-size: .95rem; font-weight: 600; }
.lp-scn-text :is(h3,h4) { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.25rem, 1rem + 1vw, 1.65rem); margin: 0 0 .5rem; line-height: 1.25; }
.lp-scn-text p:last-child { margin: 0; font-size: 1.05rem; max-width: 46ch; }
.lp-js .lp-scns:not(.is-ready) .lp-scn:not(:first-child) { display: none; }
.lp-js .lp-scn-steps { gap: 0; }
.lp-js .lp-scn-step { display: none; }
.lp-js .lp-scn:not(.is-ready) .lp-scn-step:first-child, .lp-js .lp-scn-step.is-on { display: grid; }
.lp-scn-ctrl { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--wp--preset--color--line); }
.lp-scn-ctrl button { min-height: 44px; padding: .5rem 1.2rem; border-radius: 999px; border: 2px solid var(--wp--preset--color--contrast); background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--on-contrast); font: inherit; font-weight: 600; cursor: pointer; }
.lp-scn-ctrl .lp-scn-prev { background: transparent; color: var(--wp--preset--color--contrast); }
.lp-scn-ctrl button:disabled { opacity: .4; cursor: default; }
.lp-scn-ctrl button:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 2px; }
.lp-scn-dots { display: flex; gap: .4rem; }
.lp-scn-dots i { width: 9px; height: 9px; border-radius: 50%; background: var(--wp--preset--color--line); transition: background-color var(--lp-t-micro) ease, transform var(--lp-t-micro) ease; }
.lp-scn-dots i.is-on { background: var(--wp--preset--color--sun); transform: scale(1.25); }
@media (prefers-reduced-motion: no-preference) {
	@keyframes lp-step-in { from { opacity: 0; transform: translate3d(0, 10px, 0); } to { opacity: 1; transform: none; } }
	.lp-scn.is-ready .lp-scn-step.is-on { animation: lp-step-in var(--lp-t-comp) var(--lp-ease) both; }
}
@media (max-width: 600px) {
	.lp-scn-step { grid-template-columns: 1fr; }
	.lp-scn-shot { max-width: 240px; margin-inline: auto; }
	.lp-scn-ctrl button { padding-inline: .9rem; }
}

/* Share bar */
.lp-share { margin: 0; padding: clamp(2rem, 4vw, 3rem) var(--wp--style--root--padding-right, 1.25rem); border-top: 1px solid var(--wp--preset--color--line); }
.lp-share-in { max-width: 1120px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.2rem; }
.lp-share-h { margin: 0; font-family: var(--wp--preset--font-family--body); font-size: 1rem; font-weight: 700; }
.lp-share ul, .lp-social ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.lp-share a, .lp-share button { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-width: 44px; min-height: 44px; padding: 0 .7rem; box-sizing: border-box; border-radius: 999px; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); font: inherit; font-size: .9rem; font-weight: 600; text-decoration: none; cursor: pointer; transition: border-color var(--lp-t-micro) ease, transform var(--lp-t-micro) ease; }
.lp-share a { padding: 0; width: 44px; }
.lp-share a:hover, .lp-share button:hover { border-color: var(--wp--preset--color--contrast); transform: translateY(-1px); }
.lp-share a:focus-visible, .lp-share button:focus-visible, .lp-social a:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 2px; }
.lp-share button.is-done { border-color: var(--wp--preset--color--teal); }
.lp-share-native[hidden] { display: none; }
.lp-share-msg { margin: 0; font-size: .9rem; color: var(--lp-teal-ink); min-height: 1.2em; }

/* Social profile buttons */
.lp-social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; text-decoration: none; transition: transform var(--lp-t-micro) ease, background-color var(--lp-t-micro) ease; }
.lp-social a:hover { transform: translateY(-2px); }
.lp-social-footer { margin-top: 1.25rem; }
.lp-social-h { margin: 0 0 .6rem; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; opacity: .65; font-weight: 600; }
[dir="rtl"] .lp-social-h { letter-spacing: 0; text-transform: none; font-size: .9rem; }
.lp-social-footer a { color: var(--wp--preset--color--on-contrast); border: 1px solid color-mix(in srgb, var(--wp--preset--color--on-contrast) 35%, transparent); }
.lp-social-footer a:hover { background: color-mix(in srgb, var(--wp--preset--color--on-contrast) 12%, transparent); }
.lp-social-header ul { flex-wrap: nowrap; gap: .25rem; }
.lp-social-header a { width: 34px; height: 34px; color: var(--wp--preset--color--contrast); }
.lp-social-header a:hover { background: var(--wp--preset--color--sunk); }
.lp-social-header svg { width: 18px; height: 18px; }
@media (max-width: 1399px) { .lp-social-header { display: none; } }
.lp-social-float-wrap { position: fixed; inset-inline-end: 14px; top: 50%; transform: translateY(-50%); z-index: 40; }
.lp-social-float ul { flex-direction: column; gap: .4rem; padding: .45rem; border-radius: 999px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); box-shadow: var(--lp-lift); }
.lp-social-float a { color: var(--wp--preset--color--contrast); }
.lp-social-float a:hover { background: var(--wp--preset--color--sunk); }
@media (max-width: 1099px) { .lp-social-float-wrap { display: none; } }
@media print { .lp-share, .lp-social-float-wrap, .lp-subnav { display: none; } }
/* 2.1 layout refinements */
.lp-subnav { width: min(1120px, 100%); max-width: none !important; margin: 1.25rem auto 0 !important; box-sizing: border-box; }
.lp-scn-shot img { width: auto; max-width: 100%; max-height: min(58vh, 560px); margin-inline: auto; }
/* Two columns from 601 px only. (Unscoped before 2.3, which overrode the one-column phone layout above.) */
@media (min-width: 601px) { .lp-scn-step { grid-template-columns: minmax(150px, auto) 1fr; } }
@media (min-width: 1024px) { .lp-scn-tabs { flex-wrap: wrap; overflow: visible; } .lp-scn-tabs [role="tab"] { max-width: none; flex: 1 1 13rem; } }
/* 2.1: the hero hills are a background layer, not a positioned box, so streaming the page on slow phones
   cannot register as a layout shift. Same image, size and position as before. */
.lp-hero::after { content: none; }
.lp-hero.has-sunrise-gradient-background { background: url("../images/hills.svg") center bottom / 100% 190px no-repeat, var(--wp--preset--gradient--sunrise) !important; }

/* ====================================================================== 2.1 motion and interaction layer 2
   Transforms and opacity only (no layout shift). Hover effects only on fine pointers. Off under reduced motion. */

/* Header hides while reading down, returns on scroll up */
.lp-header { transition: transform 340ms var(--lp-ease), box-shadow var(--lp-t-comp) var(--lp-ease), background-color var(--lp-t-comp) var(--lp-ease); }
html.lp-header-hidden .lp-header:has(.is-menu-open) { transform: none; }
html.lp-header-hidden .lp-header { transform: translateY(-105%); box-shadow: none; }
html.lp-header-hidden .lp-month-nav { top: var(--wp-admin--admin-bar--height, 0px); }
.lp-month-nav { transition: top 340ms var(--lp-ease); }

/* Reading progress on every page; back-to-top progress ring */
.lp-progress { background: linear-gradient(90deg, var(--wp--preset--color--sun), var(--wp--preset--color--gold)); }
.lp-top { overflow: visible; }
.lp-top-ring { position: absolute; inset: -4px; width: calc(100% + 8px); height: calc(100% + 8px); transform: rotate(-90deg); pointer-events: none; }
.lp-top-ring circle { fill: none; stroke: var(--wp--preset--color--sun); stroke-width: 3; stroke-dasharray: 100; stroke-dashoffset: 100; stroke-linecap: round; transition: stroke-dashoffset 120ms linear; }
[dir="rtl"] .lp-top-ring { transform: rotate(-90deg) scaleY(-1); }
.lp-top:not([hidden]) { animation: lp-pop var(--lp-t-comp) var(--lp-ease) both; }

/* Ripple */
.lp-rippling { position: relative; overflow: hidden; isolation: isolate; }
.lp-ripple { position: absolute; border-radius: 50%; pointer-events: none; background: currentColor; opacity: .18; transform: scale(0); animation: lp-ripple 600ms var(--lp-ease) forwards; z-index: -1; }
@keyframes lp-ripple { to { transform: scale(1); opacity: 0; } }

/* Spotlight on cards */
@media (hover: hover) and (pointer: fine) {
	.lp-spot { background-image: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), color-mix(in srgb, var(--wp--preset--color--gold) 16%, transparent), transparent 62%); }
	.lp-spot:not(:hover) { background-image: none; }
}

/* 3D tilt on app screens */
.lp-tilt { transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform 220ms var(--lp-ease); transform-style: preserve-3d; }
.lp-tilt:hover img { box-shadow: 0 28px 50px -28px rgba(14, 35, 70, .6); }

/* Hero: floating phones and pointer parallax */
@media (prefers-reduced-motion: no-preference) {
	@keyframes lp-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-9px); } }
	.lp-hero .lp-devices { animation: lp-float 7s ease-in-out 1.2s infinite; translate: calc(var(--px, 0) * -14px) calc(var(--py, 0) * -10px); transition: translate 600ms var(--lp-ease); }
	.lp-hero .lp-facts li { animation: lp-rise var(--lp-t-enter) var(--lp-ease) both; }
	.lp-hero .lp-facts li:nth-child(2) { animation-delay: 80ms; } .lp-hero .lp-facts li:nth-child(3) { animation-delay: 160ms; } .lp-hero .lp-facts li:nth-child(4) { animation-delay: 240ms; }
}

/* Directional and zoom entrances (added to the reveal layer) */
/* Side entrances start off-axis; clip so they never create a horizontal scroll (clip keeps sticky working). */
.lp-main, .wp-site-blocks { overflow-x: clip; }
.lp-reveal.lp-rv-start { transform: translate3d(-28px, 0, 0); }
.lp-reveal.lp-rv-end { transform: translate3d(28px, 0, 0); }
[dir="rtl"] .lp-reveal.lp-rv-start { transform: translate3d(28px, 0, 0); }
[dir="rtl"] .lp-reveal.lp-rv-end { transform: translate3d(-28px, 0, 0); }
.lp-reveal.lp-rv-zoom { transform: scale(.94); }
.lp-reveal.lp-rv-start.is-in, .lp-reveal.lp-rv-end.is-in, .lp-reveal.lp-rv-zoom.is-in { transform: none; }

/* Liturgical year bar draws itself in */
.lp-yearbar.lp-reveal { opacity: 1; transform: none; }
.lp-yearbar.lp-reveal span { transform: scaleX(0); transform-origin: 0 50%; transition: transform 700ms var(--lp-ease); }
[dir="rtl"] .lp-yearbar.lp-reveal span { transform-origin: 100% 50%; }
.lp-yearbar.lp-reveal.is-in span { transform: scaleX(1); }
.lp-yearbar.lp-reveal span:nth-child(2) { transition-delay: 80ms; } .lp-yearbar.lp-reveal span:nth-child(3) { transition-delay: 160ms; }
.lp-yearbar.lp-reveal span:nth-child(4) { transition-delay: 240ms; } .lp-yearbar.lp-reveal span:nth-child(5) { transition-delay: 320ms; }
.lp-yearbar.lp-reveal span:nth-child(n+6) { transition-delay: 400ms; }

/* Smooth open and close for every disclosure (FAQ, examples, timeline, contents) */
@media (prefers-reduced-motion: no-preference) {
	:root { interpolate-size: allow-keywords; }
	details::details-content { block-size: 0; overflow: hidden; transition: block-size var(--lp-t-comp) var(--lp-ease), content-visibility var(--lp-t-comp) allow-discrete; }
	details[open]::details-content { block-size: auto; }
	details > summary { transition: color var(--lp-t-micro) ease; }
}

/* Links: underline grows on hover */
.lp-band p a:not(.wp-block-button__link), .lp-legal a, .lp-scn-text a { text-underline-offset: 3px; text-decoration-thickness: 1px; transition: text-underline-offset var(--lp-t-micro) ease, text-decoration-thickness var(--lp-t-micro) ease; }
.lp-band p a:not(.wp-block-button__link):hover, .lp-legal a:hover { text-underline-offset: 5px; text-decoration-thickness: 2px; }

/* Numbers band */
.lp-stats { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
.lp-stats li { margin: 0; padding: 1.25rem 1.3rem; border-radius: 14px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); display: grid; gap: .25rem; transition: transform var(--lp-t-comp) var(--lp-ease), box-shadow var(--lp-t-comp) var(--lp-ease); }
.lp-stats li:hover { transform: translateY(-3px); box-shadow: var(--lp-lift); }
.lp-stats strong { font-family: var(--wp--preset--font-family--display); font-size: clamp(2.2rem, 1.6rem + 2vw, 3rem); line-height: 1; color: var(--wp--preset--color--contrast); font-variant-numeric: tabular-nums; display: inline-block; min-inline-size: calc(var(--d, 3) * 0.62em); }
.lp-stats span { color: var(--wp--preset--color--muted); font-weight: 600; }
.lp-stats li:nth-child(4n+1) strong { color: var(--lp-sea-ink); } .lp-stats li:nth-child(4n+2) strong { color: var(--lp-teal-ink); } .lp-stats li:nth-child(4n+3) strong { color: var(--lp-sun-ink); }

/* Story: move through the day */
.lp-moment-ctl { display: none; align-items: center; gap: 1rem; flex-wrap: wrap; margin-top: 1.4rem; padding: .9rem 1.2rem; border-radius: 999px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); }
.lp-js .lp-moment-ctl { display: flex; }
.lp-moment-ctl label { font-weight: 700; }
.lp-moment-ctl input[type="range"] { flex: 1 1 14rem; accent-color: var(--wp--preset--color--sun); min-height: 24px; }
.lp-moment-ctl output { min-inline-size: 7ch; font-family: var(--wp--preset--font-family--display); font-weight: 600; font-size: 1.1rem; }
.lp-moments .lp-moment { transition: transform var(--lp-t-comp) var(--lp-ease), opacity var(--lp-t-comp) ease, filter var(--lp-t-comp) ease; }
.lp-moments .lp-moment.is-dim img { opacity: .5; filter: saturate(.7); }
.lp-moments .lp-moment img { transition: opacity var(--lp-t-comp) var(--lp-ease), filter var(--lp-t-comp) var(--lp-ease); }
.lp-moments .lp-moment.is-active { transform: translateY(-8px) scale(1.04); }

/* Lightbox: image swap */
@keyframes lp-swap { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) { .lp-lightbox img.lp-swap { animation: lp-swap var(--lp-t-comp) var(--lp-ease) both; } .lp-lightbox::backdrop { animation: lp-fade-in var(--lp-t-comp) ease both; } }
@keyframes lp-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes lp-pop { from { opacity: 0; transform: scale(.8); } to { opacity: 1; transform: none; } }

/* Scenario steps slide in from the side you move to */
@media (prefers-reduced-motion: no-preference) {
	@keyframes lp-step-next { from { opacity: 0; transform: translate3d(32px, 0, 0); } to { opacity: 1; transform: none; } }
	@keyframes lp-step-prev { from { opacity: 0; transform: translate3d(-32px, 0, 0); } to { opacity: 1; transform: none; } }
	.lp-scn.is-ready[data-dir="next"] .lp-scn-step.is-on { animation-name: lp-step-next; }
	.lp-scn.is-ready[data-dir="prev"] .lp-scn-step.is-on { animation-name: lp-step-prev; }
	[dir="rtl"] .lp-scn.is-ready[data-dir="next"] .lp-scn-step.is-on { animation-name: lp-step-prev; }
	[dir="rtl"] .lp-scn.is-ready[data-dir="prev"] .lp-scn-step.is-on { animation-name: lp-step-next; }
	.lp-scn-tabs [role="tab"] { transition: transform var(--lp-t-micro) var(--lp-ease), background-color var(--lp-t-micro) ease, border-color var(--lp-t-micro) ease; }
	.lp-scn-tabs [role="tab"]:hover { transform: translateY(-2px); }
	.lp-subnav a:hover { transform: translateY(-1px); }
}

/* Store badge shine */
.lp-store-live { position: relative; overflow: hidden; isolation: isolate; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
	.lp-store-live::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, .28) 50%, transparent 65%); transform: translateX(-120%); }
	.lp-store-live:hover::after { transform: translateX(120%); transition: transform 700ms var(--lp-ease); }
	.lp-store-live > * { position: relative; z-index: 1; }
}

/* Social icons take their brand colour on hover */
.lp-social a { transition: transform var(--lp-t-micro) ease, background-color var(--lp-t-micro) ease, color var(--lp-t-micro) ease, border-color var(--lp-t-micro) ease; }
.lp-social-footer a:hover { background: var(--brand, var(--wp--preset--color--sea)); border-color: var(--brand, var(--wp--preset--color--sea)); color: #fff; }
.lp-social-header a:hover, .lp-social-float a:hover { color: var(--brand, var(--wp--preset--color--sea)); }
.lp-share a:hover { color: var(--wp--preset--color--sea); }

/* Copy link confirmation */
@media (prefers-reduced-motion: no-preference) { .lp-share button.is-done svg { animation: lp-pop 360ms var(--lp-ease) both; } }

/* ===================================================================== 2.2 Testimonials */
.lp-tm { position: relative; margin-top: 1.75rem; }
.lp-tm-track { display: grid; grid-auto-flow: column; grid-auto-columns: min(23rem, 86%); gap: 1rem; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 2px; padding: .5rem 2px 1.25rem; scrollbar-width: thin; }
.lp-tm-track:focus-visible { outline: 3px solid var(--wp--preset--color--sea); outline-offset: 4px; border-radius: 16px; }
.lp-tm-card { scroll-snap-align: start; margin: 0; display: flex; flex-direction: column; gap: 1rem; padding: 1.5rem 1.5rem 1.35rem; border-radius: 14px; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); transition: transform var(--lp-t-comp) var(--lp-ease), box-shadow var(--lp-t-comp) var(--lp-ease); }
.lp-tm-q { color: var(--wp--preset--color--gold); flex: none; }
.lp-tm-card blockquote { margin: 0; padding: 0; border: 0; flex: 1; font-family: var(--wp--preset--font-family--display); font-size: 1.06rem; line-height: 1.6; color: var(--wp--preset--color--contrast); }
.lp-tm-card blockquote p { margin: 0; }
.lp-tm-card figcaption { display: grid; gap: .35rem; padding-top: .9rem; border-top: 1px solid var(--wp--preset--color--line); font-size: .9rem; }
.lp-tm-who b { display: block; font-weight: 700; color: var(--wp--preset--color--contrast); }
.lp-tm-place { color: var(--wp--preset--color--muted); }
.lp-tm-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; color: var(--wp--preset--color--muted); font-size: .82rem; }
.lp-tm-badge { display: inline-block; padding: .15rem .6rem; border-radius: 999px; background: color-mix(in srgb, var(--wp--preset--color--teal) 12%, var(--wp--preset--color--surface)); color: var(--lp-teal-ink); font-weight: 600; }
.lp-tm-nav { display: flex; justify-content: flex-end; gap: .5rem; margin-top: .25rem; }
.lp-tm-nav[hidden] { display: none; }
.lp-tm-nav button { inline-size: 44px; block-size: 44px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); cursor: pointer; transition: transform var(--lp-t-micro) var(--lp-ease), background var(--lp-t-micro) ease, opacity var(--lp-t-micro) ease; }
.lp-tm-nav button:hover:not(:disabled) { transform: translateY(-2px); background: var(--wp--preset--color--sunk); }
.lp-tm-nav button:disabled { opacity: .4; cursor: default; }
.lp-tm-nav button:focus-visible { outline: 3px solid var(--wp--preset--color--sea); outline-offset: 2px; }
[dir="rtl"] .lp-tm-nav svg { transform: scaleX(-1); }
.lp-tm-note { margin: 1rem 0 0; max-width: 70ch; font-size: .88rem; color: var(--wp--preset--color--muted); }
.lp-tm-note a { font-weight: 600; color: var(--lp-sea-ink, var(--wp--preset--color--sea)); }
.lp-tm-empty { margin: 1.25rem 0 0; padding: 1rem 1.25rem; border-radius: 14px; border: 1px dashed var(--wp--preset--color--line); background: var(--wp--preset--color--surface); max-width: 70ch; }
.lp-tm-admin { margin: 0; }
@media (hover: hover) and (pointer: fine) { .lp-tm-card:hover { transform: translateY(-4px); box-shadow: var(--lp-lift); } }

/* ===================================================================== 2.2 Live visitors */
.lp-live { display: flex; align-items: center; justify-content: center; gap: .55rem; min-block-size: 1.7em; margin: 1.5rem 0 0; font-size: .95rem; font-weight: 600; visibility: hidden; opacity: 0; transition: opacity var(--lp-t-enter) var(--lp-ease); }
.lp-live.is-on { visibility: visible; opacity: 1; }
.lp-live-dot { position: relative; inline-size: .6rem; block-size: .6rem; border-radius: 50%; background: #1A9F5B; flex: none; }
.lp-live-dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: inherit; animation: lp-live-pulse 2s var(--lp-ease) infinite; }
@keyframes lp-live-pulse { from { transform: scale(1); opacity: .7; } to { transform: scale(2.8); opacity: 0; } }
.lp-live-footer { justify-content: flex-start; margin: .75rem 0 0; font-size: .85rem; font-weight: 500; }
.lp-live-home { color: var(--wp--preset--color--contrast); }
@media (prefers-reduced-motion: reduce) { .lp-live-dot::after { animation: none; display: none; } .lp-live { transition: none; } }

/* ===================================================================== 2.3 Fixes from the site audit */
/* Card titles: the audit measured 0–5 px between a card title and its text (Home, LuminaPath, Features,
   store cards, Journey months). Same cause as the timeline: margins reset to 0 inside flex/grid cards. */
.lp-main :is(h3, h2.lp-h3, h4):not(.lp-scn-text *) + :is(p, ul, ol):not(.lp-eyebrow) { margin-block-start: .5rem; }
.lp-main :is(h3, h2.lp-h3) + :is(.lp-store-plat, .lp-season) { margin-block-start: .2rem; }
/* Journey month toggles (phones): at least 32 px tall (WCAG 2.5.8 asks for 24). */
@media (max-width: 600px) { .lp-month-toggle { min-block-size: 2rem; padding-block: .2rem; } }
/* Header logo link: never smaller than 24 px on very small screens. */
.lp-header .wp-block-site-logo { flex-shrink: 0; }
.lp-header .wp-block-site-logo img { min-inline-size: 24px; min-block-size: 24px; }
/* Year bar: a season name that does not fit its segment is hidden (it stays in the tooltip and for screen readers). */
.lp-yearbar span.lp-tight { color: transparent; }
/* Language links at the top of a hand-written privacy policy: comfortable targets. */
.luminapath-privacy-policy nav a { display: inline-block; padding-block: .2rem; }

/* ===================================================================== 2.3 Guided tour */
.lp-tour-stops { list-style: none; margin: 1.5rem 0 1rem; padding: .25rem .1rem .75rem; display: flex; gap: .5rem; overflow-x: auto; scrollbar-width: thin; }
.lp-tour-stops li { flex: 0 0 auto; margin: 0; }
.lp-tour-stops button { display: inline-flex; align-items: center; gap: .55rem; min-block-size: 44px; padding: .45rem 1rem .45rem .5rem; border-radius: 999px; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); color: var(--wp--preset--color--contrast); font: inherit; font-size: .92rem; font-weight: 600; cursor: pointer; transition: background-color var(--lp-t-micro) ease, border-color var(--lp-t-micro) ease, transform var(--lp-t-micro) var(--lp-ease); }
[dir="rtl"] .lp-tour-stops button { padding: .45rem .5rem .45rem 1rem; }
.lp-tour-n { display: inline-grid; place-items: center; inline-size: 1.8rem; block-size: 1.8rem; border-radius: 50%; background: var(--wp--preset--color--sunk); font-family: var(--wp--preset--font-family--mono); font-size: .8rem; }
.lp-tour-stops button[aria-current="step"] { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--on-contrast); border-color: var(--wp--preset--color--contrast); }
.lp-tour-stops button[aria-current="step"] .lp-tour-n { background: var(--wp--preset--color--gold); color: var(--wp--preset--color--contrast); }
.lp-tour-stops button:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 2px; }
@media (hover: hover) and (pointer: fine) { .lp-tour-stops button:hover:not([aria-current="step"]) { border-color: var(--wp--preset--color--sea); transform: translateY(-2px); } }
html:not(.lp-js) .lp-tour-stops { display: none; }
.lp-tour-link { margin: 1.25rem 0 0; }
.lp-text-link { font-weight: 600; color: var(--lp-sea-ink, var(--wp--preset--color--sea)); text-decoration-thickness: 1px; text-underline-offset: 3px; display: inline-block; padding-block: .2rem; }
[dir="rtl"] .lp-text-link span[aria-hidden] { display: inline-block; transform: scaleX(-1); }

/* ===================================================================== 2.3 Words we use */
.lp-terms { margin: 0; }
.lp-terms .lp-eyebrow { margin: 0 0 .6rem; }
.lp-terms-list { display: flex; flex-wrap: wrap; gap: .5rem; align-items: flex-start; }
.lp-term { margin: 0; border: 1px solid var(--wp--preset--color--line); border-radius: 22px; background: var(--wp--preset--color--surface); transition: border-color var(--lp-t-micro) ease, box-shadow var(--lp-t-comp) var(--lp-ease); }
.lp-term[open] { flex-basis: 100%; border-color: color-mix(in srgb, var(--wp--preset--color--teal) 45%, var(--wp--preset--color--line)); box-shadow: var(--lp-lift); }
.lp-term summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: .45rem; min-block-size: 44px; padding: .35rem 1rem; font-weight: 600; font-size: .95rem; color: var(--wp--preset--color--contrast); border-radius: 22px; }
.lp-term summary::-webkit-details-marker { display: none; }
.lp-term summary::after { content: none; }
.lp-term-i { color: var(--lp-teal-ink); flex: none; transition: transform var(--lp-t-micro) var(--lp-ease); }
.lp-term[open] .lp-term-i { transform: rotate(180deg); }
.lp-term summary:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 2px; }
.lp-term p { margin: 0; padding: 0 1rem 1rem; max-width: 70ch; color: var(--wp--preset--color--muted); }

/* ===================================================================== 2.3 Troubleshooting, help links, next step */
.lp-guides { display: grid; gap: .75rem; margin: 1.5rem 0; max-width: 860px; }
.lp-guides .wp-block-details { margin: 0; padding: 1rem 1.25rem; border-radius: 14px; border: 1px solid var(--wp--preset--color--line); background: var(--wp--preset--color--surface); }
.lp-guides .wp-block-details summary { min-block-size: 32px; align-items: center; }
.lp-guides .wp-block-details[open] { box-shadow: var(--lp-lift); }
ol.lp-guide-steps { margin: .9rem 0 .4rem; padding-inline-start: 1.4rem; display: grid; gap: .45rem; }
ol.lp-guide-steps li::marker { font-weight: 700; color: var(--lp-sun-ink); }
.lp-guides .wp-block-details > p { margin: .5rem 0 0; }
.lp-help-link { font-size: .9rem; font-weight: 600; color: var(--lp-sea-ink, var(--wp--preset--color--sea)); display: inline-block; padding-block: .2rem; text-underline-offset: 3px; }
.lp-feat p:has(> .lp-help-link) { margin-block-start: .35rem; }
.lp-next-step .wp-block-buttons { margin-block-start: 1.25rem; }
.lp-faq .wp-block-details.lp-target { box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--sun) 55%, transparent); border-radius: 12px; }
.lp-privacy-site { border-top: 1px solid var(--wp--preset--color--line); }

/* ===================================================================== 2.3 Image that failed to load */
.lp-img-failed { position: relative; display: grid; place-items: center; min-block-size: 10rem; padding: 1rem; border-radius: 14px; border: 1px dashed var(--wp--preset--color--line); background: var(--wp--preset--color--sunk); text-align: center; }
.lp-img-failed img { display: none !important; }
.lp-img-fallback { display: grid; gap: .35rem; justify-items: center; color: var(--wp--preset--color--muted); font-size: .9rem; max-width: 30ch; }
.lp-img-fallback svg { color: var(--lp-teal-ink); }

/* ===================================================================== 2.4 Navigation: four top items, two dropdowns */
/* Header row: brand and menu never touch (the 2.3 header used space-between with no minimum gap, so the
   tagline ran into "Home" when seven items filled the row). */
.lp-header-row { column-gap: clamp(1.25rem, 3vw, 3rem); }
.lp-header .lp-brand { min-width: 0; flex-shrink: 1; }
.lp-header .lp-header-tools { flex-shrink: 0; }
/* Dropdown panel: same surface, border, radius and shadow as the language menu */
.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child .wp-block-navigation__submenu-container { min-width: 15.5rem; padding: .4rem; gap: .1rem; border: 1px solid var(--wp--preset--color--line) !important; border-radius: 14px; background: var(--wp--preset--color--surface) !important; color: var(--wp--preset--color--contrast) !important; box-shadow: var(--lp-lift); top: calc(100% + .35rem); }
.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child .wp-block-navigation__submenu-container::before { content: ""; position: absolute; inset-inline: 0; top: -.5rem; height: .5rem; } /* hover bridge */
.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; }
.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container a { display: block; width: 100%; box-sizing: border-box; padding: .55rem .75rem; border-radius: 8px; white-space: nowrap; font-size: .95rem; }
.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container a:hover { background: var(--wp--preset--color--sunk); }
.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container a[aria-current="page"] { background: var(--wp--preset--color--mist); color: var(--wp--preset--color--contrast); font-weight: 600; }
.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-submenu__toggle { padding: .3rem; margin: 0; border-radius: 999px; min-width: 28px; min-height: 28px; display: inline-grid; place-items: center; } /* no overlap with the label link (WCAG 2.5.8) */
.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child > .wp-block-navigation-item__content { padding-inline-end: .3rem; }
.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-submenu__toggle:hover { background: var(--wp--preset--color--sunk); }
.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-submenu__toggle:focus-visible, .lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) a:focus-visible { outline: 3px solid var(--wp--preset--color--sun); outline-offset: 2px; }
.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-icon svg { width: 12px; height: 12px; transition: transform var(--lp-t-micro) var(--lp-ease); }
.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child:is(:hover, :focus-within) > .wp-block-navigation__submenu-icon svg,
.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation-submenu__toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
/* The section you are in: a soft pill on its menu item (the exact current page keeps the navy pill) */
.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .lp-current-section > a { background: var(--wp--preset--color--sunk); font-weight: 600; }
@media (prefers-reduced-motion: no-preference) {
	.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child .wp-block-navigation__submenu-container { transform: translate3d(0, -4px, 0); transition: opacity var(--lp-t-comp) var(--lp-ease), transform var(--lp-t-comp) var(--lp-ease), visibility 0s linear var(--lp-t-comp); }
	.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child:is(:hover, :focus-within) > .wp-block-navigation__submenu-container,
	.lp-header .wp-block-navigation__responsive-container:not(.is-menu-open) .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container { transform: none; transition-delay: 0s; }
}
/* Mobile menu (below 1024 px): a full-screen, start-aligned list. Sections are labels, their pages listed below. */
.wp-block-navigation__responsive-container.is-menu-open { padding: 1rem clamp(16px, 5vw, 2rem) 2rem !important; background: var(--wp--preset--color--base) !important; color: var(--wp--preset--color--contrast) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: stretch !important; padding-top: 2.75rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: stretch !important; gap: .25rem !important; width: 100%; box-sizing: border-box; padding: 0 !important; margin: 0; } /* the browser's list indent stayed on the right in RTL */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: stretch !important; width: 100%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { display: block; width: 100%; box-sizing: border-box; padding: .7rem .9rem !important; border-radius: 12px; font-size: 1.1rem; }
.wp-block-navigation__responsive-container.is-menu-open .has-child > .wp-block-navigation-item__content { margin-top: .75rem; font-family: var(--wp--preset--font-family--mono); font-size: .8rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--lp-teal-ink); }
[dir="rtl"] .wp-block-navigation__responsive-container.is-menu-open .has-child > .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--arabic); letter-spacing: 0; text-transform: none; font-size: .95rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { position: static !important; width: 100% !important; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important; gap: .1rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: 1.05rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--sunk); }
.wp-block-navigation__responsive-container.is-menu-open a[aria-current="page"] { background: var(--wp--preset--color--contrast) !important; color: var(--wp--preset--color--on-contrast) !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle { display: none; }
