/* GIB Baugrund/Brunnenbau: original layout from the supplied 2019 screenshots. */
:root{--ink:#6d6e71;--orange:#e89a53;--brown:#9c6838;--field:#e7e8e9;--site-width:924px}
*{box-sizing:border-box}
html{min-height:100%;overflow-y:scroll;font-size:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh;color:var(--ink);background:#fff url('../img/bgr.jpg') repeat-y center top;font:13px/17px Helvetica,Arial,sans-serif}
a{color:#000;text-decoration:none}a:hover{color:var(--orange);text-decoration:underline}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #b56c2a;outline-offset:3px}
img{border:0;max-width:100%}p{margin:0 0 17px}
.site-shell{width:var(--site-width);max-width:100%;margin:0 auto;min-height:100vh;padding-bottom:48px;background:#fff}
.site-header{height:146px;position:relative}.site-header--home{height:158px}
.logo{position:absolute;left:45px;top:26px;display:block;line-height:0}
/* Unchanged original PNG; only a narrow CSS contour shadow, no redraw. */
.logo img{display:block;width:229px;height:auto;filter:drop-shadow(-1px 2px 1.2px rgba(0,0,0,.60))}
.company-head{position:absolute;right:54px;top:22px;width:515px;text-align:right;font-style:normal;line-height:17px}
.company-head strong{font-weight:700}.company-head a{color:inherit}
.phone-tag{position:absolute;right:0;top:22px;z-index:2;width:292px;line-height:0}.phone-tag img{display:block;width:292px;height:169px}.phone-mobile{display:none}
.hero{width:830px;max-width:calc(100% - 94px);margin:0 49px 0 45px;display:grid;grid-template-columns:minmax(0,628fr) minmax(0,201fr);gap:1px;align-items:stretch}
.hero-collage{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:1px;aspect-ratio:628/313}
.hero-collage img{width:100%;height:100%;object-fit:fill;display:block}.hero-collage .wide{grid-column:span 2}
.hero-welcome{background:var(--orange)}.hero-welcome img{display:block;width:100%;height:100%;object-fit:fill}.welcome-mobile{display:none}
.page-layout{display:grid;grid-template-columns:258px minmax(0,590px);column-gap:26px;padding-right:50px;align-items:start}
.page-layout--home{margin-top:45px}
.sidebar-photo{display:block;width:211px;height:211px;margin-left:45px;object-fit:cover}
.sidebar-menu{margin-top:45px}.page-layout--home .sidebar-menu{margin-top:0}
.sidebar-menu ul{list-style:none;margin:0;padding:0}.sidebar-menu li{margin:0 0 3px;padding:0}
.sidebar-menu a{display:block;width:258px;line-height:0;position:relative}.sidebar-menu img{display:block;width:258px;height:auto}
.menu-label-mobile{display:none}.sidebar-menu .menu-hover{display:none;position:absolute;inset:0}
.sidebar-menu a:not([aria-current]):hover .menu-hover,.sidebar-menu a:not([aria-current]):focus-visible .menu-hover{display:block}
.content{min-width:0}
h1{font-size:13px;line-height:17px;font-weight:400;text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}
.home-copy h1{color:#b36525;letter-spacing:0;text-transform:none;margin:0;font-size:13px;line-height:17px}
.home-copy p{text-align:justify;margin:0;hyphens:none}
.service-list{list-style:none;margin:0;padding:0}.service-list>li{margin:0 0 3px}
.service-heading{margin:0;font-size:13px;line-height:17px;font-weight:400}
.service-heading::before{content:'\25B8';color:#eea12d;display:inline-block;width:12px}
.service-details{border:1px dashed var(--orange);padding:10px;margin:10px 0;width:100%}
.service-details ul{list-style:disc;padding:0;margin:0 0 0 25px}.service-details li{margin:3px 0}
.reference-intro{margin:0}
.reference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 20px;width:490px;max-width:calc(100% - 30px);margin:24px 0 0 30px}
.reference-grid a{display:block;line-height:0}
/* Original 150 x 100 gallery cells; linked originals keep their full dimensions. */
.reference-grid img{display:block;width:100%;aspect-ratio:3/2;height:auto;object-fit:fill}
.imprint p{margin:0 0 17px}.imprint a[href^="tel:"]{color:inherit}.contact-form{margin-top:45px}
.form-row{margin:0 0 2px}.form-row label{display:block;line-height:17px;margin:0}
.form-row input,.form-row textarea{display:block;box-sizing:border-box;width:calc(100% - 115px);margin:0 0 0 115px;border:0;border-radius:0;background:var(--field);color:var(--ink);padding:3px;font:inherit}
.form-row input{height:21px}.form-row textarea{height:181px;min-height:140px;resize:vertical}
.form-actions{display:flex;justify-content:flex-end;gap:4px;margin:18px 0 0}
.form-actions button{width:150px;min-height:23px;border:0;border-radius:0;background:var(--field);color:var(--ink);font:12px/17px Helvetica,Arial,sans-serif;text-transform:uppercase;padding:3px 4px;cursor:pointer}
.form-actions button:hover{background:#ddd}
.mail-note{font-size:12px;line-height:17px;margin:14px 0 0 115px}.mail-note a{overflow-wrap:anywhere}
.mail-status{font-size:12px;line-height:17px;margin:10px 0 0 115px}.mail-status:empty{display:none}
.site-footer{position:fixed;z-index:10;left:0;right:0;bottom:0;background:var(--orange);color:#fff;min-height:22px;font-size:13px;line-height:22px}
.footer-inner{position:relative;width:var(--site-width);max-width:100%;min-height:22px;margin:0 auto;padding:0 50px;background:var(--brown)}
.footer-inner::before,.footer-inner::after{content:'';position:absolute;top:0;bottom:0;width:50px}
.footer-inner::before{right:100%;background:url('../img/bottom_left.gif') no-repeat right top}.footer-inner::after{left:100%;background:url('../img/bottom_right.gif') no-repeat left top}
.footer-inner p{margin:0;white-space:nowrap;color:#fff}
.skip-link{position:absolute;left:12px;top:-100px;padding:8px;background:#fff;z-index:30}.skip-link:focus{top:8px}
@media(max-width:960px){
 body{background:#fff}.site-shell{width:calc(100% - 32px);box-shadow:0 0 13px rgba(0,0,0,.18)}
 .company-head{right:30px;width:calc(100% - 310px)}.hero{width:calc(100% - 60px);max-width:none;margin:0 30px}
 .page-layout{grid-template-columns:220px minmax(0,1fr);gap:24px;padding-right:30px}
 .sidebar-photo{width:185px;height:185px;margin-left:30px}.sidebar-menu a,.sidebar-menu img{width:220px}
 .reference-grid{margin-left:0;max-width:100%;gap:14px}
 .footer-inner{width:calc(100% - 32px);padding:0 20px;font-size:11px}
}
@media(max-width:720px){
 body{font-size:14px;line-height:20px}.site-shell{width:calc(100% - 24px);padding-bottom:24px;min-height:calc(100vh - 50px)}
 .site-header{height:auto;min-height:0;padding:22px 20px 28px}.logo{position:static;display:inline-block}.logo img{width:205px}
 .company-head{position:static;width:auto;text-align:left;margin-top:18px;line-height:18px;font-size:13px}
 .site-header--home{height:124px;padding-top:24px}.site-header--home .logo img{width:155px}
 .phone-tag{top:39px;right:18px;width:150px;text-align:right}.phone-tag img{display:none}.phone-mobile{display:block;font-size:12px;line-height:17px;color:#698d29}
 .hero{width:calc(100% - 40px);margin:0 20px;grid-template-columns:minmax(0,1fr);gap:0}
 .hero-welcome img{display:none}.welcome-mobile{display:block;font-size:14px;line-height:20px;color:#fff;padding:14px 16px;margin:0}
 .page-layout{display:flex;flex-direction:column;gap:24px;padding:0 20px}.page-layout--home{margin-top:24px}
 .sidebar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.18fr);gap:16px;align-items:start;width:100%}.page-layout--home .sidebar{display:block}
 .sidebar-photo{margin:0;width:100%;height:auto;aspect-ratio:1/1}.sidebar-menu{margin-top:0}.sidebar-menu a,.sidebar-menu img{width:100%}
 .page-layout--home .sidebar-menu{max-width:258px}
 .sidebar-menu img,.sidebar-menu a:not([aria-current]):hover .menu-hover,.sidebar-menu a:not([aria-current]):focus-visible .menu-hover{display:none}
 .menu-label-mobile{display:block;position:relative;padding:4px 8px 4px 18px;background:#e7e8e9;color:#7c7d80;font:12px/20px Helvetica,Arial,sans-serif;text-transform:uppercase}
 .sidebar-menu a[aria-current] .menu-label-mobile::before{content:'\25B8';position:absolute;left:6px;color:var(--orange)}.content{width:100%}h1{font-size:13px;line-height:18px}
 .home-copy h1{font-size:14px;line-height:20px;margin-bottom:5px}.home-copy p{text-align:left;line-height:20px}
 .service-heading{font-size:14px;line-height:20px}.service-details{padding:10px}.service-details ul{margin-left:20px}
 .reference-grid{width:100%;margin:18px 0 0;max-width:100%;gap:12px}
 .contact-form{margin-top:28px}.form-row{margin:0 0 12px}.form-row label{margin-bottom:5px}
 .form-row input,.form-row textarea{width:100%;margin:0;font-size:16px}.form-row input{height:34px}
 .form-actions{gap:8px;margin-top:16px}.form-actions button{flex:1;min-height:36px}
 .mail-note,.mail-status{margin-left:0;font-size:13px;line-height:19px}
 .site-footer{position:static}.footer-inner{width:calc(100% - 24px);padding:6px 20px;font-size:11px;line-height:16px}
 .footer-inner p{white-space:normal}.footer-inner::before,.footer-inner::after{display:none}
}
@media(max-width:360px){.site-header--home .logo img{width:133px}.phone-tag{width:127px;right:14px}.reference-grid{gap:8px}}
@media print{
 html{overflow:visible}body{background:#fff}.site-shell{width:100%;box-shadow:none}
 .site-footer{position:static;margin-top:24px}.footer-inner{width:100%;padding:0;background:#fff;color:#000}.footer-inner p{white-space:normal;color:#000}
 .footer-inner::before,.footer-inner::after,.phone-tag,.sidebar-menu,.skip-link{display:none}
 .page-layout{display:block;padding:0 30px}.sidebar{display:none}.logo img{filter:none}
}

/* Korrektur: Startseite an die Breite/Position der Unterseiten angleichen. */
@media(min-width:961px){
  .hero{width:auto;max-width:none;margin-left:50px;margin-right:50px;grid-template-columns:minmax(0,623fr) minmax(0,201fr)}
}

/* Korrektur Kontakt: Beschriftung und Eingabefelder stehen in derselben Zeile. */
@media(min-width:721px){
  .form-row{display:grid;grid-template-columns:115px minmax(0,1fr);align-items:start;margin:0 0 2px}
  .form-row label{grid-column:1;margin:0;padding-top:2px}
  .form-row input,.form-row textarea{grid-column:2;width:100%;margin:0}
  .form-actions{margin-left:115px}
}
