/*
Theme Name: Kahsay Classic
Author: Matthias
Description: Weiterentwickeltes klassisches Kahsay-Design mit mehr Freiraum, flexiblen Header-/Footer-Presets und modernen Leistungsseiten. Eigenständige Designoption neben Kahsay Original, Editorial, Panorama und Studio.
Version: 4.1.13
Requires at least: 6.4
Requires PHP: 7.4
Tested up to: 6.8
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: sanitaer-handwerk
Tags: custom-menu, custom-logo, featured-images, threaded-comments, translation-ready, block-patterns, one-column, two-columns, three-columns
*/

/* =========================================================
   1. Grundlagen & Design-Tokens
   ========================================================= */
:root{
  --color-ink:#003b7f;
  --color-muted:#516f89;
  --color-primary:#079bea;
  --color-primary-dark:#0067c1;
  --color-light:#eff9ff;
  --color-line:#c7e4f5;
  --color-white:#fff;
  --color-accent:#f02b16;
  --color-heating:#f02b16;
  --color-climate:#079bea;
  --color-pv:#378a18;
  --color-gold:#f8a71f;
  --color-success:#235c3a;
  --color-success-bg:#e3f2e9;
  --color-success-border:#8ab69c;
  --radius:10px;
  --radius-lg:14px;
  --shadow:0 16px 42px rgba(0,59,127,0.12);
  --font-base:"Montserrat","Segoe UI",Arial,sans-serif;
  --font-display:"Montserrat","Segoe UI",Arial,sans-serif;
  --font-script:"Dancing Script","Segoe Script","Brush Script MT",cursive;
  --container-max:1240px;
  --gap:1.5rem;

  /* Kahsay Theme Contract 1: neutrale Tokens für Suite-Plugins.
     Die bisherigen --color-* Variablen bleiben unverändert erhalten. */
  --kahsay-color-primary:#079bea;
  --kahsay-color-primary-strong:#0067c1;
  --kahsay-color-ink:#003b7f;
  --kahsay-color-text:#516f89;
  --kahsay-color-surface:#fff;
  --kahsay-color-surface-muted:#eff9ff;
  --kahsay-color-border:#c7e4f5;
  --kahsay-color-accent:#f02b16;
  --kahsay-color-heating:#f02b16;
  --kahsay-color-climate:#079bea;
  --kahsay-color-pv:#378a18;
  --kahsay-radius-sm:8px;
  --kahsay-radius-md:10px;
  --kahsay-radius-lg:14px;
  --kahsay-control-height:48px;
  --kahsay-container-max:1240px;
  --kahsay-section-space:clamp(4rem,8vw,7rem);
  --kahsay-font-base:var(--font-base);
  --kahsay-font-display:var(--font-display);
}


*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-base);
  font-size:1rem;
  line-height:1.65;
  color:var(--color-ink);
  background:var(--color-white);
  font-synthesis:none;
  text-rendering:optimizeLegibility;
}
img,svg,video,canvas,audio,iframe,embed,object{display:block;max-width:100%;height:auto}
iframe{border:0}
button,input,select,textarea{font:inherit;color:inherit}
button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
button{cursor:pointer;background:none;border:0}
a{color:inherit;text-decoration:none}
a:hover{color:var(--color-primary-dark)}
p{margin:0 0 1.25rem;color:var(--color-muted)}
ul,ol{margin:0 0 1.25rem;padding-left:1.3rem}
h1,h2,h3,h4,h5,h6{line-height:1.16;letter-spacing:-.025em;font-family:var(--font-display);font-weight:700;color:var(--color-ink);margin:0 0 1.1rem}
h1{font-size:clamp(2.2rem,4.6vw,3.6rem)}
h2{font-size:clamp(1.7rem,3vw,2.5rem)}
h3{font-size:1.25rem}
h4{font-size:1.05rem}
table{border-collapse:collapse;width:100%;margin-bottom:1.5rem}
th,td{border:1px solid var(--color-line);padding:.6rem .8rem;text-align:left}
blockquote{margin:1.5rem 0;padding:.5rem 0 .5rem 1.3rem;border-left:3px solid var(--color-primary);color:var(--color-muted);font-style:italic}
code,kbd,pre,samp{font-family:ui-monospace,Consolas,monospace;font-size:.92em}
pre{background:var(--color-light);padding:1rem;overflow-x:auto;border-radius:var(--radius)}
hr{border:0;border-top:1px solid var(--color-line);margin:2.5rem 0}

a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--color-gold);outline-offset:3px;
}
[tabindex="-1"]:focus{outline:none}

.skip-link{position:fixed;top:-100px;left:20px;background:var(--color-ink);color:#fff;padding:12px 24px;z-index:1000;border-radius:0 0 6px 6px}
.skip-link:focus{top:0}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.screen-reader-text:focus{position:fixed;top:10px;left:10px;width:auto;height:auto;padding:12px 18px;background:#fff;color:var(--color-ink);z-index:1000;clip:auto}

/* =========================================================
   2. Container & Bootstrap-kompatibles Grid (12 Spalten)
   Kompatibel zu Bootstrap-5-Klassennamen. Funktioniert auch,
   wenn zusätzlich das echte Bootstrap-Grid geladen wird.
   ========================================================= */
.container,.container-fluid{width:100%;margin-inline:auto;padding-inline:24px}
.container{max-width:var(--container-max)}
.container.narrow,.container-narrow{max-width:840px}

.row{display:flex;flex-wrap:wrap;margin-inline:-12px}
.row>[class*="col"]{padding-inline:12px;width:100%}
.g-0{margin-inline:0}.g-0>[class*="col"]{padding-inline:0}
.g-2>[class*="col"]{padding-bottom:.5rem}
.g-3>[class*="col"]{padding-bottom:1rem}
.g-4>[class*="col"]{padding-bottom:1.5rem}
.gy-4>[class*="col"]{padding-bottom:1.5rem}
.gy-5>[class*="col"]{padding-bottom:2.5rem}

.col{flex:1 0 0%}
.col-auto{flex:0 0 auto;width:auto}
/* Basis-Spalten (mobil, keine Media Query) */
.col-1{flex:0 0 auto;width:8.333333%}
.col-2{flex:0 0 auto;width:16.666667%}
.col-3{flex:0 0 auto;width:25%}
.col-4{flex:0 0 auto;width:33.333333%}
.col-5{flex:0 0 auto;width:41.666667%}
.col-6{flex:0 0 auto;width:50%}
.col-7{flex:0 0 auto;width:58.333333%}
.col-8{flex:0 0 auto;width:66.666667%}
.col-9{flex:0 0 auto;width:75%}
.col-10{flex:0 0 auto;width:83.333333%}
.col-11{flex:0 0 auto;width:91.666667%}
.col-12{flex:0 0 auto;width:100%}
.offset-0{margin-left:0%}
.offset-1{margin-left:8.333333%}
.offset-2{margin-left:16.666667%}
.offset-3{margin-left:25%}
.offset-4{margin-left:33.333333%}
.offset-5{margin-left:41.666667%}
.offset-6{margin-left:50%}
.offset-7{margin-left:58.333333%}
.offset-8{margin-left:66.666667%}
.offset-9{margin-left:75%}
.offset-10{margin-left:83.333333%}
.offset-11{margin-left:91.666667%}

@media(min-width:576px){
.col-sm-1{flex:0 0 auto;width:8.333333%}
.col-sm-2{flex:0 0 auto;width:16.666667%}
.col-sm-3{flex:0 0 auto;width:25%}
.col-sm-4{flex:0 0 auto;width:33.333333%}
.col-sm-5{flex:0 0 auto;width:41.666667%}
.col-sm-6{flex:0 0 auto;width:50%}
.col-sm-7{flex:0 0 auto;width:58.333333%}
.col-sm-8{flex:0 0 auto;width:66.666667%}
.col-sm-9{flex:0 0 auto;width:75%}
.col-sm-10{flex:0 0 auto;width:83.333333%}
.col-sm-11{flex:0 0 auto;width:91.666667%}
.col-sm-12{flex:0 0 auto;width:100%}
.offset-sm-0{margin-left:0%}
.offset-sm-1{margin-left:8.333333%}
.offset-sm-2{margin-left:16.666667%}
.offset-sm-3{margin-left:25%}
.offset-sm-4{margin-left:33.333333%}
.offset-sm-5{margin-left:41.666667%}
.offset-sm-6{margin-left:50%}
.offset-sm-7{margin-left:58.333333%}
.offset-sm-8{margin-left:66.666667%}
.offset-sm-9{margin-left:75%}
.offset-sm-10{margin-left:83.333333%}
.offset-sm-11{margin-left:91.666667%}
}

@media(min-width:768px){
.col-md-1{flex:0 0 auto;width:8.333333%}
.col-md-2{flex:0 0 auto;width:16.666667%}
.col-md-3{flex:0 0 auto;width:25%}
.col-md-4{flex:0 0 auto;width:33.333333%}
.col-md-5{flex:0 0 auto;width:41.666667%}
.col-md-6{flex:0 0 auto;width:50%}
.col-md-7{flex:0 0 auto;width:58.333333%}
.col-md-8{flex:0 0 auto;width:66.666667%}
.col-md-9{flex:0 0 auto;width:75%}
.col-md-10{flex:0 0 auto;width:83.333333%}
.col-md-11{flex:0 0 auto;width:91.666667%}
.col-md-12{flex:0 0 auto;width:100%}
.offset-md-0{margin-left:0%}
.offset-md-1{margin-left:8.333333%}
.offset-md-2{margin-left:16.666667%}
.offset-md-3{margin-left:25%}
.offset-md-4{margin-left:33.333333%}
.offset-md-5{margin-left:41.666667%}
.offset-md-6{margin-left:50%}
.offset-md-7{margin-left:58.333333%}
.offset-md-8{margin-left:66.666667%}
.offset-md-9{margin-left:75%}
.offset-md-10{margin-left:83.333333%}
.offset-md-11{margin-left:91.666667%}
.col-md{flex:1 0 0%}
}

@media(min-width:992px){
.col-lg-1{flex:0 0 auto;width:8.333333%}
.col-lg-2{flex:0 0 auto;width:16.666667%}
.col-lg-3{flex:0 0 auto;width:25%}
.col-lg-4{flex:0 0 auto;width:33.333333%}
.col-lg-5{flex:0 0 auto;width:41.666667%}
.col-lg-6{flex:0 0 auto;width:50%}
.col-lg-7{flex:0 0 auto;width:58.333333%}
.col-lg-8{flex:0 0 auto;width:66.666667%}
.col-lg-9{flex:0 0 auto;width:75%}
.col-lg-10{flex:0 0 auto;width:83.333333%}
.col-lg-11{flex:0 0 auto;width:91.666667%}
.col-lg-12{flex:0 0 auto;width:100%}
.offset-lg-0{margin-left:0%}
.offset-lg-1{margin-left:8.333333%}
.offset-lg-2{margin-left:16.666667%}
.offset-lg-3{margin-left:25%}
.offset-lg-4{margin-left:33.333333%}
.offset-lg-5{margin-left:41.666667%}
.offset-lg-6{margin-left:50%}
.offset-lg-7{margin-left:58.333333%}
.offset-lg-8{margin-left:66.666667%}
.offset-lg-9{margin-left:75%}
.offset-lg-10{margin-left:83.333333%}
.offset-lg-11{margin-left:91.666667%}
.col-lg{flex:1 0 0%}
}

@media(min-width:1200px){
.col-xl-1{flex:0 0 auto;width:8.333333%}
.col-xl-2{flex:0 0 auto;width:16.666667%}
.col-xl-3{flex:0 0 auto;width:25%}
.col-xl-4{flex:0 0 auto;width:33.333333%}
.col-xl-5{flex:0 0 auto;width:41.666667%}
.col-xl-6{flex:0 0 auto;width:50%}
.col-xl-7{flex:0 0 auto;width:58.333333%}
.col-xl-8{flex:0 0 auto;width:66.666667%}
.col-xl-9{flex:0 0 auto;width:75%}
.col-xl-10{flex:0 0 auto;width:83.333333%}
.col-xl-11{flex:0 0 auto;width:91.666667%}
.col-xl-12{flex:0 0 auto;width:100%}
.col-xl{flex:1 0 0%}
}

/* =========================================================
   3. Flex-Utilities (angelehnt an MDBootstrap /docs/vue/layout/flex/)
   ========================================================= */
.d-flex{display:flex}
.d-inline-flex{display:inline-flex}
.d-block{display:block}
.d-none{display:none}
.d-grid{display:grid}
.flex-row{flex-direction:row}
.flex-row-reverse{flex-direction:row-reverse}
.flex-column{flex-direction:column}
.flex-column-reverse{flex-direction:column-reverse}
.flex-wrap{flex-wrap:wrap}
.flex-nowrap{flex-wrap:nowrap}
.flex-fill{flex:1 1 auto}
.flex-grow-0{flex-grow:0}.flex-grow-1{flex-grow:1}
.flex-shrink-0{flex-shrink:0}.flex-shrink-1{flex-shrink:1}
.justify-content-start{justify-content:flex-start}
.justify-content-end{justify-content:flex-end}
.justify-content-center{justify-content:center}
.justify-content-between{justify-content:space-between}
.justify-content-around{justify-content:space-around}
.justify-content-evenly{justify-content:space-evenly}
.align-items-start{align-items:flex-start}
.align-items-end{align-items:flex-end}
.align-items-center{align-items:center}
.align-items-baseline{align-items:baseline}
.align-items-stretch{align-items:stretch}
.align-self-start{align-self:flex-start}
.align-self-end{align-self:flex-end}
.align-self-center{align-self:center}
.align-content-start{align-content:flex-start}
.align-content-center{align-content:center}
.align-content-between{align-content:space-between}
.gap-1{gap:.4rem}.gap-2{gap:.8rem}.gap-3{gap:1.2rem}.gap-4{gap:1.8rem}.gap-5{gap:2.6rem}
.order-first{order:-1}.order-last{order:99}
@media(min-width:768px){
  .d-md-flex{display:flex}.d-md-none{display:none}.d-md-block{display:block}
  .flex-md-row{flex-direction:row}.flex-md-column{flex-direction:column}
}
@media(min-width:992px){
  .d-lg-flex{display:flex}.d-lg-none{display:none}.d-lg-block{display:block}
  .flex-lg-row{flex-direction:row}.flex-lg-column{flex-direction:column}
}
.text-center{text-align:center}.text-start{text-align:left}.text-end{text-align:right}
.w-100{width:100%}.h-100{height:100%}
.mt-0{margin-top:0}.mb-0{margin-bottom:0}
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}
.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}
.py-2{padding-block:1rem}.py-3{padding-block:1.5rem}.py-4{padding-block:2rem}.py-5{padding-block:3rem}
.px-2{padding-inline:1rem}.px-3{padding-inline:1.5rem}

/* =========================================================
   4. Kopfbereich, Marke, Navigation (mehrstufig)
   ========================================================= */
.site-header{background:var(--color-white);position:relative;z-index:50}
.header-top-bar{background:var(--color-ink);color:#dfeaf1;font-size:.8rem;padding:8px 0}
.header-top-bar a{color:#cfe4ef}
.header-main{display:flex;justify-content:space-between;align-items:center;min-height:104px;gap:20px}
.brand{display:inline-flex;align-items:center;gap:13px}
.brand-symbol{height:47px;width:47px;background:#e4f2f8;color:var(--color-primary);border-radius:11px;display:grid;place-items:center;overflow:hidden}
.brand-symbol img{width:100%;height:100%;object-fit:contain}
.brand-text strong{display:block;font-size:1.7rem;letter-spacing:-.04em;line-height:1.2;font-weight:750}
.brand-text small{display:block;letter-spacing:.15em;font-size:.62rem;margin-top:4px;font-weight:650;text-transform:uppercase;color:var(--color-muted)}
.header-contact{display:flex;align-items:center;gap:18px}
.header-contact .contact-line{font-size:.78rem;line-height:1.4;color:var(--color-muted)}
.header-contact .contact-line strong{display:block;color:var(--color-ink);font-size:.92rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--color-primary-dark);border:1px solid var(--color-primary-dark);color:#fff;padding:13px 22px;font-weight:650;font-size:.92rem;line-height:1.4;border-radius:5px;transition:background .18s,transform .18s}
.btn:hover{background:var(--color-primary-dark);color:#fff;transform:translateY(-1px)}
.btn-sm{padding:10px 16px;font-size:.85rem}
.btn-outline{background:#fff;color:var(--color-primary)}
.btn-outline:hover{background:var(--color-light);color:var(--color-primary-dark)}
.btn-white{background:#fff;color:var(--color-ink);border-color:#fff}

.nav-border{border-block:1px solid var(--color-line)}
.navigation-wrap{display:flex;align-items:center;justify-content:space-between}
.main-navigation ul{list-style:none;margin:0;padding:0}
.main-navigation .menu{display:flex;flex-wrap:wrap;gap:4px}
.main-navigation .menu>li{position:relative}
.main-navigation .menu>li>a{display:block;padding:17px 14px;font-size:.9rem;font-weight:650}
.main-navigation .current-menu-item>a,.main-navigation .current_page_item>a{color:var(--color-primary);position:relative}
.main-navigation .current-menu-item>a:after{content:"";height:3px;background:var(--color-primary);position:absolute;bottom:0;left:14px;right:14px}
.main-navigation .menu-item-has-children>a{padding-right:26px;position:relative}
.main-navigation .menu-item-has-children>a:after{content:"";display:inline-block;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);position:absolute;right:12px;top:50%;margin-top:-6px;opacity:.65}
.main-navigation .sub-menu{position:absolute;top:100%;left:0;z-index:60;background:#fff;border:1px solid var(--color-line);box-shadow:var(--shadow);border-radius:0 0 8px 8px;min-width:270px;padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .15s,transform .15s}
.main-navigation:not(.has-submenu-controls) li:hover>.sub-menu,.main-navigation li.is-open>.sub-menu,.main-navigation:not(.has-submenu-controls) li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.main-navigation .sub-menu a{display:block;padding:11px 12px;border-radius:4px;font-size:.9rem;font-weight:500}
.main-navigation .sub-menu a:hover{background:var(--color-light)}
.main-navigation .sub-menu .sub-menu{top:0;left:100%}
.menu-toggle{display:none;border:1px solid var(--color-line);padding:10px;border-radius:5px;background:#fff;align-items:center;gap:8px}
.menu-toggle .bar{display:block;width:20px;height:2px;background:var(--color-ink);margin:4px 0}
.nav-contact-link{display:flex;gap:8px;align-items:center;font-size:.8rem;color:var(--color-muted);font-weight:600}

@media(max-width:991px){
  .header-contact .contact-line{display:none}
  .menu-toggle{display:inline-flex}
  .navigation-wrap{display:block}
  .main-navigation{display:none;padding:8px 0 20px}
  .main-navigation.is-open{display:block}
  .main-navigation .menu{display:block}
  .main-navigation .menu>li>a{padding:13px 0}
  .main-navigation .menu-item-has-children>a:after{right:0}
  .main-navigation .sub-menu{position:static;box-shadow:none;border:0;border-left:2px solid #bfd7e4;padding:0 0 0 14px;border-radius:0;margin:4px 0 10px;opacity:1;visibility:visible;transform:none;display:none}
  .main-navigation .menu-item-has-children.is-open>.sub-menu{display:block}
  .main-navigation .sub-menu .sub-menu{left:0}
}

/* =========================================================
   5. Hero, Service-Streifen, Karten
   ========================================================= */
.hero{padding:64px 0 70px;overflow:hidden;background:linear-gradient(115deg,#fff 60%,#f3f7f9 60%)}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:.72rem;letter-spacing:.15em;font-weight:750;color:var(--color-primary);margin-bottom:20px;text-transform:uppercase}
.eyebrow .rule{width:26px;height:2px;background:var(--color-primary);display:inline-block}
.hero h1 .accent,.entry-title .accent{color:var(--color-primary)}
.hero p.lead{max-width:480px;font-size:1.08rem;line-height:1.8}
.button-row{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.text-link{display:inline-flex;align-items:center;gap:10px;color:var(--color-ink);font-weight:650;font-size:.95rem}
.text-link:hover{color:var(--color-primary)}
.hero-media{position:relative}
.photo-frame{position:relative;aspect-ratio:1.3;border-radius:8px;overflow:hidden;background:linear-gradient(145deg,#e8eff3,#d0e2eb);border:1px solid #c8dce7}
.photo-frame img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.photo-frame.portrait{aspect-ratio:.95}
.hero-badge{position:relative;margin-top:-30px;margin-left:10px;display:inline-flex;gap:16px;align-items:center;background:#fff;box-shadow:0 10px 35px rgba(18,51,76,0.12);border-left:4px solid var(--color-accent);border-radius:4px;padding:18px 24px;font-size:.9rem;max-width:90%}

.service-strip{border-block:1px solid var(--color-line);background:#fff}
.service-strip .row>div{display:flex;align-items:center;justify-content:center;gap:14px;padding:22px 10px;font-weight:600;font-size:.88rem;text-align:center}

.section{padding:80px 0}
.section-light{background:var(--color-light)}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:36px;flex-wrap:wrap}
.section-heading h2{margin:0}

.card{border:1px solid var(--color-line);padding:26px 24px;display:flex;flex-direction:column;height:100%;border-radius:7px;transition:box-shadow .18s,border-color .18s;background:#fff}
.card:hover{border-color:#87b8cf;box-shadow:var(--shadow)}
.card .card-icon{color:var(--color-primary);margin-bottom:20px}
.card .card-kicker{font-size:.62rem;font-weight:700;letter-spacing:.1em;color:var(--color-muted);margin-bottom:10px;text-transform:uppercase}
.card h3{min-height:2.3em;font-size:1.18rem}
.card p{font-size:.9rem}
.card .card-link{margin-top:auto;padding-top:18px;font-size:.84rem;font-weight:650;color:var(--color-primary);display:flex;justify-content:space-between}

.project-card{display:block;height:100%;color:inherit}
.project-caption{display:flex;gap:20px;justify-content:space-between;padding:18px 0}
.project-caption span{font-size:.75rem;color:var(--color-muted)}
.project-caption h3{font-size:1.35rem;margin:6px 0 0}
.process-step .step-number{display:inline-block;color:var(--color-primary);font-weight:700;font-size:1rem;letter-spacing:.08em;border-bottom:2px solid #b9d8e8;padding-bottom:8px;margin-bottom:20px}

.contact-banner{background:var(--color-ink);padding:56px 0}
.contact-banner .row{align-items:center}
.contact-banner .eyebrow{color:#91cfe9}
.contact-banner h2{color:#fff}
.contact-banner p{color:#c2d2dd;margin-bottom:0}

/* =========================================================
   6. Akkordeon (FAQ), Slider, Bildergalerie/Lightbox
   ========================================================= */
.faq-item{border-bottom:1px solid #ccdce6}
.faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 0;font-weight:600}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .icon-plus{transition:transform .2s;flex-shrink:0}
.faq-item[open] summary .icon-plus{transform:rotate(45deg)}
.faq-item .faq-body{padding:0 30px 20px 0;margin:0}

.shw-slider{position:relative;overflow:hidden;border-radius:var(--radius)}
.shw-slider .shw-slides{display:flex;transition:transform .4s ease}
.shw-slider .shw-slide{flex:0 0 100%;aspect-ratio:16/9}
.shw-slider .shw-slide img{width:100%;height:100%;object-fit:cover}
.shw-slider .shw-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(18,47,70,.65);color:#fff;border-radius:50%;width:42px;height:42px;display:flex;align-items:center;justify-content:center}
.shw-slider .shw-prev{left:14px}.shw-slider .shw-next{right:14px}
.shw-slider .shw-dots{position:absolute;bottom:14px;left:0;right:0;display:flex;justify-content:center;gap:8px}
.shw-slider .shw-dots button{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.6)}
.shw-slider .shw-dots button.is-active{background:#fff}

.shw-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.shw-gallery figure{margin:0;border-radius:var(--radius);overflow:hidden;position:relative;cursor:zoom-in;aspect-ratio:4/3}
.shw-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.shw-gallery a:hover img{transform:scale(1.04)}
.shw-lightbox{position:fixed;inset:0;background:rgba(10,20,30,.92);display:flex;align-items:center;justify-content:center;z-index:1000;padding:30px}
.shw-lightbox img{max-width:100%;max-height:85vh;border-radius:6px}
.shw-lightbox .shw-lightbox-close{position:absolute;top:22px;right:26px;color:#fff;font-size:2rem;line-height:1}

.video-embed{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:var(--radius)}
.video-embed iframe,.video-embed embed,.video-embed object{position:absolute;top:0;left:0;width:100%;height:100%}

.social-links{display:flex;gap:12px}
.social-links a{width:38px;height:38px;border-radius:50%;background:var(--color-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;border:1px solid var(--color-line)}
.social-links a:hover{background:var(--color-primary-dark);color:#fff}

/* =========================================================
   7. Formulare (nativ & Plugin-kompatibel)
   ========================================================= */
.form-card{background:var(--color-light);border:1px solid var(--color-line);border-radius:var(--radius-lg);padding:34px}
.form-card h2{font-size:1.7rem}
label{display:block;margin-bottom:6px;font-weight:600;font-size:.88rem}
label .optional{font-weight:400;font-size:.76rem;color:var(--color-muted)}
input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid #afc3d0;border-radius:4px;padding:12px;width:100%;background:#fff;color:var(--color-ink);min-height:47px;margin-bottom:1rem}
textarea{resize:vertical}
input::placeholder,textarea::placeholder{color:#627989;opacity:1}
.form-hint{font-size:.78rem;margin-top:6px}
.form-hint a{text-decoration:underline}
.form-result,.info-note{background:#edf5fa;border-left:3px solid var(--color-primary);padding:16px 20px;font-size:.9rem;line-height:1.7;margin:1rem 0;color:#35556b;border-radius:0 4px 4px 0}
.form-result.is-success{background:var(--color-success-bg);border-left-color:var(--color-success-border);color:var(--color-success)}

/* Kompatibilität: Contact Form 7 */
.wpcf7-form input:not([type=checkbox]):not([type=radio]),.wpcf7-form select,.wpcf7-form textarea{margin-bottom:.4rem}
.wpcf7-form .wpcf7-not-valid-tip{color:#b3261e;font-size:.78rem;margin:-.3rem 0 .6rem}
.wpcf7-form .wpcf7-response-output{border-radius:6px;padding:14px 18px;margin-top:1rem;border:1px solid var(--color-line)}
.wpcf7-mail-sent-ok{background:var(--color-success-bg);border-color:var(--color-success-border)!important;color:var(--color-success)}
.wpcf7-validation-errors,.wpcf7-mail-sent-ng{background:#fdecea;border-color:#f3b4ac!important;color:#8a1f11}
/* Kompatibilität: WPForms */
.wpforms-container input:not([type=checkbox]):not([type=radio]),.wpforms-container select,.wpforms-container textarea{min-height:47px}
.wpforms-container button[type=submit]{background:var(--color-primary)!important;border-radius:5px!important}
/* Kompatibilität: Gravity Forms */
.gform_wrapper .gform_button{background:var(--color-primary-dark);color:#fff;border-radius:5px;border:0;padding:13px 22px}

/* =========================================================
   8. Blog / News, Suche, Archiv, Pagination, Kommentare
   ========================================================= */
.entry-meta{font-size:.8rem;color:var(--color-muted);display:flex;gap:14px;flex-wrap:wrap;margin-bottom:1rem}
.entry-thumb{border-radius:var(--radius);overflow:hidden;margin-bottom:1.2rem;aspect-ratio:16/9}
.entry-thumb img{width:100%;height:100%;object-fit:cover}
.post-list{display:grid;gap:2.2rem}
.post-list.grid-2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.post-card{border:1px solid var(--color-line);border-radius:var(--radius);overflow:hidden;background:#fff;display:flex;flex-direction:column}
.post-card .post-card-body{padding:20px 22px;display:flex;flex-direction:column;flex:1}
.post-card h2,.post-card h3{font-size:1.15rem}
.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin:1rem 0}
.tag-list a{background:var(--color-light);border-radius:20px;padding:5px 14px;font-size:.78rem;color:var(--color-muted)}
.pagination-nav{display:flex;justify-content:center;gap:8px;margin:3rem 0;flex-wrap:wrap}
.pagination-nav a,.pagination-nav span{border:1px solid var(--color-line);border-radius:5px;padding:8px 14px;font-size:.9rem}
.pagination-nav .current{background:var(--color-ink);color:#fff;border-color:var(--color-ink)}
.search-form{display:flex;gap:8px}
.search-form input[type=search]{margin-bottom:0}
.search-results-count{font-size:.85rem;color:var(--color-muted);margin-bottom:1.5rem}
.filter-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}
.filter-row button{background:#fff;border:1px solid var(--color-line);padding:10px 18px;border-radius:30px;font-size:.88rem}
.filter-row button.is-selected{background:var(--color-ink);color:#fff;border-color:var(--color-ink)}
.breadcrumbs{display:flex;gap:8px;flex-wrap:wrap;font-size:.78rem;color:var(--color-muted);padding:20px 0}
.breadcrumbs a{color:var(--color-primary)}
.comment-list{list-style:none;padding:0}
.comment-list .children{list-style:none;padding-left:40px}
.comment-body{border:1px solid var(--color-line);border-radius:var(--radius);padding:18px 20px;margin-bottom:16px}
.comment-form input:not([type=checkbox]),.comment-form textarea{max-width:520px}

/* HTML-Sitemap */
.sitemap-section h2{border-bottom:1px solid var(--color-line);padding-bottom:10px;margin-top:2.4rem}
.sitemap-section ul{columns:2;column-gap:2.5rem}
.sitemap-section li{break-inside:avoid;margin-bottom:.4rem}
@media(max-width:640px){.sitemap-section ul{columns:1}}

/* =========================================================
   9. Widgets & Footer
   ========================================================= */
.widget{margin-bottom:2.4rem}
.widget-title{font-size:1rem;letter-spacing:0;margin-bottom:16px;text-transform:uppercase;font-weight:700}
.widget ul{list-style:none;padding:0;margin:0}
.widget li{margin-bottom:9px;font-size:.88rem}
.site-footer{background:#f7f9fb;padding:56px 0 0;margin-top:auto}
.footer-brand{margin-bottom:18px;display:inline-flex}
.footer-brand strong{font-size:1.5rem}
.site-footer p{font-size:.85rem;line-height:1.85}
.footer-bottom{margin-top:40px;border-top:1px solid var(--color-line);padding:22px 0;display:flex;justify-content:space-between;gap:20px;font-size:.78rem;color:var(--color-muted);flex-wrap:wrap}
.footer-bottom nav{display:flex;gap:20px;flex-wrap:wrap}
.footer-legal-menu{list-style:none;margin:0;padding:0;display:flex;gap:20px;flex-wrap:wrap}
.footer-legal-menu li{margin:0}

/* =========================================================
   10. Layout-Ausrichtung Erweiterter Kahsay Design- und Page-Builder mit Flexbox, Patterns, Responsive Controls, Style-Presets und dynamischen Content-Blöcken. Flexible Seitenvorlagen
   ========================================================= */
.page-hero{background:var(--color-light);padding:52px 0 56px;border-bottom:1px solid var(--color-line)}
.layout-1col .content-area{max-width:840px;margin-inline:auto}
.layout-2col .content-columns,.layout-3col .content-columns{display:flex;flex-wrap:wrap;gap:2.4rem}
.layout-2col .content-column{flex:1 1 45%;min-width:280px}
.layout-3col .content-column{flex:1 1 30%;min-width:240px}
.layout-flex .content-area .alignwide{max-width:1240px}
.layout-flex .content-area .alignfull{max-width:none}

/* Rendering-Optimierung für klar abgegrenzte, unterhalb des Folds liegende UI-Bausteine.
   Browser ohne content-visibility-Unterstützung ignorieren diese Angaben. */
.shw-document-library,.shw-smart-table,.shw-pricing,.shw-social-feed,.shw-project-facts{content-visibility:auto;contain-intrinsic-size:auto 420px}

/* =========================================================
   11. Barrierefreiheit, reduzierte Bewegung, Druck
   ========================================================= */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.site-header,.menu-toggle,.contact-banner,.header-top-bar,.site-footer nav,.btn{display:none!important}.section{padding:20px 0}body{font-size:11pt}}

/* =========================================================
   12. Responsive Anpassungen
   ========================================================= */
@media(max-width:767px){
  .header-main{min-height:80px}
  .hero{padding:38px 0}
  .section{padding:46px 0}
  .contact-banner .row{flex-direction:column;align-items:flex-start;gap:20px}
  .hero-badge{max-width:100%}
}

/* =========================================================
   13. Kahsay Marken-Refresh (Visitenkarte, v1.1.0)
   ========================================================= */
.header-top-bar{
  background:linear-gradient(90deg,#003a7f 0%,#0057a8 58%,#006bc5 100%);
  color:#fff;
  padding:9px 0;
  box-shadow:inset 0 -1px 0 rgba(255,255,255,.14);
}
.header-top-bar a{color:#fff;font-weight:600;display:inline-flex;align-items:center;gap:7px}
.header-top-bar a:hover{color:#dff4ff}
.header-top-bar .contact-icon{display:inline-grid;place-items:center;color:#8dd6ff}
.header-top-bar .top-hours{display:inline-flex;align-items:center;gap:7px;font-weight:600}
.header-top-bar .top-hours-icon{width:17px;height:17px;object-fit:contain;flex:0 0 17px}
.top-quality{font-family:var(--font-script);font-size:1.12rem;font-weight:600;letter-spacing:.02em;color:#fff}

.site-header{box-shadow:0 5px 18px rgba(0,59,127,.05)}
.header-main{min-height:112px}
.brand{gap:14px}
.brand-symbol{
  width:56px;height:56px;border-radius:50%;
  background:linear-gradient(145deg,#e5f7ff,#fff);
  color:var(--color-ink);border:2px solid #8dd6ff;
  box-shadow:0 7px 18px rgba(7,155,234,.12);
}
.brand-text strong{font-size:1.9rem;font-weight:800;letter-spacing:-.055em;color:var(--color-ink);text-transform:uppercase}
.brand-text small{font-size:.6rem;letter-spacing:.115em;font-weight:700;color:var(--color-primary-dark)}
.brand-logo .custom-logo{max-height:84px;width:auto}
.header-contact .contact-line>span{display:block;color:var(--color-primary-dark);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.header-contact .contact-line strong{color:var(--color-ink);font-size:.88rem}
.btn{border-radius:7px;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));border-color:var(--color-primary-dark);font-weight:700;box-shadow:0 7px 18px rgba(7,155,234,.17)}
.btn:hover{background:linear-gradient(135deg,var(--color-primary-dark),#004f9a);transform:translateY(-1px);box-shadow:0 10px 24px rgba(0,103,193,.22)}
.btn-white{background:#fff;color:var(--color-ink);border-color:#fff;box-shadow:none}
.btn-white:hover{background:#eef9ff;color:var(--color-ink)}
.nav-border{border-top:1px solid var(--color-line);border-bottom:3px solid var(--color-primary)}
.main-navigation .menu>li>a{font-weight:700;color:#163f6d}
.main-navigation .current-menu-item>a,.main-navigation .current_page_item>a{color:var(--color-primary-dark)}
.main-navigation .current-menu-item>a:after,.main-navigation .current_page_item>a:after{background:var(--color-primary)}
.nav-contact-link{color:var(--color-primary-dark);font-weight:700}

.hero{
  position:relative;padding:76px 0 88px;
  background:linear-gradient(132deg,#fff 0%,#f8fdff 48%,#e7f7ff 100%);
  border-bottom:1px solid #bfe3f7;
}
.hero::before{
  content:"";position:absolute;z-index:0;right:-12%;bottom:-125px;width:67%;height:270px;
  background:linear-gradient(110deg,rgba(7,155,234,.08),rgba(7,155,234,.24));
  border-radius:50% 0 0 0;transform:rotate(-5deg);pointer-events:none;
}
.hero::after{
  content:"";position:absolute;z-index:0;right:-8%;bottom:-160px;width:54%;height:230px;
  background:linear-gradient(110deg,rgba(0,59,127,.08),rgba(0,103,193,.18));
  border-radius:50% 0 0 0;transform:rotate(-7deg);pointer-events:none;
}
.hero .container{position:relative;z-index:1}
.eyebrow{color:var(--color-primary-dark);font-size:.72rem;letter-spacing:.13em;font-weight:800;margin-bottom:18px}
.eyebrow .rule{background:var(--color-primary);width:34px}
.hero h1{font-weight:800;max-width:650px;color:var(--color-ink)}
.hero-claim{font-family:var(--font-script);font-size:clamp(1.8rem,3vw,2.65rem);line-height:1;color:var(--color-primary-dark);margin:-.2rem 0 1.35rem;transform:rotate(-1.5deg);transform-origin:left center}
.hero p.lead{color:#416783;max-width:560px;font-size:1.05rem}
.photo-frame{border-radius:18px;border:1px solid #a7d9f3;background:linear-gradient(145deg,#edfaff,#cceeff);box-shadow:0 22px 55px rgba(0,59,127,.14)}
.hero-badge{border-left:0;border-radius:12px;margin-top:-38px;margin-left:22px;padding:15px 20px;box-shadow:0 14px 36px rgba(0,59,127,.18);gap:13px}
.hero-badge .master-badge{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#006bc5,#003a7f);color:#fff;font-size:1.2rem;box-shadow:0 6px 14px rgba(0,59,127,.2)}
.hero-badge strong{display:block;color:var(--color-ink);font-size:.9rem;text-transform:uppercase;letter-spacing:.04em}
.hero-badge small{display:block;color:var(--color-muted);margin-top:2px;font-size:.76rem}

.service-strip{background:#fff;border-color:#bfe3f7;position:relative;z-index:2}
.service-strip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.service-strip-grid>div{display:flex;align-items:center;justify-content:center;gap:10px;padding:19px 16px;font-size:.82rem;font-weight:700;text-align:center;color:#244b72;border-right:1px solid var(--color-line)}
.service-strip-grid>div:last-child{border-right:0}
.strip-icon{width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;background:#e9f7ff;color:var(--color-primary-dark);font-weight:800;flex:0 0 28px}
.service-strip-grid a{color:inherit}
.service-strip-grid a:hover{color:var(--color-primary-dark)}

.services-section{background:linear-gradient(180deg,#fff 0%,#f9fdff 100%)}
.services-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:17px;align-items:stretch}
.card.service-card{--service-color:var(--color-primary);position:relative;overflow:hidden;transition:box-shadow .18s,border-color .18s,transform .18s;border-radius:13px;padding:25px 20px 22px;border-color:#c8e5f5;box-shadow:0 8px 22px rgba(0,59,127,.05)}
.card.service-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--service-color)}
.card.service-card:hover{border-color:#8ccff1;box-shadow:0 16px 34px rgba(0,59,127,.12);transform:translateY(-2px)}
.service-card .card-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:2px 0 18px;color:var(--service-color);background:#edf8ff;border:1px solid #d4ecf8}
.service-card .card-icon svg{width:36px;height:36px}
.service-card .card-icon .dashicons{font-size:34px;width:34px;height:34px}
.service-card h3{min-height:0;font-size:1.05rem;text-transform:uppercase;letter-spacing:.015em;margin-bottom:12px;color:var(--service-color);font-weight:800}
.service-card p{font-size:.83rem;margin-bottom:12px}
.service-points{list-style:none;padding:0;margin:0 0 17px;font-size:.77rem;line-height:1.5;color:#3d5f7c}
.service-points li{position:relative;padding-left:13px;margin:.35rem 0}
.service-points li::before{content:"";position:absolute;left:0;top:.58em;width:5px;height:5px;border-radius:50%;background:var(--service-color)}
.service-card .card-link{color:var(--service-color);font-size:.76rem;border-top:1px solid #e3f0f7;padding-top:14px}
.service-card-static .card-link{display:flex}
.service-sanitaer{--service-color:#0077c8!important}
.service-heizung{--service-color:var(--color-heating)!important}
.service-klima{--service-color:#079bea!important}
.service-pv{--service-color:var(--color-pv)!important}
.service-service{--service-color:#003b7f!important}
.service-heizung .card-icon{background:#fff0ed;border-color:#ffd4cc}
.service-pv .card-icon{background:#eef8e9;border-color:#d7ebcd}
.service-service .card-icon{background:#edf2f8;border-color:#d5e0ec}

.brand-trust{background:linear-gradient(90deg,#0067c1 0%,#007fda 55%,#0059a9 100%);color:#fff;border-top:1px solid rgba(255,255,255,.25);border-bottom:1px solid #004986}
.brand-trust-grid{display:grid;grid-template-columns:repeat(5,1fr)}
.brand-trust-grid>div{display:flex;align-items:center;justify-content:center;gap:10px;padding:20px 12px;border-right:1px solid rgba(255,255,255,.26);text-align:left}
.brand-trust-grid>div:last-child{border-right:0}
.brand-trust-grid span{width:34px;height:34px;border:2px solid rgba(255,255,255,.92);border-radius:50%;display:grid;place-items:center;flex:0 0 34px;font-size:.9rem}
.brand-trust-grid strong{font-size:.7rem;line-height:1.35;text-transform:uppercase;letter-spacing:.035em;color:#fff}

.process-step .step-number{color:var(--color-primary-dark);border-bottom-color:#8ed0f2}
.contact-banner{position:relative;overflow:hidden;background:linear-gradient(120deg,#003a7f,#005ea9)}
.contact-banner::after{content:"";position:absolute;right:-10%;bottom:-120px;width:48%;height:230px;border-radius:50% 0 0 0;background:rgba(7,155,234,.22);transform:rotate(-7deg)}
.contact-banner .container{position:relative;z-index:1}
.contact-banner .eyebrow{color:#8edcff}

.page-hero{position:relative;overflow:hidden;background:linear-gradient(125deg,#f8fdff 0%,#e9f8ff 100%);border-bottom:1px solid #bfe3f7}
.page-hero::after{content:"";position:absolute;right:-8%;bottom:-100px;width:45%;height:180px;background:rgba(7,155,234,.12);border-radius:50% 0 0 0;transform:rotate(-7deg)}
.page-hero .container{position:relative;z-index:1}

.form-card{background:#f4fbff;border-color:#c5e5f6;box-shadow:0 14px 36px rgba(0,59,127,.06)}
.social-links a{background:#eef9ff;color:var(--color-primary-dark);border-color:#c8e5f5}
.social-links a:hover{background:var(--color-primary-dark)}

.site-footer{position:relative;overflow:hidden;background:linear-gradient(180deg,#f4fbff,#eaf6fd);border-top:1px solid #c5e5f6}
.site-footer::before{content:"";position:absolute;left:-15%;bottom:-150px;width:65%;height:235px;background:rgba(7,155,234,.09);border-radius:0 60% 0 0;transform:rotate(4deg)}
.site-footer .container{position:relative;z-index:1}
.footer-claim{font-family:var(--font-script);font-size:1.65rem;color:var(--color-primary-dark);line-height:1;margin:2px 0 12px}
.footer-bottom{border-top-color:#bfdff1}

@media(max-width:1199px){
  .services-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .brand-trust-grid{grid-template-columns:repeat(3,1fr)}
  .brand-trust-grid>div{border-bottom:1px solid rgba(255,255,255,.2)}
}
@media(max-width:991px){
  .top-quality{display:none}
  .header-main{min-height:88px}
  .brand-text strong{font-size:1.6rem}
  .brand-text small{max-width:360px;white-space:normal}
  .hero{padding:54px 0 72px}
  .service-strip-grid{grid-template-columns:1fr}
  .service-strip-grid>div{border-right:0;border-bottom:1px solid var(--color-line)}
  .service-strip-grid>div:last-child{border-bottom:0}
}
@media(max-width:767px){
  .services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .brand-trust-grid{grid-template-columns:1fr 1fr}
  .brand-trust-grid>div{justify-content:flex-start}
  .hero-badge{margin-left:8px}
  .brand-symbol{width:48px;height:48px}
  .brand-text small{font-size:.5rem;letter-spacing:.08em}
}
@media(max-width:520px){
  .services-grid{grid-template-columns:1fr}
  .brand-trust-grid{grid-template-columns:1fr}
  .header-top-bar .top-contact{gap:.45rem 1rem}
  .header-top-bar{font-size:.72rem}
  .brand-text strong{font-size:1.35rem}
  .brand-text small{display:none}
  .hero-claim{font-size:2rem}
}

/* =========================================================
   14. Kahsay-Iconbibliothek (Visitenkarte, v1.1.2)
   ========================================================= */
.shw-business-card-icon{display:block;object-fit:contain;max-width:none}
.service-card .card-icon.card-icon--business{
  width:64px;height:64px;background:transparent;border:0;border-radius:0;padding:0;
}
.service-card .card-icon.card-icon--business .service-business-icon{
  width:64px;height:64px;object-fit:contain;
}
.master-badge .master-badge-icon{width:31px;height:31px;object-fit:contain}
.strip-icon-image{width:31px;height:31px;object-fit:contain;flex:0 0 31px}
.brand-trust-grid .trust-icon{
  width:46px;height:46px;flex:0 0 46px;border:0;border-radius:0;background:transparent;padding:0;
  display:grid;place-items:center;
}
.brand-trust-grid .trust-icon-image{width:44px;height:44px;object-fit:contain}
.contact-card-icon{width:48px;height:48px;object-fit:contain;flex:0 0 48px;margin-top:2px}
.contact-card-icon--outline{padding:5px}
.wp-block-sanitaer-handwerk-visitenkarten-icon{display:flex;width:100%;margin-top:.75rem;margin-bottom:.75rem}
.wp-block-sanitaer-handwerk-visitenkarten-icon.shw-icon-align-left{justify-content:flex-start}
.wp-block-sanitaer-handwerk-visitenkarten-icon.shw-icon-align-center{justify-content:center}
.wp-block-sanitaer-handwerk-visitenkarten-icon.shw-icon-align-right{justify-content:flex-end}
.wp-block-sanitaer-handwerk-visitenkarten-icon .shw-page-icon{object-fit:contain}
.page-service-heading{display:flex;align-items:center;gap:20px}
.page-service-icon{display:block;flex:0 0 74px;width:74px;height:74px}
.page-service-icon-image{width:74px;height:74px;object-fit:contain}
.page-service-heading h1{margin:0}
@media(max-width:600px){
  .page-service-heading{gap:14px}
  .page-service-icon,.page-service-icon-image{width:58px;height:58px;flex-basis:58px}
}

/* =========================================================
   15. Kahsay Hausmarke im Header (Visitenkarte, v1.1.2)
   ========================================================= */
.brand-symbol.brand-symbol--kahsay{
  width:110px;height:54px;min-width:110px;
  background:transparent;border:0;border-radius:0;box-shadow:none;
  overflow:visible;display:flex;align-items:center;justify-content:center;
}
.brand-symbol.brand-symbol--kahsay .brand-house-mark{
  display:block;width:110px;height:auto;max-height:54px;object-fit:contain;
}
@media(max-width:767px){
  .brand-symbol.brand-symbol--kahsay{width:92px;height:45px;min-width:92px}
  .brand-symbol.brand-symbol--kahsay .brand-house-mark{width:92px;max-height:45px}
}
@media(max-width:520px){
  .brand{gap:9px}
  .brand-symbol.brand-symbol--kahsay{width:82px;height:40px;min-width:82px}
  .brand-symbol.brand-symbol--kahsay .brand-house-mark{width:82px;max-height:40px}
}



/* =========================================================
   16. Kicker-Sortierung, Seitenluft & mobiles Menü (v1.1.3)
   ========================================================= */

/* Flexible Seiten wie „Angebote“ und „Der Betrieb“ erhalten bewusst
   mehr Abstand nach Breadcrumb/Header sowie großzügigere Blockabstände. */
.section-page-flex{
  padding-top:56px;
  padding-bottom:88px;
}
.layout-flex .content-area{
  width:100%;
  max-width:var(--container-max);
  margin-inline:auto;
}
.layout-flex .entry-content{
  width:100%;
}
.layout-flex .entry-content > :first-child{margin-top:0}
.layout-flex .entry-content > .wp-block-heading:first-child{
  margin-bottom:clamp(1.5rem,2.8vw,2.4rem);
}
.layout-flex .entry-content > .wp-block-columns{
  gap:clamp(2rem,4vw,4rem);
  margin-top:clamp(1.8rem,3vw,2.8rem);
  margin-bottom:clamp(3.2rem,5vw,5rem);
}
.layout-flex .entry-content > .wp-block-columns:last-child{margin-bottom:0}
.layout-flex .wp-block-columns .wp-block-column > .wp-block-heading:first-child{
  margin-top:.15rem;
}
.layout-flex .wp-block-columns .wp-block-column > :last-child{margin-bottom:0}
.layout-flex .wp-block-image{margin-top:0;margin-bottom:0}
.layout-flex .wp-block-image img{border-radius:12px}

/* Verschachtelte Spalten – z. B. die drei Betriebsgrundsätze innerhalb
   eines zweispaltigen „Der Betrieb“-Abschnitts – nicht nochmals eng
   nebeneinander quetschen. Innerhalb einer Spalte werden sie gestapelt. */
.layout-flex .wp-block-column > .wp-block-columns{
  display:grid;
  grid-template-columns:1fr;
  gap:1.35rem;
  margin-top:2rem;
  margin-bottom:0;
}
.layout-flex .wp-block-column > .wp-block-columns > .wp-block-column{
  min-width:0;
}

/* Mobiler Menüschalter als klare, markentypische Touch-Schaltfläche. */
.menu-toggle{
  min-height:46px;
  padding:0 14px;
  border:1px solid #a9d9f2;
  border-radius:999px;
  background:linear-gradient(145deg,#f8fdff,#e8f7ff);
  color:var(--color-ink);
  box-shadow:0 6px 16px rgba(0,59,127,.08);
  font-weight:750;
  line-height:1;
  transition:background .18s,border-color .18s,box-shadow .18s,transform .18s;
}
.menu-toggle:hover{
  background:#e4f5ff;
  border-color:#7bc8ee;
  color:var(--color-ink);
  box-shadow:0 8px 20px rgba(0,59,127,.12);
}
.menu-toggle:active{transform:translateY(1px)}
.menu-toggle[aria-expanded="true"]{
  background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));
  border-color:var(--color-primary-dark);
  color:#fff;
}
.menu-toggle-icon{
  position:relative;
  display:block;
  width:20px;
  height:16px;
  flex:0 0 20px;
}
.menu-toggle .bar{
  position:absolute;
  left:0;
  width:20px;
  height:2px;
  margin:0;
  border-radius:2px;
  background:currentColor;
  transform-origin:center;
  transition:top .18s,transform .18s,opacity .14s;
}
.menu-toggle .bar:nth-child(1){top:1px}
.menu-toggle .bar:nth-child(2){top:7px}
.menu-toggle .bar:nth-child(3){top:13px}
.menu-toggle[aria-expanded="true"] .bar:nth-child(1){top:7px;transform:rotate(45deg)}
.menu-toggle[aria-expanded="true"] .bar:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] .bar:nth-child(3){top:7px;transform:rotate(-45deg)}
.menu-toggle-label{
  display:block;
  font-size:.78rem;
  letter-spacing:.02em;
}

@media(max-width:991px){
  .main-navigation.is-open{
    margin:12px 0 18px;
    padding:10px 18px 16px;
    background:#fff;
    border:1px solid var(--color-line);
    border-radius:12px;
    box-shadow:0 14px 34px rgba(0,59,127,.10);
  }
  .main-navigation.is-open .menu>li>a{padding:12px 0}
}

@media(max-width:767px){
  .section-page-flex{padding-top:38px;padding-bottom:58px}
  .layout-flex .entry-content > .wp-block-columns{
    gap:1.8rem;
    margin-top:1.5rem;
    margin-bottom:3rem;
  }
  .header-contact{display:none}
}

@media(max-width:520px){
  .menu-toggle{width:46px;padding:0;justify-content:center}
  .menu-toggle-label{display:none}
}


/* =========================================================
   18. Sticky-Kontaktleiste, robuste Detailseiten & Upload (v1.2.0)
   ========================================================= */

/* Optional sticky: nur die schmale Kontaktleiste bleibt oben sichtbar;
   der restliche Header scrollt normal aus dem Bild. */
.header-top-bar.is-sticky{
  position:sticky;
  top:0;
  z-index:120;
  box-shadow:0 5px 16px rgba(0,59,127,.14),inset 0 -1px 0 rgba(255,255,255,.14);
}
.admin-bar .header-top-bar.is-sticky{top:32px}
@media(max-width:782px){.admin-bar .header-top-bar.is-sticky{top:46px}}

/* Kontakt und Projekt-Einzelansicht verwenden ein eigenes Grid ohne
   negative Row-Margins. Das beseitigt horizontales Überlaufen und gibt
   beiden Spalten einen verlässlichen min-width:0-Kontext. */
.contact-page-grid,
.project-detail-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:clamp(2.5rem,5vw,4.75rem);
  min-width:0;
}
@media(min-width:992px){
  .contact-page-grid{grid-template-columns:minmax(0,4fr) minmax(0,7fr)}
  .project-detail-grid{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}
}
.contact-page-grid>*,
.project-detail-grid>*,
.contact-page-grid .d-flex>div,
.form-card,
.entry-content{
  min-width:0;
  max-width:100%;
}
.break-word,
.break-word a,
.contact-page-grid a,
.project-detail-grid a{
  overflow-wrap:anywhere;
  word-break:normal;
}

/* Native Datei-Auswahl bleibt innerhalb der Formularbreite. */
.shw-contact-form input[type="file"]{
  max-width:100%;
  min-width:0;
  padding:10px;
  background:#fff;
}
.shw-contact-form input[type="file"]::file-selector-button{
  border:1px solid #9dcfe9;
  border-radius:6px;
  background:#eef9ff;
  color:var(--color-ink);
  padding:8px 12px;
  margin-right:10px;
  font-weight:650;
  cursor:pointer;
}
.shw-upload-hint{font-size:.78rem;margin-top:-.55rem;margin-bottom:1rem;color:var(--color-muted)}

/* Projektmedien: ein Bild ohne Bedienelemente, mehrere Bilder als Slider. */
.project-media{margin-bottom:2rem;min-width:0}
.project-media-single,
.project-slider-fallback{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:18px;
  border:1px solid #a7d9f3;
  background:linear-gradient(145deg,#edfaff,#cceeff);
  box-shadow:0 22px 55px rgba(0,59,127,.14);
}
.project-media-single img,
.project-slider-fallback img{
  width:100%;height:100%;object-fit:cover;
}
.project-media .shw-slider{border-radius:18px;border:1px solid #a7d9f3;box-shadow:0 22px 55px rgba(0,59,127,.14)}
.project-media .shw-slider .shw-slide{aspect-ratio:4/3}
.project-media .shw-slider .shw-nav{border:1px solid rgba(255,255,255,.75);box-shadow:0 4px 12px rgba(0,0,0,.18)}

@media(max-width:520px){
  .header-top-bar.is-sticky .top-contact{row-gap:.35rem}
  .project-media .shw-slider .shw-nav{width:38px;height:38px}
}

/* =========================================================
   19. Routen-Dialog & Seitenkomponenten (v1.3.0)
   ========================================================= */

/* Klickbare Betriebsadresse – visuell weiterhin wie normaler Text. */
.shw-address-link{
  display:inline-flex;align-items:center;gap:8px;max-width:100%;
  color:inherit;text-decoration:none;font:inherit;font-weight:inherit;
  border-radius:5px;
}
.shw-address-link:hover{color:var(--color-primary-dark);text-decoration:underline;text-underline-offset:3px}
.shw-address-link-icon{width:24px;height:24px;object-fit:contain;flex:0 0 auto}
.header-address-route{font-weight:700}
.service-strip-address{justify-content:center}
.footer-address-route{font-weight:600}
.contact-address-route{font-weight:650;color:var(--color-primary-dark)}

/* Native <dialog>-Komponente im Kahsay-Design. Google Maps selbst wird
   erst nach dem ausdrücklichen Klick auf den Routen-Button geöffnet. */
.shw-route-dialog{
  width:min(92vw,590px);max-width:590px;max-height:min(88vh,760px);
  margin:auto;padding:0;border:0;border-radius:18px;background:#fff;color:var(--color-ink);
  box-shadow:0 30px 90px rgba(0,40,82,.30);overflow:auto;
}
.shw-route-dialog::backdrop{background:rgba(0,35,72,.58);backdrop-filter:blur(3px)}
.shw-route-dialog__panel{position:relative;padding:clamp(28px,5vw,46px)}
.shw-route-dialog__close{
  position:absolute;right:18px;top:16px;width:42px;height:42px;border-radius:50%;
  display:grid;place-items:center;background:#eef9ff;border:1px solid #c5e5f6;
  color:var(--color-ink);font-size:1.75rem;line-height:1;transition:.18s;
}
.shw-route-dialog__close:hover{background:#dff4ff;border-color:#8fd0ef;transform:rotate(4deg)}
.shw-route-dialog__icon{width:64px;height:64px;margin-bottom:16px}
.shw-route-dialog__location-icon{width:64px;height:64px;object-fit:contain}
.shw-route-dialog .eyebrow{margin-bottom:10px}
.shw-route-dialog h2{font-size:clamp(1.65rem,4vw,2.25rem);margin-bottom:.7rem;padding-right:36px}
.shw-route-dialog__destination{font-size:1rem;margin-bottom:1.7rem;color:#335d80}
.shw-route-form{display:grid;grid-template-columns:1fr;gap:9px}
.shw-route-form label{font-size:.82rem;font-weight:750;color:var(--color-ink);margin-top:4px}
.shw-route-form input,.shw-route-form select{
  width:100%;min-width:0;border:1px solid #a8d5ec;border-radius:8px;background:#fff;
  padding:12px 13px;min-height:46px;box-shadow:inset 0 1px 2px rgba(0,59,127,.03);
}
.shw-route-form input:focus,.shw-route-form select:focus{border-color:var(--color-primary);outline:3px solid rgba(7,155,234,.14);outline-offset:0}
.shw-route-submit{margin-top:10px;width:100%}
.shw-route-dialog__privacy{font-size:.75rem;line-height:1.55;margin:14px 0 0;color:#66839a}

/* Dynamischer Adressblock für beliebige Gutenberg-Seiten. */
.shw-address-block{display:flex;width:100%;margin:1rem 0}
.shw-address-block--left{justify-content:flex-start}
.shw-address-block--center{justify-content:center}
.shw-address-block--right{justify-content:flex-end}
.shw-address-block__link{padding:11px 15px;border:1px solid #b9dff2;border-radius:10px;background:#f4fbff;font-weight:700;box-shadow:0 6px 18px rgba(0,59,127,.05)}
.shw-address-block__link:hover{text-decoration:none;background:#e9f7ff}
.shw-address-block__link .shw-address-link-icon{width:40px;height:40px}

/* ---------------- Cards ---------------- */
.shw-component-card{
  height:100%;overflow:hidden;border:1px solid #c6e4f4;border-radius:14px;background:#fff;
  box-shadow:0 10px 28px rgba(0,59,127,.06);transition:transform .18s,box-shadow .18s,border-color .18s;
}
.shw-component-card:hover{transform:translateY(-2px);border-color:#8ecdee;box-shadow:0 18px 38px rgba(0,59,127,.11)}
.shw-component-card--light{background:linear-gradient(145deg,#f8fdff,#eef9ff)}
.shw-component-card--ink{background:linear-gradient(145deg,#00478d,#00336c);border-color:#00336c;color:#fff}
.shw-component-card__media{aspect-ratio:16/9;overflow:hidden;background:#eaf6fc}
.shw-component-card__media img{width:100%;height:100%;object-fit:cover}
.shw-component-card__body{padding:25px;display:flex;flex-direction:column;align-items:flex-start;min-height:100%}
.shw-component-card__icon{width:54px;height:54px;margin-bottom:14px}
.shw-component-card__icon-image{width:54px;height:54px;object-fit:contain}
.shw-component-card .eyebrow{margin-bottom:8px;font-size:.66rem}
.shw-component-card h3{font-size:1.3rem;margin-bottom:.75rem}
.shw-component-card__text{width:100%}
.shw-component-card__text p{font-size:.9rem}
.shw-component-card__button{margin-top:auto}
.shw-component-card--ink h3,.shw-component-card--ink .eyebrow{color:#fff}
.shw-component-card--ink p{color:#d8eaf6}
.shw-component-card--ink .btn{background:#fff;border-color:#fff;color:var(--color-ink);box-shadow:none}
.shw-component-card--ink .btn:hover{background:#e9f7ff;color:var(--color-ink)}

/* ---------------- Date Picker ---------------- */
.shw-date-picker{
  border:1px solid #c4e4f5;border-radius:14px;background:linear-gradient(145deg,#f9fdff,#eff9ff);
  padding:22px 24px;margin:1.5rem 0;box-shadow:0 10px 28px rgba(0,59,127,.05);
}
.shw-date-picker>label{display:block;font-weight:750;margin-bottom:8px;color:var(--color-ink)}
.shw-date-picker__row{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap}
.shw-date-picker input[type="date"]{
  flex:1 1 230px;min-width:0;min-height:48px;padding:10px 13px;border:1px solid #9ccfea;
  border-radius:8px;background:#fff;color:var(--color-ink);
}
.shw-date-picker__button{flex:0 0 auto}
.shw-component-help{font-size:.78rem;margin:.65rem 0 0;color:#66839a}

/* ---------------- Smart Table ---------------- */
.shw-smart-table{max-width:100%;min-width:0;margin:1.75rem 0}
.shw-smart-table__toolbar{
  display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;padding:16px;
  border:1px solid #c6e4f4;border-bottom:0;border-radius:12px 12px 0 0;background:#f4fbff;
}
.shw-smart-table__toolbar label{display:grid;gap:5px;min-width:min(100%,210px);font-size:.75rem;font-weight:750;color:var(--color-ink)}
.shw-smart-table__search{flex:1 1 260px}
.shw-smart-table__toolbar input,.shw-smart-table__toolbar select{
  min-width:0;width:100%;min-height:43px;padding:9px 11px;border:1px solid #a8d5ec;border-radius:7px;background:#fff;
}
.shw-smart-table__scroller{width:100%;max-width:100%;overflow-x:auto;border:1px solid #c6e4f4;border-radius:0 0 12px 12px;background:#fff}
.shw-smart-table__toolbar + .shw-smart-table__scroller{border-radius:0 0 12px 12px}
.shw-smart-table table{width:100%;min-width:620px;margin:0;border-collapse:collapse}
.shw-smart-table caption{text-align:left;padding:14px 16px;font-weight:750;color:var(--color-ink);background:#fff}
.shw-smart-table th,.shw-smart-table td{padding:13px 15px;border:0;border-bottom:1px solid #d7ebf6;vertical-align:top}
.shw-smart-table th{background:#eef9ff;color:var(--color-ink);font-size:.78rem;text-transform:uppercase;letter-spacing:.035em}
.shw-smart-table tbody tr:last-child td{border-bottom:0}
.shw-smart-table tbody tr:hover td{background:#f9fdff}
.shw-smart-table th button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-weight:800;color:inherit}
.shw-sort-marker{color:var(--color-primary-dark);font-size:1rem}
.shw-smart-table__count{font-size:.75rem;color:#66839a;margin:.55rem 0 0;text-align:right}

/* ---------------- Stepper ---------------- */
.shw-stepper{margin:2rem 0;min-width:0}
.shw-stepper>h2{margin-bottom:1.5rem}
.shw-stepper__nav{list-style:none;padding:0;margin:0 0 1.35rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:0;border:1px solid #c6e4f4;border-radius:14px;overflow:hidden;background:#fff}
.shw-stepper__nav li{position:relative;margin:0;min-width:0}
.shw-stepper__nav li:not(:last-child){border-right:1px solid #d6ebf6}
.shw-stepper__nav button{width:100%;min-height:96px;padding:16px 14px;text-align:left;background:#fff;color:var(--color-ink);transition:.18s}
.shw-stepper__nav button:hover{background:#f2faff}
.shw-stepper__nav li.is-active button{background:linear-gradient(145deg,#eaf8ff,#dff4ff);box-shadow:inset 0 -4px 0 var(--color-primary)}
.shw-stepper__number{display:block;color:var(--color-primary-dark);font-weight:800;font-size:.78rem;letter-spacing:.08em;margin-bottom:6px}
.shw-stepper__title{display:block;font-weight:750;line-height:1.25}
.shw-stepper__panels{border:1px solid #c6e4f4;border-radius:14px;background:#f8fdff;padding:22px 24px}
.shw-stepper__panel{padding:5px 0}
.shw-stepper__panel h3{font-size:1.18rem;margin-bottom:.55rem}
.shw-stepper__panel h3 span{color:var(--color-primary-dark);margin-right:5px}
.shw-stepper__panel p:last-child{margin-bottom:0}
.shw-stepper.is-enhanced .shw-stepper__panel:not(.is-active){display:none}

@media(max-width:760px){
  .shw-route-dialog{width:calc(100vw - 24px);max-height:calc(100vh - 24px);border-radius:14px}
  .shw-route-dialog__panel{padding:28px 22px}
  .shw-stepper__nav{grid-template-columns:1fr;border-radius:12px}
  .shw-stepper__nav li:not(:last-child){border-right:0;border-bottom:1px solid #d6ebf6}
  .shw-stepper__nav button{min-height:68px;display:grid;grid-template-columns:42px 1fr;align-items:center;gap:6px}
  .shw-stepper__number{margin:0}
  .shw-date-picker__row{display:grid;grid-template-columns:1fr}
  .shw-date-picker__button{width:100%}
}
.shw-stepper__static-step{width:100%;min-height:96px;padding:16px 14px;text-align:left;background:#fff;color:var(--color-ink)}
@media(max-width:760px){.shw-stepper__static-step{min-height:68px;display:grid;grid-template-columns:42px 1fr;align-items:center;gap:6px}.shw-stepper__static-step .shw-stepper__number{margin:0}}

/* =========================================================
   16. Kahsay Komponenten 1.4.0
   ========================================================= */

/* Layout: Section */
.shw-section{position:relative;width:100%;margin:0;min-width:0}
.shw-section__inner{width:min(100% - 32px,var(--container-max));margin-inline:auto;min-width:0}
.shw-section--width-normal .shw-section__inner{max-width:840px}
.shw-section--width-wide .shw-section__inner{max-width:var(--container-max)}
.shw-section--width-full .shw-section__inner{width:100%;max-width:none;padding-inline:clamp(16px,4vw,48px)}
.shw-section--default{background:#fff}.shw-section--light{background:linear-gradient(145deg,#f8fdff,#eef9ff)}.shw-section--ink{background:linear-gradient(145deg,#00478d,#00336c);color:#fff}
.shw-section--ink h1,.shw-section--ink h2,.shw-section--ink h3,.shw-section--ink h4,.shw-section--ink p,.shw-section--ink li{color:#fff}
.shw-section--pt-none{padding-top:0}.shw-section--pt-small{padding-top:clamp(22px,4vw,38px)}.shw-section--pt-normal{padding-top:clamp(42px,6vw,72px)}.shw-section--pt-large{padding-top:clamp(66px,8vw,104px)}
.shw-section--pb-none{padding-bottom:0}.shw-section--pb-small{padding-bottom:clamp(22px,4vw,38px)}.shw-section--pb-normal{padding-bottom:clamp(42px,6vw,72px)}.shw-section--pb-large{padding-bottom:clamp(66px,8vw,104px)}
.shw-section__title{margin:0 0 clamp(22px,4vw,38px)}.shw-align-center{text-align:center}.shw-align-right{text-align:right}

/* Layout: Grid */
.shw-component-grid{--shw-grid-columns:3;--shw-grid-min:240px;display:grid;grid-template-columns:repeat(var(--shw-grid-columns),minmax(0,1fr));gap:var(--gap);align-items:start;min-width:0}
.shw-component-grid--gap-small{gap:.85rem}.shw-component-grid--gap-large{gap:clamp(1.6rem,3vw,2.5rem)}
.shw-component-grid--equal>*{height:100%}
@media(max-width:980px){.shw-component-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--shw-grid-min)),1fr))}}

/* Card 2.0 */
.shw-component-card{position:relative;isolation:isolate;min-width:0;overflow:hidden}
.shw-component-card--compact .shw-component-card__body{padding:18px}.shw-component-card--large .shw-component-card__body{padding:32px}
.shw-component-card--center .shw-component-card__body{align-items:center;text-align:center}.shw-component-card--center .shw-component-card__icon{margin-inline:auto}
.shw-component-card--right .shw-component-card__body{align-items:flex-end;text-align:right}.shw-component-card--right .shw-component-card__icon{margin-left:auto}.shw-component-card--right .shw-component-card__text{text-align:right}
.shw-component-card--image-background .shw-component-card__media{position:absolute;inset:0;z-index:0;aspect-ratio:auto}.shw-component-card--image-background .shw-component-card__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,44,89,.48),rgba(0,32,70,.9));z-index:1}.shw-component-card--image-background .shw-component-card__media img{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover}.shw-component-card--image-background .shw-component-card__body{position:relative;z-index:2;min-height:310px;justify-content:flex-end;color:#fff}.shw-component-card--image-background h3,.shw-component-card--image-background p,.shw-component-card--image-background .eyebrow{color:#fff}
.shw-card-cover-link{position:absolute;inset:0;z-index:10;cursor:pointer}.shw-component-card__body>*{position:relative;z-index:4}.shw-card-cover-link:focus-visible{outline:3px solid var(--color-primary);outline-offset:-4px;border-radius:var(--radius)}
.shw-component-card__button{position:relative;z-index:4}

/* Icon 2.0 */
.wp-block-sanitaer-handwerk-visitenkarten-icon{display:flex;min-width:0;margin-block:.5rem 1rem}.shw-icon-align-left{justify-content:flex-start}.shw-icon-align-center{justify-content:center}.shw-icon-align-right{justify-content:flex-end}
.shw-page-icon-link{display:inline-flex;align-items:center;gap:10px;text-decoration:none;border-radius:999px}.shw-page-icon-label{font-weight:750;color:var(--color-ink)}
.shw-icon-background-light{padding:10px 14px;background:var(--color-light);border-radius:999px}
.shw-icon-background-blue{padding:10px 14px;background:var(--color-primary);border-radius:999px}
.shw-icon-background-ink{padding:10px 14px;background:var(--color-ink);border-radius:999px}
.shw-icon-background-blue .shw-page-icon-label,.shw-icon-background-ink .shw-page-icon-label{color:#fff}

/* Date Picker 2.0 */
.shw-date-picker__time{display:grid;gap:5px;font-size:.76rem;font-weight:750;color:var(--color-ink)}
.shw-date-picker__time input{min-width:130px}
.shw-component-error{min-height:1.2em;margin:.45rem 0 0;color:#a51d12;font-size:.78rem;font-weight:650}

/* Smart Table 2.0 */
.shw-smart-table--compact th,.shw-smart-table--compact td{padding:9px 11px}.shw-smart-table--spacious th,.shw-smart-table--spacious td{padding:17px 18px}
.shw-smart-table--striped tbody tr:nth-child(even) td{background:#f7fcff}
.shw-table-title-cell{font-weight:750;color:var(--color-ink)}
.shw-smart-table__footer{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:.65rem}.shw-smart-table__count{margin:0;text-align:left}
.shw-smart-table__pagination{display:flex;gap:6px;flex-wrap:wrap}.shw-smart-table__pagination button{min-width:36px;height:36px;border:1px solid var(--color-line);background:#fff;color:var(--color-ink);border-radius:8px;font:inherit;font-weight:700}.shw-smart-table__pagination button:hover:not(:disabled),.shw-smart-table__pagination button[aria-current="page"]{background:var(--color-ink);color:#fff;border-color:var(--color-ink)}.shw-smart-table__pagination button:disabled{opacity:.35;cursor:not-allowed}
@media(max-width:700px){
  .shw-smart-table--mobile-cards .shw-smart-table__scroller{overflow:visible;border:0;background:transparent}.shw-smart-table--mobile-cards table{min-width:0;display:block}.shw-smart-table--mobile-cards thead{display:none}.shw-smart-table--mobile-cards tbody{display:grid;gap:12px}.shw-smart-table--mobile-cards tr{display:block;border:1px solid var(--color-line);border-radius:12px;background:#fff;padding:7px 14px;box-shadow:0 8px 22px rgba(0,59,127,.06)}.shw-smart-table--mobile-cards td{display:grid;grid-template-columns:minmax(105px,38%) 1fr;gap:12px;border:0;border-bottom:1px solid #e3f1f8;padding:10px 0;background:transparent!important}.shw-smart-table--mobile-cards td:last-child{border-bottom:0}.shw-smart-table--mobile-cards td::before{content:attr(data-label);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em;color:#66839a}.shw-smart-table--mobile-cards .shw-table-title-cell{font-size:1.08rem}
}

/* Stepper 2.0 */
.shw-stepper__icon{display:block;width:38px;height:38px;margin-bottom:5px}.shw-stepper__icon-img{width:38px;height:38px;object-fit:contain}
.shw-stepper__nav li.is-complete::after{content:"✓";position:absolute;top:8px;right:10px;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#e3f2e9;color:#235c3a;font-size:.75rem;font-weight:900}
.shw-stepper--vertical .shw-stepper__nav{grid-template-columns:1fr}.shw-stepper--vertical .shw-stepper__nav li:not(:last-child){border-right:0;border-bottom:1px solid #d6ebf6}.shw-stepper--vertical .shw-stepper__nav button,.shw-stepper--vertical .shw-stepper__static-step{min-height:68px;display:grid;grid-template-columns:48px 1fr;align-items:center;gap:9px}.shw-stepper--vertical .shw-stepper__icon,.shw-stepper--vertical .shw-stepper__number{margin:0}

/* Address Card */
.shw-address-block--card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border:1px solid var(--color-line);border-radius:14px;background:linear-gradient(145deg,#fff,#f3fbff);box-shadow:0 10px 28px rgba(0,59,127,.07)}.shw-address-block__button{flex:0 0 auto}
.shw-address-block--center{justify-content:center;text-align:center}.shw-address-block--right{justify-content:flex-end;text-align:right}

/* Documents */
.shw-document{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:16px;align-items:center;border:1px solid var(--color-line);border-radius:14px;padding:18px 20px;background:#fff;min-width:0;margin:1rem 0}.shw-document--light{background:linear-gradient(145deg,#f8fdff,#eef9ff)}.shw-document--ink{background:linear-gradient(145deg,#00478d,#00336c);color:#fff;border-color:#00336c}.shw-document--ink h3,.shw-document--ink p,.shw-document--ink .eyebrow{color:#fff}.shw-document__icon{width:52px;height:52px;border-radius:12px;display:grid;place-items:center;background:#e8f6ff;color:var(--color-ink)}.shw-document__icon .dashicons{font-size:30px;width:30px;height:30px}.shw-document-svg{display:block;width:30px;height:30px}.shw-document__body{min-width:0}.shw-document__body h3{margin:.1rem 0 .35rem;font-size:1.1rem}.shw-document__body p{margin:.2rem 0}.shw-document__meta{font-size:.75rem;color:#68839a}.shw-document--ink .shw-document__meta{color:#d8eaf6}.shw-document__button{white-space:nowrap}
.shw-document-library{margin:2rem 0;min-width:0}.shw-document-library>h2{margin-bottom:1.2rem}.shw-document-library__toolbar{display:flex;gap:12px;flex-wrap:wrap;padding:14px;border:1px solid var(--color-line);border-bottom:0;border-radius:12px 12px 0 0;background:#eef9ff}.shw-document-library__toolbar label{display:grid;gap:5px;flex:1 1 220px;font-size:.75rem;font-weight:750}.shw-document-library__toolbar input,.shw-document-library__toolbar select{width:100%;border:1px solid #9bcfe9;border-radius:8px;background:#fff;padding:10px 12px;color:var(--color-ink)}.shw-document-library__items{display:grid;gap:10px}.shw-document-library__item{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:14px;align-items:center;padding:17px;border:1px solid var(--color-line);border-top:0;background:#fff;min-width:0}.shw-document-library__item:first-child{border-top:1px solid var(--color-line)}.shw-document-library__item:last-child{border-radius:0 0 12px 12px}.shw-document-library__item h3{font-size:1rem;margin:.1rem 0}.shw-document-library__item p{margin:.2rem 0}.shw-document-library--cards .shw-document-library__items{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.shw-document-library--cards .shw-document-library__item{grid-template-columns:52px 1fr;border:1px solid var(--color-line)!important;border-radius:12px!important}.shw-document-library--cards .shw-document-library__item .btn{grid-column:1/-1;width:100%}.shw-document-library__empty{padding:18px;border:1px solid var(--color-line);border-radius:0 0 12px 12px;background:#fff;color:#66839a}

/* FAQ */
.shw-faq{margin:2rem 0}.shw-faq>h2{margin-bottom:1.2rem}.shw-faq__items{border:1px solid var(--color-line);border-radius:14px;overflow:hidden;background:#fff}.shw-faq details{border-bottom:1px solid var(--color-line)}.shw-faq details:last-child{border-bottom:0}.shw-faq summary{position:relative;cursor:pointer;padding:18px 52px 18px 20px;font-weight:750;color:var(--color-ink);list-style:none}.shw-faq summary::-webkit-details-marker{display:none}.shw-faq summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:1.55rem;font-weight:400;color:var(--color-primary-dark)}.shw-faq details[open] summary{background:#eef9ff}.shw-faq details[open] summary::after{content:"–"}.shw-faq__answer{padding:0 20px 18px}.shw-faq__answer p:last-child{margin-bottom:0}

/* Before / After */
.shw-before-after{--shw-ba-position:50%;position:relative;overflow:hidden;border:1px solid var(--color-line);border-radius:16px;background:#eaf6fc;box-shadow:0 18px 42px rgba(0,59,127,.1);isolation:isolate}.shw-before-after--4-3{aspect-ratio:4/3}.shw-before-after--16-9{aspect-ratio:16/9}.shw-before-after__base,.shw-before-after__after{position:absolute;inset:0}.shw-before-after img{width:100%;height:100%;object-fit:cover}.shw-before-after__after{clip-path:inset(0 0 0 var(--shw-ba-position))}.shw-before-after__after img{width:100%;height:100%;object-fit:cover}.shw-before-after__label{position:absolute;top:14px;padding:6px 10px;border-radius:999px;background:rgba(0,44,89,.78);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.04em}.shw-before-after__label--before{left:14px;right:auto}.shw-before-after__label--after{right:14px;left:auto}.shw-before-after__handle{position:absolute;top:50%;left:var(--shw-ba-position);width:44px;height:44px;transform:translate(-50%,-50%);border-radius:50%;background:#fff;box-shadow:0 3px 12px rgba(0,0,0,.22);pointer-events:none}.shw-before-after__handle::before{content:"↔";position:absolute;inset:0;display:grid;place-items:center;color:var(--color-ink);font-weight:900}.shw-before-after__range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0}

/* Universal media */
.shw-media-component{margin:1.5rem 0;min-width:0}.shw-media-component__single,.shw-gallery-fallback{overflow:hidden;border-radius:16px;border:1px solid var(--color-line)}.shw-media-component--4-3 .shw-media-component__single{aspect-ratio:4/3}.shw-media-component--16-9 .shw-media-component__single{aspect-ratio:16/9}.shw-media-component__single img{width:100%;height:100%;object-fit:cover}.shw-gallery-fallback{display:grid;gap:10px;padding:10px;background:#fff}.shw-gallery-fallback--cols-2{grid-template-columns:repeat(2,1fr)}.shw-gallery-fallback--cols-3{grid-template-columns:repeat(3,1fr)}.shw-gallery-fallback--cols-4{grid-template-columns:repeat(4,1fr)}.shw-gallery-fallback img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:9px}.shw-media-component figcaption{text-align:center;color:#66839a;font-size:.8rem;margin-top:.6rem}

/* CTA */
.shw-cta{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px;padding:clamp(24px,4vw,38px);border:1px solid var(--color-line);border-radius:18px;margin:2rem 0;min-width:0}.shw-cta--light{background:linear-gradient(145deg,#f8fdff,#e9f7ff)}.shw-cta--default{background:#fff}.shw-cta--ink{background:linear-gradient(145deg,#00478d,#00336c);color:#fff;border-color:#00336c}.shw-cta--ink h2,.shw-cta--ink p,.shw-cta--ink .eyebrow{color:#fff}.shw-cta__icon{width:64px}.shw-cta__content h2{margin:.15rem 0 .5rem}.shw-cta__content p{margin:.3rem 0 1rem}.shw-cta__actions{display:flex;gap:10px;flex-wrap:wrap}.shw-cta--center{grid-template-columns:1fr;text-align:center}.shw-cta--center .shw-cta__icon{margin-inline:auto}.shw-cta--center .shw-cta__actions{justify-content:center}

/* Feature Grid */
.shw-feature-grid{--shw-feature-cols:3;margin:2rem 0}.shw-feature-grid--light{padding:clamp(22px,4vw,34px);background:#f1faff;border-radius:16px}.shw-feature-grid__items{display:grid;grid-template-columns:repeat(var(--shw-feature-cols),minmax(0,1fr));gap:16px}.shw-feature-grid__items article{padding:20px;border:1px solid var(--color-line);border-radius:13px;background:#fff}.shw-feature-grid__icon{width:48px;height:48px;object-fit:contain;margin-bottom:12px}.shw-feature-grid h3{font-size:1.05rem;margin:.15rem 0 .5rem}.shw-feature-grid p{font-size:.88rem;margin-bottom:.5rem}

/* Person */
.shw-person{display:grid;grid-template-columns:minmax(220px,34%) minmax(0,1fr);gap:clamp(24px,5vw,54px);align-items:center;margin:2rem 0;padding:clamp(22px,4vw,34px);border:1px solid var(--color-line);border-radius:18px;background:#fff;min-width:0}.shw-person--image-right .shw-person__media{order:2}.shw-person__media{border-radius:15px;overflow:hidden;aspect-ratio:4/5;background:#eef9ff}.shw-person__media img{width:100%;height:100%;object-fit:cover}.shw-person__body h2{margin:.2rem 0 .7rem}.shw-person__contact{display:flex;gap:10px 18px;flex-wrap:wrap;margin-top:1rem}.shw-person__contact a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:700}.shw-person__contact img{width:30px;height:30px}

/* Testimonial */
.shw-testimonial{margin:2rem 0;padding:clamp(24px,4vw,38px);border:1px solid var(--color-line);border-radius:18px;background:#fff}.shw-testimonial--light{background:linear-gradient(145deg,#f8fdff,#eef9ff)}.shw-testimonial blockquote{margin:0;font-size:clamp(1.15rem,2.3vw,1.5rem);font-weight:650;line-height:1.55;color:var(--color-ink)}.shw-testimonial__rating{margin-top:1rem;color:#e89900;letter-spacing:.08em;font-size:1.1rem}.shw-testimonial figcaption{display:flex;gap:8px;flex-wrap:wrap;margin-top:1rem;color:#66839a}.shw-testimonial figcaption strong{color:var(--color-ink)}

/* Notice */
.shw-notice{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;padding:18px 20px;border-radius:13px;border:1px solid var(--color-line);margin:1.3rem 0}.shw-notice__icon{width:44px}.shw-notice__icon img{width:42px;height:42px;object-fit:contain}.shw-notice h3{font-size:1rem;margin:.05rem 0 .35rem}.shw-notice p:last-child{margin-bottom:0}.shw-notice--info{background:#eef9ff}.shw-notice--success{background:#e8f5ed;border-color:#abd0ba}.shw-notice--warning{background:#fff8e7;border-color:#f1cf82}.shw-notice--neutral{background:#f7f9fb;border-color:#d7e2e9}

/* Tabs */
.shw-tabs{margin:2rem 0;min-width:0}.shw-tabs__nav{display:flex;gap:5px;overflow-x:auto;border-bottom:1px solid var(--color-line);padding:0 0 0}.shw-tabs__nav button{flex:0 0 auto;padding:12px 16px;border:1px solid transparent;border-bottom:0;border-radius:10px 10px 0 0;background:transparent;color:var(--color-muted);font:inherit;font-weight:750}.shw-tabs__nav button:hover{background:#f4fbff}.shw-tabs__nav button[aria-selected="true"]{background:#eef9ff;color:var(--color-ink);border-color:var(--color-line);box-shadow:inset 0 3px 0 var(--color-primary)}.shw-tabs__panels{padding:22px;border:1px solid var(--color-line);border-top:0;border-radius:0 0 12px 12px;background:#fff}.shw-tabs__panels>div>:last-child{margin-bottom:0}

/* Opening Hours */
.shw-opening-hours{display:grid;grid-template-columns:64px minmax(0,1fr);gap:18px;padding:24px;border:1px solid var(--color-line);border-radius:16px;background:#fff;margin:2rem 0}.shw-opening-hours__icon img{width:52px;height:52px}.shw-opening-hours h2{margin:.1rem 0 1rem}.shw-opening-hours dl{margin:0}.shw-opening-hours dl>div{display:grid;grid-template-columns:minmax(110px,1fr) minmax(140px,1fr);gap:12px;padding:8px 0;border-bottom:1px solid #e1eff7}.shw-opening-hours dl>div:last-child{border-bottom:0}.shw-opening-hours dt{font-weight:750}.shw-opening-hours dd{margin:0;text-align:right;color:var(--color-muted)}

/* Stats */
.shw-stats{--shw-stats-cols:3;margin:2rem 0}.shw-stats--light{padding:clamp(22px,4vw,34px);border-radius:16px;background:#eef9ff}.shw-stats__items{display:grid;grid-template-columns:repeat(var(--shw-stats-cols),minmax(0,1fr));gap:12px}.shw-stat{display:grid;place-items:center;text-align:center;padding:20px;border:1px solid var(--color-line);border-radius:12px;background:#fff}.shw-stat__icon{width:40px;height:40px;object-fit:contain;margin-bottom:8px}.shw-stat strong{font-size:clamp(1.45rem,4vw,2.25rem);line-height:1;color:var(--color-ink)}.shw-stat span{margin-top:7px;font-size:.82rem;color:var(--color-muted)}

/* Partner */
.shw-partners{--shw-partner-cols:4;margin:2rem 0}.shw-partners__grid{display:grid;grid-template-columns:repeat(var(--shw-partner-cols),minmax(0,1fr));gap:14px}.shw-partner{display:grid;place-items:center;gap:8px;min-height:120px;padding:18px;border:1px solid var(--color-line);border-radius:12px;background:#fff;text-align:center}.shw-partner img{max-height:66px;width:auto;object-fit:contain}.shw-partner span{font-size:.75rem;color:var(--color-muted)}.shw-partners--grayscale .shw-partner img{filter:grayscale(1);opacity:.78;transition:.2s}.shw-partners--grayscale .shw-partner:hover img{filter:none;opacity:1}

/* Image + Text */
.shw-image-text{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,58px);align-items:center;margin:2rem 0;padding:clamp(18px,3vw,30px);border-radius:18px;min-width:0}.shw-image-text--light{background:#eef9ff}.shw-image-text--image-right .shw-image-text__media{order:2}.shw-image-text__media{border-radius:15px;overflow:hidden;aspect-ratio:4/3;background:#eaf6fc}.shw-image-text__media img{width:100%;height:100%;object-fit:cover}.shw-image-text__body h2{margin:.2rem 0 .8rem}.shw-image-text__body .btn{margin-top:.6rem}

/* Project CTA */
.shw-project-cta{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:20px;margin:2rem 0;padding:clamp(22px,4vw,34px);border-radius:18px;background:linear-gradient(145deg,#f3fbff,#e6f6ff);border:1px solid var(--color-line)}.shw-project-cta img{width:58px;height:58px;object-fit:contain}.shw-project-cta h2{margin:.1rem 0 .4rem}.shw-project-cta p{margin:0}

/* Service Area */
.shw-service-area{display:grid;grid-template-columns:64px minmax(0,1fr);gap:18px;margin:2rem 0;padding:24px;border:1px solid var(--color-line);border-radius:16px;background:#fff}.shw-service-area__icon img{width:52px;height:52px}.shw-service-area h2{margin:.1rem 0 .6rem}.shw-service-area ul{padding:0;margin:1rem 0 0;list-style:none}.shw-service-area--chips ul{display:flex;flex-wrap:wrap;gap:8px}.shw-service-area--chips li{padding:7px 11px;border-radius:999px;background:#eef9ff;border:1px solid #c8e7f7;font-size:.82rem;font-weight:700}.shw-service-area--list ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 18px}.shw-service-area--list li::before{content:"•";color:var(--color-primary);font-weight:900;margin-right:8px}

/* Anchor navigation */
.shw-anchor-nav{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:1.4rem 0;padding:12px 14px;border:1px solid var(--color-line);border-radius:12px;background:rgba(255,255,255,.96);z-index:40}.shw-anchor-nav--sticky{position:sticky;top:12px}.admin-bar .shw-anchor-nav--sticky{top:44px}.shw-anchor-nav strong{font-size:.8rem}.shw-anchor-nav ul{display:flex;gap:7px;flex-wrap:wrap;list-style:none;margin:0;padding:0}.shw-anchor-nav a{text-decoration:none;font-size:.8rem;font-weight:700}.shw-anchor-nav--pills a{display:block;padding:7px 10px;border-radius:999px;background:#eef9ff}.shw-anchor-nav--pills a:hover{background:var(--color-ink);color:#fff}.shw-anchor-nav--list a{text-decoration:underline;text-underline-offset:3px}

@media(max-width:760px){
  .shw-document,.shw-document-library__item,.shw-project-cta,.shw-cta{grid-template-columns:1fr}.shw-document__icon,.shw-cta__icon{margin:0}.shw-document__button,.shw-project-cta .btn{width:100%}
  .shw-before-after{border-radius:12px}.shw-before-after__label{top:9px}.shw-before-after__label--before{right:9px}.shw-before-after__label--after{left:9px}
  .shw-feature-grid__items,.shw-stats__items,.shw-partners__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shw-person,.shw-image-text{grid-template-columns:1fr}.shw-person--image-right .shw-person__media,.shw-image-text--image-right .shw-image-text__media{order:0}.shw-person__media{max-width:420px}
  .shw-opening-hours,.shw-service-area{grid-template-columns:1fr}.shw-opening-hours__icon,.shw-service-area__icon{display:none}.shw-opening-hours dl>div{grid-template-columns:1fr}.shw-opening-hours dd{text-align:left}
  .shw-gallery-fallback--cols-4,.shw-gallery-fallback--cols-3{grid-template-columns:repeat(2,1fr)}
  .shw-anchor-nav--sticky{top:8px}.admin-bar .shw-anchor-nav--sticky{top:54px}
}
@media(max-width:480px){
  .shw-feature-grid__items,.shw-stats__items,.shw-partners__grid{grid-template-columns:1fr}.shw-gallery-fallback{grid-template-columns:1fr!important}.shw-address-block--card{align-items:flex-start;flex-direction:column}.shw-address-block__button{width:100%}
}

/* =========================================================
   18. Theme 1.5.0 – Projekt-Raster, mobile Untermenüs,
       Footer-Layout und farbige Leistungszeile
   ========================================================= */

/* Marken-Leistungszeile: pro Begriff eine eigene, konfigurierbare Farbe. */
.shw-business-line{display:inline;white-space:normal}
.shw-business-line--colored .shw-business-line-part{color:var(--shw-business-line-color,currentColor);font-weight:750}
.shw-business-line-separator{color:#7b93a8;font-weight:600}
.brand-text small .shw-business-line{font:inherit;letter-spacing:inherit;text-transform:inherit}
.site-footer .shw-business-line--colored .shw-business-line-part{font-weight:750}

/* Projektübersicht. Das Raster ersetzt das Bootstrap-Zeilen-Hilfskonstrukt,
   damit die Spaltenzahl explizit und stabil steuerbar ist. */
.project-archive-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:26px}
.project-archive-toolbar .filter-row{margin-bottom:0}
.project-archive-grid{display:grid;grid-template-columns:1fr;gap:clamp(18px,2.4vw,30px);align-items:stretch}
.project-archive-grid[data-columns="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.project-archive-grid[data-columns="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}
.project-archive-item{min-width:0}
.project-archive-item .project-card{height:100%}
.project-layout-switcher{display:flex;align-items:center;gap:7px;margin-left:auto;padding:5px;border:1px solid var(--color-line);border-radius:999px;background:#f7fcff}
.project-layout-switcher__label{padding:0 5px 0 9px;font-size:.76rem;font-weight:750;color:var(--color-muted)}
.project-layout-switcher button{width:34px;height:34px;display:grid;place-items:center;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--color-ink);font-weight:800;line-height:1}
.project-layout-switcher button:hover{background:#e7f6ff;border-color:#b9e0f4}
.project-layout-switcher button.is-selected{background:var(--color-ink);border-color:var(--color-ink);color:#fff}
@media(max-width:991px){
  .project-archive-grid[data-columns="3"]{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
  .project-archive-grid[data-columns]{grid-template-columns:1fr}
  .project-layout-switcher{display:none}
}

/* Untermenü-Schaltflächen. Desktop bleibt Hover/Focus; auf Touch-Geräten
   bekommt jeder Menüpunkt mit Kindern eine klar getrennte 44px-Taste. */
.submenu-toggle{display:none}
@media(max-width:991px){
  .main-navigation .menu-item-has-children{
    display:grid;
    grid-template-columns:minmax(0,1fr) 46px;
    align-items:center;
    column-gap:8px;
  }
  .main-navigation .menu-item-has-children>a{grid-column:1;padding-right:0!important;min-width:0}
  .main-navigation .menu-item-has-children>a::after{display:none!important}
  .main-navigation .submenu-toggle{
    grid-column:2;
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    padding:0;
    border:1px solid #b9dff2;
    border-radius:10px;
    background:#f0f9fe;
    color:var(--color-ink);
    justify-self:end;
  }
  .main-navigation .submenu-toggle:hover{background:#e1f4ff;border-color:#84c9eb}
  .main-navigation .submenu-toggle[aria-expanded="true"]{background:var(--color-ink);border-color:var(--color-ink);color:#fff}
  .submenu-toggle-icon{width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transition:transform .16s ease}
  .submenu-toggle[aria-expanded="true"] .submenu-toggle-icon{transform:rotate(225deg) translate(-1px,-1px)}
  .main-navigation .menu-item-has-children>.sub-menu{grid-column:1/-1;width:100%}
  .main-navigation .sub-menu .menu-item-has-children{grid-template-columns:minmax(0,1fr) 44px}
  .main-navigation .sub-menu .submenu-toggle{width:44px;height:44px;border-radius:9px}
  .main-navigation .sub-menu a{padding:11px 8px}
}

/* Konfigurierbares Footer-Raster. "auto" passt sich der Anzahl tatsächlich
   vorhandener Spalten an; feste Varianten erzeugen 2, 3 bzw. 4 Spalten. */
.footer-grid{display:grid;gap:clamp(28px,4vw,54px);align-items:start}
.footer-grid--auto{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.footer-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.footer-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.footer-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.footer-column{min-width:0}
.footer-menu{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.footer-menu ul{list-style:none;padding:.35rem 0 0 1rem;margin:0;display:grid;gap:6px}
.footer-menu a{font-size:.88rem;font-weight:600;color:var(--color-muted)}
.footer-menu a:hover{color:var(--color-primary-dark)}
@media(max-width:991px){
  .footer-grid--3,.footer-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:640px){
  .footer-grid,.footer-grid--2,.footer-grid--3,.footer-grid--4{grid-template-columns:1fr}
}

/* =========================================================
   1.6.0 – Video Hero, Social Polaroids, Projekt-Konfigurator
   ========================================================= */

/* Video Hero */
.shw-video-hero{position:relative;min-height:var(--shw-video-hero-height,620px);display:flex;align-items:center;overflow:hidden;border-radius:clamp(18px,2.4vw,30px);isolation:isolate;background:#003b7f;color:#fff;margin-block:clamp(1.25rem,3vw,2.6rem)}
.shw-video-hero__media{position:absolute;inset:0;z-index:-2;background-image:var(--shw-video-poster,none);background-size:cover;background-position:var(--shw-video-focus-x,50%) var(--shw-video-focus-y,50%)}
.shw-video-hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--shw-video-focus-x,50%) var(--shw-video-focus-y,50%)}
.shw-video-hero__overlay{position:absolute;inset:0;background:var(--shw-video-overlay,#003b7f);opacity:var(--shw-video-overlay-opacity,.56)}
.shw-video-hero__content{width:min(760px,100%);padding:clamp(2rem,6vw,5rem);position:relative;z-index:2}
.shw-video-hero--center{justify-content:center;text-align:center}.shw-video-hero--center .shw-video-hero__content{margin-inline:auto}.shw-video-hero--right{justify-content:flex-end;text-align:right}.shw-video-hero--right .shw-video-hero__content{margin-left:auto}
.shw-video-hero .eyebrow,.shw-video-hero h1,.shw-video-hero p{color:#fff}.shw-video-hero h1{font-size:clamp(2rem,5vw,4.2rem);max-width:14ch;line-height:1.02;margin:.35rem 0 1rem}.shw-video-hero--center h1{margin-inline:auto}.shw-video-hero--right h1{margin-left:auto}
.shw-video-hero__text{font-size:clamp(1rem,1.5vw,1.18rem);max-width:56ch}.shw-video-hero--center .shw-video-hero__text{margin-inline:auto}.shw-video-hero--right .shw-video-hero__text{margin-left:auto}
.shw-video-hero__actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.4rem}.shw-video-hero--center .shw-video-hero__actions{justify-content:center}.shw-video-hero--right .shw-video-hero__actions{justify-content:flex-end}
.shw-video-hero .btn-outline{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.82)}.shw-video-hero .btn-outline:hover{background:#fff;color:var(--color-ink)}
@media(max-width:700px){.shw-video-hero{min-height:min(76vh,620px);border-radius:18px}.shw-video-hero__content{padding:2rem 1.25rem}.shw-video-hero:not(.shw-video-hero--mobile-video) .shw-video-hero__video{display:none}.shw-video-hero__actions{align-items:stretch}.shw-video-hero__actions .btn{flex:1 1 100%;text-align:center}}
@media(prefers-reduced-motion:reduce){.shw-video-hero__video{display:none!important}}

/* Social Feed / Polaroids */
.shw-social-feed{margin-block:clamp(1.5rem,4vw,3.5rem);min-width:0}.shw-social-feed>h2{margin-bottom:.45rem}.shw-social-feed__intro{max-width:68ch}.shw-social-feed__items{display:grid;grid-template-columns:repeat(var(--shw-social-cols,3),minmax(0,1fr));gap:clamp(1rem,2vw,1.6rem);align-items:start;min-width:0;margin-top:1.5rem}
.shw-social-card{position:relative;min-width:0;background:#fff;border:1px solid #d7e8f1;border-radius:18px;overflow:hidden;box-shadow:0 14px 34px rgba(0,59,127,.11);transition:transform .22s ease,box-shadow .22s ease}.shw-social-card:hover{transform:translateY(-3px);box-shadow:0 20px 44px rgba(0,59,127,.16)}
.shw-social-card--polaroid{border-radius:5px;padding:12px 12px 18px;border:0;box-shadow:0 14px 36px rgba(11,42,70,.18)}.shw-social-card--polaroid .shw-social-card__media{border-radius:2px;overflow:hidden}.shw-social-card__media{aspect-ratio:1/1;background:#eaf7fd}.shw-social-card__media img{width:100%;height:100%;object-fit:cover}.shw-social-card__body{padding:14px 4px 0}.shw-social-card:not(.shw-social-card--polaroid) .shw-social-card__body{padding:16px}.shw-social-card__platform{display:inline-flex;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--color-primary-dark);margin-right:.5rem}.shw-social-card__body strong{display:block;color:var(--color-ink);margin:.35rem 0}.shw-social-card__body p{font-size:.88rem;margin:.35rem 0;color:#385870}.shw-social-card__body time{font-size:.72rem;color:#71899b}.shw-social-card__link{position:absolute;inset:0;z-index:3}.shw-social-card__link:focus-visible{outline:3px solid var(--color-primary);outline-offset:-3px}.shw-social-card__embed{min-height:160px;overflow:hidden}.shw-social-feed__account{text-align:center;margin-top:1.4rem}
.shw-social-feed--polaroid:not(.shw-social-feed--no-tilt) .shw-social-card:nth-child(4n+1){transform:rotate(-2deg)}.shw-social-feed--polaroid:not(.shw-social-feed--no-tilt) .shw-social-card:nth-child(4n+2){transform:rotate(2deg)}.shw-social-feed--polaroid:not(.shw-social-feed--no-tilt) .shw-social-card:nth-child(4n+3){transform:rotate(-1deg)}.shw-social-feed--polaroid:not(.shw-social-feed--no-tilt) .shw-social-card:nth-child(4n+4){transform:rotate(1.7deg)}.shw-social-feed--polaroid.shw-social-feed--no-tilt .shw-social-card{transform:none}
.shw-social-feed--stack{overflow-x:clip}.shw-social-feed--stack .shw-social-feed__items{display:block;position:relative;min-height:clamp(520px,58vw,760px);max-width:980px;margin:2rem auto 0;overflow:visible}.shw-social-feed--stack .shw-social-card{position:absolute;left:50%;top:48%;width:min(360px,42vw);transform:translate(calc(-50% + var(--shw-social-x,0px)),calc(-50% + var(--shw-social-y,0px))) rotate(var(--shw-social-r,0deg)) scale(.82);z-index:var(--shw-social-z,1);cursor:pointer;transform-origin:center;transition:transform .34s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease,filter .3s ease;filter:saturate(.88) brightness(.94)}
.shw-social-feed--stack .shw-social-card.is-front{transform:translate(-50%,-50%) rotate(0) scale(1.13);filter:none;box-shadow:0 28px 70px rgba(0,45,88,.32)}.shw-social-feed--stack .shw-social-card:not(.is-front):hover{transform:translate(calc(-50% + var(--shw-social-x,0px)),calc(-50% + var(--shw-social-y,0px))) rotate(var(--shw-social-r,0deg)) scale(.9);filter:none}

.shw-social-card__embed{max-width:100%}.shw-social-card__embed iframe,.shw-social-card__embed blockquote{max-width:100%!important}
.shw-social-feed--stack.shw-social-feed--embed-source .shw-social-card:not(.is-front) .shw-social-card__embed{pointer-events:none;user-select:none}
.shw-social-feed--stack .shw-social-card:focus-visible{outline:3px solid var(--color-primary);outline-offset:5px}
@media(max-width:850px){.shw-social-feed__items{grid-template-columns:repeat(2,minmax(0,1fr))}.shw-social-feed--stack .shw-social-feed__items{min-height:610px}.shw-social-feed--stack .shw-social-card{width:min(320px,58vw)}}
@media(max-width:560px){.shw-social-feed__items{grid-template-columns:1fr}.shw-social-feed--polaroid .shw-social-card{transform:none!important}.shw-social-feed--stack .shw-social-feed__items{min-height:560px}.shw-social-feed--stack .shw-social-card{width:min(270px,74vw)}.shw-social-feed--stack .shw-social-card.is-front{transform:translate(-50%,-50%) scale(1.04)}}

/* Projekt-Konfigurator */
.shw-project-wizard{border:1px solid var(--color-line);border-radius:22px;padding:clamp(1.25rem,3vw,2rem);background:linear-gradient(145deg,#fff,#f5fbff);box-shadow:0 16px 40px rgba(0,59,127,.08);min-width:0}.shw-project-wizard__intro{max-width:65ch}.shw-project-wizard__progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;list-style:none;padding:0;margin:1.5rem 0 2rem;counter-reset:none}.shw-project-wizard__progress li{display:flex;gap:.55rem;align-items:center;color:#6b8495;font-size:.78rem;font-weight:700;min-width:0}.shw-project-wizard__progress li span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#dceff8;color:var(--color-ink)}.shw-project-wizard__progress li.is-active{color:var(--color-ink)}.shw-project-wizard__progress li.is-active span{background:var(--color-primary-dark);color:#fff}.shw-project-wizard__progress li.is-complete span{background:#3f9b2d;color:#fff}
.shw-project-wizard__panel{border:0;padding:0;margin:0}.shw-project-wizard__panel legend{font-size:clamp(1.25rem,2.3vw,1.65rem);font-weight:800;color:var(--color-ink);margin-bottom:1rem}.shw-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.8rem}.shw-choice-card{position:relative;cursor:pointer}.shw-choice-card input{position:absolute;opacity:0;pointer-events:none}.shw-choice-card span{display:flex;min-height:74px;align-items:center;justify-content:center;text-align:center;padding:1rem;border:2px solid #cbe5f3;border-radius:13px;background:#fff;color:var(--color-ink);font-weight:700;transition:border-color .2s,background .2s,transform .2s}.shw-choice-card:hover span{transform:translateY(-2px);border-color:#80c9ed}.shw-choice-card input:checked+span{background:#e8f7ff;border-color:var(--color-primary-dark);box-shadow:0 0 0 3px rgba(7,155,234,.12)}.shw-choice-card input:focus-visible+span{outline:3px solid var(--color-primary);outline-offset:2px}
.shw-project-wizard__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.shw-project-wizard label{display:flex;flex-direction:column;gap:.45rem;font-weight:650;color:var(--color-ink)}.shw-project-wizard input[type=text],.shw-project-wizard input[type=email],.shw-project-wizard input[type=tel],.shw-project-wizard textarea,.shw-project-wizard input[type=file]{width:100%}.shw-project-wizard__nav{display:flex;justify-content:space-between;gap:.8rem;margin-top:1.35rem;flex-wrap:wrap}.shw-project-wizard__panel:not(:last-child) .shw-project-wizard__nav{justify-content:flex-end}
@media(max-width:700px){.shw-project-wizard__progress{grid-template-columns:repeat(5,1fr);gap:.25rem}.shw-project-wizard__progress li{font-size:0;justify-content:center}.shw-project-wizard__progress li span{font-size:.78rem}.shw-project-wizard__fields{grid-template-columns:1fr}.shw-choice-grid{grid-template-columns:1fr 1fr}}@media(max-width:430px){.shw-choice-grid{grid-template-columns:1fr}.shw-project-wizard__nav .btn{flex:1 1 100%;text-align:center}}

/* Pakete / Preisvergleich */
.shw-pricing{margin-block:clamp(1.5rem,4vw,3rem)}.shw-pricing--light{padding:clamp(1rem,3vw,2rem);background:#eff9ff;border-radius:22px}.shw-pricing__intro{max-width:65ch}.shw-pricing__grid{display:grid;grid-template-columns:repeat(var(--shw-pricing-cols,3),minmax(0,1fr));gap:1rem;margin-top:1.4rem}.shw-price-card{position:relative;display:flex;flex-direction:column;min-width:0;padding:1.4rem;border:1px solid var(--color-line);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(0,59,127,.06)}.shw-price-card.is-highlighted{border:2px solid var(--color-primary);transform:translateY(-6px);box-shadow:0 18px 42px rgba(0,59,127,.14)}.shw-price-card__badge{align-self:flex-start;background:var(--color-primary-dark);color:#fff;border-radius:999px;padding:.3rem .65rem;font-size:.7rem;font-weight:800;letter-spacing:.04em;margin-bottom:.7rem}.shw-price-card h3{margin:.1rem 0 .4rem}.shw-price-card__price{font-size:1.35rem;font-weight:800;color:var(--color-primary-dark);margin-bottom:.8rem}.shw-price-card ul{padding-left:1.15rem;margin-bottom:1.2rem;flex:1}.shw-price-card .btn{margin-top:auto}.shw-price-card .btn-outline{background:#fff;color:var(--color-primary-dark)}
@media(max-width:900px){.shw-pricing__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.shw-pricing__grid{grid-template-columns:1fr}.shw-price-card.is-highlighted{transform:none}}

/* Zeitgesteuerter Hinweis */
.shw-timed-notice{align-items:center}.shw-timed-notice__body{flex:1}.shw-timed-notice__body .btn{margin-top:.6rem}

/* Projekt-Fakten */
.shw-project-facts{padding:clamp(1rem,2.5vw,1.6rem);border:1px solid var(--color-line);border-radius:18px;background:#fff}.shw-project-facts--light{background:#eff9ff}.shw-project-facts>h2{margin-bottom:1rem}.shw-project-facts__grid{display:grid;grid-template-columns:repeat(var(--shw-facts-cols,2),minmax(0,1fr));gap:.8rem;margin:0}.shw-project-fact{display:flex;align-items:center;gap:.8rem;padding:1rem;border-radius:12px;background:rgba(255,255,255,.85);min-width:0}.shw-project-fact__icon{flex:0 0 auto}.shw-project-fact dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:#688397;font-weight:750}.shw-project-fact dd{margin:.15rem 0 0;font-weight:800;color:var(--color-ink);overflow-wrap:anywhere}.shw-project-facts--compact .shw-project-fact{padding:.65rem}.shw-project-facts--compact .shw-project-fact__icon{display:none}
@media(max-width:650px){.shw-project-facts__grid{grid-template-columns:1fr}}

/* Progressive Fallbacks: Wird Vue deaktiviert oder blockiert, bleiben bei
   Slidern sämtliche Bilder sichtbar statt nur des ersten Motivs. */
.project-slider-fallback.shw-slider-fallback-grid{
  aspect-ratio:auto;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding:10px;
}
.project-slider-fallback.shw-slider-fallback-grid img{
  width:100%;
  height:auto;
  aspect-ratio:4/3;
  object-fit:cover;
  border-radius:10px;
}
@media(max-width:560px){.project-slider-fallback.shw-slider-fallback-grid{grid-template-columns:1fr}}
.shw-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.38);font-size:1.55rem;display:flex;align-items:center;justify-content:center}
.shw-lightbox-nav:hover,.shw-lightbox-nav:focus-visible{background:#fff;color:var(--color-primary)}
.shw-lightbox-prev{left:24px}.shw-lightbox-next{right:24px}
@media(max-width:640px){.shw-lightbox{padding:56px 14px}.shw-lightbox-prev{left:8px}.shw-lightbox-next{right:8px}.shw-lightbox-nav{width:42px;height:42px}}

/* 1.7.4: gezielte Kontrast-/Tastaturkorrekturen; Markenflächen bleiben erhalten. */
.btn:not(.btn-white):not(.btn-outline){background:#0067c1;border-color:#0067c1;color:#fff}
.btn-outline,.eyebrow,.breadcrumbs a,.card .card-link,.main-navigation .current-menu-item>a{color:#0067c1}
.entry-content p a,.form-hint a,.kht-privacy a{text-decoration:underline;text-underline-offset:.16em}
:focus-visible{outline:3px solid #003b7f!important;outline-offset:3px;box-shadow:0 0 0 6px #fff}
.shw-video-toggle{position:relative;z-index:3;margin-bottom:1rem}
[hidden]{display:none!important}
/* 1.7.5: Link und Aufklappknopf teilen sich eine Zeile. */
@media(min-width:992px){
 .main-navigation .menu-item-has-children{position:relative;display:flex;align-items:center}
 .main-navigation .menu-item-has-children>a{flex:1;min-width:0;padding-right:8px}
 .main-navigation .menu-item-has-children>a::after{display:none}
 .main-navigation .submenu-toggle{display:inline-flex;flex:0 0 32px;align-items:center;justify-content:center;width:32px;height:32px;margin-right:6px;padding:0;background:#f0f9fe;color:var(--color-ink);border:1px solid #b9dff2;border-radius:5px;cursor:pointer}
 .main-navigation .submenu-toggle:hover{background:#e1f4ff;border-color:#84c9eb}
 .main-navigation .submenu-toggle[aria-expanded="true"]{background:var(--color-ink);border-color:var(--color-ink);color:#fff}
 .submenu-toggle-icon{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-1px,-1px)}
 .submenu-toggle[aria-expanded="true"] .submenu-toggle-icon{transform:rotate(225deg) translate(-1px,-1px)}
 .main-navigation .sub-menu .submenu-toggle-icon{transform:rotate(-45deg)}
 .main-navigation .sub-menu .submenu-toggle[aria-expanded="true"] .submenu-toggle-icon{transform:rotate(135deg)}
}

dialog.shw-lightbox{margin:0;padding:0;border:0;width:100vw;height:100dvh;max-width:none;max-height:none}dialog.shw-lightbox:not([open]){display:none}dialog.shw-lightbox::backdrop{background:rgba(0,0,0,.8)}

/* 1.7.7: optionale Newsletter-Servicezeile */
.footer-newsletter-row{display:flex;justify-content:center;margin-top:-10px;padding:0 0 22px}
.footer-newsletter-row nav{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;font-size:.76rem;color:var(--color-muted)}
.footer-newsletter-row a{color:inherit;text-decoration:none}
.footer-newsletter-row a:hover,.footer-newsletter-row a:focus{text-decoration:underline}


/* 1.7.8: zentrale Anfrageziele */
.shw-request-actions{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
.header-contact .shw-request-actions{justify-content:flex-end}
.contact-banner .shw-request-actions{justify-content:flex-end}
.shw-project-cta .shw-request-actions{margin-left:auto}
@media (max-width: 991.98px){.contact-banner .shw-request-actions,.header-contact .shw-request-actions{justify-content:flex-start}}

.service-card .card-link + .card-link{margin-left:.75rem}

/* 1.7.9: mehrere automatische CTA-Ziele */
.shw-request-actions > a,.shw-cta__actions > a,.shw-video-hero__actions > a{flex:0 0 auto}
@media (max-width: 575.98px){.shw-request-actions,.shw-cta__actions{align-items:stretch}.shw-request-actions > a,.shw-cta__actions > a{text-align:center}}

/* =========================================================
   2.0.0 Kahsay Design / Page Builder
   ========================================================= */
.shw-advanced-editor-shell{border:1px solid #c7e4f5;border-radius:14px;padding:18px;background:#f8fdff;min-height:60px;box-sizing:border-box}.shw-advanced-editor-shell>strong{display:block;color:#003b7f;margin-bottom:10px}.shw-advanced-editor-shell .block-editor-inner-blocks{margin-top:10px}
.shw-builder-container{position:relative;width:100%;box-sizing:border-box;background:#fff;background-size:cover;background-position:center}.shw-builder-container--normal .shw-builder-container__inner{max-width:840px}.shw-builder-container--wide .shw-builder-container__inner{max-width:1240px}.shw-builder-container--full .shw-builder-container__inner{max-width:none;width:100%}.shw-builder-container__inner{width:min(100% - 32px,1240px);margin-inline:auto;box-sizing:border-box}.shw-builder-container--pad-none{padding-block:0}.shw-builder-container--pad-small{padding-block:clamp(22px,4vw,38px)}.shw-builder-container--pad-normal{padding-block:clamp(42px,6vw,72px)}.shw-builder-container--pad-large{padding-block:clamp(66px,8vw,104px)}.shw-builder-container--light{background:linear-gradient(145deg,#f8fdff,#eef9ff)}.shw-builder-container--ink{background:linear-gradient(145deg,#00478d,#00336c);color:#fff}.shw-builder-container--ink h1,.shw-builder-container--ink h2,.shw-builder-container--ink h3,.shw-builder-container--ink p,.shw-builder-container--ink li{color:#fff}.shw-builder-container--accent{background:linear-gradient(145deg,#0067c1,#003b7f);color:#fff}.shw-builder-container--accent h1,.shw-builder-container--accent h2,.shw-builder-container--accent h3,.shw-builder-container--accent p,.shw-builder-container--accent li{color:#fff}
.shw-builder-flex{display:flex;min-width:0;box-sizing:border-box}.shw-builder-flex--row{flex-direction:row}.shw-builder-flex--column{flex-direction:column}.shw-builder-flex--wrap{flex-wrap:wrap}.shw-builder-flex--justify-start{justify-content:flex-start}.shw-builder-flex--justify-center{justify-content:center}.shw-builder-flex--justify-end{justify-content:flex-end}.shw-builder-flex--justify-between{justify-content:space-between}.shw-builder-flex--justify-around{justify-content:space-around}.shw-builder-flex--justify-evenly{justify-content:space-evenly}.shw-builder-flex--align-start{align-items:flex-start}.shw-builder-flex--align-center{align-items:center}.shw-builder-flex--align-end{align-items:flex-end}.shw-builder-flex--align-stretch{align-items:stretch}.shw-builder-flex--gap-none{gap:0}.shw-builder-flex--gap-small{gap:12px}.shw-builder-flex--gap-medium{gap:24px}.shw-builder-flex--gap-large{gap:40px}
.shw-builder-feature{display:flex;min-width:0;overflow:hidden;border:1px solid var(--color-line);background:#fff;box-sizing:border-box}.shw-builder-feature--card{flex-direction:column}.shw-builder-feature--horizontal{flex-direction:row}.shw-builder-feature--split{flex-direction:row}.shw-builder-feature--light{background:linear-gradient(145deg,#f8fdff,#eef9ff)}.shw-builder-feature--ink{background:linear-gradient(145deg,#00478d,#00336c);border-color:#00336c;color:#fff}.shw-builder-feature--ink h3,.shw-builder-feature--ink p,.shw-builder-feature--ink .eyebrow{color:#fff}.shw-builder-feature__media{overflow:hidden;background:#eaf6fc}.shw-builder-feature__media img{display:block;width:100%;height:100%;object-fit:cover}.shw-builder-feature--card .shw-builder-feature__media{aspect-ratio:16/9}.shw-builder-feature--horizontal .shw-builder-feature__media,.shw-builder-feature--split .shw-builder-feature__media{flex:0 0 42%;min-height:260px}.shw-builder-feature__body{padding:26px;display:flex;flex-direction:column;align-items:flex-start;min-width:0}.shw-builder-feature__body h3{margin:.2rem 0 .65rem}.shw-builder-feature__body p{margin-top:0}.shw-builder-feature__icon{width:50px;height:50px;margin-bottom:12px}.shw-builder-feature__icon img{width:100%;height:100%;object-fit:contain}
.shw-builder-icon-box{border:1px solid var(--color-line);background:#fff;padding:22px;min-width:0}.shw-builder-icon-box--light{background:#f2faff}.shw-builder-icon-box--ink{background:linear-gradient(145deg,#00478d,#00336c);border-color:#00336c;color:#fff}.shw-builder-icon-box--ink h3,.shw-builder-icon-box--ink p{color:#fff}.shw-builder-icon-box>a{display:flex;gap:16px;align-items:flex-start;color:inherit;text-decoration:none}.shw-builder-icon-box{display:flex;gap:16px;align-items:flex-start}.shw-builder-icon-box__icon{flex:0 0 48px}.shw-builder-icon-box h3{margin:0 0 .4rem;font-size:1.05rem}.shw-builder-icon-box p{margin:0;font-size:.9rem}.shw-builder-icon-box--center{text-align:center;flex-direction:column;align-items:center}.shw-builder-icon-box--right{text-align:right;flex-direction:row-reverse}
.shw-builder-icon-list{margin:2rem 0}.shw-builder-icon-list>div{display:grid;grid-template-columns:repeat(var(--shw-icon-list-cols),minmax(0,1fr));gap:12px 28px}.shw-builder-icon-list__item{display:flex;align-items:center;gap:12px;min-width:0;padding:8px 0}.shw-builder-icon-list__item img{width:32px;height:32px;object-fit:contain;flex:0 0 32px}.shw-builder-icon-list h2{margin-bottom:18px}
.shw-builder-image-box-link{display:block;text-decoration:none}.shw-builder-image-box{position:relative;min-height:var(--shw-image-height);display:flex;align-items:flex-end;padding:28px;box-sizing:border-box;overflow:hidden;color:#fff;background-size:cover;background-position:center}.shw-builder-image-box::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,20,45,.08),rgba(0,20,45,var(--shw-image-overlay)));transition:opacity .25s ease;z-index:1}.shw-builder-image-box::after{content:"";position:absolute;inset:-3%;background:inherit;background-size:cover;background-position:center;transform:scale(1);transition:transform .45s ease;z-index:0;pointer-events:none}.shw-builder-image-box__body{position:relative;z-index:2;max-width:720px}.shw-builder-image-box__body h3,.shw-builder-image-box__body p{color:#fff}.shw-builder-image-box__body h3{margin:0 0 .45rem}.shw-builder-image-box__body p{margin:0 0 .6rem}.shw-builder-image-box-link:hover .shw-builder-image-box::after,.shw-hover--zoom:hover::after{transform:scale(1.06)}
.shw-builder-timeline{margin:2rem 0}.shw-builder-timeline>ol{list-style:none;margin:0;padding:0;position:relative}.shw-builder-timeline--vertical>ol::before{content:"";position:absolute;left:20px;top:18px;bottom:18px;width:2px;background:var(--color-line)}.shw-builder-timeline--vertical li{display:grid;grid-template-columns:42px minmax(0,1fr);gap:18px;position:relative;padding-bottom:26px}.shw-builder-timeline__marker{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--color-primary-dark);color:#fff;font-size:.75rem;font-weight:750;z-index:2}.shw-builder-timeline h3{margin:2px 0 5px}.shw-builder-timeline p{margin:0}.shw-builder-timeline--horizontal>ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.shw-builder-timeline--horizontal li{position:relative}.shw-builder-timeline--horizontal .shw-builder-timeline__marker{margin-bottom:12px}
.shw-builder-counter{margin:2rem 0;padding:24px}.shw-builder-counter--light{background:#f2faff}.shw-builder-counter--ink{background:#003b7f;color:#fff}.shw-builder-counter>div{display:grid;grid-template-columns:repeat(var(--shw-counter-cols),minmax(0,1fr));gap:16px}.shw-builder-counter article{text-align:center;padding:14px}.shw-builder-counter__icon{margin:0 auto 8px}.shw-builder-counter strong{display:block;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.05}.shw-builder-counter span{display:block;margin-top:5px;color:var(--color-muted)}.shw-builder-counter--ink span{color:#d8eaf6}
.shw-builder-progress{margin:2rem 0}.shw-builder-progress__item{margin:0 0 18px}.shw-builder-progress__item>div:first-child{display:flex;justify-content:space-between;gap:20px;margin-bottom:7px}.shw-builder-progress__bar{height:10px;background:#e5f1f8;border-radius:999px;overflow:hidden}.shw-builder-progress__bar span{display:block;height:100%;background:linear-gradient(90deg,#079bea,#0067c1);border-radius:inherit}
.shw-builder-video-popup__trigger{position:relative;display:block;width:100%;min-height:280px;padding:0;border:0;overflow:hidden;background:#003b7f;color:#fff;cursor:pointer}.shw-builder-video-popup__trigger img{display:block;width:100%;height:100%;min-height:280px;object-fit:cover}.shw-builder-video-popup__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:rgba(7,155,234,.94);font-size:1.6rem;padding-left:4px}.shw-builder-video-popup__trigger>span:last-child{position:absolute;left:20px;bottom:18px;font-weight:700}.shw-video-modal{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:24px}.shw-video-modal__backdrop{position:absolute;inset:0;background:rgba(0,18,38,.82)}.shw-video-modal__dialog{position:relative;width:min(1100px,100%);z-index:2;background:#000;border-radius:12px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.4)}.shw-video-modal__dialog video{display:block;width:100%;max-height:80vh}.shw-video-modal__close{position:absolute;right:8px;top:8px;z-index:3;width:42px;height:42px;border:0;border-radius:50%;background:#fff;color:#003b7f;font-size:28px;cursor:pointer}.shw-modal-open{overflow:hidden}
.shw-builder-breadcrumbs{margin:0 0 22px;font-size:.82rem;color:var(--color-muted)}.shw-builder-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:0;list-style:none;padding:0;margin:0}.shw-builder-breadcrumbs li+li::before{content:"›";margin:0 9px;color:#91aec2}.shw-builder-breadcrumbs a{color:inherit}.shw-builder-breadcrumbs [aria-current="page"]{color:var(--color-ink);font-weight:650}
.shw-builder-posts{margin:2rem 0}.shw-builder-posts>div{display:grid;grid-template-columns:repeat(var(--shw-posts-cols),minmax(0,1fr));gap:20px}.shw-builder-posts article{border:1px solid var(--color-line);background:#fff;overflow:hidden}.shw-builder-posts__image{display:block;aspect-ratio:16/9;background:#eef7fb}.shw-builder-posts__image img{display:block;width:100%;height:100%;object-fit:cover}.shw-builder-posts__body{padding:20px}.shw-builder-posts__body time{font-size:.74rem;color:var(--color-muted)}.shw-builder-posts h3{font-size:1.12rem;margin:.35rem 0 .55rem}.shw-builder-posts h3 a{color:inherit;text-decoration:none}.shw-builder-posts p{font-size:.88rem}.shw-builder-posts .text-link{font-size:.86rem;font-weight:700}
.shw-builder-toc{padding:18px 20px;background:#f2faff;border:1px solid var(--color-line)}.shw-builder-toc h2{font-size:1rem;margin:0 0 10px}.shw-builder-toc ol{margin:0;padding-left:22px}.shw-builder-toc li{margin:5px 0}.shw-builder-toc__level-3{padding-left:14px}.shw-builder-toc__level-4,.shw-builder-toc__level-5,.shw-builder-toc__level-6{padding-left:28px}
.shw-builder-spacer{height:var(--shw-spacer)}.shw-builder-separator{padding-block:18px;text-align:center}.shw-builder-separator span{display:block;width:var(--shw-separator-width);margin-inline:auto;border-top:1px solid var(--color-line)}.shw-builder-separator--dots span{border-top:4px dotted var(--color-primary)}.shw-builder-separator--wave span{height:16px;border:0;background:radial-gradient(ellipse at 50% 100%,transparent 55%,var(--color-line) 57%,transparent 60%);background-size:34px 18px}
.shw-shadow--soft{box-shadow:0 8px 24px rgba(0,59,127,.08)}.shw-shadow--medium{box-shadow:0 16px 38px rgba(0,59,127,.12)}.shw-shadow--strong{box-shadow:0 24px 60px rgba(0,59,127,.18)}.shw-radius--none{border-radius:0}.shw-radius--small{border-radius:8px}.shw-radius--medium{border-radius:16px}.shw-radius--large{border-radius:26px}.shw-radius--pill{border-radius:999px}.shw-hover--lift{transition:transform .22s ease,box-shadow .22s ease}.shw-hover--lift:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,59,127,.14)}.shw-hover--glow{transition:box-shadow .22s ease}.shw-hover--glow:hover{box-shadow:0 0 0 4px rgba(7,155,234,.14),0 14px 34px rgba(0,59,127,.12)}.shw-sticky{position:sticky;top:20px;z-index:20}
@media(max-width:980px){.shw-builder-timeline--horizontal>ol{grid-template-columns:repeat(2,minmax(0,1fr))}.shw-builder-posts>div{grid-template-columns:repeat(min(2,var(--shw-posts-cols)),minmax(0,1fr))}.shw-hide-tablet{display:none!important}}
@media(max-width:680px){.shw-builder-container__inner{width:min(100% - 24px,1240px)}.shw-builder-feature--horizontal,.shw-builder-feature--split{flex-direction:column}.shw-builder-feature--horizontal .shw-builder-feature__media,.shw-builder-feature--split .shw-builder-feature__media{flex-basis:auto;min-height:0;aspect-ratio:16/9}.shw-builder-icon-list>div,.shw-builder-counter>div{grid-template-columns:1fr!important}.shw-builder-timeline--horizontal>ol,.shw-builder-posts>div{grid-template-columns:1fr}.shw-hide-mobile{display:none!important}.shw-sticky{position:static}.shw-builder-video-popup__trigger,.shw-builder-video-popup__trigger img{min-height:220px}}
@media(min-width:981px){.shw-hide-desktop{display:none!important}}

.shw-preset--soft{background:#f2faff;border-color:#d6edf8}.shw-preset--outline{background:transparent;border:2px solid var(--color-line)}.shw-preset--elevated{box-shadow:0 18px 42px rgba(0,59,127,.13)}.shw-preset--dark{background:linear-gradient(145deg,#00478d,#00336c);color:#fff;border-color:#00336c}.shw-preset--dark h2,.shw-preset--dark h3,.shw-preset--dark p{color:#fff}.shw-preset--highlight{background:linear-gradient(145deg,#eef9ff,#dff4ff);border-color:#8ecdee;box-shadow:0 10px 28px rgba(7,155,234,.12)}
.kahsay-page-template>.container{padding-top:12px}.kahsay-page-template .shw-builder-breadcrumbs{margin-bottom:18px}.kahsay-page-template .entry-content>h1:first-child{margin-top:0}


/* =========================================================
   19. Abwesenheitshinweis (v2.1.0)
   ========================================================= */
.shw-absence-slot[hidden],
.shw-absence[hidden]{display:none!important}

.shw-absence{display:flex;gap:.65rem;align-items:flex-start;line-height:1.45}
.shw-absence__icon{flex:0 0 auto;display:inline-grid;place-items:center;margin-top:.12em}
.shw-absence__icon svg{display:block;width:1.2em;height:1.2em}
.shw-absence__text{min-width:0;overflow-wrap:anywhere}
.shw-absence__title{font-weight:700;margin-right:.3em}

/* Header: eigene schmale Zeile unter der Kontaktleiste */
.shw-absence-slot--header{
  background:#fff4d6;
  color:#4f3500;
  border-bottom:1px solid #f1cf80;
  font-size:.85rem;
  padding:7px 0;
}
.shw-absence-slot--header .shw-absence{align-items:center}
.shw-absence-slot--header.is-sticky{
  position:sticky;
  top:var(--shw-topbar-h,36px);
  z-index:119;
  box-shadow:0 4px 12px rgba(0,59,127,.10);
}
.admin-bar .shw-absence-slot--header.is-sticky{top:calc(var(--shw-topbar-h,36px) + 32px)}
@media(max-width:782px){
  .admin-bar .shw-absence-slot--header.is-sticky{top:calc(var(--shw-topbar-h,36px) + 46px)}
  .shw-absence-slot--header{font-size:.78rem;padding:6px 0}
}

/* Startseite und Kontaktseite: informative Hinweisbox */
.shw-absence-slot--home,
.shw-absence-slot--contact{margin-top:1.5rem;margin-bottom:0}
.shw-absence-slot--home .shw-absence,
.shw-absence-slot--contact .shw-absence{
  background:#fff4d6;
  color:#4f3500;
  border:1px solid #f1cf80;
  border-left:5px solid var(--color-gold);
  border-radius:var(--radius);
  padding:1rem 1.25rem;
}
.shw-absence a{color:inherit;font-weight:600;text-decoration:underline}
.shw-absence a:hover,.shw-absence a:focus{text-decoration-thickness:2px}

@media print{.shw-absence-slot--header{display:none!important}}

/* 2.2.0 optionaler Notdienst */
.shw-emergency-button{position:fixed;right:1rem;bottom:1rem;z-index:999;display:flex;flex-direction:column;gap:.1rem;padding:.7rem 1rem;border-radius:999px;background:#b42318;color:#fff;text-decoration:none;box-shadow:0 8px 25px rgba(0,0,0,.2)}.shw-emergency-button:hover{color:#fff;transform:translateY(-1px)}.shw-emergency-button small{font-size:.72rem;opacity:.9}

/* 2.3.0 – Content-/Growth-Bausteine */
.shw-growth-pattern{margin-block:clamp(2.5rem,6vw,5rem)}.shw-growth-pattern>.wp-block-columns{gap:1rem}.shw-growth-pattern>.wp-block-columns>.wp-block-column{border:1px solid rgba(15,23,42,.10);border-radius:16px;padding:clamp(1rem,2vw,1.5rem);background:var(--wp--preset--color--white,#fff)}

/* Kahsay Theme 3.0 – Toolkit integration */
.kahsay-journey-shell{padding:clamp(1.25rem,4vw,3rem);border-radius:var(--radius-lg);background:var(--color-light)}
.kahsay-journey-shell>.wp-block-heading{max-width:800px}
.kahsay-service-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.55fr);gap:2rem;align-items:start}
@media(max-width:760px){.kahsay-service-intro{grid-template-columns:1fr}}


/* Theme 3.1 – Integrationsflächen für Toolkit-Notifications */
.kht-notification-zone--header + .container{position:relative}
body.admin-bar .kht-notification--popup.is-modal{padding-top:calc(clamp(1rem,4vw,3rem) + 32px)}
@media(max-width:782px){body.admin-bar .kht-notification--popup.is-modal{padding-top:calc(.75rem + 46px)}}


/* =========================================================
   RC4.1 / 3.2.4: robuste responsive Hauptnavigation
   - schaltet bereits auf kleineren Laptops/Tablets in den Menümodus,
     bevor die horizontale Navigation umbrechen oder überlaufen kann;
   - trennt Hauptlink und Untermenü-Taste sauber;
   - hält geöffnete Untermenüs innerhalb des Viewports.
   ========================================================= */
@media (max-width:1199px){
  .header-contact .contact-line{display:none}
  .menu-toggle{display:inline-flex!important}
  .navigation-wrap{display:block!important}
  .nav-contact-link{display:none!important}
  .main-navigation{display:none!important;width:100%;padding:0}
  .main-navigation.is-open{
    display:block!important;
    width:100%;
    margin:12px 0 18px;
    padding:10px 18px 16px;
    background:#fff;
    border:1px solid var(--color-line);
    border-radius:12px;
    box-shadow:0 14px 34px rgba(0,59,127,.10);
    max-height:calc(100vh - 150px);
    max-height:calc(100dvh - 150px);
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
  }
  .main-navigation .menu{display:block!important;width:100%;min-width:0}
  .main-navigation .menu>li{width:100%;min-width:0}
  .main-navigation .menu>li>a{padding:12px 0}
  .main-navigation .menu-item-has-children{
    position:relative!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 46px!important;
    align-items:center!important;
    column-gap:8px!important;
    width:100%;
    min-width:0;
  }
  .main-navigation .menu-item-has-children>a{
    grid-column:1!important;
    min-width:0!important;
    padding-right:0!important;
    overflow-wrap:anywhere;
  }
  .main-navigation .menu-item-has-children>a::after{display:none!important}
  .main-navigation .submenu-toggle{
    grid-column:2!important;
    display:grid!important;
    place-items:center!important;
    justify-self:end!important;
    flex:none!important;
    width:44px!important;
    height:44px!important;
    margin:0!important;
    padding:0!important;
    border:1px solid #b9dff2!important;
    border-radius:10px!important;
    background:#f0f9fe!important;
    color:var(--color-ink)!important;
  }
  .main-navigation .submenu-toggle:hover{background:#e1f4ff!important;border-color:#84c9eb!important}
  .main-navigation .submenu-toggle[aria-expanded="true"]{background:var(--color-ink)!important;border-color:var(--color-ink)!important;color:#fff!important}
  .main-navigation .menu-item-has-children>.sub-menu{
    grid-column:1/-1!important;
    position:static!important;
    inset:auto!important;
    width:100%!important;
    min-width:0!important;
    margin:4px 0 10px!important;
    padding:0 0 0 14px!important;
    border:0!important;
    border-left:2px solid #bfd7e4!important;
    border-radius:0!important;
    box-shadow:none!important;
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
    display:none!important;
  }
  .main-navigation .menu-item-has-children.is-open>.sub-menu{display:block!important}
  .main-navigation .sub-menu .sub-menu{left:auto!important;top:auto!important}
  .main-navigation .sub-menu .menu-item-has-children{grid-template-columns:minmax(0,1fr) 44px!important}
  .main-navigation .sub-menu .submenu-toggle{width:44px!important;height:44px!important;border-radius:9px!important}
  .main-navigation .sub-menu a{padding:11px 8px}
}
@media (min-width:1200px){
  .menu-toggle{display:none!important}
  .main-navigation{display:block!important}
}

/* =========================================================
   RC4.2: adaptive Navigation-Fit
   Desktop bleibt horizontal, solange Logo + Navigation + Aktionen
   tatsächlich in eine Zeile passen. Bei realem Platzmangel schaltet
   JavaScript den Header über .nav-force-mobile kontrolliert in den
   kompakten Menümodus – unabhängig von einer starren Gerätebreite.
   ========================================================= */
@media (min-width:1200px){
  .main-navigation .menu>li:nth-last-child(-n+2)>.sub-menu{
    left:auto;
    right:0;
  }
  .main-navigation .menu>li:nth-last-child(-n+2)>.sub-menu .sub-menu{
    left:auto;
    right:100%;
  }
}

.site-header.nav-force-mobile .header-main,
.site-header.nav-force-mobile .header-compact-row,
.site-header.nav-force-mobile .editorial-header__row,
.site-header.nav-force-mobile .panorama-header__row,
.site-header.nav-force-mobile .studio-header__row{
  display:flex!important;
  flex-wrap:wrap!important;
  grid-template-columns:none!important;
  align-items:center!important;
  justify-content:space-between!important;
}
.site-header.nav-force-mobile .header-inline-nav,
.site-header.nav-force-mobile .editorial-header__nav,
.site-header.nav-force-mobile .panorama-header__nav,
.site-header.nav-force-mobile .studio-header__nav{
  order:3!important;
  flex:0 0 100%!important;
  width:100%!important;
  max-width:none!important;
  grid-column:1/-1!important;
  justify-self:stretch!important;
}
.site-header.nav-force-mobile .header-inline-actions,
.site-header.nav-force-mobile .editorial-header__actions,
.site-header.nav-force-mobile .panorama-header__actions,
.site-header.nav-force-mobile .studio-header__actions{
  margin-left:auto!important;
}
.site-header.nav-force-mobile .header-contact .contact-line{display:none!important}
.site-header.nav-force-mobile .menu-toggle{display:inline-flex!important}
.site-header.nav-force-mobile .navigation-wrap{display:block!important}
.site-header.nav-force-mobile .nav-contact-link{display:none!important}
.site-header.nav-force-mobile .main-navigation{display:none!important;width:100%!important;padding:0!important}
.site-header.nav-force-mobile .main-navigation.is-open{
  display:block!important;
  width:100%!important;
  margin:12px 0 18px!important;
  padding:10px 18px 16px!important;
  background:#fff!important;
  border:1px solid var(--color-line)!important;
  border-radius:12px!important;
  box-shadow:0 14px 34px rgba(0,59,127,.10)!important;
  max-height:calc(100vh - 150px)!important;
  max-height:calc(100dvh - 150px)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
}
.site-header.nav-force-mobile .main-navigation .menu{display:block!important;width:100%!important;min-width:0!important}
.site-header.nav-force-mobile .main-navigation .menu>li{width:100%!important;min-width:0!important}
.site-header.nav-force-mobile .main-navigation .menu>li>a{padding:12px 0!important}
.site-header.nav-force-mobile .main-navigation .menu-item-has-children{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 46px!important;
  align-items:center!important;
  column-gap:8px!important;
  width:100%!important;
  min-width:0!important;
}
.site-header.nav-force-mobile .main-navigation .menu-item-has-children>a{
  grid-column:1!important;
  min-width:0!important;
  padding-right:0!important;
  overflow-wrap:anywhere!important;
}
.site-header.nav-force-mobile .main-navigation .menu-item-has-children>a::after{display:none!important}
.site-header.nav-force-mobile .main-navigation .submenu-toggle{
  grid-column:2!important;
  display:grid!important;
  place-items:center!important;
  justify-self:end!important;
  flex:none!important;
  width:44px!important;
  height:44px!important;
  margin:0!important;
  padding:0!important;
  border:1px solid #b9dff2!important;
  border-radius:10px!important;
  background:#f0f9fe!important;
  color:var(--color-ink)!important;
}
.site-header.nav-force-mobile .main-navigation .submenu-toggle:hover{background:#e1f4ff!important;border-color:#84c9eb!important}
.site-header.nav-force-mobile .main-navigation .submenu-toggle[aria-expanded="true"]{background:var(--color-ink)!important;border-color:var(--color-ink)!important;color:#fff!important}
.site-header.nav-force-mobile .main-navigation .menu-item-has-children>.sub-menu{
  grid-column:1/-1!important;
  position:static!important;
  inset:auto!important;
  width:100%!important;
  min-width:0!important;
  margin:4px 0 10px!important;
  padding:0 0 0 14px!important;
  border:0!important;
  border-left:2px solid #bfd7e4!important;
  border-radius:0!important;
  box-shadow:none!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
  display:none!important;
}
.site-header.nav-force-mobile .main-navigation .menu-item-has-children.is-open>.sub-menu{display:block!important}
.site-header.nav-force-mobile .main-navigation .sub-menu .sub-menu{left:auto!important;right:auto!important;top:auto!important}
.site-header.nav-force-mobile .main-navigation .sub-menu .menu-item-has-children{grid-template-columns:minmax(0,1fr) 44px!important}
.site-header.nav-force-mobile .main-navigation .sub-menu .submenu-toggle{width:44px!important;height:44px!important;border-radius:9px!important}
.site-header.nav-force-mobile .main-navigation .sub-menu a{padding:11px 8px!important}

/* Phase J: Progressive enhancement – navigation remains usable without JavaScript. */
@media (max-width:1199px){
  .no-js .menu-toggle,.no-js .main-navigation .submenu-toggle{display:none!important}
  .no-js .main-navigation{display:block!important;width:100%;margin:12px 0 18px;padding:10px 18px 16px;background:#fff;border:1px solid var(--color-line);border-radius:12px}
  .no-js .main-navigation .menu{display:block!important;width:100%}
  .no-js .main-navigation .menu>li{width:100%}
  .no-js .main-navigation .menu-item-has-children{display:block!important}
  .no-js .main-navigation .menu-item-has-children>.sub-menu{display:block!important;position:static!important;width:100%!important;opacity:1!important;visibility:visible!important;transform:none!important;margin:4px 0 10px!important;padding-left:14px!important;box-shadow:none!important}
}

/* Contact banner: preserve readable colors against the dark surface.
 * Scope the overrides to the banner, including visited/hover/focus states. */
.contact-banner.contact-banner h1,
.contact-banner.contact-banner h2,
.contact-banner.contact-banner h3,
.contact-banner.contact-banner h4,
.contact-banner.contact-banner h5,
.contact-banner.contact-banner h6,
.contact-banner.contact-banner p,
.contact-banner.contact-banner .eyebrow{color:#fff}
.contact-banner.contact-banner a.btn,
.contact-banner.contact-banner a.btn:visited{background:#fff;color:#003b7f;border-color:#fff;box-shadow:none}
.contact-banner.contact-banner a.btn:hover,
.contact-banner.contact-banner a.btn:active{background:#eaf4ff;color:#003b7f;border-color:#eaf4ff}
.contact-banner.contact-banner a.btn:focus-visible{outline:3px solid #fff;outline-offset:5px;box-shadow:0 0 0 2px #003b7f}
/* Only the supplied placeholder is protected; photographic crops are unchanged. */
img[src*="/assets/images/platzhalter.svg"]{object-fit:contain!important;background:#edf5f8}
