/*
Theme Name: Pluswerk Baukonzepte
Author: Pluswerk-Baukonzepte
Description: Onepager-Theme für Pluswerk-Baukonzepte – Planung, Gutachten, Leistungsverzeichnisse, Energieberatung und Bauleitung. Texte, Bilder und Kontaktdaten unter Design › Customizer › Pluswerk Startseite.
Version: 3.5
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: pluswerk
*/
@font-face{font-family:'Archivo';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/archivo-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/archivo-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-display:swap;src:url('assets/fonts/archivo-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Archivo';font-style:normal;font-weight:800;font-display:swap;src:url('assets/fonts/archivo-latin-800-normal.woff2') format('woff2')}
@font-face{font-family:'Archivo';font-style:normal;font-weight:900;font-display:swap;src:url('assets/fonts/archivo-latin-900-normal.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url('assets/fonts/ibm-plex-sans-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/ibm-plex-sans-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url('assets/fonts/ibm-plex-sans-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('assets/fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2')}
body{margin:0;background:#F3F3EF}
html{scroll-behavior:smooth}
a{color:#1B1F23}a:hover{color:#B23A0C}
@keyframes gridmove{from{background-position:0 0,0 0}to{background-position:48px 48px,48px 48px}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadeup{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(242,162,122,.7)}70%{box-shadow:0 0 0 14px rgba(242,162,122,0)}100%{box-shadow:0 0 0 0 rgba(242,162,122,0)}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.bp{background-image:linear-gradient(rgba(120,170,230,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(120,170,230,.09) 1px,transparent 1px);background-size:48px 48px;animation:gridmove 6s linear infinite}
.draw path,.draw line,.draw rect,.draw polyline{stroke-dasharray:1400;stroke-dashoffset:1400;animation:draw 3.2s ease-out forwards}
.draw .d2{animation-delay:.6s}.draw .d3{animation-delay:1.2s}.draw .d4{animation-delay:1.8s}
.fu{opacity:0;animation:fadeup .9s cubic-bezier(.2,.7,.2,1) forwards}
.fu1{animation-delay:.1s}.fu2{animation-delay:.3s}.fu3{animation-delay:.5s}.fu4{animation-delay:.7s}
.floaty{animation:floaty 6s ease-in-out infinite}
.marq{display:flex;width:max-content;animation:marquee 28s linear infinite}
.dot{animation:pulse 2s infinite}
.btn{transition:transform .25s,box-shadow .25s,background-color .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px -10px rgba(178,58,12,.6);color:#FFFFFF}
.btn .arr{transition:transform .25s}.btn:hover .arr{transform:translateX(5px)}
.ghost{transition:background-color .25s,border-color .25s}.ghost:hover{background-color:rgba(255,255,255,.08);border-color:#F3F3EF;color:#F3F3EF}
.card{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,background-color .35s}
.card:hover{transform:translateY(-6px);box-shadow:0 24px 48px -24px rgba(27,31,35,.35)}
.card .bar{width:32px;transition:width .4s}.card:hover .bar{width:100%}
.card .num{transition:color .3s}.card:hover .num{color:#B23A0C}
.card .ic{transition:transform .4s}.card:hover .ic{transform:rotate(-8deg) scale(1.1)}
.zoom{overflow:hidden}.zoom img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}.zoom:hover img{transform:scale(1.06)}
.step .n{transition:background-color .3s,color .3s}.step:hover .n{background-color:#B23A0C;color:#FFFFFF;border-color:#B23A0C}
.lnk{text-decoration:none;font-weight:600;border-bottom:2px solid currentColor;padding-bottom:2px}
.nav a{transition:color .2s}
.gi{transition:background-color .3s}.gi:hover{background-color:#262B30}
input:focus,select:focus,textarea:focus{outline:2px solid #B23A0C;outline-offset:1px}
@media (prefers-reduced-motion:reduce){.bp,.marq,.floaty,.dot{animation:none}.fu{opacity:1;animation:none}.draw path,.draw line,.draw rect,.draw polyline{stroke-dashoffset:0;animation:none}}

/* Kontaktformular-Meldung */
.pw-msg{padding:14px 16px;font-weight:600;font-size:.95rem}
.pw-msg.ok{background:#E7F4EA;color:#1E5A2E}
.pw-msg.err{background:#FBE9E4;color:#8A2A08}
/* Unterseiten (Impressum, Datenschutz, ...) */
.pw-page{max-width:820px;margin:0 auto;padding:80px 24px 112px}
.pw-page h1{font-family:Archivo,sans-serif;font-weight:900;font-size:clamp(2rem,4vw,3rem);letter-spacing:-.025em;line-height:1.05;margin:0 0 32px}
.pw-page h2,.pw-page h3{font-family:Archivo,sans-serif;font-weight:800;letter-spacing:-.01em;margin:2em 0 .5em}
.pw-page p,.pw-page li{color:#3A3F43}
.pw-page a{color:#B23A0C}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px)}

/* ===== Footer immer am unteren Rand ===== */
#pw{min-height:100vh;display:flex;flex-direction:column}
#pw > main{flex:1 0 auto}
#pw > footer{flex-shrink:0}
body.admin-bar #pw{min-height:calc(100vh - 32px)}
@media (max-width:782px){body.admin-bar #pw{min-height:calc(100vh - 46px)}}

/* ===== Mobile Ansicht kompakter ===== */
@media (max-width:640px){
  #pw{font-size:.95rem!important}
  .m-hide{display:none!important}
  .m-bar{padding:10px 16px!important;flex-wrap:nowrap!important}
  .m-cta{padding:8px 14px!important;min-height:40px!important;font-size:.85rem!important}
  .m-hero{padding:48px 16px 56px!important;gap:24px!important}
  .m-hero > div{gap:18px!important}
  .m-h1{font-size:2.1rem!important;line-height:1.05!important}
  .m-hero a{padding:12px 18px!important;min-height:44px!important;font-size:.95rem!important}
  .m-marq{font-size:.95rem!important;gap:20px!important}
  .m-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:28px 16px!important;gap:20px 16px!important}
  .m-statnum{font-size:1.9rem!important}
  .m-stats > div > div:last-child{font-size:.85rem!important;line-height:1.35!important}
  .m-sec{padding:56px 16px!important}
  .m-stack{gap:56px!important;padding-top:16px!important}
  .m-h2{font-size:1.6rem!important;line-height:1.1!important}
  .m-p{font-size:1rem!important}
  .m-gap{gap:24px!important}
  .m-head{margin-bottom:28px!important;gap:12px!important}
  .m-mb{margin-bottom:28px!important}
  .m-cards{gap:12px!important}
  .m-card{padding:20px 18px!important;gap:8px!important}
  .m-card .ic{width:28px!important;height:28px!important}
  .m-h3{font-size:1.1rem!important}
  .m-card p{font-size:.9rem!important;line-height:1.5!important}
  .m-img{aspect-ratio:16/10!important}
  .m-two{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .m-gi{padding:16px 14px!important;gap:4px!important}
  .m-gi > div:first-child{font-size:.95rem!important;line-height:1.25!important}
  .m-gi > div:last-child{font-size:.8rem!important;line-height:1.4!important}
  .m-steps{gap:24px 16px!important}
  .m-steps li{gap:8px!important}
  .m-n{width:44px!important;height:44px!important;font-size:1rem!important}
  .m-steps h3{font-size:1.05rem!important}
  .m-steps p{font-size:.88rem!important;line-height:1.45!important}
  .m-form{padding:20px!important;gap:12px!important}
  .pw-page{padding:48px 16px 64px}
  .pw-page h1{font-size:1.8rem;margin-bottom:20px}
}

/* ===== Mobile Feinschliff (v1.4) ===== */
@media (max-width:640px){
  #pw h1,#pw h2,#pw h3,#pw .m-gi div{hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word;word-break:normal}
  #pw .btn,#pw .ghost{padding:11px 16px!important;min-height:44px!important;font-size:.9rem!important}
  #pw .m-cta{white-space:nowrap!important;padding:8px 12px!important;min-height:38px!important;font-size:.8rem!important;gap:6px!important}
  #pw .m-cta .arr{display:none!important}
  .m-bar{gap:10px!important}
  .m-band{padding:10px 0!important}
  .m-marq{font-size:.8rem!important;gap:16px!important;letter-spacing:.04em!important}
  .m-h1{font-size:1.9rem!important}
  .m-h2{font-size:1.45rem!important}
  .m-statnum{font-size:1.6rem!important}
  .m-gi{padding:14px 12px!important;min-width:0!important}
  .m-gi > div:first-child{font-size:.88rem!important}
  .m-gi > div:last-child{font-size:.78rem!important}
  .m-two > *{min-width:0}
  .m-hero > div{min-width:0}
}
@media (max-width:380px){
  .m-two{grid-template-columns:minmax(0,1fr)!important}
  .m-steps{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .m-h1{font-size:1.7rem!important}
}

@media (max-width:640px){#pw .m-logo{height:34px!important}}

/* ===== Mobile Header & Hero-Zeile (v1.6) ===== */
@media (max-width:640px){
  #pw .m-brand{gap:9px!important;min-width:0}
  #pw .m-logo{height:30px!important}
  #pw .m-sub{padding-left:9px!important;font-size:.58rem!important;letter-spacing:.12em!important;white-space:nowrap}
  #pw .m-kickrow{display:flex!important;gap:8px!important;max-width:100%;white-space:nowrap;letter-spacing:.06em!important;font-size:min(.8rem,2.75vw)!important}
  #pw .m-kickrow .dot{width:7px!important;height:7px!important;flex:none}
  #pw .m-kick{overflow:hidden;text-overflow:ellipsis;min-width:0}
}
@media (max-width:400px){
  #pw .m-bar{padding:10px 12px!important;gap:8px!important}
  #pw .m-logo{height:26px!important}
  #pw .m-sub{font-size:.5rem!important;letter-spacing:.1em!important;padding-left:8px!important}
  #pw .m-brand{gap:8px!important}
  #pw .m-cta{padding:7px 10px!important;font-size:.74rem!important;min-height:34px!important}
}

/* ===== Hauszeichnung auf dem Handy (v1.7) ===== */
@media (max-width:640px){
  #pw .m-herofig{width:100%;max-width:300px;margin:4px auto 0!important;justify-self:center}
  #pw .m-hero{padding-bottom:40px!important}
}
@media (max-width:400px){
  #pw .m-herofig{max-width:260px}
}

/* ===== Hero mobil: Buttons links, Haus rechts (v1.8) ===== */
@media (max-width:640px){
  #pw .m-hero{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)!important;gap:18px 14px!important;align-items:center!important}
  #pw .m-hero > div:first-child{display:contents!important}
  #pw .m-hero .m-kickrow,#pw .m-hero .m-h1,#pw .m-hero > div > p{grid-column:1 / -1}
  #pw .m-btns{grid-column:1;display:grid!important;grid-template-columns:minmax(0,1fr);grid-auto-rows:1fr;gap:10px!important;margin-top:4px!important}
  #pw .m-btns a{width:100%;justify-content:center;text-align:center;padding:9px 10px!important;min-height:42px!important;font-size:.8rem!important;line-height:1.25;box-sizing:border-box}
  #pw .m-btns .arr{display:none}
  #pw .m-herofig{grid-column:2;max-width:none!important;width:100%;margin:0!important;align-self:center}
  #pw .m-hero{padding-bottom:48px!important}
}

/* ===== Kein Auto-Zoom auf dem iPhone in Formularfeldern (v1.9) ===== */
#pw input,#pw select,#pw textarea{font-size:16px!important}

/* ===== Marke mit Plus + Zusatz (v2.0) ===== */
@media (max-width:640px){
  #pw .m-plus{width:32px!important;height:32px!important}
  #pw .m-plus svg{width:18px;height:18px}
  #pw .m-brand{gap:8px!important}
  #pw .m-b1{font-size:.95rem!important}
  #pw .m-b2{font-size:.55rem!important;letter-spacing:.14em!important}
  #pw .m-note{font-size:.6rem!important;padding-left:8px!important;max-width:96px!important;line-height:1.25!important}
}
@media (max-width:400px){
  #pw .m-plus{width:28px!important;height:28px!important}
  #pw .m-plus svg{width:16px;height:16px}
  #pw .m-b1{font-size:.85rem!important}
  #pw .m-b2{font-size:.5rem!important;letter-spacing:.1em!important}
  #pw .m-note{font-size:.54rem!important;max-width:84px!important;padding-left:7px!important}
  #pw .m-brand{gap:7px!important}
}
@media (max-width:345px){
  #pw .m-bar{padding:10px 10px!important;gap:6px!important}
  #pw .m-note{font-size:.5rem!important;max-width:92px!important;padding-left:6px!important}
  #pw .m-b2{letter-spacing:.06em!important}
  #pw .m-cta{padding:6px 8px!important;font-size:.68rem!important}
}

/* ===== Desktop: beide Hero-Buttons gleich breit (v2.3) ===== */
@media (min-width:641px){
  #pw .m-btns{display:inline-grid!important;grid-auto-flow:column;grid-auto-columns:1fr;align-self:flex-start}
  #pw .m-btns a{justify-content:center}
}
@media (min-width:641px){#pw .m-btns a{white-space:nowrap}}
@media (min-width:1024px) and (max-width:1239px){#pw .m-btns{grid-auto-flow:row}}
@media (min-width:641px){#pw .m-btns{grid-auto-rows:1fr}}

/* ===== Footer (v2.5) ===== */
@media (max-width:640px){
  #pw .f-wrap{padding:28px 16px 22px!important;gap:18px!important}
  #pw .f-plus{width:30px!important;height:30px!important}
  #pw .f-plus svg{width:17px;height:17px}
  #pw .f-brand{gap:9px!important}
  #pw .f-b2{font-size:.56rem!important;letter-spacing:.14em!important}
  #pw .f-note{font-size:.66rem!important;padding-left:9px!important;max-width:130px!important}
}

/* ===== Footer-Feinschliff (v2.6) ===== */
@media (max-width:640px){
  #pw .f-row{flex-wrap:nowrap!important;gap:12px!important}
  #pw .f-brand{flex:1 1 auto}
  #pw .f-links{flex:none;flex-direction:column;align-items:flex-start;gap:6px!important;font-size:.8rem}
}
@media (max-width:360px){
  #pw .f-note{max-width:100px!important;font-size:.6rem!important}
  #pw .f-links{font-size:.74rem}
}
@media (max-width:360px){#pw .f-copy{font-size:.68rem!important}}

/* ===== Footer: Copyright mittig (v2.7) ===== */
#pw .f-row > .f-brand{grid-column:1;grid-row:1;justify-self:start}
#pw .f-row > .f-links{grid-column:2;grid-row:1;justify-self:end}
#pw .f-row > .f-copy{grid-column:1 / -1;grid-row:2;border-top:1px solid #262B30;padding-top:18px;text-align:center}
@media (min-width:1100px){
  #pw .f-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important}
  #pw .f-row > .f-copy{grid-column:2;grid-row:1;border-top:0;padding-top:0}
  #pw .f-row > .f-links{grid-column:3}
}
@media (max-width:640px){
  #pw .f-wrap{padding:28px 16px 22px!important}
  #pw .f-row{gap:16px 12px!important}
  #pw .f-row > .f-copy{text-align:left;padding-top:14px}
}

/* ===== Footer mobil, robust für jede Breite (v2.9) ===== */
@media (max-width:640px){
  #pw .f-row{grid-template-columns:minmax(0,1fr) auto!important;gap:14px 14px!important}
  #pw .f-brand{gap:8px!important;min-width:0!important}
  #pw .f-plus{width:30px!important;height:30px!important}
  #pw .f-plus svg{width:16px;height:16px}
  #pw .f-b2{font-size:.54rem!important;letter-spacing:.12em!important}
  #pw .f-note{flex:1 1 auto;min-width:0!important;max-width:150px!important;font-size:min(.68rem,3vw)!important;line-height:1.3!important;padding-left:8px!important;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word}
  #pw .f-links{gap:8px!important;font-size:min(.8rem,3.4vw)!important}
  #pw .f-row > .f-copy{font-size:min(.76rem,2.85vw)!important;padding-top:12px!important}
}

/* ===== Footer-Marke mobil kleiner (v3.0) ===== */
@media (max-width:640px){
  #pw .f-brand{gap:7px!important}
  #pw .f-plus{width:24px!important;height:24px!important}
  #pw .f-plus svg{width:13px;height:13px}
  #pw .f-b2{font-size:.46rem!important;letter-spacing:.12em!important}
  #pw .f-note{font-size:min(.6rem,2.7vw)!important;max-width:128px!important;padding-left:7px!important;hyphens:manual!important;-webkit-hyphens:manual!important;overflow-wrap:normal!important}
}
@media (max-width:640px){#pw .f-row > .f-copy{text-align:center!important}}

/* ===== Abschnitte nicht unter dem fixierten Header verstecken (v3.3) ===== */
#pw section[id]{scroll-margin-top:72px}
@media (max-width:640px){#pw section[id]{scroll-margin-top:56px}}

/* ===== Kennzahlen mobil mittig (v3.4) ===== */
@media (max-width:640px){
  #pw .m-stats > div{align-items:center!important;text-align:center!important}
}
@media (max-width:640px){
  #pw .m-stats{column-gap:12px!important;padding-left:12px!important;padding-right:12px!important}
  #pw .m-stats > div > div:last-child{font-size:min(.85rem,3.35vw)!important;white-space:nowrap;line-height:1.35!important}
}
