/*
Theme Name: LEDiMEISTER
Theme URI: https://www.ledimeister.ee/
Author: LEDiMEISTER
Description: Custom WooCommerce theme for LED products, services, repair work and quote requests.
Version: 1.4.3
Requires at least: 6.9
Requires PHP: 7.4
Text Domain: ledimeister
*/

:root {
	--lm-red: #f4252f;
	--lm-red-deep: #c80f19;
	--lm-black: #0a0a0b;
	--lm-ink: #171719;
	--lm-charcoal: #242427;
	--lm-steel: #77777e;
	--lm-line: #deddd9;
	--lm-paper: #f2f1ed;
	--lm-white: #ffffff;
	--lm-green: #75d491;
	--lm-radius: 18px;
	--lm-shadow: 0 24px 70px rgba(8, 8, 10, 0.12);
	--lm-container: 1240px;
	--lm-font: Inter, "Avenir Next", "Segoe UI", Arial, sans-serif;
	--lm-browser-overlay-top: 0px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	overflow-x: clip;
	background: var(--lm-paper);
	color: var(--lm-ink);
	font-family: var(--lm-font);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
:where(a, button, input, select, textarea):focus-visible {
	outline: 3px solid var(--lm-red);
	outline-offset: 3px;
}
.container { width: min(calc(100% - 48px), var(--lm-container)); margin-inline: auto; }
.narrow-container { width: min(calc(100% - 48px), 900px); }
.section-shell { padding: 104px 0; }
.section-shell--white { background: var(--lm-white); }
.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	width: 1px;
	white-space: nowrap;
}
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 9999; padding: 12px 18px; background: #fff; color: #000; }
.skip-link:focus { top: 16px; }

h1, h2, h3, h4 { margin-top: 0; letter-spacing: -0.04em; line-height: 1.06; }
h1 { font-size: clamp(3.4rem, 7vw, 6.6rem); }
h2 { font-size: clamp(2.4rem, 4.5vw, 4.6rem); }
h3 { font-size: 1.35rem; }
p { margin-top: 0; }
.eyebrow {
	display: none;
	align-items: center;
	gap: 10px;
	margin: 0 0 20px;
	color: #d7d7da;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.eyebrow span { display: inline-block; width: 26px; height: 2px; background: var(--lm-red); }
.eyebrow--dark { color: #626269; }
.button, button.button, input.button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 20px;
	min-height: 48px;
	padding: 13px 22px;
	border: 1px solid var(--lm-red);
	border-radius: 999px;
	background: var(--lm-red);
	color: #fff;
	font-size: .8rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .07em;
	white-space: nowrap;
	text-transform: uppercase;
	transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.button:hover, .button:focus-visible, .woocommerce a.button:hover, .woocommerce button.button:hover { transform: translateY(-2px); background: var(--lm-red-deep); border-color: var(--lm-red-deep); color: #fff; }
.button--large { min-height: 58px; padding: 17px 28px; }
.button--small { min-height: 42px; padding: 10px 18px; font-size: .72rem; }
.button--dark { background: var(--lm-black); border-color: var(--lm-black); }
.button--dark:hover { background: #313136; border-color: #313136; }
.button--light { background: #fff; border-color: #fff; color: var(--lm-black); }
.button--light:hover { background: var(--lm-paper); border-color: var(--lm-paper); color: var(--lm-black); }
.button--ghost { background: transparent; color: var(--lm-ink); border-color: #c9c8c3; }
.text-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: #fff;
	font-size: .79rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	white-space: nowrap;
}
.text-link span { color: inherit; font-size: 1.15rem; transition: transform .2s ease; }
.text-link:hover span { transform: translateX(4px); }
.text-link--dark { color: var(--lm-ink); }

/* Header */
.utility-bar { background: #000; color: #b5b5ba; border-bottom: 1px solid #29292c; font-size: .7rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.utility-bar__inner { display: flex; align-items: center; justify-content: space-between; min-height: 36px; }
.utility-bar p { margin: 0; }
.status-dot { display: inline-block; width: 7px; height: 7px; margin-right: 8px; border-radius: 50%; background: var(--lm-green); box-shadow: 0 0 12px rgba(117,212,145,.75); }
.utility-separator { padding-inline: 8px; color: #4a4a4e; }
.utility-links { display: flex; gap: 24px; }
.utility-links a:hover { color: #fff; }
.site-header { position: sticky; top: var(--lm-browser-overlay-top); z-index: 200; background: rgba(10,10,11,.96); color: #fff; backdrop-filter: blur(18px); box-shadow: 0 12px 32px rgba(0,0,0,.16); }
.site-header__inner { display: flex; align-items: center; min-height: 78px; gap: 28px; }
.brand { display: flex; flex: 0 0 206px; }
.brand img { width: 206px; height: auto; }
.site-nav { flex: 1; }
.site-nav__list { display: flex; align-items: center; justify-content: center; gap: clamp(16px, 2.2vw, 34px); margin: 0; padding: 0; list-style: none; }
.site-nav__list a { position: relative; padding-block: 28px; color: #d3d3d6; font-size: .73rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; white-space: nowrap; }
.site-nav__list a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 19px; height: 2px; background: var(--lm-red); transition: right .2s ease; }
.site-nav__list a:hover, .site-nav__list .current-menu-item > a { color: #fff; }
.site-nav__list a:hover::after, .site-nav__list .current-menu-item > a::after { right: 0; }
.header-actions { display: flex; align-items: center; gap: 10px; }
.icon-button { position: relative; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid #3a3a3f; border-radius: 50%; background: transparent; color: #fff; }
.icon-button:hover { border-color: #76767d; background: #1c1c1f; }
.icon-button--cart { width: 44px; }
.header-icon { position: relative; display: block; width: 20px; height: 20px; color: currentColor; }
.header-icon::before, .header-icon::after { box-sizing: border-box; }
.header-icon--search::before { content: ""; position: absolute; left: 2px; top: 2px; width: 10px; height: 10px; border: 2px solid currentColor; border-radius: 50%; }
.header-icon--search::after { content: ""; position: absolute; left: 13px; top: 13px; width: 7px; height: 2px; border-radius: 2px; background: currentColor; transform: rotate(45deg); transform-origin: left center; }
.header-icon--bag::before { content: ""; position: absolute; left: 3px; top: 7px; width: 14px; height: 12px; border: 2px solid currentColor; border-radius: 2px 2px 4px 4px; }
.header-icon--bag::after { content: ""; position: absolute; left: 7px; top: 2px; width: 6px; height: 7px; border: 2px solid currentColor; border-bottom: 0; border-radius: 6px 6px 0 0; }
.cart-count { position: absolute; top: -6px; right: -5px; display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border: 2px solid #0a0a0b; border-radius: 10px; background: var(--lm-red); color: #fff; font-size: .6rem; font-weight: 900; line-height: 1; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 1px solid #333337; border-radius: 50%; background: transparent; }
.menu-toggle > span:not(.screen-reader-text) { display: block; width: 20px; height: 2px; margin: 4px auto; background: #fff; }
.header-search { position: absolute; inset-inline: 0; top: 100%; padding: 24px 0 28px; background: #131315; border-top: 1px solid #303034; box-shadow: var(--lm-shadow); }
.header-search[hidden] { display: none; }
.product-search { position: relative; max-width: 850px; margin-inline: auto; }
.product-search label { display: block; margin-bottom: 8px; color: #a5a5ab; font-size: .7rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.product-search__control { display: flex; }
.product-search input[type="search"] { flex: 1; min-width: 0; padding: 17px 20px; border: 1px solid #3c3c40; border-radius: 12px 0 0 12px; background: #1c1c1f; color: #fff; outline: 0; }
.product-search input[type="search"]:focus { border-color: var(--lm-red); }
.product-search button { padding: 0 28px; border: 0; border-radius: 0 12px 12px 0; background: var(--lm-red); color: #fff; font-size: .74rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.search-suggestions { position: absolute; z-index: 10; top: calc(100% + 8px); left: 0; right: 0; overflow: hidden; border: 1px solid #333337; border-radius: 12px; background: #161618; box-shadow: var(--lm-shadow); }
.search-suggestions[hidden] { display: none; }
.search-suggestions a { display: flex; align-items: center; gap: 14px; padding: 12px; border-bottom: 1px solid #2c2c30; color: #fff; }
.search-suggestions a:last-child { border: 0; }
.search-suggestions img { width: 52px; height: 52px; border-radius: 8px; object-fit: cover; }
.search-suggestions strong { display: block; font-size: .87rem; }
.search-suggestions small { color: #9d9da3; }

/* Homepage */
.hero { position: relative; overflow: hidden; padding: 84px 0 72px; background: linear-gradient(135deg, #fbfaf7 0%, #f2f0ea 58%, #e9e6de 100%); color: var(--lm-ink); }
.hero::before { content: ""; position: absolute; width: 760px; height: 760px; left: -350px; bottom: -470px; border-radius: 50%; background: radial-gradient(circle, rgba(244,37,47,.18), rgba(244,37,47,.04) 42%, transparent 70%); }
.hero::after { content: ""; position: absolute; inset: 0; opacity: .38; background-image: linear-gradient(rgba(16,16,18,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(16,16,18,.045) 1px, transparent 1px); background-size: 72px 72px; mask-image: linear-gradient(to right, black, transparent 76%); }
.hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(340px, .72fr); gap: 84px; align-items: center; }
.hero__grid > *, .single-service-hero__grid > *, .archive-hero__grid > * { min-width: 0; }
.hero h1 { max-width: 790px; margin-bottom: 28px; font-size: clamp(3.8rem, 7vw, 7rem); letter-spacing: -.07em; }
/* The English hero line ("Made to measure.") is a third wider than the
   Estonian one; scale it down so it clears the neon-logo aside. */
.hero h1:lang(en) { font-size: clamp(3.2rem, 5.2vw, 5.2rem); }
.hero h1::first-line { color: var(--lm-ink); }
.hero .eyebrow { color: #5f5f65; }
.hero__lead { max-width: 660px; color: #5f5f65; font-size: 1.16rem; line-height: 1.7; }
.hero__actions { display: flex; align-items: center; gap: 28px; margin-top: 38px; }
.hero .text-link { color: var(--lm-ink); }
.hero__proof { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 70px; padding-top: 28px; border-top: 1px solid #d4d1c9; }
.hero__proof div { display: flex; flex-direction: column; gap: 2px; }
.hero__proof strong { font-size: .82rem; letter-spacing: .05em; text-transform: uppercase; }
.hero__proof span { color: #74747a; font-size: .7rem; }
.solution-finder { padding: 30px; border: 1px solid #d8d5cd; border-radius: var(--lm-radius); background: rgba(255,255,255,.86); box-shadow: 0 28px 80px rgba(32,27,22,.13); backdrop-filter: blur(16px); }
.solution-finder__index { margin: 0 0 22px; color: var(--lm-steel); font-size: .68rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.solution-finder h2 { margin-bottom: 22px; font-size: 1.75rem; letter-spacing: -.04em; }
.solution-finder > a { display: grid; grid-template-columns: 42px 1fr auto; gap: 14px; align-items: center; padding: 18px 0; border-top: 1px solid #dedbd4; }
.solution-finder > a:hover strong { text-decoration: underline; text-decoration-color: var(--lm-red); text-underline-offset: 4px; }
.finder-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: #f6e9e8; color: var(--lm-ink); }
.solution-finder strong { display: block; font-size: .87rem; letter-spacing: -.01em; transition: color .2s ease; }
.solution-finder small { display: block; margin-top: 2px; color: #77777d; font-size: .7rem; }
.solution-finder b { color: #9a9690; font-size: 1.1rem; }
.solution-finder__help { margin: 18px 0 0; color: #77777d; font-size: .74rem; text-align: center; }
.solution-finder__help a { color: var(--lm-ink); text-decoration: underline; text-decoration-color: var(--lm-red); text-underline-offset: 4px; }
.section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; margin-bottom: 46px; }
.section-heading h2 { margin: 0; font-size: clamp(2.1rem, 3.2vw, 3.1rem); letter-spacing: -0.02em; text-wrap: balance; }
.section-heading__copy { max-width: 380px; margin-bottom: 8px; color: #74747a; font-size: .9rem; }
.category-section { background: var(--lm-paper); }
.category-grid { display: grid; grid-template-columns: 1.2fr .8fr .8fr; grid-template-rows: repeat(2, 270px); gap: 16px; }
.category-grid--primary { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: clamp(360px, 31vw, 500px); }
.category-grid--primary .category-card { grid-column: auto; grid-row: auto; }
.category-grid--primary .category-card__content strong { font-size: clamp(2rem, 3vw, 3rem); }
.category-card { position: relative; overflow: hidden; border-radius: var(--lm-radius); background: #252528; color: #fff; }
.category-card--wide { grid-row: 1 / 3; }
.category-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.category-card:hover img { transform: scale(1.045); }
.category-card__shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.85), rgba(0,0,0,.05) 62%); }
.category-card__content { position: absolute; z-index: 2; left: 24px; right: 55px; bottom: 24px; display: flex; flex-direction: column; }
.category-card__content small { margin-bottom: 6px; color: #fff; font-size: .67rem; font-weight: 800; letter-spacing: .15em; }
.category-card__content strong { font-size: 1.45rem; line-height: 1.15; }
.category-card--wide .category-card__content strong { font-size: 2.4rem; }
.category-card__content em { margin-top: 7px; color: #c1c1c5; font-size: .72rem; font-style: normal; }
.category-card > b { position: absolute; z-index: 2; right: 22px; bottom: 22px; display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; transition: background .2s ease; }
.category-card:hover > b { background: var(--lm-red); border-color: var(--lm-red); }
.category-card--red { background: var(--lm-red); }
.category-card--red .category-card__content small { color: #fff; opacity: .65; }
.circuit-lines { position: absolute; inset: 0; opacity: .28; background-image: radial-gradient(circle at 12px 12px, #fff 2px, transparent 3px), linear-gradient(90deg, transparent 11px, #fff 12px, transparent 13px); background-size: 48px 48px; transform: rotate(-12deg) scale(1.4); }
.product-section .woocommerce ul.products { margin-bottom: 0; }
.services-split { background: #e8e7e2; }
.services-split__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 88px; align-items: center; }
.services-visual { position: relative; min-height: 620px; overflow: hidden; border-radius: var(--lm-radius); background: #1c1c1e; }
.services-visual img { width: 100%; height: 100%; min-height: 620px; object-fit: cover; }
.services-visual__badge { position: absolute; right: 18px; bottom: 18px; display: flex; flex-direction: column; width: 170px; padding: 22px; border-radius: 14px; background: var(--lm-red); color: #fff; }
.services-visual__badge strong { font-size: 1.7rem; line-height: 1; }
.services-visual__badge span { margin-top: 6px; font-size: .72rem; text-transform: uppercase; }
.services-copy h2 { margin-bottom: 24px; }
.services-copy > p:not(.eyebrow) { max-width: 650px; color: #6d6d73; }
.service-links { margin: 36px 0; border-top: 1px solid #cfcec9; }
.service-links a { display: grid; grid-template-columns: 34px 1fr auto; grid-template-areas: "num title arrow" "num desc arrow"; gap: 0 14px; align-items: center; padding: 18px 0; border-bottom: 1px solid #cfcec9; }
.service-links span { grid-area: num; color: var(--lm-steel); font-size: .69rem; font-weight: 800; }
.service-links strong { grid-area: title; font-size: .98rem; }
.service-links small { grid-area: desc; color: #7a7a80; }
.service-links b { grid-area: arrow; transition: transform .2s ease; }
.service-links a:hover b { transform: translateX(5px); }
.moto-section { position: relative; overflow: hidden; padding: 94px 0; background: #111113; color: #fff; }
.moto-section::after { content: "MOTO"; position: absolute; right: -10px; bottom: -75px; color: rgba(255,255,255,.025); font-size: 15rem; font-weight: 900; letter-spacing: -.08em; }
.moto-section__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr .85fr; gap: 80px; align-items: center; }
.moto-section h2 { max-width: 760px; }
.moto-section p:not(.eyebrow) { max-width: 640px; color: #aaaab0; }
.moto-actions { display: flex; gap: 26px; align-items: center; margin-top: 34px; }
.moto-image { position: relative; overflow: hidden; border-radius: var(--lm-radius); background: #242427; }
.moto-image img { width: 100%; aspect-ratio: 1.35; object-fit: cover; }
.moto-image span { position: absolute; left: 16px; right: 16px; bottom: 16px; padding: 12px 16px; border: 1px solid rgba(255,255,255,.18); border-radius: 10px; background: rgba(8,8,9,.65); backdrop-filter: blur(10px); color: #d4d4d8; font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.moto-landing-hero { padding: clamp(72px, 8vw, 118px) 0; background: #101012; color: #fff; }
.moto-landing-hero__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(420px, 1fr); gap: clamp(48px, 7vw, 110px); align-items: center; }
.moto-landing-hero h1 { max-width: 760px; margin-bottom: 24px; font-size: clamp(3.8rem, 6.5vw, 6.9rem); }
.moto-landing-hero p { max-width: 650px; color: #b8b6b1; font-size: 1.1rem; }
.moto-landing-hero__media { overflow: hidden; border: 1px solid rgba(255,255,255,.14); border-radius: 22px; background: #1b1b1e; box-shadow: 0 30px 90px rgba(0,0,0,.38); }
.moto-landing-hero__media img { width: 100%; aspect-ratio: 1.35; object-fit: cover; }
.moto-brand-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--lm-line); border-left: 1px solid var(--lm-line); }
.moto-brand-grid a { position: relative; display: flex; min-height: 120px; padding: 22px; flex-direction: column; justify-content: center; border-right: 1px solid var(--lm-line); border-bottom: 1px solid var(--lm-line); transition: background .2s ease, color .2s ease; }
.moto-brand-grid a:hover { background: var(--lm-red); color: #fff; }
.moto-brand-grid strong { padding-right: 24px; font-size: 1.05rem; }
.moto-brand-grid span { margin-top: 5px; color: var(--lm-steel); font-size: .7rem; }
.moto-brand-grid a:hover span { color: rgba(255,255,255,.75); }
.moto-brand-grid b { position: absolute; right: 18px; top: 18px; color: #fff; }
.moto-brand-grid a:hover b { color: #fff; }
.moto-catalog-section { background: var(--lm-paper); }
.project-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.project-card { position: relative; overflow: hidden; min-height: 440px; border-radius: var(--lm-radius); background: #18181a; color: #fff; }
.project-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.92), rgba(0,0,0,0) 65%); }
.project-card img { width: 100%; height: 100%; min-height: 440px; object-fit: cover; transition: transform .5s ease; }
.project-card:hover img { transform: scale(1.045); }
.project-card > span { position: absolute; z-index: 2; left: 24px; right: 58px; bottom: 24px; display: flex; flex-direction: column; }
.project-card small { color: #fff; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.project-card strong { margin-top: 6px; font-size: 1.34rem; line-height: 1.15; }
.project-card em { margin-top: 7px; color: #bbb; font-size: .72rem; font-style: normal; }
.project-card > b { position: absolute; z-index: 3; right: 22px; bottom: 24px; }
.process-section { background: var(--lm-paper); }
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid #cfcec9; border-left: 1px solid #cfcec9; }
.process-grid > div { min-height: 245px; padding: 28px; border-right: 1px solid #cfcec9; border-bottom: 1px solid #cfcec9; }
.process-grid span { display: inline-block; margin-bottom: 18px; color: var(--lm-steel); font-size: .7rem; font-weight: 800; }
.process-grid h3 { margin-bottom: 12px; }
.process-grid p { margin: 0; color: #74747a; font-size: .82rem; }
.final-cta { padding: 80px 0; background: var(--lm-red); color: #fff; }
.final-cta__inner { display: flex; justify-content: space-between; align-items: center; gap: 50px; }
.final-cta h2 { margin-bottom: 10px; font-size: clamp(3rem, 5.4vw, 5.7rem); }
.final-cta p:not(.eyebrow) { max-width: 650px; margin: 0; color: rgba(255,255,255,.75); }
.final-cta .eyebrow span { background: #fff; }

/* Content and archives */
.page-shell { min-height: 60vh; background: #fff; }
.page-heading { margin-bottom: 46px; }
.page-heading h1 { margin: 0; font-size: clamp(3.2rem, 6vw, 6rem); }
.page-content { color: #4c4c51; font-size: 1.04rem; }
.page-content h2, .page-content h3 { margin: 48px 0 18px; color: var(--lm-ink); }
.page-content h2 { font-size: 2.25rem; }
.page-content a:not(.button) { color: inherit; text-decoration: underline; text-decoration-color: var(--lm-red); text-underline-offset: 3px; }
.page-content ul { padding-left: 1.25rem; }
.content-card { padding: 48px; border-radius: var(--lm-radius); background: #fff; box-shadow: var(--lm-shadow); }
.archive-hero { padding: 90px 0 76px; background: #111113; color: #fff; }
.archive-hero__grid { display: grid; grid-template-columns: 1.2fr .6fr; gap: 90px; align-items: end; }
.archive-hero h1 { margin-bottom: 0; font-size: clamp(3.2rem, 6.2vw, 6.4rem); }
.archive-hero__grid > p { margin-bottom: 10px; color: #aaaab0; }
.service-archive-grid { display: grid; gap: 28px; }
.service-archive-card { display: grid; grid-template-columns: .72fr 1.28fr; min-height: 360px; overflow: hidden; border: 1px solid #e0dfdb; border-radius: var(--lm-radius); }
.service-archive-card:nth-child(even) { grid-template-columns: 1.28fr .72fr; }
.service-archive-card:nth-child(even) .service-archive-card__media { order: 2; }
.service-archive-card__media { background: #202023; }
.service-archive-card__media img { width: 100%; height: 100%; object-fit: cover; }
.service-archive-card__content { display: flex; flex-direction: column; justify-content: center; padding: 54px; }
.service-archive-card h2 { margin-bottom: 16px; font-size: 2.45rem; }
.service-archive-card p:not(.eyebrow) { max-width: 620px; color: #74747a; }
.service-card-actions { display: flex; align-items: center; gap: 24px; margin-top: 22px; }
.service-card-quote { color: var(--lm-steel); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.service-card-quote:hover { color: var(--lm-black); }
.service-price-note { display: flex; flex-direction: column; gap: 4px; margin-top: 18px; padding: 16px 18px; border-left: 3px solid var(--lm-red); background: var(--lm-paper); }
.service-price-note small { color: var(--lm-steel); font-size: .64rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.service-price-note strong { color: #4e4e53; font-size: .82rem; line-height: 1.45; }
.single-service-hero { padding: 72px 0; background: #111113; color: #fff; }
.single-service-hero__grid { display: grid; grid-template-columns: 1fr .8fr; gap: 70px; align-items: center; }
.single-service-hero h1 { margin-bottom: 24px; font-size: clamp(3.2rem, 6vw, 6.3rem); }
.single-service-hero .hero__lead { margin-bottom: 32px; }
.single-service-hero__media { overflow: hidden; border-radius: var(--lm-radius); }
.single-service-hero__media img { width: 100%; aspect-ratio: 1.2; object-fit: cover; }
.service-detail-grid { display: grid; grid-template-columns: 1fr 360px; gap: 90px; align-items: start; }
.service-detail-grid > * { min-width: 0; }
.service-aside { position: sticky; top: 120px; padding: 30px; border-radius: var(--lm-radius); background: var(--lm-paper); }
.service-aside h2 { font-size: 1.55rem; }
.service-aside ul { margin: 22px 0 28px; padding-left: 1.1rem; color: #64646a; font-size: .84rem; }
.service-price-note--aside { margin: 0 0 26px; background: #fff; }
.service-inquiry-section { scroll-margin-top: 96px; background: #e8e7e2; }
.service-inquiry-shell { padding: 52px; border: 1px solid #d8d7d2; border-radius: var(--lm-radius); background: #fff; box-shadow: 0 24px 70px rgba(8,8,10,.08); }
.single-project-hero { padding: 80px 0; background: #111113; color: #fff; text-align: center; }
.single-project-hero .eyebrow { justify-content: center; }
.single-project-hero h1 { max-width: 1000px; margin: 0 auto 20px; }
.single-project-hero p:not(.eyebrow) { max-width: 700px; margin: 0 auto; color: #aaaab0; }
.single-project-grid { display: grid; grid-template-columns: 1.1fr .7fr; gap: 60px; align-items: start; }
.single-project-media { overflow: hidden; border-radius: var(--lm-radius); }
.single-project-media img { width: 100%; }
.project-grid--archive { grid-template-columns: repeat(3, 1fr); }
.project-archive-toolbar { display: grid; grid-template-columns: .6fr 1.4fr; gap: 70px; align-items: end; margin-bottom: 40px; }
.project-archive-toolbar h2 { margin: 0; font-size: clamp(2rem, 3.5vw, 3.6rem); }
.project-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.project-filter { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 9px 15px; border: 1px solid #d7d6d1; border-radius: 999px; background: #fff; color: #5e5e64; font-size: .71rem; font-weight: 800; }
.project-filter span { color: #99999f; font-size: .63rem; }
.project-filter:hover, .project-filter.is-active { border-color: var(--lm-black); background: var(--lm-black); color: #fff; }
.project-filter.is-active span { color: #d2d2d5; }
.project-empty { grid-column: 1 / -1; padding: 36px; border-radius: var(--lm-radius); background: var(--lm-paper); }
.project-empty a { color: inherit; font-weight: 800; text-decoration: underline; text-decoration-color: var(--lm-red); }
.archive-pagination { margin-top: 42px; }
.project-products-section { background: #111113; color: #fff; }
.project-product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.project-product-card { position: relative; display: grid; grid-template-columns: 118px 1fr auto; gap: 18px; align-items: center; min-width: 0; padding: 14px; border: 1px solid #333337; border-radius: 14px; background: #1a1a1d; }
.project-product-card__media { overflow: hidden; border-radius: 10px; }
.project-product-card__media img { width: 118px; aspect-ratio: 1; object-fit: cover; }
.project-product-card__content { display: flex; min-width: 0; flex-direction: column; }
.project-product-card__content small { color: var(--lm-steel); font-size: .58rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.project-product-card__content strong { margin: 5px 0; overflow-wrap: anywhere; font-size: .9rem; line-height: 1.25; }
.project-product-card__content em { color: #c1c1c5; font-size: .75rem; font-style: normal; font-weight: 800; }
.project-product-card > b { padding-right: 5px; color: inherit; }
.project-product-card:hover { border-color: #5a5a61; background: #222226; }
.error-page { display: grid; place-items: center; min-height: 70vh; padding: 90px 0; background: #111113; color: #fff; text-align: center; }
.error-page h1 { margin-bottom: 20px; }
.error-page p:not(.eyebrow) { color: #aaaab0; }
.error-page .eyebrow { justify-content: center; }
.error-page > div > div { display: flex; align-items: center; justify-content: center; gap: 26px; margin-top: 34px; }

/* WooCommerce */
.shop-shell { min-height: 70vh; padding-top: 28px; padding-bottom: 96px; background: #fff; }
.woocommerce-shop .woocommerce-breadcrumb,
.woocommerce-shop .woocommerce-products-header { display: none; }
.woocommerce .woocommerce-breadcrumb { margin-bottom: 26px; color: #85858b; font-size: .73rem; }
.woocommerce-products-header { margin-bottom: 36px; }
.woocommerce-products-header__title.page-title { margin-bottom: 14px; font-size: clamp(3rem, 5vw, 5rem); }
.term-description { max-width: 700px; color: #6f6f75; }
.lm-shop-category-hub { margin: 0 0 18px; }
.lm-shop-category-hub__intro { display: grid; grid-template-columns: 1fr .65fr; gap: 60px; align-items: end; margin-bottom: 14px; }
.lm-shop-category-hub__intro h2 { margin: 0; font-size: clamp(2.2rem, 3.4vw, 3.4rem); }
.lm-shop-category-hub__intro > p { margin: 0 0 5px; color: #707076; }
.lm-shop-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.lm-shop-category-card { min-width: 0; overflow: hidden; border: 1px solid #dfded9; border-radius: 15px; background: #fff; }
.lm-shop-category-card__media { display: block; overflow: hidden; background: var(--lm-paper); }
.lm-shop-category-card__media img { width: 100%; aspect-ratio: 1.48; object-fit: cover; transition: transform .35s ease; }
.lm-shop-category-card:hover .lm-shop-category-card__media img { transform: scale(1.035); }
.lm-shop-category-card__body { padding: 14px 16px 16px; }
.lm-shop-category-card h3 { margin-bottom: 8px; font-size: 1rem; }
.lm-shop-category-card h3 a { display: flex; justify-content: space-between; gap: 8px; }
.lm-shop-category-card h3 span { color: var(--lm-steel); }
.lm-shop-category-card ul { display: flex; flex-direction: column; gap: 5px; margin: 0; padding: 0; list-style: none; }
.lm-shop-category-card li a { color: #737379; font-size: .65rem; line-height: 1.25; }
.lm-shop-category-card li a:hover { text-decoration: underline; }
.lm-shop-filters { margin: 14px 0 20px; padding: 16px 20px; border: 1px solid #deddd9; border-radius: 16px; background: var(--lm-paper); }
.lm-shop-filters__top { display: grid; grid-template-columns: minmax(220px, 1.5fr) repeat(4, minmax(135px, .7fr)) auto; gap: 10px; }
.lm-shop-filters input, .lm-shop-filters select { width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid #cfcec9; border-radius: 10px; background: #fff; color: #242428; font-size: .8rem; }
.lm-shop-filters .button { border-radius: 10px; }
.lm-shop-filters__footer { display: flex; justify-content: space-between; margin-top: 12px; color: #79797f; font-size: .72rem; }
.lm-shop-filters__footer a { color: inherit; font-weight: 700; text-decoration: underline; text-decoration-color: var(--lm-red); }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { margin-bottom: 28px; color: #77777d; font-size: .75rem; }
.woocommerce .woocommerce-ordering select { min-height: 42px; padding: 0 12px; border: 1px solid #d1d0cb; border-radius: 10px; background: #fff; }
.woocommerce ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; margin: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
	position: relative;
	display: flex;
	height: 100%;
	min-width: 0;
	flex-direction: column;
	float: none;
	width: 100% !important;
	margin: 0 !important;
	overflow: hidden;
	border: 1px solid #e1e0dc;
	border-radius: 15px;
	background: #fff;
	transition: transform .25s ease, box-shadow .25s ease;
}
.woocommerce ul.products li.product:hover { transform: translateY(-5px); box-shadow: 0 18px 48px rgba(0,0,0,.09); }
.woocommerce ul.products li.product .woocommerce-loop-product__link { display: flex; flex: 1; min-width: 0; flex-direction: column; }
.woocommerce ul.products li.product a img { width: 100%; aspect-ratio: 1 / .82; margin: 0; object-fit: cover; background: #f4f3ef; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 20px 20px 6px; color: var(--lm-ink); font-size: 1.02rem; font-weight: 800; line-height: 1.24; letter-spacing: -.02em; }
.woocommerce ul.products li.product .price { margin-top: auto; padding: 8px 20px 0; color: var(--lm-ink); font-size: .93rem; font-weight: 800; }
.woocommerce ul.products li.product .button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: calc(100% - 40px);
	min-height: 52px;
	margin: 18px 20px 20px;
	padding: 0 17px;
	border-radius: 12px;
	line-height: 1;
}
.product-kicker { position: absolute; z-index: 3; top: 13px; left: 13px; padding: 7px 10px; border-radius: 999px; background: var(--lm-red); color: #fff; font-size: .6rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.product-kicker--muted { background: rgba(18,18,20,.78); backdrop-filter: blur(8px); }
.woocommerce span.onsale { display: none; }
.woocommerce div.product { display: grid; grid-template-columns: 1fr .85fr; gap: 70px; }
.woocommerce div.product > *,
.woocommerce div.product .summary,
.woocommerce div.product .woocommerce-product-gallery { min-width: 0; }
.woocommerce div.product .wp-video,
.woocommerce div.product .lm-product-video,
.woocommerce div.product video { width: 100% !important; max-width: 100% !important; }
.woocommerce div.product video { height: auto !important; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { float: none; width: auto; }
.woocommerce div.product .product_title { font-size: clamp(2.7rem, 4vw, 4.5rem); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--lm-ink); font-size: 1.45rem; font-weight: 800; }
.woocommerce div.product form.cart { display: flex; gap: 10px; margin: 28px 0; }
.single-product-quote { margin: 28px 0; padding: 24px; border: 1px solid #dedbd4; border-radius: 14px; background: var(--lm-paper); }
.single-product-quote p { margin-bottom: 18px; color: #5f5f65; font-size: .92rem; }
.woocommerce .quantity .qty { min-height: 48px; border: 1px solid #d2d1cc; border-radius: 999px; }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product .related.products, .woocommerce div.product .upsells.products { grid-column: 1 / -1; }
.woocommerce div.product .product-case-studies { grid-column: 1 / -1; margin-top: 34px; padding: 46px; border-radius: var(--lm-radius); background: var(--lm-paper); }
.product-case-studies .section-heading { margin-bottom: 30px; }
.product-case-studies .project-card { min-height: 360px; }
.product-case-studies .project-card img { min-height: 360px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: #d8d7d2; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border: 0; background: transparent; }
.woocommerce table.shop_table { border-color: #deddd9; border-radius: 14px; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-top-color: var(--lm-red); background: #f5f4f0; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--lm-ink); }
.woocommerce .woocommerce-pagination ul.page-numbers { overflow: hidden; border: 1px solid #d8d7d2; border-radius: 999px; }
.woocommerce .woocommerce-pagination ul.page-numbers li { border-color: #d8d7d2; }
.woocommerce .woocommerce-pagination ul.page-numbers li span.current { background: var(--lm-red); color: #fff; }

/* Forms */
.lm-quote-intro { display: grid; grid-template-columns: .8fr 1.2fr; gap: 70px; margin-bottom: 50px; padding: 36px; border-radius: var(--lm-radius); background: #111113; color: #fff; }
.lm-quote-intro h2 { margin: 0; color: #fff; font-size: 2.35rem; }
.lm-quote-intro p { margin: 0; color: #aaaab0; }
.lm-quote-form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.lm-field { display: flex; flex-direction: column; gap: 7px; }
.lm-field--full { grid-column: 1 / -1; }
.lm-field label { font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.lm-field input, .lm-field select, .lm-field textarea { width: 100%; padding: 14px 15px; border: 1px solid #d1d0cb; border-radius: 10px; background: #fff; color: #202023; outline: 0; }
.lm-field input, .lm-field select { min-height: 50px; }
.lm-field textarea { min-height: 170px; resize: vertical; }
.lm-field input:focus, .lm-field select:focus, .lm-field textarea:focus { border-color: var(--lm-red); box-shadow: 0 0 0 3px rgba(244,37,47,.1); }
.lm-field small { color: #7c7c82; }
.lm-consent { grid-column: 1 / -1; display: flex; align-items: flex-start; gap: 10px; color: #66666c; font-size: .75rem; }
.lm-consent input { margin-top: 5px; }
.lm-form-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 20px; }
.lm-form-note { color: #77777d; font-size: .72rem; }
.lm-alert { margin-bottom: 24px; padding: 16px 18px; border-radius: 10px; background: #e9f7ed; color: #246337; font-weight: 700; }
.lm-alert--error { background: #fff0f0; color: #9f151d; }
.lm-honeypot { position: absolute !important; left: -9999px !important; }

/* Footer */
.site-footer { padding: 76px 0 26px; background: #080809; color: #fff; }
.site-footer__grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 60px; }
.footer-brand img { width: 220px; }
.footer-brand p { max-width: 330px; margin: 24px 0 18px; color: #8f8f95; font-size: .82rem; }
.footer-map { color: #d5d5d8; font-size: .75rem; text-decoration: underline; text-decoration-color: #444449; text-underline-offset: 4px; }
.site-footer h2 { margin-bottom: 20px; color: #8d8d93; font-size: .69rem; letter-spacing: .14em; text-transform: uppercase; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer li { margin-bottom: 9px; }
.site-footer li a { color: #d2d2d5; font-size: .8rem; }
.site-footer li a:hover, .footer-contact > a:hover { color: #fff; text-decoration: underline; }
.footer-contact { display: flex; flex-direction: column; align-items: flex-start; }
.footer-contact > a:not(.button) { margin-bottom: 7px; font-size: .9rem; font-weight: 700; }
.footer-contact p { margin: 8px 0 22px; color: #85858b; font-size: .74rem; }
.site-footer__bottom { display: flex; justify-content: space-between; margin-top: 58px; padding-top: 22px; border-top: 1px solid #28282b; color: #65656b; font-size: .68rem; }
.site-footer__bottom p { margin: 0; }
.site-footer__bottom div { display: flex; gap: 20px; }

/* Lighting concept: cool work light in Light mode, LEDiMEISTER red in Dark mode. */
:root {
	--lm-scene: #f4f3ef;
	--lm-scene-surface: #fffefa;
	--lm-scene-soft: #e9e7e0;
	--lm-scene-text: #171719;
	--lm-scene-muted: #68686e;
	--lm-scene-line: #d4d1c9;
	--lm-light: #fffafa;
	--lm-light-core: #ffffff;
	--lm-light-edge: #f7d9dc;
	--lm-light-glow: rgba(255, 255, 255, .76);
	--lm-light-wash: rgba(244, 37, 47, .085);
	--lm-header-height: 78px;
}

html[data-theme="dark"] {
	--lm-paper: #09090a;
	--lm-white: #121214;
	--lm-ink: #f4f1e9;
	--lm-steel: #aaa7a1;
	--lm-line: #2f2e2d;
	--lm-shadow: 0 30px 90px rgba(0, 0, 0, .42);
	--lm-scene: #080809;
	--lm-scene-surface: #111113;
	--lm-scene-soft: #1b1917;
	--lm-scene-text: #f6f1e7;
	--lm-scene-muted: #aaa49a;
	--lm-scene-line: #34302b;
	--lm-light: #ff3344;
	--lm-light-core: #fff0f1;
	--lm-light-edge: #f4252f;
	--lm-light-glow: rgba(244, 37, 47, .58);
	--lm-light-wash: rgba(244, 37, 47, .2);
}

body,
.hero,
.section-shell,
.services-split,
.section-led,
.site-header,
.page-shell,
.woocommerce ul.products li.product,
.content-card,
.lm-shop-filters,
.lm-field input,
.lm-field select,
.lm-field textarea {
	transition: top .18s ease-out, background-color .7s cubic-bezier(.2, .8, .2, 1), color .55s ease, border-color .55s ease, box-shadow .7s ease;
}

body::after {
	content: "";
	position: fixed;
	z-index: 9998;
	inset: 0;
	pointer-events: none;
	background: #030304;
	opacity: 0;
	transition: opacity .2s ease;
}
html.is-lights-out body::after { opacity: .86; }
html.is-lights-out .theme-toggle__lamp,
html.is-lights-out .wall-lamp i,
html.is-lights-out .hero-neon-logo__outline,
html.is-lights-out .section-led span { opacity: 0; box-shadow: none; }

/* Header light switch */
.theme-toggle {
	position: relative;
	display: grid;
	place-items: center;
	width: 58px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
}
.theme-toggle:focus-visible { outline: 0; }
.theme-toggle:focus-visible .theme-toggle__track {
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 0 0 2px rgba(255,255,255,.52);
}
.theme-toggle__track {
	position: relative;
	display: block;
	width: 52px;
	height: 28px;
	overflow: hidden;
	border: 1px solid #3a3a3f;
	border-radius: 999px;
	background: #1c1c1f;
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.02);
}
.theme-toggle__glow {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 14px 50%, rgba(255,255,255,.8), transparent 45%);
	transition: background .65s ease;
}
.theme-toggle__lamp {
	position: absolute;
	left: 5px;
	top: 5px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 8px rgba(255,255,255,.96), 0 0 18px rgba(255,255,255,.48);
	transition: transform .65s cubic-bezier(.22,1,.36,1), background .65s ease, box-shadow .65s ease;
}
/* Client call 2026-08-07: the toggle's red part becomes dark gray
   ("asenda nupu punane osa ... õigemini tumeda halliga"). */
html[data-theme="dark"] .theme-toggle__glow { background: radial-gradient(circle at calc(100% - 14px) 50%, rgba(150,150,160,.4), transparent 48%); }
html[data-theme="dark"] .theme-toggle__lamp {
	transform: translateX(26px);
	background: #4a4a52;
	border: 1px solid rgba(255,255,255,.28);
	box-shadow: 0 0 8px rgba(150,150,160,.5), 0 0 14px rgba(120,120,130,.32);
}

/* Hero as a physical lighting scene. */
.hero--lighting-concept {
	min-height: calc(100svh - var(--lm-header-height));
	display: flex;
	align-items: center;
	padding: clamp(66px, 7vw, 110px) 0;
	background:
		radial-gradient(ellipse at 78% 48%, rgba(244,37,47,.075), transparent 34%),
		linear-gradient(135deg, var(--lm-scene-surface), var(--lm-scene) 64%, var(--lm-scene-soft));
	color: var(--lm-scene-text);
}
html[data-theme="dark"] .hero--lighting-concept {
	background:
		radial-gradient(ellipse at 78% 48%, rgba(244,37,47,.2), transparent 42%),
		linear-gradient(135deg, #111012, #080809 64%, #050506);
}
.hero--lighting-concept::before {
	left: -280px;
	bottom: -480px;
	background: radial-gradient(circle, rgba(244,37,47,.11), transparent 66%);
	opacity: .28;
	transition: background .7s ease, opacity .7s ease;
}
.hero--lighting-concept::after {
	opacity: .26;
	background-image: linear-gradient(color-mix(in srgb, var(--lm-scene-text) 6%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--lm-scene-text) 6%, transparent) 1px, transparent 1px);
}
.hero--lighting-concept .hero__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(38px, 3vw, 48px); }
.hero--lighting-concept h1 { display: flex; margin: 0 0 24px; flex-direction: column; gap: .04em; font-size: clamp(4.4rem, 7.3vw, 6.6rem); line-height: 1; letter-spacing: -.075em; }
.hero--lighting-concept h1 span { display: block; white-space: nowrap; }
.hero--lighting-concept h1 span:last-child { color: color-mix(in srgb, var(--lm-scene-text) 73%, transparent); font-size: .9em; }
.hero__spec-line {
	margin: 0 0 30px;
	color: var(--lm-scene-muted);
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.hero__spec-line span { padding-inline: 8px; color: inherit; }
.hero--lighting-concept .hero__lead { max-width: 500px; color: var(--lm-scene-muted); font-size: 1.08rem; }
.hero--lighting-concept .text-link { color: var(--lm-scene-text); }
.hero__proof--specs { margin-top: 60px; border-color: var(--lm-scene-line); }
.hero__proof--specs strong { color: var(--lm-scene-text); font-size: .78rem; }
.hero__proof--specs span { color: var(--lm-scene-muted); }

.hero-lightbox {
	position: relative;
	width: 100%;
	min-height: clamp(300px, 36vw, 470px);
	overflow: visible;
	border: 0;
	background: transparent;
	box-shadow: none;
	isolation: isolate;
}
.hero-lightbox::before { display: none; }
.hero-lightbox__wash {
	position: absolute;
	z-index: 0;
	left: -10%;
	right: 0;
	top: 14%;
	height: 72%;
	border-radius: 50%;
	background: radial-gradient(ellipse, rgba(244,37,47,.11) 0, rgba(244,37,47,.045) 34%, transparent 70%);
	filter: blur(34px);
	opacity: .7;
	transition: background .7s ease, opacity .7s ease;
}
html[data-theme="dark"] .hero-lightbox__wash {
	background: radial-gradient(ellipse, rgba(244,37,47,.46) 0, rgba(244,37,47,.16) 32%, transparent 72%);
	opacity: .86;
}
.hero-neon-logo {
	position: absolute;
	z-index: 2;
	left: -10%;
	right: -1%;
	top: 42%;
	aspect-ratio: 4.84;
	transform: translateY(-50%);
}
.hero-neon-logo__outline,
.hero-neon-logo__base { position: absolute; inset: 0; display: block; width: 100%; height: 100%; overflow: visible; }
.hero-neon-logo__outline {
	z-index: 0;
	color: rgba(255,255,255,.96);
	opacity: 1;
	transition: opacity .22s ease, filter .7s ease;
}
.hero-neon-logo__base { z-index: 1; }
.hero-neon-logo__image { transition: opacity .55s ease; }
.hero-neon-logo__image--day { opacity: 1; }
.hero-neon-logo__image--night { opacity: 0; }
html[data-theme="dark"] .hero-neon-logo__outline { color: rgba(255,255,255,.98); }
html[data-theme="dark"] .hero-neon-logo__image--day { opacity: 0; }
html[data-theme="dark"] .hero-neon-logo__image--night { opacity: 1; }
.is-lighting-ready .hero-neon-logo__outline,
.is-light-cycle .hero-neon-logo__outline { animation: lm-logo-ignite 1.18s cubic-bezier(.2,.8,.2,1) both; }
@keyframes lm-logo-ignite {
	0% { opacity: 0; filter: brightness(0); }
	38% { opacity: .2; filter: brightness(.25); }
	58% { opacity: 1; filter: brightness(1.9); }
	72% { opacity: .62; filter: brightness(.72); }
	100% { opacity: 1; filter: brightness(1); }
}

/* Physical LED strips between surfaces, without a dark spacer band. */
.section-led { position: relative; z-index: 5; height: 0; overflow: clip visible; background: transparent; isolation: isolate; }
.section-led span {
	position: absolute;
	left: max(24px, calc((100% - var(--lm-container)) / 2));
	right: max(24px, calc((100% - var(--lm-container)) / 2));
	top: -2px;
	height: 3px;
	border-radius: 999px;
	background: var(--lm-light-core);
	box-shadow: 0 0 5px var(--lm-light), 0 0 18px var(--lm-light-glow), 0 0 52px var(--lm-light-glow);
	transition: background .7s ease, box-shadow .7s ease, opacity .2s ease;
}
.section-led span::before,
.section-led span::after {
	content: "";
	position: absolute;
	left: -5%;
	right: -5%;
	height: 150px;
	pointer-events: none;
	filter: blur(13px);
	opacity: .78;
}
.section-led span::before {
	bottom: 1px;
	background: radial-gradient(ellipse at 50% 100%, var(--lm-light-wash) 0, color-mix(in srgb, var(--lm-light-wash) 58%, transparent) 34%, transparent 72%);
}
.section-led span::after {
	top: 1px;
	background: radial-gradient(ellipse at 50% 0%, var(--lm-light-wash) 0, color-mix(in srgb, var(--lm-light-wash) 58%, transparent) 34%, transparent 72%);
}
html[data-theme="dark"] .section-led span { background: #ff5663; }
html[data-theme="dark"] .section-led span::before,
html[data-theme="dark"] .section-led span::after { opacity: .72; }
.is-lighting-ready .section-led span,
.is-light-cycle .section-led span { animation: lm-strip-ignite 1.05s cubic-bezier(.2,.8,.2,1) both; }
@keyframes lm-strip-ignite {
	0% { opacity: 0; transform: scaleX(.06); }
	52% { opacity: 1; }
	100% { opacity: 1; transform: scaleX(1); }
}
.section-led--short span { left: 20%; right: 20%; }

/* Visible ring wall lights: fixture, luminous ring and wide cast on the wall. */
.category-section,
.services-split { position: relative; overflow: hidden; }
.category-section > .container,
.services-split > .container { position: relative; z-index: 2; }
.wall-lamp {
	position: absolute;
	z-index: 3;
	display: block;
	width: 172px;
	aspect-ratio: 1;
	border-radius: 50%;
	pointer-events: none;
}
.wall-lamp::before {
	content: "";
	position: absolute;
	z-index: 0;
	left: 50%;
	top: 50%;
	width: 760px;
	height: 760px;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255,255,255,.2) 0 9%, rgba(244,37,47,.1) 21%, rgba(244,37,47,.04) 44%, transparent 73%);
	filter: blur(22px);
	opacity: .72;
	transition: background .7s ease, opacity .7s ease;
}
.wall-lamp::after {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
	border: 1px solid rgba(255,255,255,.72);
	border-radius: 50%;
	background:
		radial-gradient(circle at 42% 34%, rgba(255,255,255,.96) 0 18%, #ffffff 35%, #f7f8f5 58%, #e6e9e5 80%, #c8ccc8 100%);
	box-shadow:
		0 22px 42px rgba(22,22,24,.2),
		0 0 34px rgba(255,255,255,.8),
		inset 8px 9px 16px rgba(255,255,255,.86),
		inset -10px -12px 18px rgba(126,132,128,.2);
}
.wall-lamp i {
	position: absolute;
	z-index: 2;
	inset: 31%;
	border: 0;
	border-radius: 50%;
	background: var(--lm-scene);
	box-shadow:
		0 0 10px rgba(255,255,255,.9),
		inset 5px 6px 13px rgba(40,40,44,.16),
		inset -4px -4px 9px rgba(255,255,255,.65);
	transition: background .7s ease, box-shadow .7s ease, opacity .2s ease;
}
.wall-lamp i::after {
	content: "";
	position: absolute;
	inset: -3%;
	border-radius: 50%;
	box-shadow: inset 4px 5px 8px rgba(0,0,0,.12), 0 0 12px rgba(255,255,255,.35);
}
html[data-theme="dark"] .wall-lamp::before {
	background: radial-gradient(circle, rgba(255,72,88,.45) 0 10%, rgba(244,37,47,.2) 24%, rgba(244,37,47,.075) 48%, transparent 74%);
	opacity: .92;
}
html[data-theme="dark"] .wall-lamp::after {
	border-color: rgba(255,120,132,.6);
	background: radial-gradient(circle at 42% 34%, #ff7b87 0 15%, #ff3f51 35%, #f4252f 61%, #a50d1b 84%, #45050c 100%);
	box-shadow: 0 22px 46px rgba(0,0,0,.4), 0 0 22px #ff3143, 0 0 70px rgba(244,37,47,.58), inset 8px 9px 14px rgba(255,190,196,.35), inset -12px -14px 20px rgba(80,0,8,.4);
}
html[data-theme="dark"] .wall-lamp i {
	background: radial-gradient(circle at 42% 36%, #6f3940 0, #3a1c21 28%, #190d10 68%, #0d090a 100%);
	box-shadow:
		0 0 10px rgba(255,198,203,.42),
		0 0 28px rgba(255,54,72,.46),
		inset 5px 6px 12px rgba(255,126,139,.18),
		inset -5px -6px 10px rgba(0,0,0,.58);
}
html[data-theme="dark"] .wall-lamp i::after { box-shadow: inset 3px 4px 7px rgba(255,168,178,.12), 0 0 10px rgba(255,83,99,.36); }
.is-lighting-ready .wall-lamp i,
.is-light-cycle .wall-lamp i { animation: lm-ring-ignite .92s cubic-bezier(.2,.8,.2,1) both; }
@keyframes lm-ring-ignite {
	0% { opacity: 0; filter: brightness(0); }
	45% { opacity: 1; filter: brightness(1.35); }
	100% { opacity: 1; filter: brightness(1); }
}
.wall-lamp--right { right: 2.8%; top: 38px; }

/* A separate directional spotlight for the services wall. */
.spotlight {
	position: absolute;
	z-index: 1;
	width: 132px;
	height: 82px;
	pointer-events: none;
}
.spotlight i {
	position: absolute;
	z-index: 2;
	inset: 10px 18px 18px 8px;
	border-radius: 48px 18px 18px 48px;
	background: linear-gradient(145deg, #fff, #e8e8e5 48%, #8f9192 100%);
	box-shadow: 0 15px 30px rgba(0,0,0,.2), inset 5px 5px 8px rgba(255,255,255,.9), inset -6px -8px 12px rgba(70,72,74,.2);
	transform: rotate(16deg);
	transform-origin: center;
	transition: background .7s ease, border-color .7s ease, box-shadow .7s ease;
}
.spotlight i::after {
	content: "";
	position: absolute;
	right: -6px;
	top: 14%;
	width: 22px;
	height: 72%;
	border-radius: 50%;
	background: var(--lm-light-core);
	box-shadow: 0 0 9px var(--lm-light), 0 0 24px var(--lm-light-glow);
}
.spotlight::after {
	content: "";
	position: absolute;
	z-index: 0;
	left: 108px;
	top: -92px;
	width: 760px;
	height: 270px;
	clip-path: polygon(0 49%, 100% 0, 100% 100%, 0 51%);
	background: radial-gradient(ellipse at 0 50%, color-mix(in srgb, var(--lm-light-core) 62%, transparent) 0, color-mix(in srgb, var(--lm-light-wash) 48%, transparent) 34%, transparent 74%);
	filter: blur(20px);
	transform: rotate(16deg);
	transform-origin: left center;
	opacity: .72;
	transition: background .7s ease, opacity .7s ease;
}
.spotlight--left { left: 1.8%; top: 34px; }
html[data-theme="dark"] .spotlight i {
	border: 1px solid #3a393e;
	background: linear-gradient(145deg, #2b2b2f, #18181b 54%, #070708 100%);
	box-shadow: 0 16px 32px rgba(0,0,0,.55), inset 4px 4px 7px rgba(255,255,255,.08), inset -6px -8px 12px rgba(0,0,0,.62);
}
html[data-theme="dark"] .spotlight i::after { background: #ff3344; }
html[data-theme="dark"] .spotlight::after {
	background: radial-gradient(ellipse at 0 50%, rgba(255,85,101,.66) 0, rgba(244,37,47,.24) 32%, rgba(244,37,47,.075) 57%, transparent 76%);
	opacity: .82;
}

.moto-section > .container { position: relative; z-index: 2; }

/* Dark mode surface mapping across the reusable WordPress templates. */
html[data-theme="dark"] body { background: #09090a; color: var(--lm-ink); }
html[data-theme="dark"] .category-section,
html[data-theme="dark"] .process-section { background: #0b0b0c; }
html[data-theme="dark"] .product-section,
html[data-theme="dark"] .projects-section,
html[data-theme="dark"] .shop-shell,
html[data-theme="dark"] .page-shell,
html[data-theme="dark"] .content-card { background: #111113; }
html[data-theme="dark"] .services-split { background: #0e0e10; }
html[data-theme="dark"] .moto-landing-hero { background: #080809; }
html[data-theme="dark"] .moto-catalog-section { background: #0d0d0f; }
html[data-theme="dark"] .moto-brand-grid,
html[data-theme="dark"] .moto-brand-grid a { border-color: #353438; }
html[data-theme="dark"] .section-heading__copy,
html[data-theme="dark"] .services-copy > p:not(.eyebrow),
html[data-theme="dark"] .process-grid p,
html[data-theme="dark"] .page-content,
html[data-theme="dark"] .single-product-quote p { color: #aaa7a1; }
html[data-theme="dark"] .eyebrow--dark { color: #98948d; }
html[data-theme="dark"] .text-link--dark { color: var(--lm-ink); }
html[data-theme="dark"] .service-links,
html[data-theme="dark"] .service-links a,
html[data-theme="dark"] .process-grid,
html[data-theme="dark"] .process-grid > div { border-color: #343236; }
html[data-theme="dark"] .woocommerce ul.products li.product,
html[data-theme="dark"] .lm-shop-category-card,
html[data-theme="dark"] .service-archive-card,
html[data-theme="dark"] .service-inquiry-shell,
html[data-theme="dark"] .lm-field input,
html[data-theme="dark"] .lm-field select,
html[data-theme="dark"] .lm-field textarea,
html[data-theme="dark"] .woocommerce .woocommerce-ordering select,
html[data-theme="dark"] .lm-shop-filters input,
html[data-theme="dark"] .lm-shop-filters select { border-color: #363439; background: #151517; color: #f3efe7; }
html[data-theme="dark"] .lm-shop-filters,
html[data-theme="dark"] .single-product-quote,
html[data-theme="dark"] .woocommerce div.product .product-case-studies,
html[data-theme="dark"] .service-price-note { border-color: #363439; background: #181719; }
html[data-theme="dark"] .woocommerce ul.products li.product .woocommerce-loop-product__title,
html[data-theme="dark"] .shop-shell .page-title,
html[data-theme="dark"] .lm-shop-category-hub__intro h2,
html[data-theme="dark"] .page-content h2,
html[data-theme="dark"] .page-content h3 { color: #f4f1e9; }
html[data-theme="dark"] .lm-shop-category-hub__intro > p,
html[data-theme="dark"] .woocommerce .woocommerce-result-count,
html[data-theme="dark"] .lm-shop-filters__footer { color: #aaa7a1; }
html[data-theme="dark"] .button--dark { border-color: #f1eee7; background: #f1eee7; color: #111113; }
html[data-theme="dark"] .button--dark:hover { border-color: #fff; background: #fff; color: #111113; }

@media (min-width: 901px) and (max-width: 1040px) {
	.hero--lighting-concept .hero__grid { gap: 24px; }
	.hero--lighting-concept h1 { font-size: clamp(3.6rem, 6.55vw, 4.4rem); }
	.hero--lighting-concept .hero__actions { align-items: flex-start; flex-direction: column; gap: 16px; }
}

@media (max-width: 900px) {
	.hero--lighting-concept .hero__grid { grid-template-columns: 1fr; }
	.hero-lightbox { width: min(100%, 680px); min-height: 310px; margin-inline: auto; }
	.hero-neon-logo { left: -4%; right: -4%; }
}

@media (max-width: 620px) {
	:root { --lm-header-height: 68px; }
	.theme-toggle { width: 48px; }
	.theme-toggle__track { width: 44px; }
	html[data-theme="dark"] .theme-toggle__lamp { transform: translateX(18px); }
	.hero--lighting-concept { min-height: auto; padding: 48px 0 44px; }
	.hero--lighting-concept .hero__grid { gap: 30px; }
	.hero--lighting-concept h1 { font-size: clamp(3rem, 15vw, 4.3rem); }
	.hero__spec-line { max-width: 320px; line-height: 1.8; }
	.hero__proof--specs { grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 42px; }
	.hero__proof--specs div { display: flex; }
	.hero__proof--specs strong { font-size: .62rem; }
	.hero__proof--specs span { font-size: .58rem; }
	.hero-lightbox { min-height: 200px; }
	.hero-neon-logo { left: 0; right: 0; top: 44%; }
	.wall-lamp { width: 112px; }
	.wall-lamp::before { width: 390px; height: 390px; }
	.wall-lamp--right { right: -34px; top: 20px; }
	.spotlight { left: -32px; top: 18px; transform: scale(.78); }
	.section-led--short span { left: 12%; right: 12%; }
}

@media (max-width: 1120px) {
	.site-nav__list { gap: 14px; }
	.site-nav__list a { font-size: .66rem; }
	.site-header .header-actions .button { display: none; }
	.hero__grid { gap: 46px; }
	.hero__proof { grid-template-columns: 1fr; gap: 10px; }
	.hero__proof div { display: grid; grid-template-columns: 160px 1fr; }
	.category-grid { grid-template-columns: repeat(2, 1fr); grid-template-rows: 340px 260px 260px; }
	.category-card--wide { grid-column: 1 / -1; grid-row: auto; }
	.category-grid--primary { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 360px; }
	.services-split__grid { gap: 50px; }
	.moto-brand-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.woocommerce ul.products { grid-template-columns: repeat(3, 1fr); }
	.lm-shop-filters__top { grid-template-columns: repeat(3, 1fr); }
	.lm-shop-category-grid { grid-template-columns: repeat(3, 1fr); }
	.project-product-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 900px) {
	.container { width: min(calc(100% - 36px), var(--lm-container)); }
	.section-shell { padding: 78px 0; }
	.utility-bar__inner { justify-content: center; }
	.utility-links { display: none; }
	.site-header__inner { min-height: 68px; }
	.brand { flex-basis: 180px; margin-right: auto; }
	.brand img { width: 180px; }
	.menu-toggle { display: block; order: 3; }
	.header-actions { order: 2; }
	.site-nav { position: absolute; left: 0; right: 0; top: 100%; display: none; padding: 16px 18px 24px; background: #101012; border-top: 1px solid #2a2a2e; }
	.site-nav.is-open { display: block; }
	.site-nav__list { display: block; }
	.site-nav__list a { display: block; padding: 13px 8px; border-bottom: 1px solid #262629; font-size: .8rem; }
	.site-nav__list a::after { display: none; }
	.hero { padding-top: 64px; }
	.hero__grid, .moto-section__grid, .services-split__grid, .single-service-hero__grid, .archive-hero__grid, .single-project-grid { grid-template-columns: 1fr; }
	.moto-landing-hero__grid { grid-template-columns: 1fr; }
	.hero__grid { gap: 54px; }
	.hero__proof { grid-template-columns: repeat(3, 1fr); }
	.hero__proof div { display: flex; }
	.services-visual, .services-visual img { min-height: 460px; }
	.service-archive-card, .service-archive-card:nth-child(even) { grid-template-columns: 1fr; }
	.service-archive-card:nth-child(even) .service-archive-card__media { order: 0; }
	.service-archive-card__media { min-height: 330px; }
	.service-detail-grid { grid-template-columns: 1fr; gap: 48px; }
	.service-aside { position: static; }
	.project-grid, .project-grid--archive { grid-template-columns: repeat(2, 1fr); }
	.project-archive-toolbar { grid-template-columns: 1fr; gap: 28px; }
	.project-filters { justify-content: flex-start; }
	.process-grid { grid-template-columns: repeat(2, 1fr); }
	.final-cta__inner { align-items: flex-start; flex-direction: column; }
	.site-footer__grid { grid-template-columns: repeat(2, 1fr); }
	.woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
	.woocommerce div.product { grid-template-columns: 1fr; }
	.lm-shop-category-hub__intro { grid-template-columns: 1fr; gap: 16px; }
	.lm-quote-intro { grid-template-columns: 1fr; gap: 18px; }
}

@media (max-width: 620px) {
	.container, .narrow-container { width: min(calc(100% - 28px), var(--lm-container)); }
	.section-shell { padding: 62px 0; }
	h1 { font-size: 3.15rem; }
	h2 { font-size: 2.55rem; }
	.utility-bar { font-size: .6rem; }
	.utility-separator { display: inline; padding-inline: 6px; }
	.utility-bar p { text-align: center; }
	.header-actions .icon-button--cart { display: none; }
	.site-header__inner { gap: 10px; }
	.brand, .brand img { width: 158px; flex-basis: 158px; }
	.hero { padding: 54px 0 48px; }
	.hero h1 { font-size: clamp(2.9rem, 14vw, 3.7rem); }
	.hero h1:lang(en) { font-size: clamp(2.4rem, 11.5vw, 3.1rem); }
	.hero__lead { font-size: 1rem; }
	.hero__actions, .moto-actions { flex-direction: column; align-items: flex-start; }
	.hero__proof { grid-template-columns: 1fr; margin-top: 48px; }
	.hero__proof div { display: grid; grid-template-columns: 140px 1fr; }
	.solution-finder { padding: 22px; }
	.section-heading { align-items: flex-start; flex-direction: column; }
	.section-heading h2 { overflow-wrap: anywhere; }
	.moto-catalog-section .section-heading h2 { font-size: clamp(2rem, 10vw, 2.45rem); }
	.category-grid { display: grid; grid-template-columns: 1fr; grid-template-rows: repeat(4, 290px); }
	.category-card--wide { grid-column: auto; }
	.category-grid--primary { grid-template-columns: 1fr; grid-template-rows: repeat(2, 290px); }
	.category-card--wide .category-card__content strong { font-size: 1.8rem; }
	.services-split__grid { gap: 38px; }
	.services-visual, .services-visual img { min-height: 360px; }
	.service-links a { grid-template-columns: 26px 1fr auto; }
	.moto-section { padding: 70px 0; }
	.moto-landing-hero h1 { font-size: clamp(3rem, 14vw, 4.4rem); }
	.moto-brand-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.project-grid, .project-grid--archive { grid-template-columns: 1fr; }
	.project-product-grid { grid-template-columns: 1fr; }
	.lm-shop-category-grid {
		display: flex;
		margin-right: -14px;
		padding-right: 14px;
		overflow-x: auto;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
	}
	.lm-shop-category-grid::-webkit-scrollbar { display: none; }
	.lm-shop-category-card { flex: 0 0 min(78vw, 300px); scroll-snap-align: start; }
	.project-product-card { grid-template-columns: 92px 1fr auto; }
	.project-product-card__media img { width: 92px; }
	.woocommerce div.product .product-case-studies { padding: 28px 20px; }
	.process-grid { grid-template-columns: 1fr; }
	.process-grid span { margin-bottom: 30px; }
	.final-cta { padding: 64px 0; }
	.service-archive-card__content { padding: 34px 26px; }
	.service-archive-card__media { min-height: 250px; }
	.service-card-actions { align-items: flex-start; flex-direction: column; gap: 12px; }
	.service-inquiry-shell { width: 100%; padding: 24px 18px; }
	.page-content h2, .page-content h3, .service-aside h2 { overflow-wrap: anywhere; }
	.single-service-hero h1, .archive-hero h1, .single-project-hero h1 { font-size: clamp(2.75rem, 12vw, 3.35rem); overflow-wrap: anywhere; }
	.site-footer__grid { grid-template-columns: 1fr; gap: 38px; }
	.site-footer__bottom { align-items: flex-start; flex-direction: column; gap: 10px; }
	.woocommerce ul.products { grid-template-columns: 1fr; }
	.woocommerce div.product .product_title { font-size: clamp(2.45rem, 12vw, 3.35rem); overflow-wrap: anywhere; }
	.woocommerce div.product form.cart { flex-wrap: wrap; }
	.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 4px; }
	.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; }
	.single-product-quote { padding: 20px; }
	.lm-shop-filters__top { grid-template-columns: 1fr; }
	.lm-shop-filters__footer { align-items: flex-start; flex-direction: column; gap: 5px; }
	.lm-quote-form { grid-template-columns: 1fr; }
	.lm-field, .lm-field--full, .lm-consent, .lm-form-actions { grid-column: 1; }
	.lm-form-actions { align-items: flex-start; flex-direction: column; }
	.error-page > div > div { flex-direction: column; }
}

/* Keep the lighting concept's mobile proportions after the legacy breakpoints. */
@media (max-width: 620px) {
	.hero--lighting-concept { min-height: auto; padding: 48px 0 44px; }
	.hero--lighting-concept .hero__grid { gap: 30px; }
	.hero--lighting-concept h1 { font-size: clamp(3rem, 15vw, 4.3rem); }
	.hero__proof--specs { grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 42px; }
	.hero__proof--specs div { display: flex; }
	.hero__proof--specs strong { font-size: .62rem; }
	.hero__proof--specs span { font-size: .58rem; }
}

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

/* === v0.9.9: first-level category page, cart, checkout, payments, legal page === */
.lm-shop-all-title { margin: 46px 0 4px; font-size: clamp(1.7rem, 2.4vw, 2.2rem); }
.lm-shop-category-card__meta { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; }
.lm-count-pill { padding: 4px 10px; border-radius: 999px; background: rgba(244, 37, 47, .09); color: var(--lm-ink); font-size: .6rem; font-weight: 800; letter-spacing: .05em; }
.lm-count-pill--soon { background: #eceae4; color: #6c6c72; }
.lm-shop-category-card li a.lm-subcat-more { color: inherit; font-weight: 800; text-decoration: underline; }
.lm-shop-category-card__media--text { display: grid; place-items: center; aspect-ratio: 1.48; background: linear-gradient(135deg, #17171a, #2c2c31); }
.lm-shop-category-card__media--text span { position: relative; padding: 0 14px; color: #f4f1e9; font-size: 1.5rem; font-weight: 900; letter-spacing: -.02em; }
.lm-shop-category-card__media--text span::after { content: ""; position: absolute; left: -6%; right: -6%; bottom: -13px; height: 3px; border-radius: 2px; background: var(--lm-red); box-shadow: 0 0 16px rgba(244, 37, 47, .85); }

.lm-subcat-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 24px; }
.lm-subcat-chips a { display: inline-flex; align-items: center; gap: 7px; padding: 9px 15px; border: 1px solid #d8d7d2; border-radius: 999px; background: #fff; font-size: .72rem; font-weight: 700; }
.lm-subcat-chips a:hover { border-color: var(--lm-red); }
.lm-subcat-chips a span { color: #8a8a90; font-weight: 600; }
.lm-subcat-chips a.lm-subcat-chips__parent { border-style: dashed; background: transparent; }

.lm-empty-category { max-width: 660px; padding: 26px 0 12px; }
.lm-empty-category h2 { margin: 0 0 10px; }
.lm-empty-category p { color: #6a6a70; }
.lm-empty-category__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 24px; }
.button--quiet, .woocommerce a.button.button--quiet { border: 1px solid #cfceca; background: transparent; color: var(--lm-ink); }
.button--quiet:hover, .woocommerce a.button.button--quiet:hover { border-color: var(--lm-red); background: transparent; color: inherit; }

/* Cart and checkout */
.woocommerce table.shop_table { background: #fff; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: #e9e8e3; }
.woocommerce a.remove { color: var(--lm-ink) !important; text-decoration: none !important; }
.woocommerce a.remove:hover { background: var(--lm-red); color: #fff !important; }
.woocommerce-cart .coupon .input-text { min-height: 48px; padding: 0 16px; border: 1px solid #d1d0cb; border-radius: 999px; background: #fff; }
.woocommerce .cart_totals h2, .woocommerce-checkout #order_review_heading, .woocommerce-billing-fields h3 { font-size: 1.35rem; }
#shipping_method { margin: 0; padding: 0; list-style: none; }
#shipping_method li { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 9px; }
#shipping_method li label { line-height: 1.4; }
.woocommerce input[type="radio"], .woocommerce input[type="checkbox"] { accent-color: var(--lm-red); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea { width: 100%; min-height: 48px; padding: 12px 15px; border: 1px solid #d1d0cb; border-radius: 10px; background: #fff; color: #202023; }
.woocommerce form .form-row textarea { min-height: 110px; }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row select:focus, .woocommerce form .form-row textarea:focus { border-color: var(--lm-red); box-shadow: 0 0 0 3px rgba(244, 37, 47, .1); outline: 0; }
.woocommerce form .form-row label { font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.select2-container--default .select2-selection--single { min-height: 48px; padding: 10px 6px; border: 1px solid #d1d0cb; border-radius: 10px; }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 11px; }
.woocommerce-checkout #payment { border-radius: 14px; background: var(--lm-paper); }
.woocommerce-checkout #payment ul.payment_methods { padding: 20px; border-bottom-color: #e2e1dc; }
.woocommerce-checkout #payment ul.payment_methods li { margin-bottom: 8px; }
.wc_payment_method > label { font-weight: 800; }
.woocommerce-checkout #payment div.payment_box { border-radius: 10px; background: #fff; color: #55555b; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.form-row.place-order { padding: 20px; }
#place_order { width: 100%; min-height: 56px; border-radius: 12px; }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce #payment #place_order { border-color: var(--lm-red); background: var(--lm-red); color: #fff; }
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover, .woocommerce #payment #place_order:hover { border-color: var(--lm-red-deep); background: var(--lm-red-deep); color: #fff; }

/* Order received */
.woocommerce-order .woocommerce-thankyou-order-received { margin-bottom: 24px; font-size: 1.5rem; font-weight: 800; color: var(--lm-ink); }
.woocommerce ul.order_details { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 32px; padding: 0; list-style: none; }
.woocommerce ul.order_details li { float: none; flex: 1 1 170px; margin: 0; padding: 14px 16px; border: 1px solid #e1e0db; border-right-style: solid; border-radius: 12px; background: #fff; font-size: .62rem; }
.woocommerce ul.order_details li strong { display: block; margin-top: 5px; font-size: .95rem; }

/* Legal pages */
.page-content h2 { margin-top: 36px; }
.page-content ul { padding-left: 20px; }

/* Dark theme for the surfaces above */
html[data-theme="dark"] .woocommerce table.shop_table { background: #151517; border-color: #363439; }
html[data-theme="dark"] .woocommerce table.shop_table th, html[data-theme="dark"] .woocommerce table.shop_table td { border-color: #2c2b2f; }
html[data-theme="dark"] .woocommerce-message, html[data-theme="dark"] .woocommerce-info, html[data-theme="dark"] .woocommerce-error { background: #181719; color: #e8e4dc; }
html[data-theme="dark"] .woocommerce form .form-row input.input-text,
html[data-theme="dark"] .woocommerce form .form-row select,
html[data-theme="dark"] .woocommerce form .form-row textarea,
html[data-theme="dark"] .woocommerce-cart .coupon .input-text,
html[data-theme="dark"] .select2-container--default .select2-selection--single { border-color: #363439; background: #151517; color: #f3efe7; }
html[data-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered { color: #f3efe7; }
html[data-theme="dark"] .woocommerce-checkout #payment { background: #181719; }
html[data-theme="dark"] .woocommerce-checkout #payment ul.payment_methods { border-bottom-color: #2f2e32; }
html[data-theme="dark"] .woocommerce-checkout #payment div.payment_box { background: #151517; color: #b6b2aa; }
html[data-theme="dark"] .woocommerce ul.order_details li { border-color: #363439; background: #151517; }
html[data-theme="dark"] .woocommerce-order .woocommerce-thankyou-order-received { color: #f4f1e9; }
html[data-theme="dark"] .lm-subcat-chips a { border-color: #363439; background: #151517; color: #f3efe7; }
html[data-theme="dark"] .lm-subcat-chips a:hover { border-color: var(--lm-red); }
html[data-theme="dark"] .lm-subcat-chips a span { color: #8f8b84; }
html[data-theme="dark"] .lm-count-pill { background: rgba(255, 86, 99, .16); color: #f4f1e9; }
html[data-theme="dark"] .lm-count-pill--soon { background: #232226; color: #a5a199; }
html[data-theme="dark"] .lm-empty-category p { color: #aaa7a1; }
html[data-theme="dark"] .lm-empty-category h2 { color: #f4f1e9; }
html[data-theme="dark"] .button--quiet, html[data-theme="dark"] .woocommerce a.button.button--quiet { border-color: #4a484d; color: #f3efe7; }
html[data-theme="dark"] .lm-shop-all-title { color: #f4f1e9; }
html[data-theme="dark"] .woocommerce .cart_totals h2, html[data-theme="dark"] .woocommerce-checkout #order_review_heading, html[data-theme="dark"] .woocommerce-billing-fields h3 { color: #f4f1e9; }

@media (max-width: 1120px) {
	.lm-shop-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.lm-empty-category__actions { flex-direction: column; align-items: stretch; }
	.woocommerce ul.order_details li { flex-basis: 100%; }
}

/* === v1.0.0: motion polish (all gated for prefers-reduced-motion) === */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .55s ease, transform .6s cubic-bezier(.2, .7, .2, 1); will-change: opacity, transform; }
.reveal--in { opacity: 1; transform: none; }

.button span, .text-link span { display: inline-block; transition: transform .25s ease; }
.button:hover span, .text-link:hover span { transform: translateX(3px); }
.button:active { transform: scale(.985); }

.cart-count { animation: lm-pop .35s ease; }
@keyframes lm-pop { 0% { transform: scale(1); } 45% { transform: scale(1.4); } 100% { transform: scale(1); } }

.section-led span { background-image: linear-gradient(100deg, transparent 20%, rgba(255, 255, 255, .5) 50%, transparent 80%); background-size: 220% 100%; background-repeat: no-repeat; animation: lm-current 7s linear infinite; }
@keyframes lm-current { 0% { background-position: 220% 0; } 100% { background-position: -120% 0; } }

html[data-theme="dark"] .hero-neon-logo__base { animation: lm-neon-breathe 8s ease-in-out infinite; }
@keyframes lm-neon-breathe { 0%, 100% { filter: brightness(1); opacity: 1; } 6% { opacity: .965; } 8% { opacity: 1; } 52% { filter: brightness(1.05); } 56% { opacity: .985; } }

html[data-theme="dark"] .lm-shop-category-card:hover, html[data-theme="dark"] .woocommerce ul.products li.product:hover { box-shadow: 0 18px 52px rgba(244, 37, 47, .15); }
.category-card img { transition: transform .5s ease; }
.category-card:hover img { transform: scale(1.04); }

@media (prefers-reduced-motion: reduce) {
	.reveal { opacity: 1; transform: none; transition: none; }
	.section-led span, html[data-theme="dark"] .hero-neon-logo__base, .cart-count { animation: none; }
	.button span, .text-link span, .category-card img { transition: none; }
	.button:active { transform: none; }
}

/* v1.1.0 — Meist and Kontakt layouts, page CTA band */
.lm-about-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 2.75rem; align-items: start; margin-top: 1rem; }
.lm-about-media { display: grid; gap: 1.25rem; position: sticky; top: calc(var(--lm-header-height) + 24px); }
.lm-about-media figure { margin: 0; border-radius: var(--lm-radius); overflow: hidden; border: 1px solid var(--lm-line); background: var(--lm-white); box-shadow: var(--lm-shadow); }
.lm-about-media img { display: block; width: 100%; height: auto; }
.lm-page-cta { margin-top: 3.25rem; padding: 2.25rem; border-radius: var(--lm-radius); border: 1px solid var(--lm-line); background: var(--lm-white); display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: center; justify-content: space-between; }
.lm-page-cta h2 { margin: 0 0 .4rem; font-size: 1.45rem; }
.lm-page-cta p { margin: 0; color: var(--lm-steel); max-width: 34rem; }
.lm-page-cta__actions { display: flex; gap: .75rem; flex-wrap: wrap; }
.lm-contact-lead { max-width: 46rem; font-size: 1.12rem; color: var(--lm-steel); }
.lm-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-top: 2rem; }
.lm-contact-card { display: flex; flex-direction: column; gap: .35rem; padding: 1.6rem 1.75rem; border-radius: var(--lm-radius); border: 1px solid var(--lm-line); background: var(--lm-white); color: inherit; text-decoration: none; transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease; }
a.lm-contact-card:hover, a.lm-contact-card:focus-visible { border-color: var(--lm-red); transform: translateY(-3px); box-shadow: var(--lm-shadow); color: inherit; }
.lm-contact-card small { text-transform: uppercase; letter-spacing: .09em; font-size: .72rem; color: var(--lm-steel); }
.lm-contact-card strong { font-size: 1.3rem; letter-spacing: -0.01em; }
.lm-contact-card span { color: var(--lm-steel); font-size: .95rem; }
@media (max-width: 900px) {
	.lm-about-layout { grid-template-columns: 1fr; }
	.lm-about-media { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.lm-contact-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) { .lm-about-media { grid-template-columns: 1fr; } }

/* v1.2.0 — photo hero, photo bands, poster sections, no-red-text rules */
.hero--lighting-concept.hero--photo {
	min-height: auto;
	padding: clamp(110px, 12vw, 170px) 0;
	background:
		linear-gradient(90deg, rgba(8,8,10,.9), rgba(8,8,10,.6) 46%, rgba(8,8,10,.28)),
		url('assets/images/hero-auto.jpg') center / cover no-repeat #0a0a0b;
	color: #fff;
}
html[data-theme="dark"] .hero--lighting-concept.hero--photo {
	background:
		linear-gradient(90deg, rgba(8,8,9,.93), rgba(8,8,9,.68) 46%, rgba(8,8,9,.38)),
		radial-gradient(ellipse at 78% 48%, rgba(244,37,47,.16), transparent 46%),
		url('assets/images/hero-auto.jpg') center / cover no-repeat #050506;
}
.hero--photo::before, .hero--photo::after { display: none; }
.hero--photo h1 span:last-child { color: rgba(255,255,255,.78); }
.hero--photo .text-link { color: #fff; }
.hero--photo .hero-neon-logo__image--day { opacity: 0; }
.hero--photo .hero-neon-logo__image--night { opacity: 1; }

.lm-photo-band { margin-top: 56px; }
.lm-photo-band img { display: block; width: 100%; height: clamp(320px, 42vw, 520px); object-fit: cover; }

.moto-section--photo { position: relative; isolation: isolate; padding: clamp(90px, 11vw, 160px) 0; background: #0a0a0b; color: #fff; }
.moto-section--photo::before { content: ""; position: absolute; inset: 0; z-index: -2; background: url('assets/images/moto-taillight.jpg') center / cover no-repeat; }
.moto-section--photo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(6,6,8,.85), rgba(6,6,8,.5) 55%, rgba(6,6,8,.22)); }
.moto-section--photo h2 { max-width: none; margin: 0 0 26px; font-size: clamp(2.2rem, 3.4vw, 3.3rem); letter-spacing: -0.02em; }

.service-links--wide { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; margin: 8px 0 34px; }
.service-links--wide a { display: grid; grid-template-columns: auto 1fr auto; grid-template-areas: "num name arrow"; align-items: center; gap: 16px; padding: 22px 4px; border-bottom: 1px solid var(--lm-line); }
.service-links--wide span { grid-area: num; }
.service-links--wide strong { grid-area: name; font-size: 1.3rem; letter-spacing: -0.01em; }
.service-links--wide b { grid-area: arrow; }

/* Text colour rules: white on dark, black on light, white on red. Links are
   neutral text with a red underline accent, never red type. */
.woocommerce table a:not(.button), .woocommerce-privacy-policy-text a, .woocommerce-terms-and-conditions-wrapper a, .woocommerce-info a, .woocommerce-message a, .woocommerce-error a { color: inherit; text-decoration: underline; text-decoration-color: var(--lm-red); text-underline-offset: 3px; }
.woocommerce a.remove:hover { background: var(--lm-red); color: #fff !important; }
.woocommerce-cart table.cart td.actions .coupon input.input-text { min-width: 190px; }
.woocommerce button.button:disabled, .woocommerce button.button:disabled[disabled] { background: var(--lm-red); border-color: var(--lm-red); color: #fff; opacity: .45; }
.woocommerce button.button:disabled:hover { background: var(--lm-red); border-color: var(--lm-red); color: #fff; transform: none; }

@media (max-width: 900px) {
	.service-links--wide { grid-template-columns: 1fr; }
	.moto-section--photo { padding: 84px 0; }
}

.woocommerce-message:focus, .woocommerce-info:focus, .woocommerce-error:focus { outline: 2px solid var(--lm-red); outline-offset: 2px; }

/* The wall-lamp ornament collides with the full-width heading row. */
.category-section .wall-lamp { display: none; }

/* v1.4.0 — language switcher */
.lang-switch { display: flex; gap: 2px; margin-right: 6px; border: 1px solid #3a3a3f; border-radius: 999px; padding: 3px; }
.lang-switch a { padding: 5px 10px; border-radius: 999px; color: #aaa7a1; font-size: .68rem; font-weight: 800; letter-spacing: .08em; }
.lang-switch a.is-active { background: var(--lm-red); color: #fff; }
.lang-switch a:hover { color: #fff; }
@media (max-width: 900px) { .lang-switch { margin-right: 2px; } .lang-switch a { padding: 4px 8px; } }
