/* ============================================================
   Malerbetrieb Konrad & Seidel – Globales Stylesheet
   Palette (aus dem XD-Screendesign gesampelt):
     Dunkelgrün  #1b453b  (Headings, Badge, Footer)
     Schiefer    #416372  (Service-Titel, Sub-Headings)
     Button      #44697a  (Solid-Buttons)
     Text        #2f3f3c
     Zitat       #627f79
     Cyan-Verlauf #a0fafd → #93d0e5 (Hero-Button), Text #2e7d6e
     Footer      #2e6e58 → #1d493b, Strip #182a23
   Headings: Poppins · Fließtext: Inter · Mobile-first
   ============================================================ */

:root{
  --green-dark:  #1b453b;
  --green-mid:   #2e6e58;
  --slate:       #416372;
  --slate-deep:  #304953;
  --btn-solid:   #44697a;
  --ink:         #2f3f3c;
  --muted:       #5d6f6c;
  --quote:       #627f79;
  --cyan-a:      #a0fafd;
  --cyan-b:      #93d0e5;
  --cyan-text:   #2e7d6e;
  --paper:       #ffffff;
  --mist:        #f2f6f5;
  --field:       #e9eaea;
  --hero-night:  #0a2237;

  --maxw: 1200px;
  --gutter: clamp(1.25rem, 5vw, 4rem);
  --radius: 8px;
  --shadow-sm: 0 4px 18px rgba(27,69,59,.08);
  --shadow-md: 0 18px 50px rgba(27,69,59,.14);
  --header-h: 88px;
  --ease: cubic-bezier(.22,.61,.36,1);
  --ff-head: 'Poppins', system-ui, sans-serif;
  --ff-body: 'Inter', system-ui, sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--ff-body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.7;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--slate);text-decoration:none;transition:color .2s var(--ease)}
a:hover{color:var(--green-dark)}

h1,h2,h3,h4{font-family:var(--ff-head);line-height:1.25;color:var(--green-dark);font-weight:600;margin:0 0 .5em}
p{margin:0 0 1.1em}

.sr-only,.skip-link{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link:focus{position:fixed;left:0;top:0;width:auto;height:auto;clip:auto;z-index:2000;background:var(--green-dark);color:#fff;padding:.7rem 1.1rem;border-radius:0 0 8px 0;font-weight:600}

:focus-visible{outline:3px solid var(--cyan-b);outline-offset:3px;border-radius:4px}

.container{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--ff-head);font-weight:600;font-size:1.02rem;
  padding:.9em 2.1em;border-radius:6px;cursor:pointer;border:0;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), filter .25s var(--ease);
  text-align:center;line-height:1.25;position:relative;overflow:hidden;
}
/* Glanz-Effekt beim Hover */
.btn::after{
  content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.45),transparent);
  transform:skewX(-20deg);transition:left .6s var(--ease);
}
.btn:hover::after{left:130%}

.btn-cyan{
  background:linear-gradient(95deg,var(--cyan-a),var(--cyan-b));
  color:var(--cyan-text);
  box-shadow:0 0 34px rgba(160,250,253,.35);
}
.btn-cyan:hover{transform:translateY(-2px);box-shadow:0 6px 44px rgba(160,250,253,.55);color:#1f6457}
.btn-slate{background:var(--btn-solid);color:#fff;box-shadow:var(--shadow-sm)}
.btn-slate:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);filter:brightness(1.06);color:#fff}
.btn-green{background:var(--green-dark);color:#fff;box-shadow:var(--shadow-sm)}
.btn-green:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);filter:brightness(1.12);color:#fff}

/* ============================================================
   HEADER – schwebt transparent über dem Hero (wie im Design)
   ============================================================ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:linear-gradient(180deg,rgba(43,62,80,.42),rgba(43,62,80,.28));
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  transition:background .35s var(--ease), box-shadow .35s var(--ease);
}
.header-inner{
  max-width:1320px;margin-inline:auto;padding:0 var(--gutter);
  height:var(--header-h);
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
}
.brand{display:block}
.brand-box{
  display:block;background:#fff;border-radius:6px;padding:9px 14px;
  box-shadow:0 4px 18px rgba(10,34,55,.18);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.brand:hover .brand-box{transform:translateY(-1px);box-shadow:0 8px 24px rgba(10,34,55,.24)}
.brand-logo{height:44px;width:auto}

.primary-nav ul{display:flex;align-items:center;gap:.5rem;list-style:none;margin:0;padding:0}
.primary-nav a{
  font-family:var(--ff-head);font-weight:500;font-size:1rem;color:#fff;
  padding:.5em .55em .4em;position:relative;
}
.primary-nav a::after{
  content:"";position:absolute;left:.55em;right:.55em;bottom:.1em;height:2px;
  background:currentColor;border-radius:2px;
  transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease);
}
.primary-nav a:hover{color:#fff}
.primary-nav a:hover::after,
.primary-nav a[aria-current="page"]::after{transform:scaleX(1)}
.primary-nav a[aria-current="page"]{font-weight:600;color:#fff}

/* Helles Header-Theme (Kontakt, Rechtsseiten) */
.header-theme-light .site-header{background:rgba(255,255,255,.85);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.header-theme-light .primary-nav a{color:var(--slate)}
.header-theme-light .primary-nav a:hover{color:var(--green-dark)}
.header-theme-light .primary-nav a[aria-current="page"]{color:var(--green-dark)}
.header-theme-light .brand-box{box-shadow:none;padding-left:0}
.header-theme-light .nav-toggle span{background:var(--slate)}

/* Scroll-Zustand */
.site-header.scrolled{background:rgba(27,49,62,.92);box-shadow:0 6px 30px rgba(10,34,55,.25)}
.header-theme-light .site-header.scrolled{background:rgba(255,255,255,.96);box-shadow:0 6px 26px rgba(27,69,59,.12)}

.nav-toggle{
  display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;
  padding:8px;z-index:130;
}
.nav-toggle span{width:26px;height:2px;background:#fff;border-radius:2px;transition:transform .3s var(--ease),opacity .3s var(--ease)}

/* ============================================================
   HERO – Startseite (Foto links, dunkler Verlauf rechts)
   ============================================================ */
.hero{
  position:relative;min-height:min(92vh,860px);display:flex;align-items:center;
  background:var(--hero-night);color:#fff;overflow:hidden;
  padding:calc(var(--header-h) + 2.5rem) 0 4rem;
}
.hero-bg{position:absolute;inset:0;overflow:hidden}
.hero-bg img{
  width:100%;height:100%;object-fit:cover;object-position:left center;
  animation:heroZoom 9s var(--ease) forwards;
}
@keyframes heroZoom{from{transform:scale(1.06)}to{transform:scale(1)}}
/* sanfter Verlauf, der das Foto rechts in Petrol-Nacht auslaufen lässt */
.hero-bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(10,34,55,0) 30%,rgba(10,34,55,.55) 62%,rgba(10,34,55,.92) 100%),
             linear-gradient(180deg,rgba(10,34,55,.18),rgba(10,34,55,0) 30%);
}
.hero .container{position:relative;z-index:2;width:100%;display:flex;justify-content:flex-end}
.hero-content{max-width:640px;width:100%}
@media(min-width:1000px){.hero-content{width:60%}}
.hero h1{
  color:#fff;font-size:clamp(1.85rem,3.3vw,3.1rem);font-weight:600;line-height:1.3;margin-bottom:.7em;
  text-shadow:0 2px 26px rgba(4,18,30,.45);
}
.hero p{font-size:clamp(.98rem,1.1vw,1.08rem);max-width:54ch;margin-bottom:1.2em;color:rgba(255,255,255,.94)}
.hero p.hero-cta-line{font-weight:700;color:#fff;margin-bottom:2em}
.hero .btn{font-size:1.18rem;padding:.85em 2.3em}

/* Scroll-Pfeil */
.scroll-cue{
  position:absolute;left:50%;bottom:1.6rem;transform:translateX(-50%);z-index:3;
  color:rgba(255,255,255,.85);display:inline-flex;padding:.5rem;
  animation:cueBounce 2.2s ease-in-out infinite;
}
.scroll-cue svg{width:30px;height:30px}
.scroll-cue:hover{color:#fff}
@keyframes cueBounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,9px)}}

/* ============================================================
   Sektionen / Typo-Hilfen
   ============================================================ */
.section{padding:clamp(3.8rem,8vw,6.5rem) 0}
.section-flat{padding:clamp(2.8rem,5vw,4rem) 0}

.h2{font-size:clamp(1.55rem,2.6vw,2.1rem);color:var(--green-dark)}
.center{text-align:center}

/* Intro (Startseite) */
.intro{padding-bottom:clamp(2.5rem,5vw,4rem)}
.intro h2{font-size:clamp(1.5rem,2.5vw,2.05rem);text-align:center;color:var(--green-dark);line-height:1.35}
.intro .intro-text{
  max-width:880px;margin:1.6rem auto 0;text-align:center;
  font-size:.94rem;line-height:1.9;color:var(--ink);
}

/* ============================================================
   Leistungen – Icon-Grid (kartenlos, wie im Design)
   ============================================================ */
.svc{display:flex;flex-direction:column;align-items:center;text-align:center;padding:1rem .6rem}
.svc-icon{
  width:84px;height:84px;display:grid;place-items:center;color:var(--slate);
  transition:transform .35s var(--ease), color .35s var(--ease);
}
.svc-icon svg{width:62px;height:62px}
.svc:hover .svc-icon{transform:translateY(-6px) scale(1.06);color:var(--green-mid)}
.svc h3{
  font-size:1.06rem;color:var(--slate);font-weight:700;line-height:1.3;
  margin:.6rem 0 .45rem;
}
.svc p{font-size:.8rem;line-height:1.55;color:var(--muted);margin:0;max-width:30ch}

/* Startseite: Split – Grid links, Pinselbild rechts */
.services-home{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff 0%,#fbfdfd 60%,#fff 100%)}
.services-split{display:grid;gap:2rem;align-items:center;grid-template-columns:1fr}
.services-grid{display:grid;gap:1.6rem 1rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:760px){.services-grid{grid-template-columns:repeat(3,1fr)}}
.services-more{text-align:center;margin-top:2.4rem}
.services-more .more-line{font-family:var(--ff-head);font-weight:700;font-size:1.15rem;color:var(--ink);margin-bottom:1.4rem}
.services-media{position:relative;min-height:300px;border-radius:0}
.services-media img{width:100%;height:100%;object-fit:cover}
@media(min-width:1000px){
  .services-split{grid-template-columns:1.45fr 1fr;gap:0}
  .services-home .container-wide{max-width:none;padding:0}
  .services-left{max-width:880px;margin-left:auto;padding:clamp(2rem,4vw,4rem) clamp(1.5rem,4vw,4rem)}
  .services-media{min-height:640px}
  .services-media img{position:absolute;inset:0}
}

/* Leistungen-Seite: 4-spaltiges Grid */
.services-grid-4{display:grid;gap:2.2rem 1.2rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:700px){.services-grid-4{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1000px){.services-grid-4{grid-template-columns:repeat(4,1fr)}}

/* Leistungs-Detailblöcke (abwechselnd zart grau/weiß) */
.svc-detail{padding:clamp(2.6rem,5vw,4rem) 0}
.svc-detail:nth-child(odd){background:linear-gradient(180deg,#f6f7f7 0%,#fdfdfd 100%)}
.svc-detail-inner{display:grid;gap:1.4rem;grid-template-columns:1fr;max-width:980px;margin-inline:auto}
@media(min-width:700px){.svc-detail-inner{grid-template-columns:96px 1fr;gap:2.4rem}}
.svc-detail .svc-icon{width:96px;height:96px;color:var(--slate)}
.svc-detail .svc-icon svg{width:72px;height:72px}
.svc-detail h2{font-size:1.35rem;color:var(--slate);margin-bottom:.6rem}
.svc-detail p{font-size:.95rem;line-height:1.85;margin:0;color:var(--ink)}

/* ============================================================
   Zitat + Pinselstrich-Badge
   ============================================================ */
.quote-section{padding:clamp(3.5rem,7vw,5.5rem) 0;background:linear-gradient(180deg,#fff,#fafcfb 70%,#fff)}
.quote-inner{max-width:880px;margin-inline:auto}
.quote-text{
  font-family:var(--ff-head);font-weight:700;font-style:italic;text-transform:uppercase;
  color:var(--quote);font-size:clamp(1.25rem,2.4vw,1.85rem);line-height:1.45;margin:0 0 1.6rem;
}
.quote-badge{
  display:inline-block;position:relative;color:#fff;isolation:isolate;
  font-family:var(--ff-head);font-weight:600;font-style:italic;font-size:clamp(1rem,1.6vw,1.25rem);
  padding:.55em 1.6em .6em 1.2em;
}
.quote-badge::before{
  content:"";position:absolute;inset:-8% -4%;background:var(--green-dark);z-index:-1;
  -webkit-mask:url('../img/brush-stroke.svg') center/100% 100% no-repeat;
          mask:url('../img/brush-stroke.svg') center/100% 100% no-repeat;
}

/* ============================================================
   Referenzen (Startseite + Unterseite) – Holztextur-Hintergrund
   ============================================================ */
.refs-section{position:relative;overflow:hidden}
.refs-bg{position:absolute;inset:0;pointer-events:none}
.refs-bg img{width:100%;height:100%;object-fit:cover;opacity:.5}
.refs-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#fff 3%,rgba(255,255,255,.72) 30%,rgba(255,255,255,.84) 75%,#fff 100%)}
.refs-content{position:relative;z-index:2;max-width:760px;padding:clamp(3rem,7vw,5.5rem) 0 clamp(2rem,4vw,3rem)}
.refs-content h2{font-size:clamp(1.55rem,2.6vw,2.1rem)}
.refs-content p{font-size:.94rem;line-height:1.85}
.refs-content .ref-bold{font-weight:700;color:var(--ink)}

/* Galerie-Streifen */
.gallery-strip{position:relative;z-index:2;display:grid;gap:10px;grid-template-columns:repeat(5,1fr);padding:0 10px 10px}
.gallery-strip figure{margin:0;overflow:hidden;position:relative;aspect-ratio:1/1;background:#dfe7e5}
.gallery-strip img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.gallery-strip figure:hover img{transform:scale(1.07)}
.gallery-strip figcaption{
  position:absolute;inset:auto 0 0 0;padding:1.6rem .9rem .7rem;color:#fff;font-size:.8rem;font-weight:500;
  background:linear-gradient(transparent,rgba(16,38,33,.78));
  opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease),transform .4s var(--ease);
}
.gallery-strip figure:hover figcaption{opacity:1;transform:none}
@media(max-width:820px){
  .gallery-strip{grid-template-columns:repeat(2,1fr)}
  .gallery-strip figure:last-child{grid-column:span 2;aspect-ratio:2/1}
  .gallery-strip figcaption{opacity:1;transform:none}
}

/* Referenzen-Unterseite Galerie */
.ref-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.ref-grid figure{margin:0;overflow:hidden;position:relative;aspect-ratio:4/3;border-radius:6px;background:#dfe7e5}
.ref-grid img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.ref-grid figure:hover img{transform:scale(1.06)}
.ref-grid figcaption{
  position:absolute;inset:auto 0 0 0;padding:1.6rem 1rem .8rem;color:#fff;font-size:.86rem;font-weight:500;
  background:linear-gradient(transparent,rgba(16,38,33,.8));
}

/* ============================================================
   Page-Hero (Unterseiten, z. B. Leistungen) – Bildstreifen
   ============================================================ */
.page-hero{
  position:relative;display:flex;align-items:center;color:#fff;overflow:hidden;
  background:var(--hero-night);
  min-height:clamp(360px,46vh,520px);
  padding:calc(var(--header-h) + 2rem) 0 3.4rem;
}
.page-hero .hero-bg img{object-position:left center;animation:heroZoom 8s var(--ease) forwards}
.page-hero .hero-bg::after{
  background:linear-gradient(90deg,rgba(10,40,58,.08) 18%,rgba(10,40,58,.62) 52%,rgba(8,32,48,.94) 100%);
}
.page-hero .container{position:relative;z-index:2;width:100%}
.page-hero-content{max-width:640px;margin-left:auto}
@media(min-width:900px){.page-hero-content{width:62%}}
.page-hero h1{color:#fff;font-size:clamp(1.9rem,3.4vw,2.9rem);margin-bottom:.45em}
.page-hero p{color:rgba(255,255,255,.94);font-size:.98rem;max-width:60ch;margin:0}
.page-hero .scroll-cue{bottom:1.1rem}

/* ============================================================
   Kontakt-Seite
   ============================================================ */
.contact-intro{position:relative;background:#fff;overflow:hidden;padding:calc(var(--header-h) + 2.5rem) 0 2.5rem}
.contact-intro-grid{display:grid;gap:2rem;align-items:center;grid-template-columns:1fr}
.contact-intro h1{color:var(--slate);font-size:clamp(2rem,3.6vw,2.9rem);margin-bottom:.5em}
.contact-intro p{max-width:56ch;font-size:.97rem;line-height:1.8;margin:0}
.contact-media{position:relative;min-height:240px}
.contact-media img{width:100%;height:100%;object-fit:cover;object-position:right center}
@media(min-width:920px){
  .contact-intro{padding-bottom:0}
  .contact-intro-grid{grid-template-columns:1.1fr 1fr;gap:0}
  .contact-intro .contact-copy{padding:2rem clamp(1rem,3vw,3rem) 4rem 0}
  .contact-media{min-height:420px;margin-right:calc(-1 * var(--gutter))}
}

/* Formular (Felder grau, Placeholder-Stil wie im Design) */
.contact-form-wrap{max-width:760px;margin-inline:auto;padding:clamp(2rem,5vw,4rem) 0 clamp(3rem,6vw,5rem)}
.field{margin-bottom:1.1rem}
.field input,.field textarea{
  width:100%;padding:1.05em 1.15em;border:1.5px solid transparent;border-radius:4px;
  font-family:var(--ff-body);font-size:.95rem;color:var(--ink);background:var(--field);
  transition:border-color .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease);
}
.field input::placeholder,.field textarea::placeholder{color:#8b9290}
.field input:focus,.field textarea:focus{
  outline:none;border-color:var(--slate);background:#fff;box-shadow:0 0 0 4px rgba(65,99,114,.12);
}
.field textarea{min-height:190px;resize:vertical}
.field-row{display:grid;gap:1.1rem;grid-template-columns:1fr}
@media(min-width:620px){
  .field-row{grid-template-columns:1fr 1fr}
  .field-row.row-3{grid-template-columns:1.2fr .6fr 1fr}
}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.84rem;color:var(--muted)}
.consent input{width:auto;margin-top:.25rem;flex:none;accent-color:var(--green-dark)}
.consent a{text-decoration:underline}
.form-note{font-size:.8rem;color:var(--muted);margin-top:.7rem}
.req{color:#b3473b}

.alert{padding:1rem 1.2rem;border-radius:6px;margin-bottom:1.4rem;font-size:.93rem;border:1px solid}
.alert-ok{background:#e9f6f0;border-color:#a9dcc6;color:#175c43}
.alert-err{background:#fdecea;border-color:#f0b6ae;color:#a03224}
.field.has-error input,.field.has-error textarea{border-color:#b3473b;background:#fbf1f0}
.error-msg{color:#a03224;font-size:.8rem;margin-top:.35rem;display:block}

/* ============================================================
   Kontakt-Band (rotes Zimmer, global)
   ============================================================ */
.contact-band{position:relative;overflow:hidden;background:#fff}
.contact-band img{width:100%;height:auto;display:block}
.band-link{position:absolute;display:block;transform:rotate(-8deg)}
.band-link-phone{left:30%;top:42%;width:50%;height:22%}
.band-link-mail{left:29%;top:62%;width:58%;height:20%}
.band-link:focus-visible{outline:3px solid #fff}

/* ============================================================
   Rechtstexte
   ============================================================ */
.legal-page{padding:calc(var(--header-h) + 3rem) 0 4rem}
.legal{max-width:820px;margin-inline:auto}
.legal h1{color:var(--slate);font-size:clamp(1.9rem,3.4vw,2.6rem)}
.legal h2{font-size:1.35rem;margin-top:2.4rem;color:var(--green-dark)}
.legal h3{font-size:1.08rem;margin-top:1.6rem;color:var(--slate)}
.legal p,.legal li{font-size:.95rem}
.legal ul{padding-left:1.2rem}
.legal a{text-decoration:underline}

/* ============================================================
   Über-uns-Bausteine
   ============================================================ */
.split{display:grid;gap:clamp(2rem,5vw,4rem);align-items:center;grid-template-columns:1fr}
@media(min-width:900px){.split{grid-template-columns:1fr 1fr}.split.reverse>*:first-child{order:2}}
.split-media img{border-radius:8px;box-shadow:var(--shadow-md);width:100%}
.eyebrow{
  font-family:var(--ff-head);font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  font-size:.74rem;color:var(--green-mid);margin-bottom:.9rem;display:inline-block;
}
.value-list{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;gap:1rem}
.value-list li{display:flex;gap:1rem;align-items:flex-start}
.value-list .check{
  flex:none;width:28px;height:28px;border-radius:50%;
  background:linear-gradient(120deg,var(--cyan-a),var(--cyan-b));color:var(--green-dark);
  display:grid;place-items:center;font-weight:700;font-size:.85rem;
}
.value-list h3{margin:0 0 .1rem;font-size:1.02rem;color:var(--slate)}
.value-list p{margin:0;color:var(--muted);font-size:.9rem}

/* ============================================================
   FOOTER (global, Verlauf wie im Design)
   ============================================================ */
.site-footer{
  color:rgba(255,255,255,.92);font-size:.9rem;
  background:linear-gradient(108deg,var(--green-mid) 0%,#235c4a 38%,var(--green-dark) 100%);
  position:relative;
}
.site-footer::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(620px 300px at 12% 0%,rgba(255,255,255,.07),transparent 70%);
}
.footer-main{max-width:var(--maxw);margin-inline:auto;padding:clamp(2.6rem,5vw,3.6rem) var(--gutter) 2.2rem;position:relative}
.footer-company{color:#fff;font-size:1.08rem;font-weight:600;margin:0 0 1.6rem}
.footer-cols{display:grid;gap:1.8rem;grid-template-columns:1fr}
@media(min-width:760px){.footer-cols{grid-template-columns:1.4fr 1fr 1fr}}
.footer-col p{margin:0 0 1rem;line-height:1.8}
.footer-col a{color:rgba(255,255,255,.92)}
.footer-col a:hover{color:#fff;text-decoration:underline}
.footer-mail a{font-weight:500}
.footer-links{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.footer-links a{font-weight:600;color:#fff;position:relative}
.footer-links a::after{
  content:"";position:absolute;left:0;bottom:-2px;height:1px;width:100%;background:currentColor;
  transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease);
}
.footer-links a:hover::after{transform:scaleX(1)}
.footer-strip{background:#182a23;position:relative}
.footer-strip p{
  max-width:var(--maxw);margin:0 auto;padding:1rem var(--gutter);
  color:rgba(255,255,255,.45);font-size:.78rem;
}

/* ============================================================
   Scroll-Reveal & Zeilen-Fade
   ============================================================ */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal-left{opacity:0;transform:translateX(-32px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal-right{opacity:0;transform:translateX(32px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal-scale{opacity:0;transform:scale(.94);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in,.reveal-left.in,.reveal-right.in,.reveal-scale.in{opacity:1;transform:none}
[data-delay="1"]{transition-delay:.08s}
[data-delay="2"]{transition-delay:.16s}
[data-delay="3"]{transition-delay:.24s}
[data-delay="4"]{transition-delay:.32s}
[data-delay="5"]{transition-delay:.4s}
[data-delay="6"]{transition-delay:.48s}

/* Zeilenweises Einblenden (Headlines) */
.lines .line{display:block;overflow:hidden}
.lines .line>span{display:inline-block;transform:translateY(110%);opacity:0;transition:transform .9s var(--ease),opacity .7s var(--ease)}
.lines.in .line>span{transform:none;opacity:1}
.lines .line:nth-child(2)>span{transition-delay:.12s}
.lines .line:nth-child(3)>span{transition-delay:.24s}
.lines .line:nth-child(4)>span{transition-delay:.36s}

/* Sanftes Aufsteigen beim Laden (Hero) */
.rise{opacity:0;transform:translateY(24px);animation:rise .9s var(--ease) forwards}
.rise-1{animation-delay:.15s}.rise-2{animation-delay:.35s}.rise-3{animation-delay:.55s}.rise-4{animation-delay:.75s}
@keyframes rise{to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal,.reveal-left,.reveal-right,.reveal-scale,.rise{opacity:1;transform:none}
  .lines .line>span{transform:none;opacity:1}
}

/* ============================================================
   Mobile-Navigation
   ============================================================ */
@media(max-width:880px){
  .nav-toggle{display:flex}
  .primary-nav{
    position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100vh;height:100dvh;
    background:linear-gradient(160deg,#16313e,var(--green-dark));
    display:flex;align-items:center;justify-content:center;
    transform:translateX(100%);transition:transform .45s var(--ease);z-index:120;
  }
  .primary-nav.open{transform:none}
  .primary-nav ul{flex-direction:column;gap:.6rem;text-align:center}
  .primary-nav a{color:#fff!important;font-size:1.4rem;padding:.5em 1em}
  body.nav-open{overflow:hidden}
  .nav-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle.active span:nth-child(2){opacity:0}
  .nav-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav-toggle.active span{background:#fff!important}
}

/* Helfer */
.mt-0{margin-top:0}
.btn-row{display:flex;flex-wrap:wrap;gap:1rem}
