/* Stil „Glanz-Licht“ (aus dem Entwurf): dunkles Pflegestudio über dem bestehenden Stil (style.css bleibt unverändert darunter).
   --glanz (0 … 1) setzt js/glanz.js nach dem Arbeitsschritt im Glanzmesser, --licht (Prozent) je Überschrift und Foto
   nach ihrer Lage im Fenster. Ohne Skript: ruhige dunkle Seite ohne Lichtbalken und ohne Prüflampe. */
@font-face{font-family:"DM Mono";src:url(/fonts/dm-mono-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"DM Mono";src:url(/fonts/dm-mono-500.woff2) format("woff2");font-weight:500;font-display:swap}

:root{--ink:#eceef0;--muted:#a3a6ad;--paper:#0b0c0e;--line:#2a2c31;--flaeche:#121317;--flaeche-2:#17181d;
  --mono:"DM Mono",ui-monospace,Menlo,monospace;--glanz:0;--gm-hoehe:60px;color-scheme:dark}
body{background:var(--paper);color:var(--ink)}
a:focus-visible,button:focus-visible,.contact-form input:focus-visible,.contact-form textarea:focus-visible,.vehicle-gallery:focus-visible{outline:3px solid #f2f3f5;outline-offset:4px}
.skip{background:#f2f3f5;color:#111}


/* Kopf und Leisten bleiben schwarz wie bisher, Kicker in Schreibmaschinenschrift */
.header{background:rgba(6,7,9,.9)}
.eyebrow{font-family:var(--mono);font-weight:500;letter-spacing:.16em}
.muted{color:var(--muted)}
.button-dark{background:#eceef0;color:#111214}
.nav-contact{background:#eceef0;color:#111214}

/* Abschnitte: Studio statt Weiß; oben je ein feines LED-Band, das mit dem Glanz heller wird */
.section{position:relative}
.section::before{content:"";position:absolute;left:max(6%,calc((100% - 1240px)/2));right:max(6%,calc((100% - 1240px)/2));top:0;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgb(255 255 255 / calc(.1 + .35 * var(--glanz))) 50%,transparent)}
.hero+.section::before{display:none}
.about h2 em,.contact h2 em{color:#8e9198}
.about-copy p:nth-child(2),.insta-body p,.contact>p:not(.eyebrow),.services-grid p,.contact-facts p,.contact-facts address{color:var(--muted)}
.services-grid article{border-top-color:var(--line)}
.instagram,.location{background:var(--flaeche)}
.vehicle-gallery figure{background:var(--flaeche-2)}
.vehicle-gallery figcaption{background:var(--flaeche-2);color:var(--ink)}
.gallery-pagination button span{background:#6d7077}
.gallery-pagination button[aria-current="true"] span{background:#eceef0}
.contact-form{background:var(--flaeche-2);border:1px solid var(--line)}
.contact-form input,.contact-form textarea{background:#0d0e11;border-color:#383a41;color:var(--ink)}
.contact-form ::placeholder{color:#8b8e95;opacity:1}
#form-status{color:var(--muted)}#form-status.ok{color:#7fd69a}#form-status.fehler{color:#ff9a8f}#form-status.hinweis{color:#f2f3f5}
.location-map{background:var(--flaeche-2)}
.map-consent .map-privacy{color:var(--muted)}
footer{background:#08090b;color:var(--muted)}
.footer-brand{color:var(--ink)}
.legal p,.legal li{color:#c9cbd0}
.legal-back{color:var(--muted)}

/* Glanzlicht: ein LED-Balken spiegelt sich in großen Überschriften und fährt beim Scrollen darüber.
   Matt am Anfang (breiter, schwacher Schein), mit jedem Schritt schärfer und heller */
.js .glanz-text{--grund:color-mix(in srgb,#e4e6e9 calc(var(--glanz) * 100%),#a2a6ad)}
.js .glanz-text em{--grund:color-mix(in srgb,#a3a7ae calc(var(--glanz) * 100%),#7f838b)}
.js .hero .glanz-text{--grund:#e6e8eb}
.js .hero .glanz-text em{--grund:#9ea3ab}
.js .glanz-text,.js .glanz-text em{--breite:calc(26% - 17% * var(--glanz));--spitze:color-mix(in srgb,#ffffff calc(55% + 45% * var(--glanz)),var(--grund));
  background-image:linear-gradient(100deg,var(--grund) 0%,var(--grund) calc(var(--licht,-40%) - var(--breite)),var(--spitze) var(--licht,-40%),var(--grund) calc(var(--licht,-40%) + var(--breite)),var(--grund) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent}

/* Glanzmesser: unten fest wie ein Messgerät, Marke läuft mit dem Scrollen. Nur im Abschnitt „Ablauf“ zu sehen (.da setzt js/glanz.js),
   sonst unten weggeschoben; am Handy steht außerhalb davon die Leiste „Autopflege anfragen“ an derselben Stelle. Ohne Skript: keine Leiste. */
.glanzmesser,.cta-leiste{position:fixed;left:0;right:0;bottom:0;z-index:12;display:flex;align-items:center;gap:22px;
  height:calc(var(--gm-hoehe) + env(safe-area-inset-bottom,0px));padding:0 max(6%,calc((100% - 1240px)/2)) env(safe-area-inset-bottom,0px);
  background:rgb(6 7 9 / .94);border-top:1px solid #2c2e34;color:var(--ink);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  transform:translateY(100%);visibility:hidden;transition:transform .35s ease,visibility 0s .35s}
.glanzmesser.da,.cta-leiste.da{transform:none;visibility:visible;transition:transform .35s ease}
.cta-leiste{display:none}
.gm-titel,.gm-wert{flex:none;font:500 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.gm-wert{min-width:64px;text-align:right}
.gm-lang{display:none}
@media(min-width:1280px){.gm-kurz{display:none}.gm-lang{display:inline}}
.gm-wert b{font-weight:500;font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:.04em}
.gm-skala{position:relative;flex:1;min-width:0;padding-top:4px}
.gm-spur{position:relative;height:9px;pointer-events:none;
  background:repeating-linear-gradient(90deg,rgb(255 255 255 / .3) 0 1px,transparent 1px 2.5%) 0 100%/100% 5px no-repeat,
    repeating-linear-gradient(90deg,#6d7077 0 1px,transparent 1px calc(100% / 6))}
.gm-spur::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:#3a3c42}
.gm-fuell{position:absolute;left:0;bottom:0;height:3px;width:var(--p,0%);background:linear-gradient(90deg,#4a4c52,#f4f5f7)}
.gm-marke{position:absolute;bottom:-3px;left:var(--p,0%);width:3px;height:15px;margin-left:-1px;background:#fff;box-shadow:0 0 10px 2px rgb(255 255 255 / calc(.25 + .5 * var(--glanz)))}
html:not(.js) .gm-fuell,html:not(.js) .gm-marke{display:none}
/* Tippfläche 44 px hoch: die Stufen reichen nach oben über die Skala */
.gm-stufen{position:relative;list-style:none;margin:-11px 0 0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.gm-nr{color:#6d7077;margin-right:2px}
.gm-stufen a[aria-current="step"] .gm-nr{color:#a3a6ad}
.gm-stufen a{display:block;padding:20px 2px 10px;text-align:center;font:500 12px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#8f939a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gm-stufen a:hover{color:var(--ink)}
.gm-stufen a[aria-current="step"]{color:#fff}
.gm-stufen a:focus-visible{outline-offset:0}

@media(max-width:700px){
  :root{--gm-hoehe:56px}
  .glanzmesser{gap:0;padding-inline:14px}
  .gm-titel,.gm-wert{display:none}
  /* am Handy: Nummern, nur die aktuelle Station ausgeschrieben */
  .gm-stufen{display:flex}
  .gm-stufen li{flex:1 1 0;min-width:0}
  .gm-stufen li.jetzt{flex-grow:2.4}
  .gm-stufen li:not(.jetzt) .gm-name{display:none}
  .gm-stufen a{font:500 12px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;letter-spacing:.02em;text-transform:none;padding-inline:0}
  .gm-nr{font-family:var(--mono);font-size:12px}
  .cta-leiste{display:flex;justify-content:center;padding-inline:14px}
  .cta-leiste .button{width:100%;max-width:420px;padding-block:10px}
}

/* Galerie: am Computer ein Mosaik (erstes Foto groß, alle quadratisch zugeschnitten, Name auf dem Foto); ein Klick zeigt das ganze Foto groß */
.foto-gross{display:block;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:zoom-in}
.foto-gross:focus-visible{outline-offset:-6px}
@media(min-width:701px){
  .vehicle-gallery figure{position:relative}
  .vehicle-gallery figure:first-child{grid-column:span 2;grid-row:span 2}
  .vehicle-gallery figure:first-child .foto-gross,.vehicle-gallery figure:first-child img{height:100%}
  .vehicle-gallery img{aspect-ratio:1;object-position:50% 58%}
  .vehicle-gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:48px 22px 18px;background:linear-gradient(transparent,rgb(0 0 0 / .72));color:#fff;pointer-events:none}
}
.lightbox{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;color:#fff;overflow:hidden;touch-action:pinch-zoom}
.lightbox[open]{display:grid;place-items:center}
.lightbox::backdrop{background:rgb(4 5 6 / .92)}
html:has(.lightbox[open]){overflow:hidden}
.lightbox figure{margin:0;display:grid;justify-items:center;gap:14px}
.lightbox img{display:block;width:auto;height:auto;max-width:min(92vw,1200px);max-height:calc(100dvh - 150px);border-radius:14px;background:var(--flaeche-2)}
.lightbox figcaption{font-size:17px;font-weight:600;letter-spacing:-.02em}
.lb-zahl{position:absolute;top:26px;left:24px;font:500 13px/1 var(--mono);letter-spacing:.12em;color:var(--muted)}
.lb-knopf{position:absolute;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid #3a3c42;border-radius:50%;background:rgb(18 19 23 / .82);color:#fff;cursor:pointer}
.lb-knopf:hover{background:#26282e}
.lb-knopf svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lb-zu{top:12px;right:12px}
.lb-vor,.lb-nach{top:calc(50% - 24px)}
.lb-vor{left:16px}
.lb-nach{right:16px}
@media(max-width:700px){
  .lightbox img{max-width:94vw;max-height:calc(100dvh - 200px)}
  .lb-vor,.lb-nach{top:auto;bottom:calc(18px + env(safe-area-inset-bottom,0px))}
  .lb-vor{left:calc(50% - 64px)}
  .lb-nach{right:calc(50% - 64px)}
}

/* Kontakt: was nach dem Absenden passiert */
.danach{max-width:760px;margin:44px auto 0;text-align:left}
.danach .eyebrow{margin:0 0 16px}
.danach ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.danach li{border-top:1px solid var(--line);padding-top:16px;font-size:16px;line-height:1.5;color:var(--muted)}
.danach li>span:first-child{display:block;margin-bottom:8px;font:500 12px/1 var(--mono);letter-spacing:.16em;color:var(--ink)}
@media(max-width:700px){.danach{margin-top:36px}.danach ol{grid-template-columns:1fr;gap:16px}}

/* Standort: eigenes Kartenbild (OpenStreetMap-Daten, lädt nichts von außen), links der Hinweis zur Google-Karte */
.location-map{display:block;position:relative;place-items:normal}
.map-consent{position:relative;height:100%;max-width:none;padding:0;text-align:left}
.karte-flaeche{position:absolute;inset:0;overflow:hidden}
.karte-bild{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:66% 50%}
.karte-flaeche::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgb(13 14 17 / .9) 0,rgb(13 14 17 / .72) 32%,rgb(13 14 17 / 0) 58%)}   /* Text links bleibt lesbar */
.karte-quelle{position:absolute;right:12px;bottom:8px;margin:0;font-size:12px;color:var(--muted);z-index:1}
.karte-quelle a{text-decoration:underline}
.karte-text{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;height:100%;max-width:calc(max(6%,(100% - 1240px)/2) + 440px);padding-left:max(6%,calc((100% - 1240px)/2))}
.karte-text .map-privacy{max-width:440px}
@media(max-width:900px){   /* schmal: Karte oben, Text darunter */
  .location-map{height:auto}
  .location-map iframe{height:460px}
  .karte-flaeche{position:relative;aspect-ratio:2/1}
  .karte-flaeche::after{display:none}
  .karte-text{height:auto;max-width:none;padding:26px 6% 6px}
}
@media(max-width:700px){.karte-flaeche{aspect-ratio:16/10}}

/* Formular: Leistungen zum Antippen (landen in der App bei der Anfrage und beim Termin) */
.wahl-leistungen{margin:0 0 22px;padding:0;border:0;min-width:0}
.wahl-leistungen legend{padding:0;margin-bottom:10px;font-weight:550}
.wahl-leistungen legend span{font-weight:400;color:var(--muted)}
.wahl-leistungen div{display:flex;flex-wrap:wrap;gap:8px}
.contact-form .wahl-leistungen label{position:relative;display:block;margin:0;font-weight:400}
.wahl-leistungen input{position:absolute;opacity:0;width:1px;height:1px}
.contact-form .wahl-leistungen label span{display:block;padding:10px 16px;border:1px solid #383a41;border-radius:999px;background:#0d0e11;color:var(--ink);line-height:1.4;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.contact-form .wahl-leistungen input:checked+span{background:#eceef0;border-color:#eceef0;color:#111214}
.contact-form .wahl-leistungen input:checked+span::before{content:"✓ "}
.wahl-leistungen input:focus-visible+span{outline:3px solid #f2f3f5;outline-offset:3px}
/* Hinweis über der Seite (z. B. Betriebsurlaub), setzt der Inhaber in der App; ohne Text nicht da */
.hinweis-leiste{margin:0;padding:12px 6%;background:#f2f3f5;color:#111214;text-align:center;font-size:15px;line-height:1.45;font-weight:500}
.hinweis-leiste b{font-weight:700}
