/* Essen layout owner. Bootstrap 5 owns containers, rows, columns and gutters.
   Shared site-shell/form styles remain shared. Page-specific rules live here. */
.essen-layout{--es-ink:#102c42;--es-blue:#135b8e;--es-muted:#4e6779;--es-rule:#c8d8e3;--es-pink:#b40063;--es-pad:clamp(3.5rem,6vw,6rem);color:var(--es-ink)}
.essen-layout *{min-width:0}
.essen-layout :is(h1,h2,h3){text-wrap:balance;overflow-wrap:break-word}
.essen-layout :is(p,a,label,summary){overflow-wrap:break-word}
.essen-layout :is(section[id],article[id],form[id]){scroll-margin-top:calc(var(--header-total,100px) + 24px)}
.essen-layout :is(a,button,summary,input,select,textarea):focus-visible{outline:3px solid #b40063;outline-offset:4px}
.essen-layout img{max-width:100%}
.essen-layout :is(input,select,textarea){font-size:1rem}
.essen-layout .lead-form{width:100%;max-width:none;margin:0;border-radius:6px}
.essen-layout .lead-form__head h2{font-size:clamp(1.6rem,2.2vw,2rem);line-height:1.12}
.essen-layout .lead-form :is(label,.lead-form__legal,.lead-form__footer,.lead-form__status){font-size:.8125rem;line-height:1.6}
.essen-layout .lead-form__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.essen-layout .lead-form__row--contact{grid-template-columns:repeat(2,minmax(0,1fr))}
.essen-layout .lead-form__footer{display:flex;flex-wrap:wrap;gap:1rem}
.essen-layout [hidden]{display:none!important}
/* Hub typography and shared editorial details. */
.essen-layout--hub h2{font-family:"Barlow Condensed",Barlow,sans-serif;font-weight:800;font-size:clamp(2.6rem,4.7vw,4.5rem);line-height:1;letter-spacing:-.01em;margin:0 0 1.5rem}
.essen-layout--hub h2 :is(em,.heading-accent){color:var(--es-blue);font-style:normal}
.essen-layout--hub h3{font-family:Barlow,sans-serif;font-weight:700;line-height:1.2}
.essen-layout--hub p{line-height:1.8}
.essen-city-kicker{display:flex;align-items:center;gap:1rem;margin:0 0 1.4rem;color:#436b88;font-size:.75rem;letter-spacing:.04em;font-weight:600}
.essen-city-kicker>span{font-family:"Barlow Condensed",Barlow,sans-serif;font-weight:800;font-size:2.25rem;line-height:1;color:#78a5c5;border-right:1px solid var(--es-rule);padding-right:1rem}
.essen-city-mark,.essen-city-hero-mark{position:absolute;pointer-events:none;user-select:none;font-family:"Barlow Condensed",Barlow,sans-serif;font-weight:800;font-size:clamp(6rem,18vw,17rem);line-height:.8;white-space:nowrap;z-index:0}
.essen-city-mark{top:1.5rem;right:2%;color:#102c4208}
.essen-city-textlink{display:inline-flex;align-items:center;gap:1.5rem;color:var(--es-blue);font-size:.9rem;font-weight:600;border-bottom:1px solid #9fbaca;text-decoration:none;padding-bottom:.5rem;margin-top:.75rem}
/* Hero: natural content height, controlled measure, no minimum viewport trap. */
.eh-hero{position:relative;isolation:isolate;overflow:hidden;background:#102c42;color:white}
.eh-hero__media{position:absolute;inset:0;z-index:-1}
.eh-hero__media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#071c30f2 5%,#071c30bb 48%,#071c3033)}
.eh-hero__media img{width:100%;height:100%;object-fit:cover;object-position:65% center}
.eh-hero__inner{position:relative;z-index:1;padding-block:clamp(3rem,6vw,6rem)}
.eh-hero__copy{max-width:54rem}
.eh-hero__kicker{display:inline-flex;align-items:center;gap:.65rem;color:#d3e7f5;font-size:.8125rem;letter-spacing:.07em}
.eh-hero__kicker svg{width:1rem;height:1rem}
.eh-hero h1{font-family:"Barlow Condensed",Barlow,sans-serif;font-weight:800;font-size:clamp(2.8rem,5.8vw,5.8rem);line-height:.98;letter-spacing:-.015em;color:white;max-width:20ch;margin:1.3rem 0 1.6rem}
.essen-hero-line{display:block;color:#c6dff1;margin-top:.12em}
.eh-hero__copy>p:not(.essen-city-hero-phone){font-size:1rem;line-height:1.8;color:#d6e4ef;max-width:48ch;margin:0 0 1.75rem}
.eh-hero__actions{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center}
.eh-primary,.eh-secondary{display:inline-flex;justify-content:space-between;align-items:center;gap:1.5rem;min-height:48px;padding:.9rem 1.2rem;border:1px solid #ffffff70;border-radius:4px;color:white;text-decoration:none;font-size:.875rem;font-weight:650}
.eh-primary{background:var(--es-pink);border-color:var(--es-pink)}
.eh-primary:hover{background:#910050;color:white}.eh-secondary:hover{background:white;color:#102c42}
.essen-city-hero-phone{font-size:.8125rem;color:#d0e1ed;margin:1.4rem 0}.essen-city-hero-phone a{color:white;margin-left:.4rem;text-underline-offset:4px}
.eh-signals{list-style:none;display:flex;flex-wrap:wrap;gap:.7rem 1.4rem;padding:0;margin:1.5rem 0 0;font-size:.75rem;color:#d5e5ef}.eh-signals li{display:flex;align-items:center;gap:.45rem}.eh-signals svg{width:1rem;height:1rem;color:#9fc7e3}
.essen-city-hero-mark{right:3%;bottom:.75rem;color:#ffffff0d;font-size:clamp(7rem,23vw,22rem)}
.eh-proof{padding:1.75rem 0;background:white;border-bottom:1px solid #dce5eb}
.eh-proof__grid>div,.eh-proof__grid>a{display:flex;align-items:flex-start;gap:.75rem;color:var(--es-ink);text-decoration:none}
.eh-proof__grid>div>svg,.eh-proof__grid>a>svg{width:1.4rem;height:1.4rem;flex:none;color:#32688f;stroke-width:1.5;margin-top:.2rem}
.eh-proof__grid b{display:block;font-size:.875rem;line-height:1.4;margin-bottom:.3rem}.eh-proof__grid small{display:block;font-size:.8125rem;line-height:1.65;color:var(--es-muted)}
/* Complete service hub, 1 / 2 / 3 columns at Bootstrap's sm/md/xl scale. */
.essen-city-services{position:relative;isolation:isolate;overflow:hidden;padding:var(--es-pad) 0;background:#f4f7f9}
.essen-city-services>.container,.essen-city-process>.container{position:relative;z-index:1}
.essen-city-head{align-items:end;margin-bottom:1.5rem}.essen-city-head h2{margin-bottom:0}.essen-city-head>p{font-size:1rem;color:var(--es-muted);margin-bottom:0}
.essen-city-jump{display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;border-block:1px solid var(--es-rule);padding:.85rem 0;margin:2rem 0}
.essen-city-jump a{display:inline-flex;align-items:center;min-height:44px;color:#284f6b;text-decoration:none;font-size:.875rem;font-weight:600}
.essen-city-jump a:hover{color:var(--es-pink)}
.essen-city-service{display:flex;flex-direction:column;height:100%;padding:clamp(1.25rem,2.2vw,1.8rem);background:white;border:1px solid #d5e1ea}
.essen-city-service>header{display:flex;align-items:center;justify-content:space-between;padding-bottom:1.2rem;border-bottom:1px solid #d2e0e9;margin-bottom:1.4rem}
.essen-city-service__icon{display:inline-flex;color:#235d84}.essen-city-service__icon svg{width:2rem;height:2rem;stroke-width:1.45}
.essen-city-service__number{font-family:"Barlow Condensed",Barlow,sans-serif;font-size:2.4rem;font-weight:800;line-height:1;color:#82aac7}
.essen-city-service h3{font-size:clamp(1.3rem,1.8vw,1.6rem);margin:0 0 .8rem}.essen-city-service h3 a{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem;color:var(--es-ink);text-decoration:none}.essen-city-service h3 a>span{font-size:1.2rem;flex:none}
.essen-city-service__tag{font-size:.75rem;line-height:1.6;letter-spacing:.02em;color:#3f6b8a;margin:0 0 .9rem}
.essen-city-service__intro{font-size:.9375rem;color:var(--es-muted);margin:0 0 1.5rem}
.essen-city-service nav{margin-top:auto;border-top:1px solid #d2e0e9}
.essen-city-service nav a{display:flex;justify-content:space-between;align-items:center;gap:.75rem;min-height:48px;padding:.75rem 0;border-bottom:1px solid #e0e8ee;color:#204965;font-size:.875rem;line-height:1.5;text-decoration:none}
.essen-city-service nav a>span:last-child{flex:none;font-size:1.2rem}.essen-city-service nav a.is-local{font-weight:700;color:#a20058}.essen-city-service a:hover{color:var(--es-pink)}
.essen-city-service__request{display:flex;justify-content:space-between;gap:1rem;align-items:center;min-height:48px;padding:.8rem 1rem;margin-top:1.5rem;background:#eaf1f6;color:#194d73;font-size:.875rem;font-weight:600;text-decoration:none}.essen-city-service__request:hover{background:#dfeaf2}
.essen-city-guide{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(1.5rem,2.3vw,2rem);background:#102c42;color:white}
.essen-city-guide .essen-city-kicker{color:#bed6e6}.essen-city-guide h3{font-family:"Barlow Condensed",Barlow,sans-serif;font-size:clamp(2.1rem,3vw,2.8rem);font-weight:800;color:white;line-height:1;margin:0 0 1.5rem}
.essen-city-guide>p:not(.essen-city-kicker){color:#d0e0ea;font-size:.9375rem;margin-bottom:1.5rem}.essen-city-guide>a{color:white;font-size:.875rem;line-height:1.6;padding-block:.5rem;text-underline-offset:4px}.essen-city-guide>a:first-of-type{display:flex;justify-content:space-between;gap:1rem;align-items:center;width:100%;min-height:48px;padding:.9rem 1rem;margin-bottom:.75rem;background:white;color:#102c42;font-weight:600;text-decoration:none}
.essen-city-services__note{font-size:.8125rem;color:var(--es-muted);max-width:85ch;margin:1.5rem 0 0}
/* Collaboration and process: fixed aspect ratio only on images, not content. */
.eh-about{padding:var(--es-pad) 0;background:white}.eh-about__grid{align-items:center}.eh-about__media{position:relative;margin-bottom:0}.eh-about__media img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.essen-city-photo-caption{position:absolute;left:calc(var(--bs-gutter-x)*.5);right:calc(var(--bs-gutter-x)*.5);bottom:0;padding:1rem 1.25rem;background:#102c42;color:white;font-size:.8125rem;line-height:1.65;border-left:3px solid #92bee0}
.eh-about__copy .heading-accent{display:block}.eh-about__copy>p:not(.essen-city-kicker){font-size:1rem;color:var(--es-muted);margin:0 0 1.2rem}
.essen-city-process{position:relative;isolation:isolate;overflow:hidden;padding:var(--es-pad) 0;background:#e9f0f4}.essen-city-process header{max-width:46rem;text-align:center;margin:0 auto 3rem}.essen-city-process header .essen-city-kicker{justify-content:center}.essen-city-process header>p:last-child{font-size:1rem;max-width:55ch;margin:1.5rem auto 0;color:var(--es-muted)}
.eh-principles ol{list-style:none;padding-left:0;margin-bottom:0}.eh-principles__visual{display:flex;align-items:center;justify-content:space-between;position:relative;height:65px;padding-bottom:1.2rem;margin-bottom:1.5rem;border-bottom:1px solid #b5cbdc}
.eh-principles__visual:after{content:"";position:absolute;bottom:-1px;left:0;width:24px;height:2px;background:#b40063}.eh-principles__visual svg{width:2.2rem;height:2.2rem;color:#275c81;stroke-width:1.4}.eh-principles__number{font-family:"Barlow Condensed",Barlow,sans-serif;font-weight:800;font-size:2.25rem;line-height:1;color:#7ba3c0}.eh-principles h3{font-size:1.4rem;margin:0 0 .7rem}.eh-principles p{font-size:.9375rem;color:var(--es-muted);margin:0}
/* Local coverage and FAQ. */
.eh-local{position:relative;isolation:isolate;background:#102c42;color:white;padding:var(--es-pad) 0}.eh-local__photo{position:absolute;inset:0;z-index:-1;overflow:hidden}.eh-local__photo img{height:100%;width:100%;object-fit:cover}.eh-local__photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0a2237ef,#0a2237df)}
.eh-local__inner{align-items:center}.eh-local h2{color:white}.eh-local .essen-city-kicker{color:#c5ddeb}.eh-local .essen-city-kicker>span{color:#9bc4e0;border-color:#66869c}.eh-local__copy>p{font-size:1rem;color:#d4e2eb;max-width:51ch}.eh-local__note{display:flex;align-items:flex-start;gap:.9rem;margin-top:1.5rem;padding:1.25rem 0;border-top:1px solid #ffffff40}.eh-local__note svg{flex:none;width:1.3rem;height:1.3rem;color:#9fc5e0}.eh-local__note p{margin:0;font-size:.875rem;color:#d4e2eb}.eh-local__districts>span{font-size:.8125rem;color:#c0d8e8;font-weight:600}.eh-local__districts ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;padding:0;margin:1rem 0 0;gap:0 1.3rem}.eh-local__districts li{padding:.8rem 0;border-bottom:1px solid #ffffff38;color:white;font-size:1.05rem}
.eh-faq{padding:var(--es-pad) 0;background:#f5f7f9}.eh-faq__grid{align-items:start}.eh-faq header>p{font-size:.9375rem;color:var(--es-muted)}.eh-faq header>a{font-size:.875rem;color:var(--es-blue);text-underline-offset:4px}.eh-faq__list details{border-top:1px solid #c7d8e4}.eh-faq__list details:last-child{border-bottom:1px solid #c7d8e4}.eh-faq__list summary{display:flex;align-items:flex-start;justify-content:space-between;gap:1.1rem;cursor:pointer;padding:1.4rem 0;list-style:none;color:#173c58;font-size:1rem;line-height:1.55;font-weight:600}.eh-faq__list summary::-webkit-details-marker{display:none}.eh-faq__list summary svg{flex:none;width:1.15rem;height:1.15rem;margin-top:.2rem;color:var(--es-pink)}.eh-faq__list details[open] summary svg{transform:rotate(45deg)}.eh-faq__list details p{font-size:.9375rem;line-height:1.85;color:var(--es-muted);margin:0 0 1.4rem}.eh-faq__list a{color:var(--es-blue);text-underline-offset:3px}.essen-faq-links{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:1rem;font-size:.875rem}
/* Contact: Bootstrap controls only the outer layout; shared form handler is unchanged. */
.essen-city-contact{padding:var(--es-pad) 0;background:#e8eff4}.essen-city-contact__grid{align-items:start}.essen-city-contact__copy>p:not(.essen-city-kicker){font-size:1rem;color:var(--es-muted);max-width:42ch}.essen-city-contact__phone{display:inline-flex;align-items:center;gap:1rem;margin:1.75rem 0 .5rem;color:#174e75;font-family:Barlow,sans-serif;font-size:clamp(1.5rem,2.5vw,2rem);font-weight:700;text-decoration:none}.essen-city-contact__copy>small{display:block;color:var(--es-muted);font-size:.8125rem}.essen-city-contact__copy .essen-city-contact__note{font-size:.875rem!important;border-top:1px solid #bfd2e0;padding-top:1.25rem;margin-top:1.5rem}
.eh-contact-bar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:900;display:flex;align-items:center;gap:1.5rem;width:min(860px,calc(100% - 32px));padding:14px 20px;background:#102c42;color:white;box-shadow:0 8px 30px #071d3340;border-radius:8px}
.eh-contact-bar[hidden]{display:none}.eh-contact-bar__copy{margin-right:auto}.eh-contact-bar__copy>span,.eh-contact-bar__copy>small{display:block;font-size:.7rem;color:#b9d4e6}.eh-contact-bar__copy>strong{display:block;font-size:.875rem}.eh-contact-bar a{display:flex;align-items:center;gap:.5rem;color:white;font-size:.8125rem;text-decoration:none;min-height:44px}.eh-contact-bar svg{width:1rem;height:1rem;flex:none}.eh-contact-bar__primary{padding:.7rem 1rem;background:#b40063;border-radius:4px}
/* Existing service components share the same Bootstrap grid and type scale. */
.essen-layout--detail .service-lead__layout,.essen-layout--detail .service-index-explorer__grid,.essen-layout--detail .service-master-process__stage,.essen-layout--detail .service-master-faq__grid{display:flex;gap:0;min-height:0;grid-template-columns:none}
.essen-layout--detail .service-lead__layout{align-items:center;padding-block:clamp(2rem,5vw,4rem)}
.essen-layout--detail .service-lead__copy{padding:0 calc(var(--bs-gutter-x)*.5)}
.essen-layout--detail .service-lead__copy h1,.essen-layout--detail .drain-hero h1{font-size:clamp(2.4rem,4.2vw,4.4rem);line-height:1.06;letter-spacing:-.035em;max-width:19ch}
.essen-layout--detail .service-lead__copy>p{font-size:1rem;line-height:1.8;max-width:48ch}
.essen-layout--detail :is(.service-index-explorer,.service-master-process,.service-direct,.service-master-faq){padding-block:var(--es-pad)}
.essen-layout--detail :is(.service-index-explorer,.service-master-process,.service-direct,.service-master-faq) h2{font-size:clamp(2.2rem,3.6vw,3.6rem);line-height:1.08}
.essen-layout--detail .service-index-explorer__stage{height:auto;aspect-ratio:4/3;min-height:0;margin-bottom:0;border-radius:10px;overflow:hidden}
.essen-layout--detail .service-index-explorer__nav .label{font-size:clamp(1.05rem,1.5vw,1.35rem)}
.essen-layout--detail .service-index-explorer__list>p{font-size:.9375rem;line-height:1.8}
.essen-layout--detail .service-master-head{text-align:center;display:block;max-width:48rem;margin:0 auto 2.5rem}.essen-layout--detail .service-master-head>p{max-width:58ch;margin:1.25rem auto 0;font-size:.9375rem}
.essen-layout--detail .service-master-process__stage>figure{height:auto;aspect-ratio:4/5;min-height:0;align-self:stretch;border-right:0}.essen-layout--detail .service-master-process__stage>ol{margin-bottom:0;list-style:none}.essen-layout--detail .service-master-process__stage li{min-height:0;padding:1.4rem;grid-template-columns:48px minmax(0,1fr);gap:1rem}.essen-layout--detail .service-master-process__stage li p{font-size:.9375rem;line-height:1.75}
.essen-layout--detail .service-direct__head{text-align:center;display:block;max-width:48rem;margin:0 auto 2.3rem}.essen-layout--detail .service-direct__head p{font-size:.9375rem;max-width:55ch;margin:1.2rem auto 0}.essen-layout--detail .service-direct__grid p{font-size:.875rem;line-height:1.75;display:block;-webkit-line-clamp:unset}.essen-layout--detail .service-direct__grid b{font-size:.8125rem}.essen-layout--detail .service-direct__grid h3{font-size:1.5rem;line-height:1.15}
.essen-layout--detail .service-master-faq__grid>header{position:static}.essen-layout--detail .service-master-faq .detail-faq summary{font-size:1rem;line-height:1.55;padding:1.2rem}.essen-layout--detail .service-master-faq .detail-faq p{font-size:.9375rem;line-height:1.8;margin:0 1.2rem 1.2rem}
.essen-layout--detail .drain-hero{min-height:0;padding-block:2rem}.essen-layout--detail .drain-hero__content{padding-block:1.5rem 2.5rem}.essen-layout--detail .drain-breadcrumb{line-height:1.75;font-size:.8125rem}
.essen-local-nav{background:white;border-bottom:1px solid #d4e1e9}.essen-local-nav>.eco-container{display:flex;gap:.4rem;overflow-x:auto;padding-block:.85rem;scrollbar-width:thin}.essen-local-nav a{flex:none;display:inline-flex;align-items:center;min-height:44px;padding:.55rem .9rem;border-radius:24px;color:#254d69;font-size:.8125rem;font-weight:600;text-decoration:none;white-space:nowrap}.essen-local-nav a[aria-current]{color:white;background:#102c42}.essen-local-nav a:hover:not([aria-current]){background:#e8f0f5}
.essen-hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}.essen-hero-actions a{display:inline-flex;align-items:center;min-height:46px;border:1px solid #ffffff80;border-radius:4px;padding:.7rem 1rem;color:white;font-size:.875rem;text-decoration:none}.essen-hero-actions a:first-child{background:white;color:#102c42}
/* One breakpoint family: Bootstrap sm=576, md=768, lg=992, xl=1200. */
@media(max-width:1199.98px){.essen-layout--detail .service-direct--cross .service-direct__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:991.98px){.eh-about__media img{aspect-ratio:16/10;object-position:center}.essen-city-head>p{margin-top:var(--bs-gutter-y)}.essen-layout--detail .service-master-process__stage>figure{aspect-ratio:16/9}.essen-layout--detail .service-lead__layout{padding-block:2.5rem}.essen-layout--detail .service-index-explorer__stage{aspect-ratio:16/10}.essen-layout--detail .service-master-head{text-align:left}.essen-layout--detail .service-master-head>p{margin-left:0}}
@media(max-width:767.98px){.eh-hero__media:after{background:#071c30c9}.eh-hero__inner{padding-block:3rem}.essen-city-process header{text-align:left;margin-bottom:2rem}.essen-city-process header .essen-city-kicker{justify-content:flex-start}.essen-city-process header>p:last-child{margin-left:0}.eh-principles__visual{max-width:100%;height:56px;margin-bottom:1rem}.eh-principles h3{font-size:1.3rem}.eh-contact-bar{gap:.75rem;padding:10px 14px;bottom:max(10px,env(safe-area-inset-bottom))}.eh-contact-bar__copy{display:none}.eh-contact-bar a{flex:1;justify-content:center}.essen-layout--detail .service-master-process__stage li{padding:1.2rem}.essen-layout--detail .service-direct__head{text-align:left}}
@media(max-width:575.98px){.essen-layout{--es-pad:3.5rem}.eh-hero__actions{align-items:stretch;flex-direction:column;max-width:28rem}.eh-primary,.eh-secondary{width:100%}.eh-signals{gap:.6rem 1rem}.essen-layout .lead-form__row,.essen-layout .lead-form__row--contact{grid-template-columns:1fr}.essen-layout .lead-form{padding:1.25rem}.essen-layout--detail .service-direct--cross .service-direct__grid{grid-template-columns:1fr}.essen-layout--detail .service-master-faq .detail-faq summary{padding:1rem}.essen-layout--detail .service-master-faq .detail-faq p{margin-inline:1rem}.essen-layout--detail .service-index-explorer__caption{font-size:.875rem}.essen-layout--detail .drain-actions{flex-direction:column}.essen-layout--detail .drain-actions>a{justify-content:center;min-height:48px}}
@media(prefers-reduced-motion:reduce){.essen-layout *{scroll-behavior:auto!important}.essen-layout :is(a,svg){transition:none!important}}
