/*
 * Laquanta – theme styles (front end + editor).
 * Colours, fonts and base typography come from theme.json; this file adds the
 * original "Fekra" look, sliders, forms, scroll animations and page transitions.
 *
 * Rules that must not run inside the editor are prefixed with `body:not(.editor-styles-wrapper)`.
 */

:root {
	--lq-green: var(--wp--preset--color--primary, #49b465);
	--lq-navy: var(--wp--preset--color--secondary, #2c3e50);
	--lq-navy-deep: var(--wp--preset--color--secondary-dark, #1b2c3e);
	--lq-border: var(--wp--preset--color--border, #e6e6e6);
	--lq-topbar-h: 44px;
	--lq-masthead-h: 112px;
	--lq-navbar-h: 70px;
	--lq-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base ---------- */

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip; }
::selection { background: var(--lq-green); color: #fff; }
img { height: auto; max-width: 100%; }
.wp-site-blocks > * { margin-block: 0; }
.wp-site-blocks > main { position: relative; z-index: 1; background: #fff; }
.wp-block-group:where(.has-background) { position: relative; }
:where(.wp-block-columns) { margin-bottom: 0; }

.screen-reader-text,
.lq-visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	margin: -1px; padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---------- Header ---------- */

body:not(.editor-styles-wrapper) .wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--lq-topbar-h) - var(--lq-masthead-h));
	z-index: 100;
}

.lq-topbar {
	min-height: var(--lq-topbar-h);
	display: flex;
	flex-direction: column;
	justify-content: center;
	font-size: 12px;
	line-height: var(--lq-topbar-h);
}
.lq-topbar p { margin: 0; width: 100%; color: var(--lq-navy); }

.lq-masthead {
	min-height: var(--lq-masthead-h);
	display: flex;
	align-items: center;
	background: #fff;
}
.lq-masthead > .wp-block-group { width: 100%; }
.lq-masthead .wp-block-site-logo img { width: 211px; height: auto; }

.lq-header-info { gap: 20px 40px; }
.lq-info-item { gap: 18px; align-items: center; }
.lq-info-item .wp-block-icon {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid #dcdcdc;
	border-radius: 50%;
	color: var(--lq-green);
	transition: background-color .3s, color .3s, border-color .3s;
}
.lq-info-item .wp-block-icon svg { width: 18px; height: 18px; }
.lq-info-item:hover .wp-block-icon { background: var(--lq-green); border-color: var(--lq-green); color: #fff; }
.lq-info-item p { margin: 0; line-height: 1.4; font-size: 12px; }
.lq-info-item .lq-info-label { color: var(--lq-navy); font-weight: 700; text-transform: uppercase; }
.lq-info-item .lq-info-value,
.lq-info-item .lq-info-value a { color: var(--wp--preset--color--muted, #ababab); }
.lq-info-item .lq-info-value a:hover { color: var(--lq-green); }

.lq-navbar {
	background: var(--lq-navy);
	color: #fff;
	min-height: var(--lq-navbar-h);
	display: flex;
	align-items: center;
	transition: box-shadow .3s;
}
.lq-navbar > * { width: 100%; }

/* Primary navigation (desktop) */
.lq-primary-nav { width: 100%; }
.lq-primary-nav .wp-block-navigation__container { gap: 0 34px; align-items: center; width: 100%; }
.lq-primary-nav .wp-block-navigation-item__content {
	color: #fff;
	font-size: 14px;
	line-height: var(--lq-navbar-h);
	padding: 0;
	letter-spacing: .02em;
	transition: color .25s;
}
.lq-primary-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
.lq-primary-nav .current-menu-item > .wp-block-navigation-item__content,
.lq-primary-nav .current-menu-ancestor > .wp-block-navigation-item__content,
.lq-primary-nav .wp-block-navigation-item__content[aria-current="page"] { color: var(--lq-green); }

.lq-primary-nav .wp-block-navigation__submenu-icon { color: #fff; margin-left: 4px; }
.lq-primary-nav .wp-block-navigation__submenu-container {
	background: var(--lq-navy) !important;
	border: 0 !important;
	border-top: 2px solid var(--lq-green) !important;
	min-width: 230px !important;
	padding: 10px 0;
	box-shadow: 0 12px 30px rgba(0, 0, 0, .18);
	transform: translateY(10px);
	transition: opacity .25s var(--lq-ease), transform .25s var(--lq-ease), visibility .25s;
}
.lq-primary-nav .has-child:hover > .wp-block-navigation__submenu-container,
.lq-primary-nav .has-child:focus-within > .wp-block-navigation__submenu-container { transform: none; }
.lq-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	line-height: 1.6;
	padding: 8px 22px;
	font-size: 13px;
}
.lq-primary-nav .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { top: -12px; }

/* Search inside the navigation bar */
.lq-primary-nav .wp-block-search { margin-left: auto; }
.lq-primary-nav .wp-block-search__inside-wrapper {
	background: var(--wp--preset--color--secondary-soft, #394a5c);
	border: 0;
	padding: 0;
	width: 210px;
	height: 40px;
}
.lq-primary-nav .wp-block-search__input {
	background: transparent;
	border: 0;
	color: #fff;
	font-size: 13px;
	padding: 0 0 0 15px;
	text-transform: none;
}
.lq-primary-nav .wp-block-search__input::placeholder { color: #8f9aa6; }
.lq-primary-nav .wp-block-search__button {
	background: transparent;
	color: #fff;
	padding: 0 14px;
	margin: 0;
	border: 0;
}
.lq-primary-nav .wp-block-search__button svg { width: 20px; height: 20px; fill: currentColor; }
.lq-primary-nav .wp-block-search__button:hover { color: var(--lq-green); }

/* Hamburger + drawer (below 1025px; core only switches at 600px) */
.lq-primary-nav .wp-block-navigation__responsive-container-open { color: var(--lq-navy); }
.lq-primary-nav .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }

@media (min-width: 600px) and (max-width: 1024px) {
	.lq-primary-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.lq-primary-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}

.lq-primary-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: rgba(15, 22, 30, .6) !important;
	padding: 0 !important;
	backdrop-filter: blur(2px);
}
.lq-primary-nav .is-menu-open .wp-block-navigation__responsive-close {
	width: min(300px, 86vw);
	max-width: none;
	min-height: 100%;
	margin: 0;
	background: #222;
	box-shadow: 10px 0 40px rgba(0, 0, 0, .35);
	animation: lq-drawer-in .35s var(--lq-ease) both;
}
.lq-primary-nav .is-menu-open .wp-block-navigation__responsive-dialog { margin: 0; padding: 0; }
.lq-primary-nav .is-menu-open .wp-block-navigation__responsive-container-close { top: 18px; right: 16px; color: #fff; }
.lq-primary-nav .is-menu-open .wp-block-navigation__responsive-container-content {
	padding: 64px 0 30px !important;
	gap: 0 !important;
	align-items: stretch !important;
}
.lq-primary-nav .is-menu-open .wp-block-navigation__container { gap: 0 !important; align-items: stretch !important; width: 100%; }
.lq-primary-nav .is-menu-open .wp-block-navigation-item { align-items: stretch !important; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.lq-primary-nav .is-menu-open .wp-block-navigation-item__content {
	color: #fff;
	line-height: 1.5;
	padding: 13px 24px !important;
	font-size: 14px;
	font-weight: 700;
}
.lq-primary-nav .is-menu-open .wp-block-navigation__submenu-container {
	border-top: 0 !important;
	box-shadow: none;
	padding: 0 0 8px 14px !important;
	transform: none;
	min-width: 0 !important;
}
.lq-primary-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border: 0; }
.lq-primary-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 7px 24px !important;
	font-weight: 400;
	color: #c9c9c9;
}
.lq-primary-nav .is-menu-open .wp-block-search { margin: 24px 24px 0; }
.lq-primary-nav .is-menu-open .wp-block-search__inside-wrapper { width: 100%; }

@keyframes lq-drawer-in { from { transform: translateX(-100%); } }

/* Header layout below 1025px: logo centred, hamburger on the left. */
@media (max-width: 1024px) {
	:root { --lq-masthead-h: 74px; }
	body:not(.editor-styles-wrapper) .wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 0px); }
	body:not(.editor-styles-wrapper) .lq-header {
		display: grid;
		grid-template-areas: "bar";
		background: #fff;
		box-shadow: 0 1px 0 var(--lq-border);
	}
	body:not(.editor-styles-wrapper) .lq-topbar,
	body:not(.editor-styles-wrapper) .lq-header-info { display: none !important; }
	body:not(.editor-styles-wrapper) .lq-masthead,
	body:not(.editor-styles-wrapper) .lq-navbar { grid-area: bar; min-height: var(--lq-masthead-h); }
	body:not(.editor-styles-wrapper) .lq-masthead > .wp-block-group { justify-content: center !important; }
	body:not(.editor-styles-wrapper) .lq-masthead .wp-block-site-logo img { width: 160px; }
	body:not(.editor-styles-wrapper) .lq-navbar { background: transparent; pointer-events: none; }
	body:not(.editor-styles-wrapper) .lq-navbar .wp-block-navigation__responsive-container-open,
	body:not(.editor-styles-wrapper) .lq-navbar .wp-block-navigation__responsive-container.is-menu-open { pointer-events: auto; }
	body:not(.editor-styles-wrapper) .lq-navbar .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-search { display: none; }
}
@media (max-width: 599px) {
	body:not(.editor-styles-wrapper) .lq-primary-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
}

/* ---------- Page title banner ---------- */

.lq-page-title {
	min-height: 237px !important;
	overflow: hidden;
	text-align: center;
}
.lq-page-title .wp-block-post-title,
.lq-page-title .lq-page-title__heading {
	color: #000;
	font-size: 28px;
	font-weight: 700;
	letter-spacing: -.01em;
	margin: 0 0 6px;
	text-transform: uppercase;
}
.lq-page-title .wp-block-breadcrumbs { font-size: 16px; justify-content: center; }
.lq-page-title .wp-block-breadcrumbs ol { justify-content: center; }

@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: scroll()) {
		body:not(.editor-styles-wrapper) .lq-page-title .wp-block-cover__image-background {
			animation: lq-parallax linear both;
			animation-timeline: scroll(root);
			animation-range: 0 500px;
		}
	}
}
@keyframes lq-parallax { to { transform: translateY(120px) scale(1.08); } }

/* ---------- Section headings ---------- */

.wp-block-heading.is-style-section-title { position: relative; padding-bottom: 22px; margin-bottom: 30px; }
.wp-block-heading.is-style-section-title::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 60px;
	height: 0;
	border-bottom: 2px solid var(--lq-green);
	transform: translateX(-50%);
}
.wp-block-heading.is-style-section-title.has-text-align-left::after { left: 0; transform: none; }
.wp-block-heading.is-style-section-title.has-text-align-right::after { left: auto; right: 0; transform: none; }
.wp-block-heading.is-style-section-title + p { margin-top: -10px; }

.lq-subtitle { font-size: 18px; line-height: 2; }
.lq-eyebrow {
	color: var(--lq-green);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .18em;
	text-transform: uppercase;
}

/* Spec items on product pages (heading + value) */
.lq-spec .wp-block-heading { font-size: 22px; margin-bottom: 18px; padding-bottom: 16px; }
.lq-spec p { color: var(--wp--preset--color--body); }

/* ---------- Zigzag separator ---------- */

hr.wp-block-separator.is-style-zigzag {
	width: 144px;
	max-width: 30%;
	height: 10px;
	margin-inline: auto !important;
	border: 0 !important;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 18 15'%3E%3Cpolygon fill='%23ebebeb' points='8.99 0 0 9.13 0 14.52 9 5.4 18 14.52 18 9.13'/%3E%3C/svg%3E") repeat-x 0 50%;
	opacity: 1;
}
hr.wp-block-separator.is-style-zigzag.has-text-color { background-color: transparent; }

/* ---------- Images & product grids ---------- */

.wp-block-image.is-style-framed img { border: 1px solid var(--lq-border); padding: 8px; background: #fff; }

.lq-product-card { text-align: center; }
.lq-product-card .wp-block-heading { font-size: 16px; letter-spacing: .06em; margin-bottom: 16px; }
.lq-product-card .wp-block-image { overflow: hidden; margin: 0; }
.lq-product-card .wp-block-image img { transition: transform .6s var(--lq-ease); }
.lq-product-card:hover .wp-block-image img { transform: scale(1.04); }

/* Captioned tiles (replaces the portfolio grid) */
.wp-block-gallery.is-style-tiles .wp-block-image { overflow: hidden; background: var(--lq-navy-deep); }
.wp-block-gallery.is-style-tiles .wp-block-image img { transition: transform .6s var(--lq-ease), opacity .4s; }
.wp-block-gallery.is-style-tiles .wp-block-image:hover img { transform: scale(1.06); opacity: .85; }
.wp-block-gallery.is-style-tiles .wp-block-image figcaption {
	background: linear-gradient(transparent, rgba(27, 44, 62, .92)) !important;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	padding: 30px 16px 12px !important;
	text-align: left;
}

/* Masonry gallery (Factory page) */
.wp-block-gallery.is-style-masonry { display: block !important; columns: 4 220px; column-gap: 16px; }
.wp-block-gallery.is-style-masonry > .wp-block-image { width: 100% !important; margin: 0 0 16px !important; break-inside: avoid; }
.wp-block-gallery.is-style-masonry > .wp-block-image img { width: 100%; height: auto !important; object-fit: initial !important; }

/* ---------- Carousel (Gallery block) ---------- */

body:not(.editor-styles-wrapper) .wp-block-gallery.is-style-carousel {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 0 !important;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
body:not(.editor-styles-wrapper) .wp-block-gallery.is-style-carousel::-webkit-scrollbar { display: none; }
body:not(.editor-styles-wrapper) .wp-block-gallery.is-style-carousel > .wp-block-image {
	flex: 0 0 100% !important;
	width: 100% !important;
	margin: 0 !important;
	scroll-snap-align: start;
	scroll-snap-stop: always;
	display: flex !important;
	align-items: center;
	justify-content: center;
}
.wp-block-gallery.is-style-carousel.lq-framed > .wp-block-image {
	display: grid !important;
	place-items: center;
	height: 200px;
	background: #fff;
	box-shadow: inset 0 0 0 1px rgba(138, 138, 138, .45);
}
.wp-block-gallery.is-style-carousel.lq-framed > .wp-block-image img {
	width: auto !important;
	max-width: calc(100% - 30px) !important;
	height: auto !important;
	max-height: 176px;
	object-fit: contain !important;
}
.wp-block-gallery.is-style-carousel.lq-tall > .wp-block-image img { max-height: 520px; width: 100%; object-fit: contain !important; }

.lq-carousel-nav { display: flex; justify-content: center; margin-top: 22px; }
.lq-dots { display: flex; gap: 10px; justify-content: center; }
.lq-dot {
	width: 12px;
	height: 12px;
	padding: 0;
	border: 1px solid var(--lq-green);
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
	transition: background-color .3s, transform .3s;
}
.lq-dot:hover { transform: scale(1.2); }
.lq-dot[aria-current="true"] { background: var(--lq-green); }
.lq-dot[hidden] { display: none; }

/* ---------- Hero slider (Group of Cover blocks) ---------- */

body:not(.editor-styles-wrapper) .is-style-hero-slider {
	display: grid !important;
	grid-template-areas: "slide";
	position: relative;
	overflow: hidden;
	gap: 0 !important;
	background: var(--lq-navy-deep);
	touch-action: pan-y;
}
body:not(.editor-styles-wrapper) .is-style-hero-slider > .wp-block-cover {
	grid-area: slide;
	margin: 0 !important;
	opacity: 0;
	visibility: hidden;
	transition: opacity 1.2s ease, visibility 1.2s;
}
/* Until the slider starts, only slide 1 exists in the layout, so lazy slide images wait. */
body:not(.editor-styles-wrapper) .is-style-hero-slider:not(.is-ready) > .wp-block-cover:not(:first-child) { display: none; }
body:not(.editor-styles-wrapper) .is-style-hero-slider:not(.is-ready) > .wp-block-cover:first-child,
body:not(.editor-styles-wrapper) .is-style-hero-slider > .wp-block-cover.is-active { opacity: 1; visibility: visible; }

.is-style-hero-slider .wp-block-cover { min-height: min(710px, 72vh) !important; }
.is-style-hero-slider .wp-block-cover__inner-container img { filter: drop-shadow(0 6px 24px rgba(0, 0, 0, .35)); }

@media (prefers-reduced-motion: no-preference) {
	body:not(.editor-styles-wrapper) .is-style-hero-slider > .wp-block-cover:is(.is-active, :first-child:not(.is-ready *)) .wp-block-cover__image-background {
		animation: lq-kenburns 9s ease-out both;
	}
	body:not(.editor-styles-wrapper) .is-style-hero-slider > .wp-block-cover.is-active .wp-block-cover__inner-container > * {
		animation: lq-rise .9s .35s var(--lq-ease) both;
	}
}
@keyframes lq-kenburns { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes lq-rise { from { opacity: 0; transform: translateY(30px); } }

.is-style-hero-slider .lq-dots { position: absolute; left: 0; right: 0; bottom: 26px; z-index: 3; }
.is-style-hero-slider .lq-dot { border-color: #fff; width: 13px; height: 13px; }
.is-style-hero-slider .lq-dot[aria-current="true"] { background: #fff; }
.lq-arrow {
	position: absolute;
	top: 50%;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	margin-top: -24px;
	border: 0;
	border-radius: 50%;
	background: rgba(27, 44, 62, .45);
	color: #fff;
	cursor: pointer;
	opacity: 0;
	transition: opacity .3s, background-color .3s;
}
.lq-arrow--prev { left: 24px; }
.lq-arrow--next { right: 24px; }
.lq-arrow--next svg { transform: scaleX(-1); }
.is-style-hero-slider:hover .lq-arrow,
.lq-arrow:focus-visible { opacity: 1; }
.lq-arrow:hover { background: var(--lq-green); }
@media (hover: none) { .lq-arrow { display: none; } }

/* ---------- Homepage sections ---------- */

/* Company at a glance */
.lq-stat {
	border-left: 2px solid var(--lq-green);
	padding: 4px 0 4px 22px !important;
}
.lq-stat .lq-stat__value {
	color: var(--lq-navy);
	font-size: clamp(30px, 3.4vw, 42px);
	font-weight: 900;
	line-height: 1.1;
	letter-spacing: -.02em;
	margin: 0 0 6px;
}
.lq-stat .lq-stat__value .has-primary-color,
.lq-stat .lq-stat__value mark { color: var(--lq-green); background: none; }
.lq-stat p:last-child { line-height: 1.6; }

/* Cards (why distributors choose us) */
.wp-block-group.is-style-card {
	background: #fff;
	border: 1px solid var(--lq-border);
	padding: 34px 28px !important;
	height: 100%;
	transition: transform .4s var(--lq-ease), box-shadow .4s var(--lq-ease), border-color .4s;
}
.wp-block-group.is-style-card:hover {
	transform: translateY(-6px);
	border-color: transparent;
	box-shadow: var(--wp--preset--shadow--lifted);
}
.wp-block-group.is-style-card .wp-block-heading { font-size: 18px; margin: 18px 0 10px; }
.wp-block-group.is-style-card p { line-height: 1.85; }
.lq-icon-circle .wp-block-icon,
.wp-block-icon.lq-icon-circle {
	display: grid;
	place-items: center;
	width: 62px;
	height: 62px;
	border: 1px solid #dcdcdc;
	border-radius: 50%;
	color: var(--lq-green);
	transition: background-color .35s, color .35s, border-color .35s;
}
.wp-block-icon.lq-icon-circle svg { width: 26px; height: 26px; }
.is-style-card:hover .wp-block-icon.lq-icon-circle { background: var(--lq-green); border-color: var(--lq-green); color: #fff; }

/* Spec strip */
.lq-specs { background: var(--lq-navy); color: #fff; }
.lq-specs .wp-block-column { text-align: center; padding: 26px 12px; position: relative; }
.lq-specs .wp-block-column + .wp-block-column::before {
	content: "";
	position: absolute;
	left: 0;
	top: 26%;
	bottom: 26%;
	border-left: 1px solid rgba(255, 255, 255, .14);
}
.lq-specs .wp-block-icon { color: var(--lq-green); justify-content: center; display: flex; }
.lq-specs .wp-block-icon svg { width: 26px; height: 26px; }
.lq-specs strong { display: block; color: #fff; font-size: 17px; line-height: 1.5; margin-top: 8px; }
.lq-specs p { color: #b8c0c9; font-size: 13px; line-height: 1.5; margin: 0; }

/* Process steps */
.lq-step { position: relative; }
.lq-step .wp-block-image { overflow: hidden; margin: 0 0 22px; }
.lq-step .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; transition: transform .7s var(--lq-ease); }
.lq-step:hover .wp-block-image img { transform: scale(1.06); }
.lq-step__num {
	color: var(--lq-green);
	font-size: 13px;
	font-weight: 900;
	letter-spacing: .2em;
	margin: 0 0 4px !important;
}
.lq-step .wp-block-heading { font-size: 20px; margin: 0; }
@media (min-width: 782px) {
	.lq-steps > .wp-block-column:not(:last-child) .lq-step__num::after {
		content: "";
		display: inline-block;
		width: 60px;
		height: 1px;
		margin-left: 14px;
		vertical-align: middle;
		background: var(--lq-border);
	}
}

/* Button variations */
.wp-block-button.is-style-outline > .wp-block-button__link {
	border: 1px solid currentColor;
	background: transparent;
	color: var(--lq-navy);
	padding: 9px 23px;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--lq-green); border-color: var(--lq-green); color: #fff; }
.lq-link-arrow a::after { content: " →"; transition: margin .25s; }
.lq-link-arrow a:hover::after { margin-left: 4px; }
.lq-link-arrow a { font-weight: 700; }

/* Dark CTA band with the request form */
.lq-cta .wp-block-heading { color: #fff; }
.lq-cta .lq-subtitle { color: #fff; }
.lq-cta hr.wp-block-separator.is-style-zigzag { opacity: .35; }

/* ---------- Forms ---------- */

.lq-form__hp { position: absolute !important; left: -9999px; }
.lq-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 30px; }
@media (max-width: 781px) { .lq-form__grid { grid-template-columns: 1fr; } }
.lq-field { margin: 0 0 20px; }
.lq-field__label { display: block; margin-bottom: 4px; color: var(--lq-navy); font-weight: 700; }
.lq-form input:not([type="hidden"]),
.lq-form select,
.lq-form textarea {
	width: 100%;
	height: 50px;
	padding: 0 15px;
	border: 1px solid var(--lq-border);
	border-radius: 2px;
	background: transparent;
	color: #797979;
	font: inherit;
	line-height: 1.4;
	transition: border-color .25s, box-shadow .25s;
}
.lq-form textarea { height: 190px; padding: 18px 15px; resize: vertical; }
.lq-form--contact .lq-form__grid .lq-form__col:last-child textarea { height: 210px; }
.lq-form input:focus,
.lq-form select:focus,
.lq-form textarea:focus { outline: 0; border-color: var(--lq-green); box-shadow: 0 0 0 3px rgba(73, 180, 101, .18); }
.lq-form ::placeholder { color: #9a9a9a; opacity: 1; }
.lq-form--dark input:not([type="hidden"]),
.lq-form--dark textarea,
.lq-form--dark select { color: #fff; border-color: rgba(230, 230, 230, .55); }
.lq-form--dark ::placeholder { color: rgba(255, 255, 255, .7); }
.lq-form--dark select option { color: #333; }
.lq-form__actions { margin: 0; }
.lq-form__submit { min-width: 128px; height: 50px; border: 0; cursor: pointer; }
.lq-form.is-sending .lq-form__submit,
.lq-form .is-sending .lq-form__submit { opacity: .6; cursor: progress; }
.lq-form__status:empty { display: none; }
.lq-form__status { margin-top: 18px; padding: 12px 16px; border-left: 3px solid var(--lq-green); background: rgba(73, 180, 101, .1); color: inherit; line-height: 1.6; }
.lq-form__status.is-error { border-color: #d9534f; background: rgba(217, 83, 79, .1); }
.lq-form--dark .lq-form__status { color: #fff; }

/* ---------- YouTube facade ---------- */

.lq-youtube .wp-block-embed__wrapper { position: relative; aspect-ratio: 16 / 9; background: #000; overflow: hidden; }
.lq-youtube__button { position: absolute; inset: 0; padding: 0; border: 0; background: #000; cursor: pointer; }
.lq-youtube__button img { width: 100%; height: 100%; object-fit: cover; opacity: .85; transition: opacity .3s, transform .6s var(--lq-ease); }
.lq-youtube__button:hover img { opacity: 1; transform: scale(1.03); }
.lq-youtube__play {
	position: absolute;
	left: 50%;
	top: 50%;
	width: 74px;
	height: 74px;
	margin: -37px 0 0 -37px;
	border-radius: 50%;
	background: var(--lq-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M8 5v14l11-7z'/%3E%3C/svg%3E") 56% 50% / 34px no-repeat;
	box-shadow: 0 0 0 0 rgba(73, 180, 101, .6);
	animation: lq-pulse 2.4s infinite;
}
.lq-youtube iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@keyframes lq-pulse { 70% { box-shadow: 0 0 0 22px rgba(73, 180, 101, 0); } 100% { box-shadow: 0 0 0 0 rgba(73, 180, 101, 0); } }

/* Map iframes */
.wp-block-html iframe { display: block; width: 100%; max-width: 100%; border: 0; }

/* ---------- Footer ---------- */

.lq-footer { color: var(--wp--preset--color--footer-text, #979da4); }
.lq-footer a { color: inherit; transition: color .25s; }
.lq-footer a:hover { color: var(--lq-green); }
.lq-footer .lq-footer__title { color: #fff; font-size: 16px; font-weight: 700; letter-spacing: 0; text-transform: uppercase; margin: 0 0 20px; line-height: 1.2; }
.lq-footer .wp-block-site-logo img,
.lq-footer .lq-footer__logo img { width: 180px; }
.lq-footer-links { columns: 2; column-gap: 20px; list-style: none; padding: 0; margin: 0 0 26px; }
.lq-footer-links li { break-inside: avoid; padding-left: 14px; position: relative; }
.lq-footer-links li::before { content: "›"; position: absolute; left: 0; color: var(--lq-green); }
.lq-contact-list { list-style: none; margin: 18px 0 0; padding: 0; }
.lq-contact-list li { position: relative; padding-left: 26px; line-height: 1.8; margin-bottom: 8px; }
.lq-contact-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 6px;
	width: 15px;
	height: 15px;
	background: var(--lq-green);
	-webkit-mask: var(--lq-icon) center / contain no-repeat;
	mask: var(--lq-icon) center / contain no-repeat;
}
.lq-contact-list .is-address { --lq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E"); }
.lq-contact-list .is-phone { --lq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E"); }
.lq-contact-list .is-email { --lq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E"); }
.lq-contact-list .is-whatsapp { --lq-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm5.3 14.1c-.2.6-1.3 1.2-1.8 1.2-.5.1-1 .1-3.3-.8-2.8-1.1-4.5-4-4.7-4.2-.1-.2-1.1-1.5-1.1-2.9s.7-2 1-2.3c.2-.3.5-.3.7-.3h.5c.2 0 .4 0 .6.5l.8 2c.1.2.1.4 0 .5l-.3.5-.4.4c-.1.1-.3.3-.1.5.1.3.6 1 1.3 1.6.9.8 1.6 1 1.9 1.2.2.1.4.1.5-.1l.7-.9c.2-.3.4-.2.6-.1l1.9.9c.3.1.5.2.5.3.1.2.1.7-.1 1.3z'/%3E%3C/svg%3E"); }
.lq-footer .wp-block-social-links { gap: 6px; }
.lq-footer .wp-block-social-link { border-radius: 0 !important; background: var(--lq-navy) !important; }
.lq-footer .wp-block-social-link:hover { background: var(--lq-green) !important; transform: none; }
.lq-footer .wp-block-social-link a { padding: 8px; }
.lq-footer .wp-block-social-link svg { width: 15px; height: 15px; }
.lq-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .06); font-size: 13px; }
.lq-footer__bottom p { margin: 0; }
.lq-footer__bottom .has-base-color { color: #fff; }

/* Reveal footer (it sits under the page and is uncovered as you scroll) – large screens only. */
@media (min-width: 1025px) and (min-height: 720px) {
	body:not(.editor-styles-wrapper) .wp-site-blocks > footer.wp-block-template-part {
		position: sticky;
		bottom: 0;
		z-index: 0;
	}
	body:not(.editor-styles-wrapper) .wp-site-blocks > main { box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .25); }
}

/* ---------- Back to top ---------- */

.lq-back-to-top {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 90;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 2px;
	background: var(--lq-green);
	color: #fff !important;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .18);
	transition: background-color .25s;
}
.lq-back-to-top:hover { background: var(--lq-navy); }
@supports (animation-timeline: scroll()) {
	.lq-back-to-top {
		animation: lq-show-later linear both;
		animation-timeline: scroll(root);
		animation-range: 0 700px;
	}
}
@keyframes lq-show-later {
	0%, 85% { opacity: 0; visibility: hidden; transform: translateY(16px); }
	100% { opacity: 1; visibility: visible; transform: none; }
}

/* ---------- 404 & search ---------- */

.lq-404-code { font-size: clamp(90px, 16vw, 180px) !important; font-weight: 900; line-height: 1 !important; color: var(--lq-navy); letter-spacing: -.04em; }
.lq-404-code mark { background: none; color: var(--lq-green); }
.lq-search-results .wp-block-post { padding-bottom: 26px; border-bottom: 1px solid var(--lq-border); }

/* ---------- Scroll reveal animations (CSS only, no JS) ---------- *
 * Add one of these classes to any block (Advanced → Additional CSS classes):
 * lq-reveal, lq-reveal-left, lq-reveal-right, lq-reveal-zoom, lq-stagger (animates children one by one).
 * Browsers without scroll-driven animations simply show the content – nothing can get stuck invisible.
 */
@media (prefers-reduced-motion: no-preference) {
	@supports (animation-timeline: view()) {
		body:not(.editor-styles-wrapper) :is(.lq-reveal, .lq-reveal-left, .lq-reveal-right, .lq-reveal-zoom, .lq-stagger > *) {
			animation: lq-reveal-up linear both;
			animation-timeline: view();
			animation-range: entry 5% cover 28%;
		}
		body:not(.editor-styles-wrapper) .lq-reveal-left { animation-name: lq-reveal-left; }
		body:not(.editor-styles-wrapper) .lq-reveal-right { animation-name: lq-reveal-right; }
		body:not(.editor-styles-wrapper) .lq-reveal-zoom { animation-name: lq-reveal-zoom; }
		body:not(.editor-styles-wrapper) .lq-stagger > :nth-child(2) { animation-range: entry 12% cover 34%; }
		body:not(.editor-styles-wrapper) .lq-stagger > :nth-child(3) { animation-range: entry 19% cover 40%; }
		body:not(.editor-styles-wrapper) .lq-stagger > :nth-child(4) { animation-range: entry 26% cover 46%; }
		body:not(.editor-styles-wrapper) .lq-stagger > :nth-child(n+5) { animation-range: entry 33% cover 52%; }
	}
}
@keyframes lq-reveal-up { from { opacity: 0; transform: translateY(48px); } }
@keyframes lq-reveal-left { from { opacity: 0; transform: translateX(-80px); } }
@keyframes lq-reveal-right { from { opacity: 0; transform: translateX(80px); } }
@keyframes lq-reveal-zoom { from { opacity: 0; transform: scale(.88); } }

/* ---------- Page transitions (cross-document View Transitions) ---------- *
 * Chrome/Edge/Safari animate between pages; other browsers navigate normally.
 * Header and footer stay put, the page title morphs, the content slides in.
 */
@view-transition { navigation: auto; }

body:not(.editor-styles-wrapper) .wp-site-blocks > header.wp-block-template-part { view-transition-name: lq-header; }
body:not(.editor-styles-wrapper) .wp-site-blocks > main { view-transition-name: lq-main; }
body:not(.editor-styles-wrapper) .wp-site-blocks > footer.wp-block-template-part { view-transition-name: lq-footer; }
body:not(.editor-styles-wrapper) .lq-page-title { view-transition-name: lq-banner; }
body:not(.editor-styles-wrapper) .lq-page-title .wp-block-post-title { view-transition-name: lq-title; }

::view-transition-group(root) { animation-duration: .35s; }
::view-transition-old(lq-main) { animation: lq-vt-out .22s cubic-bezier(.4, 0, 1, 1) both; }
::view-transition-new(lq-main) { animation: lq-vt-in .5s .06s var(--lq-ease) both; }
::view-transition-group(lq-header),
::view-transition-group(lq-banner),
::view-transition-group(lq-title) { animation-duration: .45s; animation-timing-function: var(--lq-ease); }
::view-transition-old(lq-title) { animation: lq-vt-title-out .25s ease both; }
::view-transition-new(lq-title) { animation: lq-vt-title-in .45s .1s var(--lq-ease) both; }
::view-transition-group(lq-product) { animation-duration: .55s; animation-timing-function: var(--lq-ease); }

@keyframes lq-vt-out { to { opacity: 0; transform: translateY(-14px); } }
@keyframes lq-vt-in { from { opacity: 0; transform: translateY(36px); } }
@keyframes lq-vt-title-out { to { opacity: 0; transform: translateY(-10px); } }
@keyframes lq-vt-title-in { from { opacity: 0; transform: translateY(14px); } }

/* Shared-element morph: a product image on a list page flies into the product page. */
.lq-vt-product:hover img { view-transition-name: lq-product; }
body:not(.editor-styles-wrapper) .lq-product-hero img { view-transition-name: lq-product; }

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

/* Installation teaser image on the home page */
.lq-install-image { overflow: hidden; }
.lq-install-image img { width: 100%; transition: transform .7s var(--lq-ease); }
.lq-install-image:hover img { transform: scale(1.04); }
