/* ==========================================================================
   Handwerksservice Reisinger — Premium Design System
   Petrol/Grün + Anthrazit · foto-getrieben · Fraunces + Inter
   ========================================================================== */

@font-face { font-family:'Fraunces'; font-style:normal; font-weight:400; font-display:swap; src:url('../fonts/fraunces-400-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Fraunces'; font-style:normal; font-weight:500; font-display:swap; src:url('../fonts/fraunces-500-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Fraunces'; font-style:normal; font-weight:600; font-display:swap; src:url('../fonts/fraunces-600-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Inter'; font-style:normal; font-weight:400; font-display:swap; src:url('../fonts/inter-400-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Inter'; font-style:normal; font-weight:500; font-display:swap; src:url('../fonts/inter-500-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Inter'; font-style:normal; font-weight:600; font-display:swap; src:url('../fonts/inter-600-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Inter'; font-style:normal; font-weight:700; font-display:swap; src:url('../fonts/inter-700-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

:root {
  /* Petrol/Grün + Anthrazit */
  --color-primary: #15514A;
  --color-primary-dark: #0E322E;
  --color-ink: #0A211E;
  --color-primary-light: #E7F0ED;
  --color-primary-soft: #D3E4DF;
  --color-accent: #1FA593;       /* Teal */
  --color-accent-dark: #16887A;
  --color-accent-light: #DBF0EC;
  --color-gold: #C6A15B;         /* dezenter Premium-Akzent */
  --color-bg: #E9EDE6;
  --color-surface: #FBFCF9;
  --color-text: #17231F;
  --color-text-muted: #58685F;
  --color-text-inverse: #E8F0ED;
  --color-border: #DCE3DC;

  --font-heading: 'Fraunces', Georgia, 'Times New Roman', serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --container-width: 1220px;
  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 26px;
  --shadow-sm: 0 2px 10px rgba(14,50,46,0.07);
  --shadow-md: 0 16px 40px rgba(14,50,46,0.12);
  --shadow-lg: 0 30px 70px rgba(10,33,30,0.22);
  --transition: 0.3s cubic-bezier(.2,.6,.2,1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family:var(--font-body); color:var(--color-text); background:var(--color-bg); line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; margin:0; padding:0; }

h1,h2,h3,h4 { font-family:var(--font-heading); font-weight:500; line-height:1.12; margin:0 0 .5em; color:var(--color-primary-dark); letter-spacing:-0.015em; }
h1 { font-size:clamp(2.6rem,6vw,4.6rem); }
h2 { font-size:clamp(2rem,4vw,3rem); }
h3 { font-size:1.4rem; font-weight:600; }
p { margin:0 0 1em; color:var(--color-text-muted); }

.eyebrow {
  display:inline-flex; align-items:center; gap:10px;
  font-size:0.76rem; font-weight:700; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--color-accent-dark); margin-bottom:1.1rem;
}
.eyebrow::before { content:""; width:26px; height:2px; background:var(--color-gold); display:inline-block; }
.eyebrow.center { justify-content:center; }

.container { max-width:var(--container-width); margin:0 auto; padding:0 28px; }
section { padding:118px 0; position:relative; }
.section-head { max-width:720px; margin:0 auto 64px; text-align:center; }
.section-head p { font-size:1.08rem; }

/* Dunkle Sektionen */
.dark { background:var(--color-primary-dark); color:var(--color-text-inverse); }
.dark h1,.dark h2,.dark h3,.dark h4 { color:#fff; }
.dark p { color:rgba(232,240,237,0.78); }
.dark .eyebrow { color:var(--color-accent); }

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:16px 32px; border-radius:100px; font-family:var(--font-body); font-weight:600; font-size:0.98rem; cursor:pointer; border:1.5px solid transparent; transition:transform var(--transition),box-shadow var(--transition),background var(--transition),color var(--transition); white-space:nowrap; }
.btn:active { transform:scale(0.97); }
.btn svg { flex-shrink:0; }
.btn-primary { background:var(--color-accent); color:#fff; box-shadow:0 12px 30px rgba(31,165,147,0.32); }
.btn-primary:hover { background:var(--color-accent-dark); transform:translateY(-2px); box-shadow:0 16px 36px rgba(31,165,147,0.4); }
.btn-outline { background:transparent; border-color:var(--color-primary); color:var(--color-primary); }
.btn-outline:hover { background:var(--color-primary); color:#fff; transform:translateY(-2px); }
.btn-light { background:#fff; color:var(--color-primary-dark); }
.btn-light:hover { transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn-ghost-light { background:rgba(255,255,255,0.10); border-color:rgba(255,255,255,0.45); color:#fff; backdrop-filter:blur(6px); }
.btn-ghost-light:hover { background:rgba(255,255,255,0.2); transform:translateY(-2px); }
.btn-block { width:100%; }
.btn-sm { padding:11px 22px; font-size:0.88rem; }
.btn[disabled] { opacity:.45; cursor:not-allowed; pointer-events:none; }

/* ==========================================================================
   Header / Nav  (transparent über Hero, wird beim Scrollen fest)
   ========================================================================== */
.site-header { position:fixed; top:0; left:0; right:0; z-index:500; transition:background var(--transition),box-shadow var(--transition),border-color var(--transition); border-bottom:1px solid transparent; }
.site-header.scrolled { background:rgba(233,237,230,0.92); backdrop-filter:blur(12px); border-bottom-color:var(--color-border); box-shadow:0 6px 24px rgba(14,50,46,0.06); }
.nav { display:flex; align-items:center; justify-content:space-between; padding:20px 28px; max-width:var(--container-width); margin:0 auto; }

.logo { display:flex; align-items:center; gap:13px; color:#fff; transition:color var(--transition); }
.logo .mark { width:46px; height:46px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.logo .mark svg { width:46px; height:46px; }
.logo-text { display:flex; flex-direction:column; line-height:1.02; }
.logo-text b { font-family:var(--font-heading); font-size:1.32rem; font-weight:600; letter-spacing:0.01em; }
.logo-text small { font-size:0.64rem; font-weight:700; letter-spacing:0.28em; text-transform:uppercase; opacity:0.82; }
.scrolled .logo { color:var(--color-primary-dark); }

.nav-links { display:flex; align-items:center; gap:36px; }
.nav-links a { font-weight:500; font-size:0.96rem; color:#fff; position:relative; padding:4px 0; opacity:0.92; transition:opacity var(--transition); }
.scrolled .nav-links a { color:var(--color-text); }
.nav-links a::after { content:""; position:absolute; left:0; bottom:-3px; width:0; height:2px; background:var(--color-accent); transition:width var(--transition); }
.nav-links a:hover::after { width:100%; }
.nav-links a:hover { opacity:1; }

.nav-actions { display:flex; align-items:center; gap:20px; }
.nav-phone { display:flex; align-items:center; gap:8px; font-weight:700; font-size:0.92rem; color:#fff; }
.scrolled .nav-phone { color:var(--color-primary); }
.nav-phone svg { width:18px; height:18px; }
.nav-toggle { display:none; background:none; border:none; cursor:pointer; width:42px; height:42px; align-items:center; justify-content:center; }
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after { content:""; display:block; width:24px; height:2px; background:#fff; position:relative; transition:transform var(--transition),opacity var(--transition); }
.scrolled .nav-toggle span, .scrolled .nav-toggle span::before, .scrolled .nav-toggle span::after { background:var(--color-primary-dark); }
.nav-toggle span::before { position:absolute; top:-7px; }
.nav-toggle span::after { position:absolute; top:7px; }
.nav-toggle.open span { background:transparent; }
.nav-toggle.open span::before { transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span::after { transform:translateY(-7px) rotate(-45deg); }

/* ==========================================================================
   Hero — Vollbild-Fotografie
   ========================================================================== */
.hero { position:relative; min-height:100vh; min-height:100svh; display:flex; align-items:center; overflow:hidden; padding:140px 0 90px; }
.hero-media { position:absolute; inset:0; z-index:0; }
.hero-media img { width:100%; height:100%; object-fit:cover; }
.hero-media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(10,33,30,0.92) 0%, rgba(10,33,30,0.78) 38%, rgba(10,33,30,0.42) 68%, rgba(10,33,30,0.25) 100%), linear-gradient(0deg, rgba(10,33,30,0.55), transparent 45%); }
.hero-inner { position:relative; z-index:2; max-width:720px; }
.hero .eyebrow { color:var(--color-accent); }
.hero h1 { color:#fff; margin-bottom:.35em; }
.hero h1 em { font-style:italic; color:var(--color-accent); }
.hero-sub { color:rgba(232,240,237,0.9); font-size:1.18rem; max-width:560px; margin-bottom:2.2em; }
.hero-cta-row { display:flex; gap:16px; flex-wrap:wrap; margin-bottom:2.6em; }
.hero-trust { display:flex; align-items:center; gap:14px 26px; flex-wrap:wrap; }
.hero-trust .chip { display:inline-flex; align-items:center; gap:9px; font-size:0.9rem; font-weight:600; color:rgba(232,240,237,0.92); }
.hero-trust .chip svg { width:19px; height:19px; color:var(--color-accent); flex-shrink:0; }
.hero-scroll { position:absolute; bottom:30px; left:50%; transform:translateX(-50%); z-index:2; color:rgba(255,255,255,0.6); display:flex; flex-direction:column; align-items:center; gap:8px; font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase; }
.hero-scroll .mouse { width:24px; height:38px; border:2px solid rgba(255,255,255,0.5); border-radius:14px; position:relative; }
.hero-scroll .mouse::before { content:""; position:absolute; top:7px; left:50%; transform:translateX(-50%); width:3px; height:7px; border-radius:2px; background:#fff; animation:scrolldot 1.8s infinite; }
@keyframes scrolldot { 0%{opacity:0;transform:translate(-50%,0)} 40%{opacity:1} 80%{opacity:0;transform:translate(-50%,10px)} 100%{opacity:0} }

/* Floating stat strip unter Hero */
.hero-stats { position:relative; z-index:3; margin-top:-56px; }
.hero-stats-inner { background:var(--color-surface); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); display:grid; grid-template-columns:repeat(4,1fr); overflow:hidden; }
.hero-stat { padding:30px 28px; display:flex; align-items:center; gap:16px; border-right:1px solid var(--color-border); }
.hero-stat:last-child { border-right:none; }
.hero-stat .ic { width:46px; height:46px; border-radius:12px; background:var(--color-primary-light); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.hero-stat .ic svg { width:23px; height:23px; color:var(--color-primary); }
.hero-stat strong { display:block; font-family:var(--font-heading); font-size:1.15rem; color:var(--color-primary-dark); line-height:1.15; }
.hero-stat span { font-size:0.82rem; color:var(--color-text-muted); }

/* ==========================================================================
   Services — Foto-Karten
   ========================================================================== */
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.service-card { position:relative; border-radius:var(--radius-md); overflow:hidden; background:var(--color-ink); box-shadow:var(--shadow-sm); min-height:400px; display:flex; align-items:flex-end; transition:transform var(--transition),box-shadow var(--transition); }
.service-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.service-card-img { position:absolute; inset:0; z-index:0; }
.service-card-img img { width:100%; height:100%; object-fit:cover; transition:transform 0.7s cubic-bezier(.2,.6,.2,1); }
.service-card:hover .service-card-img img { transform:scale(1.07); }
.service-card-img::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,33,30,0.94) 6%, rgba(10,33,30,0.6) 40%, rgba(10,33,30,0.12) 78%); }
.service-card-body { position:relative; z-index:1; padding:30px; color:#fff; width:100%; }
.service-icon-badge { width:52px; height:52px; border-radius:14px; background:rgba(31,165,147,0.9); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; margin-bottom:18px; transition:background var(--transition); }
.service-icon-badge svg { width:26px; height:26px; color:#fff; }
.service-card h3 { color:#fff; margin-bottom:.35em; }
.service-card p { color:rgba(255,255,255,0.82); font-size:0.94rem; margin-bottom:0; max-height:0; opacity:0; overflow:hidden; transition:max-height var(--transition),opacity var(--transition),margin var(--transition); }
.service-card:hover p { max-height:120px; opacity:1; margin-bottom:14px; }
.service-link { display:inline-flex; align-items:center; gap:7px; font-weight:700; font-size:0.86rem; color:#fff; letter-spacing:0.02em; }
.service-link svg { width:15px; height:15px; color:var(--color-accent); transition:transform var(--transition); }
.service-card:hover .service-link svg { transform:translateX(5px); }
.services-cta { text-align:center; margin-top:52px; }

/* ==========================================================================
   Split feature (Text + Bild)
   ========================================================================== */
.split { display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:stretch; }
.split.container { padding:0; }
.split-media { position:relative; min-height:520px; overflow:hidden; }
.split-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.split-body { padding:96px clamp(28px,6vw,88px); display:flex; flex-direction:column; justify-content:center; }
.split-body.on-dark { background:var(--color-primary-dark); color:var(--color-text-inverse); }

.feature-list { display:flex; flex-direction:column; gap:18px; margin:28px 0 0; }
.feature-list li { display:flex; gap:15px; align-items:flex-start; }
.feature-list li .fi { width:38px; height:38px; border-radius:11px; flex-shrink:0; background:var(--color-accent-light); display:flex; align-items:center; justify-content:center; }
.dark .feature-list li .fi, .on-dark .feature-list li .fi { background:rgba(31,165,147,0.16); }
.feature-list li .fi svg { width:19px; height:19px; color:var(--color-accent-dark); }
.dark .feature-list li .fi svg, .on-dark .feature-list li .fi svg { color:var(--color-accent); }
.feature-list li h4 { margin:0 0 .15em; font-family:var(--font-body); font-size:1.02rem; font-weight:700; color:var(--color-primary-dark); }
.dark .feature-list li h4, .on-dark .feature-list li h4 { color:#fff; }
.feature-list li p { margin:0; font-size:0.92rem; }

/* ==========================================================================
   Vorher / Nachher Slider
   ========================================================================== */
.ba { position:relative; width:100%; aspect-ratio:16/10; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); user-select:none; touch-action:pan-y; }
.ba img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none; }
.ba img.ba-after { clip-path:inset(0 var(--clip,50%) 0 0); }
.ba-tag { position:absolute; top:16px; z-index:3; background:rgba(10,33,30,0.72); color:#fff; font-size:0.72rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; padding:6px 13px; border-radius:100px; backdrop-filter:blur(4px); }
.ba-tag.before { right:16px; }
.ba-tag.after { left:16px; }
.ba-line { position:absolute; top:0; bottom:0; left:50%; width:3px; background:#fff; transform:translateX(-50%); z-index:4; box-shadow:0 0 12px rgba(0,0,0,0.35); pointer-events:none; }
.ba-knob { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:5; width:48px; height:48px; border-radius:50%; background:#fff; box-shadow:var(--shadow-md); display:flex; align-items:center; justify-content:center; color:var(--color-primary); pointer-events:none; }
.ba-knob svg { width:22px; height:22px; }
.ba-range { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:ew-resize; z-index:6; }

/* ==========================================================================
   Galerie + Lightbox
   ========================================================================== */
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:16px; }
.gallery-item { position:relative; overflow:hidden; border-radius:var(--radius-md); cursor:pointer; background:var(--color-ink); }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform 0.7s cubic-bezier(.2,.6,.2,1); }
.gallery-item:hover img { transform:scale(1.08); }
.gallery-item::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,33,30,0.5), transparent 55%); opacity:0; transition:opacity var(--transition); }
.gallery-item:hover::after { opacity:1; }
.gallery-item .g-cap { position:absolute; left:0; right:0; bottom:0; z-index:2; padding:18px; color:#fff; font-weight:600; font-size:0.9rem; transform:translateY(8px); opacity:0; transition:transform var(--transition),opacity var(--transition); }
.gallery-item:hover .g-cap { transform:translateY(0); opacity:1; }
.gallery-item .g-zoom { position:absolute; top:14px; right:14px; z-index:2; width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,0.9); display:flex; align-items:center; justify-content:center; opacity:0; transform:scale(.8); transition:opacity var(--transition),transform var(--transition); }
.gallery-item:hover .g-zoom { opacity:1; transform:scale(1); }
.gallery-item .g-zoom svg { width:17px; height:17px; color:var(--color-primary-dark); }
.g-tall { grid-row:span 2; }
.g-wide { grid-column:span 2; }

.lightbox { position:fixed; inset:0; z-index:900; background:rgba(10,33,30,0.94); backdrop-filter:blur(8px); display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity var(--transition),visibility var(--transition); }
.lightbox.open { opacity:1; visibility:visible; }
.lightbox img { max-width:88vw; max-height:82vh; border-radius:var(--radius-md); box-shadow:var(--shadow-lg); }
.lb-cap { position:absolute; bottom:26px; left:0; right:0; text-align:center; color:rgba(255,255,255,0.85); font-size:0.92rem; }
.lb-btn { position:absolute; background:rgba(255,255,255,0.12); border:none; color:#fff; width:52px; height:52px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background var(--transition); }
.lb-btn:hover { background:rgba(255,255,255,0.24); }
.lb-btn svg { width:24px; height:24px; }
.lb-close { top:24px; right:24px; }
.lb-prev { left:24px; top:50%; transform:translateY(-50%); }
.lb-next { right:24px; top:50%; transform:translateY(-50%); }

/* ==========================================================================
   Steps
   ========================================================================== */
.steps-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; counter-reset:step; }
.step-card { position:relative; padding:40px 30px 34px; border-radius:var(--radius-md); background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.12); }
.step-card .step-num { font-family:var(--font-heading); font-size:2.6rem; color:var(--color-accent); line-height:1; margin-bottom:16px; display:block; }
.step-card h3 { color:#fff; font-size:1.2rem; margin-bottom:.4em; }
.step-card p { margin:0; font-size:0.94rem; }
.steps-cta { text-align:center; margin-top:56px; }
.steps-note { display:block; margin-top:14px; font-size:0.85rem; color:rgba(232,240,237,0.6); }

/* ==========================================================================
   Trust bar (Logos/Claims)
   ========================================================================== */
.trust-bar { background:var(--color-ink); padding:26px 0; }
.trust-bar .container { display:flex; flex-wrap:wrap; gap:20px 46px; align-items:center; justify-content:center; }
.trust-bar-item { display:flex; align-items:center; gap:11px; color:var(--color-text-inverse); font-size:0.88rem; font-weight:600; opacity:0.9; }
.trust-bar-item svg { width:21px; height:21px; flex-shrink:0; color:var(--color-gold); }

/* ==========================================================================
   About / Inhaber
   ========================================================================== */
.about-quote { font-family:var(--font-heading); font-size:clamp(1.4rem,2.4vw,1.9rem); font-weight:500; font-style:italic; color:var(--color-primary-dark); line-height:1.4; margin:0 0 .8em; }
.about-facts { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.about-fact { display:inline-flex; align-items:center; gap:9px; background:var(--color-primary-light); color:var(--color-primary-dark); font-size:0.86rem; font-weight:600; padding:10px 17px; border-radius:100px; }
.about-fact svg { width:16px; height:16px; color:var(--color-accent-dark); }
.signature { font-family:var(--font-heading); font-size:1.55rem; color:var(--color-primary-dark); margin-top:18px; }

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq-list { max-width:800px; margin:0 auto; display:flex; flex-direction:column; gap:14px; }
.faq-item { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-sm); overflow:hidden; transition:box-shadow var(--transition); }
.faq-item.open { box-shadow:var(--shadow-sm); }
.faq-question { width:100%; display:flex; align-items:center; justify-content:space-between; padding:22px 26px; background:none; border:none; cursor:pointer; font-family:var(--font-body); font-weight:600; font-size:1.02rem; color:var(--color-primary-dark); text-align:left; }
.faq-question .plus { width:22px; height:22px; flex-shrink:0; position:relative; margin-left:16px; }
.faq-question .plus::before,.faq-question .plus::after { content:""; position:absolute; background:var(--color-accent); border-radius:2px; }
.faq-question .plus::before { width:100%; height:2px; top:50%; left:0; transform:translateY(-50%); }
.faq-question .plus::after { width:2px; height:100%; left:50%; top:0; transform:translateX(-50%); transition:transform var(--transition); }
.faq-item.open .plus::after { transform:translateX(-50%) rotate(90deg); }
.faq-answer { max-height:0; overflow:hidden; transition:max-height var(--transition),padding var(--transition); padding:0 26px; }
.faq-item.open .faq-answer { max-height:320px; padding:0 26px 24px; }
.faq-answer p { margin:0; font-size:0.96rem; }

/* ==========================================================================
   CTA (Vollbild-Foto)
   ========================================================================== */
.cta-band { position:relative; overflow:hidden; padding:130px 0; text-align:center; }
.cta-band-media { position:absolute; inset:0; z-index:0; }
.cta-band-media img { width:100%; height:100%; object-fit:cover; }
.cta-band-media::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,33,30,0.9), rgba(10,33,30,0.78)); }
.cta-band .container { position:relative; z-index:2; }
.cta-band h2 { color:#fff; margin-bottom:.3em; }
.cta-band p { color:rgba(232,240,237,0.9); max-width:560px; margin:0 auto 2em; font-size:1.1rem; }
.cta-badge { display:inline-flex; align-items:center; gap:9px; background:rgba(31,165,147,0.18); border:1px solid rgba(31,165,147,0.4); color:var(--color-accent); padding:9px 18px; border-radius:100px; font-size:0.82rem; font-weight:700; margin-bottom:24px; }
.cta-badge svg { width:16px; height:16px; }

/* ==========================================================================
   Kontakt / Standort
   ========================================================================== */
.location-grid { display:grid; grid-template-columns:1fr 1.05fr; gap:60px; align-items:center; }
.location-list { display:flex; flex-direction:column; gap:20px; margin-top:28px; }
.location-item { display:flex; gap:16px; align-items:flex-start; }
.location-item .icon { width:44px; height:44px; border-radius:12px; flex-shrink:0; background:var(--color-primary-light); display:flex; align-items:center; justify-content:center; }
.location-item .icon svg { width:20px; height:20px; color:var(--color-primary); }
.location-item strong { display:block; font-size:1rem; color:var(--color-primary-dark); }
.location-item span,.location-item a { font-size:0.94rem; color:var(--color-text-muted); }
.location-item a:hover { color:var(--color-accent-dark); }
.map-visual { border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--color-border); box-shadow:var(--shadow-md); }
.map-visual svg { display:block; width:100%; height:auto; }
.map-pin-pulse { transform-box:fill-box; transform-origin:center; animation:mapPulse 2.2s ease-out infinite; }
@keyframes mapPulse { 0%{transform:scale(.4);opacity:.55} 70%{transform:scale(1.6);opacity:0} 100%{transform:scale(1.6);opacity:0} }
@media (prefers-reduced-motion:reduce){ .map-pin-pulse{animation:none;opacity:0} .hero-scroll .mouse::before{animation:none} }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background:var(--color-ink); color:rgba(232,240,237,0.72); padding:80px 0 30px; }
.footer-grid { display:grid; grid-template-columns:1.6fr 1fr 1.2fr; gap:48px; margin-bottom:52px; }
.footer-brand .logo { color:#fff; margin-bottom:16px; }
.footer-brand p { font-size:0.92rem; max-width:340px; }
.footer-col h4 { color:#fff; font-family:var(--font-body); font-size:0.9rem; letter-spacing:0.03em; margin-bottom:20px; }
.footer-col ul { display:flex; flex-direction:column; gap:12px; }
.footer-col a,.footer-col address { font-size:0.92rem; font-style:normal; }
.footer-col a:hover { color:#fff; }
.footer-col address p { margin:0 0 8px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.1); padding-top:26px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; font-size:0.82rem; }
.footer-bottom-links { display:flex; gap:22px; }

/* ==========================================================================
   FAB
   ========================================================================== */
.fab-group { position:fixed; bottom:26px; right:26px; z-index:600; display:flex; flex-direction:column; gap:12px; align-items:flex-end; }
.fab { width:58px; height:58px; border-radius:50%; background:var(--color-accent); color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-md); transition:transform var(--transition); }
.fab:hover { transform:scale(1.08); }
.fab svg { width:24px; height:24px; }
.fab.fab-secondary { background:var(--color-primary); width:48px; height:48px; }
.fab.fab-secondary svg { width:20px; height:20px; }

/* ==========================================================================
   Page hero (Unterseiten) + Leistungs-Detail + Formular + Legal
   ========================================================================== */
.page-hero { position:relative; padding:170px 0 84px; text-align:center; overflow:hidden; background:var(--color-primary-dark); }
.page-hero-media { position:absolute; inset:0; z-index:0; opacity:0.32; }
.page-hero-media img { width:100%; height:100%; object-fit:cover; }
.page-hero::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(0deg, var(--color-primary-dark), rgba(14,50,46,0.6)); }
.page-hero .container { position:relative; z-index:2; }
.page-hero .eyebrow { color:var(--color-accent); justify-content:center; }
.page-hero h1 { color:#fff; }
.page-hero p { color:rgba(232,240,237,0.85); }
.breadcrumb { font-size:0.85rem; color:rgba(232,240,237,0.6); margin-bottom:18px; }
.breadcrumb a:hover { color:#fff; }

.service-detail { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; padding:72px 0; border-bottom:1px solid var(--color-border); }
.service-detail:last-of-type { border-bottom:none; }
.service-detail.reverse { direction:rtl; }
.service-detail.reverse>* { direction:ltr; }
.service-detail-visual { aspect-ratio:4/3; border-radius:var(--radius-lg); position:relative; overflow:hidden; box-shadow:var(--shadow-md); }
.service-detail-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 0.8s ease; }
.service-detail:hover .service-detail-visual img { transform:scale(1.05); }
.service-detail-icon-badge { position:absolute; bottom:20px; left:20px; width:54px; height:54px; border-radius:14px; background:var(--color-accent); display:flex; align-items:center; justify-content:center; z-index:2; box-shadow:var(--shadow-sm); }
.service-detail-icon-badge svg { width:27px; height:27px; color:#fff; }
.offer-tag { display:inline-flex; align-items:center; gap:9px; background:var(--color-primary-light); padding:11px 19px; border-radius:100px; margin-bottom:22px; font-weight:600; font-size:0.9rem; color:var(--color-primary-dark); }
.offer-tag svg { width:18px; height:18px; color:var(--color-accent-dark); }

.form-shell { padding:70px 0 110px; }
.form-layout { display:grid; grid-template-columns:1fr 1.15fr; gap:52px; align-items:start; max-width:1060px; margin:0 auto; }
.form-aside { position:sticky; top:110px; }
.contact-list { display:flex; flex-direction:column; gap:18px; margin-top:28px; }
.contact-item { display:flex; gap:15px; align-items:flex-start; }
.contact-item .icon { width:44px; height:44px; border-radius:12px; flex-shrink:0; background:var(--color-primary-light); display:flex; align-items:center; justify-content:center; }
.contact-item .icon svg { width:20px; height:20px; color:var(--color-primary); }
.contact-item strong { display:block; font-size:0.96rem; color:var(--color-primary-dark); }
.contact-item span,.contact-item a { font-size:0.92rem; color:var(--color-text-muted); }
.contact-item a:hover { color:var(--color-accent-dark); }
.form-card { background:var(--color-surface); border-radius:var(--radius-lg); box-shadow:var(--shadow-md); padding:42px; border:1px solid var(--color-border); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-grid .full { grid-column:1/-1; }
.field label { display:block; font-size:0.85rem; font-weight:700; color:var(--color-primary-dark); margin-bottom:8px; }
.field .req { color:var(--color-accent-dark); }
.field input,.field select,.field textarea { width:100%; padding:14px 16px; border-radius:var(--radius-sm); border:1.5px solid var(--color-border); font-family:var(--font-body); font-size:0.95rem; background:var(--color-surface); color:var(--color-text); transition:border-color var(--transition); }
.field input:focus,.field select:focus,.field textarea:focus { outline:none; border-color:var(--color-accent); }
.field textarea { resize:vertical; min-height:120px; }
.field-error { color:var(--color-accent-dark); font-size:0.78rem; margin-top:6px; display:none; }
.field.invalid input,.field.invalid select,.field.invalid textarea { border-color:#d1584a; }
.field.invalid .field-error { display:block; }
.consent-row { display:flex; align-items:flex-start; gap:10px; margin:8px 0 4px; font-size:0.85rem; color:var(--color-text-muted); }
.consent-row input { margin-top:3px; flex-shrink:0; }
.form-actions { margin-top:24px; }
.form-success { display:none; text-align:center; padding:20px 0; }
.form-success.show { display:block; animation:fadeSlide .4s ease; }
.form-success .check-circle { width:86px; height:86px; border-radius:50%; background:var(--color-accent-light); display:flex; align-items:center; justify-content:center; margin:0 auto 24px; }
.form-success .check-circle svg { width:40px; height:40px; color:var(--color-accent-dark); }
.demo-note { max-width:1060px; margin:32px auto 0; background:#fbf6ea; border:1px solid #ecdcb2; color:#7a5e0f; border-radius:var(--radius-sm); padding:15px 20px; font-size:0.82rem; display:flex; gap:10px; align-items:flex-start; }
.demo-note svg { width:18px; height:18px; flex-shrink:0; margin-top:1px; color:#b8901f; }

.legal-content { max-width:780px; margin:0 auto; padding:64px 0 110px; }
.legal-content h2 { margin-top:1.7em; }
.legal-content p,.legal-content li { color:var(--color-text-muted); font-size:0.95rem; }
.legal-content ul { list-style:disc; padding-left:1.3em; margin:0 0 1em; }
.legal-note { background:var(--color-primary-light); border:1px solid var(--color-primary-soft); border-radius:var(--radius-sm); padding:17px 20px; font-size:0.9rem; color:var(--color-primary-dark); }

/* ==========================================================================
   Reveal / Parallax
   ========================================================================== */
.js-ready .reveal { opacity:0; transform:translateY(30px); transition:opacity .8s cubic-bezier(.2,.6,.2,1),transform .8s cubic-bezier(.2,.6,.2,1); }
.js-ready .reveal.in-view { opacity:1; transform:translateY(0); }
.reveal.d1 { transition-delay:.08s; } .reveal.d2 { transition-delay:.16s; } .reveal.d3 { transition-delay:.24s; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width:1000px){
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .split { grid-template-columns:1fr; }
  .split-media { min-height:340px; order:-1; }
  .split-body { padding:64px 32px; }
  .location-grid { grid-template-columns:1fr; gap:44px; }
  .form-layout { grid-template-columns:1fr; gap:34px; } .form-aside { position:static; }
  .service-detail { grid-template-columns:1fr; gap:36px; } .service-detail.reverse { direction:ltr; } .service-detail-visual { order:-1; }
  .hero-stats-inner { grid-template-columns:repeat(2,1fr); } .hero-stat:nth-child(2){border-right:none;} .hero-stat:nth-child(1),.hero-stat:nth-child(2){border-bottom:1px solid var(--color-border);}
  .gallery-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:720px){
  section { padding:80px 0; }
  .nav-links { display:none; }
  .nav-links.mobile-open { display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0; background:var(--color-surface); padding:22px 26px 30px; border-bottom:1px solid var(--color-border); box-shadow:var(--shadow-md); gap:20px; }
  .nav-links.mobile-open a { color:var(--color-text) !important; }
  .nav-toggle { display:flex; }
  .nav-phone { display:none; }
  .services-grid { grid-template-columns:1fr; }
  .service-card p { max-height:120px; opacity:1; margin-bottom:14px; }
  .footer-grid { grid-template-columns:1fr; gap:34px; }
  .form-grid { grid-template-columns:1fr; } .form-card { padding:28px 20px; }
  .cta-band { padding:90px 0; }
  .hero-stats { margin-top:-32px; }
  .gallery-grid { grid-template-columns:1fr; grid-auto-rows:220px; } .g-wide,.g-tall { grid-column:auto; grid-row:auto; }
  .logo-text small { display:none; }
  .lb-prev { left:12px; } .lb-next { right:12px; }
}
@media (max-width:440px){
  .hero-stats-inner { grid-template-columns:1fr; } .hero-stat { border-right:none; border-bottom:1px solid var(--color-border); } .hero-stat:last-child { border-bottom:none; }
  .nav-actions .btn { display:none; }
}

/* ==========================================================================
   Hintergrund-Feinschliff — mehr Ruhe & Tiefe statt großer weißer Flächen
   (dezent, bodenständig — kein Hochglanz)
   ========================================================================== */
:root { --color-bg-alt: #E3E8E1; }   /* etwas tieferer Salbei-Ton für Wechsel */

/* Große helle Sektionen: sanfter Verlauf statt flacher Fläche */
#leistungen { background: linear-gradient(180deg, var(--color-bg) 0%, var(--color-bg-alt) 100%); }
#kontakt    { background: var(--color-bg-alt); border-top:1px solid rgba(20,60,54,0.06); }

/* Weiche Abgrenzung zwischen hellen Blöcken */
#leistungen { border-top:1px solid rgba(20,60,54,0.045); }
section[style*="surface"] { border-top:1px solid var(--color-border); }

/* Unterseiten: Formular & Rechtstexte bekommen denselben ruhigen Grund */
.form-shell, .legal-content { background: linear-gradient(180deg, var(--color-bg) 0%, var(--color-bg-alt) 100%); }

/* Karten heben sich jetzt weich vom getönten Grund ab */
.faq-item, .form-card { border-color: var(--color-border); }
