/* Button */
.btn{display:inline-flex;align-items:center;gap:10px;border:2px solid transparent;font:var(--type-button);letter-spacing:var(--tracking-button);text-transform:uppercase;border-radius:var(--radius-button);cursor:pointer;text-decoration:none;transition:var(--transition-color),var(--transition-lift);white-space:nowrap}
.btn--sm{padding:var(--pad-button-sm);font-size:var(--size-micro)}
.btn--md{padding:var(--pad-button);font-size:var(--size-small)}
.btn--lg{padding:19px 34px;font-size:var(--size-body)}
.btn--primary{background:var(--surface-brand);color:var(--text-on-red)}
.btn--primary:hover{background:var(--surface-brand-hover);color:var(--text-on-red);box-shadow:var(--shadow-brand)}
.btn--primary:active{transform:var(--press-scale);background:var(--surface-brand-press);color:var(--text-on-red);transition-duration:var(--duration-press)}
.btn--outline{background:transparent;color:var(--surface-brand);border-color:var(--surface-brand)}
.btn--outline:hover{background:var(--surface-brand);color:var(--text-on-red)}
.btn--on-dark{background:transparent;color:var(--text-on-dark);border-color:rgba(255,255,255,.75)}
.btn--on-dark:hover{background:rgba(255,255,255,.14);color:var(--text-on-dark);border-color:#fff}
.btn--text{background:transparent;color:var(--text-link);padding:0;border:none}
.btn--text:hover{color:var(--text-link-hover)}
.btn--full{width:100%;justify-content:center}
.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}
.btn img{width:18px;height:18px;display:block}

/* Section heading */
.section-heading{text-align:left}
.section-heading--center{text-align:center;max-width:780px;margin:0 auto}
.section-heading__kicker{font:var(--type-small);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--surface-brand);margin-bottom:var(--space-3)}
.section-heading--on-dark .section-heading__kicker{color:rgba(255,255,255,.85)}
.section-heading__title{font:var(--type-h2);margin:0}
.section-heading--on-dark .section-heading__title{color:var(--text-on-dark)}
.section-heading__rule{width:64px;height:4px;background:var(--surface-brand);margin:var(--space-5) 0 0}
.section-heading--center .section-heading__rule{margin:var(--space-5) auto 0}
.section-heading__subtitle{font:var(--type-lead);color:var(--text-body);margin:var(--space-5) 0 0}
.section-heading--on-dark .section-heading__subtitle{color:rgba(255,255,255,.9)}

.lead{font:var(--type-lead);color:var(--text-body)}

/* Contact pill */
.contact-pill{display:inline-flex;align-items:center;gap:12px;padding:12px 22px 12px 18px;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.55);background:rgba(0,0,0,.42);color:var(--text-on-dark);font:var(--type-small);font-weight:var(--weight-medium);text-decoration:none;backdrop-filter:blur(2px);transition:var(--transition-color);white-space:nowrap}
.contact-pill:hover{background:rgba(255,255,255,.16);color:var(--text-on-dark)}
.contact-pill svg{fill:currentColor;flex:0 0 auto}

/* Cert seal */
.cert-seal{width:132px;height:132px;display:grid;place-items:center;background:var(--surface-card);padding:var(--space-4);box-shadow:var(--shadow-seal);flex:0 0 auto}
.cert-seal img{width:100%;height:100%;object-fit:contain}

/* Hero */
.hero{position:relative;min-height:720px;display:flex;align-items:center;background-image:url("../img/hero-teaser.webp");background-size:cover;background-position:center right;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:var(--scrim-hero)}
.hero__inner{position:relative;width:100%;max-width:var(--container-max);margin:0 auto;padding:var(--space-12) var(--gutter)}
.hero__kicker{font:var(--type-kicker);text-transform:uppercase;letter-spacing:var(--tracking-kicker);color:var(--text-on-dark);text-shadow:var(--shadow-text-hero);margin:0 0 var(--space-3)}
.hero__title{font:var(--type-hero);text-transform:uppercase;letter-spacing:var(--tracking-hero);color:var(--text-on-dark);text-shadow:var(--shadow-text-hero);margin:0 0 var(--space-6)}
.hero__lead{font:var(--type-lead);color:var(--text-on-dark);text-shadow:0 1px 8px rgba(0,0,0,.6);max-width:46em;margin:0 0 var(--space-8)}
.hero__seals{display:flex;gap:var(--space-7);margin-top:var(--space-11);flex-wrap:wrap}
.hero__contacts{display:flex;gap:var(--space-5);margin-top:var(--space-8);flex-wrap:wrap}
@media (max-width:640px){.hero{min-height:0}.hero__inner{padding:var(--space-9) var(--gutter)}.hero__title{font-size:26px;overflow-wrap:break-word;word-break:break-word}}

/* Service grid + card */
.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--grid-gap)}
@media (max-width:820px){.service-grid{grid-template-columns:1fr}}
.service-card{position:relative;overflow:hidden;background:var(--surface-card);padding:var(--space-5);border-radius:var(--radius-card);box-shadow:var(--shadow-card);transition:var(--transition-lift)}
.service-card:hover{box-shadow:var(--shadow-card-hover)}
.service-card__wedge{position:absolute;top:0;right:0;height:100%;width:152px;z-index:2;object-fit:fill;pointer-events:none}
.service-card__icon{position:absolute;top:50%;right:42px;transform:translateY(-50%);z-index:4;width:76px;height:76px;border-radius:var(--radius-circle);border:3px solid #fff;background:var(--surface-brand);overflow:hidden}
.service-card__icon img{width:100%;height:100%;display:block}
.service-card__body{position:relative;z-index:1;background:var(--surface-card-inner);padding:var(--space-6) var(--space-7);padding-right:170px;min-height:190px}
.service-card__title{font:var(--type-h4);font-size:var(--size-h5);color:var(--text-strong);margin:0 0 var(--space-5)}
.service-card__text{font:var(--type-body);color:var(--text-body)}
.service-card__action{margin-top:var(--space-5)}
@media (max-width:480px){.service-card__body{padding-right:var(--space-7)}.service-card__icon{position:static;transform:none;margin-bottom:var(--space-4)}.service-card__wedge{display:none}}

/* Icon blurb */
.icon-blurb{display:flex;flex-direction:row;gap:var(--space-6);align-items:flex-start}
.icon-blurb__icon{width:62px;height:62px;border-radius:var(--radius-circle);background:var(--surface-brand);overflow:hidden;flex:0 0 auto}
.icon-blurb__icon img{width:100%;height:100%;display:block}
.icon-blurb__title{font:var(--type-h4);font-size:var(--size-h5);color:var(--text-strong);margin:0 0 var(--space-2)}
.icon-blurb__body{font:var(--type-body);color:var(--text-body);margin:0}

/* Page-level layout grids (homepage) */
.pillar-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-9) var(--space-8)}
@media (max-width:820px){.pillar-grid{grid-template-columns:1fr}}
.why-us-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--space-10);align-items:start}
@media (max-width:820px){.why-us-grid{grid-template-columns:1fr}}
.consult-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--space-8);align-items:center;margin-top:var(--space-9)}
@media (max-width:820px){.consult-grid{grid-template-columns:1fr}}

/* Check list */
.check-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-4) var(--space-8)}
.check-list__item{display:flex;gap:var(--space-4);font:var(--type-body);color:var(--text-body);margin:0}
.check-list__icon{flex:0 0 auto;margin-top:.28em;fill:var(--surface-brand)}
.check-list__label{color:var(--text-strong);font-weight:var(--weight-regular)}

/* FAQ (native <details>/<summary>) */
.faq{display:grid;gap:var(--space-3)}
.faq__item{background:var(--surface-card);box-shadow:var(--shadow-card);border-left:4px solid transparent;transition:var(--transition-color)}
.faq__item[open]{border-left-color:var(--surface-brand)}
.faq__question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding:var(--space-5) var(--space-6);cursor:pointer;list-style:none;font:var(--type-h4);font-size:var(--size-h5);color:var(--text-strong)}
.faq__question::-webkit-details-marker{display:none}
.faq__item[open] .faq__question{color:var(--surface-brand)}
.faq__toggle{flex:0 0 auto;width:22px;height:22px;position:relative}
.faq__toggle::before,.faq__toggle::after{content:"";position:absolute;background:currentColor}
.faq__toggle::before{top:10px;left:2px;width:18px;height:2px}
.faq__toggle::after{top:2px;left:10px;width:2px;height:18px;transition:transform var(--duration-base) var(--ease-standard)}
.faq__item[open] .faq__toggle::after{transform:scaleY(0)}
.faq__answer{padding:0 var(--space-6) var(--space-6);font:var(--type-body);color:var(--text-body)}

/* Admin tables (Termine/Buchungen) */
.admin-table{width:100%;border-collapse:collapse;margin:var(--space-6) 0}
.admin-table th,.admin-table td{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-strong)}
.admin-table th{font:var(--type-small);font-weight:var(--weight-bold);color:var(--text-strong)}
.admin-table__row--cancelled{opacity:.5;text-decoration:line-through}
.admin-inline-form{display:inline-flex;gap:var(--space-2);align-items:center}
.admin-inline-form input[type="number"]{width:70px;padding:var(--pad-field);border:1px solid var(--border-strong);border-radius:var(--radius-field)}
.admin-notice--success{background:var(--surface-card);color:var(--text-strong);border:1px solid var(--border-strong);padding:var(--space-4) var(--space-5);margin:0 0 var(--space-5);font:var(--type-small)}

/* Form fields */
.field{display:grid;gap:var(--space-2)}
.field__label{font:var(--type-small);font-weight:var(--weight-medium);color:var(--text-strong)}
.field__required{color:var(--surface-brand)}
.field__input,.field__textarea{font:var(--type-body);color:var(--text-strong);padding:var(--pad-field);background:var(--surface-card);border-radius:var(--radius-field);border:1px solid var(--border-strong);outline:none;width:100%;transition:var(--transition-color),box-shadow var(--duration-base) var(--ease-standard)}
.field__input:focus,.field__textarea:focus{border-color:var(--border-brand);box-shadow:0 0 0 3px rgba(189,21,34,.14)}
.field__textarea{resize:vertical}
.field__hint{font:var(--type-small);font-size:var(--size-micro);color:var(--text-muted)}
.field--error .field__input,.field--error .field__textarea{border-color:var(--surface-brand)}
.field__error{font:var(--type-small);font-size:var(--size-micro);color:var(--surface-brand)}
.field--honeypot{position:absolute;left:-9999px;top:-9999px}

.contact-form{background:var(--surface-card);padding:var(--space-9);box-shadow:var(--shadow-card)}
.contact-form h3{font:var(--type-h3);color:var(--text-heading);margin:0 0 var(--space-7)}
.contact-form__fields{display:grid;gap:var(--space-5)}
.contact-form__error{background:var(--red-50);color:var(--red-700);border:1px solid var(--red-200);padding:var(--space-4) var(--space-5);margin:0 0 var(--space-5);font:var(--type-small)}

/* Top bar + header stay together at the top while scrolling */
.site-top{position:sticky;top:0;z-index:20}

/* Top bar */
.site-topbar{background:var(--surface-brand);min-height:var(--topbar-h);display:flex;align-items:center}
.site-topbar__inner{width:100%;max-width:var(--container-max);margin:0 auto;padding:var(--space-1) var(--gutter);display:flex;align-items:center;justify-content:center;gap:var(--space-6);flex-wrap:wrap}
.site-topbar__link{position:relative;display:inline-flex;align-items:center;gap:9px;color:#fff;font:var(--type-small);text-decoration:none}
.site-topbar__link:hover{color:#fff;opacity:.85}
.site-topbar__link::after,.site-topbar__social a::after{content:"";position:absolute;inset:-10px -4px}
.site-topbar__link svg{fill:currentColor}
.site-topbar__social{display:flex;align-items:center;gap:var(--space-5)}
.site-topbar__social a{position:relative;color:#fff;display:grid;place-items:center;width:24px;height:24px}
.site-topbar__social svg{fill:currentColor}
.site-topbar__social .site-topbar__icon-outline{fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}
.site-topbar__social .site-topbar__icon-outline .dot{fill:currentColor;stroke:none}
@media (max-width:640px){.site-topbar__text{display:none}.site-topbar__link{min-width:44px;justify-content:center}.site-topbar__inner{gap:var(--space-7);flex-wrap:nowrap}.site-topbar__link svg{width:24px;height:24px}}

/* Header + nav */
.site-header{--header-h-current:var(--header-h);background:var(--surface-card);box-shadow:var(--shadow-header);min-height:var(--header-h-current);display:flex;align-items:center;position:relative;transition:box-shadow var(--duration-base) var(--ease-standard)}
.site-header--scrolled{--header-h-current:var(--header-h-scrolled);box-shadow:var(--shadow-header-scrolled)}
.site-header__inner{width:100%;max-width:var(--container-max);margin:0 auto;padding:var(--space-3) var(--gutter);display:flex;align-items:center;gap:var(--space-8)}
.site-header__logo{display:block;flex:0 0 auto}
.site-header__logo img{height:40px;width:auto;display:block;transform:scale(1.4);transform-origin:left center;transition:transform var(--duration-base) var(--ease-out)}
.site-header--scrolled .site-header__logo img{transform:scale(.9)}
.site-header--scrolled .site-header__inner{padding-top:var(--space-2);padding-bottom:var(--space-2)}
.site-nav{margin-left:auto;display:flex;align-items:center;gap:var(--space-7)}
.site-nav__item{position:relative}
.site-nav__link{font:var(--type-nav);color:var(--neutral-600);display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.site-nav__link:hover,.site-nav__link[aria-current="page"]{color:var(--surface-brand)}
.site-nav__caret{font-size:17px;line-height:1;opacity:.9}
.site-nav__submenu{display:none;position:absolute;top:calc(100% + var(--space-5));left:-16px;min-width:340px;background:var(--surface-card);box-shadow:var(--shadow-card-hover);padding:var(--space-3) 0;z-index:30}
.site-nav__submenu::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:var(--space-5)}
.site-nav__item:hover .site-nav__submenu,.site-nav__item:focus-within .site-nav__submenu{display:block}
.site-nav__submenu a{display:block;padding:9px var(--space-6);font:var(--type-small);color:var(--neutral-600);text-decoration:none}
.site-nav__submenu a:hover{color:var(--surface-brand)}
.nav-toggle{display:none;margin-left:auto;background:none;border:none;cursor:pointer;padding:var(--space-2);color:var(--neutral-800)}
.nav-toggle svg{display:block}

@media (max-width:980px){
  .site-nav{position:fixed;inset:0;top:var(--site-top-h,calc(var(--topbar-h) + var(--header-h-current)));background:var(--surface-card);flex-direction:column;align-items:stretch;gap:0;margin-left:0;padding:var(--space-4) var(--gutter);overflow-y:auto;transform:translateX(100%);visibility:hidden;transition:transform var(--duration-base) var(--ease-out),visibility 0s linear var(--duration-base)}
  body.nav-open .site-nav{transform:translateX(0);visibility:visible;transition-delay:0s}
  .site-nav__item{width:100%}
  .site-nav__link{padding:var(--space-4) 0;width:100%;border-bottom:1px solid var(--border-hairline)}
  .site-nav__submenu{display:block;position:static;box-shadow:none;min-width:0;margin-top:0;padding:0 0 var(--space-3)}
  .site-nav__submenu::before{display:none}
  .site-nav__item:hover .site-nav__submenu,.site-nav__item:focus-within .site-nav__submenu{display:block}
  .nav-toggle{display:block}
}

/* Footer */
.site-footer{background:var(--surface-inverse);color:var(--text-on-dark);padding:var(--space-11) 0 var(--space-7)}
.site-footer__inner{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--space-10);align-items:start}
.site-footer__title{font:var(--type-h4);font-size:var(--size-h5);color:#fff;margin:0 0 var(--space-5)}
.site-footer__meta{display:grid;gap:var(--space-2)}
.site-footer__meta span{font:var(--type-small);color:rgba(255,255,255,.85)}
.site-footer__meta a{display:inline-block;padding:var(--space-3) 0;color:rgba(255,255,255,.85);font:var(--type-small);text-decoration:none}
.site-footer__meta a:hover{color:#fff}
.site-footer__logo{justify-self:end;text-align:right}
.site-footer__logo img{height:52px;width:auto;display:inline-block}
.site-footer__legal{max-width:var(--container-max);margin:var(--space-9) auto 0;padding:var(--space-6) var(--gutter) 0;border-top:1px solid rgba(255,255,255,.14);display:flex;gap:var(--space-6);flex-wrap:wrap}
.site-footer__legal a{display:inline-block;padding:var(--space-3) var(--space-2);margin:calc(var(--space-3) * -1) calc(var(--space-2) * -1);color:rgba(255,255,255,.85);font-size:var(--size-micro);text-decoration:none}
.site-footer__legal a:hover{color:#fff}
@media (max-width:640px){.site-footer__inner{grid-template-columns:1fr}.site-footer__logo{justify-self:start;text-align:left}}

/* CTA band (solid red section, used for the mid-page CTA) */

/* Cookie consent banner */
.consent-banner{position:fixed;left:0;right:0;bottom:0;z-index:100;background:var(--surface-inverse);color:var(--text-on-dark);padding:var(--space-5) var(--gutter);display:flex;gap:var(--space-6);align-items:center;flex-wrap:wrap;box-shadow:0 -4px 16px rgba(0,0,0,.2)}
.consent-banner[hidden]{display:none}
.consent-banner__text{flex:1 1 320px;font:var(--type-small);color:rgba(255,255,255,.9)}
.consent-banner__text a{color:#fff;text-decoration:underline}
.consent-banner__actions{display:flex;gap:var(--space-3);flex:0 0 auto}
.consent-banner .btn--sm{min-height:44px}

/* Subpage header band */
.page-header{background:var(--surface-brand);color:#fff;padding:var(--space-9) 0;text-align:center}
.page-header h1{color:#fff;margin:0}

/* Team card */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--grid-gap)}
@media (max-width:820px){.team-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.team-grid{grid-template-columns:1fr}}
.team-grid--pair{grid-template-columns:repeat(2,minmax(0,1fr));max-width:560px;margin-top:var(--space-7)}
@media (max-width:480px){.team-grid--pair{grid-template-columns:1fr}}
.team-card{background:var(--surface-card);box-shadow:var(--shadow-card);overflow:hidden}
.team-card__photo{aspect-ratio:1/1;background:var(--neutral-200);display:grid;place-items:center;font:var(--type-small);color:var(--text-muted);text-align:center;overflow:hidden}
.team-card__img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
.team-card__photo--placeholder{font:var(--type-h2);color:var(--neutral-500);letter-spacing:.04em}
.team-card__body{padding:var(--space-6)}
.team-card__name{font:var(--type-h4);font-size:var(--size-h5);color:var(--text-strong);margin:0 0 var(--space-1)}
.team-card__role{font:var(--type-small);color:var(--surface-brand);font-weight:var(--weight-medium)}

/* Project card */
.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--grid-gap)}
@media (max-width:820px){.project-grid{grid-template-columns:1fr}}
.project-card{background:var(--surface-card);box-shadow:var(--shadow-card);display:flex;flex-direction:column;overflow:hidden}
.project-card__title{font:var(--type-h4);font-size:var(--size-h5);color:var(--text-strong);margin:0 0 var(--space-3)}
.project-card__label{font:var(--type-small);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--surface-brand);margin:0 0 var(--space-2)}
.project-card__text{font:var(--type-body);color:var(--text-body);margin:0}

/* Reference list */

/* Select field (extends .field__input for <select>) */
select.field__input{font:var(--type-body);color:var(--text-strong);padding:var(--pad-field);background:var(--surface-card);border-radius:var(--radius-field);border:1px solid var(--border-strong);width:100%}
select.field__input:focus{border-color:var(--border-brand);box-shadow:0 0 0 3px rgba(189,21,34,.14);outline:none}

/* Testimonial blurb (used on Brandschutzbeauftragter) */
.testimonial-card{margin:0;max-width:520px;background:var(--surface-card);box-shadow:var(--shadow-card);padding:var(--space-7);display:grid;gap:var(--space-5);border-top:4px solid var(--surface-brand)}
.testimonial-card__stars{display:flex;gap:4px;fill:var(--surface-brand)}
.testimonial-card__star--off{fill:var(--neutral-200)}
.testimonial-card__quote{margin:0;font:var(--type-body);color:var(--text-body);font-style:italic}
.testimonial-card__quote p{margin:0}
.testimonial-card__quote p::before{content:"E"}
.testimonial-card__quote p::after{content:"C"}
.testimonial-card__author{font:var(--type-small);font-weight:var(--weight-bold);color:var(--text-strong);border-top:1px solid var(--border-hairline);padding-top:var(--space-4)}
.testimonial{background:var(--surface-card);box-shadow:var(--shadow-card);padding:var(--space-7);max-width:520px}
.testimonial__source{font:var(--type-small);font-weight:var(--weight-bold);color:var(--text-strong);margin:0 0 var(--space-3)}
.testimonial__text{font:var(--type-body);color:var(--text-body);margin:0;font-style:italic}

/* Date radio group (Brandschutzhelferausbildung booking form) */
.date-radio-group{display:grid;gap:var(--space-2)}
.date-radio{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-field);cursor:pointer;font:var(--type-body);color:var(--text-strong);transition:var(--transition-color)}
.date-radio:has(input:checked){border-color:var(--border-brand);background:var(--red-50)}
.date-radio:has(input:focus-visible){box-shadow:0 0 0 3px rgba(189,21,34,.25)}
.date-radio--sold-out{color:var(--text-muted);cursor:not-allowed;text-decoration:line-through;opacity:.6}
.date-radio input[type="radio"]{accent-color:var(--surface-brand)}

/* Scroll-to-top button (bottom right, appears after scrolling down) */
.scroll-top{position:fixed;right:var(--space-6);bottom:var(--space-6);z-index:90;width:48px;height:48px;display:grid;place-items:center;border:none;border-radius:50%;background:var(--surface-brand);color:var(--text-on-red);box-shadow:var(--shadow-card-hover);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity var(--duration-base) var(--ease-standard),transform var(--duration-base) var(--ease-standard),visibility 0s linear var(--duration-base),background-color var(--duration-base) var(--ease-standard)}
.scroll-top svg{display:block;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.scroll-top--visible{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.scroll-top:hover{background:var(--surface-brand-hover)}
.scroll-top:focus-visible{outline:3px solid var(--surface-brand);outline-offset:3px}

/* Anchors must not end up hidden behind the sticky header */
html{scroll-padding-top:calc(var(--topbar-h) + var(--header-h-scrolled) + var(--space-4))}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .section--parallax{background-attachment:scroll}
  .site-header,.site-header__logo img,.scroll-top{transition:none}
  .btn--primary:active,.project-card__media:focus-visible img{transform:none}
  .project-card__media img,.service-card,.reference-card,.btn{transition-property:color,background-color,border-color,box-shadow,opacity}
}
@media (max-width:980px) and (prefers-reduced-motion:reduce){
  .site-nav{transform:none;opacity:0;transition:opacity var(--duration-fast) linear,visibility 0s linear var(--duration-fast)}
  body.nav-open .site-nav{opacity:1;transition-delay:0s}
}

/* Hover movement only where a real pointer exists (touch devices keep no "stuck" lifted cards) */
@media (hover:hover) and (pointer:fine){
  .btn--primary:hover,.service-card:hover,.reference-card:hover{transform:var(--hover-lift)}
  .project-card__media:hover img{transform:scale(1.04)}
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:reduce){
  .btn--primary:hover,.service-card:hover,.reference-card:hover,.project-card__media:hover img{transform:none}
}

/* Photo band with parallax background and a dark "curtain" overlay */
.section--parallax{position:relative;padding:var(--space-12) 0;background-color:var(--surface-inverse);background-size:cover;background-position:center 30%;background-repeat:no-repeat;background-attachment:fixed;color:var(--text-on-dark)}
.section--parallax::before{content:"";position:absolute;inset:0;background:var(--scrim-curtain)}
.section--parallax>.container{position:relative;max-width:820px}
.section--parallax h2,.section--parallax p{color:var(--text-on-dark)}
.section--parallax :is(h2,.section-heading__title,.section-heading__kicker,.parallax-copy p){text-shadow:var(--shadow-text-hero)}
.section--parallax-team{background-image:url("../img/team-gruppenfoto-2026.webp")}
.section--parallax-fleet{background-image:url("../img/fuhrpark-firmengebaeude.webp");background-position:center 68%}
.section--parallax-fleet>.container{max-width:var(--container-max)}
.section--parallax .check-list__item,.section--parallax .check-list__label{color:var(--text-on-dark);text-shadow:var(--shadow-text-hero)}
.section--parallax .check-list__icon{fill:#fff}
.section--parallax-congress{background-image:url("../img/bild-congress.webp");background-position:center}
.section--parallax-congress::before{background:var(--scrim-hero)}
.section--parallax-congress>.container{max-width:var(--container-max)}
.parallax-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-9);align-items:center}
@media (max-width:980px){.parallax-grid{grid-template-columns:1fr}.section--parallax-congress::before{background:var(--scrim-curtain)}}
@media (max-width:980px),(hover:none){.section--parallax{background-attachment:scroll}}

/* Click-to-load video (no request to YouTube before the visitor clicks) */
.video-embed{position:relative;aspect-ratio:16/9;background:var(--surface-inverse);color:var(--text-on-dark);display:grid;place-items:center;text-align:center;overflow:hidden;box-shadow:var(--shadow-card)}
.video-embed__consent{display:grid;justify-items:center;gap:var(--space-3);padding:var(--space-6);max-width:560px}
.video-embed__title{margin:0;font:var(--type-h4);color:var(--text-on-dark)}
.video-embed__note{margin:0;font:var(--type-small);color:rgba(255,255,255,.85)}
.video-embed__note a,.video-embed__direct a{color:#fff;text-decoration:underline}
.video-embed__direct{margin:0;font:var(--type-small)}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Contact section: advice text and contact buttons left, form right */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:var(--space-10);align-items:start}
@media (max-width:820px){.contact-grid{grid-template-columns:1fr}}
.contact-list{display:grid;gap:var(--space-3);justify-items:start;margin-top:var(--space-7)}
.contact-pill--on-light{border-color:var(--border-hairline);background:var(--surface-card);color:var(--text-strong);backdrop-filter:none;white-space:normal;overflow-wrap:anywhere}
.contact-pill--on-light:hover{background:var(--surface-brand);color:var(--text-on-red)}

/* Project card photo (opens the lightbox) */
.project-card__body{padding:var(--space-6) var(--space-7)}
.project-card__media{position:relative;display:block;aspect-ratio:3/2;overflow:hidden;background:var(--neutral-200);cursor:zoom-in}
.project-card__media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform var(--duration-enter) var(--ease-out)}
.project-card__media:focus-visible img{transform:scale(1.04)}
.project-card__media:focus-visible{outline:3px solid var(--surface-brand);outline-offset:-3px}
.project-card__media::after{content:"";position:absolute;right:var(--space-3);bottom:var(--space-3);width:36px;height:36px;border-radius:50%;background:rgba(0,0,0,.55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5L21 21'/%3E%3C/svg%3E") center/18px no-repeat;pointer-events:none}

/* Reference logo cards */
.reference-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--grid-gap);list-style:none;margin:0 0 var(--space-10);padding:0}
@media (max-width:980px){.reference-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.reference-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}}
.reference-card{display:flex;flex-direction:column;margin:0;background:var(--surface-card);box-shadow:var(--shadow-card);transition:var(--transition-lift)}
.reference-card:hover{box-shadow:var(--shadow-card-hover)}
.reference-card--text{justify-content:center;min-height:168px}
.reference-card--text .reference-card__name{margin:0;border:0;display:grid;place-items:center;text-align:center;flex:1;font:var(--type-body);font-weight:var(--weight-medium);-webkit-line-clamp:5;overflow-wrap:anywhere;hyphens:auto;overflow:visible}
@media (max-width:640px){.reference-card--text .reference-card__name{font-size:var(--size-small);padding:var(--space-3)}}
.ref-gallery{position:relative}
.ref-gallery.is-enhanced{padding-bottom:28px}
.ref-gallery.is-enhanced .reference-card{transform-origin:center bottom}
.ref-gallery.is-enhanced .reference-card:nth-child(4n+2),.ref-gallery.is-enhanced .reference-card:nth-child(4n+4){translate:0 28px}
@media (max-width:980px){.ref-gallery.is-enhanced .reference-card:nth-child(4n+4){translate:none}.ref-gallery.is-enhanced .reference-card:nth-child(3n+2){translate:0 28px}}
@media (max-width:640px){.ref-gallery.is-enhanced .reference-card:nth-child(3n+2){translate:none}.ref-gallery.is-enhanced .reference-card:nth-child(2n){translate:0 20px}}
.reference-card__logo{display:block;width:100%;height:120px;object-fit:contain;padding:var(--space-5)}
.reference-card__name{margin-top:auto;overflow-wrap:anywhere;padding:var(--space-3) var(--space-4) var(--space-4);border-top:1px solid var(--border-hairline);font:var(--type-small);color:var(--text-strong);text-align:center;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* Lightbox (native <dialog>) */
dialog.lightbox{border:0;padding:0;margin:0;width:100%;height:100%;max-width:none;max-height:none;background:transparent;color:#fff;overflow:hidden}
dialog.lightbox[open]{display:grid;place-items:center}
dialog.lightbox::backdrop{background:rgba(0,0,0,.88)}
.lightbox__figure{margin:0;display:grid;justify-items:center;gap:var(--space-3);max-width:92vw}
.lightbox__img{display:block;max-width:92vw;max-height:80vh;width:auto;height:auto;object-fit:contain;background:#111;box-shadow:var(--shadow-card-hover)}
.lightbox__caption{font:var(--type-small);color:#fff;text-align:center;text-shadow:var(--shadow-text-hero)}
.lightbox__close,.lightbox__nav{position:absolute;display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:32px;line-height:1;cursor:pointer;transition:var(--transition-color)}
.lightbox__close{top:var(--space-5);right:var(--space-5)}
.lightbox__nav{top:50%;transform:translateY(-50%)}
.lightbox__nav--prev{left:var(--space-5)}
.lightbox__nav--next{right:var(--space-5)}
.lightbox__close:hover,.lightbox__nav:hover{background:rgba(255,255,255,.28)}
.lightbox__close:focus-visible,.lightbox__nav:focus-visible{outline:3px solid #fff;outline-offset:2px}
.lightbox__nav[hidden]{display:none}
body:has(dialog.lightbox[open]){overflow:hidden}
@media (max-width:640px){.btn{white-space:normal;text-align:center}}

/* Utility: visually hidden, still read by screen readers */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Badges (seats left on the booking dates: green = plenty, yellow = 2 or fewer, grey = full) */
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font:var(--type-small);font-size:var(--size-micro);font-weight:var(--weight-medium);white-space:nowrap;line-height:1.6}
.badge--success{background:var(--badge-success-bg);color:var(--badge-success-fg)}
.badge--warning{background:var(--badge-warning-bg);color:var(--badge-warning-fg)}
.badge--muted{background:var(--neutral-200);color:var(--text-muted)}
.date-radio__label{flex:1}
.date-radio{flex-wrap:wrap}
.date-radio--sold-out{text-decoration:none}
.date-radio--sold-out .date-radio__label{text-decoration:line-through}

/* Booking wizard */
.wizard-progress{display:none;list-style:none;margin:0 0 var(--space-7);padding:0;gap:var(--space-2)}
.booking-wizard.is-enhanced .wizard-progress{display:flex}
.wizard-progress__item{flex:1;display:flex;align-items:center;gap:var(--space-2);font:var(--type-small);color:var(--text-muted);border-top:3px solid var(--neutral-200);padding-top:var(--space-2)}
.wizard-progress__num{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--neutral-200);color:var(--text-strong);font-size:var(--size-micro);font-weight:var(--weight-medium);flex:none}
.wizard-progress__item.is-current{border-top-color:var(--surface-brand);color:var(--text-strong);font-weight:var(--weight-medium)}
.wizard-progress__item.is-current .wizard-progress__num,.wizard-progress__item.is-done .wizard-progress__num{background:var(--surface-brand);color:var(--text-on-red)}
.wizard-progress__item.is-done{border-top-color:var(--surface-brand)}
@media (max-width:560px){.wizard-progress__label{display:none}.wizard-progress__item.is-current .wizard-progress__label{display:inline}}
.wizard-step{border:0;margin:0 0 var(--space-7);padding:0;min-width:0;display:grid;gap:var(--space-4)}
.wizard-step[hidden],.wizard-dates[hidden],.wizard-error[hidden]{display:none}
.wizard-step__title{font:var(--type-h4);color:var(--text-strong);padding:0;margin:0 0 var(--space-4)}
.wizard-dates__year{margin:0 0 var(--space-3);font:var(--type-h5)}
.wizard-error{margin:0;color:var(--surface-brand);font:var(--type-small);font-weight:var(--weight-medium)}
.year-choice{display:flex;gap:var(--space-4);flex-wrap:wrap}
.year-choice__option{position:relative;display:grid;gap:2px;justify-items:center;min-width:140px;padding:var(--space-5) var(--space-6);border:1px solid var(--border-strong);border-radius:var(--radius-field);cursor:pointer;transition:var(--transition-color)}
.year-choice__option:has(input:checked){border-color:var(--border-brand);background:var(--red-50)}
.year-choice__option:has(input:focus-visible){box-shadow:0 0 0 3px rgba(189,21,34,.25)}
.year-choice__option--empty{opacity:.55;cursor:not-allowed}
.year-choice__option input{position:absolute;opacity:0;pointer-events:none}
.year-choice__year{font:var(--type-h3);color:var(--text-strong)}
.year-choice__note{font:var(--type-small);color:var(--text-muted)}
.wizard-count{max-width:140px}
.wizard-names-help--ok{color:var(--badge-success-fg)}
.wizard-names-help--bad{color:var(--surface-brand)}
.wizard-nav{display:flex;gap:var(--space-4);flex-wrap:wrap}
.wizard-nav [hidden]{display:none}
.booking-wizard.is-enhanced [data-wizard="next"],.booking-wizard.is-enhanced [data-wizard="submit"]{margin-left:auto}

/* Divider between job offers: red rule with a flame in the middle */
.flame-divider{display:flex;align-items:center;gap:var(--space-5);margin:var(--space-10) 0 var(--space-9)}
.flame-divider::before,.flame-divider::after{content:"";flex:1;height:2px;background:var(--surface-brand)}
.flame-divider__icon{flex:none;fill:var(--surface-brand)}
.flame-divider+h2{margin-top:0}

/* Booking page layout: wizard left, info card right (wizard first on small screens) */
.booking-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:var(--space-9);align-items:start}
@media (max-width:900px){.booking-layout{grid-template-columns:1fr}}
.booking-wizard__title{font:var(--type-h3);color:var(--text-strong);margin:0 0 var(--space-6)}
.info-card{background:var(--surface-card);box-shadow:var(--shadow-card);border-top:4px solid var(--surface-brand);padding:var(--space-7)}
.info-card__title{font:var(--type-h4);font-size:var(--size-h5);color:var(--text-strong);margin:0 0 var(--space-5)}
.info-card p{margin:0 0 var(--space-4)}
.info-card p:last-child{margin-bottom:0}
@media (min-width:901px){.info-card{position:sticky;top:calc(var(--topbar-h) + var(--header-h-scrolled) + var(--space-5))}}

/* Motion for rare or occasional moments (see plans/001-animation-opportunities.md) */
.consent-banner{transition:transform var(--duration-enter) var(--ease-out),opacity var(--duration-enter) var(--ease-out),display var(--duration-enter) allow-discrete,overlay var(--duration-enter) allow-discrete}
@starting-style{.consent-banner{transform:translateY(100%);opacity:0}}
.consent-banner.consent-banner--leaving{transform:translateY(100%);opacity:0;transition-duration:var(--duration-exit)}
.wizard-error{transition:opacity var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}
@starting-style{.wizard-error{opacity:0;transform:translateY(-4px)}}
@media (min-width:981px) and (hover:hover) and (pointer:fine){
  .site-nav__submenu{opacity:0;transform:translateY(-4px);transform-origin:top left;transition:opacity var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out),display var(--duration-fast) allow-discrete}
  .site-nav__item:hover .site-nav__submenu,.site-nav__item:focus-within .site-nav__submenu{opacity:1;transform:none}
  @starting-style{.site-nav__item:hover .site-nav__submenu,.site-nav__item:focus-within .site-nav__submenu{opacity:0;transform:translateY(-4px)}}
}
dialog.lightbox,dialog.lightbox::backdrop{transition:opacity var(--duration-base) var(--ease-out),display var(--duration-base) allow-discrete,overlay var(--duration-base) allow-discrete}
dialog.lightbox{opacity:0}
dialog.lightbox[open]{opacity:1}
dialog.lightbox::backdrop{opacity:0}
dialog.lightbox[open]::backdrop{opacity:1}
dialog.lightbox .lightbox__img{transition:transform var(--duration-base) var(--ease-out)}
dialog.lightbox:not([open]) .lightbox__img{transform:scale(.97)}
@starting-style{dialog.lightbox[open]{opacity:0}dialog.lightbox[open]::backdrop{opacity:0}dialog.lightbox[open] .lightbox__img{transform:scale(.97)}}
.success-mark{display:block;margin:0 auto var(--space-6);fill:var(--surface-brand);transition:opacity var(--duration-reveal) var(--ease-out),transform var(--duration-reveal) var(--ease-out)}
.success-mark path{fill:none;stroke:#fff;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;transition:opacity var(--duration-base) var(--ease-out) var(--duration-exit)}
@starting-style{.success-mark{opacity:0;transform:scale(.9)}.success-mark path{opacity:0}}

/* Reduced motion for the moments above: opacity only, no movement */
@media (prefers-reduced-motion:reduce){
  .consent-banner,.consent-banner.consent-banner--leaving{transform:none}
  .site-nav__submenu,.site-nav__item:hover .site-nav__submenu,.site-nav__item:focus-within .site-nav__submenu{transform:none}
  dialog.lightbox .lightbox__img,dialog.lightbox:not([open]) .lightbox__img{transform:none}
  .success-mark{transform:none}
  @starting-style{.consent-banner{transform:none}.wizard-error{transform:none}.site-nav__item:hover .site-nav__submenu,.site-nav__item:focus-within .site-nav__submenu{transform:none}dialog.lightbox[open] .lightbox__img{transform:none}.success-mark{transform:none}}
}

/* FAQ answer and booking wizard steps (plan 002) */
@supports selector(::details-content){
  .faq__item::details-content{opacity:0;transition:opacity var(--duration-exit) var(--ease-out),content-visibility var(--duration-exit) allow-discrete}
  .faq__item[open]::details-content{opacity:1}
}
@supports not selector(::details-content){
  .faq__item[open] .faq__answer{transition:opacity var(--duration-exit) var(--ease-out)}
  @starting-style{.faq__item[open] .faq__answer{opacity:0}}
}
.wizard-step{transition:opacity var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}
@starting-style{.wizard-step{opacity:0;transform:translateY(8px)}}
.date-radio,.year-choice__option{transition:var(--transition-color),transform var(--duration-fast) var(--ease-out)}
.date-radio:has(input:not(:disabled)):active,.year-choice__option:has(input:not(:disabled)):active{transform:scale(.98);transition-duration:var(--duration-press)}

/* Reduced motion for plan 002: opacity only */
@media (prefers-reduced-motion:reduce){
  .date-radio:active,.year-choice__option:active{transform:none}
  @starting-style{.wizard-step{transform:none}}
}

/* Video and cards on first view (plan 002 steps 4 and 5) */
.video-embed iframe{opacity:0;transition:opacity var(--duration-exit) var(--ease-out)}
.video-embed iframe.is-loaded{opacity:1}
.video-embed iframe:not(.is-loaded){pointer-events:none}
.video-embed__consent[hidden]{display:none}
@keyframes card-reveal{from{opacity:0;transform:translateY(12px)}}
@supports (animation-timeline:view()){
  .service-card,.team-card{animation:card-reveal linear backwards;animation-timeline:view();animation-range:entry 0% entry 35%}
}

/* Reduced motion for plan 002: cards simply appear */
@media (prefers-reduced-motion:reduce){
  .service-card,.team-card{animation:none}
}

/* Admin: editable capacity cells, saved on change */
.admin-hint{font:var(--type-small);color:var(--text-muted);margin:var(--space-4) 0 0}
.admin-capacity-form{display:contents}
.admin-number{width:84px;padding:var(--pad-field);border:1px solid var(--border-strong);border-radius:var(--radius-field);font:var(--type-body);color:var(--text-strong);background:var(--surface-card)}
.admin-number:focus{border-color:var(--border-brand);box-shadow:0 0 0 3px rgba(189,21,34,.14);outline:none}
.admin-number.is-saving{opacity:.6}
.admin-number.is-invalid{border-color:var(--surface-brand)}
.admin-save-status{display:block;font:var(--type-small);font-size:var(--size-micro);min-height:1.2em;color:var(--badge-success-fg)}
.admin-save-status--error{color:var(--surface-brand)}
.admin-table td a{font-weight:var(--weight-medium)}

/* Team group photo: full viewport width, below the portraits */
.team-photo-band{margin:0;line-height:0;background:var(--neutral-200)}
.team-photo-band img{display:block;width:100%;height:auto}

/* Google rating badge (bottom-right, real numbers from GOOGLE_RATING_* in constants.php) */
.google-badge{position:fixed;right:calc(var(--space-6) + 48px + var(--space-3));bottom:var(--space-6);z-index:89;display:flex;align-items:center;gap:6px;background:#fff;color:var(--text-strong);padding:9px 14px;border-radius:999px;box-shadow:var(--shadow-card-hover);text-decoration:none;font:var(--type-small);font-weight:var(--weight-medium)}
.google-badge:hover{color:var(--text-strong);box-shadow:var(--shadow-card-hover),0 0 0 2px var(--surface-brand)}
.google-badge__stars{display:flex;gap:1px;fill:#f6b400}
.google-badge__count{color:var(--text-muted);font-weight:var(--weight-regular)}
@media (max-width:480px){
  .google-badge{right:var(--space-6);bottom:calc(var(--space-6) + 48px + var(--space-3));padding:7px 12px}
  .google-badge__count{display:none}
}
