/* Behutsame Modernisierung. Gemeinsame Basis bleibt in style.css. */
:root { --ease: cubic-bezier(.2,.65,.3,1); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }

/* Klarere Details und etwas mehr Tiefe. */
.site-header { transition:box-shadow .25s ease; }
.header-inner { transition:min-height .3s var(--ease); }
.site-header.is-scrolled { box-shadow:0 5px 22px #203d2510; }
.site-header.is-scrolled .header-inner { min-height:78px; }
.reading-progress { position:absolute; left:0; bottom:-1px; width:100%; height:3px; background:#85a65c; transform:scaleX(0); transform-origin:left; pointer-events:none; }
.button,.nav-contact { border-radius:3px; }
.button { transition:background .2s ease,box-shadow .2s ease,transform .2s ease; }
.button:hover { box-shadow:0 6px 18px #163b2620; transform:translateY(-2px); }
.button>span,.text-link>span,.hero-link>span { transition:transform .25s var(--ease); }
.button:hover>span,.text-link:hover>span,.hero-link:hover>span { transform:translate(3px,-2px); }
.eyebrow { display:flex; align-items:center; gap:12px; }
.eyebrow::before { content:''; width:24px; height:1px; background:currentColor; opacity:.7; flex-shrink:0; }
.service-photo { border-radius:5px; }
.service-card { transition:transform .3s var(--ease); }
.service-card:hover { transform:translateY(-4px); }
.service-photo img { transition:transform .7s var(--ease),filter .5s ease; }
.service-card:hover .service-photo img { transform:scale(1.03); }
.circle-arrow { transition:background .25s ease,color .25s ease,border-color .25s ease,transform .25s var(--ease); }
.service-card:hover .circle-arrow { background:var(--green); color:#fff; border-color:var(--green); transform:rotate(5deg); }
.photo-label { border-radius:0 3px 0 0; }
.about-photo,.career-section { border-radius:5px; overflow:hidden; }
.quick-services>a { transition:padding-left .25s var(--ease); }
.quick-services>a:hover { padding-left:10px; }
.gallery-link { border-radius:3px; }
.gallery-link img { transition:transform .5s var(--ease); }
.gallery-link:hover img { transform:scale(1.035); }
.content-block input,.content-block textarea,.content-block select { transition:border-color .2s,box-shadow .2s; }
.content-block input:focus,.content-block textarea:focus,.content-block select:focus { box-shadow:0 0 0 4px #38743c0c; }

/* Ruhiger Bildwechsel; Text und Handlungsbuttons bleiben an ihrem Platz. */
.hero-visuals { position:absolute; inset:0; }
.hero-visuals .hero-image { opacity:0; transition:opacity 1.1s ease; }
.hero-visuals .hero-image.is-active { opacity:1; }
.hero-visuals .hero-image { object-position:center center; }
.hero h1 { font-family:Arial,Helvetica,sans-serif; }
.hero-bottom { position:absolute; bottom:24px; left:0; right:0; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.hero-bottom .hero-caption { position:static; display:block; font-size:12px; color:#e0e7dc; text-shadow:0 1px 8px #0005; }
.hero-controls { display:flex; align-items:center; gap:7px; padding:7px 9px 7px 20px; border:1px solid #ffffff35; background:#12291bb8; backdrop-filter:blur(12px); border-radius:4px; }
.hero-slide-label { display:flex; align-items:center; gap:14px; margin-right:15px; font-size:12px; min-width:125px; }
.hero-slide-number { color:#c6d4ab; font-size:11px; font-variant-numeric:tabular-nums; }
.hero-slide-name { border-left:1px solid #ffffff35; padding-left:14px; }
.hero-controls button { width:38px; height:38px; padding:0; display:grid; place-items:center; border:1px solid transparent; border-radius:2px; background:transparent; color:#fff; font-size:20px; transition:background .2s,border-color .2s; }
.hero-controls button:hover { background:#ffffff12; border-color:#ffffff45; }
.hero-controls .hero-playback { margin-left:4px; border-left:1px solid #ffffff30; font-size:15px; }
.back-to-top { position:fixed; bottom:24px; right:24px; z-index:15; display:grid; place-items:center; width:44px; height:44px; border:1px solid #dbe3d6; border-radius:50%; background:#fff; box-shadow:0 3px 16px #1b3a2314; color:var(--green); font-size:22px; transition:background .2s,color .2s,transform .2s; }
.back-to-top:hover { background:var(--green); color:white; transform:translateY(-3px); }

/* Die bestehende Bildansicht bekommt Blättern und Tastaturbedienung. */
.lightbox { border-radius:5px; padding-inline:65px; }
.lightbox>p { text-align:center; font-variant-numeric:tabular-nums; }
.lightbox-previous,.lightbox-next { position:absolute; top:50%; width:42px; height:42px; display:grid; place-items:center; background:var(--paper); color:var(--green-dark); border:1px solid var(--line); border-radius:50%; font-size:23px; transform:translateY(-50%); }
.lightbox-previous { left:10px; }
.lightbox-next { right:10px; }
.lightbox-previous:hover,.lightbox-next:hover { background:var(--green); color:#fff; }
.lightbox img { max-width:min(80vw,1100px); }
h1,h2,h3,h4,h5,h6 { overflow-wrap:break-word; }

/* Einheitliche Inhaltsbausteine für Galerien, Referenzen, Partner, Personen und Standorte. */
.span-9 { grid-column:span 9; }
.span-8 { grid-column:span 8; }
.span-7 { grid-column:span 7; }
.span-5 { grid-column:span 5; }
.content-block .lead { font-size:19px; line-height:1.65; color:#3f473e; max-width:860px; }
.section-intro { margin-bottom:30px; }
.section-intro h2 { margin:0; font-size:34px; }
.section-intro p { margin-top:12px; color:var(--muted); font-size:14px; }
.page-heading-photo { object-position:center 45%; }
.page-ueber-uns .page-heading-photo,.page-unser-team .page-heading-photo,.page-managementsystem .page-heading-photo,.page-kontakt .page-heading-photo { object-position:center 25%; }

/* Galerie: großes Leitbild, darunter Reihen ohne Lücken (3, 2+2 oder 3+2 Bilder). */
.gallery { grid-template-columns:repeat(6,minmax(0,1fr)); }
.gallery-link { grid-column:span 2; }
.gallery-link:nth-child(2):last-child { grid-column:1/-1; }
.gallery-link:nth-child(3n+2):nth-last-child(2),
.gallery-link:nth-child(3n):last-child,
.gallery:has(>.gallery-link:nth-child(3n+5):last-child)>.gallery-link:nth-last-child(-n+4):not(:first-child) { grid-column:span 3; }

.card-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.card-grid:has(>:nth-child(5):last-child) { grid-template-columns:repeat(5,minmax(0,1fr)); }
.card-grid:has(>:nth-child(3):last-child) { grid-template-columns:repeat(3,minmax(0,1fr)); }
.content-block img.rounded-photo { border-radius:5px; margin:0; }
.card-grid>li { margin:0; min-width:0; }
.card { height:100%; display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:5px; padding:24px 22px; }
a.card { transition:border-color .2s ease,box-shadow .25s ease,transform .25s var(--ease); }
a.card:hover { border-color:#c5d3bd; box-shadow:0 10px 26px #1b3a2312; transform:translateY(-3px); }
.card h3 { font-size:17px; line-height:1.35; letter-spacing:-.01em; margin:0 0 8px; overflow-wrap:break-word; hyphens:auto; }
.card>div { min-width:0; }
.card p { font-size:13px; line-height:1.65; color:var(--muted); margin:0 0 16px; overflow-wrap:break-word; hyphens:auto; }
.card .text-link { margin-top:auto; gap:10px; white-space:nowrap; }
.card-accent { border-top:3px solid var(--green); border-radius:0 0 5px 5px; }
.content-block>.card { height:auto; }
.content-block .card a.text-link { text-decoration:none; }
.content-block .card .button { align-self:flex-start; }

.reference-card { gap:18px; }
.reference-card h3 { margin:0; }
.reference-card p { margin:4px 0 0; }
.card-icon { width:46px; height:46px; flex-shrink:0; display:grid; place-items:center; border-radius:50%; background:var(--paper); color:var(--green); }
.card-icon svg { width:24px; height:24px; }

.partner-logo { height:96px; display:grid; place-items:center; margin:0 0 18px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.partner-logo img { width:auto; max-width:100%; max-height:76px; object-fit:contain; }

.person-card img { width:auto; max-width:100%; height:auto; aspect-ratio:auto; object-fit:contain; object-position:center top; border-radius:5px; margin:0 auto 16px; background:var(--paper); }
.person-card .eyebrow { margin-bottom:6px; font-size:10px; letter-spacing:.12em; }
.person-card h3 { font-size:17px; letter-spacing:-.01em; margin:0; }
.page-unser-team .span-3 img { border-radius:5px; }

.location-card h3 { font-size:19px; }
.location-card p { color:#535d52; font-size:14px; }
.location-card a:not(.text-link) { color:var(--green); }
.erreichbar { margin:0 0 14px; line-height:1.55; }
.erreichbar strong { font-weight:600; }
.erreichbar a { white-space:nowrap; }
.footer-grid p.erreichbar { margin-top:0; margin-bottom:12px; font-size:12px; line-height:1.7; color:var(--muted); }
.footer-grid p.erreichbar strong { color:var(--ink); }
.footer-grid p.erreichbar a { color:var(--green); font-weight:600; }
.contact-band .erreichbar { margin:18px 0 0; color:#d8e2d5; font-size:14px; }
.contact-band .erreichbar strong { color:#fff; }
.contact-band .erreichbar a { color:#fff; text-decoration:underline; text-underline-offset:3px; }
.location-card .erreichbar { font-size:13px; margin-bottom:12px; }
.standorte-map { margin:0; }
.standorte-map figcaption { margin-top:10px; font-size:11px; line-height:1.6; color:var(--muted); }
.map-toolbar { display:inline-flex; gap:4px; padding:4px; margin-bottom:14px; border:1px solid var(--line); border-radius:4px; background:#fff; }
.map-toolbar[hidden] { display:none!important; }
.map-toolbar button { padding:8px 14px; border:0; border-radius:3px; background:transparent; color:var(--muted); font-size:12px; font-weight:600; transition:background .2s,color .2s; }
.map-toolbar button:hover { color:var(--green); }
.map-toolbar button[aria-pressed="true"] { background:var(--green); color:#fff; }
.map-canvas { position:relative; }
.map-canvas svg { display:block; width:100%; height:auto; border-radius:5px; background:#f7f8f5; --map-scale:1; }
.map-state { fill:#eef0ec; fill-rule:evenodd; stroke:#fff; stroke-width:1.2; stroke-linejoin:round; vector-effect:non-scaling-stroke; transition:fill .2s; }
.map-state.is-service { fill:#dce7d3; }
.map-state:hover { fill:#e3e7df; }
.map-state.is-service:hover { fill:#d0ddc5; }
.map-state-labels text { fill:#8b9488; font-size:11px; letter-spacing:.04em; text-anchor:middle; pointer-events:none; transition:opacity .3s; }
.standorte-map.is-region .map-state-labels { opacity:0; }
.map-canvas a.map-marker { cursor:pointer; outline:none; }
.content-block .map-canvas a.map-marker { text-decoration:none; }
.map-marker-body { transform:scale(var(--map-scale)); }
.map-marker circle { fill:#fff; stroke:var(--green); stroke-width:1.5; filter:drop-shadow(0 2px 3px #1b3a2340); transition:fill .2s; }
.map-marker-icon { fill:var(--green); transition:fill .2s; }
.map-marker:hover circle,.map-marker:focus-visible circle,.map-marker.is-active circle,.map-marker.is-highlighted circle { fill:var(--green); }
.map-marker:hover .map-marker-icon,.map-marker:focus-visible .map-marker-icon,.map-marker.is-active .map-marker-icon,.map-marker.is-highlighted .map-marker-icon { fill:#fff; }
.map-marker:focus-visible circle { stroke:#9eb86e; stroke-width:3; }
.map-marker-label { fill:var(--ink); font-size:13px; font-weight:600; paint-order:stroke; stroke:#fff; stroke-width:3px; stroke-linejoin:round; opacity:0; pointer-events:none; transition:opacity .3s; }
.map-marker-label.is-left { text-anchor:end; }
.standorte-map.is-region .map-marker-label { opacity:1; }
.map-popup { position:absolute; z-index:2; width:min(260px,calc(100% - 16px)); padding:16px 20px; background:#fff; border:1px solid var(--line); border-top:3px solid var(--green); border-radius:0 0 5px 5px; box-shadow:0 12px 30px #1b3a2324; }
.map-popup .eyebrow { margin-bottom:8px; font-size:10px; }
.map-popup h3 { margin:0 0 6px; padding-right:24px; font-size:16px; letter-spacing:-.01em; }
.map-popup p { margin:0 0 12px; color:#535d52; font-size:13px; line-height:1.6; }
.content-block .map-popup a.text-link { text-decoration:none; }
.map-popup-close { position:absolute; top:6px; right:6px; width:32px; height:32px; border:0; background:transparent; color:var(--muted); font-size:22px; line-height:1; }
.map-popup-close:hover { color:var(--green); }

.card-grid.certificate-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.card-grid.award-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.certificate-card { margin:0; text-align:center; }
.certificate-card a { display:block; }
.certificate-card img { width:100%; height:330px; object-fit:contain; margin:0 0 16px; transition:transform .5s var(--ease); }
.certificate-card a:hover img { transform:scale(1.02); }
.certificate-card figcaption { font-size:14px; font-weight:600; }
.award-card>a[data-lightbox] { display:block; margin-bottom:12px; }
.award-card img { width:auto; max-width:100%; height:150px; object-fit:contain; margin:4px 0 20px; }
.award-card .text-link { margin-top:0; }

.content-block .check-list { list-style:none; padding:0; margin:0; }
.check-list li { position:relative; margin:0; padding:11px 0 11px 32px; border-bottom:1px solid var(--line); }
.check-list li::before { content:'✓'; position:absolute; left:4px; top:11px; color:var(--green); font-weight:700; }

.seal-row { display:flex; flex-wrap:wrap; align-items:center; gap:36px; margin-top:10px; }
.seal-row img { width:auto; height:96px; margin:0; object-fit:contain; }

.era-portrait img { width:100%; max-width:240px; margin:0; border-radius:5px; }
.timeline { border-left:2px solid var(--line); padding-left:32px; margin-left:6px; }
.timeline h6 { position:relative; margin:34px 0 8px; font-size:13px; }
.timeline h6:first-child { margin-top:0; }
.timeline h6::before { content:''; position:absolute; left:-41px; top:50%; width:12px; height:12px; margin-top:-8px; border-radius:50%; background:#fff; border:2px solid var(--green); }
.timeline p { color:#535d52; }

.cta-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px 40px; }
.cta-row p { margin:0; font-size:19px; color:#3f473e; }

@media(max-width:1100px) {
 .card-grid,.card-grid:has(>:nth-child(5):last-child) { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:900px) {
 .card-grid,.card-grid:has(>:nth-child(5):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .span-9,.span-8,.span-7,.span-5,.era-portrait,.page-kontakt .span-4 { grid-column:span 12; }
 .era-portrait img { max-width:180px; }
 .certificate-card img { height:260px; }
}
@media(max-width:600px) {
 .content-block .lead,.cta-row p { font-size:17px; }
 .section-intro h2 { font-size:28px; }
 .card-grid { gap:12px; }
 .card { padding:18px 16px; }
 .reference-grid,.location-grid,.card-grid.certificate-grid,.card-grid.award-grid { grid-template-columns:1fr!important; }
 .reference-card { flex-direction:row; align-items:center; gap:16px; }
 .partner-logo { height:76px; padding-bottom:14px; margin-bottom:14px; }
 .partner-logo img { max-height:58px; }
 .card h3 { font-size:15px; }
 .seal-row { gap:22px; }
 .seal-row img { height:70px; }
 .certificate-card img { height:300px; }
 .map-canvas svg { height:340px; }
 .person-card .eyebrow::before { display:none; }
 h1,h2,h3,h4,h5,h6 { hyphens:auto; }
 .about-grid { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:480px) {
 .card-grid.partner-grid { grid-template-columns:1fr; }
 .partner-card { display:grid; grid-template-columns:84px minmax(0,1fr); column-gap:16px; align-items:start; }
 .partner-logo { grid-row:1/span 3; align-self:center; height:auto; margin:0; padding:0; border:0; }
 .partner-card>:not(.partner-logo) { grid-column:2; }
 .partner-card p { margin-bottom:10px; }
}

@media(max-width:900px) {
 .site-header.is-scrolled .header-inner { min-height:74px; }
 .hero-bottom .hero-caption { display:none; }
 .hero-bottom { justify-content:flex-end; }
}
@media(max-width:600px) {
 .hero { height:620px; }
 .hero-inner { padding-top:49px; }
 .hero h1 { font-size:clamp(61px,19vw,75px); }
 .hero-bottom { bottom:20px; justify-content:flex-start; }
 .hero-controls { padding-left:14px; }
 .hero-slide-label { min-width:116px; margin-right:5px; gap:10px; }
 .hero-slide-name { padding-left:10px; }
 .hero-controls button { width:35px; }
 .back-to-top { bottom:16px; right:14px; width:40px; height:40px; }
 .lightbox { padding:50px 10px 65px; }
 .lightbox img { max-width:85vw; max-height:66vh; }
 .lightbox-previous,.lightbox-next { top:auto; bottom:10px; transform:none; }
 .lightbox-previous { left:calc(50% - 49px); }
 .lightbox-next { right:calc(50% - 49px); }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation:none!important; transition:none!important; }
 .service-card:hover,.button:hover,.quick-services>a:hover,.service-card:hover .service-photo img,.gallery-link:hover img,.back-to-top:hover,a.card:hover,.certificate-card a:hover img { transform:none; }
}
@media print {
 .hero-controls,.hero-bottom,.reading-progress,.back-to-top { display:none!important; }
}

/* Fancy Bildwelt 2026: grosse Bildbuehnen, Glas-Details, ruhige Zooms. */
:root {
 --radius-bild:18px;
 --schatten-bild:0 18px 42px #16351f1f,0 3px 10px #16351f12;
 --schatten-bild-hover:0 28px 58px #16351f2b,0 6px 16px #16351f16;
}
/* Startseite: langsamer Ken-Burns-Zoom nur auf dem sichtbaren Hero-Bild. */
.hero-visuals .hero-image.is-active { animation:hero-kenburns 6.4s var(--ease) both; }
@keyframes hero-kenburns { from { transform:scale(1.03); } to { transform:scale(1); } }
.hero-shade { background:linear-gradient(90deg,rgba(10,27,17,.92),rgba(13,31,20,.68) 34%,rgba(13,27,17,.10) 72%),linear-gradient(0deg,rgba(9,24,14,.42),transparent 42%); }
.hero-controls { border-radius:999px; box-shadow:0 14px 34px #06130a33,inset 0 1px 0 #ffffff24; position:relative; overflow:hidden; padding:7px; gap:6px; }
.hero-controls::after { content:''; position:absolute; left:0; bottom:0; height:2px; width:100%; background:#ffffff1f; pointer-events:none; }
.hero-progress { position:absolute; left:0; bottom:0; z-index:1; height:2px; width:100%; background:#b7d18f; transform:scaleX(0); transform-origin:left; pointer-events:none; }
.hero-controls button { border-radius:50%; }

/* Seitentitel: Bild mit Tiefenverlauf statt flacher Abdunkelung. */
.has-photo { overflow:hidden; }
.has-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,40,18,.62),rgba(0,40,18,.28) 48%,rgba(0,30,14,.08)),linear-gradient(0deg,rgba(0,30,14,.28),transparent 52%); pointer-events:none; }
.has-photo>.container { z-index:1; }
.page-heading-photo { opacity:.72; animation:heading-zoom 1.6s var(--ease) both; }
@keyframes heading-zoom { from { transform:scale(1.08); } to { transform:scale(1); } }

/* Leistungsbilder: grosse, runde Bildkarten mit Glas-Etikett. */
.service-card { border-radius:var(--radius-bild); }
.service-photo { height:330px; border-radius:var(--radius-bild); box-shadow:var(--schatten-bild); transition:box-shadow .45s ease,transform .45s var(--ease); }
.service-card:hover .service-photo { box-shadow:var(--schatten-bild-hover); }
.service-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,24,13,.48),transparent 48%),linear-gradient(115deg,rgba(255,255,255,.16),transparent 38%); opacity:.72; transition:opacity .45s ease; pointer-events:none; }
.service-card:hover .service-photo::after { opacity:1; }
.service-photo img { transition:transform 1s var(--ease),filter .7s ease; }
.service-card:hover .service-photo img { transform:scale(1.03); }
.photo-label { left:16px; bottom:16px; padding:9px 13px; border:1px solid #ffffff38; border-radius:999px; background:#102a18bd; backdrop-filter:blur(10px); box-shadow:0 8px 22px #06130a33; z-index:1; }

/* Galerien: redaktionelles Mosaik mit Bildunterschrift und Glas-Knopf. */
.gallery { gap:18px; margin:34px 0 8px; }
.gallery-link { border-radius:var(--radius-bild); box-shadow:0 10px 28px #16351f17,0 2px 7px #16351f10; isolation:isolate; background:var(--green-dark); transition:box-shadow .45s ease,transform .45s var(--ease); }
.gallery-link:hover,.gallery-link:focus-visible { box-shadow:var(--schatten-bild-hover); transform:translateY(-4px); }
.gallery-link:focus-visible { outline:3px solid #9eb86e; outline-offset:4px; }
.gallery-link::before { content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(0deg,rgba(7,22,11,.45),transparent 42%); opacity:.12; transition:opacity .45s ease; pointer-events:none; }
.gallery-link:hover::before,.gallery-link:focus-visible::before { opacity:1; }
.content-block .gallery img { height:auto; aspect-ratio:4/3; transition:transform 1s var(--ease),filter .7s ease; }
.content-block .gallery-link:first-child img { height:auto; aspect-ratio:16/9; }
.gallery-link:hover img,.gallery-link:focus-visible img { transform:scale(1.03); }
.gallery-link>span { right:14px; top:14px; bottom:auto; width:auto; height:38px; padding:0 13px; display:inline-flex; align-items:center; gap:8px; border:1px solid #ffffff55; border-radius:999px; background:#0d2415b8; backdrop-filter:blur(10px); color:#fff; font-size:17px; line-height:1; z-index:2; box-shadow:0 10px 24px #06130a30; opacity:0; transform:translateY(-5px); transition:opacity .3s ease,background .3s ease,transform .3s var(--ease); }
.gallery-link>span::before { content:'Ansehen'; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.gallery-link:hover>span,.gallery-link:focus-visible>span { background:var(--green); opacity:1; transform:translateY(0); }
/* Einzelbilder, Karriere und Team: weiche Rahmen, Schatten und Farbtiefe. */
.about-photo,.content-block img.rounded-photo { border-radius:var(--radius-bild); box-shadow:var(--schatten-bild); }
.career-section { border-radius:22px; box-shadow:var(--schatten-bild); }
.career-section>img { transition:transform 1.1s var(--ease),filter .7s ease; }
.career-section:hover>img { transform:scale(1.02); }
.page-unser-team .span-3 img,.person-card img { border-radius:4px; box-shadow:none; }
.certificate-card img,.award-card img { filter:drop-shadow(0 12px 18px #16351f14); }

/* Vollbildansicht: dunkle Buehne, Glassteuerung, weiche Ecken. */
.lightbox { width:min(1120px,94vw); background:#0c1d12f5; color:#eef4ea; border:1px solid #ffffff22; border-radius:24px; box-shadow:0 34px 90px #02080580,inset 0 1px 0 #ffffff1f; padding:72px 88px 30px; backdrop-filter:blur(14px); }
.lightbox::backdrop { background:#050f08b8; backdrop-filter:blur(8px); }
.lightbox img { width:100%; border-radius:16px; box-shadow:0 24px 70px #0009; background:#07130b; max-height:76vh; }
.lightbox[open] img { animation:lightbox-in .45s var(--ease) both; }
@keyframes lightbox-in { from { opacity:.25; transform:scale(.975); } to { opacity:1; transform:scale(1); } }
.lightbox>p { align-self:center; max-width:min(760px,86vw); padding:9px 15px; border:1px solid #ffffff24; border-radius:999px; background:#ffffff12; color:#e8efe4; font-size:12.5px; line-height:1.45; text-align:center; box-shadow:inset 0 1px 0 #ffffff14; }
.lightbox-close,.lightbox-previous,.lightbox-next { border:1px solid #ffffff2e; background:#ffffff12; color:#fff; backdrop-filter:blur(10px); box-shadow:0 12px 28px #0005,inset 0 1px 0 #ffffff1c; transition:background .25s ease,transform .25s var(--ease),border-color .25s ease; }
.lightbox-close { top:16px; right:16px; display:grid; place-items:center; border-radius:50%; font-size:28px; line-height:1; }
.lightbox-previous,.lightbox-next { width:50px; height:50px; font-size:25px; }
.lightbox-previous { left:18px; }
.lightbox-next { right:18px; }
.lightbox-close:hover,.lightbox-previous:hover,.lightbox-next:hover { background:var(--green); border-color:#ffffff45; color:#fff; transform:translateY(-50%) scale(1.05); }
.lightbox-close:hover { transform:scale(1.05); }

@media(max-width:900px) {
 .service-photo { height:290px; }
 .content-block .gallery-link:first-child img { height:auto; }
 .content-block .gallery img { height:auto; }
}
@media(max-width:600px) {
 .gallery { gap:12px; margin-top:26px; }
 .gallery-link { border-radius:15px; }
 .gallery-link>span { height:34px; padding:0 11px; }
 .content-block .gallery-link:first-child img { height:auto; }
 .content-block .gallery img { height:auto; }
 .service-photo { height:270px; border-radius:16px; }
 .career-section { border-radius:18px; }
 .lightbox { padding:64px 12px 74px; border-radius:18px; }
 .lightbox img { max-width:calc(100vw - 44px); max-height:68vh; border-radius:12px; }
 .lightbox>p { max-width:calc(100vw - 54px); }
 .lightbox-previous,.lightbox-next { bottom:16px; width:46px; height:46px; }
 .lightbox-previous:hover,.lightbox-next:hover { transform:scale(1.05); }
}
/* Cookie-Banner: ruhige Karte am unteren Bildschirmrand, keine Vollbild-Sperre. */
.cookie-banner { position:fixed; right:24px; bottom:24px; z-index:60; width:min(520px,calc(100vw - 32px)); padding:24px; border:1px solid #ffffff70; border-radius:20px; background:#fffffff2; backdrop-filter:blur(14px); box-shadow:0 28px 64px #0b24123d,0 4px 14px #0b241214,inset 0 1px 0 #fff; color:var(--ink); animation:cookie-in .45s var(--ease) both; }
@keyframes cookie-in { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
.cookie-banner[hidden] { display:none!important; }
.cookie-banner .eyebrow { margin-bottom:10px; }
.cookie-banner h2 { font-size:21px; margin:0 0 10px; }
.cookie-banner p { font-size:13.5px; line-height:1.65; color:var(--muted); margin:0 0 14px; }
.cookie-banner p a { color:var(--green); font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.cookie-option { display:flex; gap:13px; align-items:flex-start; padding:14px 15px; margin:0 0 12px; border:1px solid var(--line); border-radius:14px; background:var(--paper); cursor:pointer; }
.cookie-option input { width:19px; height:19px; margin-top:2px; flex-shrink:0; accent-color:var(--green); }
.cookie-option strong { display:block; font-size:13.5px; margin-bottom:3px; }
.cookie-option small { display:block; font-size:12px; line-height:1.55; color:var(--muted); }
.cookie-banner .cookie-necessary { font-size:12px; margin-bottom:18px; }
.cookie-actions { display:flex; flex-wrap:wrap; gap:9px; }
.cookie-actions .button { flex:1 1 auto; justify-content:center; padding:12px 15px; }
.cookie-actions .cookie-deny { background:#eef1e9; border-color:#dfe4db; color:var(--green-dark); }
.cookie-actions .cookie-deny:hover { background:#e2e8da; border-color:#cbd6c2; color:var(--green-dark); }
.footer-bottom button.text-link { padding:0; border:0; background:none; cursor:pointer; font:inherit; }
@media print { .cookie-banner { display:none!important; } }
@media(max-width:600px) {
 .cookie-banner { right:16px; bottom:16px; padding:20px 18px; border-radius:17px; }
 .cookie-actions { flex-direction:column; }
 .cookie-actions .button { width:100%; }
}
@media(prefers-reduced-motion:reduce) {
 .hero-visuals .hero-image.is-active,.page-heading-photo,.lightbox[open] img { animation:none!important; }
 .cookie-banner { animation:none!important; }
 .gallery-link:hover,.gallery-link:focus-visible,.gallery-link:hover img,.gallery-link:focus-visible img,.career-section:hover>img { transform:none!important; }
 .hero-progress { display:none; }
}
