/* Linval 3 global shell. One-pager components are provided by linval-gutenberg. */
:root {
	--lv3-header-height: 78px;
	--lv3-focus: #7cc7ff;
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--lv3-header-height) + 1rem); }
body { background: #f6f8fc; color: #080d18; }
body.linval-navigation-open { overflow: hidden; }

.lv-main { margin-block-start: 0; }
body:not(.home) .lv-main { padding-top: var(--lv3-header-height); }

:where(a, button, input, textarea, select, summary):focus-visible {
	outline: 3px solid var(--lv3-focus) !important;
	outline-offset: 3px !important;
}

.lv3-site-header {
	background: linear-gradient(180deg, rgba(5, 8, 22, .74), transparent);
	box-sizing: border-box;
	color: #fff;
	left: 0;
	margin: 0;
	position: fixed;
	right: 0;
	top: 0;
	transition: background-color .24s ease, box-shadow .24s ease, transform .24s ease;
	z-index: 1000;
}
.admin-bar .lv3-site-header { top: var(--wp-admin--admin-bar--height, 32px); }
.lv3-site-header.is-scrolled,
body:not(.home) .lv3-site-header {
	backdrop-filter: blur(18px) saturate(145%);
	background: rgba(5, 8, 22, .88);
	box-shadow: 0 1px 0 rgba(124, 199, 255, .14), 0 12px 30px rgba(0, 0, 0, .16);
}
.lv3-header__inner {
	box-sizing: border-box;
	gap: clamp(.55rem, 2vw, 1.5rem);
	max-width: 1240px;
	min-height: var(--lv3-header-height);
	padding: .72rem 1.25rem;
	transition: min-height .24s ease, padding .24s ease;
}
.lv3-site-header.is-scrolled .lv3-header__inner { min-height: 66px; padding-block: .45rem; }
.lv3-brand { align-items: center; flex: 0 0 auto; }
.lv3-brand .wp-block-site-logo { margin: 0; }
.lv3-brand img { display: block; height: auto; max-height: 42px; width: auto; }
.lv3-brand__fallback,
.lv3-footer__logo { font-size: 1.18rem; font-weight: 760; letter-spacing: .14em; margin: 0; }
.lv3-brand__fallback a,
.lv3-footer__logo a { color: #fff; text-decoration: none; }
.lv3-brand__fallback span,
.lv3-footer__logo span { color: #2388ff; }
.lv3-brand:has(img) .lv3-brand__fallback { display: none; }

.lv3-nav { margin-left: auto; }
.lv3-nav .wp-block-navigation-item__content { color: #fff; font-size: .86rem; font-weight: 600; padding: .55rem .25rem; position: relative; text-decoration: none; }
.lv3-nav .wp-block-navigation-item__content::after { background: #2388ff; bottom: .2rem; content: ""; height: 2px; left: .25rem; position: absolute; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; width: calc(100% - .5rem); }
.lv3-nav .wp-block-navigation-item__content:hover::after,
.lv3-nav .is-active > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.lv3-nav__mobile-cta { display: none; }
.lv3-header__cta { flex: 0 0 auto; }
.lv3-header__cta .wp-block-button__link { background: #2388ff; border-radius: 8px; box-shadow: 0 8px 24px rgba(35, 136, 255, .27); color: #fff; font-size: .83rem; font-weight: 700; min-height: 2.8rem; padding: .65rem 1rem; text-decoration: none; }
.lv3-header__cta .wp-block-button__link { transition: box-shadow 420ms cubic-bezier(.22, 1, .36, 1), transform 420ms cubic-bezier(.22, 1, .36, 1); }
.lv3-header__cta .wp-block-button__link:is(:hover, :focus-visible) { box-shadow: 0 14px 34px rgba(35, 136, 255, .48); transform: translateY(-3px); }

/* Calm, image-free legal template. */
.lv3-legal { background: #f6f8fc; color: #080d18; }
.page-template-page-legal .lv-main { padding-top: 0; }
.lv3-legal__hero { background: radial-gradient(circle at 78% 20%, rgba(35, 136, 255, .24), transparent 27rem), #050816; color: #fff; margin: 0; min-height: 19rem; padding: clamp(8.5rem, 13vw, 11rem) max(1.25rem, env(safe-area-inset-left)) clamp(3.5rem, 6vw, 5.5rem); }
.lv3-legal__hero > .wp-block-group { margin-inline: auto; max-width: 1240px; }
.lv3-legal__eyebrow { color: #7cc7ff; font-size: .78rem; font-weight: 750; letter-spacing: .13em; margin: 0 0 1rem; text-transform: uppercase; }
.lv3-legal__title { color: #fff; font-size: clamp(2.5rem, 6vw, 5rem); font-weight: 760; letter-spacing: -.055em; line-height: .98; margin: 0; max-width: 15ch; }
.lv3-legal__body { box-sizing: border-box; margin: 0 auto; max-width: 780px; padding: clamp(3.5rem, 7vw, 6.5rem) 1.25rem clamp(5rem, 9vw, 8rem); }
.lv3-legal__body :where(.wp-block-post-content, .lv-legal-content) { max-width: 100%; }
.lv3-legal__body :where(h2, h3, h4) { color: #080d18; font-weight: 730; letter-spacing: -.035em; line-height: 1.15; scroll-margin-top: calc(var(--lv3-header-height) + 1.5rem); }
.lv3-legal__body h2 { font-size: clamp(1.65rem, 3vw, 2.35rem); margin: 3.25rem 0 1.1rem; }
.lv3-legal__body h3 { font-size: clamp(1.25rem, 2vw, 1.55rem); margin: 2.35rem 0 .85rem; }
.lv3-legal__body :where(p, li) { color: #3d4a5c; font-size: 1rem; line-height: 1.78; }
.lv3-legal__body p { margin: 0 0 1.2rem; }
.lv3-legal__body :where(ul, ol) { margin: 0 0 1.5rem; padding-left: 1.4rem; }
.lv3-legal__body a { color: #075ec4; text-decoration: underline; text-decoration-thickness: .08em; text-underline-offset: .18em; }
.lv3-legal__body a:hover { color: #06185b; }
.lv3-legal__body :where(table, .wp-block-table) { max-width: 100%; overflow-x: auto; }
.lv3-legal__body hr { border: 0; border-top: 1px solid #dde6f2; margin: 2.5rem 0; }
.lv3-legal__body > .wp-block-post-content > :first-child, .lv3-legal__body .lv-legal-content > :first-child { margin-top: 0; }

.lv3-footer {
	background: #03050e;
	color: rgba(255, 255, 255, .75);
	margin-block-start: 0;
	padding: 3.5rem max(1.25rem, env(safe-area-inset-left)) 1.4rem;
}
.lv3-footer__main { gap: 2rem; max-width: 1240px; }
.lv3-footer__brand p:last-child { font-size: .86rem; margin: .7rem 0 0; }
.lv3-footer p,
.lv3-footer a { color: inherit; }
.lv3-footer__nav { color: #fff; }
.lv3-footer__nav .wp-block-navigation-item__content { color: inherit; font-size: .84rem; text-decoration: none; }
.lv3-footer__nav .wp-block-navigation-item__content:hover { color: #7cc7ff; }
.lv3-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .12); font-size: .78rem; margin-top: 2.3rem; max-width: 1240px; padding-top: 1.2rem; }
.lv3-footer__bottom p { margin: 0; }
.lv3-footer__bottom a { color: inherit; }

.lv3-contact .linval-form { color: #fff; }
.lv3-contact .linval-form-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lv3-contact .linval-form-field { margin: 0; }
.lv3-contact .linval-form-field.is-full { grid-column: 1 / -1; }
.lv3-contact .linval-form label { color: rgba(255, 255, 255, .88); display: block; font-size: .82rem; font-weight: 650; margin-bottom: .35rem; }
.lv3-contact .linval-form :where(input:not([type="checkbox"]), textarea, select) {
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(124, 199, 255, .3);
	border-radius: 8px;
	box-sizing: border-box;
	color: #fff;
	font: inherit;
	min-height: 3rem;
	padding: .72rem .8rem;
	width: 100%;
}
.lv3-contact .linval-form textarea { min-height: 8rem; resize: vertical; }
.lv3-contact .linval-form :where(input, textarea, select):focus { border-color: #2388ff; box-shadow: 0 0 0 3px rgba(35, 136, 255, .22); outline: 0; }
.lv3-contact .linval-form-privacy { color: rgba(255, 255, 255, .76); font-size: .8rem; line-height: 1.5; }
.lv3-contact .linval-form a { color: #7cc7ff; }
.lv3-contact .linval-form button,
.lv3-contact .linval-form input[type="submit"] { background: #2388ff; border: 0; border-radius: 8px; color: #fff; cursor: pointer; font: inherit; font-weight: 700; min-height: 3.2rem; padding: .75rem 1.2rem; }
.lv3-contact .linval-form-notice { border: 1px solid currentColor; border-radius: 8px; padding: .75rem; }
.lv3-contact .linval-form-notice.is-error,
.lv3-contact .linval-form-error { color: #ffb1b1; }
.lv3-contact .linval-form-notice.is-success { color: #9df0c1; }

@media (max-width: 900px) {
	.lv3-header__inner { padding-inline: 1rem; }
	.lv3-header__cta .wp-block-button__link { padding-inline: .75rem; }
	.lv3-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.lv3-nav .wp-block-navigation__responsive-container-open { display: flex !important; }
	.lv3-nav .wp-block-navigation__responsive-container-open { color: #fff; }
	.lv3-nav .wp-block-navigation__responsive-container.is-menu-open {
		background: rgba(5, 8, 22, .98);
		background-color: #050816 !important;
		box-sizing: border-box;
		color: #fff;
		display: block;
		height: 100dvh;
		inset: 0;
		max-height: none;
		max-width: none;
		min-height: 100dvh;
		overflow-y: auto;
		padding: max(4.75rem, calc(env(safe-area-inset-top) + 3.75rem)) max(1rem, env(safe-area-inset-right)) max(1.25rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
		position: fixed;
		width: 100vw;
		z-index: 100000;
	}
	body.linval-navigation-open .lv3-site-header,
	body.linval-navigation-open .lv3-site-header.is-scrolled {
		backdrop-filter: none;
		background: transparent;
		box-shadow: none;
	}
	.lv3-nav .wp-block-navigation__responsive-container-close {
		align-items: center;
		background: rgba(6, 24, 91, .94);
		border: 1px solid rgba(124, 199, 255, .55);
		border-radius: 50%;
		color: #fff;
		display: flex;
		height: 44px;
		justify-content: center;
		padding: 0;
		position: fixed;
		right: max(1rem, env(safe-area-inset-right));
		top: max(1rem, env(safe-area-inset-top));
		width: 44px;
		z-index: 100001;
	}
	.lv3-nav .wp-block-navigation__responsive-container-close svg { fill: currentColor; height: 24px; width: 24px; }
	.lv3-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		align-items: stretch;
		box-sizing: border-box;
		display: flex;
		justify-content: center;
		min-height: calc(100dvh - max(4.75rem, calc(env(safe-area-inset-top) + 3.75rem)) - max(1.25rem, env(safe-area-inset-bottom)));
		padding: 0 !important;
		width: 100%;
	}
	.lv3-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: stretch; gap: .4rem; width: 100%; }
	.lv3-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100%; }
	.lv3-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { border-bottom: 1px solid rgba(255, 255, 255, .12); box-sizing: border-box; color: #fff; display: block; font-size: 1.08rem; padding: .72rem .25rem; width: 100%; }
	.lv3-nav .wp-block-navigation__responsive-container.is-menu-open .lv3-nav__mobile-cta { display: block; }
	.lv3-nav .wp-block-navigation__responsive-container.is-menu-open .lv3-nav__mobile-cta { align-self: center; margin: .65rem auto 0; max-width: 18rem; width: 100%; }
	.lv3-nav .wp-block-navigation__responsive-container.is-menu-open .lv3-nav__mobile-cta .wp-block-navigation-item__content { background: #2388ff; border: 0; border-radius: 8px; color: #fff !important; font-size: 1rem; margin: 0; min-height: 2.8rem; padding: .72rem 1rem; text-align: center; }
}

@media (min-width: 901px) {
	.lv3-nav .wp-block-navigation__responsive-container-open { display: none; }
	.lv3-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: block; position: static; width: 100%; }
}

@media (max-width: 640px) {
	:root { --lv3-header-height: 70px; }
	.lv3-brand img { max-height: 34px; max-width: 92px; }
	.lv3-brand__fallback { font-size: .95rem; }
	.lv3-header__cta { margin-left: auto; }
	.lv3-header__cta .wp-block-button__link { font-size: .72rem; min-height: 2.55rem; padding: .55rem .64rem; white-space: nowrap; }
	.lv3-header__cta .wp-block-button__link::before { content: none; }
	.lv3-header__cta .lv3-button .wp-block-button__link span { display: none; }
	.lv3-nav { flex: 0 0 auto; margin-left: 0; }
	.lv3-nav .wp-block-navigation__responsive-container-open { align-items: center; height: 44px; justify-content: center; min-width: 44px; padding: 0; }
	.lv3-contact .linval-form-grid { grid-template-columns: 1fr; }
	.lv3-contact .linval-form-field.is-full { grid-column: auto; }
	.lv3-footer__main { align-items: flex-start; flex-direction: column; }
	.lv3-footer__nav .wp-block-navigation__container { align-items: flex-start; flex-direction: column; gap: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.lv3-site-header,
	.lv3-header__inner,
	.lv3-nav .wp-block-navigation-item__content::after { transition: none; }
}

@supports not (backdrop-filter: blur(1px)) {
	.lv3-site-header.is-scrolled,
	body:not(.home) .lv3-site-header { background: #050816; }
}

@media (forced-colors: active) {
	.lv3-site-header,
	.lv3-footer { forced-color-adjust: none; }
}
