/* E-Plopper design system — dark industrial. v0.2
   All widget markup consumes these tokens; there are no per-page one-offs.
   Homepage-only flourishes are scoped under `body.home` so other pages are untouched. */
:root {
	--ep-bg:          #06070B; /* page background — exact from mockup (rgb 6,7,11) */
	--ep-bg-2:        #0A0C12; /* faint alternate band */
	--ep-panel:       #10141C; /* card / panel background */
	--ep-panel-2:     #171C26; /* elevated rows (table stripes) */
	--ep-panel-3:     #1B2230; /* hover elevation */
	--ep-border:      #232A35; /* hairline dividers */
	--ep-border-2:    #2E3745; /* stronger hairline */
	--ep-accent:      #0A6BFF; /* electric blue: buttons, ✓, active, hotspots */
	--ep-accent-2:    #3D8BFF; /* lighter blue for gradients */
	--ep-accent-600:  #0857cc; /* accent hover */
	--ep-heading:     #FFFFFF; /* bold uppercase headings */
	--ep-text:        #A7AEB8; /* light-grey body on dark */
	--ep-text-dim:    #6B7280; /* secondary text */
	--ep-danger:      #E5484D; /* comparison ✕ */
	--ep-radius:      14px;
	--ep-radius-sm:   9px;
	--ep-gap:         24px;
	--ep-shadow:      0 18px 50px -20px rgba(0,0,0,.65);
	--ep-glow:        0 10px 40px -8px rgba(10,107,255,.55);
	--ep-font-body:   'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
	--ep-font-head:   'Barlow Condensed', 'Inter', system-ui, sans-serif;
	--ep-maxw:        1200px;
}

/* ---- global body ---- */
body {
	background-color: var(--ep-bg);
	font-family: var(--ep-font-body);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* Blue radial ambience on every page so dark/empty pages don't read as flat black (v5 point 8).
   Forced with html-scope + !important so it beats the theme / Elementor kit's flat body background.
   NOTE: an Elementor Section with its OWN solid background still covers this — set that section's
   background to transparent for the glow to show through there. */
html body {
	background-color: var(--ep-bg) !important;
	background-image:
		radial-gradient(1300px 780px at 80% -6%, rgba(10,107,255,.32), transparent 64%),
		radial-gradient(1100px 680px at 2% 26%, rgba(10,107,255,.22), transparent 60%),
		radial-gradient(1250px 880px at 50% 114%, rgba(10,107,255,.20), transparent 64%) !important;
	background-attachment: fixed !important;
	background-repeat: no-repeat !important;
}

/* ---- header ([eplopper_header] shortcode) ---- */
.ep-header { background: rgba(6,7,11,.82); backdrop-filter: saturate(140%) blur(10px); border-bottom: 1px solid var(--ep-border); width: 100%; z-index: 999; }
.ep-header--sticky { position: sticky; top: 0; }
/* Wider than the 1200px content column so the translated (FR/DE) menu + 3rd-language
   flag + CTA fit on one row; the bar background is already full-width. */
.ep-header__inner { max-width: 1360px; margin: 0 auto; display: flex; align-items: center; gap: 16px; padding: 14px 24px; }
.ep-header__logo { display: inline-flex; align-items: center; text-decoration: none; }
.ep-header__quick { display: none; } /* desktop: hidden — shown only on mobile (see media query) */
.ep-header__logo img { max-height: 40px; width: auto; display: block; }
.ep-header__wordmark { color: var(--ep-heading); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: 1.3rem; }
.ep-header__nav { margin-left: auto; min-width: 0; }
.ep-header__menu { list-style: none; display: flex; align-items: center; gap: 18px; margin: 0; padding: 0; }
.ep-header__menu li { position: relative; }
.ep-header__menu a { color: var(--ep-text); text-decoration: none; font-weight: 500; font-size: .95rem; transition: color .15s; }
.ep-header__menu > li > a { color: #E8EBEF; white-space: nowrap; }
.ep-header__menu a:hover, .ep-header__menu .current-menu-item > a { color: var(--ep-accent); }
.ep-header__menu .sub-menu { list-style: none; margin: 0; position: absolute; top: 100%; left: 0; min-width: 210px; background: var(--ep-panel); border: 1px solid var(--ep-border); border-radius: 8px; padding: 8px 0; display: none; box-shadow: var(--ep-shadow); }
.ep-header__menu .sub-menu li { margin: 0; list-style: none; }
.ep-header__menu li:hover > .sub-menu { display: block; }
.ep-header__menu .sub-menu a { display: block; padding: 8px 16px; }
.ep-header__cta { margin-left: 4px; white-space: nowrap; flex: 0 0 auto; }
/* WPML language switcher (flags) */
/* Language dropdown (current language on the button, others drop down vertically) */
.ep-langdd { position: relative; flex: 0 0 auto; }
.ep-langdd__btn { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border-radius: 8px; background: rgba(255,255,255,.05); border: 1px solid var(--ep-border, #232A35); color: #E8EBEF; font: inherit; font-size: .78rem; font-weight: 600; cursor: pointer; transition: background .15s, border-color .15s; }
.ep-langdd__btn:hover { background: rgba(255,255,255,.09); border-color: var(--ep-border-2, #2E3745); }
.ep-langdd__btn img { display: block; width: 24px; height: 16px; object-fit: cover; border-radius: 2px; }
.ep-langdd__caret { transition: transform .18s ease; opacity: .8; }
.ep-langdd.is-open .ep-langdd__caret { transform: rotate(180deg); }
.ep-langdd__menu { position: absolute; top: calc(100% + 8px); right: 0; min-width: 0; margin: 0; padding: 6px; list-style: none; background: #10141C; border: 1px solid var(--ep-border-2, #2E3745); border-radius: 10px; box-shadow: 0 18px 40px -12px rgba(0,0,0,.7); opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .16s ease, transform .16s ease, visibility .16s; z-index: 1000; }
.ep-langdd.is-open .ep-langdd__menu { opacity: 1; visibility: visible; transform: translateY(0); }
.ep-langdd__item { display: flex; align-items: center; justify-content: center; padding: 8px 10px; border-radius: 7px; color: #E8EBEF; text-decoration: none; transition: background .15s; }
.ep-langdd__item img { display: block; width: 24px; height: 16px; object-fit: cover; border-radius: 2px; }
.ep-langdd__item:hover { background: rgba(255,255,255,.07); }
.ep-langdd__item.is-active { background: rgba(10,107,255,.16); }
.ep-langdd__item.is-active span { color: var(--ep-accent-2, #3D8BFF); }
@media (max-width: 1360px) { .ep-langdd { order: 1; margin-left: auto; } }
.ep-header__toggle { display: none; background: none; border: 0; cursor: pointer; margin-left: auto; padding: 6px; }
.ep-header__toggle span { display: block; width: 24px; height: 2px; background: #fff; margin: 5px 0; transition: .2s; }

@media (max-width: 1360px) {
	/* Row 1: logo (left) + flag (right).  Row 2: ORDER NOW + hamburger, centered.
	   Collapses to the hamburger at ≤1360px because the translated menu labels
	   (FR/DE) + a 3rd language flag overflow the horizontal row otherwise. */
	.ep-header__inner { flex-wrap: wrap; justify-content: center; gap: 8px 12px; padding: 10px 14px; }
	.ep-header .ep-header__logo img { max-height: 22px !important; width: auto !important; }
	.ep-header__quick { display: none; } /* "Products" quick link removed per feedback */
	.ep-header__logo { order: 1; }
	.ep-langdd { order: 2; margin-left: auto; } /* flag pushed to the right end of row 1 */
	.ep-header__cta { order: 3; margin-left: 0; padding: 9px 20px; font-size: .78rem; box-shadow: 0 4px 12px -8px rgba(10,107,255,.55) !important; }
	.ep-header__toggle { display: block; order: 4; margin-left: 0; padding: 6px 6px; }
	.ep-header__toggle span { width: 22px; }
	.ep-header__nav { order: 5; flex-basis: 100%; width: 100%; margin: 0; max-height: 0; overflow: hidden; transition: max-height .28s ease; }
	.ep-header.is-open .ep-header__nav { max-height: 78vh; overflow-y: auto; margin-top: 10px; background: var(--ep-panel); border: 1px solid var(--ep-border); border-radius: 10px; }
	.ep-header__menu { flex-direction: column; align-items: stretch; gap: 0; padding: 6px; width: 100%; }
	.ep-header__menu > li { width: 100%; border-bottom: 1px solid var(--ep-border); }
	.ep-header__menu > li:last-child { border-bottom: 0; }
	.ep-header__menu a { display: block; padding: 13px 12px; font-size: 1rem; }
	.ep-header__menu > li > a { color: #E8EBEF; }
	.ep-header__menu .sub-menu { position: static; display: block; border: 0; background: transparent; box-shadow: none; min-width: 0; padding: 0 0 6px 14px; }
	.ep-header__menu .sub-menu a { padding: 9px 12px; font-size: .92rem; }
	/* hamburger → X when open */
	.ep-header.is-open .ep-header__toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.ep-header.is-open .ep-header__toggle span:nth-child(2) { opacity: 0; }
	.ep-header.is-open .ep-header__toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}
@media (max-width: 420px) {
	/* Keep the "Order now" button visible on small phones — just tighter. */
	.ep-header__cta { display: inline-flex !important; padding: 8px 16px; font-size: .74rem; letter-spacing: .02em; }
}

/* ---- shared primitives ---- */
.ep-heading {
	color: var(--ep-heading);
	font-family: var(--ep-font-head);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .01em;
	line-height: 1.02;
	margin: 0 0 .5em;
}
.ep-heading .ep-accent { color: var(--ep-accent); }
.ep-panel {
	background: linear-gradient(180deg, var(--ep-panel) 0%, #0D111A 100%);
	border: 1px solid var(--ep-border);
	border-radius: var(--ep-radius);
}

/* Eyebrow pill — small uppercase label above headings */
.ep-eyebrow {
	display: inline-flex; align-items: center; gap: 8px;
	font-family: var(--ep-font-body);
	font-weight: 600; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase;
	color: var(--ep-accent-2);
	background: rgba(10,107,255,.10);
	border: 1px solid rgba(10,107,255,.30);
	padding: 7px 14px; border-radius: 999px;
}
.ep-eyebrow::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--ep-accent); box-shadow: 0 0 0 4px rgba(10,107,255,.25); }

/* Section title block (used by widgets + home-scoped native headings) */
.ep-section-title { text-align: center; font-size: clamp(1.7rem, 3.2vw, 2.5rem); margin: 0 0 34px; }

/* ---- primary / ghost buttons ---- */
.ep-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 9px;
	background: linear-gradient(180deg, var(--ep-accent-2) 0%, var(--ep-accent) 55%, var(--ep-accent-600) 100%);
	color: #fff; font-family: var(--ep-font-body);
	font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: .86rem;
	padding: 13px 24px; border-radius: 8px; text-decoration: none; border: 0; cursor: pointer;
	box-shadow: 0 8px 22px -10px rgba(10,107,255,.7);
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.ep-btn:hover { color: #fff; transform: translateY(-2px); box-shadow: var(--ep-glow); }
.ep-btn--ghost { background: rgba(255,255,255,.04); border: 1px solid var(--ep-border-2); box-shadow: none; color: #E8EBEF; }
.ep-btn--ghost:hover { background: rgba(255,255,255,.09); box-shadow: none; }
.ep-btn--block { width: 100%; }

/* ================= VIDEO HERO ================= */
.ep-hero { position: relative; min-height: 86vh; display: grid; align-items: center; overflow: hidden; background-size: cover; background-position: center; background-color: var(--ep-bg); border-radius: 0; }
.ep-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.ep-hero__overlay {
	position: absolute; inset: 0; z-index: 1;
	background:
		linear-gradient(90deg, rgba(6,7,11,.95) 0%, rgba(6,7,11,.78) 42%, rgba(6,7,11,.30) 78%, rgba(6,7,11,.15) 100%),
		linear-gradient(0deg, var(--ep-bg) 2%, rgba(6,7,11,0) 34%);
}
.ep-hero__inner { position: relative; z-index: 2; width: 100%; max-width: var(--ep-maxw); margin: 0 auto; padding: 0 clamp(24px, 6vw, 64px); }
.ep-hero__eyebrow { margin-bottom: 22px; }
.ep-hero__title { font-size: clamp(2.6rem, 6.4vw, 5rem); max-width: 15ch; letter-spacing: -.005em; }
.ep-hero__usps { list-style: none; margin: 26px 0 34px; padding: 0; color: #C9CFD8; display: grid; gap: 12px; max-width: 460px; }
.ep-hero__usps li { display: flex; align-items: center; gap: 12px; font-size: 1.06rem; }
.ep-hero__usps li .ep-accent { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: rgba(10,107,255,.16); color: var(--ep-accent-2); font-size: .8rem; flex: none; }
.ep-hero__cta { display: flex; flex-wrap: wrap; gap: 14px; }
.ep-hero__cta .ep-btn { padding: 15px 30px; font-size: .92rem; }

/* ================= STATS BAR ================= */
.ep-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; padding: 6px; position: relative; box-shadow: var(--ep-shadow); }
.ep-stats::before { content: ""; position: absolute; left: 24px; right: 24px; top: 0; height: 2px; border-radius: 2px; background: linear-gradient(90deg, transparent, var(--ep-accent), transparent); opacity: .8; }
.ep-stats__item { text-align: center; padding: 30px 16px; position: relative; }
.ep-stats__item + .ep-stats__item::before { content: ""; position: absolute; left: 0; top: 24%; bottom: 24%; width: 1px; background: var(--ep-border); }
.ep-stats__value { font-family: var(--ep-font-head); font-size: clamp(2rem, 4vw, 2.9rem); font-weight: 700; line-height: 1;
	background: linear-gradient(180deg, var(--ep-accent-2), var(--ep-accent)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.ep-stats__label { color: var(--ep-text); margin-top: 10px; font-size: .92rem; letter-spacing: .01em; }

/* ================= USP CARDS ================= */
.ep-usps { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--ep-gap); }
.ep-usp { padding: 30px 24px; position: relative; overflow: hidden; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.ep-usp::after { content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 100%; background: linear-gradient(90deg, var(--ep-accent), var(--ep-accent-2)); transform: scaleX(0); transform-origin: left; transition: transform .25s ease; }
.ep-usp:hover { transform: translateY(-4px); border-color: var(--ep-border-2); box-shadow: var(--ep-shadow); }
.ep-usp:hover::after { transform: scaleX(1); }
.ep-usp__icon { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 12px; margin-bottom: 18px;
	background: rgba(10,107,255,.12); border: 1px solid rgba(10,107,255,.22); }
.ep-usp__icon i { font-size: 1.5rem; color: var(--ep-accent-2); }
.ep-usp__icon svg { width: 1.5rem; height: 1.5rem; fill: var(--ep-accent-2); }
.ep-usp__title { color: var(--ep-heading); font-family: var(--ep-font-head); font-weight: 600; text-transform: uppercase; letter-spacing: .02em; font-size: 1.15rem; margin: 0 0 6px; }
.ep-usp__text { color: var(--ep-text); font-size: .92rem; margin: 0; line-height: 1.5; }

/* ================= SPEC TABLE ================= */
.ep-spec { width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; border-radius: var(--ep-radius); border: 1px solid var(--ep-border); }
.ep-spec caption { text-align: left; color: var(--ep-heading); font-family: var(--ep-font-head); font-weight: 700; text-transform: uppercase; padding: 0 0 16px; }
.ep-spec th, .ep-spec td { text-align: left; padding: 15px 18px; border-bottom: 1px solid var(--ep-border); }
.ep-spec tr:last-child td { border-bottom: 0; }
.ep-spec tr:nth-child(odd) td { background: var(--ep-panel); }
.ep-spec tr:nth-child(even) td { background: var(--ep-panel-2); }
.ep-spec .ep-spec__key { color: var(--ep-text-dim); width: 40%; vertical-align: top; }
.ep-spec .ep-spec__val { color: var(--ep-heading); font-weight: 600; }
.ep-spec .ep-spec__section td { background: rgba(10,107,255,.14); color: var(--ep-heading); font-family: var(--ep-font-head, inherit); font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: .82rem; }
/* Caption as a heading above the table (never clipped) + collapse / See more */
.ep-spec-wrap { max-width: 100%; }
.ep-spec__cap { font-family: var(--ep-font-head, inherit); color: var(--ep-heading); font-weight: 700; text-transform: uppercase; letter-spacing: .02em; font-size: 1.25rem; line-height: 1.2; margin: 0 0 16px; padding-left: 2px; }
.ep-spec__scroll { position: relative; }
.ep-spec-wrap.is-collapsible.is-collapsed .ep-spec__scroll { max-height: var(--epspec-h, 380px); overflow: hidden; }
.ep-spec__fade { display: none; }
.ep-spec-wrap.is-collapsible.is-collapsed .ep-spec__fade { display: block; position: absolute; left: 0; right: 0; bottom: 0; height: 96px; background: linear-gradient(to bottom, rgba(6,7,11,0), var(--ep-bg)); pointer-events: none; }
.ep-spec__toggle { margin-top: 16px; background: transparent; border: 1px solid var(--ep-border-2, #2E3745); color: var(--ep-heading); border-radius: 8px; padding: 11px 22px; cursor: pointer; font: inherit; font-weight: 600; transition: border-color .15s, color .15s; }
.ep-spec__toggle:hover { border-color: var(--ep-accent); color: var(--ep-accent-2, #3D8BFF); }

/* ================= COMPARISON TABLE ================= */
.ep-cmp-wrap { max-width: 760px; margin: 0 auto; overflow-x: auto; -webkit-overflow-scrolling: touch; border-radius: var(--ep-radius); }
.ep-cmp { max-width: 100%; margin: 0; table-layout: fixed; }
.ep-cmp thead th { color: var(--ep-heading); font-family: var(--ep-font-head); text-transform: uppercase; letter-spacing: .03em; font-size: 1rem; font-weight: 600; padding: 18px; background: var(--ep-panel-2); text-align: center; }
.ep-cmp thead th:first-child { text-align: left; }
.ep-cmp tbody td { text-align: center; font-size: 1.02rem; }
.ep-cmp tbody td.ep-spec__key { text-align: left; color: #C9CFD8; width: 46%; }
/* highlight the E-Plopper column */
.ep-cmp thead th:last-child { color: #fff; background: rgba(10,107,255,.16); box-shadow: inset 0 2px 0 var(--ep-accent); }
.ep-cmp tbody td:last-child { background: rgba(10,107,255,.06) !important; }
.ep-cmp__yes, .ep-cmp__no { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; font-size: .85rem; font-weight: 800; }
.ep-cmp__yes { color: #fff; background: var(--ep-accent); box-shadow: 0 6px 16px -6px rgba(10,107,255,.8); }
.ep-cmp__no  { color: var(--ep-danger); background: rgba(229,72,77,.12); border: 1px solid rgba(229,72,77,.35); }
@media (max-width: 600px) {
	.ep-cmp { min-width: 460px; }
	.ep-cmp thead th { padding: 14px 10px; font-size: .82rem; }
	.ep-cmp tbody td { font-size: .92rem; }
	.ep-cmp th, .ep-cmp td { padding-left: 12px; padding-right: 12px; }
	.ep-cmp tbody td.ep-spec__key { width: 44%; }
}

/* ================= MODEL CARDS ================= */
.ep-models { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--ep-gap); align-items: stretch; }
.ep-model { padding: 22px; text-align: center; display: flex; flex-direction: column; position: relative; overflow: hidden; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.ep-model:hover { transform: translateY(-5px); border-color: var(--ep-border-2); box-shadow: var(--ep-shadow); }
.ep-model__frame { width: 100%; aspect-ratio: 4/3; background: #fff; border-radius: 12px; margin-bottom: 20px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.ep-model__frame--empty { background: linear-gradient(135deg, #141922, #0E121A); border: 1px dashed var(--ep-border-2); }
.ep-model__frame--empty::after { content: "E-PLOPPER"; font-family: var(--ep-font-head); font-weight: 700; letter-spacing: .12em; color: #2C3543; font-size: 1.2rem; }
.ep-model__img { width: 100%; height: 100%; object-fit: contain; padding: 16px; }
.ep-model__name { color: var(--ep-heading); font-family: var(--ep-font-head); text-transform: uppercase; font-weight: 700; font-size: 1.35rem; margin: 0 0 8px; letter-spacing: .01em; }
.ep-model__desc { color: var(--ep-text); font-size: .92rem; flex: 1; line-height: 1.5; }
.ep-model__price { color: var(--ep-heading); font-family: var(--ep-font-head); font-size: 2rem; font-weight: 700; margin: 16px 0 18px; }
.ep-model__price small { display: block; color: var(--ep-text-dim); font-family: var(--ep-font-body); font-weight: 500; font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 2px; }
.ep-model .ep-btn { margin-top: auto; }
/* gentle emphasis on the middle model as the popular pick (pure CSS, no data needed) */
.home .ep-models .ep-model:nth-child(2) { border-color: rgba(10,107,255,.5); box-shadow: 0 0 0 1px rgba(10,107,255,.35), var(--ep-shadow); }
.home .ep-models .ep-model:nth-child(2)::before { content: "Most popular"; position: absolute; top: 14px; right: -34px; transform: rotate(45deg); background: var(--ep-accent); color: #fff; font-family: var(--ep-font-body); font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 5px 40px; box-shadow: 0 4px 12px -4px rgba(0,0,0,.6); }

/* ================= VIDEO GALLERY ================= */
.ep-vg__filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.ep-vg__f { background: var(--ep-panel); color: var(--ep-text); border: 1px solid var(--ep-border);
	border-radius: 20px; padding: 8px 16px; cursor: pointer; text-transform: uppercase; font-size: .8rem; transition: .15s; }
.ep-vg__f:hover { color: #fff; border-color: var(--ep-border-2); }
.ep-vg__f.is-active { background: var(--ep-accent); color: #fff; border-color: var(--ep-accent); }
.ep-vg__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--ep-gap); }
.ep-vg__card { overflow: hidden; text-decoration: none; border-radius: var(--ep-radius); border: 1px solid var(--ep-border); background: var(--ep-panel); transition: transform .2s ease, border-color .2s ease; }
.ep-vg__card:hover { transform: translateY(-4px); border-color: var(--ep-border-2); }
.ep-vg__thumb { position: relative; display: block; aspect-ratio: 16/9; background: #000; overflow: hidden; }
.ep-vg__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ep-vg__play { position: absolute; inset: 0; margin: auto; width: 54px; height: 54px; line-height: 54px;
	text-align: center; color: #fff; background: rgba(10,107,255,.9); border-radius: 50%; box-shadow: var(--ep-glow); }
.ep-vg__dur { position: absolute; right: 8px; bottom: 8px; background: rgba(0,0,0,.75); color: #fff;
	font-size: .75rem; padding: 2px 6px; border-radius: 4px; }
.ep-vg__title { display: block; color: var(--ep-heading); font-weight: 600; padding: 14px; }
.ep-vg__card { cursor: pointer; }

/* video lightbox */
.ep-vg__modal { position: fixed; inset: 0; z-index: 100000; display: none; align-items: center; justify-content: center; padding: 24px; }
.ep-vg__modal.is-open { display: flex; }
.ep-vg__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.88); backdrop-filter: blur(4px); }
.ep-vg__player { position: relative; z-index: 1; width: min(1000px, 92vw); }
.ep-vg__player video { width: 100%; max-height: 82vh; border-radius: 12px; display: block; background: #000; box-shadow: var(--ep-shadow); }
.ep-vg__stage { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: #000; box-shadow: var(--ep-shadow); }
.ep-vg__stage iframe, .ep-vg__stage video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ep-vg__close { position: absolute; top: -46px; right: 0; background: none; border: 0; color: #fff; font-size: 2.4rem; line-height: 1; cursor: pointer; }

/* ================= HOTSPOT IMAGE ================= */
.ep-hotspot { position: relative; display: inline-block; max-width: 100%; }
.ep-hotspot__img { display: block; max-width: 100%; height: auto; border-radius: var(--ep-radius); }
.ep-hotspot__pt { position: absolute; transform: translate(-50%, -50%); background: none; border: 0; cursor: pointer; }
.ep-hotspot__dot { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%;
	background: var(--ep-accent); color: #fff; font-weight: 800; box-shadow: 0 0 0 6px rgba(10,107,255,.25); }
.ep-hotspot__tip { position: absolute; left: 50%; bottom: 130%; transform: translateX(-50%);
	white-space: nowrap; background: var(--ep-heading); color: #0A0D12; font-size: .8rem; font-weight: 700;
	padding: 6px 10px; border-radius: 6px; opacity: 0; pointer-events: none; transition: opacity .15s; }
.ep-hotspot__pt:hover .ep-hotspot__tip, .ep-hotspot__pt:focus .ep-hotspot__tip { opacity: 1; }

/* ================= APPLICATIONS STRIP ================= */
.ep-apps { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--ep-gap); }
.ep-app { position: relative; display: block; overflow: hidden; text-decoration: none; border-radius: var(--ep-radius); border: 1px solid var(--ep-border); background: var(--ep-panel); }
.ep-app__thumb { display: block; aspect-ratio: 4/3; background: #0B0E14; overflow: hidden; }
.ep-app__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.ep-app:hover .ep-app__thumb img { transform: scale(1.06); }
.ep-app::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(6,7,11,.9) 0%, rgba(6,7,11,.15) 45%, transparent 70%); pointer-events: none; }
.ep-app__label { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--ep-heading); font-family: var(--ep-font-head); font-weight: 600; padding: 16px; text-transform: uppercase; letter-spacing: .02em; font-size: 1.02rem; }
.ep-app__label::after { content: "→"; color: var(--ep-accent-2); font-size: 1.1rem; opacity: 0; transform: translateX(-6px); transition: .2s ease; }
.ep-app:hover .ep-app__label::after { opacity: 1; transform: translateX(0); }

/* ================= DEMO CTA ================= */
.ep-democta { display: grid; grid-template-columns: 1.05fr .95fr; gap: 0; overflow: hidden; align-items: stretch; }
.ep-democta__body { padding: clamp(32px, 4vw, 52px); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; position: relative; }
.ep-democta__body::before { content: ""; position: absolute; inset: 0; background: radial-gradient(460px 340px at 10% 18%, rgba(10,107,255,.16), transparent 70%); pointer-events: none; }
.ep-democta__body > * { position: relative; }
.ep-democta__body .ep-heading { font-size: clamp(1.7rem, 3.2vw, 2.4rem); }
.ep-democta__text { color: var(--ep-text); margin: 0 0 26px; font-size: 1.02rem; line-height: 1.6; max-width: 40ch; }
/* Media is capped so the photo stays balanced, never dominates the section. */
.ep-democta__media { position: relative; display: block; min-height: 300px; max-height: 420px; height: 100%; background: #05060A; }
.ep-democta__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ep-democta__media .ep-vg__play { width: 66px; height: 66px; line-height: 66px; box-shadow: var(--ep-glow); }
@media (max-width: 1024px) { .ep-democta__media { max-height: 320px; } }

/* ================= SOCIAL (branded / colored buttons — contact page + footer) ================= */
.eph-social a.eph-social__ln { color: #fff !important; border: 0 !important; overflow: hidden; position: relative; transition: transform .15s ease, filter .15s ease; }
.eph-social a.eph-social__facebook  { background: #1877F2 !important; }
.eph-social a.eph-social__instagram { background: #C13584 !important; background-image: linear-gradient(45deg, #FEDA75 0%, #FA7E1E 22%, #F15A5A 42%, #D62976 58%, #962FBF 78%, #4F5BD5 100%) !important; }
.eph-social a.eph-social__youtube   { background: #FF0000 !important; }
.eph-social a.eph-social__linkedin  { background: #0A66C2 !important; }
.eph-social a.eph-social__ln:hover  { filter: brightness(1.12); transform: translateY(-2px); }
.eph-social a.eph-social__ln svg    { color: #fff !important; fill: currentColor; position: relative; z-index: 1; }

/* Contact Form 7 confirmation/validation messages — readable on the dark theme (v5 point 6). */
.wpcf7-response-output { color: #E8EBEF !important; border: 1px solid var(--ep-border) !important; border-radius: 10px; padding: 13px 16px !important; margin: 18px 0 0 !important; font-size: .95rem; }
.wpcf7 form.sent .wpcf7-response-output { background: rgba(10,107,255,.14); border-color: var(--ep-accent) !important; color: #fff !important; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output { background: rgba(229,72,77,.14); border-color: rgba(229,72,77,.5) !important; color: #ffd7d8 !important; }
.wpcf7-not-valid-tip { color: #ff9ea1 !important; }

/* ================= TRUST BAR ================= */
.ep-trust { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; padding: 8px 0; overflow: hidden; }
.ep-trust__item { display: flex; gap: 14px; align-items: center; justify-content: center; padding: 22px 20px; position: relative; }
.ep-trust__item + .ep-trust__item::before { content: ""; position: absolute; left: 0; top: 22%; bottom: 22%; width: 1px; background: var(--ep-border); }
.ep-trust__icon { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 11px; flex: none; background: rgba(10,107,255,.12); border: 1px solid rgba(10,107,255,.22); }
.ep-trust__icon i { font-size: 1.3rem; color: var(--ep-accent-2); }
.ep-trust__icon svg { width: 1.3rem; height: 1.3rem; fill: var(--ep-accent-2); }
.ep-trust__txt { display: flex; flex-direction: column; }
.ep-trust__txt strong { color: var(--ep-heading); font-family: var(--ep-font-head); text-transform: uppercase; letter-spacing: .02em; font-size: 1rem; }
.ep-trust__txt span { color: var(--ep-text); font-size: .84rem; }

/* ================= PRODUCT HERO (product page) ================= */
.ep-phero__crumb { color: var(--ep-text-dim); font-size: .85rem; margin-bottom: 24px; }
.ep-phero__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.ep-phero__title { font-size: clamp(2rem, 4vw, 3rem); }
.ep-phero__sub { color: var(--ep-heading); font-weight: 600; font-size: 1.15rem; margin: 0 0 16px; }
.ep-phero__desc { color: var(--ep-text); margin: 0 0 22px; line-height: 1.6; }
.ep-phero__usps { list-style: none; margin: 0 0 26px; padding: 0; }
.ep-phero__usps li { color: var(--ep-text); margin: 10px 0; }
.ep-phero__media { text-align: center; }
.ep-phero__img { max-width: 100%; height: auto; }
.ep-phero__thumbs { display: flex; gap: 12px; margin-top: 16px; flex-wrap: wrap; }
.ep-phero__thumbs img { width: 76px; height: 76px; object-fit: cover; border: 1px solid var(--ep-border); border-radius: 8px; cursor: pointer; }

/* ================= ORDER CONFIGURATOR (Bestellen) ================= */
.ep-oc__title { text-align: center; font-size: 2.2rem; }
.ep-oc__sub { color: var(--ep-text); text-align: center; margin: -14px 0 34px; }
.ep-oc__models { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 34px; }
.ep-oc__model { padding: 24px 20px 20px; text-align: center; position: relative; display: flex; flex-direction: column; align-items: center; transition: border-color .15s, box-shadow .15s; }
.ep-oc__model.is-selected { border-color: var(--ep-accent); box-shadow: 0 0 0 1px var(--ep-accent); }
.ep-oc__model--pop { border-color: var(--ep-accent); box-shadow: 0 0 0 1px rgba(10,107,255,.5); }
.ep-oc__popbadge { position: absolute; top: 12px; right: 12px; z-index: 2; background: var(--ep-accent); color: #fff; font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: 4px 10px; border-radius: 20px; }
/* "Popular" tag on a Step 2/3 option/support row. */
.ep-oc__opt--pop { border-color: rgba(10,107,255,.5); box-shadow: 0 0 0 1px rgba(10,107,255,.35); }
.ep-oc__poptag { display: inline-block; vertical-align: middle; margin-left: 8px; background: var(--ep-accent); color: #fff; font-family: 'Inter', system-ui, sans-serif; font-weight: 700; font-size: .6rem; text-transform: uppercase; letter-spacing: .05em; padding: 3px 8px; border-radius: 20px; }
.ep-oc__mname { color: var(--ep-heading); font-weight: 800; text-transform: uppercase; font-size: 1.05rem; }
.ep-oc__mdesc { color: var(--ep-text); font-size: .85rem; margin: 8px 0 14px; min-height: 34px; }
.ep-oc__mframe { width: 100%; aspect-ratio: 4/3; background: #fff; border-radius: 8px; margin-bottom: 16px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.ep-oc__mimg { width: 100%; height: 100%; object-fit: contain; padding: 12px; cursor: zoom-in; }
.ep-oc__mprice { color: var(--ep-heading); font-size: 1.5rem; font-weight: 800; margin-bottom: 16px; }
.ep-oc__mselect { width: 100%; background: transparent; border: 1px solid var(--ep-border); color: var(--ep-heading); }
.ep-oc__model.is-selected .ep-oc__mselect { background: var(--ep-accent); border-color: var(--ep-accent); color: #fff; }
.ep-oc__grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: var(--ep-gap); align-items: start; margin-bottom: 20px; }
.ep-oc__box { padding: 26px; }
.ep-oc__h3 { color: var(--ep-heading); text-transform: uppercase; font-size: 1rem; margin: 0 0 18px; }
.ep-oc__options { display: flex; flex-direction: column; gap: 10px; }
.ep-oc__opt { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: var(--ep-panel-2); border: 1px solid var(--ep-border); border-radius: 8px; }
.ep-oc__opt.is-selected { border-color: var(--ep-accent); box-shadow: 0 0 0 1px var(--ep-accent); }
.ep-oc__opt .ep-oc__olabel { flex: 1; }
/* quantity stepper (machines + accessories) */
.ep-oc__qty { display: inline-flex; align-items: center; border: 1px solid var(--ep-border); border-radius: 7px; overflow: hidden; }
.ep-oc__model .ep-oc__qty { margin-top: 8px; }
.ep-oc__opt .ep-oc__qty { flex: none; }
.ep-oc__qty .ep-oc__qtybtn { width: 28px; height: 28px; border: 0 !important; background: var(--ep-panel) !important; background-image: none !important; color: var(--ep-heading) !important; text-shadow: none !important; font-size: .95rem; line-height: 1; cursor: pointer; border-radius: 0 !important; -webkit-appearance: none; appearance: none; transition: background .15s; }
.ep-oc__qty .ep-oc__qtybtn:hover { background: var(--ep-accent) !important; color: #fff !important; }
/* width forced with !important + fixed flex-basis so a theme rule like input[type=number]{width:100%} can't stretch it full-width. */
.ep-oc__qtyinput, .ep-oc__supqtyinput { width: 46px !important; min-width: 46px; max-width: 46px; flex: 0 0 46px; height: 28px; text-align: center; border: 0; border-left: 1px solid var(--ep-border); border-right: 1px solid var(--ep-border); background: var(--ep-bg); color: var(--ep-heading); font: inherit; font-size: .9rem; -moz-appearance: textfield; appearance: textfield; }
.ep-oc__qty { flex: none !important; width: auto !important; max-width: 100%; }
.ep-oc__qtyinput::-webkit-outer-spin-button, .ep-oc__qtyinput::-webkit-inner-spin-button, .ep-oc__supqtyinput::-webkit-outer-spin-button, .ep-oc__supqtyinput::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.ep-oc__supitem .ep-oc__supqty { flex: none; }
.ep-oc__empty { color: var(--ep-text-dim); font-size: .88rem; margin: 6px 0 10px; }
.ep-oc__submit:disabled { opacity: .5; cursor: not-allowed; }
/* section titles + support section */
.ep-oc__sectitle { font-family: var(--ep-font-head, inherit); color: var(--ep-heading); font-weight: 700; text-transform: uppercase; letter-spacing: .02em; font-size: 1.15rem; margin: 4px 0 16px; }
.ep-oc__supportwrap { margin-bottom: 30px; }
/* Support items as cards — same look as the Step 1 machine cards. */
.ep-oc__support { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ep-oc__scard { }
.ep-oc__addon--card { justify-content: center; margin-top: 12px; }
.ep-oc__optincluded, .ep-oc__supincluded { color: var(--ep-accent-2, #3D8BFF); font-size: .9rem; margin: -6px 0 14px; }
.ep-oc__supitem { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: var(--ep-panel-2); border: 1px solid var(--ep-border); border-radius: 8px; cursor: pointer; }
.ep-oc__supitem.is-selected { border-color: var(--ep-accent); box-shadow: 0 0 0 1px var(--ep-accent); }
.ep-oc__supitem > input[type=radio] { width: 18px; height: 18px; accent-color: var(--ep-accent); flex: none; }
.ep-oc__supitem .ep-oc__olabel { flex: 1; display: flex; flex-direction: column; gap: 6px; }
.ep-oc__extra { display: inline-flex; align-items: center; gap: 8px; font-size: .85rem; color: var(--ep-text); cursor: pointer; }
.ep-oc__extra input { width: 16px; height: 16px; accent-color: var(--ep-accent); }
.ep-oc__supporthint { color: #ff9ea1; font-size: .85rem; margin: 10px 0 0; }
.ep-oc__shiprow .ep-oc__shipprice:empty::before { content: "—"; }
.ep-oc__othumb { width: 92px; height: 92px; flex: none; border-radius: 10px; overflow: hidden; background: #fff; display: grid; place-items: center; }
.ep-oc__othumb img { width: 100%; height: 100%; object-fit: contain; padding: 5px; cursor: zoom-in; transition: transform .15s ease; }
.ep-oc__othumb img:hover, .ep-oc__othumb img:focus-visible { transform: scale(1.06); outline: none; }
.ep-oc__othumb--empty { background: var(--ep-bg); border: 1px dashed var(--ep-border-2); }
.ep-oc__olabel { flex: 1; color: var(--ep-text); }
.ep-oc__oprice { color: var(--ep-text); font-weight: 600; white-space: nowrap; }
/* Step 2/3 item: name (large white) + description (small grey), like the Step 1 machine cards. */
.ep-oc__oinfo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ep-oc__oname { color: var(--ep-heading); font-weight: 700; font-size: 1.02rem; line-height: 1.25; }
.ep-oc__odesc { color: var(--ep-text-dim); font-size: .85rem; line-height: 1.4; }
/* Optional add-on toggle (e.g. Liftkar "Inverted + weight"). */
.ep-oc__addon { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; font-size: .85rem; color: var(--ep-text); cursor: pointer; }
.ep-oc__addon input { width: 16px; height: 16px; accent-color: var(--ep-accent); flex: none; }
.ep-oc__addonprice { color: var(--ep-text-dim); }
/* Greyed-out steps (XL already includes support). */
.ep-oc__supincluded { color: var(--ep-accent-2, #3D8BFF); font-size: .9rem; margin: -8px 0 14px; }
.ep-oc__supportwrap.is-disabled .ep-oc__support { opacity: .4; pointer-events: none; filter: grayscale(.5); }
.ep-oc__opt.is-disabled { opacity: .4; pointer-events: none; filter: grayscale(.5); }
/* Image zoom popup. */
.ep-oc__zoom { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 4vw; background: rgba(3,5,10,.86); backdrop-filter: blur(3px); }
.ep-oc__zoom[hidden] { display: none; }
.ep-oc__zoom img { max-width: 92vw; max-height: 88vh; border-radius: 12px; background: #fff; box-shadow: 0 30px 80px -20px rgba(0,0,0,.8); }
.ep-oc__zoomclose { position: absolute; top: 18px; right: 22px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.ep-oc__zoomclose:hover { background: rgba(255,255,255,.24); }
.ep-oc__summary { position: sticky; top: 20px; padding: 26px; }
.ep-oc__sumhead { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.ep-oc__sumimg { width: 70px; height: 70px; object-fit: contain; }
.ep-oc__sumname { color: var(--ep-heading); font-weight: 700; }
.ep-oc__lines { list-style: none; margin: 0 0 8px; padding: 0; }
.ep-oc__lines li { display: flex; justify-content: space-between; color: var(--ep-text); padding: 10px 0; border-bottom: 1px solid var(--ep-border); font-size: .9rem; }
.ep-oc__coupon { display: flex; gap: 8px; margin: 10px 0 4px; }
.ep-oc__couponinput { flex: 1; background: var(--ep-bg); border: 1px solid var(--ep-border); border-radius: 6px; padding: 10px 12px; color: var(--ep-heading); font: inherit; text-transform: uppercase; }
.ep-oc__couponinput:focus { outline: none; border-color: var(--ep-accent); }
.ep-oc__couponbtn { padding: 10px 16px; white-space: nowrap; }
.ep-oc__couponmsg { font-size: .82rem; margin: 2px 0 6px; }
.ep-oc__couponmsg--ok { color: #7bffb0; }
.ep-oc__couponmsg--err { color: #ff9ea1; }
.ep-oc__discline { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; color: #7bffb0; font-weight: 600; font-size: .9rem; border-bottom: 1px solid var(--ep-border); }
.ep-oc__accept { display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px; margin: 0 0 16px; background: rgba(229,168,72,.10); border: 1px solid rgba(229,168,72,.4); border-radius: 8px; color: var(--ep-text); font-size: .88rem; cursor: pointer; }
.ep-oc__accept input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--ep-accent); flex: none; }
.ep-oc__total { display: flex; justify-content: space-between; align-items: center; padding: 16px 0; margin-bottom: 16px; }
.ep-oc__total span { color: var(--ep-text); }
.ep-oc__amount { color: var(--ep-accent); font-size: 1.6rem; font-weight: 800; }
.ep-oc__go, .ep-oc__submit { display: block; text-align: center; }
.ep-oc__form { display: flex; flex-direction: column; gap: 14px; }
.ep-oc__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ep-oc__field { display: flex; flex-direction: column; gap: 6px; }
.ep-oc__field > span { color: var(--ep-text); font-size: .85rem; }
.ep-oc__field input, .ep-oc__field select, .ep-oc__field textarea { background: var(--ep-bg); border: 1px solid var(--ep-border); border-radius: 6px; padding: 11px 12px; color: var(--ep-heading); font: inherit; }
.ep-oc__field input:focus, .ep-oc__field select:focus, .ep-oc__field textarea:focus { outline: none; border-color: var(--ep-accent); }
.ep-oc__pay { display: flex; flex-direction: column; gap: 12px; margin-bottom: 16px; }
.ep-oc__paymethod { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: var(--ep-panel-2); border: 1px solid var(--ep-border); border-radius: 8px; cursor: pointer; color: var(--ep-text); }
.ep-oc__paymethod input { width: 18px; height: 18px; accent-color: var(--ep-accent); }
.ep-oc__paynote { color: var(--ep-text-dim); font-size: .85rem; margin: 0 0 16px; }
.ep-oc__notice { border-radius: 10px; padding: 14px 18px; margin: 0 0 24px; font-weight: 600; border: 1px solid; }
.ep-oc__notice--ok { color: #7bffb0; background: rgba(16,185,129,.12); border-color: rgba(16,185,129,.4); }
.ep-oc__notice--err { color: #ff9ea1; background: rgba(229,72,77,.12); border-color: rgba(229,72,77,.4); }
.ep-oc__submit { width: 100%; color: #fff !important; -webkit-appearance: none; appearance: none; }
.ep-oc__submit:hover, .ep-oc__submit:focus { color: #fff !important; }

/* ================= RESPONSIVE ================= */
@media (max-width: 1024px) {
	.ep-stats, .ep-usps, .ep-trust { grid-template-columns: repeat(2, 1fr); }
	.ep-models, .ep-vg__grid, .ep-apps { grid-template-columns: repeat(2, 1fr); }
	.ep-democta, .ep-phero__grid, .ep-oc__grid { grid-template-columns: 1fr; }
	/* Product page on tablet/phone: show the 360 viewer / image first, text below (v5 point 11). */
	.ep-phero__grid > .ep-phero__media { order: -1; }
	.ep-oc__models, .ep-oc__support { grid-template-columns: repeat(2, 1fr); }
	.ep-stats__item + .ep-stats__item::before { display: none; }
	.ep-trust__item:nth-child(odd)::before { display: none; }
	.home .ep-models .ep-model:nth-child(2)::before { display: none; }
}
@media (max-width: 600px) {
	.ep-stats, .ep-usps, .ep-models, .ep-vg__grid, .ep-apps, .ep-trust, .ep-oc__models, .ep-oc__support { grid-template-columns: 1fr; }
	.ep-trust__item::before { display: none !important; }
	.ep-hero { min-height: 78vh; }
	/* Order configurator scaling on phones (v5 point 9): stack everything, no horizontal overflow. */
	.ep-oc, .ep-oc * { min-width: 0; }
	.ep-oc__row { grid-template-columns: 1fr; }
	.ep-oc__box { padding: 18px; }
	.ep-oc__summary { position: static; }
	.ep-oc__title { font-size: 1.7rem; }
	.ep-oc__model { padding: 18px 14px 16px; }
	.ep-oc__mframe { max-width: 260px; margin-left: auto; margin-right: auto; }
	.ep-oc__opt { flex-wrap: wrap; }
	.ep-oc__opt .ep-oc__oprice { margin-left: auto; }
}

/* ================= LAYOUT FIXES ================= */
/* Hide the Hello theme's own header/footer — our [eplopper_header] provides the header. */
/* Hide the theme's own header(s)/footer — [eplopper_header] is the only header.
   High specificity (id + element + body) so the theme's own !important rules can't win. */
body header#site-header,
body #site-header, body .site-header, body .dynamic-header,
#site-header, header.site-header, .site-header, .dynamic-header,
#masthead, .site-footer, #colophon { display: none !important; }
/* Desktop-only logo cap (mobile size is handled in the max-width:900px block above). */
@media (min-width: 1361px) { .ep-header__logo img { max-height: 40px !important; width: auto !important; } }

/* Home-scoped treatment for the two native Elementor section headings
   ("...vs E-Plopper", "Choose your E-Plopper") so they match the design system. */
.home .elementor-widget-heading .elementor-heading-title {
	color: var(--ep-heading); font-family: var(--ep-font-head); font-weight: 700;
	text-transform: uppercase; letter-spacing: .01em; text-align: center;
	font-size: clamp(1.7rem, 3.2vw, 2.5rem); line-height: 1.05; margin-bottom: 14px;
}
.home .elementor-widget-heading { text-align: center; }
.home .elementor-widget-heading .elementor-heading-title::after {
	content: ""; display: block; width: 64px; height: 3px; margin: 18px auto 0;
	border-radius: 3px; background: linear-gradient(90deg, var(--ep-accent), var(--ep-accent-2));
}

/* ---- Homepage section rhythm: consistent editorial spacing ---- */
body.home .elementor-top-section { padding-top: 60px !important; padding-bottom: 60px !important; }
/* hero sits flush under the sticky header */
body.home .elementor-top-section:first-child { padding: 0 !important; }
/* the stats panel floats up and overlaps the base of the hero — adds depth */
body.home .elementor-widget-eplopper_stats_bar { margin-top: -128px; position: relative; z-index: 6; }
/* the stats section needs a touch more room below so it clears the overlap */
body.home .elementor-widget-eplopper_stats_bar { }
@media (max-width: 782px) {
	body.home .elementor-top-section { padding-top: 44px !important; padding-bottom: 44px !important; }
	body.home .elementor-widget-eplopper_stats_bar { margin-top: -84px; }
}

/* ---- Closing trust band — turn the trust bar into a cohesive card bookend ---- */
.home .elementor-widget-eplopper_trust_bar .ep-trust {
	background: linear-gradient(180deg, var(--ep-panel) 0%, #0D111A 100%);
	border: 1px solid var(--ep-border); border-radius: var(--ep-radius);
	box-shadow: var(--ep-shadow);
}

/* ---- Applications strip: centered section header with eyebrow + subtitle ---- */
.ep-apps__head { text-align: center; max-width: 640px; margin: 0 auto 40px; }
.ep-apps__head .ep-eyebrow { margin-bottom: 18px; }
.ep-apps__head .ep-section-title { margin-bottom: 0; }
.ep-apps__sub { color: var(--ep-text); font-size: 1.02rem; line-height: 1.6; margin: 14px 0 0; }

/* Product hero media: clean white product card on the dark page */
.ep-phero__media img, .ep-phero__viewer {
	background: #fff; border-radius: var(--ep-radius); width: 100%;
}
.ep-phero__viewer { min-height: 380px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.ep-phero__img { max-height: 460px; object-fit: contain; }

/* Product Gallery (eplopper_gallery) — clean rounded tiles filling the column */
.ep-gallery { display: grid; gap: 14px; width: 100%; }
.ep-gallery--c1 { grid-template-columns: 1fr; }
.ep-gallery--c2 { grid-template-columns: 1fr 1fr; }
.ep-gallery__item { margin: 0; border-radius: 10px; overflow: hidden; background: #0F141C; border: 1px solid var(--ep-border); }
.ep-gallery--r11 .ep-gallery__item { aspect-ratio: 1/1; }
.ep-gallery--r43 .ep-gallery__item { aspect-ratio: 4/3; }
.ep-gallery--r32 .ep-gallery__item { aspect-ratio: 3/2; }
.ep-gallery--r169 .ep-gallery__item { aspect-ratio: 16/9; }
.ep-gallery__item img { width: 100%; height: 100%; display: block; }
@media (max-width: 900px) { .ep-gallery--c1 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .ep-gallery { grid-template-columns: 1fr; } }

/* Product video: constrained + centered */
.ep-video-wrap { max-width: 900px; margin: 0 auto; }

/* ================= PHOTO SLIDER (eplopper_photo_slider) ================= */
.eps { position: relative; }
.eps__viewport { overflow: hidden; border-radius: var(--ep-radius); }
.eps__track { display: flex; gap: 16px; will-change: transform; transition: transform .45s cubic-bezier(.22,.61,.36,1); touch-action: pan-y; }
.eps__track.is-dragging { transition: none; cursor: grabbing; }
.eps__slide { flex: 0 0 auto; margin: 0; border-radius: var(--ep-radius); overflow: hidden; border: 1px solid var(--ep-border); background: #0B0E14; }
.eps__link { display: block; width: 100%; height: 100%; cursor: zoom-in; }
/* height/width forced with !important to beat the theme's `img{height:auto}` reset */
.eps__slide img { display: block !important; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; transition: transform .4s ease; -webkit-user-drag: none; user-select: none; }
.eps__link:hover img { transform: scale(1.04); }
.eps--r169 .eps__slide { aspect-ratio: 16 / 9; }
.eps--r43  .eps__slide { aspect-ratio: 4 / 3; }
.eps--r32  .eps__slide { aspect-ratio: 3 / 2; }
.eps--r11  .eps__slide { aspect-ratio: 1 / 1; }
/* product mode: white background, whole image visible */
.eps--product .eps__slide { background: #fff; }
.eps--product .eps__slide img { object-fit: contain; padding: 18px; }
.eps--product .eps__link:hover img { transform: scale(1.03); }
/* arrows */
.eps__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 46px; height: 46px; border-radius: 50%;
	border: 1px solid var(--ep-border-2); background: rgba(6,7,11,.6); backdrop-filter: blur(8px); color: #fff; font-size: 1.5rem; line-height: 1;
	display: grid; place-items: center; cursor: pointer; transition: background .15s, box-shadow .15s, opacity .15s; opacity: .92; }
.eps__arrow:hover { background: var(--ep-accent); border-color: var(--ep-accent); opacity: 1; box-shadow: var(--ep-glow); }
.eps__arrow--prev { left: 12px; } .eps__arrow--next { right: 12px; }
.eps__arrow[disabled] { opacity: .28; pointer-events: none; }
/* dots */
.eps__dots { display: flex; justify-content: center; gap: 8px; margin-top: 16px; }
.eps__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ep-border-2); border: 0; cursor: pointer; padding: 0; transition: width .2s, background .2s; }
.eps__dot.is-active { background: var(--ep-accent); width: 22px; border-radius: 5px; }
@media (max-width: 600px) { .eps__arrow { width: 38px; height: 38px; font-size: 1.25rem; } }

/* ---- lightbox ---- */
.eps-lb { position: fixed; inset: 0; z-index: 100000; display: none; align-items: center; justify-content: center;
	background: rgba(4,5,8,.92); backdrop-filter: blur(6px); }
.eps-lb.is-open { display: flex; }
.eps-lb__img { max-width: 92vw; max-height: 86vh; object-fit: contain; border-radius: 10px; box-shadow: 0 30px 80px -20px rgba(0,0,0,.85); user-select: none; }
.eps-lb__btn { position: absolute; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); color: #fff; width: 52px; height: 52px;
	border-radius: 50%; display: grid; place-items: center; cursor: pointer; font-size: 1.7rem; line-height: 1; transition: background .15s, border-color .15s; }
.eps-lb__btn:hover { background: var(--ep-accent); border-color: var(--ep-accent); }
.eps-lb__prev { left: 18px; top: 50%; transform: translateY(-50%); }
.eps-lb__next { right: 18px; top: 50%; transform: translateY(-50%); }
.eps-lb__close { top: 18px; right: 18px; width: 44px; height: 44px; font-size: 1.4rem; }
.eps-lb__count { position: absolute; top: 26px; left: 50%; transform: translateX(-50%); color: #C9CFD8; font-family: var(--ep-font-body); font-size: .9rem; letter-spacing: .05em; }
@media (max-width: 600px) { .eps-lb__btn { width: 42px; height: 42px; } .eps-lb__prev { left: 8px; } .eps-lb__next { right: 8px; } .eps-lb__close { top: 10px; right: 10px; } }

/* ================= Floating WhatsApp button (site-wide) ================= */
.eph-wa { position: fixed; right: 20px; bottom: 20px; z-index: 9998; width: 56px; height: 56px; border-radius: 50%;
	background: #25D366; color: #fff; display: grid; place-items: center; box-shadow: 0 12px 30px -8px rgba(0,0,0,.5); transition: transform .15s; }
.eph-wa:hover { transform: scale(1.06); color: #fff; }
@media (max-width: 600px) { .eph-wa { right: 14px; bottom: 14px; width: 52px; height: 52px; } }



/* ================= Demo booking form ([eplopper_demo_booking]) ================= */
.epbk { max-width: 1080px; margin: 0 auto; }
/* prevent horizontal overflow: grid children default to min-width:auto and can push the page wider */
.epbk, .epbk__layout > *, .epbk__row > *, .epbk__intro, .epbk__form { min-width: 0; max-width: 100%; }
.epbk__field select, .epbk__field input, .epbk__field textarea { max-width: 100%; }
.epbk__layout { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.epbk__intro { padding-top: 4px; }
.epbk__eyebrow { display: inline-block; font-weight: 600; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--ep-accent); background: rgba(10,107,255,.10); border: 1px solid rgba(10,107,255,.30); padding: 7px 14px; border-radius: 999px; }
.epbk__title { font-family: 'Barlow Condensed', system-ui, sans-serif; color: #fff; font-weight: 700; text-transform: uppercase; line-height: 1.05; font-size: clamp(1.8rem, 3.4vw, 2.6rem); margin: 16px 0 12px; }
.epbk__intro p { color: var(--ep-text); font-size: 1.02rem; margin: 0 0 20px; }
.epbk__usps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.epbk__usps li { position: relative; padding-left: 30px; color: #E8EBEF; }
.epbk__usps li::before { content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--ep-accent); box-shadow: inset 0 0 0 2px rgba(255,255,255,.15); }
.epbk__usps li::after { content: ""; position: absolute; left: 6px; top: 8px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.epbk__form { background: var(--ep-panel); border: 1px solid var(--ep-border); border-radius: 16px; padding: 28px; }
@media (max-width: 900px) { .epbk__layout { grid-template-columns: 1fr; gap: 28px; } .epbk__form { padding: 22px; } }
.epbk__field { display: block; margin-bottom: 16px; }
.epbk__field > span { display: block; color: var(--ep-text); font-size: .9rem; margin-bottom: 6px; }
.epbk__field input, .epbk__field select, .epbk__field textarea { width: 100%; background: var(--ep-bg); border: 1px solid var(--ep-border); border-radius: 8px; padding: 12px 14px; color: #fff; font: inherit; }
.epbk__field input:focus, .epbk__field select:focus, .epbk__field textarea:focus { outline: none; border-color: var(--ep-accent); }
.epbk__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.epbk__times { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.epbk__hint { color: var(--ep-text-dim); font-size: .9rem; }
.epbk__time { background: var(--ep-panel); border: 1px solid var(--ep-border); color: #E8EBEF; border-radius: 8px; padding: 9px 14px; cursor: pointer; font: inherit; transition: .15s; }
.epbk__time:hover { border-color: var(--ep-border-2); }
.epbk__time.is-active { background: var(--ep-accent); border-color: var(--ep-accent); color: #fff; }
.epbk__submit,
.epbk .epbk__submit,
.epbk button.epbk__submit { width: 100%; margin-top: 6px; background: var(--ep-accent) !important; background-image: none !important; border: 1px solid var(--ep-accent) !important; color: #fff !important; text-shadow: none !important; border-radius: 10px !important; padding: 14px 22px !important; font-weight: 700 !important; -webkit-appearance: none; appearance: none; transition: background .18s ease; }
.epbk__submit:hover,
.epbk button.epbk__submit:hover { background: var(--ep-accent-600, #0857cc) !important; }
.epbk__submit:disabled { opacity: .7; cursor: default; }
.epbk__loc { color: var(--ep-text-dim); font-size: .85rem; margin-top: 14px; }
.epbk__none { color: var(--ep-text); }
.epbk__notice { border-radius: 10px; padding: 14px 18px; margin-bottom: 18px; font-weight: 600; border: 1px solid; }
.epbk__notice.is-ok { color: #7bffb0; background: rgba(16,185,129,.12); border-color: rgba(16,185,129,.4); }
.epbk__notice.is-err { color: #ff9ea1; background: rgba(229,72,77,.12); border-color: rgba(229,72,77,.4); }
@media (max-width: 600px) { .epbk__row { grid-template-columns: 1fr; } }

/* ================= Applications ([eplopper_applications] + widget) ================= */
.epap {
  --bg:#06070B; --panel:#10141C; --panel2:#171C26; --border:#232A35;
  --accent:#0A6BFF; --accent2:#3D8BFF; --heading:#fff; --text:#A7AEB8; --dim:#6B7280;
  --r:16px; --maxw:1120px; --fh:'Barlow Condensed',system-ui,sans-serif; --fb:'Inter',system-ui,sans-serif;
  color:var(--text); font-family:var(--fb); line-height:1.6;
  background-image:radial-gradient(1200px 700px at 82% 2%,rgba(10,107,255,.12),transparent 60%);
}
.epap * { box-sizing:border-box }
.epap img { max-width:100%; display:block }
.epap a { color:inherit; text-decoration:none }
.epap .wrap { max-width:var(--maxw); margin:0 auto; padding:0 24px }
.epap .h { font-family:var(--fh); color:var(--heading); font-weight:700; text-transform:uppercase; letter-spacing:.005em; line-height:1.04; margin:0 }
.epap .eyebrow { display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--accent2); background:rgba(10,107,255,.10); border:1px solid rgba(10,107,255,.30); padding:7px 14px; border-radius:999px }
.epap .btn { display:inline-flex; align-items:center; gap:8px; font-weight:600; padding:13px 22px; border-radius:10px; background:var(--accent); color:#fff; border:1px solid transparent; transition:.2s }
.epap .btn:hover { background:#0857cc }
.epap .btn--ghost { background:transparent; border-color:var(--border); color:var(--heading) }
.epap .btn--ghost:hover { border-color:var(--accent2) }
.epap__intro { padding:64px 0 8px; text-align:center }
.epap__intro h1 { font-size:clamp(2.1rem,5vw,3.4rem); margin:14px 0 0 }
.epap__intro p { max-width:680px; margin:16px auto 0; font-size:1.05rem }
.epap__cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:16px; padding:36px 0 8px }
.epap__card { background:var(--panel); border:1px solid var(--border); border-radius:var(--r); padding:22px 18px; text-align:center; transition:.2s }
.epap__card:hover { border-color:var(--accent2); transform:translateY(-3px) }
.epap__card .em { font-size:2rem; line-height:1 }
.epap__card .t { display:block; color:var(--heading); font-weight:700; margin-top:10px; font-size:1.02rem }
.epap__card .a { display:inline-block; margin-top:8px; color:var(--accent2); font-size:.82rem; font-weight:600 }
.epap__row { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:center; padding:56px 0; border-top:1px solid var(--border) }
.epap__row:nth-child(even) .epap__media { order:2 }
.epap__media { border-radius:var(--r); overflow:hidden; border:1px solid var(--border); aspect-ratio:4/3; background:radial-gradient(120% 120% at 20% 0%,rgba(10,107,255,.25),transparent 60%),linear-gradient(160deg,#141a24,#0b0e14); display:flex; align-items:center; justify-content:center }
.epap__media img { width:100%; height:100%; object-fit:cover }
.epap__media .ph { font-size:4.4rem; filter:drop-shadow(0 8px 24px rgba(0,0,0,.5)) }
.epap__row h2 { font-size:clamp(1.6rem,3.4vw,2.3rem); margin:8px 0 0 }
.epap__row p { margin:14px 0 0 }
.epap__chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; padding:0; list-style:none }
.epap__chips li { background:var(--panel2); border:1px solid var(--border); border-radius:999px; padding:7px 14px; color:var(--heading); font-size:.85rem }
.epap__cta { margin:24px 0 64px; text-align:center; background:linear-gradient(160deg,#0d1420,#0a0d13); border:1px solid var(--border); border-radius:var(--r); padding:48px 24px }
.epap__cta h2 { font-size:clamp(1.6rem,3.4vw,2.4rem); margin:0 }
.epap__cta p { margin:12px auto 24px; max-width:560px }
.epap__ctabtns { display:flex; gap:14px; justify-content:center; flex-wrap:wrap }
@media (max-width:900px) {
  .epap__row { grid-template-columns:1fr; gap:24px; padding:40px 0 }
  .epap__row:nth-child(even) .epap__media { order:0 }
}

/* ================= Downloads table ([Downloads Table] widget) ================= */
.ep-dl-wrap { overflow-x: auto; border: 1px solid var(--ep-border); border-radius: var(--ep-radius); }
/* Force real table display + fixed column widths so a theme/Elementor rule that sets
   table/tr/td to block or flex can't break the header/body alignment. */
.ep-dl { display: table !important; width: 100% !important; table-layout: fixed !important; border-collapse: collapse; min-width: 480px; background: var(--ep-panel); margin: 0 !important; }
.ep-dl thead { display: table-header-group !important; }
.ep-dl tbody { display: table-row-group !important; }
.ep-dl tr { display: table-row !important; }
.ep-dl th, .ep-dl td { display: table-cell !important; float: none !important; }
.ep-dl th:nth-child(1), .ep-dl td:nth-child(1) { width: 46%; }
.ep-dl th:nth-child(2), .ep-dl td:nth-child(2) { width: 30%; }
.ep-dl th:nth-child(3), .ep-dl td:nth-child(3) { width: 24%; }
.ep-dl th { text-align: left; padding: 14px 20px; background: var(--ep-panel-2); color: var(--ep-heading); font-family: var(--ep-font-head, inherit); text-transform: uppercase; font-size: .82rem; letter-spacing: .04em; }
.ep-dl td { padding: 15px 20px; border-top: 1px solid var(--ep-border); vertical-align: middle; }
.ep-dl tbody tr:hover td { background: var(--ep-panel-2); }
.ep-dl__name { color: var(--ep-heading); font-weight: 600; }
.ep-dl__cat { color: var(--ep-text-dim); font-size: .9rem; }
.ep-dl__act { text-align: right; white-space: nowrap; }
.ep-dl__btn { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; font-size: .85rem; color: #fff !important; }
.ep-dl__soon { color: var(--ep-text-dim); }
/* Per-language download buttons (NL / FR / EN / DE). */
.ep-dl__langs { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.ep-dl__langbtn { display: inline-flex; align-items: center; gap: 5px; padding: 7px 11px; font-size: .78rem; font-weight: 700; color: #fff !important; border-radius: 7px; }
.ep-dl__langbtn--off { background: rgba(255,255,255,.05) !important; border: 1px dashed var(--ep-border-2); color: var(--ep-text-dim) !important; cursor: not-allowed; }
/* Foldable table: hide extra rows while collapsed (needs high specificity + !important to beat the forced table-row display). */
.ep-dl--fold.is-collapsed .ep-dl tr.ep-dl__row--extra { display: none !important; }
/* Force the design-system look and beat any theme/Elementor button styling (was showing pink). */
.ep-dl__more { -webkit-appearance: none !important; appearance: none !important; margin: 16px auto 0 !important; display: block !important; width: -moz-fit-content; width: fit-content; background: transparent !important; background-image: none !important; border: 1px solid var(--ep-border-2, #2E3745) !important; color: #E8EBEF !important; border-radius: 8px !important; padding: 10px 22px !important; cursor: pointer; font: inherit !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: normal !important; box-shadow: none !important; text-shadow: none !important; transition: border-color .15s, color .15s, background .15s; }
.ep-dl__more:hover { border-color: var(--ep-accent) !important; color: #fff !important; background: rgba(10,107,255,.14) !important; }
/* Phones: turn the downloads table into stacked cards so the language buttons never overflow (v5 point 3). */
@media (max-width: 600px) {
	.ep-dl-wrap { overflow: visible !important; border: 0 !important; border-radius: 0 !important; }
	.ep-dl, .ep-dl tbody, .ep-dl tr, .ep-dl td { display: block !important; width: 100% !important; min-width: 0 !important; }
	.ep-dl thead { display: none !important; }
	.ep-dl tr.ep-dl__row { background: var(--ep-panel); border: 1px solid var(--ep-border); border-radius: 10px; margin: 0 0 12px; padding: 12px 14px; }
	.ep-dl td { border: 0 !important; padding: 2px 0 !important; text-align: left !important; }
	.ep-dl td.ep-dl__name { color: var(--ep-heading); font-size: 1rem; }
	.ep-dl td.ep-dl__cat { color: var(--ep-text-dim); font-size: .9rem; margin-bottom: 8px; }
	.ep-dl__langs { justify-content: flex-start; }
	.ep-dl__langbtn { flex: 1 1 auto; justify-content: center; min-width: 60px; }
	.ep-dl__btn { width: 100%; justify-content: center; }
}

/* ================= FWD 360 viewer — keep it inside its column outside fullscreen ================= */
[id^="fwd360PvDiv"]:not(:fullscreen),
.fwd360pv-product:not(:fullscreen) { max-width: 100% !important; }
/* Clip any residual fullscreen-exit overflow at our viewer wrapper so the page can never scroll
   sideways (the viewer's inner canvas can briefly stay at fullscreen width before it redraws). */
.ep-phero__viewer, .ep-phero__media { overflow: hidden; max-width: 100%; min-width: 0; }
