/* Lumen: pilot of a new design direction, homepage copy at /startseite-lumen/.
   Loaded only for the Lumen templates; every rule is scoped to body.efh-lu.
   Principles: dots are data (print, wells, lenses), light instead of decoration,
   Open Sans as on the existing site, the two main colours green #86bc35 and
   turquoise #44b8be carry headings, light and actions. */

body.efh-lu {
    --lu-ink: #143a40;
    --lu-text: #4b5658;
    --lu-meta: #706f6f;
    --lu-green: #86bc35;
    --lu-turq: #44b8be;
    --lu-turq-deep: #227277;
    --lu-mist: #f3f8f8;
    --lu-mist-2: #e2f2f3;
    --lu-on-ink: #e3eeef;
    --lu-line: rgba(20, 58, 64, .11);
    --lu-line-strong: rgba(20, 58, 64, .2);
    --lu-shadow: 0 1px 2px rgba(20, 58, 64, .05), 0 28px 60px -30px rgba(20, 58, 64, .34);
    /* Button green: a touch deeper than the brand green so white bold text keeps at
       least 3:1 (WCAG AA for large text); the turquoise end shows on hover. */
    --lu-button: linear-gradient(110deg, #66a428 0%, #5c9f2c 42%, #2a9ba1 100%);
    --lu-sans: "Open Sans", Helvetica, Arial, sans-serif;
    --lu-ease: cubic-bezier(.23, 1, .32, 1);
    --lu-max: 1240px;
    --lu-gutter: clamp(20px, 5vw, 64px);
    --lu-pad: max(var(--lu-gutter), calc((100% - var(--lu-max)) / 2));
    --lu-section: clamp(80px, 10vw, 152px);
    background: #fff;
    color: var(--lu-text);
    font-family: var(--lu-sans);
    font-size: 17px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

/* Base: neutralise the generic theme rules inside the page only. */
.efh-lu .lu-page :where(h1, h2, h3, h4) { margin: 0; padding: 0; color: var(--lu-ink); font-family: var(--lu-sans); font-weight: 800; line-height: 1.12; letter-spacing: -.01em; text-wrap: balance; }
.efh-lu .lu-page :where(p) { margin: 0; padding: 0; text-wrap: pretty; }
.efh-lu .lu-page :where(.is-layout-flow) > * { margin-block: 0; }
.efh-lu .lu-page :where(a) { color: var(--lu-turq-deep); }
.efh-lu .lu-page :focus-visible { outline: 2px solid var(--lu-turq-deep); outline-offset: 3px; }
.efh-lu ::selection { background: rgba(68, 184, 190, .3); color: var(--lu-ink); }
.efh-lu .lu-page > section { padding-inline: var(--lu-pad); }
.efh-lu .lu-icon { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

.efh-lu .lu-head { max-width: 800px; }
.efh-lu .lu-head--center { margin-inline: auto; text-align: center; }
.efh-lu .lu-head__title { color: var(--lu-turq); font-size: clamp(32px, 3.6vw, 50px); line-height: 1.1; letter-spacing: -.015em; }
.efh-lu .lu-head__text { max-width: 38em; margin-top: 20px; font-size: clamp(17px, 1.3vw, 19px); line-height: 1.6; }
.efh-lu .lu-head--center .lu-head__text { margin-inline: auto; }

/* Buttons: core button blocks and the plain links inside HTML blocks share one look. */
.efh-lu .lu-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 40px; }
.efh-lu .lu-actions--center { justify-content: center; }
.efh-lu .lu-page .wp-block-button__link,
.efh-lu .lu-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    padding: 15px 30px;
    border: 0;
    border-radius: 999px;
    font: 700 19px/1.25 var(--lu-sans);
    letter-spacing: .005em;
    text-align: center;
    text-decoration: none;
    transition: background-position .5s var(--lu-ease), box-shadow .25s ease, color .2s ease, transform .16s var(--lu-ease);
}
.efh-lu .lu-btn--primary .wp-block-button__link,
.efh-lu .lu-button--primary {
    background: var(--lu-button);
    background-size: 220% 100%;
    background-position: 0 0;
    color: #fff;
    text-shadow: 0 1px 1px rgba(30, 70, 10, .28);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), inset 0 -2px 0 rgba(0, 0, 0, .08), 0 14px 28px -14px rgba(92, 159, 44, .95);
}
.efh-lu .lu-page .wp-block-button__link:active,
.efh-lu .lu-button:active { transform: scale(.97); }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-btn--primary .wp-block-button__link:hover,
    .efh-lu .lu-button--primary:hover { background-position: 100% 0; color: #fff; opacity: 1; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), inset 0 -2px 0 rgba(0, 0, 0, .08), 0 18px 34px -14px rgba(42, 155, 161, .9); }
}

/* Hero */
.efh-lu .lu-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr);
    align-items: center;
    column-gap: clamp(24px, 4vw, 72px);
    /* --lu-head-offset: room for the floating header variant, which overlaps the hero */
    padding-block: calc(var(--lu-head-offset, 0px) + clamp(48px, 6.5vw, 96px)) clamp(160px, 15vw, 216px);
    overflow: clip;
    background: linear-gradient(165deg, #f8fcfc 0%, #e8f6f6 100%);
}
.efh-lu .lu-hero__copy { position: relative; z-index: 2; max-width: 620px; }
/* Green marks the product, the promise stays calm in ink (as on the existing site). */
.efh-lu .lu-hero__title { color: var(--lu-ink); font-size: clamp(42px, 4.9vw, 72px); line-height: 1.04; letter-spacing: -.018em; }
.efh-lu .lu-hero__product { display: block; margin-bottom: 12px; color: var(--lu-green); font-size: clamp(24px, 2.45vw, 36px); font-weight: 800; line-height: 1.15; letter-spacing: -.01em; }
.efh-lu .lu-lead { max-width: 33em; margin-top: 28px; font-size: clamp(17px, 1.35vw, 19.5px); line-height: 1.65; }
.efh-lu .lu-hero__visual { position: relative; z-index: 1; aspect-ratio: 1 / 1.02; }
.efh-lu .lu-field { position: absolute; inset: -8% -16% -10% -12%; pointer-events: none; }
.efh-lu .lu-field__canvas { display: block; width: 100%; height: 100%; }
.efh-lu .lu-hero__box { position: absolute; bottom: -1%; left: -7%; width: 72%; margin: 0; filter: drop-shadow(0 34px 34px rgba(20, 58, 64, .2)); }
.efh-lu .lu-hero__box img { display: block; width: 100%; height: auto; }
/* The deep bottom padding only makes room for a card that overlaps the hero edge
   (Live-Talk ticket, steps of the Ablauf page). */
.efh-lu .lu-page:not(:has(.lu-talk:not([hidden]), .lu-trio:not(.lu-trio--flat))) .lu-hero { padding-bottom: clamp(64px, 8vw, 112px); }

/* Live-Talk (time-limited, hidden by lumen.js after the event) */
.efh-lu .lu-talk { position: relative; z-index: 3; margin-top: calc(-1 * clamp(104px, 10vw, 144px)); }
.efh-lu .lu-ticket {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: clamp(20px, 3vw, 44px);
    max-width: 1120px;
    margin-inline: auto;
    padding: 22px clamp(24px, 3vw, 40px) 22px 22px;
    border: 1px solid rgba(255, 255, 255, .9);
    border-radius: 999px 40px 40px 999px;
    background: rgba(255, 255, 255, .82);
    -webkit-backdrop-filter: blur(20px) saturate(1.4);
    backdrop-filter: blur(20px) saturate(1.4);
    box-shadow: var(--lu-shadow);
}
.efh-lu .lu-ticket__date {
    display: grid;
    align-content: center;
    justify-items: center;
    width: 136px;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle at 32% 26%, #fff 0 20%, var(--lu-mist-2) 100%);
    box-shadow: inset 0 0 0 1.5px rgba(68, 184, 190, .55), 0 0 0 8px rgba(68, 184, 190, .12);
    color: var(--lu-ink);
    text-align: center;
}
.efh-lu .lu-ticket__day { color: var(--lu-turq); font: 800 52px/.95 var(--lu-sans); letter-spacing: -.03em; }
.efh-lu .lu-ticket__month { margin-top: 6px; font: 700 12.5px/1.3 var(--lu-sans); }
.efh-lu .lu-ticket__time { font: 400 12.5px/1.4 var(--lu-sans); color: var(--lu-meta); }
.efh-lu .lu-ticket__kicker { display: flex; align-items: center; gap: 8px; color: var(--lu-turq-deep); font: 700 14px/1.4 var(--lu-sans); }
.efh-lu .lu-ticket__kicker .lu-icon { color: var(--lu-green); }
.efh-lu .lu-ticket__title { margin-top: 4px; color: var(--lu-turq); font-size: clamp(26px, 2.3vw, 34px); line-height: 1.12; }
.efh-lu .lu-ticket__text { max-width: 54ch; margin-top: 8px; font-size: 15.5px; line-height: 1.6; }
.efh-lu .lu-ticket__text strong { color: var(--lu-ink); font-weight: 700; }
.efh-lu .lu-ticket__actions { display: grid; justify-items: center; gap: 10px; }
.efh-lu .lu-ticket__note { display: flex; align-items: center; gap: 6px; color: var(--lu-meta); font-size: 13px; line-height: 1.4; }
.efh-lu .lu-ticket__note .lu-icon { width: 16px; height: 16px; }

/* Symptoms: an index of lenses */
.efh-lu .lu-cues { padding-block: clamp(96px, 10vw, 144px) var(--lu-section); }
.efh-lu .lu-cues__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(44px, 5vw, 72px) clamp(28px, 4vw, 64px); margin-top: clamp(48px, 6vw, 80px); }
.efh-lu .lu-cue { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto 1fr; column-gap: 26px; align-items: start; }
.efh-lu .lu-lens {
    position: relative;
    display: grid;
    grid-row: 1 / span 3;
    place-items: center;
    width: 96px;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle at 34% 28%, #fff 0 16%, #edf8f8 48%, #d5eef0 100%);
    box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .45), inset 0 -12px 20px rgba(68, 184, 190, .16), 0 16px 30px -20px rgba(20, 58, 64, .5);
}
.efh-lu .lu-lens::before { content: ""; width: 52%; aspect-ratio: 1; background: var(--lu-turq); -webkit-mask: var(--lu-icon) center / contain no-repeat; mask: var(--lu-icon) center / contain no-repeat; transition: background-color .25s ease; }
.efh-lu .lu-lens::after { content: ""; position: absolute; inset: -8px; border: 1px solid rgba(68, 184, 190, .32); border-radius: 50%; transition: transform .35s var(--lu-ease), border-color .25s ease; }
.efh-lu .lu-cue__title { margin-top: 6px; font-size: clamp(19px, 1.45vw, 21px); font-weight: 700; line-height: 1.25; letter-spacing: 0; }
.efh-lu .lu-cue__title a { color: var(--lu-ink); text-decoration: none; transition: color .2s ease; }
.efh-lu .lu-cue__title a::after { content: ""; position: absolute; inset: -14px; border-radius: 24px; }
.efh-lu .lu-cue__title a:focus-visible { outline: 0; }
.efh-lu .lu-cue__title a:focus-visible::after { outline: 2px solid var(--lu-turq-deep); outline-offset: 2px; }
.efh-lu .lu-cue__text { margin-top: 8px; font-size: 15.5px; line-height: 1.55; }
.efh-lu .lu-cue__more { align-self: end; padding-top: 14px; color: var(--lu-turq-deep); font: 700 14.5px/1.3 var(--lu-sans); text-decoration: underline 1px rgba(34, 114, 119, .35); text-underline-offset: .32em; transition: text-decoration-color .2s ease; }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-cue:hover .lu-lens::before { background: var(--lu-green); }
    .efh-lu .lu-cue:hover .lu-lens::after { transform: scale(1.07); border-color: rgba(134, 188, 53, .75); }
    .efh-lu .lu-cue:hover .lu-cue__title a { color: var(--lu-turq-deep); }
    .efh-lu .lu-cue:hover .lu-cue__more { text-decoration-color: currentColor; }
}

/* Analysis boxes: the comparison as a well plate */
.efh-lu .lu-boxes { padding-block: var(--lu-section); background: var(--lu-mist); }
.efh-lu .lu-plate { margin-top: clamp(40px, 5vw, 64px); }
.efh-lu .lu-plate__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin-bottom: 24px; }
.efh-lu .lu-plate:not(.is-ready) .lu-plate__bar { display: none; }
.efh-lu .lu-plate__picker { display: flex; flex-wrap: wrap; gap: 8px; }
.efh-lu .lu-chip {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 8px 18px 8px 11px;
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: var(--lu-ink);
    font: 600 14.5px/1.2 var(--lu-sans);
    white-space: nowrap;
    box-shadow: inset 0 0 0 1px var(--lu-line-strong);
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease, transform .16s var(--lu-ease);
}
.efh-lu .lu-chip__well { width: 18px; height: 18px; border-radius: 50%; background: radial-gradient(circle at 36% 30%, rgba(255, 255, 255, .7) 0 16%, transparent 17%), var(--box); }
.efh-lu .lu-chip[aria-pressed="true"] { background: var(--lu-ink); color: #fff; box-shadow: none; }
.efh-lu .lu-chip:active { transform: scale(.97); }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-chip:hover { box-shadow: inset 0 0 0 1.5px var(--lu-turq); }
}
.efh-lu .lu-plate__summary { min-height: 1.6em; font-size: 15px; }
.efh-lu .lu-plate__summary strong { color: var(--lu-ink); font-weight: 700; }
.efh-lu .lu-plate__frame { padding: 8px clamp(12px, 2vw, 28px) 20px; border-radius: 32px; background: #fff; box-shadow: var(--lu-shadow); }
.efh-lu .lu-plate:not(.is-ready) .lu-plate__frame { overflow-x: auto; }
.efh-lu .lu-plate__table { width: 100%; max-width: none; border-collapse: separate; border-spacing: 0; font-size: 15px; }
.efh-lu .lu-plate:not(.is-ready) .lu-plate__table { min-width: 880px; }
.efh-lu .lu-plate__table thead th { position: sticky; top: var(--lu-sticky, 0px); z-index: 2; padding: 22px 6px 18px; border-bottom: 1px solid var(--lu-line-strong); background: #fff; font-weight: 400; vertical-align: bottom; }
.efh-lu .lu-plate__table thead .lu-plate__corner { width: 30%; padding-left: 0; text-align: left; }
.efh-lu .lu-plate__corner-title { display: block; color: var(--lu-turq); font: 800 21px/1.2 var(--lu-sans); }
.efh-lu .lu-plate__corner-text { display: block; margin-top: 4px; color: var(--lu-meta); font-size: 14px; }
.efh-lu .lu-plate__col { width: 10%; text-align: center; }
.efh-lu .lu-plate__cap { display: block; width: 30px; height: 30px; margin: 0 auto 14px; border-radius: 50%; background: radial-gradient(circle at 36% 30%, rgba(255, 255, 255, .7) 0 15%, transparent 16%), var(--box); box-shadow: 0 0 0 5px color-mix(in srgb, var(--box) 18%, transparent); }
.efh-lu .lu-plate__name { display: block; font-size: 11.5px; line-height: 1.3; color: var(--lu-meta); }
.efh-lu .lu-plate__name strong { display: block; color: var(--lu-ink); font-size: 14px; font-weight: 700; line-height: 1.25; }
.efh-lu .lu-plate__pre,
.efh-lu .lu-plate__suf { display: block; }
.efh-lu .lu-plate__icons { display: flex; justify-content: center; gap: 1px; margin-top: 10px; }
.efh-lu .lu-plate__icons img { width: 19px; height: 19px; opacity: .75; }
.efh-lu .lu-plate__table tbody th,
.efh-lu .lu-plate__table tbody td { border-bottom: 1px solid var(--lu-line); }
.efh-lu .lu-plate__table tbody tr:last-child > * { border-bottom: 0; }
.efh-lu .lu-plate__table tbody th { padding: 12px 16px 12px 0; font-weight: 400; text-align: left; vertical-align: middle; }
.efh-lu .lu-plate__table tbody td { padding: 10px 4px; text-align: center; vertical-align: middle; }
.efh-lu .lu-param { display: inline-flex; align-items: center; gap: 10px; padding: 4px 0; border: 0; background: none; color: var(--lu-ink); font: 600 15px/1.35 var(--lu-sans); text-align: left; cursor: pointer; }
.efh-lu .lu-param__i { display: grid; flex: none; place-items: center; width: 20px; height: 20px; border-radius: 50%; color: var(--lu-turq-deep); font: 800 11.5px/1 var(--lu-sans); box-shadow: inset 0 0 0 1px var(--lu-line-strong); transition: background-color .2s ease, color .2s ease, box-shadow .2s ease; }
.efh-lu .lu-param[aria-expanded="true"] .lu-param__i { background: var(--lu-turq); color: #fff; box-shadow: none; }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-param:hover .lu-param__i { box-shadow: inset 0 0 0 1.5px var(--lu-turq); }
}
.efh-lu .lu-param__note { max-width: 48ch; margin-top: 6px; font-size: 14px; line-height: 1.55; }
.efh-lu .lu-param__note strong { display: block; color: var(--lu-ink); font-weight: 700; }
.efh-lu .lu-param__note[hidden] { display: none; }
.efh-lu .lu-plate.is-ready .lu-param__note:not([hidden]) { animation: lu-reveal .24s var(--lu-ease); }
@keyframes lu-reveal { from { opacity: 0; transform: translateY(-4px); } }
.efh-lu .lu-well {
    display: inline-block;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    vertical-align: middle;
    background: radial-gradient(circle at 50% 40%, rgba(20, 58, 64, .05), rgba(20, 58, 64, 0) 70%);
    box-shadow: inset 0 0 0 1.5px rgba(20, 58, 64, .16), inset 0 2px 3px rgba(20, 58, 64, .07);
    transition: opacity .25s ease, transform .3s var(--lu-ease);
}
.efh-lu .lu-well.is-on { background: radial-gradient(circle at 36% 30%, rgba(255, 255, 255, .65) 0 15%, transparent 16%), var(--box); box-shadow: inset 0 -3px 4px rgba(0, 0, 0, .14), 0 0 0 4px color-mix(in srgb, var(--box) 15%, transparent); }
.efh-lu .lu-plate__table tfoot td { padding: 18px 4px 6px; text-align: center; }
.efh-lu .lu-plate__go { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 8px 14px; border-radius: 999px; color: var(--lu-ink); font: 700 13.5px/1.2 var(--lu-sans); text-decoration: none; white-space: nowrap; box-shadow: inset 0 0 0 1px var(--lu-line-strong); transition: background-color .2s ease, color .2s ease, box-shadow .2s ease; }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-plate__go:hover { background: var(--lu-ink); color: #fff; box-shadow: none; }
}
/* Column colours follow the product colours of the boxes. */
.efh-lu .lu-plate__table tr > :nth-child(2), .efh-lu .lu-chip:nth-child(1) { --box: #f39200; }
.efh-lu .lu-plate__table tr > :nth-child(3), .efh-lu .lu-chip:nth-child(2) { --box: #fbb900; }
.efh-lu .lu-plate__table tr > :nth-child(4), .efh-lu .lu-chip:nth-child(3) { --box: #92a8b3; }
.efh-lu .lu-plate__table tr > :nth-child(5), .efh-lu .lu-chip:nth-child(4) { --box: #92847a; }
.efh-lu .lu-plate__table tr > :nth-child(6), .efh-lu .lu-chip:nth-child(5) { --box: #86bc35; }
.efh-lu .lu-plate__table tr > :nth-child(7), .efh-lu .lu-chip:nth-child(6) { --box: #009bde; }
.efh-lu .lu-plate__table tr > :nth-child(8), .efh-lu .lu-chip:nth-child(7) { --box: #e04097; }
/* Hovered or selected column (classes set by lumen.js). */
.efh-lu .lu-plate__table .is-col-hover,
.efh-lu .lu-plate__table .is-col-active { background: color-mix(in srgb, var(--box) 8%, #fff); }
.efh-lu .lu-plate__table thead .is-col-hover,
.efh-lu .lu-plate__table thead .is-col-active { border-radius: 20px 20px 0 0; }
.efh-lu .lu-plate__table tfoot .is-col-hover,
.efh-lu .lu-plate__table tfoot .is-col-active { border-radius: 0 0 20px 20px; }
.efh-lu .lu-plate[data-active] .lu-well.is-on { opacity: .3; }
.efh-lu .lu-plate[data-active] .is-col-active .lu-well.is-on { opacity: 1; transform: scale(1.08); }
.efh-lu .lu-plate__table .is-col-active .lu-plate__go { background: var(--lu-ink); color: #fff; box-shadow: none; }

/* Box finder: the two main colours in motion, a plate reader drawn by lumen.js
   and one bright call to action. */
.efh-lu .lu-finder { position: relative; isolation: isolate; overflow: clip; padding-block: clamp(104px, 12vw, 184px); background: linear-gradient(118deg, #0a5258 0%, #0f7c82 38%, #1e8a7a 60%, #4a922c 100%); color: #fff; text-align: center; }
.efh-lu .lu-finder::before { content: ""; position: absolute; inset: -20%; z-index: -3; background: radial-gradient(32% 42% at 18% 26%, rgba(68, 184, 190, .8), transparent 70%), radial-gradient(30% 40% at 84% 76%, rgba(134, 188, 53, .75), transparent 70%); animation: lu-drift 18s ease-in-out infinite alternate; }
.efh-lu .lu-finder::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse 40% 54% at 50% 50%, rgba(5, 46, 50, .5), transparent 78%); pointer-events: none; }
@keyframes lu-drift { from { transform: translate3d(-4%, -3%, 0) scale(1); } to { transform: translate3d(5%, 4%, 0) scale(1.08); } }
.efh-lu .lu-reader { position: absolute; inset: 0; z-index: -2; display: block; width: 100%; height: 100%; pointer-events: none; }
.efh-lu .lu-finder__inner { position: relative; max-width: 820px; margin-inline: auto; }
.efh-lu .lu-finder__title { color: #fff; font-size: clamp(36px, 4.6vw, 64px); line-height: 1.08; letter-spacing: -.018em; text-shadow: 0 2px 28px rgba(5, 46, 50, .35); }
.efh-lu .lu-finder__text { max-width: 34em; margin: 22px auto 0; color: #fff; font-size: clamp(18px, 1.4vw, 20px); font-weight: 600; }
.efh-lu .lu-finder .lu-actions { margin-top: 44px; }
.efh-lu .lu-btn--light { position: relative; }
.efh-lu .lu-btn--light::after { content: ""; position: absolute; inset: 0; border-radius: 999px; box-shadow: 0 0 0 2px rgba(255, 255, 255, .8); pointer-events: none; animation: lu-halo 2.8s var(--lu-ease) infinite; }
@keyframes lu-halo { 0% { opacity: .9; transform: scale(1); } 70%, 100% { opacity: 0; transform: scale(1.2); } }
.efh-lu .lu-btn--light .wp-block-button__link { padding-inline: 40px; background: #fff; color: #0a5258; font-weight: 800; box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .55); }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-btn--light .wp-block-button__link:hover { background: #f1fbf2; color: #0a5258; opacity: 1; box-shadow: 0 22px 46px -16px rgba(0, 0, 0, .6); }
}
.efh-lu .lu-finder__note { max-width: 70ch; margin: clamp(56px, 7vw, 88px) auto 0; padding: 18px 26px; border-radius: 22px; background: rgba(5, 46, 50, .4); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: rgba(255, 255, 255, .9); font-size: 14px; line-height: 1.65; }
.efh-lu .lu-finder__note strong { color: #fff; font-weight: 700; }
.efh-lu .lu-finder :focus-visible { outline-color: #fff; }

/* References: a light stage in the two main colours; the person chooses the quote */
.efh-lu .lu-voices { padding-block: var(--lu-section); }
.efh-lu .lu-voices__card {
    --lu-card-pad: clamp(36px, 5vw, 76px);
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, 330px);
    align-items: center;
    gap: clamp(32px, 5vw, 80px);
    margin-top: clamp(40px, 5vw, 64px);
    padding: var(--lu-card-pad);
    overflow: hidden;
    border-radius: 40px;
    background: linear-gradient(135deg, #e6f6f7 0%, #f4faf8 52%, #ecf6e0 100%);
    box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .22);
}
.efh-lu .lu-voices:not(.is-ready) .lu-voices__card { grid-template-columns: minmax(0, 1fr); }
.efh-lu .lu-voices__print { inset: auto -70px -90px auto; z-index: -1; width: 400px; height: 470px; opacity: .5; }
.efh-lu .lu-voices__stage { position: relative; display: grid; }
.efh-lu .lu-voices:not(.is-ready) .lu-voices__stage { gap: 56px; }
.efh-lu .lu-voice { margin: 0; padding: 0; border: 0; }
.efh-lu .lu-voice::before { content: "\201C"; display: block; height: 72px; margin: -12px 0 6px -6px; background: linear-gradient(135deg, var(--lu-turq), var(--lu-green)); -webkit-background-clip: text; background-clip: text; color: transparent; font: 800 140px/1 var(--lu-sans); }
.efh-lu .lu-voice p { color: var(--lu-ink); font: 400 clamp(20px, 1.9vw, 26px)/1.55 var(--lu-sans); }
.efh-lu .lu-voice cite { display: block; margin-top: 26px; color: var(--lu-meta); font: normal 400 15px/1.6 var(--lu-sans); }
.efh-lu .lu-voice cite::before { content: ""; display: inline-block; width: 28px; height: 3px; margin-right: 10px; border-radius: 3px; background: linear-gradient(90deg, var(--lu-turq), var(--lu-green)); vertical-align: middle; }
.efh-lu .lu-voice cite strong { color: var(--lu-turq-deep); font-weight: 700; }
.efh-lu .lu-voices.is-ready .lu-voice { grid-area: 1 / 1; align-self: center; transition: opacity .45s ease, transform .5s var(--lu-ease), filter .45s ease, visibility 0s linear .45s; }
.efh-lu .lu-voices.is-ready .lu-voice:not(.is-current) { visibility: hidden; opacity: 0; transform: translateY(10px); filter: blur(3px); }
.efh-lu .lu-voices.is-ready .lu-voice.is-current { transition-delay: .12s, .12s, .12s, 0s; }
.efh-lu .lu-voice:focus-visible { outline-offset: 12px; border-radius: 12px; }
.efh-lu .lu-voices__tabs { display: grid; gap: 10px; }
.efh-lu .lu-voices__tab {
    display: grid;
    grid-template-columns: 14px minmax(0, 1fr);
    align-items: center;
    gap: 3px 14px;
    width: 100%;
    padding: 18px 20px;
    border: 0;
    border-radius: 22px;
    background: rgba(255, 255, 255, .72);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    color: var(--lu-text);
    text-align: left;
    box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .2);
    transition: background-color .25s ease, box-shadow .25s ease, transform .16s var(--lu-ease);
}
.efh-lu .lu-voices__tab:active { transform: scale(.98); }
.efh-lu .lu-voices__dot { grid-row: 1 / span 2; width: 14px; height: 14px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px rgba(20, 58, 64, .25); transition: background-color .25s ease, box-shadow .25s ease; }
.efh-lu .lu-voices__who { color: var(--lu-ink); font: 700 15px/1.35 var(--lu-sans); }
.efh-lu .lu-voices__detail { grid-column: 2; color: var(--lu-meta); font-size: 13.5px; line-height: 1.45; }
.efh-lu .lu-voices__tab[aria-selected="true"] { background: #fff; box-shadow: 0 18px 36px -24px rgba(20, 58, 64, .5), inset 0 0 0 1.5px var(--lu-turq); }
.efh-lu .lu-voices__tab[aria-selected="true"] .lu-voices__dot { background: var(--lu-green); box-shadow: 0 0 0 4px rgba(134, 188, 53, .22); }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-voices__tab:hover { background: rgba(255, 255, 255, .92); }
}
@media (min-width: 861px) {
    /* The chooser already names each person next to the quote. */
    .efh-lu .lu-voices.is-ready .lu-voice cite { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}

/* FAQ */
.efh-lu .lu-faq { padding-block: var(--lu-section); background: var(--lu-mist); }
.efh-lu .lu-faq > .lu-head,
.efh-lu .lu-faq__list { max-width: 880px; margin-inline: auto; }
.efh-lu .lu-faq__list { margin-top: clamp(36px, 4vw, 56px); border-top: 1px solid var(--lu-line-strong); interpolate-size: allow-keywords; }
.efh-lu .lu-faq__item { border-bottom: 1px solid var(--lu-line-strong); }
.efh-lu .lu-faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 0; color: var(--lu-ink); font: 700 clamp(17px, 1.35vw, 19px)/1.4 var(--lu-sans); list-style: none; cursor: pointer; transition: color .2s ease; }
.efh-lu .lu-faq__item summary::-webkit-details-marker { display: none; }
.efh-lu .lu-faq__item summary::after {
    --lu-plus: var(--lu-ink);
    content: "";
    flex: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: linear-gradient(var(--lu-plus), var(--lu-plus)) center / 14px 2px no-repeat, linear-gradient(var(--lu-plus), var(--lu-plus)) center / 2px 14px no-repeat;
    box-shadow: inset 0 0 0 1px var(--lu-line-strong);
    transition: transform .3s var(--lu-ease), background-color .2s ease, box-shadow .2s ease;
}
.efh-lu .lu-faq__item[open] summary::after { --lu-plus: #fff; background-color: var(--lu-turq); box-shadow: none; transform: rotate(45deg); }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-faq__item summary:hover { color: var(--lu-turq-deep); }
    .efh-lu .lu-faq__item:not([open]) summary:hover::after { background-color: #fff; box-shadow: inset 0 0 0 1.5px var(--lu-turq); }
}
.efh-lu .lu-faq__item > p { max-width: 68ch; margin-bottom: 16px; font-size: 16.5px; line-height: 1.7; }
.efh-lu .lu-faq__item > p:last-child { margin-bottom: 30px; }
.efh-lu .lu-faq__item::details-content { block-size: 0; overflow: clip; transition: block-size .35s var(--lu-ease), content-visibility .35s allow-discrete; }
.efh-lu .lu-faq__item[open]::details-content { block-size: auto; }
.efh-lu .lu-faq__more a { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 22px; border-radius: 999px; color: var(--lu-turq-deep); font: 700 15px/1.2 var(--lu-sans); text-decoration: none; box-shadow: inset 0 0 0 1.5px var(--lu-turq); transition: background-color .2s ease, color .2s ease; }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-faq__more a:hover { background: var(--lu-turq); color: #fff; }
}

/* Analyseverfahren (/analyseverfahren-lumen/): depth of measurement. The page
   goes from the lab standard to the database and into the cell; the three
   methods are compared on an instrument (sample tube and zinc pool) that
   follows the text on wide screens. */

/* Hero: the database screen in front of the print */
.efh-lu .lu-hero__screen { position: absolute; bottom: 4%; left: -8%; width: 80%; margin: 0; filter: drop-shadow(0 30px 30px rgba(20, 58, 64, .2)); }
.efh-lu .lu-hero__screen img { display: block; width: 100%; height: auto; }

/* Uniqueness: the lab view next to ours, then the database as nested rings */
.efh-lu .lu-unique { padding-block: var(--lu-section); }
/* The award with the real SfGU seal, which overlaps the pill like a badge. */
.efh-lu .lu-award { display: inline-flex; align-items: center; gap: 16px; margin-top: 36px; padding: 10px 24px 10px 10px; border-radius: 999px; background: linear-gradient(120deg, rgba(68, 184, 190, .12), rgba(134, 188, 53, .16)); color: var(--lu-ink); font: 700 15.5px/1.35 var(--lu-sans); box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .28); }
.efh-lu .lu-award__seal { flex: none; width: 76px; margin: -22px 0 -22px -2px; }
.efh-lu .lu-award__seal img { display: block; width: 100%; height: auto; filter: drop-shadow(0 8px 12px rgba(20, 58, 64, .22)); }

.efh-lu .lu-contrast { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 36px); margin-top: clamp(40px, 5vw, 64px); }
.efh-lu .lu-view { display: flex; flex-direction: column; gap: 18px; padding: clamp(28px, 3.4vw, 52px); border-radius: 32px; font-size: 16.5px; line-height: 1.7; }
.efh-lu .lu-view--lab { background: var(--lu-mist); }
.efh-lu .lu-view--efh { border: 1.5px solid transparent; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(135deg, var(--lu-turq), var(--lu-green)) border-box; box-shadow: var(--lu-shadow); }
.efh-lu .lu-view__title { font-size: clamp(22px, 1.8vw, 26px); line-height: 1.2; }
.efh-lu .lu-view--lab .lu-view__title { color: var(--lu-meta); }
.efh-lu .lu-view--efh .lu-view__title { color: var(--lu-turq); }
.efh-lu .lu-view__case { color: var(--lu-ink); font-size: clamp(18px, 1.5vw, 21px); font-weight: 600; line-height: 1.5; }
.efh-lu .lu-view__label { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--lu-line); color: var(--lu-meta); font-size: 13.5px; font-weight: 600; line-height: 1.3; }
.efh-lu .lu-factors { display: flex; flex-wrap: wrap; gap: 8px; margin: -6px 0 0; padding: 0; list-style: none; }
.efh-lu .lu-factors li { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; margin: 0; padding: 6px 14px 6px 11px; border-radius: 999px; background: #fff; color: var(--lu-ink); font: 600 14px/1.2 var(--lu-sans); box-shadow: inset 0 0 0 1px var(--lu-line-strong); }
.efh-lu .lu-factors li::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: #a9b6b8; }
.efh-lu .lu-view--efh .lu-factors li { background: var(--lu-mist); box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .3); }
.efh-lu .lu-view--efh .lu-factors li::before { background: linear-gradient(135deg, var(--lu-turq), var(--lu-green)); }

.efh-lu .lu-base { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: clamp(48px, 6vw, 104px); margin-top: clamp(88px, 9vw, 136px); }
.efh-lu .lu-base__copy { display: grid; gap: 18px; max-width: 34em; }
.efh-lu .lu-base__title { color: var(--lu-turq); font-size: clamp(28px, 2.6vw, 38px); }
/* The database as a cell: persons, values, categories, clusters from outside in. */
.efh-lu .lu-rings { position: relative; width: min(100%, 520px); aspect-ratio: 1; margin: 0 auto; }
.efh-lu .lu-rings__ring { position: absolute; top: 50%; left: 50%; width: var(--s); aspect-ratio: 1; border-radius: 50%; transform: translate(-50%, -50%); }
.efh-lu .lu-rings__ring--1 { --s: 100%; background: radial-gradient(circle, rgba(68, 184, 190, .5) 0 1.4px, transparent 2px) 0 0 / 16px 16px, radial-gradient(circle, #f6fbfb 40%, #e6f5f5 100%); box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .35); }
.efh-lu .lu-rings__ring--2 { --s: 74%; background: radial-gradient(circle, rgba(76, 178, 160, .6) 0 1.5px, transparent 2.1px) 0 0 / 13px 13px, radial-gradient(circle, #fff 30%, #eef8f2 100%); box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .4), 0 0 0 6px rgba(255, 255, 255, .75); }
.efh-lu .lu-rings__ring--3 { --s: 48%; background: radial-gradient(circle, rgba(110, 179, 74, .7) 0 1.6px, transparent 2.2px) 0 0 / 11px 11px, radial-gradient(circle, #fff 20%, #f0f8e6 100%); box-shadow: inset 0 0 0 1px rgba(134, 188, 53, .5), 0 0 0 6px rgba(255, 255, 255, .75); }
.efh-lu .lu-rings__core { --s: 23%; display: grid; place-items: center; background: radial-gradient(circle at 34% 28%, #a6d65a 0, #6aa92f 55%, #3a9a8a 100%); color: #fff; font: 800 clamp(13px, 1.2vw, 16px)/1 var(--lu-sans); text-shadow: 0 1px 2px rgba(20, 70, 20, .35); box-shadow: 0 0 0 10px rgba(134, 188, 53, .16), 0 20px 32px -16px rgba(60, 120, 30, .7); }
.efh-lu .lu-rings__tag { position: absolute; top: 0; left: 50%; padding: 7px 15px; border-radius: 999px; background: #fff; color: var(--lu-ink); font: 600 13.5px/1.2 var(--lu-sans); white-space: nowrap; transform: translate(-50%, -50%); box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .4), 0 10px 20px -12px rgba(20, 58, 64, .45); }
.efh-lu .lu-rings__tag b { color: var(--lu-turq-deep); font-weight: 800; }

/* Methods in comparison: instrument on the left, the three methods on the right */
.efh-lu .lu-depth { padding-block: var(--lu-section); background: var(--lu-mist); }
.efh-lu .lu-depth__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: start; gap: clamp(40px, 6vw, 104px); margin-top: clamp(40px, 5vw, 64px); }
.efh-lu .lu-meter {
    --lu-serum: #ffc53d;
    --lu-cell: #ff7a4d;
    position: sticky;
    top: calc(var(--lu-sticky, 84px) + 28px);
    display: grid;
    gap: 22px;
    padding: clamp(24px, 2.8vw, 36px);
    border-radius: 36px;
    background: radial-gradient(90% 60% at 15% 0%, rgba(68, 184, 190, .45), transparent 70%), radial-gradient(70% 50% at 100% 100%, rgba(134, 188, 53, .28), transparent 70%), linear-gradient(160deg, #0e5f65 0%, #0a4a50 55%, #083c41 100%);
    color: #fff;
    box-shadow: 0 44px 80px -44px rgba(8, 60, 65, .85);
}
.efh-lu .lu-meter__title { color: #fff; font: 700 16px/1.35 var(--lu-sans); }
.efh-lu .lu-meter__bar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 4px; border-radius: 999px; background: rgba(255, 255, 255, .1); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
.efh-lu .lu-meter:not(.is-ready) .lu-meter__bar { display: none; }
.efh-lu .lu-meter__seg { min-height: 44px; padding: 8px 6px; border: 0; border-radius: 999px; background: transparent; color: rgba(255, 255, 255, .88); font: 700 14.5px/1.2 var(--lu-sans); cursor: pointer; transition: background-color .25s ease, color .25s ease, box-shadow .25s ease, transform .16s var(--lu-ease); }
.efh-lu .lu-meter__seg[aria-pressed="true"] { background: #fff; color: #0a4a50; box-shadow: 0 10px 22px -12px rgba(0, 0, 0, .6); }
.efh-lu .lu-meter__seg:active { transform: scale(.97); }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-meter__seg[aria-pressed="false"]:hover { background: rgba(255, 255, 255, .12); color: #fff; }
}
.efh-lu .lu-meter :focus-visible { outline-color: #fff; outline-offset: 2px; }
.efh-lu .lu-meter__stage { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: clamp(28px, 3.4vw, 52px); padding: 6px 4px 0 14px; }

/* The sample tube: serum above, cells below; whole blood mixes both. The light
   window marks the part each method measures. */
.efh-lu .lu-tube { position: relative; width: 64px; height: 248px; }
.efh-lu .lu-tube__cap { position: absolute; top: 0; right: -9px; left: -9px; z-index: 1; height: 20px; border-radius: 5px; background: linear-gradient(180deg, #7fd6da, #44b8be); box-shadow: inset 0 -3px 0 rgba(8, 60, 65, .2); }
.efh-lu .lu-tube__glass { position: absolute; inset: 14px 0 0; overflow: hidden; border-radius: 3px 3px 32px 32px; background: rgba(255, 255, 255, .07); }
.efh-lu .lu-tube__glass::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 3px rgba(255, 255, 255, .8), inset 10px 0 12px -9px rgba(255, 255, 255, .55); }
.efh-lu .lu-tube__glass > span { position: absolute; right: 0; left: 0; }
.efh-lu .lu-tube__serum { top: 16%; height: 36%; background: linear-gradient(180deg, #ffd65c, #fbb900 45%, #f39200); }
.efh-lu .lu-tube__cells { top: 52%; bottom: 0; background: linear-gradient(180deg, #ff6b3a, #e84f14 45%, #b8380b); }
.efh-lu .lu-tube__whole { top: 16%; bottom: 0; background: linear-gradient(180deg, #f2652e, #d8460f 60%, #b8380b); opacity: 0; transition: opacity .7s var(--lu-ease); }
.efh-lu .lu-tube__scan { top: 52%; bottom: 0; background: linear-gradient(90deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, .22) 50%, rgba(255, 255, 255, .04)); box-shadow: inset 0 2px 0 #fff, inset 0 -2px 0 rgba(255, 255, 255, .9); transition: top .7s var(--lu-ease), bottom .7s var(--lu-ease); }
.efh-lu .lu-tube__scan::after { content: ""; position: absolute; top: 0; right: 0; left: 0; height: 2px; background: #fff; box-shadow: 0 0 10px 3px rgba(255, 255, 255, .75); animation: lu-scan 2.4s ease-in-out infinite alternate; }
@keyframes lu-scan { to { top: calc(100% - 2px); } }
.efh-lu .lu-meter[data-state="serum"] .lu-tube__scan { top: 16%; bottom: 48%; }
.efh-lu .lu-meter[data-state="whole"] .lu-tube__scan { top: 16%; bottom: 0; }
.efh-lu .lu-meter[data-state="whole"] .lu-tube__whole { opacity: 1; }

/* The zinc pool: one dot per percent, in the same order as the tube
   (serum on top, the erythrocytes below). Lit dots are the ones measured. */
.efh-lu .lu-pool { display: grid; gap: clamp(5px, .6vw, 8px); width: 100%; max-width: 290px; }
.efh-lu .lu-pool__row { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: inherit; }
.efh-lu .lu-pool i { --c: rgba(255, 255, 255, .5); display: block; aspect-ratio: 1; border-radius: 50%; box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--c) 55%, transparent); transition: background-color .45s ease, box-shadow .45s ease; transition-delay: calc(var(--r, 0) * 30ms); }
.efh-lu .lu-pool .s { --c: var(--lu-serum); }
.efh-lu .lu-pool .c { --c: var(--lu-cell); }
.efh-lu .lu-meter[data-state="serum"] .lu-pool .s,
.efh-lu .lu-meter[data-state="whole"] .lu-pool :is(.s, .c),
.efh-lu .lu-meter[data-state="intra"] .lu-pool .c { background: var(--c); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c) 22%, transparent), 0 0 14px color-mix(in srgb, var(--c) 55%, transparent); }
/* Whole blood follows short-term dietary influences: the values flicker. */
.efh-lu .lu-meter[data-state="whole"] .lu-pool :is(.s, .c) { animation: lu-flicker 1.9s ease-in-out infinite alternate; }
.efh-lu .lu-pool i:nth-child(3n) { animation-delay: -.8s; }
.efh-lu .lu-pool i:nth-child(4n + 1) { animation-delay: -1.4s; animation-duration: 2.5s; }
.efh-lu .lu-pool__row:nth-child(even) i:nth-child(odd) { animation-delay: -.4s; animation-duration: 2.2s; }
@keyframes lu-flicker { to { opacity: .28; } }

/* All readouts share one cell and keep its height, so switching never moves the page. */
.efh-lu .lu-meter__readout { display: grid; }
.efh-lu .lu-meter__read { grid-area: 1 / 1; align-self: start; }
.efh-lu .lu-meter__read[hidden] { display: block; visibility: hidden; }
.efh-lu .lu-meter.is-ready .lu-meter__read:not([hidden]) { animation: lu-reveal .35s var(--lu-ease); }
.efh-lu .lu-meter__value { display: block; color: #fff; font: 800 clamp(32px, 3vw, 44px)/1.08 var(--lu-sans); letter-spacing: -.02em; }
.efh-lu .lu-meter__text { display: block; max-width: 36ch; margin-top: 8px; color: rgba(255, 255, 255, .86); font-size: 15.5px; line-height: 1.5; }
.efh-lu .lu-meter__legend { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0; padding: 18px 0 0; border-top: 1px solid rgba(255, 255, 255, .14); list-style: none; color: rgba(255, 255, 255, .85); font-size: 13.5px; line-height: 1.4; }
.efh-lu .lu-meter__key { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.efh-lu .lu-meter__key::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--c); }
.efh-lu .lu-meter__key--s { --c: var(--lu-serum); }
.efh-lu .lu-meter__key--c { --c: var(--lu-cell); }
.efh-lu .lu-meter__key--r::before { background: transparent; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .5); }
.efh-lu .lu-meter__note { margin-top: -10px; color: rgba(255, 255, 255, .7); font-size: 13px; line-height: 1.5; }

.efh-lu .lu-method { --lu-num: 56px; --lu-step-pad: clamp(40px, 4.4vw, 64px); position: relative; display: grid; gap: 16px; padding: var(--lu-step-pad) 0 var(--lu-step-pad) calc(var(--lu-num) + 28px); border-top: 1px solid var(--lu-line-strong); }
.efh-lu .lu-method:first-child { --lu-step-pad-top: 6px; padding-top: 6px; border-top: 0; }
.efh-lu .lu-method:last-child { padding-bottom: 0; }
.efh-lu .lu-method__number { position: absolute; top: calc(var(--lu-step-pad-top, var(--lu-step-pad)) - 10px); left: 0; display: grid; place-items: center; width: var(--lu-num); aspect-ratio: 1; border-radius: 50%; background: #fff; color: var(--lu-turq-deep); font: 800 22px/1 var(--lu-sans); box-shadow: inset 0 0 0 1.5px rgba(68, 184, 190, .5); transition: color .35s ease, box-shadow .35s ease; }
.efh-lu .lu-method.is-current .lu-method__number { background: linear-gradient(135deg, var(--lu-turq), var(--lu-green)); color: #fff; box-shadow: 0 0 0 8px rgba(68, 184, 190, .16); }
.efh-lu .lu-method__title { font-size: clamp(24px, 2.2vw, 31px); }
.efh-lu .lu-method p { max-width: 60ch; }
.efh-lu .lu-verdict { display: flex; align-items: flex-start; gap: 12px; padding: 15px 20px 15px 16px; border-radius: 18px; background: #fff; color: var(--lu-ink); font-size: 16px; font-weight: 700; line-height: 1.5; box-shadow: inset 0 0 0 1px var(--lu-line); }
.efh-lu .lu-verdict strong { font-weight: 700; }
.efh-lu .lu-verdict::before { content: ""; flex: none; width: 24px; height: 24px; border-radius: 50%; }
.efh-lu .lu-verdict--minus::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M6 12h12'/%3E%3C/svg%3E") center / 12px no-repeat, #8d9c9e; }
.efh-lu .lu-verdict--plus { background: linear-gradient(120deg, rgba(68, 184, 190, .14), rgba(134, 188, 53, .18)); box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .3); }
.efh-lu .lu-verdict--plus::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 13px no-repeat, linear-gradient(135deg, var(--lu-turq), var(--lu-green)); }

/* How it works: the route of the sample next to the explainer video */
.efh-lu .lu-route { padding-block: var(--lu-section); }
.efh-lu .lu-route__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); align-items: start; gap: clamp(40px, 6vw, 104px); margin-top: clamp(44px, 5vw, 72px); }
.efh-lu .lu-steps { counter-reset: lu-step; }
.efh-lu .lu-step { counter-increment: lu-step; position: relative; display: grid; gap: 8px; padding: 0 0 40px 72px; }
.efh-lu .lu-step:last-child { padding-bottom: 0; }
.efh-lu .lu-step::before { content: counter(lu-step); position: absolute; top: -8px; left: 0; z-index: 1; display: grid; place-items: center; width: 46px; aspect-ratio: 1; border-radius: 50%; background: #fff; color: var(--lu-turq-deep); font: 800 17px/1 var(--lu-sans); box-shadow: inset 0 0 0 1.5px rgba(68, 184, 190, .55); }
.efh-lu .lu-step::after { content: ""; position: absolute; top: 44px; bottom: 14px; left: 22px; width: 2px; border-radius: 2px; background: linear-gradient(var(--lu-turq), var(--lu-green)); opacity: .45; }
.efh-lu .lu-step:last-child::after { content: none; }
.efh-lu .lu-step:last-child::before { background: linear-gradient(135deg, var(--lu-turq), var(--lu-green)); color: #fff; box-shadow: 0 0 0 7px rgba(134, 188, 53, .16); }
.efh-lu .lu-step__title { font-size: 19.5px; line-height: 1.3; letter-spacing: 0; }
.efh-lu .lu-step p { font-size: 16px; line-height: 1.68; }
.efh-lu .lu-film { position: sticky; top: calc(var(--lu-sticky, 84px) + 28px); margin: 0; overflow: hidden; border-radius: 28px; background: radial-gradient(70% 60% at 20% 10%, rgba(68, 184, 190, .45), transparent 70%), linear-gradient(150deg, #0e5f65, #083c41); box-shadow: var(--lu-shadow); }
.efh-lu .lu-film .wp-block-embed__wrapper { position: relative; aspect-ratio: 16 / 9; color: transparent; font-size: 0; }
.efh-lu .lu-film .wp-block-embed__wrapper::before { content: none; }
.efh-lu .lu-film iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* Without the player (blocked on the local copy): a quiet placeholder. */
.efh-lu .lu-film .wp-block-embed__wrapper:not(:has(iframe))::after { content: ""; position: absolute; inset: 0; width: 88px; height: 88px; margin: auto; border-radius: 50%; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M8 5.5v13a1 1 0 0 0 1.5.86l11-6.5a1 1 0 0 0 0-1.72l-11-6.5A1 1 0 0 0 8 5.5Z'/%3E%3C/svg%3E") 56% 50% / 34px no-repeat, rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .55); }
.efh-lu .lu-route .lu-actions { margin-top: clamp(56px, 6vw, 88px); }

@media (max-width: 999px) {
    .efh-lu .lu-depth__body,
    .efh-lu .lu-route__body { grid-template-columns: minmax(0, 1fr); }
    .efh-lu .lu-meter { position: static; width: min(100%, 600px); margin-inline: auto; }
    .efh-lu .lu-film { position: static; }
}
@media (max-width: 860px) {
    .efh-lu .lu-hero__screen { left: -2%; width: 78%; }
    .efh-lu .lu-contrast,
    .efh-lu .lu-base { grid-template-columns: minmax(0, 1fr); }
    .efh-lu .lu-rings { width: min(100%, 420px); margin-top: 18px; }
}
@media (max-width: 640px) {
    .efh-lu .lu-award { align-items: center; padding-right: 18px; font-size: 14.5px; }
    .efh-lu .lu-view { padding: 26px 22px; border-radius: 26px; }
    .efh-lu .lu-factors { gap: 6px; }
    .efh-lu .lu-factors li { min-height: 32px; padding: 5px 11px 5px 9px; font-size: 13px; }
    .efh-lu .lu-rings__tag { padding: 6px 11px; font-size: 11.5px; }
    .efh-lu .lu-rings__core { font-size: 12px; }
    .efh-lu .lu-meter { gap: 18px; padding: 20px; border-radius: 28px; }
    .efh-lu .lu-meter__seg { font-size: 13px; }
    .efh-lu .lu-meter__stage { gap: 24px; padding-left: 10px; }
    .efh-lu .lu-tube { width: 52px; height: 204px; }
    /* Number and title share the first row; the text spans the full width. */
    .efh-lu .lu-method { --lu-num: 44px; padding-left: 0; }
    .efh-lu .lu-method__title { display: grid; grid-template-columns: var(--lu-num) minmax(0, 1fr); align-items: center; column-gap: 16px; }
    .efh-lu .lu-method__number { position: static; font-size: 18px; }
    .efh-lu .lu-step { padding-left: 62px; }
}
@media (prefers-reduced-motion: reduce) {
    .efh-lu .lu-tube__scan::after { top: 50%; animation: none; }
    .efh-lu .lu-tube__scan,
    .efh-lu .lu-pool i { transition-duration: 0s; transition-delay: 0s; }
    .efh-lu .lu-meter[data-state="whole"] .lu-pool :is(.s, .c) { opacity: .6; animation: none; }
}

/* Shared pieces of the further pilot pages */
.efh-lu .lu-head__tag { margin-top: 10px; color: var(--lu-green); font: 800 clamp(19px, 1.6vw, 23px)/1.3 var(--lu-sans); }
.efh-lu .lu-lens--img::before { content: none; }
.efh-lu .lu-lens--img img { display: block; width: 60%; height: auto; }
.efh-lu .lu-view--efh .lu-factors--warm li::before { background: linear-gradient(135deg, #fbb900, #f39200); }
.efh-lu .lu-statement { padding-left: 22px; border-left: 4px solid; border-image: linear-gradient(var(--lu-turq), var(--lu-green)) 1; color: var(--lu-ink); font: 800 clamp(24px, 2.4vw, 34px)/1.2 var(--lu-sans); letter-spacing: -.01em; }
/* A photo seen through the lens: the round crop also leaves out the old corner
   decoration baked into some images. */
.efh-lu .lu-hero__visual--lens { display: grid; place-items: center; }
.efh-lu .lu-lensphoto { position: relative; z-index: 1; width: 80%; aspect-ratio: 1; margin: 0; overflow: hidden; border-radius: 50%; box-shadow: 0 0 0 10px rgba(255, 255, 255, .75), 0 0 0 11px rgba(68, 184, 190, .35), 0 44px 70px -30px rgba(20, 58, 64, .45); }
.efh-lu .lu-lensphoto img { display: block; width: 100%; height: 100%; object-fit: cover; scale: 1.14; }
.efh-lu .lu-lensphoto--food img { object-position: 52% 48%; scale: 1.34; }
.efh-lu .lu-orbit { position: absolute; inset: 0; pointer-events: none; }
.efh-lu .lu-orbit i { position: absolute; inset: var(--in); border: 1px solid rgba(68, 184, 190, .3); border-radius: 50%; animation: lu-orbit var(--turn) linear infinite; }
.efh-lu .lu-orbit i::before,
.efh-lu .lu-orbit i::after { content: ""; position: absolute; width: var(--dot, 12px); aspect-ratio: 1; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 5px color-mix(in srgb, var(--c) 18%, transparent); }
.efh-lu .lu-orbit i::before { top: 14%; left: 14%; }
.efh-lu .lu-orbit i::after { right: 3%; bottom: 30%; --dot: 8px; }
.efh-lu .lu-orbit i:nth-child(1) { --in: 1%; --turn: 90s; --c: var(--lu-green); }
.efh-lu .lu-orbit i:nth-child(2) { --in: -5%; --turn: 140s; --c: var(--lu-turq); animation-direction: reverse; }
.efh-lu .lu-orbit i:nth-child(3) { --in: 7%; --turn: 110s; --c: #fbb900; border-color: rgba(251, 185, 0, .34); }
@keyframes lu-orbit { to { transform: rotate(1turn); } }

/* Mikronährstoffe (/mikronaehrstoffe-lumen/): the four stages of deficiency as
   wells that drain once, in the colours of the existing battery icons. */
.efh-lu .lu-micro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); align-items: start; gap: clamp(40px, 6vw, 104px); padding-block: var(--lu-section); }
.efh-lu .lu-micro__copy { display: grid; gap: 22px; max-width: 36em; font-size: 17.5px; line-height: 1.75; }
.efh-lu .lu-micro__copy .lu-head__title { margin-bottom: 8px; }
.efh-lu .lu-micro__map { gap: 16px; }
.efh-lu .lu-micro__map .lu-view__label { margin-top: 6px; }
.efh-lu .lu-print { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: clamp(40px, 6vw, 104px); overflow: clip; padding-block: var(--lu-section); background: var(--lu-mist); }
.efh-lu .lu-print__visual { position: relative; width: min(100%, 560px); aspect-ratio: 1; margin-inline: auto; }
.efh-lu .lu-print__field { inset: 2%; }
.efh-lu .lu-print__tags { position: absolute; inset: 0; margin: 0; padding: 0; list-style: none; }
.efh-lu .lu-print__tags li { position: absolute; margin: 0; padding: 9px 17px; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--lu-ink); font: 600 14.5px/1.2 var(--lu-sans); white-space: nowrap; box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .35), 0 12px 24px -14px rgba(20, 58, 64, .45); }
.efh-lu .lu-print__tags li:nth-child(1) { top: 8%; left: 2%; }
.efh-lu .lu-print__tags li:nth-child(2) { top: 20%; right: 0; }
.efh-lu .lu-print__tags li:nth-child(3) { top: 50%; left: -2%; }
.efh-lu .lu-print__tags li:nth-child(4) { right: 2%; bottom: 22%; }
.efh-lu .lu-print__tags li:nth-child(5) { bottom: 5%; left: 18%; }
.efh-lu .lu-print__copy { display: grid; gap: 24px; font-size: 17.5px; line-height: 1.75; }

.efh-lu .lu-stages { --lu-gap: clamp(20px, 3vw, 48px); --well: clamp(112px, 11vw, 150px); padding-block: var(--lu-section); }
.efh-lu .lu-stages__list { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px var(--lu-gap); margin-top: clamp(48px, 6vw, 80px); }
.efh-lu .lu-stages__list::before { content: ""; position: absolute; top: calc(var(--well) / 2); right: 12%; left: 12%; height: 2px; border-radius: 2px; background: linear-gradient(90deg, #86bc35, #fbb900, #f39200, #e84f14); opacity: .45; }
.efh-lu .lu-stage { display: grid; align-content: start; justify-items: center; gap: 10px; text-align: center; }
.efh-lu .lu-stage__well { position: relative; z-index: 1; width: var(--well); aspect-ratio: 1; margin-bottom: 14px; overflow: hidden; border-radius: 50%; background: radial-gradient(circle at 50% 32%, #fff, #edf5f5 72%); box-shadow: inset 0 0 0 2px rgba(20, 58, 64, .12), inset 0 12px 20px rgba(20, 58, 64, .07), 0 0 0 8px #fff, 0 26px 40px -24px rgba(20, 58, 64, .5); }
.efh-lu .lu-stage__fill { position: absolute; inset: 0; background: linear-gradient(180deg, color-mix(in srgb, var(--tone) 72%, #fff), var(--tone) 38%, color-mix(in srgb, var(--tone) 82%, #000)); transform: translateY(calc((1 - var(--level)) * 100%)); transition: transform 1.5s cubic-bezier(.65, 0, .35, 1); }
.efh-lu .lu-stage__fill::before { content: ""; position: absolute; top: -7px; right: -12%; left: -12%; height: 14px; border-radius: 50%; background: color-mix(in srgb, var(--tone) 52%, #fff); }
.efh-lu .lu-stage--1 { --tone: #86bc35; --level: .8; }
.efh-lu .lu-stage--2 { --tone: #fbb900; --level: .55; }
.efh-lu .lu-stage--3 { --tone: #f39200; --level: .3; }
.efh-lu .lu-stage--4 { --tone: #e84f14; --level: .1; }
.efh-lu .lu-stage--2 .lu-stage__fill { transition-delay: .3s; }
.efh-lu .lu-stage--3 .lu-stage__fill { transition-delay: .6s; }
.efh-lu .lu-stage--4 .lu-stage__fill { transition-delay: .9s; }
/* Until the section is in view the wells are full, then they drain one by one. */
.efh-lu .lu-stages.is-armed:not(.is-in) .lu-stage__fill { transform: none; transition-duration: 0s; }
.efh-lu .lu-stage__title { color: var(--lu-ink); font-size: clamp(20px, 1.6vw, 23px); }
.efh-lu .lu-stage p { max-width: 24ch; font-size: 16px; line-height: 1.6; }
/* A bracket under phases 3 and 4 */
.efh-lu .lu-stages__flag { position: relative; width: calc(50% - var(--lu-gap) / 2); margin: 30px 0 0 auto; padding-top: 24px; color: var(--lu-ink); font: 700 15.5px/1.45 var(--lu-sans); text-align: center; }
.efh-lu .lu-stages__flag::before { content: ""; position: absolute; top: 0; right: 6%; left: 6%; height: 14px; border: 2px solid rgba(232, 79, 20, .5); border-top: 0; border-radius: 0 0 12px 12px; }
.efh-lu .lu-stages .lu-actions { margin-top: clamp(56px, 6vw, 88px); }

/* Ablauf (/ablauf-lumen/): the three steps overlap the hero; the therapy schedule
   from the text becomes a step chart (one series, every value labelled). */
.efh-lu .lu-trio { position: relative; z-index: 3; margin-top: calc(-1 * clamp(104px, 10vw, 144px)); }
.efh-lu .lu-trio__card { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 3vw, 48px); max-width: 1160px; margin-inline: auto; padding: clamp(28px, 3.4vw, 48px); border: 1px solid rgba(255, 255, 255, .9); border-radius: 36px; background: rgba(255, 255, 255, .88); -webkit-backdrop-filter: blur(20px) saturate(1.4); backdrop-filter: blur(20px) saturate(1.4); box-shadow: var(--lu-shadow); }
.efh-lu .lu-trio__step { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-content: start; gap: 6px 18px; }
.efh-lu .lu-trio__step + .lu-trio__step::before { content: ""; position: absolute; top: 8px; bottom: 8px; left: calc(clamp(24px, 3vw, 48px) / -2); width: 1px; background: var(--lu-line-strong); }
.efh-lu .lu-trio__step .lu-lens { grid-row: 1 / span 2; width: 72px; }
.efh-lu .lu-trio__step .lu-lens::after { inset: -6px; }
.efh-lu .lu-trio__title { margin-top: 10px; color: var(--lu-turq); font-size: 21px; }
.efh-lu .lu-trio__step p { font-size: 15.5px; line-height: 1.6; }
.efh-lu .lu-trio--flat { margin-top: 0; padding-block: var(--lu-section); background: var(--lu-mist); }
.efh-lu .lu-trio--flat .lu-trio__card { margin-top: clamp(40px, 5vw, 64px); background: #fff; }

.efh-lu .lu-flow { padding-block: clamp(96px, 10vw, 144px) var(--lu-section); }
.efh-lu .lu-flow p { font-size: 17.5px; line-height: 1.75; }
.efh-lu .lu-flow__row { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: center; gap: clamp(40px, 6vw, 96px); margin-top: clamp(40px, 5vw, 64px); }
.efh-lu .lu-flow__wide { max-width: 960px; margin: clamp(56px, 7vw, 96px) auto 0; padding: clamp(28px, 3.4vw, 48px); border-radius: 32px; background: var(--lu-mist); }
.efh-lu .lu-flow__plan { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: center; gap: clamp(40px, 6vw, 96px); margin-top: clamp(64px, 8vw, 120px); }
.efh-lu .lu-kit { padding: clamp(26px, 3vw, 40px); border: 1.5px solid transparent; border-radius: 32px; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(135deg, var(--lu-turq), var(--lu-green)) border-box; box-shadow: var(--lu-shadow); }
.efh-lu .lu-kit__title { margin-bottom: 18px; color: var(--lu-turq); font: 800 22px/1.2 var(--lu-sans); }
.efh-lu .lu-kit__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.efh-lu .lu-kit__item { display: grid; align-content: start; justify-items: start; gap: 14px; margin: 0; padding: 18px; border-radius: 20px; background: var(--lu-mist); color: var(--lu-ink); font: 700 15px/1.35 var(--lu-sans); }
.efh-lu .lu-kit__item::before { content: ""; width: 36px; height: 36px; background: var(--lu-turq); -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.efh-lu .lu-kit__item--form { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4' width='14' height='17' rx='2'/%3E%3Cpath d='M9 4V3h6v1M8.5 10h7M8.5 13.5h7M8.5 17h4'/%3E%3C/svg%3E"); }
.efh-lu .lu-kit__item--privacy { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 5 6v5c0 4.6 3 8.2 7 10 4-1.8 7-5.4 7-10V6l-7-3Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E"); }
.efh-lu .lu-kit__item--envelope { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3.5 6.5 8.5 6 8.5-6'/%3E%3C/svg%3E"); }
.efh-lu .lu-kit__item--tubes { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3h4M8 3v14a2 2 0 0 0 4 0V3M13 3h4M14 3v14a2 2 0 0 0 4 0V3M8 11h4M14 9h4'/%3E%3C/svg%3E"); }

.efh-lu .lu-plan { margin: 0; padding: clamp(24px, 3vw, 40px); border-radius: 32px; background: #fff; box-shadow: var(--lu-shadow), inset 0 0 0 1px var(--lu-line); }
.efh-lu .lu-plan__title { color: var(--lu-ink); font: 700 16px/1.3 var(--lu-sans); }
.efh-lu .lu-plan__chart { padding-inline: 14px; }
.efh-lu .lu-plan__plot { position: relative; height: clamp(180px, 18vw, 230px); margin-top: 22px; border-bottom: 1px solid var(--lu-line-strong); background: linear-gradient(var(--lu-line), var(--lu-line)) 0 20% / 100% 1px no-repeat, linear-gradient(var(--lu-line), var(--lu-line)) 0 60% / 100% 1px no-repeat; }
.efh-lu .lu-plan__curve { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; -webkit-mask: linear-gradient(90deg, #000 86%, transparent); mask: linear-gradient(90deg, #000 86%, transparent); }
.efh-lu .lu-plan__note { position: absolute; color: var(--lu-meta); font-size: 13.5px; line-height: 1.35; }
.efh-lu .lu-plan__note b { display: block; color: var(--lu-ink); font-size: 14.5px; font-weight: 700; }
.efh-lu .lu-plan__note--load { top: calc(20% - 52px); left: 0; }
.efh-lu .lu-plan__note--full { top: 20%; right: 0; transform: translateY(-130%); }
.efh-lu .lu-plan__note--keep { top: 60%; left: 30%; transform: translateY(-115%); }
.efh-lu .lu-plan__event { position: absolute; bottom: 0; left: calc(var(--x) * 100%); z-index: 1; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--lu-ink); color: #fff; font: 800 13px/1 var(--lu-sans); box-shadow: 0 0 0 3px #fff; transform: translate(-50%, 50%); }
.efh-lu .lu-plan__axis { position: relative; height: 22px; margin-top: 18px; color: var(--lu-meta); font-size: 13px; font-variant-numeric: tabular-nums; }
.efh-lu .lu-plan__axis span { position: absolute; left: calc(var(--x) * 100%); transform: translateX(-50%); }
.efh-lu .lu-plan__events { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 22px 0 0; padding: 18px 0 0; border-top: 1px solid var(--lu-line); counter-reset: lu-event; list-style: none; color: var(--lu-ink); font: 600 14.5px/1.35 var(--lu-sans); }
.efh-lu .lu-plan__events li { display: flex; align-items: center; gap: 10px; margin: 0; counter-increment: lu-event; }
.efh-lu .lu-plan__events li::before { content: counter(lu-event); display: grid; flex: none; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--lu-ink); color: #fff; font: 800 12px/1 var(--lu-sans); }
/* Drawn once from left to right when the chart comes into view. */
.efh-lu .lu-plan .lu-plan__curve { clip-path: inset(0 0 0 0); transition: clip-path 1.8s cubic-bezier(.65, 0, .35, 1); }
.efh-lu .lu-plan .lu-plan__event { transition: opacity .4s ease, transform .5s var(--lu-ease); transition-delay: calc(.2s + var(--x) * 1.6s); }
.efh-lu .lu-plan.is-armed:not(.is-in) .lu-plan__curve { clip-path: inset(0 100% 0 0); transition-duration: 0s; }
.efh-lu .lu-plan.is-armed:not(.is-in) .lu-plan__event { opacity: 0; transform: translate(-50%, 50%) scale(.6); transition-duration: 0s; }

.efh-lu .lu-films { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 4vw, 56px); padding-block: var(--lu-section); background: var(--lu-mist); }
.efh-lu .lu-films__item { display: grid; align-content: start; gap: 22px; }
.efh-lu .lu-films__title { color: var(--lu-turq); font-size: clamp(28px, 2.6vw, 38px); }
.efh-lu .lu-films__video { margin: 0; overflow: hidden; border-radius: 28px; background: #0a4a50; box-shadow: var(--lu-shadow); }
.efh-lu .lu-films__video video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background: #0a4a50; object-fit: cover; }
.efh-lu .lu-films + .lu-faq { background: #fff; }

/* Über uns (/ueber-uns-lumen/): the research path as a time axis whose data
   points grow denser towards today; a calm, respectful memorial. */
.efh-lu .lu-origin { padding-block: var(--lu-section); }
.efh-lu .lu-origin__copy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px clamp(40px, 5vw, 80px); font-size: 17px; line-height: 1.75; }
.efh-lu .lu-origin__copy .lu-head__title { grid-column: 1 / -1; margin-bottom: 18px; }
.efh-lu .lu-years { position: relative; height: clamp(140px, 15vw, 210px); margin: clamp(56px, 7vw, 96px) 0 0; }
.efh-lu .lu-years__canvas { position: absolute; inset: 0 0 1px; display: block; width: 100%; height: calc(100% - 1px); }
.efh-lu .lu-years__marks { position: absolute; right: 0; bottom: 0; left: 0; margin: 0; padding: 0; border-top: 1px solid var(--lu-line-strong); list-style: none; }
.efh-lu .lu-years__mark { position: absolute; top: 0; left: calc(var(--at) * 100%); margin: 0; padding-top: 16px; color: var(--lu-meta); font: 700 14px/1 var(--lu-sans); white-space: nowrap; transform: translateX(-50%); }
.efh-lu .lu-years__mark::before { content: ""; position: absolute; top: -6px; left: 50%; width: 11px; height: 11px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 2.5px var(--lu-turq); transform: translateX(-50%); }
.efh-lu .lu-years__mark:first-child { transform: none; }
.efh-lu .lu-years__mark:first-child::before { left: 0; transform: none; }
.efh-lu .lu-years__mark--now { color: var(--lu-ink); transform: translateX(-100%); }
.efh-lu .lu-years__mark--now::before { right: 0; left: auto; background: var(--lu-green); box-shadow: 0 0 0 4px rgba(134, 188, 53, .22); transform: none; }
.efh-lu .lu-milestones { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 2vw, 24px); margin-top: 56px; }
.efh-lu .lu-milestone { display: grid; align-content: start; gap: 10px; padding: 24px; border-radius: 24px; background: var(--lu-mist); font-size: 15.5px; line-height: 1.6; }
.efh-lu .lu-milestone__year { color: var(--lu-turq); font: 800 22px/1.15 var(--lu-sans); }
.efh-lu .lu-milestone--now { background: linear-gradient(135deg, rgba(68, 184, 190, .16), rgba(134, 188, 53, .2)); }
.efh-lu .lu-milestone--now .lu-milestone__year { color: var(--lu-ink); }

.efh-lu .lu-memo { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); align-items: center; gap: clamp(48px, 6vw, 88px) clamp(40px, 6vw, 104px); padding-block: var(--lu-section); background: var(--lu-mist); }
.efh-lu .lu-memo__photo { width: min(100%, 440px); aspect-ratio: 1; margin: 0 auto; overflow: hidden; border-radius: 50%; box-shadow: 0 0 0 12px #fff, 0 0 0 13px rgba(68, 184, 190, .4), 0 44px 70px -30px rgba(20, 58, 64, .45); }
.efh-lu .lu-memo__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
.efh-lu .lu-memo__copy { display: grid; gap: 12px; max-width: 38em; font-size: 17px; line-height: 1.75; }
.efh-lu .lu-memo__kicker { color: var(--lu-green); font: 800 18px/1.3 var(--lu-sans); }
.efh-lu .lu-memo__name { color: var(--lu-ink); font-size: clamp(34px, 3.6vw, 52px); }
.efh-lu .lu-memo__role { margin-bottom: 10px; color: var(--lu-turq-deep); font: 700 17px/1.4 var(--lu-sans); }
.efh-lu .lu-legacy { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(24px, 4vw, 64px); margin: 0; padding: clamp(20px, 3vw, 40px) clamp(24px, 3.4vw, 48px); border-radius: 32px; background: #fff; box-shadow: var(--lu-shadow); list-style: none; }
.efh-lu .lu-legacy li { display: grid; grid-template-columns: 26px minmax(0, 1fr); align-items: start; gap: 16px; margin: 0; padding: 16px 0; border-bottom: 1px solid var(--lu-line); color: var(--lu-text); font-size: 16px; line-height: 1.55; }
.efh-lu .lu-legacy li:nth-last-child(-n + 2) { border-bottom: 0; }
.efh-lu .lu-legacy li::before { content: ""; width: 26px; height: 26px; border-radius: 50%; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat, linear-gradient(135deg, var(--lu-turq), var(--lu-green)); }
.efh-lu .lu-legacy .lu-legacy__award { color: var(--lu-ink); font-weight: 600; }
.efh-lu .lu-legacy .lu-legacy__award::before { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='5'/%3E%3Cpath d='M9.2 13.2 8 21l4-2.4 4 2.4-1.2-7.8'/%3E%3C/svg%3E") center / 14px no-repeat, linear-gradient(135deg, #fbb900, #f39200); }

/* Produkt (/stoffwechsel-analyse-lumen/): buy box rendered live by WooCommerce;
   the 16 parameters as a 4 × 4 sample plate with a reader. */
.efh-lu .lu-buy .lu-buy__summary { max-width: 600px; }
.efh-lu .lu-buy .product_title { margin: 0; color: var(--lu-ink); font-size: clamp(34px, 3.7vw, 56px); line-height: 1.06; letter-spacing: -.018em; }
.efh-lu .lu-buy .price { margin: 30px 0 0; color: var(--lu-ink); font: 800 clamp(36px, 3.2vw, 46px)/1 var(--lu-sans); letter-spacing: -.01em; }
.efh-lu .lu-buy .price .woocommerce-Price-currencySymbol { margin-left: .12em; font-size: .62em; }
.efh-lu .lu-buy .summary > p:not(.price),
.efh-lu .lu-buy .summary > div:not(.woocommerce-notices-wrapper),
.efh-lu .lu-buy .lu-buy__price > :not(.price) { margin: 10px 0 0; color: var(--lu-meta); font-size: 14.5px; line-height: 1.5; }
/* The price card: a white tag with the green-turquoise ring of the logo. On hover
   the logo gradient flows through the price from left to right (deeper steps of
   both colours, so the large figure keeps at least 3:1 on white). */
.efh-lu .lu-buy .summary > div.lu-buy__price { width: fit-content; max-width: 100%; margin: 30px 0 0; padding: 20px 28px 18px; border: 2px solid transparent; border-radius: 26px; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(110deg, #95c23d, #4dbdc6) border-box; box-shadow: -14px 24px 48px -30px rgba(20, 58, 64, .32), 14px 24px 48px -30px rgba(20, 58, 64, .32); transition: box-shadow .4s var(--lu-ease); }
.efh-lu .lu-buy .lu-buy__price .price { margin: 0; }
.efh-lu .lu-buy .lu-buy__price .price > .amount,
.efh-lu .lu-buy .lu-buy__price .price ins .amount { background: linear-gradient(100deg, #5c9f2c 0%, #2a9ba1 42%, var(--lu-ink) 58%) 100% 0 / 240% 100% no-repeat; -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; transition: background-position .6s var(--lu-ease); }
@media (hover: hover) and (pointer: fine) {
    /* The glow takes up the ring: green on the left, turquoise on the right. */
    .efh-lu .lu-buy .lu-buy__price:hover { box-shadow: -18px 22px 46px -22px rgba(134, 188, 53, .6), 18px 22px 46px -22px rgba(68, 184, 190, .6); }
    .efh-lu .lu-buy .lu-buy__price:hover .price > .amount,
    .efh-lu .lu-buy .lu-buy__price:hover .price ins .amount { background-position: 0 0; }
}
@media (max-width: 640px) {
    .efh-lu .lu-buy .summary > div.lu-buy__price { padding: 16px 22px 14px; border-radius: 22px; }
}
@media (prefers-reduced-motion: reduce) {
    .efh-lu .lu-buy .lu-buy__price,
    .efh-lu .lu-buy .lu-buy__price .amount { transition: none; }
}
.efh-lu .lu-buy .summary a:not(.button) { color: var(--lu-turq-deep); }
.efh-lu .lu-buy form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 34px 0 0; }
.efh-lu .lu-buy .quantity { display: inline-flex; align-items: center; min-height: 58px; margin: 0; padding: 4px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--lu-line-strong); }
.efh-lu .lu-buy .quantity .qty { width: 52px; min-height: 48px; padding: 0; border: 0; background: transparent; color: var(--lu-ink); font: 700 18px/1 var(--lu-sans); text-align: center; -moz-appearance: textfield; }
.efh-lu .lu-buy .quantity .qty::-webkit-inner-spin-button,
.efh-lu .lu-buy .quantity .qty::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.efh-lu .lu-buy .quantity button,
.efh-lu .lu-buy .quantity .minus,
.efh-lu .lu-buy .quantity .plus { display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: var(--lu-mist); color: var(--lu-ink); font: 700 20px/1 var(--lu-sans); cursor: pointer; transition: background-color .2s ease; }
.efh-lu .lu-buy .single_add_to_cart_button { display: inline-flex; align-items: center; justify-content: center; min-height: 58px; padding: 15px 34px; border: 0; border-radius: 999px; background: var(--lu-button); background-size: 220% 100%; color: #fff; font: 700 19px/1.25 var(--lu-sans); text-shadow: 0 1px 1px rgba(30, 70, 10, .28); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), inset 0 -2px 0 rgba(0, 0, 0, .08), 0 14px 28px -14px rgba(92, 159, 44, .95); cursor: pointer; transition: background-position .5s var(--lu-ease), box-shadow .25s ease, transform .16s var(--lu-ease); }
.efh-lu .lu-buy .single_add_to_cart_button:active { transform: scale(.97); }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-buy .single_add_to_cart_button:hover { background-position: 100% 0; color: #fff; }
    .efh-lu .lu-buy .quantity button:hover,
    .efh-lu .lu-buy .quantity .minus:hover,
    .efh-lu .lu-buy .quantity .plus:hover { background: var(--lu-mist-2); }
}
.efh-lu .lu-buy .woocommerce-notices-wrapper:not(:empty) { margin-bottom: 24px; }
.efh-lu .lu-buy .woocommerce-message,
.efh-lu .lu-buy .woocommerce-error,
.efh-lu .lu-buy .woocommerce-info { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin: 0; padding: 16px 20px; border: 0; border-radius: 18px; background: #fff; color: var(--lu-ink); font-size: 15px; list-style: none; box-shadow: inset 0 0 0 1.5px var(--lu-turq); }
.efh-lu .lu-buy .woocommerce-message::before { content: none; }
.efh-lu .lu-buy .woocommerce-message .button { order: 2; color: var(--lu-turq-deep); font-weight: 700; }
/* The product photo has a white background: it sits in a white lens, in front of the print. */
.efh-lu .lu-buy .lu-buy__box { bottom: 3%; left: -2%; display: grid; place-items: center; width: 80%; aspect-ratio: 1; overflow: hidden; border-radius: 50%; background: radial-gradient(circle at 50% 42%, #fff 62%, #f2f8f8 100%); box-shadow: 0 0 0 10px rgba(255, 255, 255, .65), 0 0 0 11px rgba(68, 184, 190, .35), 0 44px 70px -30px rgba(20, 58, 64, .45); filter: none; }
.efh-lu .lu-buy__box img { display: block; width: 84%; height: auto; }

.efh-lu .lu-goals { position: relative; z-index: 2; margin-top: calc(-1 * clamp(36px, 4vw, 56px)); }
.efh-lu .lu-goals__list { display: grid; grid-template-columns: repeat(var(--lu-goals, 4), minmax(0, 1fr)); gap: 8px 16px; max-width: min(1160px, calc(var(--lu-goals, 4) * 290px)); margin: 0 auto; padding: 16px 24px; border-radius: 999px; background: rgba(255, 255, 255, .92); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); box-shadow: var(--lu-shadow); list-style: none; }
.efh-lu .lu-goal { display: flex; align-items: center; gap: 14px; margin: 0; color: var(--lu-ink); font: 700 15px/1.3 var(--lu-sans); }
.efh-lu .lu-goal .lu-lens { flex: none; width: 52px; }
.efh-lu .lu-goal .lu-lens::after { inset: -5px; }
/* A single goal sits as one pill, centred, at every width. */
.efh-lu .lu-goals__list.lu-goals__list--solo { grid-template-columns: auto; width: fit-content; max-width: 100%; padding-right: 32px; border-radius: 999px; }

.efh-lu .lu-assay-section { padding-block: var(--lu-section); }
.efh-lu .lu-assay { --kind: var(--lu-turq); margin-top: clamp(40px, 5vw, 64px); }
.efh-lu .lu-assay__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.efh-lu .lu-assay__item { margin: 0; padding: 22px 24px; border-radius: 22px; background: var(--lu-mist); }
.efh-lu .lu-assay__item--intra { --kind: var(--lu-green); }
.efh-lu .lu-assay__item--urine { --kind: #fbb900; }
.efh-lu .lu-assay__item--saliva { --kind: var(--lu-ink); }
.efh-lu .lu-assay__name { font-size: 18px; line-height: 1.3; }
.efh-lu .lu-assay__head { margin-top: 8px; color: var(--lu-turq-deep); font: 700 15px/1.4 var(--lu-sans); }
.efh-lu .lu-assay__note { margin-top: 8px; font-size: 15.5px; line-height: 1.65; }
.efh-lu .lu-assay__legend { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 22px 0 0; padding: 0; color: var(--lu-meta); font-size: 14px; list-style: none; }
.efh-lu .lu-assay__key { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.efh-lu .lu-assay__key::before { content: ""; width: 12px; height: 12px; border-radius: 50%; background: var(--kind); }
.efh-lu .lu-assay__key--intra { --kind: var(--lu-green); }
.efh-lu .lu-assay__key--urine { --kind: #fbb900; }
.efh-lu .lu-assay__key--saliva { --kind: var(--lu-ink); }
/* With lumen.js: the plate on the left, the reader on the right. */
.efh-lu .lu-assay.is-ready { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); grid-template-areas: "plate reader" "legend reader"; align-items: center; gap: 0 clamp(32px, 5vw, 80px); }
.efh-lu .lu-assay__plate { grid-area: plate; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(8px, 1.2vw, 16px) clamp(6px, .8vw, 12px); padding: clamp(18px, 2.6vw, 36px); border-radius: 36px; background: #fff; box-shadow: var(--lu-shadow), inset 0 0 0 1px var(--lu-line); }
.efh-lu .lu-assay.is-ready .lu-assay__legend { grid-area: legend; align-self: start; }
.efh-lu .lu-assay__well { --kind: var(--lu-turq); display: grid; align-content: start; justify-items: center; gap: 10px; min-width: 0; padding: 10px 4px 12px; border: 0; border-radius: 20px; background: transparent; color: var(--lu-ink); font: 600 13px/1.25 var(--lu-sans); text-align: center; hyphens: manual; overflow-wrap: break-word; cursor: pointer; transition: background-color .2s ease; }
.efh-lu .lu-assay__well--intra { --kind: var(--lu-green); }
.efh-lu .lu-assay__well--urine { --kind: #fbb900; }
.efh-lu .lu-assay__well--saliva { --kind: var(--lu-ink); }
/* Unused wells complete the last row of the plate. */
.efh-lu .lu-assay__well--empty { cursor: default; pointer-events: none; }
.efh-lu .lu-assay__well--empty .lu-assay__dot { background: transparent; box-shadow: inset 0 0 0 2px var(--lu-line-strong); }
.efh-lu .lu-assay__dot { width: clamp(38px, 4.2vw, 56px); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 36% 30%, rgba(255, 255, 255, .7) 0 14%, transparent 15%), var(--kind); box-shadow: inset 0 -4px 6px rgba(0, 0, 0, .14), 0 0 0 4px color-mix(in srgb, var(--kind) 16%, transparent); transition: transform .3s var(--lu-ease), box-shadow .3s ease, opacity .4s ease; }
.efh-lu .lu-assay__well[aria-selected="true"] { background: var(--lu-mist); }
.efh-lu .lu-assay__well[aria-selected="true"] .lu-assay__dot { box-shadow: inset 0 -4px 6px rgba(0, 0, 0, .14), 0 0 0 6px color-mix(in srgb, var(--kind) 30%, transparent), 0 0 26px color-mix(in srgb, var(--kind) 70%, transparent); transform: scale(1.08); }
.efh-lu .lu-assay__well:active .lu-assay__dot { transform: scale(.94); }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-assay__well:hover { background: var(--lu-mist); }
}
/* The plate is filled once, well by well, when it comes into view. */
.efh-lu .lu-assay.is-armed:not(.is-in) .lu-assay__dot { opacity: .25; transform: scale(.7); transition-duration: 0s; }
.efh-lu .lu-assay.is-in:not(.is-filled) .lu-assay__dot { transition-delay: calc(var(--i, 0) * 45ms); }
.efh-lu .lu-assay__reader { grid-area: reader; position: relative; padding: clamp(28px, 3.4vw, 48px); overflow: hidden; border-radius: 36px; background: radial-gradient(90% 70% at 100% 0%, color-mix(in srgb, var(--kind) 22%, transparent), transparent 70%), var(--lu-mist); transition: background-color .3s ease; }
.efh-lu .lu-assay__reader .lu-assay__list { display: grid; }
.efh-lu .lu-assay__reader .lu-assay__item { grid-area: 1 / 1; padding: 0; background: none; }
.efh-lu .lu-assay__reader .lu-assay__item[hidden] { display: block; visibility: hidden; }
.efh-lu .lu-assay__reader .lu-assay__item:not([hidden]) { animation: lu-reveal .35s var(--lu-ease); }
.efh-lu .lu-assay__reader .lu-assay__name { font-size: clamp(24px, 2.2vw, 31px); line-height: 1.15; }
.efh-lu .lu-assay__reader .lu-assay__head { margin-top: 12px; font-size: 16px; }
.efh-lu .lu-assay__reader .lu-assay__note { margin-top: 14px; font-size: 17px; line-height: 1.7; }
.efh-lu .lu-assay__meta { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.efh-lu .lu-assay__count { display: inline-flex; align-items: center; gap: 10px; color: var(--lu-meta); font: 700 14px/1 var(--lu-sans); font-variant-numeric: tabular-nums; }
.efh-lu .lu-assay__count::before { content: ""; width: 16px; height: 16px; border-radius: 50%; background: var(--kind); box-shadow: 0 0 0 4px color-mix(in srgb, var(--kind) 22%, transparent); }
.efh-lu .lu-assay__nav { display: flex; gap: 8px; }
.efh-lu .lu-assay__step { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: #fff; color: var(--lu-ink); cursor: pointer; box-shadow: inset 0 0 0 1px var(--lu-line-strong); transition: background-color .2s ease, color .2s ease, transform .16s var(--lu-ease); }
.efh-lu .lu-assay__step:active { transform: scale(.94); }
.efh-lu .lu-assay__step:disabled { opacity: .35; cursor: default; transform: none; }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-assay__step:not(:disabled):hover { background: var(--lu-ink); color: #fff; }
}
.efh-lu .lu-assay__tag { display: inline-block; margin-top: 18px; padding: 6px 14px; border-radius: 999px; background: #fff; color: var(--lu-ink); font: 600 13.5px/1.2 var(--lu-sans); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--kind) 60%, transparent); }
/* Up to three parameters: cards in the look of the reader instead of a plate. */
.efh-lu .lu-assay--few .lu-assay__list { grid-template-columns: repeat(var(--lu-assay-n, 3), minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); max-width: calc(var(--lu-assay-n, 3) * 520px); }
.efh-lu .lu-assay--few .lu-assay__item { display: flex; flex-direction: column; align-items: flex-start; padding: clamp(26px, 3vw, 40px); border-radius: 32px; background: radial-gradient(90% 70% at 100% 0%, color-mix(in srgb, var(--kind) 20%, transparent), transparent 70%), var(--lu-mist); }
.efh-lu .lu-assay--few .lu-assay__name { display: flex; align-items: flex-start; gap: 14px; font-size: clamp(22px, 2vw, 27px); line-height: 1.2; }
.efh-lu .lu-assay--few .lu-assay__name::before { content: ""; flex: none; width: 16px; height: 16px; margin-top: .3em; border-radius: 50%; background: var(--kind); box-shadow: 0 0 0 4px color-mix(in srgb, var(--kind) 22%, transparent); }
.efh-lu .lu-assay--few .lu-assay__note { margin-top: 14px; font-size: 17px; line-height: 1.7; }
.efh-lu .lu-assay--few .lu-assay__tag { margin-top: auto; }
/* Petrol (saliva) would turn the light glow grey; it gets a lighter one. */
.efh-lu :is(.lu-assay--few .lu-assay__item--saliva, .lu-assay__reader[data-kind="saliva"]) { background: radial-gradient(90% 70% at 100% 0%, rgba(68, 184, 190, .16), transparent 70%), var(--lu-mist); }
.efh-lu .lu-assay--few .lu-assay__note + .lu-assay__tag { margin-top: 22px; }
.efh-lu .lu-trio--flat .lu-actions { margin-top: clamp(48px, 5vw, 72px); }

@media (max-width: 1099px) {
    .efh-lu .lu-goals__list { grid-template-columns: repeat(2, minmax(0, 1fr)); border-radius: 32px; }
    .efh-lu .lu-milestones { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 999px) {
    .efh-lu .lu-trio__card { grid-template-columns: minmax(0, 1fr); }
    .efh-lu .lu-trio__step + .lu-trio__step::before { top: calc(clamp(24px, 3vw, 48px) / -2); right: 0; bottom: auto; left: 0; width: auto; height: 1px; }
    .efh-lu .lu-flow__row,
    .efh-lu .lu-flow__plan,
    .efh-lu .lu-micro,
    .efh-lu .lu-print,
    .efh-lu .lu-memo { grid-template-columns: minmax(0, 1fr); }
    .efh-lu .lu-flow__plan > p { order: -1; }
    /* The reader follows the plate directly, so a tapped well shows its text below. */
    .efh-lu .lu-assay.is-ready { grid-template-columns: minmax(0, 1fr); grid-template-areas: "plate" "reader" "legend"; gap: 16px; }
}
@media (max-width: 860px) {
    .efh-lu .lu-stages__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .efh-lu .lu-stages__list::before { content: none; }
    .efh-lu .lu-stages__flag { width: 100%; }
    .efh-lu .lu-films,
    .efh-lu .lu-origin__copy { grid-template-columns: minmax(0, 1fr); }
    .efh-lu .lu-legacy { grid-template-columns: minmax(0, 1fr); }
    .efh-lu .lu-legacy li:nth-last-child(2) { border-bottom: 1px solid var(--lu-line); }
    .efh-lu .lu-hero__visual--lens { aspect-ratio: 1 / .9; }
    .efh-lu .lu-assay--few .lu-assay__list { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
    .efh-lu .lu-stages { --well: 104px; }
    .efh-lu .lu-stages__list { gap: 32px 16px; }
    .efh-lu .lu-stage p { font-size: 15px; }
    .efh-lu .lu-print__tags li { padding: 7px 12px; font-size: 12.5px; }
    .efh-lu .lu-trio__card { padding: 24px 22px; border-radius: 28px; }
    .efh-lu .lu-trio__step { grid-template-columns: 52px minmax(0, 1fr); align-items: center; row-gap: 12px; }
    .efh-lu .lu-trio__step .lu-lens { grid-row: auto; width: 52px; }
    .efh-lu .lu-trio__title { margin-top: 0; }
    .efh-lu .lu-trio__step p { grid-column: 1 / -1; }
    .efh-lu .lu-kit__list { grid-template-columns: minmax(0, 1fr); }
    .efh-lu .lu-kit__item { grid-template-columns: 30px minmax(0, 1fr); align-items: center; padding: 14px 16px; }
    .efh-lu .lu-kit__item::before { width: 30px; height: 30px; }
    .efh-lu .lu-plan { padding: 20px 16px; border-radius: 24px; }
    .efh-lu .lu-plan__note { font-size: 12px; }
    .efh-lu .lu-plan__note b { font-size: 13px; }
    .efh-lu .lu-plan__note--keep { left: 14%; }
    .efh-lu .lu-plan__note--full { max-width: 9em; text-align: right; }
    .efh-lu .lu-milestones { grid-template-columns: minmax(0, 1fr); }
    .efh-lu .lu-years { margin-right: 22px; }
    .efh-lu .lu-years__mark { font-size: 12.5px; }
    .efh-lu .lu-goals__list { gap: 14px 10px; padding: 16px; border-radius: 26px; }
    .efh-lu .lu-goal { gap: 10px; font-size: 13.5px; }
    .efh-lu .lu-goal .lu-lens { width: 40px; }
    .efh-lu .lu-assay__plate { gap: 2px; padding: 12px 10px; border-radius: 26px; }
    .efh-lu .lu-assay__well { gap: 6px; padding: 8px 2px; border-radius: 14px; font-size: 11px; }
    .efh-lu .lu-assay__dot { width: 34px; }
    .efh-lu .lu-assay__reader { padding: 24px 22px; border-radius: 28px; }
    .efh-lu .lu-buy form.cart { gap: 10px; }
    .efh-lu .lu-buy .lu-buy__box { bottom: 2%; left: 8%; width: 78%; }
    .efh-lu .lu-buy .single_add_to_cart_button { flex: 1 1 200px; }
}
@media (prefers-reduced-motion: reduce) {
    .efh-lu .lu-orbit i { animation: none; }
    .efh-lu .lu-stage__fill,
    .efh-lu .lu-plan .lu-plan__curve,
    .efh-lu .lu-plan .lu-plan__event,
    .efh-lu .lu-assay__dot { transition: none; }
}

/* Themenseiten (/stoffwechsel-aktivieren-lumen/, /schlafverhalten-lumen/,
   /performance-lumen/): one structure (situation, explanation, why an analysis)
   with one central element per page drawn from its text: the energy turnover in
   two wells, the layers down to the deeper cause, the dosage window. */
.efh-lu .lu-hero--topic .lu-hero__title { font-size: clamp(36px, 3.6vw, 54px); line-height: 1.08; }
.efh-lu .lu-hero--topic .lu-hero__copy { max-width: 640px; }
.efh-lu .lu-lensphoto--lab img { object-position: 30% 60%; scale: 1.18; }
/* A photo whose scene needs its full width (cake and salad, the phone at night,
   the running track, the banner behind the speaker) sits in a rounded frame
   instead of the round lens: the same ring, the orbiting data points around it
   (their paths pass behind the photo) and the topic icon in a small lens. */
.efh-lu .lu-hero .lu-hero__visual--frame { display: grid; place-items: center; aspect-ratio: auto; padding: 36px 0 44px; }
.efh-lu .lu-hero__visual--frame .lu-orbit { inset: auto; top: 50%; left: 50%; z-index: 0; width: 108%; aspect-ratio: 1; transform: translate(-50%, -50%); }
.efh-lu .lu-framephoto { position: relative; z-index: 1; width: 100%; margin: 0; overflow: hidden; border-radius: 32px; box-shadow: 0 0 0 10px rgba(255, 255, 255, .75), 0 0 0 11px rgba(68, 184, 190, .35), 0 44px 70px -30px rgba(20, 58, 64, .45); }
.efh-lu .lu-framephoto img { display: block; width: 100%; height: auto; }
.efh-lu .lu-framephoto__lens { position: absolute; bottom: -10px; left: -30px; z-index: 2; width: clamp(80px, 8vw, 104px); }
/* The lecture photo carries a green line and a print baked into its edges: the
   frame shows the scene between them, banner and lectern included. */
.efh-lu .lu-framephoto--talk { aspect-ratio: 1.36; }
.efh-lu .lu-framephoto--talk img { position: absolute; top: -6.3%; left: -14.9%; width: 135.1%; max-width: none; height: auto; }
.efh-lu .lu-hero--night .lu-framephoto { box-shadow: 0 0 0 10px rgba(255, 255, 255, .06), 0 0 0 11px rgba(68, 184, 190, .45), 0 44px 80px -30px rgba(0, 0, 0, .65); }
.efh-lu .lu-hero--night .lu-orbit i { border-color: rgba(255, 255, 255, .16); }
/* Sleep: the page starts at night and ends in the morning light. */
.efh-lu .lu-hero--night { background: radial-gradient(56% 70% at 76% 42%, rgba(68, 184, 190, .24), transparent 70%), linear-gradient(168deg, #08262d 0%, #0c353c 52%, #10454b 100%); }
.efh-lu .lu-hero--night::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background-image: radial-gradient(circle at 6% 18%, rgba(255, 255, 255, .8) 0 1.2px, transparent 2px), radial-gradient(circle at 14% 64%, rgba(255, 255, 255, .5) 0 1px, transparent 1.8px), radial-gradient(circle at 22% 8%, rgba(134, 188, 53, .7) 0 1.4px, transparent 2.2px), radial-gradient(circle at 31% 86%, rgba(255, 255, 255, .55) 0 1px, transparent 1.8px), radial-gradient(circle at 38% 30%, rgba(255, 255, 255, .7) 0 1.1px, transparent 2px), radial-gradient(circle at 47% 12%, rgba(68, 184, 190, .9) 0 1.5px, transparent 2.4px), radial-gradient(circle at 52% 72%, rgba(255, 255, 255, .45) 0 1px, transparent 1.8px), radial-gradient(circle at 61% 6%, rgba(255, 255, 255, .75) 0 1.2px, transparent 2px), radial-gradient(circle at 70% 90%, rgba(134, 188, 53, .6) 0 1.2px, transparent 2px), radial-gradient(circle at 83% 10%, rgba(255, 255, 255, .6) 0 1px, transparent 1.8px), radial-gradient(circle at 92% 34%, rgba(255, 255, 255, .8) 0 1.3px, transparent 2.1px), radial-gradient(circle at 96% 78%, rgba(68, 184, 190, .8) 0 1.3px, transparent 2.1px); }
.efh-lu .lu-hero--night .lu-hero__title { color: #fff; }
.efh-lu .lu-hero--night .lu-lead { color: rgba(227, 238, 239, .86); }
.efh-lu .lu-hero--night :focus-visible { outline-color: #fff; }

.efh-lu .lu-scene { padding-block: var(--lu-section); }
.efh-lu .lu-scene__story { display: grid; gap: 22px; max-width: 760px; margin-inline: auto; font-size: clamp(18px, 1.4vw, 20px); line-height: 1.75; }
.efh-lu .lu-scene__story .lu-head__title { margin-bottom: 6px; }
.efh-lu .lu-scene__story strong { color: var(--lu-ink); font-weight: 700; }
.efh-lu .lu-scene--night { padding-bottom: calc(var(--lu-section) + clamp(80px, 10vw, 160px)); background: linear-gradient(180deg, #10454b 0%, #0f4c52 calc(100% - clamp(200px, 22vw, 340px)), var(--lu-mist) 100%); color: rgba(227, 238, 239, .88); }
.efh-lu .lu-scene--night .lu-head__title { color: #74d0d5; }
.efh-lu .lu-scene--night .lu-scene__story strong { color: #fff; }
/* The call to action of a situation: the product (or its icon) and the order button. */
.efh-lu .lu-offer { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: clamp(20px, 3vw, 40px); max-width: 980px; margin: clamp(56px, 6vw, 88px) auto 0; padding: clamp(14px, 1.6vw, 20px) clamp(24px, 3.4vw, 48px) clamp(14px, 1.6vw, 20px) clamp(14px, 1.6vw, 20px); border: 1.5px solid transparent; border-radius: 999px; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(110deg, #95c23d, #4dbdc6) border-box; box-shadow: var(--lu-shadow); }
.efh-lu .lu-offer__box { display: grid; place-items: center; width: clamp(116px, 12vw, 156px); aspect-ratio: 1; margin: 0; overflow: hidden; border-radius: 50%; background: radial-gradient(circle at 50% 42%, #fff 62%, #f2f8f8 100%); box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .35); }
.efh-lu .lu-offer__box img { display: block; width: 88%; height: auto; }
.efh-lu .lu-offer .lu-offer__lens { grid-row: auto; width: clamp(96px, 10vw, 124px); }
.efh-lu .lu-offer__lead { color: var(--lu-turq); font: 800 clamp(22px, 2vw, 28px)/1.2 var(--lu-sans); letter-spacing: -.01em; }
.efh-lu .lu-offer .lu-actions { margin-top: 14px; }

/* Text columns of the topic pages never grow wider than their track. */
.efh-lu :is(.lu-burn__copy, .lu-dose__copy, .lu-proof__copy, .lu-print__copy, .lu-why__copy, .lu-scene__story) { grid-template-columns: minmax(0, 1fr); }
/* Long statements as section headings stay a size smaller. */
.efh-lu :is(.lu-burn, .lu-dose, .lu-proof, .lu-print--why, .lu-tips) .lu-head__title { font-size: clamp(28px, 2.7vw, 40px); line-height: 1.14; }

.efh-lu .lu-burn { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); align-items: start; gap: clamp(40px, 6vw, 104px); padding-block: var(--lu-section); background: var(--lu-mist); }
.efh-lu .lu-burn__copy { display: grid; gap: 22px; max-width: 38em; font-size: 17.5px; line-height: 1.75; }
.efh-lu .lu-burn__copy .lu-head__title { margin-bottom: 8px; }
.efh-lu .lu-burn__copy strong { color: var(--lu-ink); font-weight: 700; }
.efh-lu .lu-burn__figure { position: sticky; top: calc(var(--lu-sticky, 84px) + 32px); margin: 0; padding: clamp(24px, 2.6vw, 36px); border-radius: 32px; background: #fff; box-shadow: var(--lu-shadow); }
.efh-lu .lu-burn__title { color: var(--lu-ink); font: 700 16px/1.3 var(--lu-sans); }
.efh-lu .lu-burn__cases { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); margin-top: 24px; }
.efh-lu .lu-burn__case { display: grid; align-content: start; justify-items: center; gap: 6px; text-align: center; }
.efh-lu .lu-burn__well { position: relative; width: 100%; max-width: 220px; aspect-ratio: 1; margin-bottom: 14px; overflow: hidden; border-radius: 50%; background: radial-gradient(circle at 50% 32%, #fff, #edf5f5 72%); box-shadow: inset 0 0 0 2px rgba(20, 58, 64, .12), inset 0 12px 20px rgba(20, 58, 64, .07), 0 0 0 8px var(--lu-mist), 0 26px 40px -24px rgba(20, 58, 64, .5); }
.efh-lu .lu-burn__canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
/* Without the script the slow well shows its reserve as a still layer. */
.efh-lu .lu-burn__figure:not(.is-ready) .lu-burn__well--slow::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 30%; background: radial-gradient(circle, #fbb900 0 5px, transparent 5.5px) 50% 100% / 14px 12px, linear-gradient(transparent, rgba(251, 185, 0, .16)); }
.efh-lu .lu-burn__name { color: var(--lu-ink); font-size: 18px; line-height: 1.25; letter-spacing: 0; }
.efh-lu .lu-burn__note { max-width: 24ch; font-size: 14.5px; line-height: 1.5; }
.efh-lu .lu-burn__legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 20px; margin: 24px 0 0; padding: 18px 0 0; border-top: 1px solid var(--lu-line); color: var(--lu-meta); font-size: 13.5px; list-style: none; }
.efh-lu .lu-burn__key { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.efh-lu .lu-burn__key::before { content: ""; width: 11px; height: 11px; border-radius: 50%; background: var(--lu-turq); }
.efh-lu .lu-burn__key--energy::before { background: var(--lu-green); box-shadow: 0 0 0 4px rgba(134, 188, 53, .22); }
.efh-lu .lu-burn__key--reserve::before { background: #fbb900; }
.efh-lu .lu-burn__replay { display: flex; align-items: center; gap: 8px; min-height: 44px; margin: 16px auto 0; padding: 10px 20px; border: 0; border-radius: 999px; background: var(--lu-mist); color: var(--lu-turq-deep); font: 700 14.5px/1.2 var(--lu-sans); cursor: pointer; transition: background-color .2s ease, transform .16s var(--lu-ease); }
.efh-lu .lu-burn__replay::before { content: ""; width: 16px; height: 16px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12a8 8 0 1 0 2.3-5.6M4 4v4h4'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12a8 8 0 1 0 2.3-5.6M4 4v4h4'/%3E%3C/svg%3E") center / contain no-repeat; }
.efh-lu .lu-burn__replay[hidden] { display: none; }
.efh-lu .lu-burn__replay:active { transform: scale(.97); }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-burn__replay:hover { background: var(--lu-mist-2); }
}

/* Why an analysis: the statement, the call and where conventional tests look. */
.efh-lu .lu-why { padding-block: var(--lu-section); background: linear-gradient(180deg, #fff, var(--lu-mist)); }
.efh-lu .lu-why__title { max-width: 980px; color: var(--lu-ink); font-size: clamp(21px, 1.9vw, 27px); font-weight: 700; line-height: 1.4; letter-spacing: 0; }
.efh-lu .lu-why__punch { display: block; margin-top: 14px; color: var(--lu-turq); font-size: clamp(38px, 4.4vw, 64px); font-weight: 800; line-height: 1.04; letter-spacing: -.02em; }
.efh-lu .lu-why__title--single { max-width: 900px; color: var(--lu-turq); font-size: clamp(32px, 3.6vw, 50px); font-weight: 800; line-height: 1.1; letter-spacing: -.015em; }
.efh-lu .lu-why--morning { background: linear-gradient(180deg, #fff 0%, var(--lu-mist) 45%, #eef6e4 100%); }
.efh-lu .lu-why__body { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); align-items: center; gap: clamp(40px, 6vw, 104px); margin-top: clamp(40px, 5vw, 64px); }
.efh-lu .lu-why__copy { display: grid; gap: 22px; font-size: 17.5px; line-height: 1.75; }
.efh-lu .lu-why__call { color: var(--lu-ink); font: 700 clamp(19px, 1.6vw, 22px)/1.45 var(--lu-sans); }
.efh-lu .lu-why__copy .lu-actions,
.efh-lu .lu-print__copy .lu-actions { margin-top: 10px; }
.efh-lu .lu-layers { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px clamp(20px, 3vw, 36px); margin: 0; padding: clamp(24px, 3vw, 40px); border-radius: 32px; background: #fff; box-shadow: var(--lu-shadow); }
.efh-lu .lu-layers__rings { position: relative; width: 100%; max-width: 260px; aspect-ratio: 1; justify-self: center; }
.efh-lu .lu-layers__ring { position: absolute; border-radius: 50%; }
.efh-lu .lu-layers__ring--serum { inset: 0; background: #fff7df; box-shadow: inset 0 0 0 1.5px rgba(251, 185, 0, .6); }
.efh-lu .lu-layers__ring--whole { inset: 17%; background: #fde9df; box-shadow: inset 0 0 0 1.5px rgba(243, 146, 0, .5); }
.efh-lu .lu-layers__ring--cells { inset: 34%; background: radial-gradient(circle at 36% 30%, #d3eaa9, #86bc35 58%, #5c9f2c); box-shadow: 0 0 0 8px rgba(134, 188, 53, .18), 0 0 44px rgba(134, 188, 53, .55); }
.efh-lu .lu-layers__labels { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.efh-lu .lu-layers__label { display: flex; align-items: center; gap: 12px; margin: 0; color: var(--lu-ink); font: 700 16px/1.3 var(--lu-sans); }
.efh-lu .lu-layers__label::before { content: ""; flex: none; width: 14px; height: 14px; border-radius: 50%; }
.efh-lu .lu-layers__label--serum::before { background: #fff7df; box-shadow: inset 0 0 0 1.5px #fbb900; }
.efh-lu .lu-layers__label--whole::before { background: #fde9df; box-shadow: inset 0 0 0 1.5px #f39200; }
.efh-lu .lu-layers__label--cells::before { background: var(--lu-green); box-shadow: 0 0 0 4px rgba(134, 188, 53, .22); }
.efh-lu .lu-layers__notes { display: grid; grid-column: 1 / -1; gap: 10px; padding-top: 20px; border-top: 1px solid var(--lu-line); font-size: 15px; line-height: 1.55; }
.efh-lu .lu-layers__note { display: block; color: var(--lu-meta); }
.efh-lu .lu-layers__note--cells { color: var(--lu-ink); font-weight: 700; }

/* Sleep: the common tips, then the layers down to the deeper cause. */
.efh-lu .lu-tips { padding-block: clamp(48px, 6vw, 88px) var(--lu-section); background: linear-gradient(180deg, var(--lu-mist), #fff 42%); }
.efh-lu .lu-tips__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 22px); max-width: 1160px; margin: clamp(40px, 5vw, 64px) auto 0; padding: 0; list-style: none; }
.efh-lu .lu-tip { display: grid; align-content: start; gap: 18px; margin: 0; padding: 26px 24px 28px; border-radius: 26px; background: #fff; color: var(--lu-ink); font: 600 16px/1.5 var(--lu-sans); box-shadow: var(--lu-shadow), inset 0 0 0 1px var(--lu-line); }
.efh-lu .lu-tip::before { content: ""; width: 60px; height: 60px; border-radius: 50%; background: var(--icon) center / 28px no-repeat, radial-gradient(circle at 34% 28%, #fff 0 16%, #edf8f8 48%, #d5eef0 100%); box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .45), 0 12px 22px -16px rgba(20, 58, 64, .5); }
.efh-lu .lu-tip--screen { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232a9ba1' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='7' y='3' width='10' height='18' rx='2.2'/%3E%3Cpath d='M11 17.5h2'/%3E%3C/svg%3E"); }
.efh-lu .lu-tip--devices { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232a9ba1' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3v5M15 3v5M6.5 8h11v3a5.5 5.5 0 0 1-11 0V8ZM12 16.5V21'/%3E%3C/svg%3E"); }
.efh-lu .lu-tip--meal { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232a9ba1' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='14' cy='12' r='6.5'/%3E%3Ccircle cx='14' cy='12' r='3'/%3E%3Cpath d='M4 3v6.5M2.5 3v4.5a1.5 1.5 0 0 0 3 0V3M4 9.5V21'/%3E%3C/svg%3E"); }
.efh-lu .lu-tip--air { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232a9ba1' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5h10.5a3 3 0 1 0-3-3M3 12.5h15a3 3 0 1 1-3 3M3 16.5h6'/%3E%3C/svg%3E"); }
.efh-lu .lu-tips__deeper { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .95fr); align-items: center; gap: clamp(40px, 6vw, 104px); max-width: 1160px; margin: clamp(64px, 8vw, 120px) auto 0; font-size: 17.5px; line-height: 1.75; }
.efh-lu .lu-tips__deeper strong { color: var(--lu-ink); font-weight: 700; }
.efh-lu .lu-strata { margin: 0; }
.efh-lu .lu-strata__list { position: relative; display: grid; margin: 0; padding: 0; overflow: hidden; border-radius: 32px; list-style: none; box-shadow: var(--lu-shadow); }
.efh-lu .lu-strata__layer { position: relative; display: grid; gap: 4px; margin: 0; padding: 28px 28px 28px 84px; }
.efh-lu .lu-strata__layer:nth-child(1) { background: #eef8f8; }
.efh-lu .lu-strata__layer:nth-child(2) { background: #cfe9eb; }
.efh-lu .lu-strata__layer--root { padding-block: 36px 40px; background: radial-gradient(60% 120% at 18% 50%, rgba(134, 188, 53, .26), transparent 70%), #0f4c52; }
.efh-lu .lu-strata__layer b { color: var(--lu-ink); font: 800 19px/1.25 var(--lu-sans); }
.efh-lu .lu-strata__layer span { color: var(--lu-text); font-size: 15px; line-height: 1.5; }
.efh-lu .lu-strata__layer--root b { color: #fff; font-size: 21px; }
.efh-lu .lu-strata__layer--root span { color: rgba(227, 238, 239, .86); }
/* The sounding line runs down through the layers to the glowing cause. */
.efh-lu .lu-strata__list::before { content: ""; position: absolute; top: 0; bottom: 52px; left: 43px; z-index: 1; width: 2px; background: repeating-linear-gradient(180deg, var(--lu-turq-deep) 0 6px, transparent 6px 12px); transform-origin: top; transition: transform 1.4s cubic-bezier(.65, 0, .35, 1); }
.efh-lu .lu-strata__layer::before { content: ""; position: absolute; top: 31px; left: 37px; z-index: 2; width: 14px; height: 14px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 2px var(--lu-turq-deep); }
.efh-lu .lu-strata__layer--root::before { top: 38px; left: 35px; width: 18px; height: 18px; background: var(--lu-green); box-shadow: 0 0 0 7px rgba(134, 188, 53, .28), 0 0 28px rgba(134, 188, 53, .8); transition: transform .5s var(--lu-ease) 1.2s, opacity .3s ease 1.2s; }
.efh-lu .lu-strata.is-armed:not(.is-in) .lu-strata__list::before { transform: scaleY(0); transition-duration: 0s; }
.efh-lu .lu-strata.is-armed:not(.is-in) .lu-strata__layer--root::before { opacity: 0; transform: scale(.4); transition-duration: 0s; transition-delay: 0s; }

/* Performance: the dosage window (schematic, one series, labelled zones). */
.efh-lu .lu-dose { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); align-items: center; gap: clamp(40px, 6vw, 104px); padding-block: var(--lu-section); background: var(--lu-mist); }
.efh-lu .lu-dose__copy { display: grid; gap: 22px; font-size: 17.5px; line-height: 1.75; }
.efh-lu .lu-dose__copy strong,
.efh-lu .lu-proof__copy strong { color: var(--lu-ink); font-weight: 700; }
.efh-lu .lu-window { margin: 0; padding: clamp(24px, 3vw, 40px); border-radius: 32px; background: #fff; box-shadow: var(--lu-shadow), inset 0 0 0 1px var(--lu-line); }
.efh-lu .lu-window__title { color: var(--lu-ink); font: 700 16px/1.3 var(--lu-sans); }
.efh-lu .lu-window__chart { display: grid; gap: 8px; margin-top: 20px; }
.efh-lu .lu-window__axis { color: var(--lu-meta); font-size: 13px; line-height: 1.2; }
.efh-lu .lu-window__axis--x { justify-self: end; }
.efh-lu .lu-window__axis--x::after { content: " →"; }
.efh-lu .lu-window__axis--y::after { content: " ↑"; }
.efh-lu .lu-window__plot { position: relative; display: grid; grid-template-columns: 220fr 200fr 220fr; height: clamp(240px, 24vw, 300px); border-bottom: 1px solid var(--lu-line-strong); border-left: 1px solid var(--lu-line-strong); }
.efh-lu .lu-window__zone { display: grid; align-content: start; gap: 2px; padding: 14px 12px; color: var(--lu-meta); font-size: 13px; line-height: 1.35; transition: opacity .5s ease; }
.efh-lu .lu-window__zone b { color: var(--lu-ink); font-size: 14.5px; font-weight: 700; }
.efh-lu .lu-window__zone--fit { border-inline: 1px dashed rgba(92, 159, 44, .5); background: linear-gradient(180deg, rgba(134, 188, 53, .18), rgba(134, 188, 53, .04)); transition-delay: .5s; }
.efh-lu .lu-window__zone--high { background: linear-gradient(180deg, rgba(232, 79, 20, .1), rgba(243, 146, 0, .03)); transition-delay: 1s; }
.efh-lu .lu-window__curve { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; clip-path: inset(-10px 0 -10px 0); transition: clip-path 1.8s cubic-bezier(.65, 0, .35, 1); }
.efh-lu .lu-window__quote { margin-top: 18px; padding-left: 16px; border-left: 4px solid; border-image: linear-gradient(#f39200, #e84f14) 1; color: var(--lu-ink); font: 800 clamp(18px, 1.6vw, 21px)/1.3 var(--lu-sans); }
.efh-lu .lu-window__note { margin-top: 14px; color: var(--lu-meta); font-size: 13.5px; line-height: 1.5; }
.efh-lu .lu-window.is-armed:not(.is-in) .lu-window__curve { clip-path: inset(-10px 100% -10px 0); transition-duration: 0s; }
.efh-lu .lu-window.is-armed:not(.is-in) .lu-window__zone { opacity: 0; transition-duration: 0s; transition-delay: 0s; }

.efh-lu .lu-proof { padding-block: var(--lu-section); }
.efh-lu .lu-proof__row { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; gap: clamp(40px, 6vw, 104px); }
.efh-lu .lu-proof__copy { display: grid; gap: 22px; font-size: 17.5px; line-height: 1.75; }
.efh-lu .lu-proof__visual { position: relative; display: grid; place-items: center; width: min(100%, 480px); aspect-ratio: 1; margin-inline: auto; }
.efh-lu .lu-fuel { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); align-items: center; gap: clamp(28px, 4vw, 64px); max-width: 1160px; margin: clamp(64px, 8vw, 120px) auto 0; padding: clamp(16px, 2vw, 24px); border-radius: 36px; background: var(--lu-mist); }
.efh-lu .lu-fuel__image { margin: 0; overflow: hidden; border-radius: 26px; }
.efh-lu .lu-fuel__image img { display: block; width: 100%; height: auto; }
.efh-lu .lu-fuel__text { padding-right: clamp(0px, 2vw, 28px); font-size: 17px; line-height: 1.75; }
.efh-lu .lu-fuel__text strong { display: block; margin-bottom: 10px; color: var(--lu-turq); font-size: clamp(21px, 1.8vw, 25px); font-weight: 800; line-height: 1.25; }
.efh-lu .lu-print__sub { margin-top: 10px; color: var(--lu-ink); font-size: clamp(20px, 1.6vw, 23px); line-height: 1.3; }
.efh-lu .lu-print--why .lu-print__copy { font-size: 17px; }

@media (max-width: 1099px) {
    .efh-lu .lu-tips__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 999px) {
    .efh-lu .lu-burn,
    .efh-lu .lu-why__body,
    .efh-lu .lu-dose,
    .efh-lu .lu-proof__row,
    .efh-lu .lu-fuel,
    .efh-lu .lu-tips__deeper { grid-template-columns: minmax(0, 1fr); }
    .efh-lu .lu-burn__figure { position: static; }
    .efh-lu .lu-proof__visual { width: min(100%, 400px); }
}
@media (max-width: 640px) {
    .efh-lu .lu-hero--topic .lu-hero__title { font-size: clamp(30px, 8.4vw, 38px); }
    /* Long compound words ("Nahrungsergänzungsmittel") must not push the column wider than the screen. */
    .efh-lu :is(.lu-burn, .lu-dose, .lu-proof, .lu-print--why, .lu-tips) .lu-head__title { font-size: clamp(22px, 6.2vw, 30px); -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; }
    .efh-lu .lu-hero .lu-hero__visual--frame { padding: 24px 0 40px; }
    .efh-lu .lu-framephoto { border-radius: 24px; box-shadow: 0 0 0 6px rgba(255, 255, 255, .75), 0 0 0 7px rgba(68, 184, 190, .35), 0 30px 50px -26px rgba(20, 58, 64, .45); }
    .efh-lu .lu-hero--night .lu-framephoto { box-shadow: 0 0 0 6px rgba(255, 255, 255, .06), 0 0 0 7px rgba(68, 184, 190, .45), 0 30px 50px -26px rgba(0, 0, 0, .65); }
    .efh-lu .lu-framephoto__lens { bottom: 2px; left: 10px; width: 68px; }
    .efh-lu .lu-framephoto__lens::after { inset: -5px; }
    .efh-lu .lu-offer { grid-template-columns: minmax(0, 1fr); justify-items: center; padding: 24px 20px; border-radius: 30px; text-align: center; }
    .efh-lu .lu-offer .lu-actions { justify-content: center; }
    .efh-lu .lu-tips__list { grid-template-columns: minmax(0, 1fr); }
    .efh-lu .lu-tip { grid-template-columns: 52px minmax(0, 1fr); align-items: center; gap: 16px; padding: 18px 20px; }
    .efh-lu .lu-tip::before { width: 52px; height: 52px; background-size: 24px, auto; }
    .efh-lu .lu-strata__layer { padding: 24px 20px 24px 68px; }
    .efh-lu .lu-strata__list::before { left: 31px; }
    .efh-lu .lu-strata__layer::before { left: 25px; top: 27px; }
    .efh-lu .lu-strata__layer--root::before { left: 23px; top: 34px; }
    .efh-lu .lu-burn__figure { padding: 22px 16px; border-radius: 26px; }
    .efh-lu .lu-burn__note { font-size: 13.5px; }
    .efh-lu .lu-layers { grid-template-columns: minmax(0, 1fr); padding: 24px 20px; border-radius: 26px; }
    .efh-lu .lu-layers__rings { max-width: 200px; }
    .efh-lu .lu-window { padding: 20px 16px; border-radius: 24px; }
    .efh-lu .lu-window__zone { padding: 10px 6px; font-size: 11.5px; }
    .efh-lu .lu-window__zone b { font-size: 12.5px; }
    .efh-lu .lu-fuel { padding: 14px; border-radius: 28px; }
    .efh-lu .lu-fuel__text { padding: 0 8px 10px; }
}
@media (prefers-reduced-motion: reduce) {
    .efh-lu .lu-strata__list::before,
    .efh-lu .lu-strata__layer--root::before,
    .efh-lu .lu-window__curve,
    .efh-lu .lu-window__zone { transition: none; }
}

/* Kontakt (/kontakt-lumen/): contact lenses and a form card in front of the data-point print. */
.efh-lu .lu-contact { position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; gap: clamp(40px, 5vw, 80px); padding-block: calc(var(--lu-head-offset, 0px) + clamp(48px, 6.5vw, 96px)) clamp(64px, 8vw, 112px); overflow: clip; background: linear-gradient(165deg, #f8fcfc 0%, #e8f6f6 100%); }
.efh-lu .lu-contact__intro { position: relative; z-index: 1; min-width: 0; }
.efh-lu .lu-channels { display: grid; gap: 28px; margin: 40px 0 0; padding: 0; list-style: none; }
.efh-lu .lu-channels > li { display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 22px; margin: 0; padding: 0; }
.efh-lu .lu-channels .lu-lens { grid-row: auto; width: 64px; }
.efh-lu .lu-channels .lu-lens::after { inset: -5px; transition: border-color .2s ease; }
.efh-lu .lu-channel__copy { min-width: 0; }
.efh-lu .lu-channel__label { display: block; margin-bottom: 4px; color: var(--lu-meta); font-size: 14px; font-weight: 700; line-height: 1.5; }
.efh-lu .lu-channel__value { color: var(--lu-ink); font-size: clamp(18px, 1.4vw, 20px); font-weight: 600; line-height: 1.5; overflow-wrap: anywhere; }
.efh-lu .lu-channel__value address { margin: 0; font: inherit; }
.efh-lu .lu-channel__value a { color: var(--lu-turq-deep); text-decoration: none; transition: color .2s ease; }
.efh-lu .lu-socials { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 32px 0 0; padding: 0; list-style: none; }
.efh-lu .wp-block-social-links.lu-socials .wp-social-link { flex: none; margin: 0; padding: 0; border: 0; border-radius: 50%; background: #fff; color: var(--lu-turq-deep); box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .45); transform: none; transition: background-color .2s ease, color .2s ease, box-shadow .2s ease; }
.efh-lu .wp-block-social-links.lu-socials .wp-social-link a { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border-radius: inherit; background: transparent; color: inherit; text-decoration: none; }
.efh-lu .wp-block-social-links.lu-socials .wp-social-link svg { width: 20px; height: 20px; fill: currentColor; }
.efh-lu .lu-contact__panel { position: relative; isolation: isolate; min-width: 0; }
.efh-lu .lu-contact__card { position: relative; z-index: 1; min-width: 0; padding: clamp(28px, 3.4vw, 48px); border: 1.5px solid transparent; border-radius: 32px; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(110deg, #95c23d, #4dbdc6) border-box; box-shadow: var(--lu-shadow); }
.efh-lu .lu-contact__title { margin-bottom: 28px; color: var(--lu-turq); font-size: clamp(26px, 2.4vw, 34px); font-weight: 800; line-height: 1.15; }
.efh-lu .lu-form .efh-native-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px 20px; margin: 0; }
.efh-lu .lu-form .efh-field { grid-column: 1 / -1; min-width: 0; margin: 0; }
.efh-lu .lu-form .efh-field-label { position: static; display: block; width: auto; height: auto; margin: 0 0 8px; padding: 0; overflow: visible; clip: auto; white-space: normal; border: 0; color: var(--lu-ink); font: 700 14px/1.5 var(--lu-sans); }
.efh-lu .lu-form .efh-field-label > span { color: var(--lu-turq-deep); }
.efh-lu .lu-form .efh-field > input:not([type="checkbox"]), .efh-lu .lu-form textarea, .efh-lu .lu-form .efh-captcha input { box-sizing: border-box; display: block; width: 100%; min-width: 0; min-height: 54px; padding: 14px 18px; border: 0; border-radius: 16px; background: var(--lu-mist); color: var(--lu-ink); font: 400 16px/1.5 var(--lu-sans); box-shadow: inset 0 0 0 1px var(--lu-line-strong); transition: background-color .2s ease, box-shadow .2s ease; }
.efh-lu .lu-form textarea { min-height: 150px; resize: vertical; }
.efh-lu .lu-form input::placeholder, .efh-lu .lu-form textarea::placeholder { color: #8a9a9c; opacity: 1; }
.efh-lu .lu-form .efh-field > input:not([type="checkbox"]):focus, .efh-lu .lu-form textarea:focus, .efh-lu .lu-form .efh-captcha input:focus { outline: 0; background: #fff; box-shadow: inset 0 0 0 2px var(--lu-turq); }
.efh-lu .lu-form .efh-field-title { margin: 0 0 8px; color: var(--lu-ink); font: 700 14px/1.5 var(--lu-sans); }
.efh-lu .lu-form .efh-checkbox-label { display: flex; align-items: flex-start; gap: 10px; margin: 0; color: var(--lu-ink); font: 400 15px/1.5 var(--lu-sans); }
.efh-lu .lu-form .efh-checkbox-label span { min-width: 0; overflow-wrap: anywhere; }
.efh-lu .lu-form .efh-checkbox-label input[type="checkbox"] { appearance: none; display: block; flex: 0 0 22px; width: 22px; height: 22px; margin: 1px 0 0; padding: 0; border: 0; border-radius: 7px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--lu-line-strong); cursor: pointer; transition: background-color .2s ease, box-shadow .2s ease; }
.efh-lu .lu-form .efh-checkbox-label input[type="checkbox"]:checked { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 14px 14px no-repeat, var(--lu-button); background-size: 14px 14px, 220% 100%; box-shadow: none; }
.efh-lu .lu-form .efh-checkbox-label input[type="checkbox"]:focus-visible { outline: 2px solid var(--lu-turq-deep); outline-offset: 3px; }
.efh-lu .lu-form .efh-form-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; min-width: 0; margin-top: 8px; text-align: left; }
.efh-lu .lu-form .efh-captcha { display: flex; align-items: center; gap: 10px; margin: 0; color: var(--lu-ink); font: 600 15px/1.5 var(--lu-sans); white-space: nowrap; }
.efh-lu .lu-form .efh-captcha input { flex: none; width: 84px; text-align: center; }
.efh-lu .lu-form button[type="submit"] { display: inline-flex; align-items: center; justify-content: center; min-height: 58px; padding: 15px 34px; border: 0; border-radius: 999px; background: var(--lu-button); background-size: 220% 100%; background-position: 0 0; color: #fff; font: 700 19px/1.25 var(--lu-sans); letter-spacing: .005em; text-align: center; text-shadow: 0 1px 1px rgba(30, 70, 10, .28); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), inset 0 -2px 0 rgba(0, 0, 0, .08), 0 14px 28px -14px rgba(92, 159, 44, .95); cursor: pointer; transition: background-position .5s var(--lu-ease), box-shadow .25s ease, color .2s ease; }
.efh-lu .lu-form button[type="submit"]:focus-visible { outline: 2px solid var(--lu-turq-deep); outline-offset: 3px; }
.efh-lu .lu-form button[type="submit"]:active { transform: scale(.97); }
.efh-lu .lu-form .efh-form-notice { margin: 0 0 20px; padding: 16px 20px; border: 0; border-radius: 16px; background: #fff; color: var(--lu-ink); font-size: 15px; line-height: 1.5; box-shadow: inset 0 0 0 1.5px var(--lu-turq); }
.efh-lu .lu-form .efh-form-notice--error { box-shadow: inset 0 0 0 1.5px #e84f14; }
@media (min-width: 640px) {
    .efh-lu .lu-form .efh-native-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .efh-lu .lu-form .efh-honeypot + .efh-field, .efh-lu .lu-form .efh-honeypot + .efh-field + .efh-field { grid-column: auto; }
}
@media (max-width: 999px) {
    .efh-lu .lu-contact { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 639px) {
    .efh-lu .lu-form button[type="submit"] { width: 100%; }
}
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-channel__value a:hover { color: var(--lu-ink); }
    .efh-lu .wp-block-social-links.lu-socials .wp-social-link:hover { background: var(--lu-turq); color: #fff; box-shadow: inset 0 0 0 1px var(--lu-turq); transform: none; }
    .efh-lu .lu-form button[type="submit"]:hover { background-position: 100% 0; color: #fff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), inset 0 -2px 0 rgba(0, 0, 0, .08), 0 18px 34px -14px rgba(42, 155, 161, .9); }
}
@media (prefers-reduced-motion: reduce) {
    .efh-lu .lu-contact *, .efh-lu .lu-contact *::before, .efh-lu .lu-contact *::after { transition: none; }
}

/* Blog post pilot (templates/lumen-post.php): the live post in a reading column
   with a table of contents, the box finder and further posts. The featured
   images are square social graphics with a title line; covers and cards show
   their photo band. */
.efh-lu .lu-post > :is(header, div, section) { padding-inline: var(--lu-pad); }
/* Post header "Präparat": title, categories and meta on the left; the cover
   lies as a specimen on a microscope slide beside them, slightly tilted, with a
   frosted label strip that names the category. The band fades into the page. */
.efh-lu .lu-post__hero { position: relative; isolation: isolate; padding-top: calc(var(--lu-head-offset, 0px) + clamp(28px, 3.6vw, 56px)); padding-bottom: clamp(20px, 2.6vw, 40px); background: linear-gradient(180deg, #f8fcfc 0%, #e8f6f6 58%, #fff 100%); }
.efh-lu .lu-post__hero.has-cover { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); align-items: center; gap: clamp(40px, 5vw, 88px); }
/* The light of the microscope table behind the slide. */
.efh-lu .lu-post__hero.has-cover::before { content: ""; position: absolute; z-index: -1; top: 50%; right: max(0px, calc(var(--lu-pad) - 120px)); width: min(52vw, 720px); aspect-ratio: 1; background: radial-gradient(closest-side, rgba(68, 184, 190, .24), rgba(68, 184, 190, .08) 55%, rgba(68, 184, 190, 0)); transform: translateY(-46%); pointer-events: none; }
.efh-lu .lu-post__intro { min-width: 0; max-width: 820px; text-align: left; }
.efh-lu .lu-post__back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin: 0 0 6px; color: var(--lu-turq-deep); font: 700 14.5px/1.2 var(--lu-sans); text-decoration: none; }
.efh-lu .lu-post__back::before { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5M11 6l-6 6 6 6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5M11 6l-6 6 6 6'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .2s var(--lu-ease); }
.efh-lu .lu-post__cats { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 8px; margin: 0 0 18px; padding: 0; list-style: none; }
.efh-lu .lu-post__cats li { margin: 0; }
.efh-lu .lu-post__cats a { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 6px 14px 6px 11px; border-radius: 999px; background: #fff; color: var(--lu-turq-deep); font: 700 13.5px/1.2 var(--lu-sans); text-decoration: none; box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .4); transition: background-color .2s ease; }
.efh-lu .lu-post__cats a::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--lu-green); }
.efh-lu .lu-post__title { color: var(--lu-ink); font-size: clamp(32px, 3.4vw, 52px); line-height: 1.1; letter-spacing: -.018em; text-wrap: balance; }
.efh-lu .lu-post__meta { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 6px 14px; margin-top: 20px; color: var(--lu-meta); font-size: 15px; }
.efh-lu .lu-post__meta > * + *::before { content: ""; display: inline-block; width: 5px; height: 5px; margin-right: 14px; border-radius: 50%; background: var(--lu-turq); vertical-align: middle; }
.efh-lu .lu-post__slide { --tilt: -2deg; position: relative; display: grid; grid-template-columns: clamp(38px, 3.4vw, 48px) minmax(0, 1fr); justify-self: end; width: 100%; max-width: 540px; margin: 0; border-radius: 14px; background: linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(255, 255, 255, .78)); box-shadow: inset 0 0 0 1px #fff, inset 0 0 0 2px rgba(68, 184, 190, .2), 0 2px 4px rgba(20, 58, 64, .06), 0 34px 60px -30px rgba(20, 58, 64, .5); transform: rotate(var(--tilt)); transition: transform .6s var(--lu-ease), box-shadow .6s ease; }
/* A glint across the glass. */
.efh-lu .lu-post__slide::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(115deg, rgba(255, 255, 255, 0) 34%, rgba(255, 255, 255, .34) 44%, rgba(255, 255, 255, 0) 54%); pointer-events: none; }
/* Frosted label end with the green-turquoise colour code at its edge. */
.efh-lu .lu-post__label { position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; border-radius: 14px 0 0 14px; background: radial-gradient(rgba(20, 58, 64, .07) 1px, transparent 1.2px) 0 0 / 4px 4px, #edf6f6; color: var(--lu-ink); font: 700 12.5px/1 var(--lu-sans); letter-spacing: .04em; white-space: nowrap; writing-mode: vertical-rl; transform: rotate(180deg); }
.efh-lu .lu-post__label::before { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 5px; background: linear-gradient(0deg, var(--lu-green), var(--lu-turq)); }
.efh-lu .lu-post__cover { display: block; margin: 12px; aspect-ratio: 5 / 3; overflow: hidden; border-radius: 6px; background: var(--lu-mist); box-shadow: 0 0 0 1px rgba(20, 58, 64, .08); }
.efh-lu .lu-post__cover img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 57.5%; }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-post__slide:hover { --tilt: 0deg; box-shadow: inset 0 0 0 1px #fff, inset 0 0 0 2px rgba(68, 184, 190, .26), 0 2px 4px rgba(20, 58, 64, .06), 0 40px 70px -30px rgba(20, 58, 64, .55); }
    .efh-lu .lu-post__back:hover::before { transform: translateX(-3px); }
}
@media (max-width: 999px) {
    .efh-lu .lu-post__hero.has-cover { grid-template-columns: minmax(0, 1fr); gap: 32px; }
    .efh-lu .lu-post__hero.has-cover::before { top: auto; bottom: -10%; right: 50%; width: min(110vw, 640px); transform: translateX(50%); }
    .efh-lu .lu-post__slide { --tilt: -1deg; justify-self: start; max-width: 560px; }
}
@media (max-width: 640px) {
    .efh-lu .lu-post__slide { grid-template-columns: 32px minmax(0, 1fr); border-radius: 12px; }
    .efh-lu .lu-post__label { border-radius: 12px 0 0 12px; font-size: 11px; }
    .efh-lu .lu-post__cover { margin: 8px; border-radius: 4px; }
}
@media (prefers-reduced-motion: reduce) {
    .efh-lu .lu-post__slide, .efh-lu .lu-post__back::before { transition: none; }
}

.efh-lu .lu-post__body { display: grid; grid-template-columns: minmax(0, 720px); justify-content: center; gap: 40px; padding-block: clamp(48px, 6vw, 88px) var(--lu-section); }
.efh-lu .lu-post__body.has-toc { grid-template-columns: 260px minmax(0, 720px); gap: clamp(40px, 5vw, 80px); }
.efh-lu .lu-toc { position: sticky; top: calc(var(--lu-sticky, 84px) + 28px); align-self: start; max-height: calc(100vh - var(--lu-sticky, 84px) - 56px); overflow: auto; padding: 22px 20px; border-radius: 24px; background: var(--lu-mist); }
.efh-lu .lu-toc__title { display: block; color: var(--lu-ink); font: 800 15px/1.3 var(--lu-sans); list-style: none; }
.efh-lu .lu-toc__title::-webkit-details-marker { display: none; }
.efh-lu .lu-toc__list { display: grid; gap: 2px; margin: 14px 0 0; padding: 0; counter-reset: lu-toc; list-style: none; }
.efh-lu .lu-toc__list li { margin: 0; counter-increment: lu-toc; }
.efh-lu .lu-toc__list a { position: relative; display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 6px; padding: 8px 10px 8px 8px; border-radius: 12px; color: var(--lu-text); font-size: 14px; line-height: 1.4; text-decoration: none; transition: background-color .2s ease, color .2s ease; }
.efh-lu .lu-toc__list a::before { content: counter(lu-toc); color: var(--lu-turq-deep); font-weight: 700; font-variant-numeric: tabular-nums; }
.efh-lu .lu-toc__list a[aria-current] { background: #fff; color: var(--lu-ink); font-weight: 600; box-shadow: inset 3px 0 0 var(--lu-green); }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-toc__list a:hover { background: rgba(255, 255, 255, .7); color: var(--lu-ink); }
    .efh-lu .lu-post__cats a:hover { background: var(--lu-mist-2); }
}

.efh-lu .lu-post__content { min-width: 0; color: var(--lu-text); font-size: 18px; line-height: 1.8; }
.efh-lu .lu-post__content > * { margin: 0; }
.efh-lu .lu-post__content > * + * { margin-top: 1.15em; }
.efh-lu .lu-post__content > p:first-child { color: var(--lu-ink); font-size: clamp(19px, 1.5vw, 21px); line-height: 1.7; }
.efh-lu .lu-post__content h2 { margin-top: 2.2em; color: var(--lu-turq); font-size: clamp(26px, 2.3vw, 33px); line-height: 1.18; letter-spacing: -.012em; scroll-margin-top: calc(var(--lu-sticky, 84px) + 24px); }
.efh-lu .lu-post__content h2 + * { margin-top: .7em; }
.efh-lu .lu-post__content h3 { margin-top: 1.8em; color: var(--lu-ink); font-size: 21px; line-height: 1.3; }
.efh-lu .lu-post__content strong { color: var(--lu-ink); font-weight: 700; }
.efh-lu .lu-post__content a { color: var(--lu-turq-deep); text-decoration: underline 1px rgba(34, 114, 119, .4); text-underline-offset: .2em; }
.efh-lu .lu-post__content ul,
.efh-lu .lu-post__content ol { display: grid; gap: .5em; padding: 0; list-style: none; }
.efh-lu .lu-post__content ul li { position: relative; margin: 0; padding-left: 30px; }
.efh-lu .lu-post__content ul li::before { content: ""; position: absolute; top: .62em; left: 6px; width: 9px; height: 9px; border-radius: 50%; background: linear-gradient(135deg, var(--lu-turq), var(--lu-green)); }
.efh-lu .lu-post__content ol { counter-reset: lu-ol; }
.efh-lu .lu-post__content ol li { position: relative; margin: 0; padding-left: 38px; counter-increment: lu-ol; }
.efh-lu .lu-post__content ol li::before { content: counter(lu-ol); position: absolute; top: .15em; left: 0; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--lu-mist-2); color: var(--lu-turq-deep); font: 800 13px/1 var(--lu-sans); }
.efh-lu .lu-post__content blockquote { padding-left: 22px; border-left: 4px solid; border-image: linear-gradient(var(--lu-turq), var(--lu-green)) 1; }
.efh-lu .lu-post__content .lu-post__statement { margin-block: 1.6em; padding: 26px 30px; border-radius: 24px; background: linear-gradient(135deg, rgba(68, 184, 190, .12), rgba(134, 188, 53, .16)); color: var(--lu-ink); font-size: clamp(21px, 1.8vw, 25px); line-height: 1.4; }
.efh-lu .lu-post__content .lu-post__statement strong { font-weight: 800; }
.efh-lu .lu-post__content img { max-width: 100%; height: auto; border-radius: 20px; }

.efh-lu .lu-post__finder { padding-block: clamp(80px, 9vw, 128px); }
.efh-lu .lu-post__more { padding-block: var(--lu-section); }
.efh-lu .lu-post__more-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 24px; }
.efh-lu .lu-post__all { color: var(--lu-turq-deep); font: 700 16px/1.3 var(--lu-sans); text-decoration: underline 1px rgba(34, 114, 119, .35); text-underline-offset: .3em; }
.efh-lu .lu-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2.6vw, 36px); margin: clamp(32px, 4vw, 48px) 0 0; padding: 0; list-style: none; }
.efh-lu .lu-card { position: relative; display: grid; align-content: start; gap: 10px; margin: 0; }
.efh-lu .lu-card__image { display: block; aspect-ratio: 5 / 3; margin-bottom: 8px; overflow: hidden; border-radius: 24px; background: var(--lu-mist); }
.efh-lu .lu-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 57.5%; transition: transform .6s var(--lu-ease); }
.efh-lu .lu-card__date { color: var(--lu-meta); font-size: 14px; }
.efh-lu .lu-card__title { font-size: 20px; line-height: 1.3; letter-spacing: 0; }
.efh-lu .lu-card__title a { color: var(--lu-ink); text-decoration: none; }
.efh-lu .lu-card__title a::after { content: ""; position: absolute; inset: -10px; border-radius: 28px; }
.efh-lu .lu-card__title a:focus-visible { outline: 0; }
.efh-lu .lu-card__title a:focus-visible::after { outline: 2px solid var(--lu-turq-deep); outline-offset: 2px; }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-card:hover .lu-card__image img { transform: scale(1.04); }
    .efh-lu .lu-card:hover .lu-card__title a { color: var(--lu-turq-deep); }
}
@media (max-width: 1099px) {
    .efh-lu .lu-post__body.has-toc { grid-template-columns: minmax(0, 720px); gap: 32px; }
    .efh-lu .lu-toc { position: static; max-height: none; padding: 0; overflow: visible; border-radius: 22px; }
    .efh-lu .lu-toc__title { display: flex; align-items: center; justify-content: space-between; min-height: 56px; padding: 0 20px; cursor: pointer; }
    .efh-lu .lu-toc__title::after { content: ""; width: 12px; height: 12px; border-right: 2px solid var(--lu-turq-deep); border-bottom: 2px solid var(--lu-turq-deep); transform: translateY(-3px) rotate(45deg); transition: transform .2s ease; }
    .efh-lu .lu-toc[open] .lu-toc__title::after { transform: translateY(2px) rotate(-135deg); }
    .efh-lu .lu-toc__list { margin: 0; padding: 0 10px 14px; }
}
@media (min-width: 1100px) {
    .efh-lu .lu-toc__title { pointer-events: none; }
}
@media (max-width: 860px) {
    .efh-lu .lu-cards { grid-template-columns: minmax(0, 1fr); }
    .efh-lu .lu-card { grid-template-columns: 132px minmax(0, 1fr); align-items: center; column-gap: 18px; row-gap: 4px; }
    .efh-lu .lu-card__image { grid-row: 1 / span 2; margin: 0; border-radius: 18px; }
    .efh-lu .lu-card__title { font-size: 17px; }
}
@media (max-width: 640px) {
    .efh-lu .lu-post__title { font-size: clamp(29px, 8vw, 36px); }
    .efh-lu .lu-post__content { font-size: 17px; }
    .efh-lu .lu-post__content .lu-post__statement { padding: 20px 22px; }
}

/* Site chrome on this template: header, footer, side tab, mobile quick access */
.efh-lu .efh-site-header { background: rgba(255, 255, 255, .82); -webkit-backdrop-filter: saturate(1.5) blur(16px); backdrop-filter: saturate(1.5) blur(16px); box-shadow: 0 1px 0 var(--lu-line); }
.efh-lu .efh-header-inner { width: auto; max-width: none; padding-inline: var(--lu-pad); }
.efh-lu .efh-menu a { color: var(--lu-ink); }
.efh-lu .efh-menu > li > a { font-size: 13.5px; font-weight: 600; letter-spacing: .06em; }
.efh-lu .efh-menu a:hover { color: var(--lu-turq-deep); opacity: 1; }
.efh-lu .efh-submenu-toggle { color: var(--lu-ink); }
.efh-lu .efh-search-trigger,
.efh-lu .header-cart-link,
.efh-lu .header-cart-link .wc-bag-count { color: var(--lu-turq); }
.efh-lu .header-cart-link .wc-bag-count::after { border-color: var(--lu-turq); }
.efh-lu .header-cart-link:hover .wc-bag-count { background: var(--lu-turq); color: #fff; }
.efh-lu .efh-search-trigger:focus-visible,
.efh-lu .header-cart-link:focus-visible { outline: 2px solid var(--lu-turq-deep); outline-offset: 4px; }
.efh-lu .efh-header-shop { padding: 9px 20px; background: var(--lu-button); background-size: 220% 100%; color: #fff !important; font-size: 14px; font-weight: 800; letter-spacing: .06em; text-shadow: 0 1px 1px rgba(30, 70, 10, .28); transition: background-position .5s var(--lu-ease); }
.efh-lu .efh-header-shop:hover { background-position: 100% 0; opacity: 1; }
@media (min-width: 980px) {
    .efh-lu .efh-menu .sub-menu { padding: 10px 8px; border-top: 0; border-radius: 18px; background: rgba(255, 255, 255, .97); box-shadow: 0 0 0 1px var(--lu-line), var(--lu-shadow); }
    .efh-lu .efh-menu .sub-menu li { padding: 0; }
    .efh-lu .efh-menu .sub-menu a { display: block; padding: 9px 14px; border-radius: 10px; font-size: 14.5px; line-height: 1.3; }
    .efh-lu .efh-menu .sub-menu a:hover { background: var(--lu-mist); }
}
@media (min-width: 1200px) {
    .efh-lu .efh-header-inner { grid-template-columns: auto minmax(0, 1fr); min-height: 84px; padding-block: 0; }
    .efh-lu .efh-logo { align-self: center; width: 220px; margin-top: 0; }
    .efh-lu .efh-logo img { width: 220px; }
    .efh-lu .efh-header-right { display: flex; flex-direction: row-reverse; align-items: center; justify-content: flex-start; gap: 32px; }
    .efh-lu .efh-header-actions { min-height: 0; padding-top: 0; gap: 14px; }
    .efh-lu .efh-primary-nav { margin-top: 0; }
    .efh-lu .efh-menu > li { padding: 0; }
    .efh-lu .efh-menu > li > a { padding-block: 12px; line-height: 1.2; }
}
.efh-lu .efh-blog-tab { width: 28px; border: 0; border-radius: 14px 0 0 14px; background: var(--lu-turq); font-size: 12px; font-weight: 700; letter-spacing: .12em; transition: width .3s var(--lu-ease), background-color .3s ease; }
.efh-lu .efh-blog-tab:hover { width: 34px; background: var(--lu-green); }

/* Footer: light, from laboratory white into a breath of turquoise and green, with
   the gradient line of the two main colours on top; the brand print rests faintly
   in the corner. */
.efh-lu .efh-site-footer { position: relative; isolation: isolate; overflow: hidden; padding: clamp(72px, 8vw, 112px) 0 28px; border-top: 3px solid transparent; border-image: linear-gradient(90deg, var(--lu-green), var(--lu-turq)) 1; background: linear-gradient(160deg, #f7fbfb 0%, #e9f5f4 58%, #eef6e3 100%); color: var(--lu-text); }
/* The print file is a near-white watermark for dark grounds (10 % opacity): its
   shape masks the gradient of the two main colours instead. */
.efh-lu .efh-site-footer::before { content: ""; position: absolute; right: max(-40px, calc(var(--lu-pad) - 220px)); bottom: -90px; z-index: -1; width: min(400px, 56vw); aspect-ratio: 204 / 286; background: linear-gradient(150deg, var(--lu-turq), var(--lu-green)); -webkit-mask: var(--efh-footer-print) center / contain no-repeat; mask: var(--efh-footer-print) center / contain no-repeat; pointer-events: none; }
.efh-lu .efh-site-footer .efh-container { width: auto; max-width: none; padding-inline: var(--lu-pad); }
.efh-lu .efh-footer-columns { grid-template-columns: 5fr 4fr 3fr; gap: 40px; padding: 0; color: var(--lu-ink); font-size: 17px; line-height: 1.65; }
.efh-lu .efh-footer-columns > div:first-child > p { margin-bottom: 24px; }
.efh-lu .efh-site-footer a { color: var(--lu-turq-deep); }
.efh-lu .efh-site-footer a:hover { color: var(--lu-ink); opacity: 1; }
.efh-lu .efh-social-links { gap: 10px; }
.efh-lu .efh-social-links a { width: 44px; height: 44px; border-radius: 50%; background: #fff; color: var(--lu-turq-deep); box-shadow: inset 0 0 0 1px rgba(68, 184, 190, .45), 0 10px 20px -14px rgba(20, 58, 64, .45); transition: background-color .2s ease, color .2s ease, box-shadow .2s ease; }
.efh-lu .efh-social-links a:hover { background: var(--lu-turq); color: #fff; box-shadow: 0 10px 20px -12px rgba(42, 155, 161, .7); }
.efh-lu .efh-social-links svg { width: 18px; height: 18px; }
/* The seal stands in the contact column, below phone and email. */
.efh-lu .efh-footer-seal { margin-top: 24px; }
.efh-lu .efh-footer-seal img { width: 128px; margin: 0; }
.efh-lu .efh-footer-meta { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 40px; margin: clamp(56px, 6vw, 80px) 0 0; padding: 24px 0 0; border-top: 1px solid var(--lu-line-strong); font-size: 14px; }
.efh-lu .efh-footer-meta nav { width: auto; margin: 0; gap: 6px 22px; font-weight: 700; }
.efh-lu .efh-footer-meta nav a { color: var(--lu-ink); }
.efh-lu .efh-footer-meta nav a:hover { color: var(--lu-turq-deep); }
.efh-lu .efh-footer-meta nav a + a::before { content: none; }
.efh-lu .efh-footer-meta p { padding: 0; color: var(--lu-meta); }
.efh-lu .efh-site-footer :focus-visible { outline: 2px solid var(--lu-turq-deep); outline-offset: 3px; }

/* Responsive */
@media (max-width: 1099px) {
    .efh-lu .lu-cues__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 979px) {
    body.efh-lu { padding-bottom: 80px; }
    .efh-lu .efh-menu-toggle { align-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--lu-turq); }
    .efh-lu .efh-primary-nav { border-top: 0; border-radius: 0 0 20px 20px; box-shadow: var(--lu-shadow); }
    .efh-lu .efh-menu .sub-menu { background: var(--lu-mist); }
    .efh-lu .efh-fixed-cta { right: 10px; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); left: 10px; gap: 6px; padding: 6px; border: 1px solid rgba(255, 255, 255, .7); border-radius: 999px; background: rgba(255, 255, 255, .84); -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4); box-shadow: var(--lu-shadow); }
    .efh-lu .efh-cta-btn { min-height: 46px; border: 0; border-radius: 999px; font: 800 13px/1.2 var(--lu-sans); letter-spacing: .04em; }
    .efh-lu .efh-cta-shop { background: transparent; color: var(--lu-turq-deep); box-shadow: inset 0 0 0 1.5px var(--lu-turq); }
    .efh-lu .efh-cta-analyse { background: var(--lu-button); background-size: 220% 100%; color: #fff; text-shadow: 0 1px 1px rgba(30, 70, 10, .28); }
    .efh-lu .efh-cta-shop:hover { color: var(--lu-turq-deep); }
    .efh-lu .efh-cta-analyse:hover { color: #fff; }
}
@media (max-width: 899px) {
    .efh-lu .lu-plate__bar { margin-bottom: 18px; }
    .efh-lu .lu-plate__picker { flex-wrap: nowrap; margin-inline: calc(-1 * var(--lu-gutter)); padding: 4px var(--lu-gutter); overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; }
    .efh-lu .lu-plate__picker::-webkit-scrollbar { display: none; }
    .efh-lu .lu-chip { flex: none; scroll-snap-align: start; }
    .efh-lu .lu-plate__frame { padding-inline: 16px; border-radius: 24px; }
    .efh-lu .lu-plate.is-ready tr > :not(:first-child):not(.is-col-active) { display: none; }
    .efh-lu .lu-plate.is-ready .lu-plate__table thead .lu-plate__corner { width: auto; }
    .efh-lu .lu-plate.is-ready .lu-plate__col { width: 36%; }
    .efh-lu .lu-plate__corner-title { font-size: 19px; }
}
@media (max-width: 860px) {
    .efh-lu .lu-hero { grid-template-columns: minmax(0, 1fr); row-gap: 8px; padding-block: calc(var(--lu-head-offset, 0px) + 40px) 150px; }
    .efh-lu .lu-hero__visual { width: min(100%, 540px); margin-inline: auto; aspect-ratio: 1 / .84; }
    .efh-lu .lu-hero .lu-field { inset: -4% -10% -6% -6%; }
    .efh-lu .lu-hero__box { left: 0; width: 68%; }
    .efh-lu .lu-ticket { grid-template-columns: auto minmax(0, 1fr); border-radius: 32px; }
    .efh-lu .lu-ticket__actions { display: flex; flex-wrap: wrap; grid-column: 1 / -1; align-items: center; gap: 12px 20px; }
    .efh-lu .efh-footer-columns { grid-template-columns: 1fr 1fr; }
    /* References: chooser as a row above one quote in the flow, so switching never moves it. */
    .efh-lu .lu-voices__card { grid-template-columns: minmax(0, 1fr); gap: 28px; border-radius: 28px; }
    .efh-lu .lu-voices.is-ready .lu-voices__tabs { order: -1; display: flex; margin-inline: calc(-1 * var(--lu-card-pad)); padding-inline: var(--lu-card-pad); overflow-x: auto; scrollbar-width: none; }
    .efh-lu .lu-voices__tabs::-webkit-scrollbar { display: none; }
    .efh-lu .lu-voices__tab { flex: none; width: auto; grid-template-columns: 12px auto; padding: 10px 16px 10px 12px; border-radius: 999px; }
    .efh-lu .lu-voices__dot { grid-row: auto; width: 12px; height: 12px; }
    .efh-lu .lu-voices__who { font-size: 13.5px; }
    .efh-lu .lu-voices__detail { display: none; }
    .efh-lu .lu-voices.is-ready .lu-voice:not(.is-current) { display: none; }
    .efh-lu .lu-voice::before { height: 56px; font-size: 110px; }
    .efh-lu .lu-voices__print { inset: auto -60px -70px auto; width: 260px; height: 300px; opacity: .4; }
}
@media (max-width: 640px) {
    .efh-lu .lu-hero__title { font-size: clamp(36px, 10.4vw, 44px); }
    .efh-lu .lu-hero__product { font-size: clamp(18px, 5.3vw, 25px); }
    .efh-lu .lu-actions .wp-block-button,
    .efh-lu .lu-actions .wp-block-button__link { width: 100%; }
    .efh-lu .lu-actions .wp-block-button__link { padding-inline: 20px; }
    .efh-lu .lu-ticket { gap: 16px 18px; padding: 20px; }
    .efh-lu .lu-ticket__date { grid-row: 1 / span 2; width: 92px; }
    .efh-lu .lu-ticket__day { font-size: 36px; }
    .efh-lu .lu-ticket__month { margin-top: 2px; font-size: 11px; }
    .efh-lu .lu-ticket__time { font-size: 11px; }
    .efh-lu .lu-ticket__title { font-size: 24px; }
    .efh-lu .lu-ticket__text { grid-column: 1 / -1; }
    .efh-lu .lu-ticket__copy { display: contents; }
    .efh-lu .lu-ticket__kicker,
    .efh-lu .lu-ticket__title { grid-column: 2; }
    .efh-lu .lu-ticket__kicker { grid-row: 1; align-self: end; }
    .efh-lu .lu-ticket__title { grid-row: 2; align-self: start; margin-top: -8px; }
    .efh-lu .lu-ticket__actions .lu-button { width: 100%; }
    .efh-lu .lu-cues__grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .efh-lu .lu-cue { grid-template-columns: 76px minmax(0, 1fr); column-gap: 20px; padding-block: 24px; border-top: 1px solid var(--lu-line); }
    .efh-lu .lu-cue:last-child { border-bottom: 1px solid var(--lu-line); }
    .efh-lu .lu-lens { width: 76px; }
    .efh-lu .lu-lens::after { inset: -6px; }
    .efh-lu .lu-cue__title { margin-top: 2px; font-size: 19px; }
    .efh-lu .lu-cue__title a::after { inset: 0 -8px; border-radius: 16px; }
    .efh-lu .lu-cue__more { padding-top: 10px; }
    .efh-lu .lu-finder__note { padding: 16px 18px; }
    .efh-lu .lu-voices__card { --lu-card-pad: 24px; }
    .efh-lu .efh-cta-btn { padding-inline: 6px; font-size: 12px; letter-spacing: .02em; }
    .efh-lu .lu-faq__item summary { gap: 16px; padding: 20px 0; }
    .efh-lu .lu-faq__item summary::after { width: 34px; height: 34px; }
    .efh-lu .efh-footer-columns { grid-template-columns: minmax(0, 1fr); }
    .efh-lu .efh-footer-meta { flex-direction: column; align-items: flex-start; }
}

@starting-style {
    .efh-lu .lu-voices.is-ready .lu-voice.is-current { opacity: 0; transform: translateY(10px); }
}

@media (prefers-reduced-motion: reduce) {
    .efh-lu .lu-voices.is-ready .lu-voice:not(.is-current) { transform: none; filter: none; }
}

/* Header variant (template-parts/header-lumen.php, piloted on the product page):
   a floating bar instead of the full-width strip, the menu as panels with short
   descriptions (a sheet with large touch targets below 1200 px) and a product bar
   that takes over once the buy box has scrolled away. Site Core's search overlay
   opens exactly where the bar sits. Behaviour: initHeader() in lumen.js. */
body.efh-lu-header {
    --lu-head-gap: 12px;
    --lu-head-row: 64px;
    --lu-head-h: calc(var(--lu-head-gap) + var(--lu-head-row));
    --lu-head-x: max(10px, calc(var(--lu-pad) - 20px));
    --lu-head-offset: var(--lu-head-h);
    --lu-admin: 0px;
    /* Small controls (15–17 px labels): deeper than --lu-button so white text
       reaches 4.5:1 along the whole gradient. */
    --lu-button-sm: linear-gradient(110deg, #46811e 0%, #3f7d22 45%, #22777c 100%);
}
body.efh-lu-header.admin-bar { --lu-admin: 32px; }
/* The floating header overlaps the first section. A Lumen view (.lu-page as the
   first child of main) adds the room to its own hero; every other page starts
   below the header. */
body.efh-lu-header .efh-main { padding-top: var(--lu-head-offset); }
body.efh-lu-header .efh-main:has(> .lu-page:first-child) { padding-top: 0; }
.efh-lu .lu-header {
    position: sticky;
    top: var(--lu-admin);
    z-index: 1000;
    margin-bottom: calc(-1 * var(--lu-head-h));
    padding: var(--lu-head-gap) var(--lu-head-x) 0;
    pointer-events: none;
    transition: transform .45s var(--lu-ease);
}
.efh-lu .lu-header__bar {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    height: var(--lu-head-row);
    padding: 0 10px 0 20px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .78);
    -webkit-backdrop-filter: blur(18px) saturate(1.6);
    backdrop-filter: blur(18px) saturate(1.6);
    box-shadow: 0 0 0 1px var(--lu-line), 0 12px 32px -20px rgba(20, 58, 64, .42);
    pointer-events: auto;
    transition: background-color .3s ease, box-shadow .3s ease, opacity .25s ease;
}
.efh-lu .lu-header.is-scrolled .lu-header__bar { background: rgba(255, 255, 255, .9); box-shadow: 0 0 0 1px var(--lu-line), 0 18px 40px -20px rgba(20, 58, 64, .5); }
/* Blog post: the reading progress as a line along the lower edge of the bar. */
.efh-lu .lu-header__progress { position: absolute; right: 28px; bottom: 0; left: 28px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--lu-turq), var(--lu-green)); transform: scaleX(0); transform-origin: left; pointer-events: none; }
/* Reading down a product page: the bar steps aside, the product bar stays. */
.efh-lu .lu-header.is-tucked { transform: translateY(calc(-1 * (var(--lu-head-row) + 8px))); }
.efh-lu .lu-header.is-tucked .lu-header__bar { opacity: 0; pointer-events: none; }
.efh-lu .lu-header :focus-visible { outline: 2px solid var(--lu-turq-deep); outline-offset: 2px; }
.efh-lu .lu-header__logo { display: block; flex: none; width: 188px; margin-right: auto; }
.efh-lu .lu-header__logo img { display: block; width: 100%; height: auto; }

.efh-lu .lu-nav__list,
.efh-lu .lu-nav__entries { margin: 0; padding: 0; list-style: none; }
.efh-lu .lu-nav__item { position: relative; margin: 0; }
.efh-lu .lu-nav__link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-height: 44px;
    margin: 0;
    padding: 0 14px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--lu-ink);
    font: 600 15px/1.2 var(--lu-sans);
    letter-spacing: 0;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .2s ease, color .2s ease;
}
.efh-lu .lu-nav__link svg { flex: none; width: 16px; height: 16px; margin-right: -4px; transition: transform .3s var(--lu-ease); }
.efh-lu .lu-nav__trigger[aria-expanded="true"] { background: var(--lu-mist); }
.efh-lu .lu-nav__trigger[aria-expanded="true"] svg { transform: rotate(180deg); }
.efh-lu .lu-nav__link[aria-current="page"],
.efh-lu .lu-nav__item.is-current > .lu-nav__link { color: var(--lu-turq-deep); }
/* Entries: calm typographic rows. The overview page leads in turquoise; on hover a
   green line grows under the title; the current page carries a green bar. */
.efh-lu .lu-nav__entry { position: relative; display: grid; justify-items: start; gap: 3px; padding: 12px 16px 13px 18px; border-radius: 12px; color: var(--lu-ink); text-decoration: none; transition: background-color .2s ease; }
.efh-lu .lu-nav__entry-title { padding-bottom: 2px; background: linear-gradient(var(--lu-green), var(--lu-green)) 0 100% / 0 2px no-repeat; font-size: 15px; font-weight: 700; line-height: 1.35; transition: background-size .3s var(--lu-ease), color .2s ease; }
.efh-lu .lu-nav__entry-desc { color: var(--lu-meta); font-size: 13.5px; line-height: 1.45; }
.efh-lu .lu-nav__entry--overview .lu-nav__entry-title { color: var(--lu-turq-deep); font-size: 16px; }
.efh-lu .lu-nav__entry[aria-current="page"]::before { content: ""; position: absolute; top: 14px; bottom: 14px; left: 6px; width: 3px; border-radius: 3px; background: var(--lu-green); }
.efh-lu .lu-nav__entries > li:first-child:not(:only-child) { margin-bottom: 6px; padding-bottom: 6px; border-bottom: 1px solid var(--lu-line); }

.efh-lu .lu-header__actions { display: flex; flex: none; align-items: center; gap: 2px; }
.efh-lu .lu-header .lu-header__icon {
    position: relative;
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--lu-ink);
    text-decoration: none;
    transition: background-color .2s ease;
}
.efh-lu .lu-header .efh-search-icon svg { width: 21px; height: 21px; }
.efh-lu .lu-header .header-cart-link::before {
    content: "";
    width: 22px;
    height: 22px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 8h13l-.9 11.2a1.8 1.8 0 0 1-1.8 1.6H8.2a1.8 1.8 0 0 1-1.8-1.6z'/%3E%3Cpath d='M9 10.5V7a3 3 0 0 1 6 0v3.5'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5.5 8h13l-.9 11.2a1.8 1.8 0 0 1-1.8 1.6H8.2a1.8 1.8 0 0 1-1.8-1.6z'/%3E%3Cpath d='M9 10.5V7a3 3 0 0 1 6 0v3.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.efh-lu .lu-header .header-cart-link .cart-icon { position: absolute; top: 4px; right: 1px; display: block; }
.efh-lu .lu-header .header-cart-link .wc-bag-count,
.efh-lu .lu-header .header-cart-link:hover .wc-bag-count {
    display: block;
    box-sizing: border-box;
    width: auto;
    min-width: 19px;
    height: 19px;
    margin: 0;
    padding: 0 5px;
    border: 0;
    border-radius: 999px;
    background: var(--lu-turq-deep);
    color: #fff;
    font: 700 11px/19px var(--lu-sans);
    text-align: center;
    box-shadow: 0 0 0 2px #fff;
}
.efh-lu .lu-header .header-cart-link .wc-bag-count::after { content: none; }
.efh-lu .lu-header .lu-header__shop,
.efh-lu .lu-pbar .lu-pbar__cta,
.efh-lu .lu-header .lu-header__extra-shop {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 22px;
    border-radius: 999px;
    background: var(--lu-button);
    background-size: 220% 100%;
    color: #fff;
    font: 700 15px/1 var(--lu-sans);
    text-decoration: none;
    white-space: nowrap;
    text-shadow: 0 1px 1px rgba(30, 70, 10, .28);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 10px 22px -12px rgba(92, 159, 44, .95);
    transition: background-position .5s var(--lu-ease), transform .16s var(--lu-ease);
}
.efh-lu .lu-header .lu-header__shop { margin-left: 8px; }
.efh-lu .lu-header .lu-header__shop:active,
.efh-lu .lu-pbar .lu-pbar__cta:active,
.efh-lu .lu-header .lu-header__extra-shop:active { transform: scale(.97); }
.efh-lu .lu-header__extra,
.efh-lu .lu-header__toggle { display: none; }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-nav__link:hover,
    .efh-lu .lu-header .lu-header__icon:hover { background: var(--lu-mist); }
    .efh-lu .lu-nav__entry:hover { background: #f7fbfb; }
    .efh-lu .lu-nav__entry:hover .lu-nav__entry-title { background-size: 100% 2px; color: var(--lu-turq-deep); }
    .efh-lu .lu-header .lu-header__shop:hover,
    .efh-lu .lu-pbar .lu-pbar__cta:hover { background-position: 100% 0; color: #fff; }
}

/* Product bar */
.efh-lu .lu-pbar {
    position: absolute;
    top: calc(100% + 8px);
    right: var(--lu-head-x);
    left: var(--lu-head-x);
    display: flex;
    align-items: center;
    gap: 20px;
    min-height: 60px;
    padding: 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .9);
    -webkit-backdrop-filter: blur(18px) saturate(1.6);
    backdrop-filter: blur(18px) saturate(1.6);
    box-shadow: 0 0 0 1px var(--lu-line), 0 16px 36px -20px rgba(20, 58, 64, .5);
    pointer-events: auto;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px) scale(.98);
    transition: opacity .2s ease, transform .35s var(--lu-ease), visibility 0s linear .35s;
}
.efh-lu .lu-header.has-pbar .lu-pbar { opacity: 1; visibility: visible; transform: none; transition: opacity .2s ease, transform .35s var(--lu-ease), visibility 0s; }
.efh-lu .lu-pbar__product { display: flex; align-items: center; gap: 12px; min-width: 0; margin: 0; padding: 0; color: var(--lu-ink); }
.efh-lu .lu-pbar__thumb { display: grid; flex: none; place-items: center; width: 44px; height: 44px; overflow: hidden; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px var(--lu-line); }
.efh-lu .lu-pbar__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.efh-lu .lu-pbar__name { overflow: hidden; font-size: 15px; font-weight: 800; line-height: 1.25; white-space: nowrap; text-overflow: ellipsis; }
.efh-lu .lu-pbar__nav { position: relative; display: flex; flex: none; gap: 2px; margin-inline: auto; }
.efh-lu .lu-pbar__nav a { position: relative; z-index: 1; display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 999px; color: var(--lu-text); font-size: 14.5px; font-weight: 600; text-decoration: none; transition: color .2s ease; }
.efh-lu .lu-pbar__nav a[aria-current="true"] { color: var(--lu-ink); }
.efh-lu .lu-pbar__marker { position: absolute; top: 0; left: 0; width: 0; height: 40px; border-radius: 999px; background: var(--lu-mist-2); opacity: 0; transition: transform .4s var(--lu-ease), width .4s var(--lu-ease), opacity .2s ease; }
.efh-lu .lu-pbar__buy { display: flex; flex: none; align-items: center; gap: 16px; margin-left: auto; }
.efh-lu .lu-pbar__price { text-align: right; }
.efh-lu .lu-pbar__amount { display: block; color: var(--lu-ink); font-size: 18px; font-weight: 800; line-height: 1.15; white-space: nowrap; }
.efh-lu .lu-pbar .legal-price-info p { margin: 2px 0 0; padding: 0; color: var(--lu-meta); font-size: 11.5px; line-height: 1.3; }
.efh-lu .lu-pbar .legal-price-info a { color: var(--lu-turq-deep); }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-pbar__nav a:hover { color: var(--lu-ink); }
}
.efh-lu-header .lu-page > section[id] { scroll-margin-top: 80px; }
html:has(body.efh-lu-header) { scroll-behavior: smooth; }

/* Menu sheet backdrop; quick access and side tab step back while it is open. */
.efh-lu .lu-header-scrim { position: fixed; inset: 0; z-index: 999; background: rgba(20, 58, 64, .28); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility 0s linear .25s; }
/* The reserved gutter keeps the page from shifting when the scrollbar is locked. */
html.lu-menu-open,
html.efh-no-scroll:has(body.efh-lu-header) { overflow: hidden; scrollbar-gutter: stable; }
/* clip instead of Site Core's hidden: the body stays no scroll container, so the
   sticky header keeps its place below the admin bar while the search is open. */
.efh-no-scroll body.efh-lu-header { overflow: clip; }
.lu-menu-open .efh-lu .lu-header-scrim { opacity: 1; visibility: visible; transition: opacity .25s ease, visibility 0s; }
.lu-menu-open .efh-lu .efh-fixed-cta,
.lu-menu-open .efh-lu .efh-blog-tab { visibility: hidden; }

/* Search: Site Core's overlay becomes a bar in the place of the header bar. */
.efh-lu-header .efh-search-overlay { place-items: start center; padding: calc(var(--lu-admin) + var(--lu-head-gap)) var(--lu-head-x) 24px; color: var(--lu-ink); }
.efh-lu-header .efh-search-backdrop { background: rgba(20, 58, 64, .3); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); animation: lu-fade .25s ease both; }
.efh-lu-header .efh-search-dialog { display: flex; align-items: center; gap: 8px; width: 100%; min-height: var(--lu-head-row); padding: 8px; border-radius: 999px; background: #fff; box-shadow: 0 0 0 1px var(--lu-line), var(--lu-shadow); animation: lu-search-in .32s var(--lu-ease) both; }
.efh-lu-header .efh-search-form { display: flex; flex: 1; flex-wrap: nowrap; align-items: center; gap: 8px; min-width: 0; margin: 0; }
.efh-lu-header .efh-search-input { flex: 1; min-width: 0; height: 48px; padding: 0 16px 0 48px; border: 0; border-radius: 999px; background: var(--lu-mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23143a40' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m15.5 15.5 4.5 4.5'/%3E%3C/svg%3E") 17px 50% / 20px no-repeat; color: var(--lu-ink); font: 600 17px/1.2 var(--lu-sans); box-shadow: inset 0 0 0 1px var(--lu-line); }
/* The inset ring is the focus indicator of the field. */
.efh-lu-header .efh-search-input:focus,
.efh-lu-header .efh-search-input:focus-visible { outline: 0; box-shadow: inset 0 0 0 2px var(--lu-turq-deep); }
.efh-lu-header .efh-search-input::placeholder { color: var(--lu-meta); font-weight: 400; }
.efh-lu-header .efh-search-submit { flex: none; width: auto; height: 48px; margin: 0; padding: 0 24px; border: 0; border-radius: 999px; background: var(--lu-button-sm); background-size: 220% 100%; color: #fff; font: 700 16px/1 var(--lu-sans); text-shadow: 0 1px 1px rgba(20, 50, 10, .3); transition: background-position .5s var(--lu-ease), transform .16s var(--lu-ease); }
.efh-lu-header .efh-search-submit:active { transform: scale(.97); }
.efh-lu-header .efh-search-close { position: static; order: 2; flex: none; width: 48px; height: 48px; border-radius: 50%; color: var(--lu-ink); font-size: 30px; font-weight: 300; transition: background-color .2s ease; }
.efh-lu-header .efh-search-close:focus-visible,
.efh-lu-header .efh-search-submit:focus-visible { outline: 2px solid var(--lu-turq-deep); outline-offset: 2px; }
@media (hover: hover) and (pointer: fine) {
    .efh-lu-header .efh-search-submit:hover { background-position: 100% 0; filter: none; }
    .efh-lu-header .efh-search-close:hover { background: var(--lu-mist); }
}
@keyframes lu-search-in { from { opacity: 0; transform: translateY(-8px) scale(.985); } }
@keyframes lu-fade { from { opacity: 0; } }

@media (min-width: 1200px) {
    .efh-lu .lu-header__menu { margin-inline: auto; }
    .efh-lu .lu-nav__list { display: flex; align-items: center; gap: 2px; }
    .efh-lu .lu-nav__panel {
        position: absolute;
        top: calc(100% + 14px);
        left: -6px;
        z-index: 2;
        width: 344px;
        padding: 12px 8px 8px;
        border-radius: 20px;
        background: #fff;
        box-shadow: 0 0 0 1px var(--lu-line), 0 30px 70px -30px rgba(20, 58, 64, .45);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-6px) scale(.98);
        transform-origin: 40px 0;
        transition: opacity .16s ease, transform .22s var(--lu-ease), visibility 0s linear .22s;
    }
    .efh-lu .lu-nav__item:nth-last-child(-n + 2) > .lu-nav__panel { right: -6px; left: auto; transform-origin: calc(100% - 40px) 0; }
    /* Bridges the gap below the trigger so the pointer can travel into the panel. */
    .efh-lu .lu-nav__panel::before { content: ""; position: absolute; right: 0; bottom: 100%; left: 0; height: 16px; }
    /* The gradient line of the two main colours tops every panel. */
    .efh-lu .lu-nav__panel::after { content: ""; position: absolute; top: 0; right: 22px; left: 22px; height: 3px; border-radius: 0 0 3px 3px; background: linear-gradient(90deg, var(--lu-green), var(--lu-turq)); }
    /* Panels with many entries open in two columns below their overview row. */
    .efh-lu .lu-nav__panel:has(.lu-nav__entries > li:nth-child(5)) { width: 600px; }
    .efh-lu .lu-nav__panel:has(.lu-nav__entries > li:nth-child(5)) .lu-nav__entries { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 4px; }
    .efh-lu .lu-nav__panel:has(.lu-nav__entries > li:nth-child(5)) .lu-nav__entries > li:first-child { grid-column: 1 / -1; }
    .efh-lu .lu-nav__item.is-open > .lu-nav__panel,
    .efh-lu .lu-header:not(.is-enhanced) .lu-nav__item:is(:hover, :focus-within) > .lu-nav__panel { opacity: 1; visibility: visible; transform: none; transition: opacity .16s ease, transform .22s var(--lu-ease), visibility 0s; }
}
@media (max-width: 1199px) {
    /* Mobile menu: a sheet of the full remaining height under the bar, large type,
       hairlines instead of boxes, the shop and the phone anchored at the bottom. */
    .efh-lu .lu-header__menu {
        position: absolute;
        top: calc(100% + 8px);
        right: 0;
        left: 0;
        display: flex;
        flex-direction: column;
        height: calc(100dvh - var(--lu-admin) - var(--lu-head-h) - 18px);
        padding: 14px 18px 0;
        overflow-y: auto;
        overscroll-behavior: contain;
        border-radius: 28px;
        background: #fff;
        box-shadow: 0 0 0 1px var(--lu-line), 0 30px 70px -30px rgba(20, 58, 64, .5);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-10px);
        transition: opacity .2s ease, transform .35s var(--lu-ease), visibility 0s linear .35s;
    }
    .efh-lu .lu-header.is-menu-open .lu-header__menu { opacity: 1; visibility: visible; transform: none; transition: opacity .2s ease, transform .35s var(--lu-ease), visibility 0s; }
    .efh-lu .lu-header__menu .lu-nav { flex: 1 0 auto; }
    .efh-lu .lu-nav__item + .lu-nav__item { border-top: 1px solid var(--lu-line); }
    .efh-lu .lu-header.is-menu-open .lu-nav__item { animation: lu-sheet-in .45s var(--lu-ease) both; }
    .efh-lu .lu-header.is-menu-open .lu-nav__item:nth-child(2) { animation-delay: .03s; }
    .efh-lu .lu-header.is-menu-open .lu-nav__item:nth-child(3) { animation-delay: .06s; }
    .efh-lu .lu-header.is-menu-open .lu-nav__item:nth-child(4) { animation-delay: .09s; }
    .efh-lu .lu-header.is-menu-open .lu-nav__item:nth-child(n + 5) { animation-delay: .12s; }
    .efh-lu .lu-nav__link { display: flex; justify-content: space-between; width: 100%; min-height: 62px; padding: 0 2px; border-radius: 0; font-size: 21px; font-weight: 800; letter-spacing: -.01em; }
    .efh-lu .lu-nav__link svg { box-sizing: content-box; width: 18px; height: 18px; margin-right: 0; padding: 8px; border-radius: 50%; background: var(--lu-mist); color: var(--lu-turq-deep); }
    .efh-lu .lu-nav__trigger[aria-expanded="true"] { background: transparent; color: var(--lu-turq-deep); }
    .efh-lu .lu-nav__trigger[aria-expanded="true"] svg { background: var(--lu-turq); color: #fff; }
    /* Accordion: the row grows from 0fr to 1fr; closed entries leave the tab order. */
    .efh-lu .lu-nav__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .32s var(--lu-ease); }
    .efh-lu .lu-nav__entries { min-height: 0; overflow: hidden; visibility: hidden; transition: visibility 0s linear .32s; }
    .efh-lu .lu-nav__item.is-open > .lu-nav__panel { grid-template-rows: 1fr; }
    .efh-lu .lu-nav__item.is-open .lu-nav__entries { visibility: visible; transition: visibility 0s; }
    /* Sub-entries hang from a thin line, titles only. */
    .efh-lu .lu-nav__entries { margin-left: 4px; padding-left: 14px; border-left: 2px solid var(--lu-mist-2); }
    .efh-lu .lu-nav__entries > li:first-child:not(:only-child) { margin: 0; padding: 0; border: 0; }
    .efh-lu .lu-nav__entries > li:last-child { padding-bottom: 14px; }
    .efh-lu .lu-nav__entry { padding: 9px 4px; border-radius: 8px; }
    .efh-lu .lu-nav__entry-title { font-size: 16.5px; font-weight: 600; }
    .efh-lu .lu-nav__entry--overview .lu-nav__entry-title { font-size: 16.5px; font-weight: 700; }
    .efh-lu .lu-nav__entry-desc { display: none; }
    .efh-lu .lu-nav__entry[aria-current="page"]::before { top: 11px; bottom: 11px; left: -17px; }
    .efh-lu .lu-header__extra { position: sticky; bottom: 0; display: grid; gap: 6px; margin: 18px -18px 0; padding: 16px 18px max(16px, env(safe-area-inset-bottom)); border-top: 1px solid var(--lu-line); background: rgba(255, 255, 255, .96); }
    .efh-lu .lu-header .lu-header__extra-shop { min-height: 54px; font-size: 17px; }
    .efh-lu .lu-header__phone { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; border-radius: 14px; color: var(--lu-ink); font-size: 15px; font-weight: 600; text-decoration: none; }
    .efh-lu .lu-header__phone svg { width: 18px; height: 18px; color: var(--lu-turq-deep); }
    .efh-lu .lu-header__toggle { position: relative; display: inline-grid; place-items: center; width: 44px; height: 44px; margin-left: 4px; padding: 0; border: 0; border-radius: 50%; background: var(--lu-mist); transition: background-color .25s ease, transform .16s var(--lu-ease); }
    .efh-lu .lu-header__toggle[aria-expanded="true"] { background: var(--lu-ink); }
    .efh-lu .lu-header__toggle span { grid-area: 1 / 1; width: 18px; height: 2px; border-radius: 2px; background: var(--lu-ink); transition: transform .3s var(--lu-ease), background-color .25s ease; }
    .efh-lu .lu-header__toggle[aria-expanded="true"] span { background: #fff; }
    .efh-lu .lu-header__toggle span:first-child { transform: translateY(-4px); }
    .efh-lu .lu-header__toggle span:last-child { transform: translateY(4px); }
    .efh-lu .lu-header__toggle[aria-expanded="true"] span:first-child { transform: rotate(45deg); }
    .efh-lu .lu-header__toggle[aria-expanded="true"] span:last-child { transform: rotate(-45deg); }
    .efh-lu .lu-header__toggle:active { transform: scale(.95); }
}
@keyframes lu-sheet-in { from { opacity: 0; transform: translateY(8px); } }
@media (max-width: 1099px) {
    .efh-lu .lu-pbar__nav { display: none; }
}
@media (max-width: 979px) {
    .efh-lu .lu-header .lu-header__shop { display: none; }
}
@media (max-width: 782px) {
    body.efh-lu-header.admin-bar { --lu-admin: 46px; }
}
@media (max-width: 760px) {
    /* Narrow screens: price, legal information and the button; the H1 names the product. */
    .efh-lu .lu-pbar { gap: 10px; min-height: 56px; padding: 6px 6px 6px 20px; }
    .efh-lu .lu-pbar__product { display: none; }
    .efh-lu .lu-pbar__buy { flex: 1; justify-content: space-between; gap: 10px; }
    .efh-lu .lu-pbar__price { text-align: left; }
    .efh-lu .lu-pbar__amount { font-size: 16px; }
    .efh-lu .lu-pbar .legal-price-info p { font-size: 11px; }
    .efh-lu .lu-pbar .lu-pbar__cta { padding: 0 18px; }
}
@media (max-width: 640px) {
    body.efh-lu-header { --lu-head-gap: 10px; --lu-head-row: 60px; }
    .efh-lu .lu-header__bar { gap: 2px; padding: 0 8px 0 16px; }
    .efh-lu .lu-header__logo { width: 152px; }
    .efh-lu-header .efh-search-dialog { gap: 4px; padding: 6px; }
    .efh-lu-header .efh-search-input { height: 46px; padding-left: 44px; background-position: 14px 50%; font-size: 16px; }
    .efh-lu-header .efh-search-submit { height: 46px; padding: 0 16px; }
    .efh-lu-header .efh-search-close { width: 44px; height: 44px; }
}
@media (max-width: 600px) {
    .efh-lu.admin-bar .lu-header { top: 0; }
}
@media (prefers-reduced-motion: reduce) {
    html:has(body.efh-lu-header) { scroll-behavior: auto; }
    .efh-lu .lu-header,
    .efh-lu .lu-header__bar,
    .efh-lu .lu-header__menu,
    .efh-lu .lu-nav__panel,
    .efh-lu .lu-nav__entries,
    .efh-lu .lu-pbar,
    .efh-lu .lu-pbar__marker,
    .efh-lu .lu-header-scrim { transition: none; }
    .efh-lu-header .efh-search-dialog,
    .efh-lu-header .efh-search-backdrop,
    .efh-lu .lu-header.is-menu-open .lu-nav__item { animation: none; }
}
