/*
 * AURA One Site Kit
 *
 * This stylesheet deliberately styles only components inserted from the kit.
 * It never resets Elementor globally and relies on the parent theme's tokens
 * where they are available.
 */

.aura-kit-shell {
	width: min(100%, var(--aura-container, 1240px));
	margin-inline: auto;
	padding-inline: clamp(1.25rem, 3vw, 2.5rem);
}

/* Optional Elementor Pro Theme Builder headers. These are intentionally
 * separate from the native AURA One header and activate only when the site
 * owner assigns Elementor Display Conditions to one of the templates. */
.aura-kit-header {
	position: relative;
	z-index: 30;
	border-bottom: 1px solid var(--aura-color-border, #d9ddd5);
	background: var(--aura-color-surface, #fbfaf7);
	color: var(--aura-color-text, #17201c);
}

.aura-kit-header__inner {
	display: flex;
	align-items: center;
	min-height: clamp(4.5rem, 6vw, 5.75rem);
	gap: clamp(1rem, 2vw, 2.5rem);
}

/* Headers are navigation chrome, not editorial content. They intentionally
 * escape the Site Kit reading/container width while keeping responsive gutters. */
.aura-kit-header .aura-kit-header__inner.aura-kit-shell {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: clamp(1.25rem, 4vw, 4rem);
}

.aura-kit-header__logo {
	flex: 0 0 auto;
}

.aura-kit-header__logo .elementor-widget-container,
.aura-kit-header__logo .elementor-widget-container a {
	display: flex;
	align-items: center;
}

.aura-kit-header__logo img {
	width: auto;
	max-width: min(10.5rem, 22vw);
	max-height: 3.2rem;
}

.aura-kit-header__menu {
	min-width: 0;
}

.aura-kit-header--classic-1 .aura-kit-header__menu {
	flex: 1 1 auto;
}

.aura-kit-header--classic-1 .aura-kit-header__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	min-height: clamp(5.5rem, 7vw, 6.4rem);
	gap: clamp(1rem, 2.25vw, 2.75rem);
}

.aura-kit-header--classic-1 .aura-kit-header__logo {
	grid-column: 1;
	justify-self: start;
}

.aura-kit-header--classic-1 .aura-kit-header__logo img {
	max-width: min(8.75rem, 16vw);
	max-height: 4.75rem;
}

.aura-kit-header--classic-1 .aura-kit-header__menu {
	grid-column: 2;
	justify-self: center;
	flex: 0 1 auto;
}

.aura-kit-header--classic-1 .aura-kit-header__menu .elementor-nav-menu {
	justify-content: center;
}

.aura-kit-header--classic-1 .aura-kit-header__actions {
	position: absolute;
	top: 50%;
	right: clamp(1.25rem, 4vw, 4rem);
	transform: translateY(-50%);
}

.aura-kit-header__menu .elementor-nav-menu {
	gap: clamp(.3rem, 1vw, 1.15rem);
}

.aura-kit-header__menu .elementor-nav-menu a {
	padding: .65rem .4rem;
	color: var(--aura-color-text, #17201c);
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: .875rem;
	font-weight: 700;
	line-height: 1.2;
}

.aura-kit-header__menu .elementor-nav-menu a:hover,
.aura-kit-header__menu .elementor-nav-menu a.elementor-item-active {
	color: var(--aura-color-accent, #285c4d);
}

.aura-kit-header__menu .elementor-menu-toggle {
	margin-left: auto;
	padding: .65rem;
	border: 1px solid var(--aura-color-border, #d9ddd5);
	border-radius: var(--aura-radius-small, .375rem);
	color: var(--aura-color-text, #17201c);
}

.aura-kit-header--minimal .aura-kit-header__inner {
	justify-content: space-between;
}

.aura-kit-header--minimal .aura-kit-header__menu {
	margin-left: auto;
}

.aura-kit-header--minimal .elementor-menu-toggle {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	border-radius: var(--aura-radius-button, 999px);
	font-size: .75rem;
	font-weight: 750;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.aura-kit-header--minimal .elementor-menu-toggle::after {
	content: 'Menu';
}

.aura-kit-header--minimal .elementor-nav-menu--dropdown {
	min-width: min(20rem, calc(100vw - 2rem));
	margin-top: .75rem;
	padding: .8rem;
	border: 1px solid var(--aura-color-border, #d9ddd5);
	border-radius: var(--aura-radius-card, .75rem);
	background: var(--aura-color-surface, #fbfaf7);
	box-shadow: var(--aura-shadow-card, 0 1.25rem 3.75rem rgb(23 32 28 / 8%));
}

.aura-kit-header__actions {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: .55rem;
}

.aura-kit-header__search {
	width: 2.5rem;
}

.aura-kit-header__search .elementor-search-form__container {
	min-height: 2.5rem;
}

.aura-kit-header__search .elementor-search-form__submit {
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--aura-color-accent, #285c4d);
}

.aura-kit-header__search .elementor-search-form__submit:hover,
.aura-kit-header__search .elementor-search-form__submit:focus-visible {
	background: transparent;
	color: var(--aura-color-accent, #285c4d);
}

.aura-kit-header__cta .aura-kit-button {
	padding: .75rem 1rem;
	border-radius: var(--aura-radius-button, 999px);
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: .78rem;
	font-weight: 750;
	line-height: 1.15;
}

.aura-kit-header__cta--secondary .aura-kit-button {
	border: 1px solid var(--aura-color-accent, #285c4d);
	background: transparent;
	color: var(--aura-color-accent, #285c4d);
}

.aura-kit-header__cta--primary .aura-kit-button {
	border: 1px solid var(--aura-color-accent, #285c4d);
	background: var(--aura-color-accent, #285c4d);
	color: var(--aura-color-accent-contrast, #fff);
}

/* Elementor header commerce entry. The existing CTA remains the visual source. */
.aura-commerce-entry {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.aura-commerce-entry .aura-kit-button__icon {
	position: relative;
}

.aura-commerce-entry__count {
	position: absolute;
	inset: -.62rem -.72rem auto auto;
	display: grid;
	min-width: 1.12rem;
	height: 1.12rem;
	place-items: center;
	padding-inline: .2rem;
	border: 2px solid var(--aura-color-surface, #fff);
	border-radius: 999px;
	background: var(--aura-color-accent, #285c4d);
	color: var(--aura-color-accent-contrast, #fff);
	font-size: .58rem;
	font-weight: 800;
	line-height: 1;
}

.aura-commerce-entry__count[hidden] { display: none; }

.aura-commerce-entry__toggle {
	display: none;
	width: 2.5rem;
	height: 2.5rem;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--aura-color-accent, #285c4d);
	cursor: pointer;
}

.aura-commerce-entry__toggle svg { width: 1rem; height: 1rem; }

.aura-commerce-menu {
	position: absolute;
	z-index: 1000;
	inset: calc(100% + .55rem) 0 auto auto;
	min-width: 12.5rem;
	padding: .4rem;
	border: 1px solid rgb(23 32 28 / 12%);
	border-radius: .75rem;
	background: var(--aura-color-surface, #fff);
	box-shadow: 0 .75rem 2rem rgb(23 32 28 / 14%);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-.35rem);
	transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}

.aura-commerce-menu::before {
	position: absolute;
	inset: -.7rem 0 auto;
	height: .7rem;
	content: '';
}

.aura-commerce-menu ul { margin: 0; padding: 0; list-style: none; }
.aura-commerce-menu li[hidden] { display: none; }
.aura-commerce-menu__link {
	display: block;
	padding: .7rem .8rem;
	border-radius: .5rem;
	color: var(--aura-color-text, #17201c);
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: .82rem;
	font-weight: 650;
	line-height: 1.2;
	text-decoration: none;
}
.aura-commerce-menu__link:hover,
.aura-commerce-menu__link:focus-visible { background: rgb(40 92 77 / 9%); color: var(--aura-color-accent, #285c4d); }

@media (hover: hover) and (pointer: fine) {
	.aura-commerce-entry:hover .aura-commerce-menu,
	.aura-commerce-entry:focus-within .aura-commerce-menu { opacity: 1; visibility: visible; transform: translateY(0); }
}

@media (hover: none), (pointer: coarse) {
	.aura-commerce-entry__toggle { display: inline-flex; }
	.aura-commerce-entry.is-menu-open .aura-commerce-menu { opacity: 1; visibility: visible; transform: translateY(0); }
}

.aura-kit-hero {
	position: relative;
	overflow: hidden;
	min-height: min(48rem, 82vh);
	padding-block: clamp(6rem, 13vw, 11rem);
	background: linear-gradient(128deg, var(--aura-color-text, #17201c) 0%, var(--aura-color-accent, #285c4d) 75%, #3d7a63 100%);
	color: var(--aura-color-accent-contrast, #fff);
}

.aura-kit-hero::after {
	position: absolute;
	inset: auto -10% -18rem auto;
	width: min(46vw, 42rem);
	aspect-ratio: 1;
	border: 1px solid rgb(255 255 255 / 20%);
	border-radius: 50%;
	content: '';
	pointer-events: none;
}

.aura-kit-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 56rem;
	gap: 1.5rem;
}

.aura-kit-eyebrow .elementor-heading-title {
	margin: 0;
	color: inherit;
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: .75rem;
	font-weight: 750;
	letter-spacing: .12em;
	line-height: 1.2;
	text-transform: uppercase;
}

.aura-kit-hero .aura-kit-eyebrow .elementor-heading-title {
	color: rgb(255 255 255 / 72%);
}

.aura-kit-display .elementor-heading-title {
	margin: 0;
	color: inherit;
	font-family: var(--aura-font-heading, ui-sans-serif, system-ui, sans-serif);
	font-size: clamp(3.2rem, 8vw, 7.5rem);
	font-weight: 750;
	letter-spacing: -.06em;
	line-height: .94;
	text-wrap: balance;
}

.aura-kit-title .elementor-heading-title,
.aura-kit-card-title .elementor-heading-title {
	margin: 0;
	color: var(--aura-color-text, #17201c);
	font-family: var(--aura-font-heading, ui-sans-serif, system-ui, sans-serif);
	font-weight: var(--aura-heading-weight, 700);
	letter-spacing: -.045em;
	line-height: 1;
	text-wrap: balance;
}

.aura-kit-title .elementor-heading-title {
	font-size: clamp(2rem, 4.5vw, 4.5rem);
}

.aura-kit-card-title .elementor-heading-title {
	font-size: clamp(1.65rem, 2.5vw, 2.35rem);
}

.aura-kit-copy {
	max-width: 42rem;
	color: inherit;
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: clamp(1rem, 1.15vw, 1.2rem);
	line-height: 1.65;
}

.aura-kit-copy p:last-child {
	margin-bottom: 0;
}

.aura-kit-copy--muted {
	color: var(--aura-color-muted, #5b655f);
}

.aura-kit-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	margin-top: .5rem;
}

.aura-kit-button-primary .elementor-button,
.aura-kit-button-secondary .elementor-button,
.aura-kit-text-action .elementor-button {
	border-radius: var(--aura-radius-button, 999px);
	box-shadow: none;
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: .875rem;
	font-weight: 750;
	line-height: 1.2;
	padding: 1rem 1.3rem;
	transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

.aura-kit-button-primary .elementor-button {
	border: 1px solid var(--aura-color-accent-contrast, #fff);
	background: var(--aura-color-accent-contrast, #fff);
	color: var(--aura-color-text, #17201c);
}

.aura-kit-button-secondary .elementor-button {
	border: 1px solid rgb(255 255 255 / 74%);
	background: transparent;
	color: var(--aura-color-accent-contrast, #fff);
}

.aura-kit-button-primary .elementor-button:hover,
.aura-kit-button-secondary .elementor-button:hover,
.aura-kit-text-action .elementor-button:hover {
	transform: translateY(-2px);
}

.aura-kit-section-heading {
	gap: 1rem;
	padding-block: clamp(3rem, 7vw, 7rem) clamp(2rem, 4vw, 4rem);
}

.aura-kit-section-heading .aura-kit-eyebrow .elementor-heading-title {
	color: var(--aura-color-accent, #285c4d);
}

.aura-kit-metrics {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	padding-block: clamp(1rem, 3vw, 2.5rem) clamp(4rem, 8vw, 8rem);
}

.aura-kit-metric {
	gap: .6rem;
	min-height: 12rem;
	padding: clamp(1.35rem, 3vw, 2.4rem);
	border: 1px solid var(--aura-color-border, #d9ddd5);
	border-radius: var(--aura-radius-card, .75rem);
	background: var(--aura-color-surface-alt, #f2eee6);
}

.aura-kit-metric__value .elementor-heading-title {
	margin: 0;
	color: var(--aura-color-accent, #285c4d);
	font-family: var(--aura-font-heading, ui-sans-serif, system-ui, sans-serif);
	font-size: clamp(2.3rem, 4vw, 4.4rem);
	font-weight: 750;
	letter-spacing: -.06em;
	line-height: .95;
}

.aura-kit-metric__label .elementor-heading-title {
	margin: 0;
	color: var(--aura-color-muted, #5b655f);
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: .875rem;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.3;
	text-transform: uppercase;
}

.aura-kit-story-card {
	gap: 1rem;
	max-width: 38rem;
	padding: clamp(1.5rem, 4vw, 3rem);
	border: 1px solid var(--aura-color-border, #d9ddd5);
	border-radius: var(--aura-radius-card, .75rem);
	background: var(--aura-color-surface, #fbfaf7);
	box-shadow: var(--aura-shadow-card, 0 1.25rem 3.75rem rgb(23 32 28 / 8%));
}

.aura-kit-icon__link {
	display: inline-block;
	line-height: 0;
}

.aura-kit-icon__image {
	display: inline-block;
	height: auto;
	max-width: 100%;
	vertical-align: middle;
}

.aura-kit-text-action .elementor-button {
	padding: .25rem 0;
	border: 0;
	background: transparent;
	color: var(--aura-color-accent, #285c4d);
}

.aura-kit-text-action .elementor-button::after {
	margin-left: .45rem;
	content: '→';
}

.aura-kit-action-banner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: clamp(1.5rem, 6vw, 6rem);
	padding: clamp(2rem, 6vw, 5.5rem);
	border-radius: var(--aura-radius-card, .75rem);
	background: var(--aura-color-accent, #285c4d);
	color: var(--aura-color-accent-contrast, #fff);
}

.aura-kit-action-banner__copy {
	gap: .9rem;
	max-width: 46rem;
}

.aura-kit-action-banner .aura-kit-title .elementor-heading-title,
.aura-kit-action-banner .aura-kit-copy {
	color: var(--aura-color-accent-contrast, #fff);
}

.aura-kit-action-banner .aura-kit-title .elementor-heading-title {
	font-size: clamp(2rem, 4vw, 3.8rem);
}

.aura-kit-button-primary--light .elementor-button {
	border-color: var(--aura-color-accent-contrast, #fff);
	background: var(--aura-color-accent-contrast, #fff);
	color: var(--aura-color-accent, #285c4d);
}

/* AURA Button is a standalone Site Kit widget. It keeps a compact set of
 * design variants while Elementor exposes responsive visual overrides. */
.aura-kit-button-wrap {
	display: flex;
	width: 100%;
}

.aura-kit-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55em;
	border: 1px solid transparent;
	border-radius: var(--aura-radius-button, 999px);
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-weight: 750;
	line-height: 1.2;
	text-decoration: none;
	transition: transform var(--aura-button-transition-duration, 180ms) ease, color var(--aura-button-transition-duration, 180ms) ease, background-color var(--aura-button-transition-duration, 180ms) ease, border-color var(--aura-button-transition-duration, 180ms) ease;
}

.aura-kit-button--small { padding: .65rem .9rem; font-size: .78rem; }
.aura-kit-button--medium { padding: .85rem 1.15rem; font-size: .875rem; }
.aura-kit-button--large { padding: 1rem 1.35rem; font-size: 1rem; }
.aura-kit-button--primary { background: var(--aura-color-accent, #285c4d); border-color: var(--aura-color-accent, #285c4d); color: var(--aura-color-accent-contrast, #fff); }
.aura-kit-button--outline { background: transparent; border-color: var(--aura-color-accent, #285c4d); color: var(--aura-color-accent, #285c4d); }
.aura-kit-button--soft { background: var(--aura-color-surface-alt, #f2eee6); border-color: transparent; color: var(--aura-color-text, #17201c); }
.aura-kit-button--text { padding-inline: 0; border-color: transparent; background: transparent; color: var(--aura-color-accent, #285c4d); }
.aura-kit-button__icon { display: inline-flex; width: 1.1em; height: 1.1em; flex: 0 0 auto; align-items: center; justify-content: center; }
.aura-kit-button__icon svg,
.aura-kit-button__icon img { display: block; width: 100%; height: 100%; object-fit: contain; }
.aura-kit-button:hover .aura-kit-button__icon,
.aura-kit-button:focus-visible .aura-kit-button__icon { color: inherit; }
.aura-kit-button:hover,
.aura-kit-button:focus-visible { transform: translateY(var(--aura-button-hover-offset, 0px)) scale(var(--aura-button-hover-scale, 1)); }
.aura-kit-button:active { transform: translateY(var(--aura-button-active-offset, 0px)) scale(var(--aura-button-active-scale, 1)); }

/* AURA Menu — a WordPress-menu widget. It is self-contained so it can sit in
 * a header, a page or a popup without changing the parent theme navigation. */
.aura-menu {
	--aura-menu-text: var(--aura-color-text, #17201c);
	--aura-menu-hover: var(--aura-color-accent, #285c4d);
	--aura-menu-panel: var(--aura-color-surface, #fbfaf7);
	--aura-menu-panel-text: var(--aura-color-text, #17201c);
	--aura-menu-border: var(--aura-color-border, #d9ddd5);
	--aura-menu-burger: var(--aura-color-text, #17201c);
	--aura-menu-burger-bg: transparent;
	position: relative;
	width: 100%;
	color: var(--aura-menu-text);
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
}

.aura-menu ul { padding: 0; margin: 0; list-style: none; }
.aura-menu a { color: inherit; text-decoration: none; }
.aura-menu__desktop-list { display: flex; align-items: center; justify-content: inherit; gap: clamp(.15rem, .9vw, 1rem); }
.aura-menu__desktop-item { position: relative; }
.aura-menu__desktop-link-row { display: flex; align-items: center; }
.aura-menu__link { display: inline-block; padding: .75rem .45rem; color: var(--aura-menu-text); font-size: .9rem; font-weight: 700; line-height: 1.2; white-space: nowrap; }
.aura-menu__link:hover, .aura-menu__link:focus-visible, .aura-menu__desktop-item.is-open > .aura-menu__desktop-link-row .aura-menu__link { color: var(--aura-menu-hover); }
.aura-menu__submenu-toggle, .aura-menu__mobile-subtoggle, .aura-menu__close {
	/* These are navigation controls, not theme buttons. Explicitly neutralise
	 * general-purpose button rules from AURA One or another active theme. */
	display: inline-flex;
	min-height: 0;
	margin: 0;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	box-shadow: none !important;
	color: inherit;
	transform: none !important;
	appearance: none;
	cursor: pointer;
}
.aura-menu__submenu-toggle:hover, .aura-menu__submenu-toggle:active, .aura-menu__mobile-subtoggle:hover, .aura-menu__mobile-subtoggle:active, .aura-menu__close:hover, .aura-menu__close:active { background: transparent !important; box-shadow: none !important; transform: none !important; }
.aura-menu__submenu-toggle { padding: .75rem .2rem .75rem 0; font-size: 1rem; line-height: 1; }
.aura-menu__chevron { display: block; width: .9rem; height: .9rem; transition: transform 180ms ease; }
.aura-menu__desktop-item.is-open > .aura-menu__desktop-link-row .aura-menu__chevron { transform: rotate(180deg); }

.aura-menu__mega-panel, .aura-menu__dropdown {
	position: absolute;
	top: calc(100% + .65rem);
	z-index: 20;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transform: translateY(.5rem);
	transition: visibility 180ms ease, opacity 180ms ease, transform 180ms ease;
	border: 1px solid var(--aura-menu-border);
	border-radius: var(--aura-radius-card, .75rem);
	background: var(--aura-menu-panel);
	box-shadow: var(--aura-shadow-card, 0 1.25rem 3.75rem rgb(23 32 28 / 12%));
	color: var(--aura-menu-panel-text);
}
.aura-menu__mega-panel::before, .aura-menu__dropdown::before {
	position: absolute;
	right: 0;
	bottom: 100%;
	left: 0;
	height: .9rem;
	content: '';
}
.aura-menu__desktop-item.is-open > .aura-menu__mega-panel, .aura-menu__desktop-item.is-open > .aura-menu__dropdown, .aura-menu--open-hover .aura-menu__desktop-item:hover > .aura-menu__mega-panel, .aura-menu--open-hover .aura-menu__desktop-item:focus-within > .aura-menu__mega-panel, .aura-menu--open-hover .aura-menu__desktop-item:hover > .aura-menu__dropdown, .aura-menu--open-hover .aura-menu__desktop-item:focus-within > .aura-menu__dropdown { visibility: visible; opacity: 1; pointer-events: auto; transform: translateY(0); }
.aura-menu__mega-panel { left: min(-12rem, calc(50% - 16rem)); width: min(54rem, calc(100vw - 3rem)); padding: clamp(1.25rem, 3vw, 2.25rem); }
.aura-menu__mega-grid { display: grid; grid-template-columns: repeat(var(--aura-mega-columns, 3), minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 3rem); }
.aura-menu__mega-column { min-width: 0; }
.aura-menu__mega-heading { display: block; margin-bottom: .5rem; color: var(--aura-menu-panel-text); font-size: .92rem; font-weight: 800; line-height: 1.3; }
.aura-menu__mega-heading:hover, .aura-menu__mega-heading:focus-visible, .aura-menu__mega-link:hover, .aura-menu__mega-link:focus-visible { color: var(--aura-menu-hover); }
.aura-menu__mega-column p { margin: 0 0 .75rem; color: color-mix(in srgb, var(--aura-menu-panel-text) 68%, transparent); font-size: .78rem; line-height: 1.45; }
.aura-menu__mega-column ul { display: grid; gap: .48rem; }
.aura-menu__mega-link { display: inline-block; font-size: .85rem; font-weight: 600; line-height: 1.35; }
.aura-menu__mega-column li > span { display: block; margin-top: .12rem; color: color-mix(in srgb, var(--aura-menu-panel-text) 64%, transparent); font-size: .73rem; line-height: 1.35; }

.aura-menu__dropdown { left: 0; min-width: 14rem; padding: .55rem; }
.aura-menu__dropdown li { position: relative; }
.aura-menu__dropdown-link { display: block; padding: .65rem .75rem; border-radius: .35rem; font-size: .87rem; font-weight: 650; }
.aura-menu__dropdown-link:hover, .aura-menu__dropdown-link:focus-visible { background: color-mix(in srgb, var(--aura-menu-hover) 10%, transparent); color: var(--aura-menu-hover); }
.aura-menu__dropdown .aura-menu__dropdown { top: -.55rem; left: calc(100% + .55rem); }
.aura-menu__dropdown li:hover > .aura-menu__dropdown, .aura-menu__dropdown li:focus-within > .aura-menu__dropdown { visibility: visible; opacity: 1; pointer-events: auto; transform: translateY(0); }

.aura-menu__burger { --aura-menu-burger-icon-width: 1.15rem; --aura-menu-burger-line-thickness: 2px; --aura-menu-burger-line-gap: .22rem; --aura-menu-burger-line-radius: 2px; display: none; align-items: center; gap: .55rem; padding: .7rem .8rem; border: 1px solid var(--aura-menu-border); border-radius: var(--aura-radius-button, 999px); background: var(--aura-menu-burger-bg); color: var(--aura-menu-burger); font: inherit; font-size: .78rem; font-weight: 750; letter-spacing: .04em; line-height: 1; text-transform: uppercase; cursor: pointer; }
.aura-menu__burger-lines { display: grid; width: var(--aura-menu-burger-icon-width); gap: var(--aura-menu-burger-line-gap); }
.aura-menu__burger-lines i { display: block; width: 100%; height: var(--aura-menu-burger-line-thickness); margin: 0; padding: 0; border: 0; border-radius: var(--aura-menu-burger-line-radius); background: currentColor; transition: transform 180ms ease, opacity 180ms ease; }
.aura-menu.is-mobile-open .aura-menu__burger-lines i:first-child { transform: translateY(calc(var(--aura-menu-burger-line-thickness) + var(--aura-menu-burger-line-gap))) rotate(45deg); }
.aura-menu.is-mobile-open .aura-menu__burger-lines i:nth-child(2) { opacity: 0; }
.aura-menu.is-mobile-open .aura-menu__burger-lines i:last-child { transform: translateY(calc(0px - var(--aura-menu-burger-line-thickness) - var(--aura-menu-burger-line-gap))) rotate(-45deg); }
.aura-menu__mobile-panel, .aura-menu__backdrop { display: none; }
.aura-menu__mobile-panel[hidden], .aura-menu__backdrop[hidden] { display: none !important; }

/* AURA Menu clean — the one deliberate visual language for the component.
 * The primary navigation is text-only; a border and elevation exist only when
 * a submenu becomes visible. This keeps the header quiet and lets a mega menu
 * carry the visual weight, as intended. */
.aura-menu--clean .aura-menu__desktop-list { gap: clamp(1rem, 2vw, 2.35rem); }
.aura-menu--clean .aura-menu__link { padding: .75rem 0; color: var(--aura-menu-text); font-size: .9rem; font-weight: 700; letter-spacing: -.012em; }
.aura-menu--clean .aura-menu__desktop-item:hover > .aura-menu__desktop-link-row, .aura-menu--clean .aura-menu__desktop-item:focus-within > .aura-menu__desktop-link-row, .aura-menu--clean .aura-menu__desktop-item.is-open > .aura-menu__desktop-link-row { color: var(--aura-menu-hover); }
.aura-menu--clean .aura-menu__submenu-toggle { display: inline-flex; align-items: center; justify-content: center; padding: .75rem 0 .75rem .35rem; color: currentColor; }
.aura-menu--clean .aura-menu__chevron { width: .82rem; height: .82rem; stroke-width: 1.6; }
.aura-menu--clean .aura-menu__mega-panel { top: calc(100% + .8rem); width: min(66rem, calc(100vw - 3rem)); padding: clamp(1.75rem, 4vw, 3.5rem); border-color: var(--aura-menu-border); border-radius: .55rem; box-shadow: 0 1.35rem 4.5rem rgb(18 30 24 / 14%); }
.aura-menu--clean .aura-menu__mega-panel--template { padding: 0; overflow: hidden; }
.aura-menu--clean .aura-menu__mega-template > .elementor { width: 100%; }
.aura-menu--clean .aura-menu__mega-grid { gap: clamp(1.75rem, 4vw, 4.75rem); }
.aura-menu--clean .aura-menu__mega-column { min-width: 9rem; }
.aura-menu--clean .aura-menu__mega-heading { margin-bottom: .9rem; font-size: .9rem; font-weight: 800; letter-spacing: -.01em; }
.aura-menu--clean .aura-menu__mega-column p { max-width: 15rem; margin-bottom: 1rem; font-size: .78rem; }
.aura-menu--clean .aura-menu__mega-column ul { gap: .68rem; }
.aura-menu--clean .aura-menu__mega-link { font-size: .86rem; font-weight: 600; }
.aura-menu--clean .aura-menu__dropdown { top: calc(100% + .7rem); padding: .6rem; border-radius: .45rem; box-shadow: 0 1rem 3rem rgb(18 30 24 / 13%); }
.aura-menu--clean .aura-menu__dropdown-link { padding: .68rem .8rem; border-radius: .25rem; }
.aura-menu--clean .aura-menu__burger { min-height: 2.6rem; padding: .6rem 0; border: 0; border-radius: 0; background: transparent; color: var(--aura-menu-burger); }
.aura-menu--clean .aura-menu__burger:hover, .aura-menu--clean .aura-menu__burger:focus-visible { color: var(--aura-menu-hover); }

/* Classic vertical navigation. The top level stays quiet and stacked; only
 * flyout panels have a border and elevation. */
.aura-menu--orientation-vertical { width: min(100%, var(--aura-menu-vertical-width, 15.625rem)); }
.aura-menu--orientation-vertical .aura-menu__desktop-list { flex-direction: column; align-items: stretch; justify-content: flex-start; gap: .1rem; }
.aura-menu--orientation-vertical .aura-menu__desktop-item { width: 100%; }
.aura-menu--orientation-vertical .aura-menu__desktop-link-row { justify-content: space-between; width: 100%; }
.aura-menu--orientation-vertical .aura-menu__link { flex: 1 1 auto; padding: .78rem 0; }
.aura-menu--orientation-vertical .aura-menu__submenu-toggle { flex: 0 0 2rem; padding: .78rem 0; }
.aura-menu--orientation-vertical .aura-menu__dropdown { top: 0; left: calc(100% + .7rem); min-width: min(18rem, calc(100vw - var(--aura-menu-vertical-width, 15.625rem) - 3rem)); }
.aura-menu--orientation-vertical.aura-menu--vertical-submenu-left .aura-menu__dropdown { right: calc(100% + .7rem); left: auto; }
.aura-menu--orientation-vertical .aura-menu__dropdown .aura-menu__dropdown { top: -.6rem; left: calc(100% + .6rem); }
.aura-menu--orientation-vertical.aura-menu--vertical-submenu-left .aura-menu__dropdown .aura-menu__dropdown { right: calc(100% + .6rem); left: auto; }
.aura-menu--orientation-vertical .aura-menu__dropdown::before { top: 0; bottom: 0; left: auto; width: .7rem; height: auto; transform: translateX(-100%); }
.aura-menu--orientation-vertical.aura-menu--vertical-submenu-left .aura-menu__dropdown::before { right: auto; left: 100%; transform: none; }

/* Visual Style: Editorial Classic 1
 * A calm, deliberately spaced navigation which works with a minimal personal
 * site as well as an institutional header. It does not impose a fixed brand
 * palette: all colours inherit the AURA One tokens or the widget overrides. */
.aura-menu--style-classic-1 .aura-menu__desktop-list {
	gap: clamp(.35rem, 1vw, 1.2rem);
	padding: .2rem .65rem;
	border: 1px solid color-mix(in srgb, var(--aura-menu-border) 90%, transparent);
	border-radius: var(--aura-radius-button, 999px);
	background: color-mix(in srgb, var(--aura-menu-panel) 84%, transparent);
	box-shadow: 0 .35rem 1.25rem rgb(20 33 27 / 4%);
}
.aura-menu--style-classic-1 .aura-menu__link {
	position: relative;
	padding: .78rem .72rem .68rem;
	font-size: .84rem;
	font-weight: 750;
	letter-spacing: -.01em;
}
.aura-menu--style-classic-1 .aura-menu__desktop-item:hover > .aura-menu__desktop-link-row,
.aura-menu--style-classic-1 .aura-menu__desktop-item:focus-within > .aura-menu__desktop-link-row,
.aura-menu--style-classic-1 .aura-menu__desktop-item.is-open > .aura-menu__desktop-link-row { color: var(--aura-menu-hover); }
.aura-menu--style-classic-1 .aura-menu__submenu-toggle { display: inline-flex; align-items: center; justify-content: center; padding: .78rem .58rem .68rem 0; color: var(--aura-menu-text); }
.aura-menu--style-classic-1 .aura-menu__desktop-item:hover .aura-menu__chevron, .aura-menu--style-classic-1 .aura-menu__desktop-item:focus-within .aura-menu__chevron, .aura-menu--style-classic-1 .aura-menu__desktop-item.is-open .aura-menu__chevron { color: var(--aura-menu-hover); }
.aura-menu--style-classic-1 .aura-menu__mega-panel {
	top: calc(100% + .85rem);
	left: min(-14rem, calc(50% - 18rem));
	width: min(62rem, calc(100vw - 3rem));
	padding: clamp(1.5rem, 3.6vw, 3.25rem);
	border-radius: calc(var(--aura-radius-card, .75rem) * 1.35);
	box-shadow: 0 1.4rem 4.2rem rgb(18 30 24 / 16%), 0 .2rem .75rem rgb(18 30 24 / 7%);
}
.aura-menu--style-classic-1 .aura-menu__mega-grid { gap: clamp(1.6rem, 4vw, 4.5rem); }
.aura-menu--style-classic-1 .aura-menu__mega-column { position: relative; padding-top: .8rem; }
.aura-menu--style-classic-1 .aura-menu__mega-column::before { position: absolute; top: 0; left: 0; width: 2rem; height: 2px; border-radius: 2px; background: var(--aura-menu-hover); content: ''; }
.aura-menu--style-classic-1 .aura-menu__mega-heading { margin-bottom: .7rem; font-size: .94rem; letter-spacing: -.015em; }
.aura-menu--style-classic-1 .aura-menu__mega-column p { max-width: 14rem; margin-bottom: 1rem; }
.aura-menu--style-classic-1 .aura-menu__mega-column ul { gap: .7rem; }
.aura-menu--style-classic-1 .aura-menu__mega-link { position: relative; padding-left: .85rem; font-size: .84rem; font-weight: 650; }
.aura-menu--style-classic-1 .aura-menu__mega-link::before { position: absolute; top: .55em; left: 0; width: .32rem; height: .32rem; border-radius: 50%; background: currentColor; content: ''; opacity: .35; }
.aura-menu--style-classic-1 .aura-menu__mega-link:hover::before, .aura-menu--style-classic-1 .aura-menu__mega-link:focus-visible::before { opacity: 1; }
.aura-menu--style-classic-1 .aura-menu__dropdown { top: calc(100% + .8rem); padding: .65rem; border-radius: .65rem; box-shadow: 0 1.1rem 3rem rgb(18 30 24 / 14%); }
.aura-menu--style-classic-1 .aura-menu__dropdown-link { padding: .72rem .8rem; font-size: .83rem; }
.aura-menu--style-classic-1 .aura-menu__burger { min-height: 2.85rem; padding: .72rem .9rem; border-radius: .55rem; font-size: .72rem; letter-spacing: .07em; transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease; }
.aura-menu--style-classic-1 .aura-menu__burger:hover, .aura-menu--style-classic-1 .aura-menu__burger:focus-visible { border-color: var(--aura-menu-hover); color: var(--aura-menu-hover); }

/* Placement and panel behaviour shared by every prepared style. */
.aura-menu--align-left .aura-menu__desktop-list { justify-content: flex-start; }
.aura-menu--align-center .aura-menu__desktop-list { justify-content: center; }
.aura-menu--align-right .aura-menu__desktop-list { justify-content: flex-end; }
.aura-menu--mega-width-content .aura-menu__mega-panel { width: min(34rem, calc(100vw - 3rem)); }
.aura-menu--mega-width-wide .aura-menu__mega-panel { width: min(62rem, calc(100vw - 3rem)); }
.aura-menu--mega-width-viewport .aura-menu__mega-panel { width: min(82rem, calc(100vw - 2rem)); }
.aura-menu--mega-position-left .aura-menu__mega-panel { left: 0; }
.aura-menu--mega-position-center .aura-menu__mega-panel { right: auto; left: 50%; transform: translate(-50%, .5rem); }
.aura-menu--mega-position-right .aura-menu__mega-panel { right: 0; left: auto; }
.aura-menu--animation-none .aura-menu__mega-panel, .aura-menu--animation-none .aura-menu__dropdown { transition: none; transform: none; }
.aura-menu--animation-fade .aura-menu__mega-panel, .aura-menu--animation-fade .aura-menu__dropdown { transform: none; }
.aura-menu--animation-soft-up .aura-menu__mega-panel, .aura-menu--animation-soft-up .aura-menu__dropdown { transform: translateY(-.5rem); }
.aura-menu--mega-position-center .aura-menu__desktop-item.is-open > .aura-menu__mega-panel, .aura-menu--mega-position-center.aura-menu--open-hover .aura-menu__desktop-item:hover > .aura-menu__mega-panel, .aura-menu--mega-position-center.aura-menu--open-hover .aura-menu__desktop-item:focus-within > .aura-menu__mega-panel { transform: translate(-50%, 0); }

/* Minimal: unadorned text navigation, deliberately close to an editorial
 * masthead. The panel remains rich enough to scan. */
.aura-menu--style-minimal .aura-menu__desktop-list { gap: clamp(.55rem, 1.5vw, 1.7rem); }
.aura-menu--style-minimal .aura-menu__link { padding: .75rem 0; font-size: .86rem; font-weight: 700; }
.aura-menu--style-minimal .aura-menu__submenu-toggle { padding: .75rem 0 .75rem .32rem; }
.aura-menu--style-minimal .aura-menu__desktop-item:hover > .aura-menu__desktop-link-row, .aura-menu--style-minimal .aura-menu__desktop-item:focus-within > .aura-menu__desktop-link-row, .aura-menu--style-minimal .aura-menu__desktop-item.is-open > .aura-menu__desktop-link-row { color: var(--aura-menu-hover); }
.aura-menu--style-minimal .aura-menu__mega-panel { border-radius: .45rem; box-shadow: 0 1rem 3.2rem rgb(18 30 24 / 12%); }
.aura-menu--style-minimal .aura-menu__mega-column::before { display: none; }
.aura-menu--style-minimal .aura-menu__mega-heading { padding-bottom: .55rem; border-bottom: 1px solid var(--aura-menu-border); }

/* Pill: every top-level item becomes its own soft target. Useful for product,
 * portfolio and community sites where navigation needs to feel more tactile. */
.aura-menu--style-pill .aura-menu__desktop-list { gap: .45rem; }
.aura-menu--style-pill .aura-menu__desktop-link-row { border: 1px solid transparent; border-radius: var(--aura-radius-button, 999px); transition: border-color 180ms ease, background-color 180ms ease, color 180ms ease; }
.aura-menu--style-pill .aura-menu__link { padding: .7rem .8rem; font-size: .83rem; font-weight: 750; }
.aura-menu--style-pill .aura-menu__submenu-toggle { padding: .7rem .75rem .7rem 0; }
.aura-menu--style-pill .aura-menu__desktop-item:hover > .aura-menu__desktop-link-row, .aura-menu--style-pill .aura-menu__desktop-item:focus-within > .aura-menu__desktop-link-row, .aura-menu--style-pill .aura-menu__desktop-item.is-open > .aura-menu__desktop-link-row { border-color: color-mix(in srgb, var(--aura-menu-hover) 35%, var(--aura-menu-border)); background: color-mix(in srgb, var(--aura-menu-hover) 10%, transparent); color: var(--aura-menu-hover); }
.aura-menu--style-pill .aura-menu__mega-panel { border-radius: 1rem; }

/* Underline: a deliberately restrained line, separate from Classic 1. */
.aura-menu--style-underline .aura-menu__desktop-list { gap: clamp(.55rem, 1.4vw, 1.5rem); }
.aura-menu--style-underline .aura-menu__link { position: relative; padding: .78rem .05rem .98rem; font-size: .85rem; font-weight: 700; }
.aura-menu--style-underline .aura-menu__link::after { position: absolute; right: 0; bottom: .52rem; left: 0; height: 1px; transform: scaleX(0); transform-origin: left; transition: transform 180ms ease; background: currentColor; content: ''; }
.aura-menu--style-underline .aura-menu__desktop-item:hover .aura-menu__link::after, .aura-menu--style-underline .aura-menu__desktop-item:focus-within .aura-menu__link::after, .aura-menu--style-underline .aura-menu__desktop-item.is-open .aura-menu__link::after { transform: scaleX(1); }
.aura-menu--style-underline .aura-menu__submenu-toggle { padding: .78rem 0 .98rem .28rem; }

/* Contrast: an intentional dark navigation unit for hero imagery or a dark
 * header. Theme/widget colour overrides can still change the palette. */
.aura-menu--style-contrast { --aura-menu-text: #fff; --aura-menu-hover: #c7f3d7; --aura-menu-panel: #14251e; --aura-menu-panel-text: #fff; --aura-menu-border: rgb(255 255 255 / 22%); --aura-menu-burger: #fff; --aura-menu-burger-bg: rgb(255 255 255 / 9%); }
.aura-menu--style-contrast .aura-menu__desktop-list { padding: .25rem .55rem; border: 1px solid var(--aura-menu-border); border-radius: var(--aura-radius-button, 999px); background: rgb(16 33 25 / 62%); backdrop-filter: blur(10px); }
.aura-menu--style-contrast .aura-menu__link { padding: .72rem .7rem; font-size: .84rem; font-weight: 750; }
.aura-menu--style-contrast .aura-menu__submenu-toggle { padding: .72rem .58rem .72rem 0; }
.aura-menu--style-contrast .aura-menu__desktop-item:hover > .aura-menu__desktop-link-row, .aura-menu--style-contrast .aura-menu__desktop-item:focus-within > .aura-menu__desktop-link-row, .aura-menu--style-contrast .aura-menu__desktop-item.is-open > .aura-menu__desktop-link-row { border-radius: var(--aura-radius-button, 999px); background: rgb(255 255 255 / 12%); color: var(--aura-menu-hover); }

/* Custom: neutral by default. All geometry comes from the Custom menu design
 * controls so it is a genuine editable starting point rather than a preset. */
.aura-menu--style-custom .aura-menu__desktop-list { gap: var(--aura-menu-custom-gap, .75rem); }
.aura-menu--style-custom .aura-menu__desktop-link-row { border-radius: var(--aura-menu-custom-item-radius, 0); }
.aura-menu--style-custom .aura-menu__link { padding: var(--aura-menu-custom-item-padding, .75rem .5rem); font-size: var(--aura-menu-custom-font-size, .88rem); font-weight: var(--aura-menu-custom-font-weight, 700); }
.aura-menu--style-custom .aura-menu__submenu-toggle { padding-block: var(--aura-menu-custom-item-padding, .75rem); }
.aura-menu--style-custom .aura-menu__mega-panel, .aura-menu--style-custom .aura-menu__dropdown { border-radius: var(--aura-menu-custom-panel-radius, var(--aura-radius-card, .75rem)); }
.aura-menu--style-custom .aura-menu__mega-panel { padding: var(--aura-menu-custom-panel-padding, clamp(1.25rem, 3vw, 2.25rem)); }
.aura-menu--style-custom[style*="--aura-menu-custom-shadow:none"] .aura-menu__mega-panel, .aura-menu--style-custom[style*="--aura-menu-custom-shadow:none"] .aura-menu__dropdown { box-shadow: none; }
.aura-menu--style-custom[style*="--aura-menu-custom-shadow:strong"] .aura-menu__mega-panel, .aura-menu--style-custom[style*="--aura-menu-custom-shadow:strong"] .aura-menu__dropdown { box-shadow: 0 1.6rem 4.5rem rgb(18 30 24 / 24%); }

@media (max-width: 1024px) {
	.aura-menu--style-classic-1 .aura-menu__mobile-panel { box-shadow: -1.1rem 0 3.5rem rgb(18 30 24 / 15%); }
	.aura-menu--style-classic-1.aura-menu--side-left .aura-menu__mobile-panel { box-shadow: 1.1rem 0 3.5rem rgb(18 30 24 / 15%); }
	.aura-menu--style-classic-1 .aura-menu__mobile-panel-head { padding-bottom: 1.25rem; }
	.aura-menu--style-classic-1 .aura-menu__mobile-panel-title { color: var(--aura-menu-hover); }
	.aura-menu--style-classic-1 .aura-menu__close { border-radius: .45rem; color: var(--aura-menu-hover); }
	.aura-menu--style-classic-1 .aura-menu__mobile-item { border-bottom-style: solid; }
	.aura-menu--style-classic-1 .aura-menu__mobile-link { padding-block: 1.1rem; letter-spacing: -.025em; }
	.aura-menu--style-classic-1 .aura-menu__mobile-submenu { margin-bottom: 1.1rem; border-left-color: var(--aura-menu-hover); }
}

@media (max-width: 1024px) {
	.aura-menu__desktop { display: none; }
	.aura-menu__burger { display: inline-flex; }
	.aura-menu__mobile-panel { display: block; }
	.aura-menu__backdrop { position: fixed; z-index: 9997; inset: 0; background: rgb(10 20 16 / 45%); }
	.aura-menu.is-mobile-open .aura-menu__backdrop { display: block; }
	.aura-menu__mobile-panel { position: fixed; z-index: 9998; overflow: auto; max-height: 100dvh; border: 1px solid var(--aura-menu-border); background: var(--aura-menu-panel); color: var(--aura-menu-panel-text); box-shadow: var(--aura-shadow-card, 0 1.25rem 3.75rem rgb(23 32 28 / 18%)); }
	.aura-menu--mobile-offcanvas .aura-menu__mobile-panel { top: 0; bottom: 0; width: min(28rem, calc(100vw - 2.5rem)); padding: 1.25rem; }
	.aura-menu--side-right .aura-menu__mobile-panel { right: 0; }
	.aura-menu--side-left .aura-menu__mobile-panel { left: 0; }
	.aura-menu--mobile-fullscreen .aura-menu__mobile-panel { inset: 0; padding: clamp(1.25rem, 6vw, 4rem); border: 0; }
	.aura-menu--mobile-dropdown .aura-menu__mobile-panel { position: absolute; top: calc(100% + .65rem); right: 0; width: min(24rem, calc(100vw - 2rem)); max-height: min(34rem, calc(100dvh - 5rem)); padding: 1rem; border-radius: var(--aura-radius-card, .75rem); }
	.aura-menu--mobile-dropdown.is-mobile-open .aura-menu__backdrop { display: none; }
	.aura-menu__mobile-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--aura-menu-border); }
	.aura-menu__mobile-panel-title { font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
	.aura-menu__close { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border: 1px solid var(--aura-menu-border); border-radius: 50%; font-size: 1.75rem; line-height: 1; }
	.aura-menu__mobile-list { display: grid; padding-top: .75rem; }
	.aura-menu__mobile-item { border-bottom: 1px solid color-mix(in srgb, var(--aura-menu-border) 70%, transparent); }
	.aura-menu__mobile-link-row { display: flex; align-items: stretch; }
	.aura-menu__mobile-link { flex: 1 1 auto; padding: 1rem 0; font-size: clamp(1rem, 4vw, 1.3rem); font-weight: 750; line-height: 1.25; }
	.aura-menu__mobile-link:hover, .aura-menu__mobile-link:focus-visible { color: var(--aura-menu-hover); }
	.aura-menu__mobile-subtoggle { display: inline-flex; align-items: center; justify-content: center; width: 3.25rem; color: var(--aura-menu-hover); font-size: 1.45rem; }
	.aura-menu__mobile-item.is-open > .aura-menu__mobile-link-row .aura-menu__mobile-subtoggle span[aria-hidden] { transform: rotate(45deg); }
	.aura-menu__mobile-submenu { margin: 0 0 1rem 1rem; padding-left: 1rem; border-left: 1px solid var(--aura-menu-border); }
	.aura-menu__mobile-submenu .aura-menu__mobile-link { padding-block: .75rem; font-size: .95rem; font-weight: 650; }
}

@media (prefers-reduced-motion: reduce) {
	.aura-menu *, .aura-menu *::before, .aura-menu *::after { transition-duration: 0ms !important; }
}

/* Direct Site Kit widgets use the same visual language as the saved-template
 * compositions, but their content belongs to the page instance. */
.aura-kit-hero--widget .aura-kit-eyebrow {
	margin: 0;
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: .75rem;
	font-weight: 750;
	letter-spacing: .12em;
	line-height: 1.2;
	text-transform: uppercase;
}

/* Zero-specificity fallback typography lets Elementor Site Settings selectors
 * such as .elementor-kit-123 h1/h2/h3 take over immediately. A typography
 * value configured on this widget still wins through Elementor's wrapper
 * selector. */
:where(.aura-kit-section-heading--widget .aura-kit-eyebrow) {
	margin: 0;
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: .75rem;
	font-weight: 750;
	letter-spacing: .12em;
	line-height: 1.2;
	text-transform: uppercase;
}

.aura-kit-hero--widget .aura-kit-eyebrow {
	color: rgb(255 255 255 / 72%);
}

.aura-kit-section-heading--widget .aura-kit-eyebrow {
	color: var(--aura-color-accent, #285c4d);
}

.aura-kit-hero--widget .aura-kit-display {
	margin: 0;
	color: inherit;
	font-family: var(--aura-font-heading, ui-sans-serif, system-ui, sans-serif);
	font-size: clamp(3.2rem, 8vw, 7.5rem);
	font-weight: 750;
	letter-spacing: -.06em;
	line-height: .94;
	text-wrap: balance;
}

.aura-kit-action-banner--widget .aura-kit-title,
.aura-kit-story-card--widget .aura-kit-card-title {
	margin: 0;
	font-family: var(--aura-font-heading, ui-sans-serif, system-ui, sans-serif);
	font-weight: var(--aura-heading-weight, 700);
	letter-spacing: -.045em;
	line-height: 1;
	text-wrap: balance;
}

:where(.aura-kit-section-heading--widget .aura-kit-title) {
	margin: 0;
	font-family: var(--aura-font-heading, ui-sans-serif, system-ui, sans-serif);
	font-size: clamp(2rem, 4.5vw, 4.5rem);
	font-weight: var(--aura-heading-weight, 700);
	letter-spacing: -.045em;
	line-height: 1;
	text-wrap: balance;
}

.aura-kit-section-heading--widget .aura-kit-title {
	color: var(--aura-color-text, #17201c);
	overflow-wrap: anywhere;
}

.aura-kit-section-heading--widget {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: var(--aura-section-horizontal-position, center);
	justify-content: var(--aura-section-vertical-position, flex-start);
	width: 100%;
	overflow: visible;
	isolation: isolate;
}

.aura-kit-section-heading--widget::before {
	position: absolute;
	z-index: 1;
	inset: 0;
	content: '';
	opacity: .5;
	pointer-events: none;
}

.aura-kit-section-heading__content {
	--aura-sh-action-direction: row;
	--aura-sh-action-align: center;
	--aura-sh-action-margin: auto;
	--aura-sh-action-gap: clamp(1.5rem, 5vw, 5rem);
	position: relative;
	z-index: 3;
	display: flex;
	flex-direction: var(--aura-sh-action-direction, row);
	align-items: var(--aura-sh-action-align, center);
	width: min(100%, var(--aura-container, 1240px));
	margin-inline: var(--aura-section-content-margin, auto);
	gap: var(--aura-sh-action-gap, clamp(1.5rem, 5vw, 5rem));
	text-align: var(--aura-section-text-align, inherit);
}

.aura-section-header__text {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
	gap: 1rem;
}

.aura-section-header__text > .aura-kit-eyebrow,
.aura-section-header__text > .aura-kit-title,
.aura-section-header__text > .aura-kit-copy {
	align-self: var(--aura-section-text-self, stretch);
	width: 100%;
}

.aura-section-header__action {
	flex: 0 0 auto;
	align-self: var(--aura-sh-action-align, center);
	margin-inline-start: var(--aura-sh-action-margin, auto);
}

.aura-section-header__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .75em;
	padding: .75rem 1.25rem;
	border: 1px solid var(--aura-color-accent, #285c4d);
	border-radius: 999px;
	background: transparent;
	color: var(--aura-color-accent, #285c4d);
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: .875rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

a.aura-section-header__button:hover,
a.aura-section-header__button:focus-visible {
	border-color: var(--aura-color-accent, #285c4d);
	background-color: var(--aura-color-accent, #285c4d);
	color: var(--aura-color-accent-contrast, #fff);
}

.aura-section-header__button--placeholder {
	pointer-events: none;
}

.aura-section-header__button-arrow {
	font-size: 1.15em;
	line-height: 0;
}

.aura-section-position-top-left,
.aura-section-position-top-center,
.aura-section-position-top-right {
	--aura-section-vertical-position: flex-start;
}

.aura-section-position-center-left,
.aura-section-position-center-center,
.aura-section-position-center-right {
	--aura-section-vertical-position: center;
}

.aura-section-position-bottom-left,
.aura-section-position-bottom-center,
.aura-section-position-bottom-right {
	--aura-section-vertical-position: flex-end;
}

.aura-section-position-top-left,
.aura-section-position-center-left,
.aura-section-position-bottom-left {
	--aura-section-content-margin: 0 auto;
	--aura-section-horizontal-position: flex-start;
	--aura-section-text-align: left;
	--aura-section-text-self: flex-start;
}

.aura-section-position-top-center,
.aura-section-position-center-center,
.aura-section-position-bottom-center {
	--aura-section-content-margin: auto;
	--aura-section-horizontal-position: center;
	--aura-section-text-align: center;
	--aura-section-text-self: center;
}

.aura-section-position-top-right,
.aura-section-position-center-right,
.aura-section-position-bottom-right {
	--aura-section-content-margin: auto 0;
	--aura-section-horizontal-position: flex-end;
	--aura-section-text-align: right;
	--aura-section-text-self: flex-end;
}

/* Design presets establish low-specificity starting points. Elementor's
 * generated background and layout declarations remain free to override them. */
.aura-section-design-clean .aura-kit-section-heading--widget {
	background-color: var(--aura-color-surface, #fff);
}

.aura-section-design-centered-hero {
	--aura-section-content-margin: auto;
	--aura-section-horizontal-position: center;
	--aura-section-text-align: center;
	--aura-section-text-self: center;
	--aura-section-vertical-position: center;
}

.aura-section-design-centered-hero .aura-kit-section-heading--widget {
	min-height: min(42rem, 72vh);
}

.aura-section-design-centered-hero .aura-kit-section-heading__content {
	max-width: 56rem;
}

.aura-section-design-editorial-left {
	--aura-section-content-margin: 0 auto;
	--aura-section-horizontal-position: flex-start;
	--aura-section-text-align: left;
	--aura-section-text-self: flex-start;
}

.aura-section-design-editorial-left .aura-kit-section-heading--widget {
	background-color: var(--aura-color-surface-alt, #f2eee6);
}

.aura-section-design-editorial-left .aura-kit-section-heading__content {
	max-width: 62rem;
	border-inline-start: .25rem solid var(--aura-color-accent, #285c4d);
	padding-inline-start: clamp(1.25rem, 4vw, 3.5rem);
}

.aura-section-design-image-overlay {
	--aura-section-content-margin: auto;
	--aura-section-horizontal-position: center;
	--aura-section-text-align: center;
	--aura-section-text-self: center;
	--aura-section-vertical-position: center;
}

.aura-section-design-image-overlay .aura-kit-section-heading--widget {
	min-height: min(48rem, 76vh);
	background-color: var(--aura-color-text, #17201c);
}

.aura-section-design-image-overlay .aura-kit-section-heading--widget::before {
	background-color: #000;
}

.aura-section-design-image-overlay .aura-kit-eyebrow,
.aura-section-design-image-overlay .aura-kit-title,
.aura-section-design-image-overlay .aura-kit-copy {
	color: var(--aura-color-accent-contrast, #fff);
}

.aura-section-design-framed .aura-kit-section-heading--widget {
	padding: clamp(1rem, 3vw, 2.5rem);
	background-color: var(--aura-color-surface-alt, #f2eee6);
}

.aura-section-design-framed .aura-kit-section-heading__content {
	padding: clamp(2rem, 6vw, 5rem);
	border: 1px solid var(--aura-color-border, #d9ddd5);
	border-radius: var(--aura-radius-card, .75rem);
	background-color: var(--aura-color-surface, #fff);
}

.aura-section-design-accent-band .aura-kit-section-heading--widget {
	background-color: var(--aura-color-accent, #285c4d);
}

.aura-section-design-accent-band .aura-kit-eyebrow,
.aura-section-design-accent-band .aura-kit-title,
.aura-section-design-accent-band .aura-kit-copy {
	color: var(--aura-color-accent-contrast, #fff);
}

.aura-section-heading__highlight {
	color: var(--aura-color-accent, #285c4d);
}

@media (min-width: 1025px) {
	.aura-section-header--hide-desktop { display: none; }
	.aura-section-header__element--hide-desktop { display: none; }
	.aura-section-header__background-overlay--hide-desktop::before { display: none; }
	.aura-section-header__gradient--hide-desktop { background-image: none !important; }
	.has-decoration-space--top.aura-section-header__decoration-space--hide-desktop > .aura-kit-section-heading__content { padding-block-start: 0; }
	.has-decoration-space--bottom.aura-section-header__decoration-space--hide-desktop > .aura-kit-section-heading__content { padding-block-end: 0; }
}

@media (min-width: 768px) and (max-width: 1024px) {
	.aura-section-header--hide-tablet { display: none; }
	.aura-section-header__element--hide-tablet { display: none; }
	.aura-section-header__background-overlay--hide-tablet::before { display: none; }
	.aura-section-header__gradient--hide-tablet { background-image: none !important; }
	.has-decoration-space--top.aura-section-header__decoration-space--hide-tablet > .aura-kit-section-heading__content { padding-block-start: 0; }
	.has-decoration-space--bottom.aura-section-header__decoration-space--hide-tablet > .aura-kit-section-heading__content { padding-block-end: 0; }
}

@media (max-width: 767px) {
	.aura-section-header--hide-mobile { display: none; }
	.aura-section-header__element--hide-mobile { display: none; }
	.aura-section-header__background-overlay--hide-mobile::before { display: none; }
	.aura-section-header__gradient--hide-mobile { background-image: none !important; }
	.has-decoration-space--top.aura-section-header__decoration-space--hide-mobile > .aura-kit-section-heading__content { padding-block-start: 0; }
	.has-decoration-space--bottom.aura-section-header__decoration-space--hide-mobile > .aura-kit-section-heading__content { padding-block-end: 0; }
}

.aura-kit-story-card--widget .aura-kit-card-title {
	color: var(--aura-color-text, #17201c);
	font-size: clamp(1.65rem, 2.5vw, 2.35rem);
}

.aura-kit-action-banner--widget .aura-kit-title {
	color: var(--aura-color-accent-contrast, #fff);
	font-size: clamp(2rem, 4vw, 3.8rem);
}

.aura-kit-hero--widget .aura-kit-copy,
.aura-kit-story-card--widget .aura-kit-copy,
.aura-kit-action-banner--widget .aura-kit-copy {
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: clamp(1rem, 1.15vw, 1.2rem);
	line-height: 1.65;
}

:where(.aura-kit-section-heading--widget .aura-kit-copy) {
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: clamp(1rem, 1.15vw, 1.2rem);
	line-height: 1.65;
}

.aura-kit-hero--widget .aura-kit-copy,
.aura-kit-action-banner--widget .aura-kit-copy {
	color: var(--aura-color-accent-contrast, #fff);
}

.aura-kit-hero--widget .aura-kit-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	margin-top: .5rem;
}

a.aura-kit-button-primary,
a.aura-kit-button-secondary,
a.aura-kit-text-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--aura-radius-button, 999px);
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: .875rem;
	font-weight: 750;
	line-height: 1.2;
	text-decoration: none;
	transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

a.aura-kit-button-primary {
	padding: 1rem 1.3rem;
	border: 1px solid var(--aura-color-accent-contrast, #fff);
	background: var(--aura-color-accent-contrast, #fff);
	color: var(--aura-color-text, #17201c);
}

a.aura-kit-button-secondary {
	padding: 1rem 1.3rem;
	border: 1px solid rgb(255 255 255 / 74%);
	background: transparent;
	color: var(--aura-color-accent-contrast, #fff);
}

a.aura-kit-text-action {
	padding: .25rem 0;
	color: var(--aura-color-accent, #285c4d);
}

a.aura-kit-text-action::after {
	margin-left: .45rem;
	content: '→';
}

a.aura-kit-button-primary--light {
	border-color: var(--aura-color-accent-contrast, #fff);
	background: var(--aura-color-accent-contrast, #fff);
	color: var(--aura-color-accent, #285c4d);
}

a.aura-kit-button-primary:hover,
a.aura-kit-button-secondary:hover,
a.aura-kit-text-action:hover {
	transform: translateY(-2px);
}

.aura-kit-metrics--widget .aura-kit-metric__value {
	color: var(--aura-color-accent, #285c4d);
	font-family: var(--aura-font-heading, ui-sans-serif, system-ui, sans-serif);
	font-size: clamp(2.3rem, 4vw, 4.4rem);
	font-weight: 750;
	letter-spacing: -.06em;
	line-height: .95;
}

.aura-kit-metrics--widget .aura-kit-metric__label {
	color: var(--aura-color-muted, #5b655f);
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: .875rem;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.3;
	text-transform: uppercase;
}

.aura-kit-story-card--widget .aura-kit-story-card__image {
	overflow: hidden;
	margin: -1.5rem -1.5rem .5rem;
	border-radius: var(--aura-radius-card, .75rem) var(--aura-radius-card, .75rem) 0 0;
}

.aura-kit-story-card--widget .aura-kit-story-card__image img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* Homepage Impact template: the sections deliberately change rhythm as the
 * visitor scrolls instead of reading as a stack of identical cards. Portfolio
 * is intentionally absent here: its live content belongs to AURA Portfolio. */
.aura-kit-home-slider .swiper-slide-bg::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgb(8 29 22 / 84%) 0%, rgb(8 29 22 / 48%) 48%, rgb(8 29 22 / 8%) 100%);
	content: '';
}

.aura-kit-home-slider .swiper-slide-inner {
	position: relative;
	z-index: 1;
	width: min(100%, var(--aura-container, 1240px));
	margin-inline: auto;
	padding-inline: clamp(1.25rem, 6vw, 5rem);
}

.aura-kit-home-slider .swiper-slide-contents {
	max-width: 48rem;
	text-align: left;
}

.aura-kit-home-slider .elementor-slide-heading {
	margin-bottom: 1.25rem;
	color: #fff;
	font-family: var(--aura-font-heading, ui-sans-serif, system-ui, sans-serif);
	font-size: clamp(3.1rem, 7vw, 7.4rem);
	font-weight: 750;
	letter-spacing: -.065em;
	line-height: .9;
	text-wrap: balance;
}

.aura-kit-home-slider .elementor-slide-description {
	max-width: 38rem;
	margin-bottom: 2rem;
	color: rgb(255 255 255 / 84%);
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: clamp(1rem, 1.2vw, 1.2rem);
	line-height: 1.65;
}

.aura-kit-home-slider .elementor-slide-button {
	padding: 1rem 1.3rem;
	border: 1px solid #fff;
	border-radius: var(--aura-radius-button, 999px);
	background: #fff;
	color: var(--aura-color-text, #17201c);
	font-family: var(--aura-font-body, ui-sans-serif, system-ui, sans-serif);
	font-size: .875rem;
	font-weight: 750;
}

.aura-kit-home-slider .swiper-pagination-bullet {
	width: .7rem;
	height: .7rem;
	border: 1px solid #fff;
	background: transparent;
	opacity: 1;
}

.aura-kit-home-slider .swiper-pagination-bullet-active {
	background: #fff;
}

.aura-kit-home-slider .elementor-swiper-button {
	color: #fff;
}

.aura-kit-home-section {
	width: min(100%, var(--aura-container, 1240px));
	margin-inline: auto;
	padding: clamp(4.5rem, 10vw, 10rem) clamp(1.25rem, 4vw, 3rem);
}

.aura-kit-home-section > .elementor-widget-heading,
.aura-kit-home-section > .elementor-widget-text-editor {
	max-width: 44rem;
}

.aura-kit-home-impact {
	display: grid;
	grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
	column-gap: clamp(2rem, 8vw, 10rem);
	row-gap: 1.25rem;
	align-items: center;
}

.aura-kit-home-impact > .elementor-widget-heading {
	grid-column: 1;
	grid-row: 1;
}

.aura-kit-home-impact > .elementor-widget-text-editor {
	grid-column: 1;
	grid-row: 2;
}

.aura-kit-home-impact > .elementor-widget-aura-one-site-kit-impact-metrics {
	grid-column: 2;
	grid-row: 1 / span 2;
}

.aura-kit-home-impact .aura-kit-metrics--widget {
	width: 100%;
	padding: 0;
}

.aura-kit-home-participate {
	position: relative;
	width: min(100% - 2.5rem, calc(var(--aura-container, 1240px) + 6rem));
	margin-block: clamp(2rem, 5vw, 6rem);
	padding-inline: clamp(2rem, 8vw, 8rem);
	border-radius: var(--aura-radius-card, .75rem);
	background: var(--aura-color-surface-alt, #f2eee6);
}

.aura-kit-home-participate > .elementor-widget-aura-one-site-kit-action-banner {
	margin-top: clamp(1.5rem, 4vw, 4rem);
}

.aura-kit-home-donate {
	display: grid;
	grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
	column-gap: clamp(2rem, 8vw, 9rem);
	row-gap: 1.2rem;
	align-items: center;
}

.aura-kit-home-donate > .elementor-widget-heading {
	grid-column: 1;
	grid-row: 1;
}

.aura-kit-home-donate > .elementor-widget-text-editor {
	grid-column: 1;
	grid-row: 2;
}

.aura-kit-home-donate > .elementor-widget-aura-one-site-kit-action-banner {
	grid-column: 2;
	grid-row: 1 / span 2;
}

@media (max-width: 767px) {
	.aura-kit-home-slider .swiper-slide-bg::after {
		background: linear-gradient(180deg, rgb(8 29 22 / 72%) 0%, rgb(8 29 22 / 78%) 100%);
	}

	.aura-kit-home-slider .swiper-slide-inner {
		padding-inline: 1.5rem;
	}

	.aura-kit-home-impact,
	.aura-kit-home-donate {
		display: flex;
		flex-direction: column;
		align-items: stretch;
	}

	.aura-kit-home-impact > .elementor-widget-aura-one-site-kit-impact-metrics,
	.aura-kit-home-donate > .elementor-widget-aura-one-site-kit-action-banner {
		width: 100%;
	}

	.aura-kit-home-participate {
		width: calc(100% - 2rem);
		margin-block: 1rem;
		padding-inline: 1.5rem;
	}
}

@media (max-width: 1100px) {
	.aura-kit-header--classic-1 .aura-kit-header__inner {
		display: flex;
	}

	.aura-kit-header--classic-1 .aura-kit-header__actions {
		position: static;
		margin-left: auto;
		transform: none;
	}

	.aura-kit-header--classic-1 .aura-kit-header__menu {
		order: 4;
		flex: 0 0 auto;
	}
}

@media (max-width: 767px) {
	.aura-kit-header__inner {
		gap: .65rem;
	}

	.aura-kit-header--classic-1 .aura-kit-header__menu {
		order: 4;
		flex: 0 0 auto;
	}

	.aura-kit-header__search {
		display: none;
	}

	.aura-kit-header__cta .aura-kit-button {
		padding: .62rem .72rem;
		font-size: .7rem;
	}

	.aura-kit-hero {
		min-height: auto;
		padding-block: 6rem;
	}

	.aura-kit-metrics {
		grid-template-columns: 1fr;
	}

	.aura-kit-metric {
		min-height: 0;
	}

	.aura-kit-action-banner {
		align-items: flex-start;
		flex-direction: column;
	}
}

@media (prefers-reduced-motion: reduce) {
	.aura-kit-button-primary .elementor-button,
	.aura-kit-button-secondary .elementor-button,
	.aura-kit-text-action .elementor-button,
	.aura-section-header__button {
		transition: none;
	}
}

/* ------------------------------------------------------------------
 * Section Header media composition
 *
 * Surface (native background) < media < media overlay / decoration < content.
 * The media clip box is independent from the section's overflow policy.
 * ------------------------------------------------------------------ */

.aura-kit-section-heading--widget {
	--aura-sh-media-width: 100%;
	--aura-sh-media-height: 100%;
	--aura-sh-media-x: 50%;
	--aura-sh-media-y: 50%;
	--aura-sh-media-scale: 100;
	--aura-sh-mask-x: 50%;
	--aura-sh-mask-y: 50%;
	--aura-sh-mask-scale: 100%;
	--aura-sh-mask-rotation: 0deg;
	--aura-sh-mask-flip-x: 1;
	--aura-sh-mask-flip-y: 1;
	--aura-sh-media-overlay-color: transparent;
	--aura-sh-media-overlay-gradient-start: transparent;
	--aura-sh-media-overlay-start-position: 0%;
	--aura-sh-media-overlay-gradient-end: transparent;
	--aura-sh-media-overlay-end-position: 100%;
	--aura-sh-media-overlay-angle: 180deg;
	--aura-sh-media-overlay-x: 50%;
	--aura-sh-media-overlay-y: 50%;
}

.aura-section-header__media {
	position: absolute;
	z-index: 1;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
}

.aura-section-header__media-frame {
	position: absolute;
	inset-inline-start: 50%;
	inset-block-start: 50%;
	width: var(--aura-sh-media-width, 100%);
	height: var(--aura-sh-media-height, 100%);
	overflow: hidden;
	transform: translate(-50%, -50%);
	transform-origin: center;
}

.aura-section-header__media--align-top-left .aura-section-header__media-frame {
	inset-inline-start: 0;
	inset-block-start: 0;
	transform: none;
}

.aura-section-header__media--align-top-center .aura-section-header__media-frame {
	inset-block-start: 0;
	transform: translateX(-50%);
}

.aura-section-header__media--align-top-right .aura-section-header__media-frame {
	inset-inline-start: 100%;
	inset-block-start: 0;
	transform: translateX(-100%);
}

.aura-section-header__media--align-left .aura-section-header__media-frame {
	inset-inline-start: 0;
	transform: translateY(-50%);
}

.aura-section-header__media--align-right .aura-section-header__media-frame {
	inset-inline-start: 100%;
	transform: translate(-100%, -50%);
}

.aura-section-header__media--align-bottom-left .aura-section-header__media-frame {
	inset-inline-start: 0;
	inset-block-start: 100%;
	transform: translateY(-100%);
}

.aura-section-header__media--align-bottom-center .aura-section-header__media-frame {
	inset-block-start: 100%;
	transform: translate(-50%, -100%);
}

.aura-section-header__media--align-bottom-right .aura-section-header__media-frame {
	inset-inline-start: 100%;
	inset-block-start: 100%;
	transform: translate(-100%, -100%);
}

.aura-section-header__mask-plane,
.aura-section-header__media-counter,
.aura-section-header__media-image {
	position: absolute;
	inset: 0;
	transform-origin: center;
}

/* The mask plane rotates/flips while the counter-plane applies its exact
 * inverse. The photograph therefore never rotates or flips by accident. */
.aura-section-header__mask-plane {
	transform: rotate(var(--aura-sh-mask-rotation, 0deg))
		scaleX(var(--aura-sh-mask-flip-x, 1))
		scaleY(var(--aura-sh-mask-flip-y, 1));
}

.aura-section-header__mask-plane.is-flipped-x {
	--aura-sh-mask-flip-x: -1;
}

.aura-section-header__mask-plane.is-flipped-y {
	--aura-sh-mask-flip-y: -1;
}

.aura-section-header__media-counter {
	transform: scaleY(var(--aura-sh-mask-flip-y, 1))
		scaleX(var(--aura-sh-mask-flip-x, 1))
		rotate(calc(var(--aura-sh-mask-rotation, 0deg) * -1));
}

.aura-section-header__media-image {
	background-image: var(--aura-sh-media-source);
	background-position: var(--aura-sh-media-x, 50%) var(--aura-sh-media-y, 50%);
	background-repeat: no-repeat;
	transform: scale(calc(var(--aura-sh-media-scale, 100) / 100));
}

.aura-section-header__media-frame--fit-cover .aura-section-header__media-image {
	background-size: cover;
}

.aura-section-header__media-frame--fit-contain .aura-section-header__media-image {
	background-size: contain;
}

.aura-section-header__media-frame--fit-custom .aura-section-header__media-image {
	background-size: auto;
}

/* Progressive enhancement: browsers without CSS masks keep the photo visible.
 * Only this visual plane is masked; content and the action never inherit it. */
@supports ((-webkit-mask-image: url("")) or (mask-image: url(""))) {
	.aura-section-header__mask-plane.has-mask {
		-webkit-mask-image: var(--aura-sh-mask-source);
		mask-image: var(--aura-sh-mask-source);
		-webkit-mask-position: var(--aura-sh-mask-x, 50%) var(--aura-sh-mask-y, 50%);
		mask-position: var(--aura-sh-mask-x, 50%) var(--aura-sh-mask-y, 50%);
		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;
		-webkit-mask-mode: alpha;
		mask-mode: alpha;
	}

	/* Elementor updates prefix_class synchronously while editing. These rules
	 * make Mask type switch immediately instead of waiting for a PHP preview
	 * response; only the selected preset asset becomes the active request. */
	.aura-sh-mask-enabled-yes.aura-sh-mask-type-none .aura-section-header__mask-plane {
		-webkit-mask-image: none;
		mask-image: none;
	}

	.aura-sh-mask-enabled-yes.aura-sh-mask-type-snow-reveal .aura-section-header__mask-plane {
		-webkit-mask-image: url("../masks/snow-reveal.svg");
		mask-image: url("../masks/snow-reveal.svg");
	}

	.aura-sh-mask-enabled-yes.aura-sh-mask-type-organic-brush .aura-section-header__mask-plane {
		-webkit-mask-image: url("../masks/organic-brush.svg");
		mask-image: url("../masks/organic-brush.svg");
	}

	.aura-sh-mask-enabled-yes.aura-sh-mask-type-torn-paper .aura-section-header__mask-plane {
		-webkit-mask-image: url("../masks/torn-paper.svg");
		mask-image: url("../masks/torn-paper.svg");
	}

	.aura-sh-mask-enabled-yes.aura-sh-mask-type-dry-brush .aura-section-header__mask-plane {
		-webkit-mask-image: url("../masks/dry-brush.svg");
		mask-image: url("../masks/dry-brush.svg");
	}

	.aura-sh-mask-enabled-yes.aura-sh-mask-type-watercolor .aura-section-header__mask-plane {
		-webkit-mask-image: url("../masks/watercolor.svg");
		mask-image: url("../masks/watercolor.svg");
	}

	.aura-sh-mask-enabled-yes.aura-sh-mask-type-rough-edge .aura-section-header__mask-plane {
		-webkit-mask-image: url("../masks/rough-edge.svg");
		mask-image: url("../masks/rough-edge.svg");
	}

	.aura-sh-mask-enabled-yes.aura-sh-mask-type-soft-cloud .aura-section-header__mask-plane {
		-webkit-mask-image: url("../masks/soft-cloud.svg");
		mask-image: url("../masks/soft-cloud.svg");
	}

	.aura-sh-mask-enabled-yes.aura-sh-mask-type-custom .aura-section-header__mask-plane {
		-webkit-mask-image: var(--aura-sh-mask-custom-source, none);
		mask-image: var(--aura-sh-mask-custom-source, none);
	}

	.aura-section-header__mask-plane--fit-contain {
		-webkit-mask-size: var(--aura-sh-mask-scale, 100%) auto;
		mask-size: var(--aura-sh-mask-scale, 100%) auto;
	}

	.aura-section-header__mask-plane--fit-cover {
		-webkit-mask-size: auto var(--aura-sh-mask-scale, 100%);
		mask-size: auto var(--aura-sh-mask-scale, 100%);
	}

	.aura-section-header__mask-plane--fit-stretch {
		-webkit-mask-size: var(--aura-sh-mask-scale, 100%) var(--aura-sh-mask-scale, 100%);
		mask-size: var(--aura-sh-mask-scale, 100%) var(--aura-sh-mask-scale, 100%);
	}
}

.aura-section-header__media-overlay {
	position: absolute;
	z-index: 2;
	inset: 0;
	opacity: 1;
	pointer-events: none;
}

.aura-section-header__media-counter > .aura-section-header__media-overlay {
	/* Media-only overlays remain inside the same mask plane. */
	z-index: 2;
}

.aura-section-header__media > .aura-section-header__media-overlay {
	/* Full-section scope deliberately sits outside the mask/frame. */
	z-index: 2;
}

.aura-section-header__media-overlay--color {
	background-color: var(--aura-sh-media-overlay-color, transparent);
}

.aura-section-header__media-overlay--gradient {
	/* --gradient-stops is composed server-side from the start, end and any
	   extra repeater stops, sorted by position; a CSS custom property cannot
	   aggregate a variable number of repeater rows into one function argument
	   list on its own. The literal two-stop fallback only applies if that
	   inline style is ever missing (for example, cached markup from before
	   this control existed). */
	background-image: linear-gradient(
		var(--aura-sh-media-overlay-angle, 180deg),
		var(--aura-sh-media-overlay-gradient-stops,
			var(--aura-sh-media-overlay-gradient-start, transparent) var(--aura-sh-media-overlay-start-position, 0%),
			var(--aura-sh-media-overlay-gradient-end, transparent) var(--aura-sh-media-overlay-end-position, 100%)
		)
	);
}

.aura-section-header__media-overlay--image {
	background-image: var(--aura-sh-media-overlay-source);
	background-position: var(--aura-sh-media-overlay-x, 50%) var(--aura-sh-media-overlay-y, 50%);
}

.aura-section-header__media-overlay--fit-cover { background-size: cover; }
.aura-section-header__media-overlay--fit-contain { background-size: contain; }
.aura-section-header__media-overlay--fit-auto { background-size: auto; }
.aura-section-header__media-overlay--fit-stretch { background-size: 100% 100%; }
.aura-section-header__media-overlay--repeat-no-repeat { background-repeat: no-repeat; }
.aura-section-header__media-overlay--repeat-repeat { background-repeat: repeat; }
.aura-section-header__media-overlay--repeat-repeat-x { background-repeat: repeat-x; }
.aura-section-header__media-overlay--repeat-repeat-y { background-repeat: repeat-y; }

@media (min-width: 1025px) {
	.aura-section-header__media--hide-desktop { display: none; }
	.aura-sh-mask-enabled-yes .aura-section-header__mask-plane.aura-section-header__mask--hide-desktop,
	.aura-section-header__mask-plane.aura-section-header__mask--hide-desktop {
		-webkit-mask-image: none;
		mask-image: none;
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.aura-section-header__media--hide-tablet { display: none; }
	.aura-sh-mask-enabled-yes .aura-section-header__mask-plane.aura-section-header__mask--hide-tablet,
	.aura-section-header__mask-plane.aura-section-header__mask--hide-tablet {
		-webkit-mask-image: none;
		mask-image: none;
	}
}

@media (max-width: 767px) {
	.aura-section-header__media--hide-mobile { display: none; }
	.aura-sh-mask-enabled-yes .aura-section-header__mask-plane.aura-section-header__mask--hide-mobile,
	.aura-section-header__mask-plane.aura-section-header__mask--hide-mobile {
		-webkit-mask-image: none;
		mask-image: none;
	}
}

/* ------------------------------------------------------------------
 * Section Header edge decorations
 *
 * Ornaments are sized from the Section Header itself, never from a fixed
 * canvas width, so every shape adapts across breakpoints. Elementor writes
 * the variables below; the defaults keep an unconfigured ornament sane.
 * ------------------------------------------------------------------ */

.aura-kit-section-heading--widget {
	--aura-sh-decoration-height: 32px;
	--aura-sh-decoration-color-1: currentColor;
	--aura-sh-decoration-color-2: currentColor;
	--aura-sh-decoration-opacity: 1;
	--aura-sh-decoration-scale: 100;
	--aura-sh-decoration-offset-x: 0px;
	--aura-sh-decoration-offset-y: 0px;
	--aura-sh-decoration-flip-x: 1;
	--aura-sh-decoration-flip-y: 1;
	--aura-sh-decoration-anchor: 50%;
	--aura-sh-decoration-translate-x: -50%;
	--aura-sh-decoration-anchor-y: 50%;
	--aura-sh-decoration-translate-y: -50%;
	--aura-sh-decoration-custom-color: currentColor;
}

/* The ornament carries its own clip box, spanning exactly the container.
 * The section keeps whatever Overflow the author chose, and a shape scaled
 * past 100% is clipped here instead of widening the page. */
.aura-section-header__decoration {
	position: absolute;
	inset-inline: 0;
	width: 100%;
	height: var(--aura-sh-decoration-height, 32px);
	overflow: hidden;
	opacity: var(--aura-sh-decoration-opacity, 1);
	/* Decorative only: it can never intercept a click or a caret. */
	pointer-events: none;
}

/* The shape itself is what scales, offsets and flips, inside that clip box. */
.aura-section-header__decoration > * {
	display: block;
	width: calc(var(--aura-sh-decoration-scale, 100) * 1%);
	height: 100%;
	margin-inline-start: var(--aura-sh-decoration-anchor, 50%);
	transform: translateX(var(--aura-sh-decoration-translate-x, -50%))
		translate(var(--aura-sh-decoration-offset-x, 0px), var(--aura-sh-decoration-offset-y, 0px))
		scaleX(var(--aura-sh-decoration-flip-x, 1))
		scaleY(var(--aura-sh-decoration-flip-y, 1));
	transform-origin: var(--aura-sh-decoration-anchor, 50%) center;
}

/* Built-in shapes are authored against the bottom of their viewBox, so the
 * top edge mirrors those presets. Uploaded artwork keeps its original
 * orientation unless the author explicitly enables Flip vertically. */
.aura-section-header__decoration--top {
	inset-block-start: 0;
}

.aura-section-header__decoration--top:not(.aura-section-header__decoration--custom-svg) {
	--aura-sh-decoration-flip-y: -1;
}

.aura-section-header__decoration--bottom {
	inset-block-end: 0;
}

.aura-section-header__decoration.is-flipped-x {
	--aura-sh-decoration-flip-x: -1;
}

.aura-section-header__decoration--top:not(.aura-section-header__decoration--custom-svg).is-flipped-y {
	--aura-sh-decoration-flip-y: 1;
}

.aura-section-header__decoration--top.aura-section-header__decoration--custom-svg.is-flipped-y,
.aura-section-header__decoration--bottom.is-flipped-y {
	--aura-sh-decoration-flip-y: -1;
}

/* Background < decoration < content. Both options stay below the text; they
 * differ in whether the background overlay tints the ornament. */
.aura-section-header__decoration--layer-above-background {
	z-index: 2;
}

.aura-section-header__decoration--layer-behind-content {
	z-index: 0;
}

/* Content is always the top layer, whatever the ornament does. */
.has-decoration > .aura-kit-section-heading__content {
	z-index: 3;
}

.aura-section-header__decoration-path--primary {
	fill: var(--aura-sh-decoration-color-1, currentColor);
}

.aura-section-header__decoration-path--secondary {
	fill: var(--aura-sh-decoration-color-2, currentColor);
}

.aura-section-header__decoration-media {
	background-image: var(--aura-sh-decoration-source);
	background-position: center;
	background-repeat: no-repeat;
}

/* Uploaded artwork is a background layer, not an edge strip. Its canvas spans
 * the entire Section Header and the media box uses the nine-point Alignment
 * control for both axes. Position remains exclusive to built-in edge presets. */
.aura-section-header__decoration--custom-svg {
	inset-block: 0;
	height: 100%;
}

.aura-section-header__decoration--custom-svg > .aura-section-header__decoration-media {
	position: absolute;
	inset-block-start: var(--aura-sh-decoration-anchor-y, 50%);
	inset-inline-start: var(--aura-sh-decoration-anchor, 50%);
	height: var(--aura-sh-decoration-height, 32px);
	margin-inline-start: 0;
	transform: translate(
		var(--aura-sh-decoration-translate-x, -50%),
		var(--aura-sh-decoration-translate-y, -50%)
	)
		translate(var(--aura-sh-decoration-offset-x, 0px), var(--aura-sh-decoration-offset-y, 0px))
		scaleX(var(--aura-sh-decoration-flip-x, 1))
		scaleY(var(--aura-sh-decoration-flip-y, 1));
	transform-origin: center;
}

.aura-section-header__decoration-media.is-colorized {
	background-color: var(--aura-sh-decoration-custom-color, currentColor);
	background-image: none;
	-webkit-mask-image: var(--aura-sh-decoration-source);
	mask-image: var(--aura-sh-decoration-source);
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	mask-mode: alpha;
}

.aura-section-header__decoration-media--fit-stretch {
	background-size: 100% 100%;
	-webkit-mask-size: 100% 100%;
	mask-size: 100% 100%;
}

.aura-section-header__decoration-media--fit-contain {
	background-size: contain;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.aura-section-header__decoration-media--fit-cover {
	background-size: cover;
	-webkit-mask-size: cover;
	mask-size: cover;
}

.aura-section-header__decoration-media--align-top-left {
	--aura-sh-decoration-anchor: 0%;
	--aura-sh-decoration-translate-x: 0%;
	--aura-sh-decoration-anchor-y: 0%;
	--aura-sh-decoration-translate-y: 0%;
	background-position: left top;
	-webkit-mask-position: left top;
	mask-position: left top;
}

.aura-section-header__decoration-media--align-top-center {
	--aura-sh-decoration-anchor: 50%;
	--aura-sh-decoration-translate-x: -50%;
	--aura-sh-decoration-anchor-y: 0%;
	--aura-sh-decoration-translate-y: 0%;
	background-position: center top;
	-webkit-mask-position: center top;
	mask-position: center top;
}

.aura-section-header__decoration-media--align-top-right {
	--aura-sh-decoration-anchor: 100%;
	--aura-sh-decoration-translate-x: -100%;
	--aura-sh-decoration-anchor-y: 0%;
	--aura-sh-decoration-translate-y: 0%;
	background-position: right top;
	-webkit-mask-position: right top;
	mask-position: right top;
}

.aura-section-header__decoration-media--align-left {
	--aura-sh-decoration-anchor: 0%;
	--aura-sh-decoration-translate-x: 0%;
	--aura-sh-decoration-anchor-y: 50%;
	--aura-sh-decoration-translate-y: -50%;
	background-position: left center;
	-webkit-mask-position: left center;
	mask-position: left center;
}

.aura-section-header__decoration-media--align-center {
	--aura-sh-decoration-anchor: 50%;
	--aura-sh-decoration-translate-x: -50%;
	--aura-sh-decoration-anchor-y: 50%;
	--aura-sh-decoration-translate-y: -50%;
	background-position: center center;
	-webkit-mask-position: center center;
	mask-position: center center;
}

.aura-section-header__decoration-media--align-right {
	--aura-sh-decoration-anchor: 100%;
	--aura-sh-decoration-translate-x: -100%;
	--aura-sh-decoration-anchor-y: 50%;
	--aura-sh-decoration-translate-y: -50%;
	background-position: right center;
	-webkit-mask-position: right center;
	mask-position: right center;
}

.aura-section-header__decoration-media--align-bottom-left {
	--aura-sh-decoration-anchor: 0%;
	--aura-sh-decoration-translate-x: 0%;
	--aura-sh-decoration-anchor-y: 100%;
	--aura-sh-decoration-translate-y: -100%;
	background-position: left bottom;
	-webkit-mask-position: left bottom;
	mask-position: left bottom;
}

.aura-section-header__decoration-media--align-bottom-center {
	--aura-sh-decoration-anchor: 50%;
	--aura-sh-decoration-translate-x: -50%;
	--aura-sh-decoration-anchor-y: 100%;
	--aura-sh-decoration-translate-y: -100%;
	background-position: center bottom;
	-webkit-mask-position: center bottom;
	mask-position: center bottom;
}

.aura-section-header__decoration-media--align-bottom-right {
	--aura-sh-decoration-anchor: 100%;
	--aura-sh-decoration-translate-x: -100%;
	--aura-sh-decoration-anchor-y: 100%;
	--aura-sh-decoration-translate-y: -100%;
	background-position: right bottom;
	-webkit-mask-position: right bottom;
	mask-position: right bottom;
}

.aura-section-header__decoration-media--repeat-no-repeat {
	background-repeat: no-repeat;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}

.aura-section-header__decoration-media--repeat-repeat {
	background-repeat: repeat;
	-webkit-mask-repeat: repeat;
	mask-repeat: repeat;
}

.aura-section-header__decoration-media--repeat-repeat-x {
	background-repeat: repeat-x;
	-webkit-mask-repeat: repeat-x;
	mask-repeat: repeat-x;
}

.aura-section-header__decoration-media--repeat-repeat-y {
	background-repeat: repeat-y;
	-webkit-mask-repeat: repeat-y;
	mask-repeat: repeat-y;
}

/* Optional breathing room so a tall ornament never crowds the text. */
.has-decoration-space--top > .aura-kit-section-heading__content {
	padding-block-start: var(--aura-sh-decoration-height, 32px);
}

.has-decoration-space--bottom > .aura-kit-section-heading__content {
	padding-block-end: var(--aura-sh-decoration-height, 32px);
}

/* The Decorative composition only sets a neutral surface. It never forces a
 * decoration on, so the Decoration control stays the single authority. */
.aura-section-design-decorative .aura-kit-section-heading--widget {
	background-color: var(--aura-color-surface, #fff);
}

.aura-section-design-decorative .aura-kit-section-heading__content {
	max-width: 60rem;
}

/* ------------------------------------------------ AURA Latest Products */
.aura-products { --aura-product-accent: var(--aura-color-accent, #0a9f59); color: var(--aura-color-text, #17201c); }
.aura-products__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; }
.aura-products__card { position: relative; min-width: 0; overflow: hidden; border: 1px solid rgb(20 35 28 / 10%); border-radius: 1rem; background: #fff; color: inherit; }
.aura-products__media { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; background: #f4f6f5; color: inherit; text-decoration: none; }
.aura-products__image, .aura-products__image img { display: block; width: 100%; height: 100%; }
.aura-products__image img { object-fit: cover; transition: transform .35s ease; }
.aura-products__card:hover .aura-products__image img { transform: scale(1.035); }
.aura-products__body { display: grid; gap: .55rem; padding: 1.1rem; }
.aura-products__category { color: color-mix(in srgb, currentColor 62%, transparent); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.aura-products__category a, .aura-products__title a { color: inherit; text-decoration: none; }
.aura-products__title { margin: 0; color: inherit; font: inherit; font-size: 1.08rem; font-weight: 700; line-height: 1.25; }
.aura-products__price { font-weight: 750; }
.aura-products__price del { opacity: .55; font-weight: 500; }
.aura-products__price ins { color: var(--aura-product-accent); text-decoration: none; }
.aura-products__rating .star-rating { margin: 0; }
.aura-products__badges { position: absolute; inset: .75rem auto auto .75rem; display: flex; flex-wrap: wrap; gap: .35rem; }
.aura-products__badge { padding: .3rem .55rem; border-radius: 999px; background: var(--aura-product-accent); color: #fff; font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.aura-products__button { display: inline-flex; width: fit-content; align-items: center; justify-content: center; margin-top: .3rem; padding: .65rem .9rem; border: 1px solid var(--aura-product-accent); border-radius: 999px; background: var(--aura-product-accent); color: #fff; font-size: .82rem; font-weight: 750; line-height: 1; text-decoration: none; }
.aura-products__notice { padding: 1rem; border: 1px dashed currentColor; border-radius: .75rem; opacity: .72; }
.aura-products--minimal .aura-products__card { border: 0; border-radius: 0; background: transparent; }
.aura-products--minimal .aura-products__body { padding-inline: 0; }
.aura-products--editorial .aura-products__media { aspect-ratio: 4 / 5; }
.aura-products--editorial .aura-products__title { font-family: var(--aura-font-display, Georgia, serif); font-size: clamp(1.15rem, 2vw, 1.6rem); font-weight: 500; }
.aura-products--overlay .aura-products__card { border: 0; background: #101612; color: #fff; }
.aura-products--overlay .aura-products__media { aspect-ratio: 4 / 5; }
.aura-products--overlay .aura-products__media::after { position: absolute; inset: 35% 0 0; content: ""; background: linear-gradient(transparent, rgb(0 0 0 / 78%)); pointer-events: none; }
.aura-products--overlay .aura-products__body { position: absolute; z-index: 2; inset: auto 0 0; pointer-events: none; }
.aura-products--overlay .aura-products__body a { pointer-events: auto; }
.aura-products--commerce .aura-products__card { box-shadow: 0 12px 32px rgb(20 35 28 / 9%); }
.aura-products--commerce .aura-products__button { width: 100%; }
@media (max-width: 1024px) { .aura-products__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .aura-products__grid { grid-template-columns: minmax(0, 1fr); } }
