/*
Theme Name: Haustechnik DS
Theme URI: https://haustechnik-ds.de
Author: OpenAI
Description: Maßgeschneidertes WordPress-Theme für D.S. Sanitär & Heizung GmbH.
Version: 20.0
Text Domain: haustechnik-ds
*/
:root{
  --navy:#082c58;--navy-deep:#061d3c;--blue:#0f4f8d;--red:#df2b24;--red-dark:#b91f1a;
  --ink:#14243b;--muted:#627083;--soft:#f5f8fb;--line:#dde5ed;--white:#fff;
  --radius:14px;--shadow:0 10px 30px rgba(8,44,88,.08)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:#fff;line-height:1.55}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:none}img{max-width:100%;height:auto;display:block}.container{width:min(1220px,calc(100% - 40px));margin:auto}.skip-link{position:fixed;left:14px;top:-100px;z-index:9999;background:#fff;color:var(--navy);padding:12px 16px;border:2px solid var(--navy);border-radius:8px}.skip-link:focus{top:14px}.site-header{position:sticky;top:0;z-index:40;background:#fff;box-shadow:0 1px 0 rgba(8,44,88,.08)}.header-main{background:#fff}.header-main-inner{min-height:118px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand-logo{display:flex;align-items:center;flex:0 0 auto}.brand-logo img{width:245px;height:88px;object-fit:contain;object-position:left center}.header-contact{display:flex;align-items:center;gap:22px;margin-left:auto}.contact-chip{display:flex;align-items:center;gap:10px;color:var(--navy);min-height:54px}.contact-chip strong{display:block;font-size:.96rem;color:var(--navy)}.contact-chip small{display:block;font-size:.76rem;color:var(--muted);margin-top:2px}.contact-icon{font-size:1.4rem;line-height:1}.emergency-chip{display:flex;align-items:center;gap:12px;background:var(--red);color:#fff;padding:14px 18px;border-radius:8px;min-height:68px;box-shadow:0 8px 20px rgba(223,43,36,.18)}.emergency-chip:hover{background:var(--red-dark)}.emergency-chip strong,.emergency-chip small{display:block;color:#fff}.emergency-chip strong{font-size:.95rem}.emergency-chip small{font-size:.76rem;margin-top:2px}.emergency-icon{display:grid;place-items:center;width:40px;height:40px;border:2px solid #fff;border-radius:50%;font-size:.75rem;font-weight:900}.nav-bar{background:var(--navy)}.nav-wrap{min-height:54px;display:flex;align-items:center;justify-content:center}.primary-navigation{width:100%}.menu{display:flex;align-items:center;justify-content:center;gap:4px;list-style:none;margin:0;padding:0}.menu li{position:relative}.menu a{display:flex;align-items:center;min-height:54px;padding:0 22px;color:#fff;font-weight:750;font-size:.94rem}.menu a:hover,.menu .current-menu-item>a{background:rgba(255,255,255,.09)}.menu>li>a[href*="/notdienst"]{background:var(--red);color:#fff}.menu>li>a[href*="/notdienst"]:hover{background:var(--red-dark)}.menu .sub-menu{display:none!important}.nav-toggle{display:none;border:0;background:var(--navy);color:#fff;border-radius:9px;padding:10px 12px;min-width:50px;min-height:48px;font-weight:800}.nav-toggle-icon{display:inline-flex;flex-direction:column;gap:4px;margin-right:7px}.nav-toggle-icon span{display:block;width:20px;height:2px;background:#fff}.nav-toggle-caret{margin-left:5px}.hero-modern{padding:0;background:#f8fafc;border-bottom:1px solid var(--line)}.hero-modern-grid{display:grid;grid-template-columns:.9fr 1.35fr;min-height:485px;align-items:stretch}.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:64px 54px 64px 0;position:relative;z-index:2}.eyebrow{font-weight:850;text-transform:uppercase;letter-spacing:.12em;color:var(--red);font-size:.77rem}.hero-copy h1{font-size:clamp(2.7rem,5vw,4.8rem);line-height:1.03;letter-spacing:-.045em;text-transform:uppercase;color:var(--navy);margin:.25em 0 .28em}.hero-copy p{font-size:1.16rem;max-width:560px;color:#3e4e63;margin:0}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 20px;background:var(--navy);color:#fff!important;border:1px solid transparent;border-radius:7px;font-weight:850;text-transform:uppercase;font-size:.84rem;letter-spacing:.02em}.btn:hover{background:var(--blue)}.hero-btn{min-width:190px}.secondary-light{background:#fff!important;color:var(--navy)!important;border-color:#cbd7e3!important}.secondary-light:hover{background:#eef3f8!important}.hero-visual{position:relative;overflow:hidden}.hero-visual img{width:100%;height:100%;min-height:485px;object-fit:cover;object-position:center}.hero-visual:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#f8fafc 0%,rgba(248,250,252,.62) 9%,rgba(248,250,252,0) 30%)}.hero-visual-badge{position:absolute;right:28px;bottom:26px;z-index:2;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);padding:14px 18px;border-radius:10px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.7)}.hero-visual-badge strong,.hero-visual-badge span{display:block}.hero-visual-badge strong{color:var(--navy)}.hero-visual-badge span{font-size:.82rem;color:var(--muted);margin-top:2px}.services-section{padding:62px 0 22px}.compact-head{max-width:760px;margin-bottom:28px}.compact-head h2{font-size:clamp(2rem,3.8vw,3rem);line-height:1.1;color:var(--navy);margin:.2em 0}.compact-head p{color:var(--muted);font-size:1.04rem}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.service-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 4px 18px rgba(8,44,88,.04);transition:transform .2s ease,box-shadow .2s ease}.service-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.service-image{display:block;overflow:hidden}.service-image img{width:100%;height:210px;object-fit:cover;transition:transform .3s ease}.service-card:hover .service-image img{transform:scale(1.025)}.service-body{display:grid;grid-template-columns:54px 1fr;gap:14px;padding:20px 18px 22px}.service-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#eef4fa;color:var(--navy);font-size:1.35rem}.service-body h3{font-size:1.2rem;color:var(--navy);margin:0 0 7px;text-transform:uppercase}.service-body p{font-size:.91rem;color:var(--muted);margin:0 0 14px}.more{font-weight:850;text-transform:uppercase;font-size:.78rem;letter-spacing:.02em;color:var(--navy)}.more:hover{color:var(--red)}.benefits-section{padding:18px 0 64px}.benefits-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px}.benefits-grid{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.benefit{display:grid;grid-template-columns:54px 1fr;gap:13px;padding:24px 20px}.benefit+.benefit{border-left:1px solid var(--line)}.benefit-icon{width:44px;height:44px;border:2px solid var(--navy);border-radius:50%;display:grid;place-items:center;color:var(--navy);font-weight:900}.benefit strong,.benefit span{display:block}.benefit strong{color:var(--navy);font-size:.86rem;text-transform:uppercase}.benefit span{font-size:.8rem;color:var(--muted);margin-top:6px}.emergency-card{border:1px solid #f0b0ad;border-radius:10px;padding:18px;background:#fff}.emergency-card-top{display:flex;align-items:center;gap:12px}.emergency-card-top strong{display:block;color:var(--red);font-size:1.05rem}.emergency-card-top span{display:block;color:var(--ink);font-size:.8rem}.emergency-round{width:42px;height:42px;border:2px solid var(--red);border-radius:50%;display:grid!important;place-items:center;color:var(--red)!important;font-weight:900}.emergency-phone{display:block;margin-top:14px;background:var(--red);color:#fff;padding:10px 12px;border-radius:6px;text-align:center;font-weight:900;font-size:1.08rem}.feature-services{background:#f8fafc;padding:62px 0}.split-cards{display:grid;grid-template-columns:1fr 1fr;gap:22px}.wide-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;display:grid;grid-template-columns:46% 54%;min-height:300px}.wide-card img{width:100%;height:100%;min-height:300px;object-fit:cover}.wide-card-body{padding:32px;display:flex;flex-direction:column;justify-content:center}.wide-card-body h2{margin:.18em 0;font-size:2rem;color:var(--navy)}.wide-card-body p{color:var(--muted)}.cta-strip{background:var(--navy);padding:52px 0}.cta-strip-inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.cta-strip .eyebrow{color:#9fc7ee}.cta-strip h2{color:#fff;font-size:clamp(1.8rem,3vw,2.6rem);margin:.2em 0 0}.cta-strip .btn{background:var(--red)}.cta-strip .btn:hover{background:var(--red-dark)}
/* Interior pages */
.page-hero{background:linear-gradient(90deg,rgba(6,29,60,.96),rgba(8,44,88,.82));color:#fff;padding:86px 0 62px}.page-hero.has-image{background-size:cover;background-position:center;background-blend-mode:multiply}.page-hero h1{font-size:clamp(2.5rem,5vw,4.4rem);line-height:1.04;margin:.2em 0}.breadcrumbs{font-size:.9rem;color:#cad7e7}.content-wrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;padding:62px 0 88px}.entry-content h2{font-size:2rem;line-height:1.15;margin-top:1.5em;color:var(--navy)}.entry-content h3{color:var(--navy)}.entry-content p,.entry-content li{color:#44546a}.entry-content .lead{font-size:1.18rem;color:var(--muted)}.entry-content .feature-box{padding:24px;background:#f3f7fb;border-left:4px solid var(--red);border-radius:8px;margin:28px 0}.sidebar-box{position:sticky;top:190px;border:1px solid var(--line);border-radius:12px;padding:22px;background:#fff}.sidebar-box h3{margin-top:0;color:var(--navy)}.sidebar-box .btn{width:100%;margin-top:8px}.legal-note{background:#fff5e9;border:1px solid #f2c89e;padding:16px;border-radius:8px}.notice{padding:15px;border-radius:8px;background:#eef4fa}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table td,.wp-block-table th{border:1px solid var(--line);padding:10px}
.site-footer{background:var(--navy-deep);color:#c9d5e4;padding:54px 0 22px}.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:34px}.site-footer h3{color:#fff}.site-footer a{color:#fff}.footer-bottom{border-top:1px solid rgba(255,255,255,.13);margin-top:32px;padding-top:18px;font-size:.88rem}.cookie-banner{position:fixed;left:18px;right:18px;bottom:18px;z-index:100;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 60px rgba(6,29,60,.2);opacity:0;transform:translateY(12px);transition:.18s ease}.cookie-banner.is-visible{opacity:1;transform:none}.cookie-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:20px}.cookie-inner h2{font-size:1.05rem;margin:0 0 5px;color:var(--navy)}.cookie-inner p{font-size:.88rem;color:var(--muted);margin:0;max-width:840px}.cookie-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto}.cookie-accept{background:var(--navy)}.cookie-link{font-weight:800;font-size:.86rem}
:focus-visible{outline:3px solid #f1a29e;outline-offset:3px;border-radius:4px}
@media(max-width:1100px){
  .header-main-inner{min-height:96px}.brand-logo img{width:205px;height:74px}.header-contact{gap:14px}.email-chip{display:none}.contact-chip strong{font-size:.9rem}.emergency-chip{padding:11px 13px}.nav-toggle{display:inline-flex;align-items:center;justify-content:center;margin-left:4px}.nav-bar{position:relative}.nav-wrap{min-height:0}.primary-navigation{width:100%}.menu{display:none;position:absolute;top:0;left:20px;right:20px;z-index:60;background:#fff;padding:10px;flex-direction:column;align-items:stretch;gap:2px;border:1px solid var(--line);border-top:4px solid var(--navy);border-radius:0 0 12px 12px;box-shadow:0 18px 40px rgba(8,44,88,.18)}.menu.open{display:flex}.menu a{color:var(--navy);min-height:50px;padding:0 14px;border-radius:7px}.menu a:hover,.menu .current-menu-item>a{background:#eef4fa}.menu>li>a[href*="/notdienst"]{background:var(--red);color:#fff}.hero-modern-grid{grid-template-columns:1fr 1.1fr}.hero-copy{padding-right:34px}.service-grid{grid-template-columns:repeat(2,1fr)}.benefits-layout{grid-template-columns:1fr}.split-cards{grid-template-columns:1fr}.wide-card{min-height:280px}.content-wrap{grid-template-columns:1fr}.sidebar-box{position:static}.footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .container{width:min(100% - 28px,1220px)}.site-header{position:sticky}.header-main-inner{min-height:82px;gap:10px}.brand-logo img{width:160px;height:62px}.header-contact{margin-left:auto}.contact-chip{display:none}.emergency-chip{padding:8px 10px;min-height:48px}.emergency-chip small,.emergency-icon{display:none}.emergency-chip strong{font-size:.75rem}.nav-toggle{min-width:46px;padding:8px}.nav-toggle-label{display:none}.menu{left:14px;right:14px}.hero-modern-grid{grid-template-columns:1fr}.hero-copy{padding:44px 0 32px}.hero-copy h1{font-size:clamp(2.35rem,12vw,3.6rem)}.hero-copy p{font-size:1.02rem}.hero-visual{min-height:300px;border-radius:12px 12px 0 0;overflow:hidden}.hero-visual img{min-height:300px;height:300px}.hero-visual:before{background:linear-gradient(180deg,#f8fafc 0%,rgba(248,250,252,0) 28%)}.hero-visual-badge{right:14px;bottom:14px}.services-section{padding-top:46px}.service-grid{grid-template-columns:1fr}.service-image img{height:235px}.service-body{grid-template-columns:48px 1fr;padding:18px}.benefits-grid{grid-template-columns:1fr}.benefit+.benefit{border-left:0;border-top:1px solid var(--line)}.wide-card{grid-template-columns:1fr}.wide-card img{height:245px;min-height:245px}.wide-card-body{padding:24px}.cta-strip-inner{align-items:flex-start;flex-direction:column}.actions{width:100%}.actions .btn{flex:1}.footer-grid{grid-template-columns:1fr}.cookie-inner{align-items:flex-start;flex-direction:column;gap:16px}.cookie-actions{width:100%;flex-wrap:wrap}.cookie-accept{flex:1}.page-hero{padding:62px 0 44px}.content-wrap{padding:44px 0 68px}
}
@media(max-width:480px){.brand-logo img{width:138px}.emergency-chip{display:none}.service-image img{height:210px}.actions .btn{width:100%;flex:auto}.hero-visual img{height:260px;min-height:260px}.wide-card img{height:220px;min-height:220px}.cookie-banner{left:10px;right:10px;bottom:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}


/* Warum D.S. */
.why-ds-section {
  padding: 72px 0;
  background: #f7f9fc;
  border-top: 1px solid #e7edf5;
}
.why-ds-heading {
  max-width: 760px;
  margin: 0 auto 34px;
  text-align: center;
}
.why-ds-heading .section-kicker {
  display: block;
  margin-bottom: 8px;
  color: #d71920;
  font-weight: 700;
  font-size: .88rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.why-ds-heading h2 {
  margin: 0 0 10px;
  color: #082a57;
  font-size: clamp(2rem, 4vw, 3rem);
}
.why-ds-heading p {
  margin: 0;
  color: #526173;
}
.why-ds-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}
.why-ds-card {
  min-height: 100%;
  padding: 28px;
  background: #fff;
  border: 1px solid #e3eaf3;
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(8,42,87,.06);
}
.why-ds-icon {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  margin-bottom: 18px;
  border-radius: 50%;
  background: #edf4fb;
  color: #082a57;
  font-weight: 800;
  font-size: 1.25rem;
}
.why-ds-card h3 {
  margin: 0 0 10px;
  color: #082a57;
  font-size: 1.12rem;
}
.why-ds-card p {
  margin: 0;
  color: #526173;
  line-height: 1.65;
}
.why-ds-emergency {
  border-color: #efc6c8;
}
.why-ds-emergency .why-ds-icon {
  background: #fff0f0;
  color: #d71920;
}
.why-ds-call {
  display: inline-block;
  margin-top: 18px;
  padding: 11px 16px;
  border-radius: 7px;
  background: #d71920;
  color: #fff;
  font-weight: 800;
  text-decoration: none;
}
.why-ds-call:hover,
.why-ds-call:focus-visible {
  background: #b51218;
  color: #fff;
}
@media (max-width: 1024px) {
  .why-ds-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .why-ds-section { padding: 52px 0; }
  .why-ds-grid { grid-template-columns: 1fr; }
  .why-ds-card { padding: 24px; }
}


/* D.S. Chatbot */
.ds-chatbot {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 9998;
  font-family: inherit;
}
.ds-chatbot-toggle {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 52px;
  padding: 0 18px;
  border: 0;
  border-radius: 999px;
  background: #082a57;
  color: #fff;
  font-weight: 800;
  box-shadow: 0 12px 32px rgba(8,42,87,.25);
  cursor: pointer;
}
.ds-chatbot-toggle:hover,
.ds-chatbot-toggle:focus-visible { background: #0c3d79; }
.ds-chatbot-panel {
  position: absolute;
  right: 0;
  bottom: 66px;
  width: min(390px, calc(100vw - 32px));
  max-height: min(620px, calc(100vh - 110px));
  overflow: hidden;
  border: 1px solid #dfe6ef;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 20px 60px rgba(8,42,87,.22);
}
.ds-chatbot-header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px;
  background: #082a57;
  color: #fff;
}
.ds-chatbot-header strong { display:block; }
.ds-chatbot-header span { display:block; margin-top:3px; font-size:.78rem; opacity:.82; }
.ds-chatbot-close {
  width: 38px; height: 38px; flex: 0 0 38px;
  border: 0; border-radius: 50%;
  background: rgba(255,255,255,.12); color:#fff;
  font-size: 1.6rem; line-height:1; cursor:pointer;
}
.ds-chatbot-messages {
  height: 285px;
  overflow-y: auto;
  padding: 18px;
  background: #f7f9fc;
}
.ds-chatbot-message {
  max-width: 88%;
  margin: 0 0 11px;
  padding: 11px 13px;
  border-radius: 14px;
  line-height: 1.5;
  font-size: .93rem;
}
.ds-chatbot-message.bot {
  margin-right: auto;
  background: #fff;
  border: 1px solid #e1e7ef;
  color: #1d2c3e;
}
.ds-chatbot-message.bot.subtle { font-size:.85rem; }
.ds-chatbot-message.user {
  margin-left: auto;
  background: #082a57;
  color: #fff;
}
.ds-chatbot-message a { color:#c9141b; font-weight:800; }
.ds-chatbot-quick {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 12px 14px 4px;
  background:#fff;
}
.ds-chatbot-quick button {
  border: 1px solid #ccd7e5;
  border-radius: 999px;
  padding: 8px 10px;
  background: #fff;
  color:#082a57;
  font-weight:700;
  font-size:.78rem;
  cursor:pointer;
}
.ds-chatbot-quick button:hover,
.ds-chatbot-quick button:focus-visible { border-color:#082a57; background:#f4f8fc; }
.ds-chatbot-form {
  display:grid;
  grid-template-columns: 1fr auto;
  gap:8px;
  padding: 12px 14px;
  background:#fff;
}
.ds-chatbot-form input {
  min-width:0;
  min-height:44px;
  border:1px solid #c9d4e0;
  border-radius:10px;
  padding:0 12px;
  font:inherit;
}
.ds-chatbot-form button {
  min-height:44px;
  border:0;
  border-radius:10px;
  padding:0 14px;
  background:#d71920;
  color:#fff;
  font-weight:800;
  cursor:pointer;
}
.ds-chatbot-privacy {
  padding: 0 14px 14px;
  color:#637083;
  font-size:.72rem;
  line-height:1.4;
}
@media (max-width: 640px) {
  .ds-chatbot { right:12px; bottom:12px; }
  .ds-chatbot-panel {
    position: fixed;
    left: 10px; right: 10px; bottom: 76px;
    width:auto;
    max-height: calc(100vh - 100px);
  }
  .ds-chatbot-messages { height: 34vh; min-height: 210px; }
  .ds-chatbot-toggle-text { display:none; }
  .ds-chatbot-toggle { width:54px; padding:0; justify-content:center; }
}
@media (prefers-reduced-motion: reduce) {
  .ds-chatbot * { scroll-behavior:auto !important; transition:none !important; }
}

/* Zusätzliche Büro-Rufnummer */
.office-phone { white-space: nowrap; }
.contact-separator { margin: 0 .35rem; opacity: .55; }
@media (max-width: 640px) {
  .contact-separator { display: none; }
  .office-phone { display: block; margin-top: .35rem; }
}
