/* Remaining standard pages only. Dedicated Lumen templates and commerce do not
   use .lu-doc; the quiz has its own outer scope so its UI keeps its own styles. */
.efh-lu .lu-doc { container-type: inline-size; --lu-doc-pad: max(var(--lu-gutter), calc((100cqi - 760px) / 2)); width: 100%; max-width: none; min-width: 0; min-height: 0; margin: 0; padding: 0; color: var(--lu-text); font: 400 17px/1.75 var(--lu-sans); overflow-wrap: anywhere; }
.efh-lu :is(.lu-doc, .lu-quiz) .lu-doc__hero { padding: calc(var(--lu-head-offset, 0px) + clamp(40px, 5vw, 72px)) var(--lu-gutter) clamp(40px, 5vw, 64px); background: linear-gradient(165deg, #f8fcfc 0%, #e8f6f6 100%); }
.efh-lu :is(.lu-doc, .lu-quiz) .lu-doc__heading { width: 100%; max-width: 760px; min-width: 0; margin-inline: auto; }
.efh-lu :is(.lu-doc, .lu-quiz) .lu-doc__hero h1, .efh-lu .lu-doc h1 { margin: 0; padding: 0; color: var(--lu-ink); font: 800 clamp(34px, 4vw, 56px)/1.12 var(--lu-sans); letter-spacing: -.018em; text-align: start; overflow-wrap: anywhere; }
.efh-lu .lu-doc h1 :is(a, span, strong, em) { color: inherit; font-size: inherit; }
.efh-lu .lu-doc .lu-doc__hero h1 a { text-decoration: none; }
.efh-lu .lu-doc .lu-doc__body { width: 100%; min-width: 0; padding: clamp(40px, 5vw, 64px) var(--lu-doc-pad) clamp(64px, 8vw, 112px); }
.efh-lu .lu-doc :focus-visible { outline: 2px solid var(--lu-turq-deep); outline-offset: 4px; }

/* Converted Divi geometry: four-class scopes beat generated .efh-p<ID>-n<N>
   rules, including rich-text colours/alignment, without page-specific lists. */
.efh-lu .lu-doc .efh-content { color: var(--lu-text); font: inherit; }
.efh-lu .lu-doc .efh-content :is(.efh-section, .efh-row, .efh-column, .efh-text) { width: 100%; max-width: none; min-width: 0; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; color: var(--lu-text); font: inherit; text-align: start; }
.efh-lu .lu-doc .efh-content .efh-row { display: block; }
.efh-lu .lu-doc .efh-content .efh-column { display: block; }
.efh-lu .lu-doc .efh-content .efh-text { display: flow-root; margin-bottom: 24px; }
.efh-lu .lu-doc .efh-content .efh-module:last-child { margin-bottom: 0; }
.efh-lu .lu-doc--converted .lu-doc__body { padding: 0 0 clamp(64px, 8vw, 112px); }
.efh-lu .lu-doc--converted .lu-doc__body > .efh-content > .efh-section > .efh-row { width: calc(100% - 2 * var(--lu-gutter)); max-width: 760px; margin-inline: auto; }
.efh-lu .lu-doc--converted .lu-doc__body > .efh-content > .efh-section + .efh-section { padding-top: 32px; }
/* The existing H1 stays in its original module, even when that module contains
   the whole document. Container units extend just its band to the article edges
   (excluding the scrollbar); the text and all following content stay at 760px. */
.efh-lu .lu-doc--converted .lu-doc__body > .efh-content > .efh-section:first-child h1 { max-width: none; margin: 0 calc(-1 * var(--lu-doc-pad)) clamp(40px, 5vw, 64px); padding: calc(var(--lu-head-offset, 0px) + clamp(40px, 5vw, 72px)) var(--lu-doc-pad) clamp(40px, 5vw, 64px); background: linear-gradient(165deg, #f8fcfc 0%, #e8f6f6 100%); color: var(--lu-ink); font: 800 clamp(34px, 4vw, 56px)/1.12 var(--lu-sans); text-align: start; }
/* The H1's bottom margin alone separates the band from the document. Support
   both a shared text module and a title-only module followed by native/raw HTML. */
.efh-lu .lu-doc--converted .lu-doc__body > .efh-content > .efh-section:first-child h1 + * { margin-top: 0; }
.efh-lu .lu-doc--converted .efh-content .efh-section:first-child .efh-text:has(> h1:only-child) { margin-bottom: 0; }
.efh-lu .lu-doc--converted .efh-content .efh-section:first-child .efh-text:has(> h1:only-child) + .efh-text > :first-child { margin-top: 0; }
.efh-lu .lu-doc--converted .efh-content .efh-section:first-child .efh-text:has(> h1:only-child) + .efh-text > :is(section, div):first-child > :first-child { margin-top: 0; }

/* Reading column. Ordered lists retain their native numbering, including start
   and value attributes; unordered lists use the blog's gradient data points. */
.efh-lu .lu-doc .lu-doc__body :is(h2, h3, h4, h5, h6) { margin: 2em 0 .7em; padding: 0; color: var(--lu-ink); font-family: var(--lu-sans); font-weight: 800; line-height: 1.3; letter-spacing: -.01em; text-align: start; scroll-margin-top: calc(var(--lu-sticky, 84px) + 24px); }
.efh-lu .lu-doc .lu-doc__body h2 { color: var(--lu-turq); font-size: clamp(26px, 2.4vw, 34px); line-height: 1.2; }
.efh-lu .lu-doc .lu-doc__body h3 { font-size: 22px; }
.efh-lu .lu-doc .lu-doc__body h4 { font-size: 19px; }
.efh-lu .lu-doc .lu-doc__body :is(h5, h6) { font-size: 17px; }
.efh-lu .lu-doc .lu-doc__body :is(p, address, li, dt, dd) { color: var(--lu-text); font: 400 17px/1.75 var(--lu-sans); text-align: start; overflow-wrap: anywhere; }
.efh-lu .lu-doc .lu-doc__body :is(p, address) { margin: 0 0 1.15em; padding: 0; }
.efh-lu .lu-doc .lu-doc__body p:empty { margin: 0; }
.efh-lu .lu-doc .lu-doc__body :is(strong, b) { color: var(--lu-ink); font-weight: 700; }
.efh-lu .lu-doc .lu-doc__body a { color: var(--lu-turq-deep); text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: var(--lu-line-strong); text-underline-offset: .2em; overflow-wrap: anywhere; }
.efh-lu .lu-doc .lu-doc__body a :is(strong, b) { color: inherit; }
.efh-lu .lu-doc .lu-doc__body :is(.color-1, .color-2, .gray-text) { color: inherit; }
.efh-lu .lu-doc .lu-doc__body :is(ul, ol) { margin: 0 0 1.5em; padding: 0; line-height: 1.75; }
.efh-lu .lu-doc .lu-doc__body ul { list-style: none; }
.efh-lu .lu-doc .lu-doc__body ul > li { position: relative; margin: .55em 0; padding-left: 30px; }
.efh-lu .lu-doc .lu-doc__body ul > li::before { content: ""; position: absolute; top: .65em; left: 6px; width: 9px; height: 9px; border-radius: 50%; background: linear-gradient(135deg, var(--lu-turq), var(--lu-green)); }
.efh-lu .lu-doc .lu-doc__body ol { padding-left: 1.75em; }
.efh-lu .lu-doc .lu-doc__body ol > li { margin: .55em 0; padding-left: .35em; }
.efh-lu .lu-doc .lu-doc__body ol > li::marker { color: var(--lu-turq-deep); font-weight: 700; }
.efh-lu .lu-doc .lu-doc__body li > :is(ul, ol) { margin-block: .65em; }
.efh-lu .lu-doc .lu-doc__body dt { margin-top: 1em; color: var(--lu-ink); font-weight: 700; }
.efh-lu .lu-doc .lu-doc__body dd { margin: .35em 0 1em; }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-doc .lu-doc__body a:hover { text-decoration-color: currentColor; }
}

/* Calm cards and media; no image cropping or changed embed proportions. */
.efh-lu .lu-doc .lu-doc__body table { width: 100%; max-width: 100%; margin-block: 24px; table-layout: fixed; border: 1px solid var(--lu-line); border-collapse: separate; border-spacing: 0; border-radius: 20px; background: #fff; box-shadow: var(--lu-shadow); overflow: hidden; }
.efh-lu .lu-doc .lu-doc__body :is(th, td) { padding: clamp(10px, 2vw, 20px); border: 0; border-bottom: 1px solid var(--lu-line); color: var(--lu-text); font-size: 16px; line-height: 1.6; text-align: start; vertical-align: top; overflow-wrap: anywhere; }
.efh-lu .lu-doc .lu-doc__body th { background: var(--lu-mist); color: var(--lu-ink); font-weight: 700; }
.efh-lu .lu-doc .lu-doc__body :is(tbody, tfoot) tr:last-child > td { border-bottom: 0; }
.efh-lu .lu-doc .lu-doc__body figure { min-width: 0; margin-block: 28px; }
.efh-lu .lu-doc .lu-doc__body :is(.wp-block-embed, .wp-block-table) { min-width: 0; max-width: 100%; margin-block: 28px; }
.efh-lu .lu-doc .lu-doc__body img { max-width: 100%; height: auto; border-radius: 20px; }
.efh-lu .lu-doc .lu-doc__body figcaption { margin-top: 12px; color: var(--lu-meta); font-size: 14px; line-height: 1.6; }
.efh-lu .lu-doc .lu-doc__body :is(iframe, video, audio, object, embed) { max-width: 100%; border: 0; border-radius: 20px; }
.efh-lu .lu-doc .lu-doc__body .wp-block-embed__wrapper { max-width: 100%; }
.efh-lu .lu-doc .lu-doc__body :is(hr, .wp-block-separator, .efh-divider) { width: 100%; max-width: none; height: 1px; margin: 40px 0; border: 0; background: linear-gradient(90deg, var(--lu-green), var(--lu-turq)); opacity: .5; }
.efh-lu .lu-doc .lu-doc__body :is(blockquote, .wp-block-pullquote) { margin: 32px 0; padding: 24px clamp(20px, 3vw, 30px); border: 0; border-left: 4px solid; border-image: linear-gradient(var(--lu-turq), var(--lu-green)) 1; border-radius: 0 20px 20px 0; background: var(--lu-mist); color: var(--lu-ink); text-align: start; }
.efh-lu .lu-doc .lu-doc__body :is(blockquote, .wp-block-pullquote) p:last-child { margin-bottom: 0; }
.efh-lu .lu-doc .lu-doc__body cite { color: var(--lu-meta); font-size: 14px; font-style: normal; }
.efh-lu .lu-doc .lu-doc__body details { margin: 16px 0; padding: 0 22px; border: 1px solid var(--lu-line-strong); border-radius: 20px; background: var(--lu-mist); overflow: visible; }
.efh-lu .lu-doc .lu-doc__body details[open] { padding-bottom: 10px; background: #fff; }
.efh-lu .lu-doc .lu-doc__body summary { min-height: 56px; padding: 16px 28px 16px 0; color: var(--lu-ink); font: 700 17px/1.5 var(--lu-sans); cursor: pointer; }
.efh-lu .lu-doc .lu-doc__body summary::marker { color: var(--lu-turq-deep); }
.efh-lu .lu-doc .lu-doc__body .efh-accordion summary::after { top: 16px; color: var(--lu-turq-deep); }
.efh-lu .lu-doc .lu-doc__body pre { max-width: 100%; padding: 20px; overflow-x: auto; border-radius: 20px; background: var(--lu-mist); font-size: 14px; }

/* Shared document actions. The only !important overrides answer the converted
   button padding and line-height already marked !important in content.css. */
.efh-lu .lu-doc :is(a.efh-button, button.efh-button, .wp-block-button__link, .efh-inline-button, .efh-404__btn--primary, .order-withdrawal-request button[type="submit"]) { display: inline-flex; align-items: center; justify-content: center; gap: 10px; max-width: 100%; min-height: 58px; padding: 15px 28px; 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-decoration: none; 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, .65); opacity: 1; transform: none; white-space: normal; overflow-wrap: anywhere; cursor: pointer; transition: background-position .5s var(--lu-ease), box-shadow .25s ease; }
.efh-lu .lu-doc .efh-content .wp-block-button__link { padding: 15px 28px !important; line-height: 1.25 !important; }
.efh-lu .lu-doc .lu-doc__body .wp-block-buttons { justify-content: flex-start; gap: 14px; margin-block: 28px; }
.efh-lu .lu-doc .lu-doc__body .wp-block-button { min-width: 0; max-width: 100%; margin: 0; }
.efh-lu .lu-doc :is(button, input[type="submit"]):disabled { cursor: default; opacity: .55; }
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-doc :is(a.efh-button, button.efh-button, .wp-block-button__link, .efh-inline-button, .efh-404__btn--primary, .order-withdrawal-request button[type="submit"]):hover { background-position: 100% 0; color: #fff; opacity: 1; box-shadow: 0 18px 34px -14px rgba(42, 155, 161, .65); }
}
@media (prefers-reduced-motion: reduce) {
    .efh-lu .lu-doc :is(a, button, input, select, textarea) { transition: none; }
}

/* Germanized: the extra body scope beats the later commerce labels/focus rules.
   Rows remain stacked; the shortcode owns field visibility, validation, nonces,
   submissions and its inline bottom margin. Hidden/honeypot fields stay hidden. */
.efh-lu .lu-doc .lu-doc__body .order-withdrawal-request { min-width: 0; margin: 0; padding: clamp(20px, 4vw, 36px); border: 1px solid var(--lu-line); border-radius: 24px; background: #fff; box-shadow: var(--lu-shadow); }
.efh-lu .lu-doc .lu-doc__body .order-withdrawal-request .form-row { float: none; clear: both; width: 100%; min-width: 0; margin: 0 0 22px; padding: 0; }
.efh-lu .lu-doc .lu-doc__body .order-withdrawal-request label { display: block; margin-bottom: 8px; color: var(--lu-ink); font: 700 14px/1.5 var(--lu-sans); }
.efh-lu .lu-doc .lu-doc__body .order-withdrawal-request :is(input:not([type="hidden"], [type="checkbox"], [type="radio"], [type="submit"]), textarea, select) { box-sizing: border-box; display: block; width: 100%; max-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); }
.efh-lu .lu-doc .lu-doc__body .order-withdrawal-request textarea { min-height: 150px; resize: vertical; }
.efh-lu .lu-doc .lu-doc__body .order-withdrawal-request :is(input, textarea, select):focus { outline: 2px solid var(--lu-turq-deep); outline-offset: 3px; background-color: #fff; box-shadow: inset 0 0 0 2px var(--lu-turq); }
.efh-lu .lu-doc .lu-doc__body .order-withdrawal-request :is(input[type="checkbox"], input[type="radio"]) { width: 22px; height: 22px; margin: 0 8px 0 0; accent-color: var(--lu-turq-deep); vertical-align: middle; }
.efh-lu .lu-doc .lu-doc__body .order-withdrawal-request label:has(input:is([type="checkbox"], [type="radio"])) { min-height: 44px; padding-block: 10px; font-weight: 400; }
.efh-lu .lu-doc .lu-doc__body .order-withdrawal-request .form-row-submit { margin: 28px 0 0; }
@media (max-width: 600px) {
    .efh-lu .lu-doc .lu-doc__body .order-withdrawal-request button[type="submit"] { width: 100%; }
}

/* Search is reused verbatim by the 404 and the empty fallback. */
.efh-lu .lu-doc .efh-search-form { display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px; margin: 28px 0 0; }
.efh-lu .lu-doc .efh-search-form label { flex: 1 1 240px; max-width: none; min-width: 0; }
.efh-lu .lu-doc .efh-search-form input[type="search"] { width: 100%; min-width: 0; min-height: 58px; padding: 14px 18px; border: 1px solid var(--lu-line-strong); border-radius: 16px; background: var(--lu-mist); color: var(--lu-ink); font: 400 16px/1.5 var(--lu-sans); }
.efh-lu .lu-doc .efh-search-form input[type="search"]:focus-visible { background: #fff; box-shadow: inset 0 0 0 2px var(--lu-turq); }
@media (max-width: 600px) {
    .efh-lu .lu-doc .efh-search-form > :is(label, button) { flex-basis: 100%; width: 100%; }
}

/* Quiz: outer spacing only; no selectors reach inside the plugin container. */
.efh-lu .lu-quiz { width: 100%; max-width: none; min-width: 0; min-height: 0; margin: 0; padding: 0; }
.efh-lu .lu-quiz + .lu-quiz__body { min-width: 0; padding: clamp(36px, 3vw, 40px) max(var(--lu-gutter), calc((100% - 880px) / 2)) clamp(40px, 5vw, 72px); }

/* 404: the deploy-generated reference, including its inline stylesheet, stays
   untouched. These stronger selectors style its markup and suppress old effects. */
.efh-lu .lu-notfound .lu-notfound__hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); align-items: start; gap: clamp(32px, 5vw, 72px); padding: calc(var(--lu-head-offset, 0px) + clamp(40px, 5vw, 72px)) var(--lu-pad) clamp(64px, 8vw, 112px); background: linear-gradient(165deg, #f8fcfc 0%, #e8f6f6 100%); }
.efh-lu .lu-notfound .lu-notfound__content { position: relative; z-index: 1; min-width: 0; }
.efh-lu .lu-notfound :is(.efh-404, .efh-404__wrap) { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; color: var(--lu-text); overflow: visible; }
.efh-lu .lu-notfound .efh-404__grid { display: block; }
.efh-lu .lu-notfound .efh-404__badge { max-width: 100%; padding: 10px 14px; border-color: var(--lu-line); background: rgba(255, 255, 255, .75); color: var(--lu-turq-deep); font-size: 14px; line-height: 1.5; }
.efh-lu .lu-notfound .efh-404__badge-dot { flex: 0 0 10px; background: linear-gradient(135deg, var(--lu-turq), var(--lu-green)); box-shadow: none; }
.efh-lu .lu-notfound h1 { margin: 20px 0 24px; }
.efh-lu .lu-notfound :is(p, .efh-404__text) { margin: 0 0 22px; padding: 0; color: var(--lu-text); font-size: 17px; line-height: 1.75; }
.efh-lu .lu-notfound .efh-404__actions { gap: 12px; margin-top: 28px; color: var(--lu-turq-deep); }
.efh-lu .lu-notfound .efh-404__btn { min-height: 48px; max-width: 100%; border-radius: 999px; font: 700 17px/1.4 var(--lu-sans); white-space: normal; text-decoration: none; transform: none; box-shadow: none; will-change: auto; transition: background-color .2s ease; }
.efh-lu .lu-notfound .efh-404__btn--ghost { border-color: var(--lu-line-strong); background: rgba(255, 255, 255, .8); }
.efh-lu .lu-notfound .efh-404__card { margin-top: 36px; padding: clamp(20px, 3vw, 30px); border-color: var(--lu-line); border-radius: 24px; background: rgba(255, 255, 255, .9); box-shadow: var(--lu-shadow); }
.efh-lu .lu-notfound .efh-404__card::before { content: none; }
.efh-lu .lu-notfound .efh-404__big { margin: 0 0 12px; background: none; color: var(--lu-ink); font-size: clamp(56px, 7vw, 88px); }
.efh-lu .lu-notfound .efh-404__hint { font-size: 15px; }
.efh-lu .lu-notfound .efh-404__links { gap: 10px; margin-top: 16px; }
.efh-lu .lu-notfound .efh-404__link { min-height: 58px; min-width: 0; padding: 14px 16px; border-color: var(--lu-line); border-radius: 16px; background: var(--lu-mist); color: var(--lu-turq-deep); text-decoration: none; transform: none; }
.efh-lu .lu-notfound .efh-404__link > div { min-width: 0; }
.efh-lu .lu-notfound .efh-404__link strong { color: var(--lu-ink); }
.efh-lu .lu-notfound .efh-404__link small { color: var(--lu-text); font-size: 14px; }
.efh-lu .lu-notfound .lu-notfound__visual { position: relative; display: grid; place-items: center; width: 100%; min-width: 0; aspect-ratio: 1; margin-top: 24px; }
.efh-lu .lu-notfound .lu-notfound__visual .lu-field { inset: 0; }
.efh-lu .lu-notfound .lu-notfound__lens { z-index: 1; grid-row: auto; width: 50%; background: radial-gradient(circle at 34% 28%, rgba(255, 255, 255, .96), rgba(226, 242, 243, .86)); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
.efh-lu .lu-notfound .lu-notfound__lens::before { content: none; }
.efh-lu .lu-notfound .lu-notfound__lens svg { width: 54%; height: auto; stroke: var(--lu-turq-deep); stroke-width: 2; stroke-linecap: round; }
@media (max-width: 860px) {
    .efh-lu .lu-notfound .lu-notfound__hero { grid-template-columns: minmax(0, 1fr); gap: 28px; }
    .efh-lu .lu-notfound .lu-notfound__visual { width: min(100%, 320px); margin: 0 auto; }
}
@media (hover: hover) and (pointer: fine) {
    .efh-lu .lu-notfound :is(.efh-404__btn--ghost, .efh-404__link):hover { border-color: var(--lu-turq); background: #fff; }
}
@media (prefers-reduced-motion: reduce) {
    .efh-lu .lu-notfound :is(.efh-404__btn, .efh-404__link) { transition: none; }
}

/* The fallback preserves its post titles, content and native pagination. */
.efh-lu .lu-doc--fallback + .lu-doc--fallback .lu-doc__hero { padding-top: clamp(40px, 5vw, 72px); }
.efh-lu .lu-fallback-pagination { padding: 0 var(--lu-gutter) 64px; color: var(--lu-ink); }
.efh-lu .lu-fallback-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; max-width: 760px; margin-inline: auto; }
.efh-lu :is(.lu-fallback-pagination, .lu-doc .post-nav-links) .page-numbers, .efh-lu .lu-doc .post-page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--lu-line-strong); border-radius: 999px; color: var(--lu-turq-deep); text-decoration: none; }
.efh-lu .lu-fallback-pagination .current, .efh-lu .lu-doc .post-page-numbers.current { border-color: var(--lu-turq); background: var(--lu-mist-2); color: var(--lu-ink); }
/* Product quiz page: a deeper band, so the quiz card can rise into it below the title. */
/* Product quiz page: a slim band (title only), so the quiz card and its start
   button rise into the first screen; the card overlaps the band below the title. */
.efh-lu .lu-quiz .lu-doc__hero { padding-top: calc(var(--lu-head-offset, 0px) + clamp(20px, 2.6vw, 36px)); padding-bottom: clamp(84px, 8vw, 108px); }
.efh-lu .lu-quiz .lu-doc__hero h1 { font-size: clamp(28px, 3vw, 40px); }
