/* ==========================================================================
   Editor content bridge.
   Maps markup that editors produce in WP admin (WPBakery elements, Contact
   Form 7, WordPress alignment classes, and legacy classes typed into content
   such as .btn-green) onto the LUMIX PROCUT Design System, so existing pages
   pick up the new look without being rebuilt. Depends on tokens.css and
   base.css. Home sections follow the design system's Home Page canvas.
   ========================================================================== */

/* Full-bleed band: the background reaches the window edges while the
   content stays on the container grid (no 100vw, so no sideways scroll). */
.lx-band,
.entry-content :is(#home-toptext, #home-service, #home-about, #service-items, #about) {
	box-shadow: 0 0 0 100vmax var(--band, transparent);
	clip-path: inset(0 -100vmax);
	background: var(--band, transparent);
}
/* Opt-in grey band for any WPBakery row: "Extra class name" lx-band */
.lx-band { --band: var(--surface-alt); padding-block: var(--section-space); }

/* ---------- WordPress alignment and captions ---------- */
.alignleft  { float: left;  margin: 0 var(--space-6) var(--space-4) 0; }
.alignright { float: right; margin: 0 0 var(--space-4) var(--space-6); }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text { margin-top: var(--space-2); color: var(--text-muted); font-size: var(--body-sm-size); line-height: var(--body-sm-line); }
@media (max-width: 47.99em) {
	.alignleft, .alignright { float: none; margin: 0 0 var(--space-4); }
}

/* ---------- Lists in WPBakery text blocks: green dots ---------- */
.wpb_text_column ul { margin: 0 0 var(--space-4); padding-left: 0; list-style: none; }
.wpb_text_column ul > li { position: relative; margin-bottom: var(--space-2); padding-left: 20px; }
.wpb_text_column ul > li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 8px;
	width: 8px;
	height: 8px;
	border-radius: var(--radius-full);
	background: var(--lumix-green);
}
.wpb_text_column ol { margin: 0 0 var(--space-4); padding-left: 1.4em; }
.wpb_text_column ol > li::marker { color: var(--ink); font-weight: 700; }

/* ---------- Buttons ----------
   WPBakery buttons, legacy .btn-green / .btn-white typed into content, and
   the Contact Form 7 submit button render as design system buttons:
   .btn-green and WPBakery buttons are Primary, .btn-white is Secondary.
   Colour variables sit at zero specificity so variants can override them. */
:where(.btn-green, .btn-white, .wpcf7-submit, a.vc_general.vc_btn3) {
	--btn-bg: var(--lumix-green);
	--btn-fg: var(--on-brand);
	--btn-border: var(--lumix-green);
	--btn-bg-hover: var(--lumix-green-deep);
	--btn-border-hover: var(--lumix-green-deep);
}
:where(.btn-white) {
	--btn-bg: var(--surface);
	--btn-fg: var(--ink);
	--btn-border: var(--line-strong);
	--btn-bg-hover: var(--surface);
	--btn-border-hover: var(--ink);
}

:is(.btn-green, .btn-white, .wpcf7-submit, a.vc_general.vc_btn3[class*="vc_btn3-color-"]) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	min-height: 48px;
	margin: 0;
	padding: 0 var(--space-6);
	border: 1px solid var(--btn-border);
	border-radius: var(--radius-md);
	background: var(--btn-bg);
	background-image: none;
	box-shadow: none;
	color: var(--btn-fg);
	font-family: var(--font-display);
	font-size: var(--button-size);
	line-height: var(--button-line);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);
}
:is(.btn-green, .btn-white, .wpcf7-submit, a.vc_general.vc_btn3[class*="vc_btn3-color-"]):hover {
	background: var(--btn-bg-hover);
	background-image: none;
	border-color: var(--btn-border-hover);
	color: var(--btn-fg);
	text-decoration: none;
}
:is(.btn-green, .btn-white, .wpcf7-submit, a.vc_general.vc_btn3[class*="vc_btn3-color-"]):focus-visible { box-shadow: var(--focus-ring); color: var(--btn-fg); }
a.vc_general.vc_btn3.vc_btn3-block { display: flex; width: 100%; }
.vc_btn3-container { margin-bottom: var(--space-4); }

/* ---------- Contact Form 7 ---------- */
.wpcf7 form p { margin-bottom: var(--space-4); }
.wpcf7 .wpcf7-form-control-wrap { display: block; margin-top: var(--space-1); }
.wpcf7 .wpcf7-spinner { margin: 0 var(--space-2); vertical-align: middle; }

/* ==========================================================================
   WPBakery layout inside the page shell
   ========================================================================== */
.entry-content .wpb_content_element { margin-bottom: var(--space-6); }
.entry-content .vc_row { margin-bottom: var(--space-4); }
/* Headings typed as H1 inside page content would compete with the page title */
.entry-content h1 { font-size: var(--heading-1-size); line-height: var(--heading-1-line); }
.entry-content .wpb_text_column > .wpb_wrapper > :last-child { margin-bottom: 0; }
.entry-content .wpb_text_column h6 { margin-bottom: var(--space-4); color: var(--ink); font-family: var(--font-display); font-size: var(--body-lg-size); line-height: var(--body-lg-line); font-weight: 600; letter-spacing: 0; text-transform: none; }

/* Banners and single images */
.entry-content .wpb_single_image img { border-radius: var(--radius-lg); }

/* Separators: hairline */
.entry-content .vc_separator { margin-block: var(--space-8); }
.entry-content .vc_separator .vc_sep_line { border-top: 1px solid var(--line) !important; }

/* Video embeds (YouTube becomes a click-to-load facade, see inc/content-filters.php) */
.entry-content .wpb_video_widget .wpb_video_wrapper { border-radius: var(--radius-lg); overflow: hidden; }
.entry-content .wpb_video_wrapper > :is(.video-facade, .video-embed) { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; }

/* Text beside a video (the home "featured product" row): centred pair,
   feature list with green check discs as in the design canvas */
.entry-content .vc_row:has(> .wpb_column .wpb_video_widget):has(> .wpb_column .wpb_text_column) { display: flex; flex-wrap: wrap; align-items: center; row-gap: var(--space-8); margin-block: var(--space-12); }
.entry-content .vc_row:has(> .wpb_column .wpb_video_widget):has(> .wpb_column .wpb_text_column)::before,
.entry-content .vc_row:has(> .wpb_column .wpb_video_widget):has(> .wpb_column .wpb_text_column)::after { display: none; }
.entry-content .vc_row:has(> .wpb_column .wpb_video_widget) .wpb_text_column ul > li { margin-bottom: var(--space-3); padding-left: 36px; }
.entry-content .vc_row:has(> .wpb_column .wpb_video_widget) .wpb_text_column ul > li::before {
	left: 0;
	top: 0;
	width: 24px;
	height: 24px;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23231f20' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 14px no-repeat,
		var(--lumix-green);
}

/* ==========================================================================
   Product cards. Any column holding an image (or gallery) plus a button,
   which is how the machinery, brand, range and spare parts grids are built,
   becomes a card: photo on a neutral plate, the button label as the title
   row with the green bar, and the whole card clickable. No content changes.
   ========================================================================== */
.entry-content .vc_row:has(> .wpb_column .vc_btn3-container):has(> .wpb_column :is(.wpb_single_image, .wpb_gallery)) {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 0;
}
.entry-content .vc_row:has(> .wpb_column .vc_btn3-container):has(> .wpb_column :is(.wpb_single_image, .wpb_gallery))::before,
.entry-content .vc_row:has(> .wpb_column .vc_btn3-container):has(> .wpb_column :is(.wpb_single_image, .wpb_gallery))::after { display: none; }

.entry-content .wpb_column:has(.vc_btn3-container):has(:is(.wpb_single_image, .wpb_gallery)) { display: flex; margin-bottom: var(--grid-gap); }
.entry-content .wpb_column:has(.vc_btn3-container):has(:is(.wpb_single_image, .wpb_gallery)) > .vc_column-inner { display: flex; width: 100%; }
.entry-content .wpb_column:has(.vc_btn3-container):has(:is(.wpb_single_image, .wpb_gallery)) > .vc_column-inner > .wpb_wrapper {
	position: relative;
	display: flex;
	flex-direction: column;
	width: 100%;
	overflow: hidden;
	background: var(--surface);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	transition: box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.entry-content .wpb_column:has(.vc_btn3-container):has(:is(.wpb_single_image, .wpb_gallery)) > .vc_column-inner > .wpb_wrapper:hover { box-shadow: var(--shadow-lg); }
@media (prefers-reduced-motion: no-preference) {
	.entry-content .wpb_column:has(.vc_btn3-container):has(:is(.wpb_single_image, .wpb_gallery)) > .vc_column-inner > .wpb_wrapper:hover { transform: translateY(-2px); }
}
.entry-content .wpb_column:has(.vc_btn3-container):has(:is(.wpb_single_image, .wpb_gallery)) > .vc_column-inner > .wpb_wrapper:has(:focus-visible) { box-shadow: var(--focus-ring); }

/* The photo plate: one neutral tone that white studio backgrounds blend into */
.entry-content .wpb_column:has(.vc_btn3-container) :is(.wpb_single_image, .wpb_gallery) {
	display: grid;
	place-items: center;
	margin: 0;
	padding: 8%;
	aspect-ratio: 4 / 3;
	background: var(--surface-alt);
}
.entry-content .wpb_column:has(.vc_btn3-container) :is(.wpb_single_image, .wpb_gallery) :is(figure, .vc_single_image-wrapper, a, .wpb_wrapper, .wpb_gallery_slides, ul, li) {
	display: contents;
}
.entry-content .wpb_column:has(.vc_btn3-container) :is(.wpb_single_image, .wpb_gallery) img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	border-radius: 0;
	mix-blend-mode: multiply;
	transition: transform var(--dur-slow) var(--ease);
}
/* Galleries: the card shows the first image only */
.entry-content .wpb_column:has(.vc_btn3-container) .wpb_gallery li:not(:first-child) { display: none; }
@media (prefers-reduced-motion: no-preference) {
	.entry-content .wpb_column:has(.vc_btn3-container) > .vc_column-inner > .wpb_wrapper:hover :is(.wpb_single_image, .wpb_gallery) img { transform: scale(1.04); }
}

/* The button becomes the card's title row, ending in the green bar */
.entry-content .wpb_column:has(:is(.wpb_single_image, .wpb_gallery)) .vc_btn3-container {
	margin: auto 0 0;
	padding: 0;
	border-top: 1px solid var(--line);
	text-align: left;
}
.entry-content .wpb_column:has(:is(.wpb_single_image, .wpb_gallery)) a.vc_general.vc_btn3[class*="vc_btn3-color-"] {
	justify-content: space-between;
	width: 100%;
	min-height: 56px;
	padding: var(--space-3) var(--space-6);
	border: 0;
	border-radius: 0;
	background: var(--surface);
	color: var(--ink);
	font-size: 16px;
	line-height: 22px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-align: left;
	text-transform: none; /* a card title, not a button: shown as typed */
}
.entry-content .wpb_column:has(:is(.wpb_single_image, .wpb_gallery)) a.vc_general.vc_btn3[class*="vc_btn3-color-"]::after {
	content: "";
	flex: none;
	width: 18px;
	height: 3px;
	margin-left: var(--space-3);
	border-radius: var(--radius-full);
	background: var(--lumix-green);
	transition: width var(--dur) var(--ease);
}
/* Stretch the link over the whole card */
.entry-content .wpb_column:has(:is(.wpb_single_image, .wpb_gallery)) a.vc_general.vc_btn3[class*="vc_btn3-color-"]::before {
	content: "";
	position: absolute;
	inset: 0;
}
.entry-content .wpb_column:has(:is(.wpb_single_image, .wpb_gallery)) a.vc_general.vc_btn3[class*="vc_btn3-color-"]:is(:hover, :focus-visible) {
	background: var(--surface);
	box-shadow: none;
	color: var(--ink);
}
.entry-content .wpb_column:has(:is(.wpb_single_image, .wpb_gallery)) > .vc_column-inner > .wpb_wrapper:hover a.vc_general.vc_btn3[class*="vc_btn3-color-"]::after { width: 30px; }

/* Rows of two keep the same card size as rows of three, centred */
@media (min-width: 48em) {
	.entry-content .vc_row:has(> .wpb_column .vc_btn3-container):has(> .wpb_column :is(.wpb_single_image, .wpb_gallery)) { justify-content: center; }
	.entry-content .wpb_column:has(.vc_btn3-container):has(:is(.wpb_single_image, .wpb_gallery)):is(.vc_col-sm-6, .vc_col-sm-12) { width: 33.3333%; }
}

/* Two cards per row on phones instead of one long column. Card rows dissolve
   (display: contents) so cards flow across the editor's rows of three or four
   without leaving gaps; every other row keeps the full width. */
@media (max-width: 47.99em) {
	/* Rows sit in .container, or in .wpb-content-wrapper (WPBakery 7 and later) */
	.entry-content :is(.container, .wpb-content-wrapper):has(> .vc_row > .wpb_column .vc_btn3-container) { display: flex; flex-wrap: wrap; align-items: stretch; }
	.entry-content :is(.container, .wpb-content-wrapper):has(> .vc_row > .wpb_column .vc_btn3-container) > * { flex: 0 0 100%; min-width: 0; }
	.entry-content :is(.container, .wpb-content-wrapper) > .vc_row:has(> .wpb_column .vc_btn3-container):has(> .wpb_column :is(.wpb_single_image, .wpb_gallery)) { display: contents; }
	.entry-content :is(.container, .wpb-content-wrapper) > .vc_row > .wpb_column:has(.vc_btn3-container):has(:is(.wpb_single_image, .wpb_gallery)) { flex: 0 0 50%; }
	/* Divider rows between card rows would break the two-across flow */
	.entry-content :is(.container, .wpb-content-wrapper):has(> .vc_row > .wpb_column .vc_btn3-container) > .vc_row:has(.vc_separator):not(:has(.wpb_text_column, .wpb_single_image, .wpb_gallery, .vc_btn3-container)) { display: none; }
	.entry-content .wpb_column:has(.vc_btn3-container):has(:is(.wpb_single_image, .wpb_gallery)):is(.vc_col-sm-2, .vc_col-sm-3, .vc_col-sm-4, .vc_col-sm-6) { width: 50%; }
	.entry-content .wpb_column:has(.vc_btn3-container):has(:is(.wpb_single_image, .wpb_gallery)) > .vc_column-inner { padding-inline: 6px; }
	.entry-content .wpb_column:has(:is(.wpb_single_image, .wpb_gallery)) a.vc_general.vc_btn3[class*="vc_btn3-color-"] { min-height: 48px; padding: var(--space-2) var(--space-3); font-size: 13px; line-height: 18px; }
}

/* ==========================================================================
   Logo strips: WPBakery image carousels and the home "Brands" marquee become
   a still logo wall, greyscale with colour on hover. The marquee scrolled
   forever and could not be paused by keyboard or touch users (WCAG 2.2.2);
   the carousel overflowed phones.
   ========================================================================== */
.entry-content .vc_images_carousel,
.entry-content .vc_images_carousel :is(.vc_carousel-inner, .vc_carousel-slideline) { width: 100% !important; height: auto !important; overflow: visible; }
.entry-content :is(.vc_images_carousel .vc_carousel-slideline-inner, .logo-carousel-track) {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 180px), 1fr));
	gap: var(--space-4);
	width: auto !important;
	transform: none !important;
	animation: none !important;
}
@media (max-width: 47.99em) {
	.entry-content :is(.vc_images_carousel .vc_carousel-slideline-inner, .logo-carousel-track) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
}
.entry-content .vc_images_carousel .vc_item {
	display: grid !important;
	place-items: center;
	width: auto !important;
	height: 88px !important;
	padding: 0 var(--space-4);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	background: var(--surface);
}
.entry-content .vc_images_carousel .vc_item img,
.entry-content .logo-carousel-track img { filter: grayscale(1); transition: filter var(--dur) var(--ease); }
.entry-content .vc_images_carousel .vc_item:hover img,
.entry-content .logo-carousel-track img:hover { filter: none; }
/* Stopgap: these two logos are white artwork made for dark backgrounds.
   Shown dark until light-background versions are uploaded (TODO in DESIGN.md). */
.entry-content :is(.logo-carousel-track, .vc_images_carousel) :is(img[src*="AF_LOGO"], img[src*="lorenzo-barroso"]),
.entry-content :is(.logo-carousel-track, .vc_images_carousel) :is(img[src*="AF_LOGO"], img[src*="lorenzo-barroso"]):hover { filter: invert(1) grayscale(1); }
.entry-content .vc_images_carousel .vc_item img { max-height: 48px; width: auto; object-fit: contain; border-radius: 0; }
.entry-content .vc_images_carousel :is(.vc_carousel-indicators, .vc_carousel-control) { display: none; }
.entry-content .logo-carousel { overflow: visible !important; padding: 0 !important; }
.entry-content .logo-carousel-track img {
	width: 100% !important;
	height: 88px !important;
	margin: 0 !important;
	padding: 20px var(--space-4);
	object-fit: contain;
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	background: var(--surface);
}

/* ==========================================================================
   Section headings typed as "<em>Brands</em><br>Lumix Procut can service":
   the em becomes the eyebrow with its green bar (SectionHeading)
   ========================================================================== */
.entry-content .section-title { max-width: 760px; margin: 0 0 var(--space-8); color: var(--ink); font-size: var(--display-lg-size); line-height: var(--display-lg-line); font-weight: 600; letter-spacing: -0.01em; text-align: left !important; }
.entry-content .section-title em {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	margin-bottom: var(--space-3);
	color: var(--ink);
	font-size: var(--eyebrow-size);
	line-height: var(--eyebrow-line);
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.entry-content .section-title em::before { content: ""; flex: none; width: 26px; height: 3px; border-radius: var(--radius-full); background: var(--lumix-green); }
.entry-content .section-title br { display: none; }
@media (max-width: 47.99em) {
	.entry-content .section-title { font-size: var(--heading-1-size); line-height: var(--heading-1-line); }
}

/* ==========================================================================
   Home (rows identified by their WPBakery row IDs), after the Home Page
   canvas: "What we do" grey band with service cards, featured product,
   green statement band, brands logo wall. The CTA band follows in the footer.
   ========================================================================== */
.entry-content--home { padding-top: 0; }

/* Intro heading and the service cards share one grey band */
.entry-content :is(#home-toptext, #home-service) { --band: var(--surface-alt); margin-bottom: 0; }
.entry-content #home-toptext { padding-top: var(--section-space); }
.entry-content #home-toptext h1 {
	max-width: 760px;
	margin: 0 0 var(--space-12);
	font-size: var(--display-lg-size);
	line-height: var(--display-lg-line);
	font-weight: 600;
	letter-spacing: -0.01em;
	text-align: left !important; /* the row has inline centring */
}
.entry-content #home-toptext h1::before { content: ""; display: block; width: 26px; height: 3px; margin-bottom: var(--space-4); border-radius: var(--radius-full); background: var(--lumix-green); }
@media (max-width: 47.99em) {
	.entry-content #home-toptext h1 { margin-bottom: var(--space-8); font-size: var(--heading-1-size); line-height: var(--heading-1-line); }
}

.entry-content #home-service { display: flex; flex-wrap: wrap; row-gap: var(--grid-gap); padding-bottom: var(--section-space); }
.entry-content #home-service::before, .entry-content #home-service::after { display: none; }
.entry-content #home-service > .wpb_column { display: flex; }
.entry-content #home-service > .wpb_column > .vc_column-inner { display: flex; width: 100%; }
/* ServiceCard */
.entry-content #home-service > .wpb_column > .vc_column-inner > .wpb_wrapper {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	width: 100%;
	padding: var(--space-8);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	background: var(--surface);
	transition: box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.entry-content #home-service > .wpb_column > .vc_column-inner > .wpb_wrapper:hover { box-shadow: var(--shadow-lg); }
@media (prefers-reduced-motion: no-preference) {
	.entry-content #home-service > .wpb_column > .vc_column-inner > .wpb_wrapper:hover { transform: translateY(-2px); }
}
.entry-content #home-service > .wpb_column > .vc_column-inner > .wpb_wrapper:has(:focus-visible) { box-shadow: var(--focus-ring); }
.entry-content #home-service :is(.wpb_content_element, .wpb_text_column) { margin: 0; }
.entry-content #home-service .wpb_text_column { display: flex; flex: 1; flex-direction: column; }
.entry-content #home-service .wpb_text_column > .wpb_wrapper { display: flex; flex: 1; flex-direction: column; gap: var(--space-4); }
.entry-content #home-service .wpb_single_image {
	display: grid;
	place-items: center;
	height: 180px;
	border-radius: var(--radius-lg);
	background: var(--surface-alt);
}
.entry-content #home-service .wpb_single_image :is(figure, .vc_single_image-wrapper) { display: contents; }
.entry-content #home-service .wpb_single_image img { max-height: 148px; width: auto; border-radius: 0; mix-blend-mode: multiply; }
.entry-content #home-service :is(h3, p) { margin: 0; text-align: left !important; }
.entry-content #home-service h3 { font-size: var(--heading-2-size); line-height: var(--heading-2-line); font-weight: 600; }
.entry-content #home-service p { color: var(--text); }
.entry-content #home-service p:empty, .entry-content #home-service p:has(> br:only-child) { display: none; }
.entry-content #home-service p:has(> .lx-more, > strong > .lx-more) { margin-top: auto; }
/* The text link opens the card; the whole card is its target */
.entry-content #home-service .lx-more::before { content: ""; position: absolute; inset: 0; border-radius: var(--radius-lg); }
.entry-content #home-service .lx-more:focus-visible { box-shadow: none; }
.entry-content #home-service > .wpb_column > .vc_column-inner > .wpb_wrapper:hover .lx-more::after { width: 30px; }

/* The divider under the band is redundant with the band edge */
.entry-content #home-service + .vc_row:has(.vc_separator):not(:has(.wpb_text_column, .wpb_single_image)) { display: none; }
.entry-content #home-service + .vc_row + .vc_row:has(> .wpb_column > .vc_column-inner > .wpb_wrapper > .wpb_single_image:only-child),
.entry-content #home-service + .vc_row:has(> .wpb_column > .vc_column-inner > .wpb_wrapper > .wpb_single_image:only-child) { margin-top: var(--section-space); }

/* Statement band: deep green, charcoal text, bar motif in charcoal */
.entry-content #home-about { --band: var(--lumix-green-deep); margin-block: var(--section-space) 0; padding-block: var(--space-18); color: var(--on-brand); }
.entry-content #home-about :is(.vc_row, .wpb_content_element) { margin-bottom: 0; }
.entry-content #home-about .wpb_text_column > .wpb_wrapper::before { content: ""; display: block; width: 26px; height: 3px; margin-bottom: var(--space-6); border-radius: var(--radius-full); background: var(--on-brand); }
.entry-content #home-about :is(p, h2, h3, h4) {
	max-width: 52rem;
	margin: 0;
	color: var(--on-brand);
	font-family: var(--font-display);
	font-size: var(--heading-1-size);
	line-height: 38px;
	font-weight: 600;
	letter-spacing: -0.01em;
	text-align: left !important;
}
.entry-content #home-about :is(p, h2, h3, h4) strong { font-weight: inherit; }
@media (max-width: 47.99em) {
	.entry-content #home-about { padding-block: var(--space-12); }
	.entry-content #home-about :is(p, h2, h3, h4) { font-size: var(--heading-2-size); line-height: var(--heading-2-line); }
}
.entry-content #home-about a { color: var(--on-brand); text-decoration-color: var(--on-brand); }

.entry-content #home-brand-top { margin-top: var(--section-space); }

/* ==========================================================================
   Services page: tiles on a grey band
   ========================================================================== */
.entry-content #service-items { --band: var(--surface-alt); padding-block: var(--section-space); }
.entry-content #service-items .vc_inner > .wpb_column > .vc_column-inner > .wpb_wrapper:not(:empty) {
	height: 100%;
	padding: var(--space-8);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	background: var(--surface);
}
.entry-content #service-items .wpb_single_image img { max-height: 112px; width: auto; margin-inline: auto; border-radius: 0; mix-blend-mode: multiply; }

/* ==========================================================================
   About page: people on a grey band
   ========================================================================== */
.entry-content #about { --band: var(--surface-alt); padding-block: var(--section-space); }
.entry-content .icon-linkedin { display: inline-flex; align-items: center; gap: var(--space-2); font-weight: 700; }

/* ==========================================================================
   Contact page: details with icons in green discs, form in a grey panel
   ========================================================================== */
.entry-content #contact-top h4 { font-size: var(--heading-2-size); line-height: var(--heading-2-line); }
.entry-content #contact-top :is(p.icon-phone, p.icon-email, p.icon-address) { position: relative; min-height: 36px; padding-left: 48px; padding-top: 6px; }
.entry-content #contact-top :is(p.icon-phone, p.icon-email, p.icon-address)::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 36px;
	height: 36px;
	border-radius: var(--radius-full);
	background: var(--lx-icon) center / 16px no-repeat, var(--lumix-green);
}
/* "Address:" and the address are two paragraphs: one icon for the pair */
.entry-content #contact-top p.icon-address + p.icon-address { min-height: 0; margin-top: calc(-1 * var(--space-4)); padding-top: 0; }
.entry-content #contact-top p.icon-address + p.icon-address::before { display: none; }
.entry-content #contact-top p.icon-phone { --lx-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23231f20' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.entry-content #contact-top p.icon-email { --lx-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23231f20' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); }
.entry-content #contact-top p.icon-address { --lx-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23231f20' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.entry-content #contact-top > .wpb_column:last-child > .vc_column-inner > .wpb_wrapper {
	padding: var(--space-8);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	background: var(--surface-alt);
}
.entry-content iframe[src*="google.com/maps"] { width: 100%; min-height: 22rem; border-radius: var(--radius-lg); }
