/* Abgleich mit Hauzenberger Website-System 1.4.4 und gesicherten Originalseiten. */
body :is(.hz-hero,.hb-hero,.et-hero,.hp-hero,.hc-hero,.hk-hero,.hz-r-hero) h1 {
  font-weight:400!important;
  font-size:clamp(42px,3.25vw,60px)!important;
  line-height:1.08!important;
  letter-spacing:-.035em!important;
  overflow-wrap:break-word;
}
body .hz-page>.hz-hero:has(>img.hz-hero-img) {
  display:flex!important;
  min-height:570px!important;
  height:auto!important;
  background:#edf2f5!important;
}
body .hz-page>.hz-hero:has(>img.hz-hero-img)>.hz-hero-content {
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  width:min(calc(100% - 56px),1224px)!important;
  max-width:1224px!important;
  min-height:570px!important;
  padding:64px min(50%,612px) 64px 0!important;
}
body .hz-page>.hz-hero:has(>img.hz-hero-img) h1 {color:#202830!important;max-width:100%!important;width:100%!important}
body .hz-page>.hz-hero:has(>img.hz-hero-img) .hz-lead {font-size:18px!important;line-height:1.65!important;color:#5e6c77!important;max-width:550px}
body .hz-page>.hz-hero:has(>img.hz-hero-img)>img.hz-hero-img {position:absolute!important;inset:0 0 0 50%!important;width:50%!important;height:100%!important;min-height:0!important;object-fit:cover!important}
body .hz-page>.hz-hero:has(>img.hz-hero-img) .hz-btn {min-width:190px;min-height:52px}
body :is(.hz-kicker,.hz-eyebrow,.hb-kicker,.hb-eyebrow,.hw-eyebrow,.sn-eyebrow,.sl-eyebrow,.wl-overline,.et-kicker,.et-eyebrow,.hp-kicker,.hp-eyebrow,.hc-kicker,.hc-eyebrow,.hk-kicker,.hk-eyebrow,.hz-r-kicker,.hz-r-eyebrow) {color:#0075be!important;font-size:13px!important;font-weight:700!important;line-height:1.4!important;letter-spacing:.1em!important;text-transform:uppercase}
body .hz-subproof {background:#fff;border-bottom:1px solid #d6e0e6}
body .hz-subproof-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:min(calc(100% - 56px),1224px);margin:0 auto}
body .hz-subproof-grid>div {padding:22px 18px;border-right:1px solid #d6e0e6;color:#34414b;font-size:15px;line-height:1.5;font-weight:700;text-align:center}
body .hz-subproof-grid>div:last-child {border-right:0}
@media(max-width:767px){
  body :is(.hz-hero,.hb-hero,.et-hero,.hp-hero,.hc-hero,.hk-hero,.hz-r-hero) h1 {font-size:clamp(34px,9.5vw,42px)!important;line-height:1.08!important;hyphens:auto}
  body .hz-page>.hz-hero:has(>img.hz-hero-img) {flex-direction:column-reverse!important;min-height:0!important}
  body .hz-page>.hz-hero:has(>img.hz-hero-img)>.hz-hero-content {min-height:0!important;width:calc(100% - 32px)!important;padding:42px 0!important}
  body .hz-page>.hz-hero:has(>img.hz-hero-img)>img.hz-hero-img {position:relative!important;inset:auto!important;width:100%!important;height:300px!important;-webkit-mask-image:none!important;mask-image:none!important}
  body .hz-page>.hz-hero:has(>img.hz-hero-img):after {display:none!important}
  body .hz-page>.hz-hero:has(>img.hz-hero-img) .hz-btn {width:100%!important;min-width:0}
  body .hz-subproof-grid {width:100%;grid-template-columns:repeat(2,minmax(0,1fr))}
  body .hz-subproof-grid>div {padding:18px 14px}
  body .hz-subproof-grid>div:nth-child(2){border-right:0}
  body .hz-subproof-grid>div:nth-child(-n+2){border-bottom:1px solid #d6e0e6}
}

/* Homepage hero: keep viewport gutters outside a capped Elementor container. */
.page-id-101 .elementor-101 [data-id="b981d3e"] {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

/* Standalone homepage CTAs: center the content and override legacy text-link padding. */
.page-id-101 .elementor-101 :is([data-id="af34e19"], [data-id="f4d8992"]) .elementor-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  height: auto;
  padding: 14px 24px;
  box-sizing: border-box;
  line-height: 1.3;
  text-align: center;
}
.page-id-101 .elementor-101 :is([data-id="af34e19"], [data-id="f4d8992"]) .elementor-button-content-wrapper {
  align-items: center;
  justify-content: center;
}

/* Homepage hero: flush with navigation; match the service-page image fade. */
body.page-id-101 .elementor-101 [data-id="1ec7215"] {
  --padding-top: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
  --padding-right: 0px;
  padding: 0 !important;
}
body.page-id-101 .elementor-101 [data-id="1ec7215"] > .e-con-inner {
  padding: 0 !important;
}
body.page-id-101 .elementor-101 [data-id="3f906cc"],
body.page-id-101 .elementor-101 [data-id="edae14a"],
body.page-id-101 .elementor-101 [data-id="edae14a"] img {
  border-radius: 0 !important;
}
body.page-id-101 .elementor-101 [data-id="3f906cc"] {
  position: relative;
}
body.page-id-101 .elementor-101 [data-id="3f906cc"]::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg, #eef4f7 0%, rgba(238,244,247,.95) 7%, rgba(238,244,247,.56) 21%, rgba(238,244,247,0) 42%);
}

/* Compact benefits strip: 64px items plus the two 1px border rules. */
body.page-id-101 .elementor-101 [data-id="22d2fdf"] {
  border-top: 1px solid #d6e0e6;
  border-bottom: 1px solid #d6e0e6;
}
body.page-id-101 .elementor-101 [data-id="37949ff"] {
  --padding-top: 0px;
  --padding-bottom: 0px;
  padding-block: 0 !important;
}
body.page-id-101 .elementor-101 [data-id="37949ff"] > .e-con {
  min-height: 64px;
  padding: 14px 18px;
}
@media (max-width: 900px) {
  body.page-id-101 .elementor-101 [data-id="3f906cc"]::after {
    display: none;
  }
}

/* Shared radius for rectangular buttons; circular icon controls remain unchanged. */
:root { --hz-button-radius: 3px; }
body :is(
  .button,
  .elementor-button,
  .hz-btn, .hb-btn, .et-btn, .hp-btn, .hc-btn, .hk-btn, .hz-r-btn,
  .hz-job-actions > a, .hz-job-apply,
  .hw-cta a, .sn-cta a, .sl-cta a, .wl-mid-cta a,
  .hz-form-card button,
  .site-footer .action, .footer-action,
  .site-footer .social-link, .site-footer .review-link,
  main form button[type="submit"], main form button:not([type]),
  main form input[type="submit"]
) {
  border-radius: var(--hz-button-radius) !important;
}

/* Photos no longer offer enlargement; navigation images keep their links. */
body img {
  cursor: default !important;
  -webkit-user-drag: none;
  -webkit-touch-callout: none;
}
body a[href] img, body button img { cursor: pointer !important; }
body a.image-static, body a.image-static img { cursor: default !important; }

/* Sanitär: preserve the intended light headings on dark and blue sections. */
.hz-page .sn-quality h2,
.hz-page .sn-cta h2 { color:#fff; }
.hz-page .sn-quality .sn-eyebrow { color:#76c6f3!important; }

/* Partner additions: keep the existing cards, with a compact responsive logo grid. */
.hz-partners__grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.hz-partners__card { min-width:0; }
.hz-partners__card--laufen img { max-width:100%; max-height:112px; }
.hz-partners__card--viessmann img { max-width:100%; max-height:128px; }
.hz-partners__card--ta img { max-width:100%; max-height:66px; }
@media(max-width:1000px) and (min-width:621px) {
  .hz-partners__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:620px) {
  .hz-partners__grid { grid-template-columns:1fr; }
  .hz-partners__card--laufen img { max-height:104px; }
  .hz-partners__card--viessmann img { max-height:118px; }
}

/* Jobs: keep the vacancy cards and their shadows clear of the footer. */
body.page-id-112 .hz-page > .hz-job-openings {padding-bottom:88px;}
@media(max-width:620px){
  body.page-id-112 .hz-page > .hz-job-openings {padding-bottom:62px;}
}

/* Heating CTA: white large text on #075ba8 provides 6.84:1 contrast. */
body.page-id-105 .hz-page .hw-cta h2 {color:#fff;}

/* Wissen: keep the outer page gutter only on the left, not inside both sides of a half-width column. */
body.page-id-111 .hk-hero-copy,
body.page-id-111 .hk-hero-media { min-width:0; }
body.page-id-111 .hk-hero-inner { width:100%; max-width:660px; }
body.page-id-111 .hk-hero-media img { display:block; width:100%; max-width:none; }
@media(min-width:951px) {
  body.page-id-111 .hk-hero { grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); }
  body.page-id-111 .hk-hero-copy {
    padding:76px 56px 76px max(28px,calc((100vw - 1224px)/2));
  }
}

/* Badsanierung: match the other light-blue image-fade heroes, scoped to this hero only. */
body.page-id-103 .hb-hero { background:#eef4f7; }
body.page-id-103 .hb-hero-copy { min-width:0; }
body.page-id-103 .hb-hero-copy-inner { width:100%; max-width:650px; }
body.page-id-103 .hb-hero h1 { color:#202830; }
body.page-id-103 .hb-hero .hb-lead { color:#5e6c77; }
body.page-id-103 .hb-hero .hb-btn:not(.hb-btn-primary) {
  color:#202830!important; border-color:#aebdc7; background:transparent;
}
body.page-id-103 .hb-hero .hb-btn:not(.hb-btn-primary):hover {
  color:#fff!important; background:#00539c; border-color:#00539c;
}
body.page-id-103 .hb-hero-media { position:relative; }
body.page-id-103 .hb-hero-media::before {
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg,#eef4f7 0%,rgba(238,244,247,.95) 7%,rgba(238,244,247,.56) 21%,rgba(238,244,247,0) 42%);
}
@media(min-width:1001px) {
  body.page-id-103 .hb-hero-copy {
    padding:88px 56px 88px max(28px,calc((100vw - 1224px)/2));
  }
}
@media(min-width:768px) and (max-width:1000px) {
  body.page-id-103 .hb-hero-media::before {
    background:linear-gradient(180deg,#eef4f7 0%,rgba(238,244,247,0) 32%);
  }
}
@media(max-width:767px) {
  body.page-id-103 .hb-hero-media::before {
    background:linear-gradient(0deg,#eef4f7 0%,rgba(238,244,247,0) 32%);
  }
}

/* Shared hero benefit bars: match the compact homepage strip, without phantom rows. */
body :is(.hb-proof,.hz-subproof,.et-trust,.hp-facts,.hc-facts) {
  margin:0; padding:0; background:#fff;
  border-top:1px solid #d6e0e6; border-bottom:1px solid #d6e0e6;
}
body :is(.hb-proof-grid,.hz-subproof-grid,.et-trust-inner,.hp-facts-inner,.hc-facts-inner) {
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0;
  width:min(calc(100% - 56px),1224px)!important;
  margin:0 auto!important; padding:0;
}
body :is(.hb-proof,.hz-subproof,.et-trust,.hp-facts,.hc-facts) > :is(.hb-proof-grid,.hz-subproof-grid,.et-trust-inner,.hp-facts-inner,.hc-facts-inner) > :is(div,span) {
  display:flex; align-items:center; justify-content:center;
  box-sizing:border-box; min-width:0; min-height:64px;
  margin:0; padding:14px 18px;
  color:#34414b; font-size:15px; font-weight:700; line-height:1.5; text-align:center;
  border:0; border-right:1px solid #d6e0e6;
}
body :is(.hb-proof-grid,.hz-subproof-grid,.et-trust-inner,.hp-facts-inner,.hc-facts-inner) > :is(div,span):last-child {
  border-right:0;
}
@media(max-width:900px) {
  body :is(.hb-proof-grid,.hz-subproof-grid,.et-trust-inner,.hp-facts-inner,.hc-facts-inner) {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body :is(.hb-proof-grid,.hz-subproof-grid,.et-trust-inner,.hp-facts-inner,.hc-facts-inner) > :is(div,span):nth-child(even) {
    border-right:0;
  }
  body :is(.hb-proof-grid,.hz-subproof-grid,.et-trust-inner,.hp-facts-inner,.hc-facts-inner) > :is(div,span):nth-child(-n+2) {
    border-bottom:1px solid #d6e0e6;
  }
}
@media(max-width:767px) {
  body :is(.hb-proof-grid,.hz-subproof-grid,.et-trust-inner,.hp-facts-inner,.hc-facts-inner) {
    grid-template-columns:minmax(0,1fr)!important;
    width:calc(100% - 32px)!important;
  }
  body :is(.hb-proof-grid,.hz-subproof-grid,.et-trust-inner,.hp-facts-inner,.hc-facts-inner) > :is(div,span) {
    border-right:0;
    border-bottom:1px solid #d6e0e6;
  }
  body :is(.hb-proof-grid,.hz-subproof-grid,.et-trust-inner,.hp-facts-inner,.hc-facts-inner) > :is(div,span):last-child {
    border-bottom:0;
  }
}


/* Unternehmen: retain the full team photo instead of cropping people from the sides. */
body.page-id-110 .hc-hero,
body.page-id-110 .hc-hero-inner { min-height:0; }
body.page-id-110 .hc-hero-inner {
  width:100%!important; max-width:none; margin:0!important;
  grid-template-columns:minmax(0,calc(50% - 100px)) minmax(0,calc(50% + 100px));
  align-items:center;
}
body.page-id-110 .hc-hero-copy {
  min-width:0; max-width:none;
  padding:24px 36px 24px max(28px,calc((100vw - 1224px)/2));
}
body.page-id-110 .hc-hero-copy h1 { max-width:100%; }
body.page-id-110 .hc-hero .hc-btn { min-width:0; }
body.page-id-110 .hc-hero-media {
  position:relative; inset:auto;
  width:100%; height:auto; min-height:0;
  align-self:center;
}
body.page-id-110 .hc-hero-media img {
  display:block; width:100%; max-width:none; height:auto; min-height:0;
  aspect-ratio:auto;
  filter:brightness(1.04);
}
@media(min-width:1101px) {
  body.page-id-110 .hc-hero-media {
    --team-photo-offset:min(3.6%, 36px);
    overflow:hidden;
  }
  body.page-id-110 .hc-hero-media img {
    transform:translateX(var(--team-photo-offset));
    mask-image:linear-gradient(to right, transparent, rgba(0,0,0,.72) 12px, rgba(0,0,0,.96) 30px, #000 46px);
  }
}
body.page-id-110 .hc-hero-media::before { display:none; }
@media(max-width:1100px) {
  body.page-id-110 .hc-hero-inner { grid-template-columns:minmax(0,1fr); }
  body.page-id-110 .hc-hero-copy { padding:44px 28px 32px; }
  body.page-id-110 .hc-hero-copy h1 { max-width:680px; }
}
@media(max-width:620px) {
  body.page-id-110 .hc-hero-copy { padding:36px 16px 28px; }
}

/* Homepage team section: show the complete group at the photo's natural ratio. */
body.page-id-101 .elementor-101 :is(
  [data-id="04328b4"],
  [data-id="b11ed1c"],
  [data-id="b11ed1c"] .elementor-widget-container
) {
  height:auto;
  min-height:0;
}
body.page-id-101 .elementor-101 [data-id="b11ed1c"] img {
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}

/* Added legacy project photos: retain complete images and keep the existing galleries untouched. */
.hz-projects .hp-legacy-intro { max-width:760px; margin-top:20px; }
.hz-projects .hp-legacy-group { margin-top:56px; }
.hz-projects .hp-legacy-group h3 { margin:0 0 24px; font-size:26px; }
.hz-projects .hp-legacy-grid { columns:3; column-gap:22px; }
.hz-projects .hp-legacy-grid figure {
  display:inline-block; width:100%; margin:0 0 22px; vertical-align:top;
  break-inside:avoid; border:1px solid #d8e1e7; border-radius:4px;
  overflow:hidden; background:#f3f6f8;
}
.hz-projects .hp-legacy-grid img { display:block; width:100%; height:auto; object-fit:contain; }
.hz-projects .hp-legacy-grid figcaption { padding:14px 16px; color:#34414b; font-size:15px; line-height:1.5; }
.hz-projects .hp-legacy-grid--row {
  columns:auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px; align-items:start;
}
.hz-projects .hp-legacy-grid--row figure { margin:0; }
@media(max-width:900px) { .hz-projects .hp-legacy-grid { columns:2; } }
@media(max-width:900px) {
  .hz-projects .hp-legacy-grid--row { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:620px) {
  .hz-projects .hp-legacy-grid { columns:1; }
  .hz-projects .hp-legacy-grid--row { grid-template-columns:minmax(0,1fr); }
  .hz-projects .hp-legacy-group { margin-top:40px; }
}


/* Badsanierung: complementary three-photo collage, preserving the existing trio. */
.hb-bath-page .hb-gallery-extra {
  width:min(calc(100% - (2 * var(--hz-content-gutter))),var(--hz-content-width));
  margin-inline:auto;
  display:grid;
  grid-template-columns:minmax(0,3fr) minmax(0,4fr);
  gap:18px;
  margin-top:18px;
}
.hb-bath-page .hb-gallery-extra figure {
  position:relative; min-width:0; min-height:0; margin:0;
  overflow:hidden; border-radius:5px; background:#dce3e8;
}
.hb-bath-page .hb-gallery-extra figure:nth-child(2) {
  grid-column:2; grid-row:1 / span 2; aspect-ratio:1;
}
.hb-bath-page .hb-gallery-extra figure:nth-child(3) { grid-column:1; grid-row:2; }
.hb-bath-page .hb-gallery-extra img {
  position:absolute; inset:0; display:block;
  width:100%; height:100%; object-fit:cover;
}
.hb-bath-page .hb-gallery-extra figcaption {
  position:absolute; left:0; right:0; bottom:0;
  padding:48px 22px 20px;
  background:linear-gradient(transparent,rgba(18,27,34,.82));
  color:#fff; font-size:15px; font-weight:700;
}
@media(max-width:620px) {
  .hb-bath-page .hb-gallery-extra { grid-template-columns:minmax(0,1fr); }
  .hb-bath-page .hb-gallery-extra figure,
  .hb-bath-page .hb-gallery-extra figure:nth-child(2),
  .hb-bath-page .hb-gallery-extra figure:nth-child(3) {
    grid-column:auto; grid-row:auto; aspect-ratio:3 / 2;
  }
  .hb-bath-page .hb-gallery-extra figure:nth-child(2) { aspect-ratio:1; }
}
/* Keep the bathroom CTA headline legible on its blue background. */
.hb-bath-page .hb-mid-cta h3 { color:#fff!important; }


/* Heizung: preserve the existing pair and extend it with team and labelled details. */
.hw-gallery.hw-gallery-extra {
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  grid-template-rows:auto auto;
  gap:20px;
  margin-top:20px;
}
.hw-gallery.hw-gallery-extra figure { min-width:0; min-height:0; }
.hw-gallery.hw-gallery-extra figure:first-child { grid-row:1 / span 2; }
.hw-gallery.hw-gallery-extra figure:not(:first-child) { grid-column:2; aspect-ratio:3 / 2; }
.hw-gallery.hw-gallery-extra figure:first-child img { object-position:50% 50%; }
.hw-gallery.hw-gallery-extra figcaption { font-size:16px; padding:60px 22px 20px; }
@media(max-width:900px) {
  .hw-gallery.hw-gallery-extra { grid-template-columns:minmax(0,1fr); grid-template-rows:none; }
  .hw-gallery.hw-gallery-extra figure,
  .hw-gallery.hw-gallery-extra figure:first-child,
  .hw-gallery.hw-gallery-extra figure:not(:first-child) { grid-column:auto; grid-row:auto; aspect-ratio:3 / 2; }
}
@media(max-width:620px) {
  .hw-gallery.hw-gallery-extra figcaption { padding:44px 16px 16px; font-size:15px; }
}


/* Full-width project photograph, with optional restrained desktop parallax. */
.hw-project-parallax {
  position:relative;
  width:100%;
  height:clamp(360px,42vw,580px);
  margin:0;
  overflow:hidden;
  background:#eaf0f4;
}
.hw-project-parallax img {
  position:absolute;
  inset:-64px 0 auto;
  display:block;
  width:100%;
  height:calc(100% + 128px);
  object-fit:cover;
  object-position:50% 50%;
}
@media(max-width:900px) {
  .hw-project-parallax { height:auto; aspect-ratio:3 / 2; }
  .hw-project-parallax img { inset:0; height:100%; transform:none!important; }
}
@media(prefers-reduced-motion:reduce) {
  .hw-project-parallax img { transform:none!important; }
}
html.hz-a11y-motion .hw-project-parallax img { transform:none!important; }


/* Sanitär: two portraits and a wider family consultation photo, in their original proportions. */
.sn-gallery.sn-gallery-extra {
  grid-template-columns:minmax(0,2fr) minmax(0,2fr) minmax(0,4.5fr);
  gap:20px;
  margin-top:20px;
}
.sn-gallery.sn-gallery-extra figure { min-width:0; min-height:0; }
.sn-gallery.sn-gallery-extra figure:not(:last-child) { aspect-ratio:2 / 3; }
.sn-gallery.sn-gallery-extra img { object-position:50% 50%; }
.sn-gallery.sn-gallery-extra figcaption { padding:56px 18px 18px; font-size:16px; }
@media(max-width:900px) {
  .sn-gallery.sn-gallery-extra { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .sn-gallery.sn-gallery-extra figure:last-child { grid-column:1 / -1; aspect-ratio:3 / 2; }
}
@media(max-width:620px) {
  .sn-gallery.sn-gallery-extra { gap:16px; }
  .sn-gallery.sn-gallery-extra figcaption { padding:44px 12px 12px; font-size:14px; line-height:1.4; }
  .sn-gallery.sn-gallery-extra figure:last-child figcaption { font-size:15px; }
}

/* Solar: existing detail photos plus two full-height portrait motifs. */
.sl-gallery.sl-gallery-expanded {
  grid-template-columns:minmax(0,1.1fr) minmax(0,.75fr) minmax(0,.667fr);
  grid-template-rows:repeat(2,minmax(0,1fr));
}
.sl-gallery.sl-gallery-expanded figure { min-width:0; min-height:0; }
.sl-gallery.sl-gallery-expanded > figure:nth-child(1) { grid-column:1; grid-row:1; }
.sl-gallery.sl-gallery-expanded > figure:nth-child(2) { grid-column:1; grid-row:2; }
.sl-gallery.sl-gallery-expanded > figure:nth-child(3) { grid-column:2; grid-row:1 / span 2; aspect-ratio:773 / 1030; }
.sl-gallery.sl-gallery-expanded > figure:nth-child(4) { grid-column:3; grid-row:1 / span 2; aspect-ratio:933 / 1400; }
.sl-gallery.sl-gallery-expanded figcaption { padding:52px 18px 18px; }
.sl-system h2,
.sl-cta h2 { color:#fff!important; }
@media(max-width:900px) {
  .sl-gallery.sl-gallery-expanded { grid-template-columns:repeat(2,minmax(0,1fr))!important; grid-template-rows:auto auto; }
  .sl-gallery.sl-gallery-expanded > figure:nth-child(1),
  .sl-gallery.sl-gallery-expanded > figure:nth-child(2) { grid-column:auto; grid-row:auto; aspect-ratio:4 / 3; }
  .sl-gallery.sl-gallery-expanded > figure:nth-child(3),
  .sl-gallery.sl-gallery-expanded > figure:nth-child(4) { grid-column:auto; grid-row:auto; aspect-ratio:2 / 3; }
}
@media(max-width:620px) {
  .sl-gallery.sl-gallery-expanded { gap:16px; }
  .sl-gallery.sl-gallery-expanded > figure:nth-child(1),
  .sl-gallery.sl-gallery-expanded > figure:nth-child(2) { grid-column:1 / -1; aspect-ratio:3 / 2; }
  .sl-gallery.sl-gallery-expanded figcaption { padding:44px 12px 12px; font-size:14px; line-height:1.4; }
}

/* Photovoltaik: compact team photo row below the technical images. */
.et-gallery.pv-gallery-extra { margin-top:12px; }
.pv-gallery-extra .pv-gallery-team {
  grid-column:1 / -1;
  width:min(100%,840px);
  justify-self:center;
  display:grid;
  grid-template-columns:minmax(0,.801fr) minmax(0,1.799fr);
  align-items:start;
  gap:12px;
}
.pv-gallery-extra figure { position:relative; min-width:0; }
.pv-gallery-extra img { display:block; width:100%; height:auto; }
.pv-gallery-extra .pv-image-credit {
  position:absolute; top:12px; left:12px; margin:0; padding:6px 10px;
  border-radius:3px; background:#172028; color:#fff;
  font-size:14px; font-weight:700; line-height:1.4;
}
@media(max-width:620px) {
  .pv-gallery-extra .pv-gallery-team { grid-template-columns:minmax(0,1fr); }
}
/* Solar team photos form an equal-width row below the collage. */
.sl-gallery-expanded .sl-gallery-team {
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:inherit;
}
.sl-gallery-expanded .sl-gallery-team figure { aspect-ratio:3 / 2; }
.sl-gallery.sl-gallery-expanded figcaption:empty { display:none; }
@media(max-width:620px) {
  .sl-gallery-expanded .sl-gallery-team { grid-template-columns:minmax(0,1fr); }
}

/* Hero images: keep AI disclosures legible even when the image itself is cropped. */
.pv-hero-media .pv-hero-credit,
.hz-hero > .wl-hero-credit {
  position:absolute; z-index:2; right:16px; bottom:16px;
  margin:0; padding:6px 10px; border-radius:3px;
  background:rgba(23,32,40,.9); color:#fff;
  font-size:12px; line-height:1.4; font-weight:400;
}

/* Elektrotechnik: landscape views with paired portraits, keeping the full motifs. */
.et-gallery.et-gallery-expanded {
  grid-template-columns:minmax(0,4.5fr) repeat(2,minmax(0,2fr));
  gap:20px;
}
.et-gallery.et-gallery-expanded figure {
  position:relative; min-width:0; min-height:0; aspect-ratio:2 / 3;
}
.et-gallery.et-gallery-expanded figure:nth-child(3n + 1) { aspect-ratio:3 / 2; }
.et-gallery.et-gallery-expanded img {
  position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover;
}
@media(max-width:900px) {
  .et-gallery.et-gallery-expanded { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .et-gallery.et-gallery-expanded figure:nth-child(3n + 1) { grid-column:1 / -1; }
}
@media(max-width:620px) {
  .et-gallery.et-gallery-expanded { gap:16px; }
}

.et-gallery.et-gallery-expanded .et-gallery-portrait {
  aspect-ratio:801 / 1200;
}

/* Shared service FAQs: retain the Elektrotechnik component's exact border color. */
.et-faq { --line:#d6e0e6; }

/* Keep the couple on the right visible in the projects hero. */
body.page-id-109 .hp-hero-media img { object-position:right center; }

/* Unternehmen: planning portrait beside two landscape views, only in the story section. */
.hz-company .hc-planning-collage {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
  gap:14px;
  min-width:0;
}
.hz-company .hc-planning-collage figure {
  position:relative;
  min-width:0; min-height:0; margin:0;
  aspect-ratio:1400 / 934;
  border-radius:6px; overflow:hidden;
}
.hz-company .hc-planning-collage figure:first-child {
  grid-row:1 / span 2;
  aspect-ratio:auto;
}
.hz-company .hc-planning-collage img {
  position:absolute; inset:0;
  display:block; width:100%; height:100%;
  object-fit:cover;
}
@media(max-width:620px) {
  .hz-company .hc-planning-collage { gap:10px; }
}


/* Company closing panorama: full image, edge to edge and flush with the footer. */
.hz-company .hc-footer-photo {
  display:block; width:100%; max-width:none;
  margin:0; padding:0; border:0; border-radius:0; line-height:0;
}
.hz-company .hc-footer-photo img {
  display:block; width:100%; max-width:none; height:auto;
  margin:0; padding:0; border:0; border-radius:0;
}

/* Knowledge editorial note belongs to the FAQ, without a separate framed section. */
.hz-knowledge #fragen .hk-editorial {
  margin:24px 0 0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}

/* Closing photo collages for Jobs and Wissen.
   Desktop rows use the original image ratios; images are never cropped. */
.hz-closing-collage {
  padding:0 0 88px;
  background:#fff;
}
.hz-closing-collage__inner {
  width:min(calc(100% - 56px),1224px);
  margin:0 auto;
}
.hz-closing-collage__row {
  display:flex;
  align-items:flex-start;
  gap:18px;
}
.hz-closing-collage__row + .hz-closing-collage__row {
  margin-top:18px;
}
.hz-closing-collage .hz-closing-collage__photo {
  flex:var(--hz-photo-ratio,1.5) 1 0;
  min-width:0;
  margin:0;
  overflow:hidden;
  border-radius:5px;
}
.hz-closing-collage .hz-closing-collage__photo img {
  display:block;
  width:100%;
  max-width:100%;
  height:auto;
  margin:0;
}
@media(max-width:900px) {
  .hz-closing-collage { padding-bottom:72px; }
  .hz-closing-collage__inner {
    columns:2;
    column-gap:16px;
  }
  .hz-closing-collage__row {
    display:contents;
  }
  .hz-closing-collage .hz-closing-collage__photo {
    display:block;
    width:100%;
    margin:0 0 16px;
    break-inside:avoid;
    page-break-inside:avoid;
  }
}
@media(max-width:680px) {
  .hz-closing-collage__inner { width:calc(100% - 32px); }
}
@media(max-width:520px) {
  .hz-closing-collage { padding-bottom:56px; }
  .hz-closing-collage__inner { columns:1; }
}


/* Projects-only collages: complete photos in proportional, flush-bottom rows.
   Append after the existing reference.css rules; no older gallery is restyled. */
.hz-projects .hp-curated-gallery {
  display:grid;
  gap:14px;
  min-width:0;
}
.hz-projects .hp-photo-row {
  display:grid;
  grid-template-columns:var(--hp-row-columns);
  align-items:start;
  gap:14px;
  min-width:0;
}
.hz-projects .hp-photo-row > figure {
  display:block;
  min-width:0;
  margin:0;
  padding:0;
  border:0;
  border-radius:6px;
  overflow:hidden;
  background:transparent;
  line-height:0;
}
.hz-projects .hp-photo-row > figure > img {
  display:block;
  width:100%;
  max-width:none;
  height:auto;
  margin:0;
}
.hz-projects .hp-curated-gallery--idea {
  margin-top:42px;
}
.hz-projects .hp-curated-gallery--projects {
  margin-top:32px;
}
.hz-projects .hp-curated-intro {
  max-width:760px;
  margin:20px 0 0;
  color:var(--muted);
  font-size:17px;
  line-height:1.7;
}
@media(max-width:620px) {
  .hz-projects .hp-curated-gallery,
  .hz-projects .hp-photo-row { gap:12px; }
  .hz-projects .hp-photo-row { grid-template-columns:minmax(0,1fr); }
}

/* Photo collage beside the residential ventilation introduction. */
.wl-air-collage {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  min-width:0;
}
.wl-air-collage img {
  display:block;
  width:100%;
  height:auto;
  border-radius:5px;
}

/* Project photos in a horizontal strip with their original proportions. */
.hp-marquee { margin-top:25px; }
.hp-marquee-viewport { overflow-x:auto; cursor:grab; }
.hp-marquee-viewport.is-dragging { cursor:grabbing; }
.hp-marquee-track,
.hp-marquee-group { display:flex; width:max-content; }
.hp-marquee-group { gap:14px; padding-inline-end:14px; }
.hp-marquee-group[hidden] { display:none; }
.hp-marquee-group figure { flex:none; margin:0; }
.hp-marquee-group img {
  display:block;
  width:auto;
  height:clamp(200px,29vw,430px);
  max-width:none;
  border-radius:5px;
  user-select:none;
  -webkit-user-drag:none;
}

@media(max-width:620px) {
  .hp-marquee-group img { height:max(200px,75vw); }
}

.hz-company .hc-team-mosaic { grid-template-columns:minmax(0,1fr); gap:16px; }
.hz-company .hc-team-mosaic-row { display:flex; align-items:center; gap:16px; }
.hz-company .hc-team-mosaic figure {
  flex:1.5 1 0;
  min-width:0;
  height:auto;
}
.hz-company .hc-team-mosaic .hc-team-portrait { flex-grow:.667; }
.hz-company .hc-team-mosaic img { display:block; width:100%; height:auto; }
@media(max-width:620px) {
  .hz-company .hc-team-mosaic { grid-template-columns:repeat(2,minmax(0,1fr)) !important; align-items:center; gap:10px; }
  .hz-company .hc-team-mosaic-row { display:contents; }
}

.hk-decision-collage { display:grid; gap:10px; min-width:0; }
.hk-decision-top {
  display:grid;
  grid-template-columns:minmax(0,.94fr) minmax(0,1fr);
  align-items:center;
  gap:10px;
}
.hk-decision-stack { display:grid; gap:10px; }
.hk-decision-bottom { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.hk-decision-collage figure { min-width:0; margin:0; }
.hk-decision-collage img { display:block; width:100%; height:auto; border-radius:5px; }

.hz-contact h1 { margin:0; font-size:clamp(38px,4vw,60px); line-height:1.1; }
.hz-contact-lead { max-width:62ch; margin:16px 0 32px; }
.hz-contact-grid {
  display:grid;
  grid-template-columns:minmax(0, 2fr) minmax(0, 3fr);
  align-items:start;
  gap:clamp(20px,4vw,56px);
}
.hz-contact-grid > section {
  min-width:0;
  padding:clamp(20px,3vw,38px);
  background:#fff;
  border:1px solid #d6e0e6;
}
.hz-contact-grid h2 { margin:0 0 18px; font-size:clamp(25px,2.4vw,34px); }
.hz-contact-details address { font-style:normal; }
.hz-contact-details h3 { margin:48px 0 10px; }
.hz-contact-hours { margin:0; }
.hz-contact-hours dt { font-weight:700; }
.hz-contact-hours dd { margin:0 0 10px; }
.hz-contact-message .passst-form-slot { margin-bottom:20px; }
.hz-contact-panorama { margin:0; }
.hz-contact-panorama img { display:block; width:100%; height:auto; }
@media(max-width:820px) {
  .hz-contact-grid { grid-template-columns:minmax(0,1fr); }
}

.hz-contact .hz-contact-route { color:#fff; background:#0067a8; border-color:#0067a8; }
.hz-contact .hz-contact-route:hover,
.hz-contact .hz-contact-route:focus-visible { color:#fff; background:#005089; border-color:#005089; }
.hz-contact .hz-contact-route:focus-visible { outline:2px solid #005089; outline-offset:3px; }
