/* Generated by kindling-onboard. Do not edit by hand — re-run `kindling-onboard generate`. */

/* Default :focus-visible ring */
:where(a, button, .wp-element-button, input, select, textarea, [tabindex]):focus-visible {
	outline: var(--wp--custom--motion--focus-ring--outline, 2px solid var(--wp--preset--color--theme-03));
	outline-offset: var(--wp--custom--motion--focus-ring--outline-offset, 2px);
}

:where(a, button, .wp-element-button, input, select, textarea, [tabindex]):focus:not(:focus-visible) {
	outline: none;
}

/* Starter-reset repair: svg{max-width:100%} renders the 24px nav-toggle icon 0-wide */
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg {
	max-width: none;
}

@keyframes kindling-reveal-fade-up {
	from { opacity: 0; transform: translateY(16px); }
	to   { opacity: 1; transform: translateY(0); }
}

.is-style-reveal-fade-up {
	opacity: 0;
	will-change: opacity, transform;
}

.is-style-reveal-fade-up.is-revealed {
	animation: kindling-reveal-fade-up 200ms cubic-bezier(0.2, 0, 0, 1) both;
}

@keyframes kindling-reveal-fade-in {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.is-style-reveal-fade-in {
	opacity: 0;
	will-change: opacity, transform;
}

.is-style-reveal-fade-in.is-revealed {
	animation: kindling-reveal-fade-in 200ms cubic-bezier(0.2, 0, 0, 1) both;
}

@keyframes kindling-reveal-scale-in {
	from { opacity: 0; transform: scale(0.96); }
	to   { opacity: 1; transform: scale(1); }
}

.is-style-reveal-scale-in {
	opacity: 0;
	will-change: opacity, transform;
}

.is-style-reveal-scale-in.is-revealed {
	animation: kindling-reveal-scale-in 320ms cubic-bezier(0.3, 0, 0, 1) both;
}

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

	[class*="is-style-reveal-"] {
		opacity: 1;
		transform: none;
	}
}


/* Button :focus-visible and :disabled (generated from tokens.buttons.variants.*) */
.wp-element-button:not([class*="is-style-"]):where(:focus-visible), .wp-block-button__link:not([class*="is-style-"]):where(:focus-visible) {
	background-color: var(--wp--preset--color--theme-03);
	color: var(--wp--preset--color--theme-02);
	border-color: var(--wp--preset--color--theme-03);
}

.wp-element-button:not([class*="is-style-"]):where(:disabled, [aria-disabled="true"]), .wp-block-button__link:not([class*="is-style-"]):where(:disabled, [aria-disabled="true"]) {
	background-color: var(--wp--preset--color--theme-09);
	color: var(--wp--preset--color--theme-10);
	border-color: var(--wp--preset--color--theme-09);
	cursor: not-allowed;
	pointer-events: none;
}

.wp-element-button.is-style-outline:where(:focus-visible), .wp-block-button__link.is-style-outline:where(:focus-visible) {
	background-color: transparent;
	color: var(--wp--preset--color--theme-01);
	border-color: var(--wp--preset--color--theme-03);
}

.wp-element-button.is-style-outline:where(:disabled, [aria-disabled="true"]), .wp-block-button__link.is-style-outline:where(:disabled, [aria-disabled="true"]) {
	background-color: transparent;
	color: color-mix(in srgb, var(--wp--preset--color--theme-01) 50%, transparent);
	border-color: transparent;
	cursor: not-allowed;
	pointer-events: none;
}


/* Interaction states (generated from tokens.interactions.*) */
a:focus-visible {
	outline: 2px solid var(--wp--preset--color--theme-03);
	outline-offset: 2px;
}

.wp-block-navigation a:hover {
	
}

.wp-block-navigation a:focus-visible {
	outline: 2px solid var(--wp--preset--color--theme-03);
	outline-offset: 2px;
}

footer.wp-block-template-part a:hover {
	
}

/* ── Hand-authored rules preserved via @kindling:keep ────────────────── */

/* @kindling:keep:start */
/* WHY: Allvia header (Figma 33144:10662 desktop / 33144:10400 drawer). core/navigation's
   overlay breakpoint is hard-coded at 600px; five 25px DIN items + a 174px logo need ~1000px,
   so the hamburger takes over below 1024px (LDT precedent). */
@media (min-width: 600px) and (max-width: 1023.98px) {
	.alv-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.alv-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
}
/* WHY: Figma hamburger = "MENU" label + three 30x3 bars (Nav_Mobile 33144:10454, hero 33144:9764);
   core renders a 2-bar 24px SVG. Bars are currentColor gradients so they follow the text colour. */
.alv-header .wp-block-navigation__responsive-container-open {
	align-items: center; gap: 13px; padding: 0; /* no display here: core hides this button >=600px via an equal-specificity rule and a display:flex would win on source order */
	color: var(--wp--preset--color--theme-01);
	font-family: var(--wp--preset--font-family--din-2014); font-weight: 700; font-size: 1.1875rem; line-height: 1.2; text-transform: uppercase;
}
.alv-header .wp-block-navigation__responsive-container-open svg { display: none; }
.alv-header .wp-block-navigation__responsive-container-open::before { content: "MENU"; }
/* WHY: markup 9/29 pin 26 - smaller MENU label so the Allvia logo leads (was rendering 25px: an inherited
   nav font-size rule beat the 1.1875rem above). */
.alv-header .wp-block-navigation__responsive-container-open { font-size: 1rem !important; }
.alv-header .wp-block-navigation__responsive-container-open::after {
	content: ""; width: 30px; height: 21px; flex: none;
	background-image: linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor);
	background-size: 30px 3px; background-position: left top, left center, left bottom; background-repeat: no-repeat;
}
/* WHY: drawer (Figma 33144:10400) is the teal field with the logo top-left, lime X top-right, 70px gap,
   then links stacked left in 48px rows. Core's overlay covers the header, so the logo is re-drawn on the
   dialog's ::before from the theme asset (env-portable relative URL). !important beats core's equal-specificity
   overlay rules (source-order tie). */
.alv-header .wp-block-navigation__responsive-container.is-menu-open { padding: 36px 25px !important; }
.alv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { position: relative; }
.alv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog::before {
	content: ""; display: block; width: 137px; height: 45px;
	background: url(../images/allvia-logo.svg) left center / contain no-repeat;
}
.alv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 70px !important; align-items: flex-start !important; }
.alv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { top: 8px !important; right: 0 !important; padding: 0; color: var(--wp--preset--color--theme-03); }
.alv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg { width: 30px; height: 30px; max-width: none; }
.alv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; gap: 0 !important; }
.alv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { padding: 9px 8px; font-size: 1.5625rem; line-height: 1.2; font-weight: 700; }
/* WHY: footer watermark (Figma 33144:10778): the big "A" mark is an image FILL at 10% opacity that core groups
   cannot express; painted on ::before from the theme asset (env-portable relative URL). Desktop geometry
   w 46.61% / h 142% / left -1.12% / top -26.86%; mobile w 147.78% / h 100% / left -32.5% / top 0. */
.alv-footer::before {
	content: ""; position: absolute; z-index: 0; pointer-events: none; opacity: 0.1;
	left: -32.5%; top: 0; width: 147.78%; height: 100%;
	background: url(../images/allvia-footer-texture.png) 0 0 / 100% 100% no-repeat;
}
@media (min-width: 1024px) {
	.alv-footer::before { left: -1.12%; top: -26.86%; width: 46.61%; height: 142%; }
}
/* WHY: teal sections carry the Figma frame texture (d6d19.png) as an image fill at 2% opacity - core groups cannot express it; ::before from the theme asset.
   The asset MUST keep its alpha channel (webp/png): the original .jpg export flattened the white glyphs onto white, so the texture was invisible at 2% (fixed 2026-09-22). */
.alv-pillars{position:relative;isolation:isolate}
.alv-pillars::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.02;background:url(../images/allvia-section-texture.webp) center/cover no-repeat}
/* WHY: teal sections + results card carry the Figma frame texture (2% opacity); results card also a soft-light photo at 59%. */
.alv-fits{position:relative;isolation:isolate}
.alv-fits::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.02;background:url(../images/allvia-section-texture.webp) center/cover no-repeat}
.alv-results .alv-results__card::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.59;mix-blend-mode:soft-light;background:url(../images/allvia-results-texture.jpg) center/cover no-repeat}
.alv-cta{position:relative;isolation:isolate}
.alv-cta::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.4;background:url(../images/allvia-section-texture.webp) center/cover no-repeat}
/* WHY: intro band (Figma 33180:1921) carries the same 2% monogram texture fill as the other teal sections. */
.alv-intro{position:relative;isolation:isolate}
.alv-intro::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.02;background:url(../images/allvia-section-texture.webp) center/cover no-repeat}
/* WHY: rounded teal feature cards (Related Solutions 33180:2381, Mission) = teal + 42% gradient (group attr)
   + 2% monogram + 59% soft-light desaturated photo; core groups hold one background, so the two image layers are pseudo-elements. */
.alv-feature-card{position:relative;overflow:hidden;isolation:isolate}
.alv-feature-card::before,.alv-feature-card::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none}
.alv-feature-card::before{opacity:.02;background:url(../images/allvia-section-texture.webp) center/cover no-repeat}
.alv-feature-card::after{opacity:.59;mix-blend-mode:soft-light;filter:grayscale(1);background:url(../images/allvia-feature-texture.jpg) center/cover no-repeat}
.alv-feature-card > *{position:relative;z-index:1}
/* WHY: markup 9/28 pins 1/14/15/16 added Solutions + Who We Serve submenus (no Figma dropdown
   design; styled from the drawer tokens). Desktop: core caps the dropdown at 200px so "Private
   Equity & M&A Partners" wrapped to 3 lines -> size to content. Drawer: submenu <li> inherits the
   nav's right-justify (flex-end) so children drifted right -> left-align + indent, lighter/smaller
   child type so the 14-item list reads as two levels. !important: core layout rules are inline-
   generated at equal or higher specificity. */
@media (min-width: 1024px) {
	.alv-header .wp-block-navigation .wp-block-navigation__submenu-container { min-width: max-content !important; padding: 8px 0 !important; }
	.alv-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { white-space: nowrap; padding: 10px 24px !important; font-size: 1.125rem; }
	.alv-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
	.alv-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible { color: var(--wp--preset--color--theme-03) !important; }
	/* Nested flyouts (Who We Serve > Partners): core opens them LEFT (right:100%) in a right-justified nav. Markup pin 39
	   (2026-09-30): third tier opens RIGHT so the eye reads across; core's default chevron (-90deg = right) already matches. */
	.alv-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { left: 100% !important; right: auto !important; }
}
.alv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu { align-items: flex-start !important; width: 100%; }
.alv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { align-items: flex-start !important; gap: 0 !important; padding: 0 0 10px 20px !important; }
.alv-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 6px 8px; font-size: 1.1875rem; font-weight: 400; }
/* WHY: Allvia motion (markup review 2026-09-28). Hover bounce, pins 2/4/6/11/18 - applies wherever
   these card patterns are used (pins 4/6 asked for site-wide). Uses `transform`; the entrance reveal
   below uses the separate `translate` property so a finished reveal never pins the hover transform.
   Spring curve overshoots -> the "bounce". Cards with a fill also get a soft shadow (pin 6 option). */
.alv-pillar, .alv-card, .alv-fit, .alv-brokers__banner, .alv-brokers__card, .alv-inc__card, .alv-chooser__card {
	transition: transform 420ms cubic-bezier(0.34, 1.8, 0.64, 1), box-shadow 300ms ease;
}
.alv-pillar:hover, .alv-pillar:focus-within,
.alv-card:hover, .alv-card:focus-within,
.alv-fit:hover, .alv-fit:focus-within,
.alv-brokers__banner:hover, .alv-brokers__card:hover,
.alv-inc__card:hover, .alv-inc__card:focus-within,
.alv-chooser__card:hover, .alv-chooser__card:focus-within {
	transform: translateY(-8px);
}
.alv-card:hover, .alv-card:focus-within,
.alv-fit:hover, .alv-fit:focus-within,
.alv-brokers__banner:hover, .alv-brokers__card:hover,
.alv-inc__card:hover, .alv-inc__card:focus-within,
.alv-chooser__card:hover, .alv-chooser__card:focus-within {
	box-shadow: 0 14px 28px -12px rgb(0 0 0 / 0.35);
}
/* WHY: entrance reveals (pins 2/5/7/9/10/17). Classes are added by assets/js/allvia-motion.js
   only when JS runs and motion is allowed, so content is never left hidden. --alv-rv-delay staggers
   siblings (pillars, proven items). Slide-ins are clipped by their section so the offscreen start
   position never causes horizontal scroll. */
.alv-rv { opacity: 0; } /* no transition here: hiding must be instant, or content flashes then fades out */
.alv-rv.is-in {
	transition: opacity 700ms ease-out, translate 800ms cubic-bezier(0.2, 0.7, 0.2, 1);
	transition-delay: var(--alv-rv-delay, 0ms);
}
.alv-rv--up { translate: 0 28px; }
.alv-rv--left { translate: -80px 0; }
.alv-rv--right { translate: 80px 0; }
.alv-rv.is-in { opacity: 1; translate: 0 0; }
.alv-split, .alv-cta { overflow-x: clip; }
@media (prefers-reduced-motion: reduce) {
	.alv-pillar, .alv-card, .alv-fit, .alv-brokers__banner, .alv-brokers__card, .alv-inc__card, .alv-chooser__card { transform: none !important; }
	.alv-rv { opacity: 1; translate: none; }
}
/* @kindling:keep:end */
