/* Readable defaults for existing native Elementor widgets. No content rewriting. */
:root{--ent-beige:#feeae5;--ent-motion:220ms;--ent-ease:cubic-bezier(.2,.7,.2,1)}
/* Homepage eyebrow/number widgets carry an Elementor per-widget global-color override
   (var(--e-global-color-13ad5d6), #E13F40) that fails WCAG AA on white/soft backgrounds
   (measured 3.88-4.21:1, needs 4.5:1). Redefining the variable in the scope where Elementor
   itself defines it (body.home, same specificity as .elementor-kit-6) fixes every affected
   widget at once with the same dark red already used successfully elsewhere on the page. */
body.home{--e-global-color-13ad5d6:#a72b2e}
#anfrage{scroll-margin-top:110px}
html:not(.ent-js) .elementor-accordion .elementor-tab-content{display:block!important}
.ent-form-wrap:not([data-ent-ready]){display:none}
.ent-form-fallback:has(+.ent-form-wrap[data-ent-ready]){display:none}
@media(max-width:1199px){
 html:not(.ent-js) .ent-navglass{flex-wrap:wrap}
 html:not(.ent-js) .ent-nav{display:block;position:static;order:3;width:100%;max-height:none;box-shadow:none}
 html:not(.ent-js) .ent-menu-toggle{display:none}
}
/* A nearby action shade gives small white labels 4.63:1 contrast; brand red remains #E13F40. */
.np .np-primary .elementor-button,.ent-interior .ent-button-red .elementor-button,.ent-btn--red,.ent-nav-cta,.ent-nav-mobile-cta{background-color:#d93638}
.np :is(.np-service,.np-aud,.np-guide),.ent-interior :is(.ent-card,.ent-extra-card,.ent-area-card){border-radius:20px;transition:box-shadow var(--ent-motion),border-color var(--ent-motion),transform var(--ent-motion) var(--ent-ease)}
.np .np-guide{background:linear-gradient(145deg,#fff,#feeae54d);border:1px solid #0b1b2314;--padding-top:26px;--padding-right:26px;--padding-bottom:26px;--padding-left:26px}
.np .np-guide>.np-link,.ent-interior .ent-card>.elementor-widget-button{margin-top:auto}
.np .np-glass{background:rgba(255,255,255,.86);border-color:#ffffffd9;box-shadow:0 8px 24px #0b1b2312,0 0 22px #e13f400c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.ent-interior .ent-price-panel{background-image:radial-gradient(ellipse at top right,#feeae58c,transparent 70%)}
.ent-action-arrow{display:inline-flex;align-items:center;justify-content:center;flex:0 0 1.8em;width:1.8em;height:1.8em;margin-inline-start:.6em;border:1px solid currentColor;border-radius:50%;font-size:1em;line-height:1;transition:transform var(--ent-motion) var(--ent-ease),background var(--ent-motion)}
.np .elementor-button-text,.ent-interior .elementor-button-text{display:inline-flex;align-items:center;text-align:inherit;min-width:0}
.np .elementor-button,.ent-interior .elementor-button{min-height:48px;overflow-wrap:anywhere}
.np .np-link .elementor-button{transform:none}
.np .np-link .ent-action-arrow{background:#feeae5;color:#923236;border-color:#e13f4026}
.np :is(.np-service-large,.np-price,.np-aud-wide) .ent-action-arrow{background:#ffffff12;color:inherit;border-color:#ffffff50}
@media(hover:hover) and (pointer:fine){
 .np :is(.np-service,.np-aud,.np-guide):hover,.ent-interior :is(.ent-card,.ent-extra-card,.ent-area-card):hover{transform:translateY(-3px);box-shadow:0 14px 30px #0b1b2310,0 0 22px #e13f4008}
 .elementor-button:hover .ent-action-arrow{transform:translate(2px,-2px)}
}
.elementor-button:focus-visible .ent-action-arrow{transform:translate(2px,-2px)}
.np .np-photo figcaption,.ent-interior .ent-image figcaption,.np .np-disclosure,.ent-image-disclosure{font-size:.875rem;line-height:1.6}
.np .np-service-office .np-photo figcaption{font-size:.875rem;line-height:1.4;max-width:calc(100% - 16px);white-space:normal;overflow-wrap:anywhere;background:#fffffff0}
.ent-form-grid label,.ent-service-choices label{font-size:.9375rem}
.ent-form-note{font-size:.875rem!important}
.ent-form-grid input[type=file]{font-size:.875rem}
.ent-form-nav{flex-wrap:wrap}
.ent-form-nav .ent-btn{font-size:.9375rem;white-space:normal}
.ent-footer__bottom{font-size:.875rem}
.ent-breadcrumbs,.ent-footer__label,.ent-form-wrap .ent-kicker{font-size:.875rem;line-height:1.6}
.ent-footer__top a{min-height:32px;display:inline-flex;align-items:center}
/* Avoid a large pointer target covering adjacent content when text grows. */
.np :is(h1,h2,h3),.ent-interior :is(h1,h2,h3){overflow-wrap:anywhere}
@media(max-width:767px){
 /* Elementor switches at 767px; legacy 560px spans created implicit zero-width columns. */
 .np .np-bento{--e-con-grid-template-columns:minmax(0,1fr)}
 .np :is(.np-service-large,.np-aud-main,.np-aud-wide){grid-column:auto;grid-row:auto}
 .np .np-service-large{--display:flex}
 .np .np-service-office{--e-con-grid-template-columns:minmax(0,1fr)}
 .np .np-service-office .np-photo{height:auto}
 .np .np-service-office .np-photo img{height:220px}
 .np .elementor-widget-text-editor,.ent-interior .elementor-widget-text-editor{font-size:1rem;line-height:1.65}
 .np .np-lead,.ent-interior .ent-lead{font-size:1.0625rem;line-height:1.65}
 .np p{line-height:1.65}
 .np :is(.np-small,.np-hero-note,.np-trust-item,.np-price-note,.np-glass) .elementor-widget-text-editor,.np .np-small,.np .np-price-note{font-size:.875rem;line-height:1.6}
 .np .np-number .elementor-heading-title,.np .np-glass .np-label{font-size:.875rem;letter-spacing:.065em;line-height:1.5}
 .np h1.elementor-heading-title,.ent-interior h1.elementor-heading-title{font-size:clamp(2rem,9.8vw,2.625rem);line-height:1.12}
 .np h2.elementor-heading-title,.np .np-final h2.elementor-heading-title,.ent-interior h2.elementor-heading-title{font-size:clamp(1.625rem,7.6vw,2.125rem);line-height:1.2}
 .np h3.elementor-heading-title,.np .np-guides h3.elementor-heading-title,.np .np-step h3.elementor-heading-title,.ent-interior h3.elementor-heading-title{font-size:1.375rem;line-height:1.3}
 .np .np-glass .elementor-heading-title{font-size:1rem;line-height:1.4}
 .np .np-glass{position:relative;inset:auto;max-width:none;--width:100%;margin-top:12px}
 .np .np-glass-top{background:linear-gradient(135deg,#fff,#feeae580)}
 .np .np-hero-visual{--row-gap:0}
 .np .np-actions .elementor-button,.np .np-cities .elementor-button,.np .np-link .elementor-button{font-size:.9375rem}
 .np .np-actions{--flex-direction:column;--align-items:stretch}
 .np .np-actions>.elementor-widget{width:100%;flex:auto}
 .np .np-actions .elementor-button{width:100%}
 .np .np-cities{--e-con-grid-template-columns:1fr}
 .np .np-faq .elementor-tab-title{font-size:1rem;line-height:1.5}
 .np .np-guide{--padding-top:24px;--padding-right:24px;--padding-bottom:24px;--padding-left:24px}
 .ent-interior .ent-pill p,.ent-interior .ent-trust-item .elementor-heading-title{font-size:.875rem;line-height:1.6}
 .ent-interior :is(.ent-trust-item,.ent-area-card) .elementor-widget-text-editor,.ent-interior .ent-article-meta,.ent-interior .ent-stepno .elementor-heading-title,.np .np-trust .np-number .elementor-heading-title{font-size:.875rem;line-height:1.6}
 .ent-form-step h3{font-size:1.375rem;line-height:1.3}
 .ent-footer__top a{min-height:44px}
}
@media(prefers-reduced-motion:reduce){.ent-action-arrow,.np :is(.np-service,.np-aud,.np-guide),.ent-interior :is(.ent-card,.ent-extra-card,.ent-area-card){transition:none!important;transform:none!important}}
/* Section-label (eyebrow) legibility, one size across breakpoints instead of the previous
   11px desktop / 14px (561-767px) / 10px / 9px (np-price-sheet, <=560px) patchwork. 13px reads
   clearly at arm's length on a phone and doesn't crowd the small kicker role next to a much
   larger H1/H2 on desktop. The np-price-sheet selector is repeated to match editorial.css's
   most specific eyebrow rule (4 classes) so this wins at every width, not just above 560px. */
.np .np-eyebrow .elementor-heading-title,.np .np-price-sheet .np-eyebrow .elementor-heading-title,.ent-interior .ent-kicker .elementor-heading-title{font-size:13px;letter-spacing:.08em;line-height:1.5}
