:root, [data-theme="light"] {
  --color-bg: #f6f2ea;
  --color-surface: #fbf7f0;
  --color-surface-2: #fdfbf7;
  --color-surface-offset: #eee6d9;
  --color-divider: #ddd2c3;
  --color-border: #d7ccb9;
  --color-text: #2b241d;
  --color-text-muted: #6b6259;
  --color-text-inverse: #f9f8f4;
  --color-primary: #0b7f86;
  --color-primary-hover: #086b71;
  --color-primary-highlight: #dcefed;
  --color-success: #6d9730;
  --color-warning: #d0a339;
  --logo-leaf: #a8cd52;
  --logo-stroke: #224b35;
  --logo-bolt: #f1cf49;
  --radius-sm: 0.375rem; --radius-md: 0.5rem; --radius-lg: 0.75rem; --radius-xl: 1rem; --radius-2xl: 1.5rem; --radius-full: 9999px;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.06); --shadow-md: 0 8px 24px rgba(0,0,0,.08); --shadow-lg: 0 20px 50px rgba(0,0,0,.12);
  --text-xs: clamp(.75rem,.7rem + .25vw,.875rem);
  --text-sm: clamp(.875rem,.8rem + .35vw,1rem);
  --text-base: clamp(1rem,.95rem + .25vw,1.125rem);
  --text-lg: clamp(1.125rem,1rem + .75vw,1.5rem);
  --text-xl: clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl: clamp(2rem,1.2rem + 2.5vw,3.8rem);
  --text-3xl: clamp(2.6rem,1rem + 4vw,5.6rem);
  --space-2: .5rem; --space-3: .75rem; --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem; --space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem; --space-16: 4rem; --space-20: 5rem; --space-24: 6rem;
  --font-display: 'Instrument Serif', Georgia, serif;
  --font-logo: 'Cormorant Garamond', Georgia, serif;
  --font-body: 'Work Sans', 'Helvetica Neue', sans-serif;
}
[data-theme="dark"] {
  --color-bg: #171513; --color-surface: #1d1a17; --color-surface-2: #211e1a; --color-surface-offset: #28231d; --color-divider: #312b24; --color-border: #3d372f; --color-text: #d7d0c7; --color-text-muted: #9e958a; --color-text-inverse: #181613; --color-primary: #56aab0; --color-primary-hover: #73bcc1; --color-primary-highlight: #263b3c; --color-success: #90b65a; --color-warning: #e0b65b; --logo-leaf: #4d6a28; --logo-stroke: #9fd1d5; --logo-bolt: #eccb5a; --shadow-sm: 0 1px 2px rgba(0,0,0,.2); --shadow-md: 0 8px 24px rgba(0,0,0,.26); --shadow-lg: 0 20px 50px rgba(0,0,0,.4);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth}
body{min-height:100dvh;font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;background:var(--color-bg);color:var(--color-text)}
a{text-decoration:none;color:inherit} img,svg{display:block;max-width:100%;height:auto} button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.container-wide{width:100%;max-width:1680px;margin:0 auto;padding-inline:clamp(20px,2vw,40px)}
.site-header{position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--color-bg) 90%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.07)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:18px}
.logo{position:relative;display:inline-flex;align-items:center;width:clamp(280px,24vw,360px);height:74px;min-width:0;flex:0 0 auto;color:var(--color-text);isolation:isolate;background:url("./assets/greenwatt-logo-horizontal.png") left center/contain no-repeat;transition:transform .22s ease,filter .22s ease}
[data-theme="dark"] .logo{background-image:url("./assets/greenwatt-logo-horizontal.png")}
.logo:hover{transform:translateY(-2px);filter:drop-shadow(0 10px 18px rgba(11,127,134,.16))}
.logo-mark,.logo-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.logo-text{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;padding:7px 12px 8px 0}
.logo-text::before{content:"";position:absolute;z-index:-1;left:-15px;right:-14px;top:-7px;bottom:-7px;border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 16%, transparent),transparent 62%);opacity:0;transform:scale(.97);transition:opacity .22s ease,transform .22s ease}
.logo:hover .logo-text::before{opacity:1;transform:scale(1)}
.logo-name{position:relative;display:block;font-family:var(--font-body);font-size:2.42rem;font-weight:800;line-height:.88;letter-spacing:0;color:transparent;background:linear-gradient(90deg,var(--color-text) 0%,var(--color-primary) 58%,var(--color-success) 100%);-webkit-background-clip:text;background-clip:text;white-space:nowrap}
.logo-name::after{content:"";display:block;width:100%;height:4px;margin-top:7px;border-radius:999px;background:linear-gradient(90deg,var(--color-success),var(--color-primary) 62%,transparent);transform:skewX(-18deg);transform-origin:left}
.logo-sub{display:inline-flex;align-items:center;font-size:.86rem;line-height:1.1;letter-spacing:0;text-transform:none;color:var(--color-primary);font-weight:800;white-space:nowrap;padding:0}
.mobile-menu .logo{width:300px;height:68px}
.mobile-menu .logo-name{font-size:2.5rem}
.footer-logo{width:330px;height:70px;background-image:url("./assets/greenwatt-logo-horizontal.png")}
[data-theme="dark"] .footer-logo{background-image:url("./assets/greenwatt-logo-horizontal.png")}
.footer-logo .logo-name{font-size:2.05rem}
.footer-logo .logo-sub{font-size:.78rem;padding:0}
.site-nav{display:flex;gap:18px;align-items:center}.site-nav a{position:relative;font-size:var(--text-sm);font-weight:600;color:var(--color-text-muted);padding:10px 14px;border-radius:999px;transition:color .18s ease,background-color .18s ease,transform .18s ease}.site-nav a::after{content:"";position:absolute;left:14px;right:14px;bottom:7px;height:2px;border-radius:999px;background:var(--color-primary);transform:scaleX(0);transform-origin:left;transition:transform .18s ease}.site-nav a:hover,.site-nav a.active,.site-nav a:focus-visible{color:var(--color-primary);background:var(--color-primary-highlight);transform:translateY(-1px)}.site-nav a:hover::after,.site-nav a.active::after,.site-nav a:focus-visible::after{transform:scaleX(1)}
.header-actions{display:flex;align-items:center;gap:12px}.btn-theme,.icon-btn,.hamburger{width:40px;height:40px;border:none;background:transparent;border-radius:999px;display:grid;place-items:center;cursor:pointer}.hamburger{display:none}.btn-theme:hover,.icon-btn:hover,.hamburger:hover{background:var(--color-surface-offset)}
.btn-cta,.btn-secondary,.btn-cta-white,.btn-ghost-white{display:inline-flex;align-items:center;gap:10px;border-radius:999px;padding:12px 20px;font-size:var(--text-sm);font-weight:700;transition:.18s ease;border:none;cursor:pointer}
.btn-cta{background:var(--color-primary);color:var(--color-text-inverse)} .btn-cta:hover{background:var(--color-primary-hover)}
.btn-secondary{border:1px solid var(--color-border);background:transparent}.btn-secondary:hover{border-color:var(--color-primary);color:var(--color-primary)}
.hero{padding:clamp(48px,7vw,100px) 0}.hero-grid{display:grid;grid-template-columns:1.24fr .96fr;gap:clamp(32px,5vw,72px);align-items:center}.hero-eyebrow,.section-label{display:inline-block;font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-primary);margin-bottom:14px}.section-label.light{color:#dff6f3}.hero h1,.page-hero h1{font-family:var(--font-display);font-size:var(--text-3xl);line-height:1.02;max-width:14ch}.hero h1{font-size:clamp(2.35rem,1.2rem + 2.7vw,4.45rem);max-width:18ch}.hero h1 em{font-style:italic;color:var(--color-primary)}.hero-lead,.section-lead{font-size:var(--text-lg);color:var(--color-text-muted);max-width:58ch;line-height:1.65}.hero-lead{max-width:62ch}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}.hero-trust{display:flex;gap:18px;flex-wrap:wrap;margin-top:24px}.hero-trust-badge{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--color-text-muted)}.hero-trust-badge i,.feature-item i{color:var(--color-success)}
.hero-image-card,.media-card{border-radius:var(--radius-2xl);overflow:hidden;box-shadow:var(--shadow-lg);background:var(--color-surface-offset)}.hero-image-card img,.media-card img{width:100%;height:100%;object-fit:cover}.hero-image-card{aspect-ratio:16/11}.media-card{aspect-ratio:4/3}
.hero-visual{position:relative}.hero-floating-card{position:absolute;left:-24px;bottom:24px;max-width:280px;background:var(--color-surface);border:1px solid rgba(0,0,0,.08);padding:18px;border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.floating-kicker{display:block;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--color-primary);margin-bottom:6px}.hero-floating-card p{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:6px}
.section{padding:clamp(52px,8vw,100px) 0}.section-alt{background:var(--color-surface)}.section-head{margin-bottom:28px}.section-title{font-family:var(--font-display);font-size:var(--text-2xl);margin-bottom:14px;max-width:14ch}
.card-grid{display:grid;gap:20px}.card-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.info-card,.contact-card{background:var(--color-surface-2);border:1px solid rgba(0,0,0,.07);border-radius:var(--radius-xl);padding:28px;box-shadow:var(--shadow-sm)}#impressum{scroll-margin-top:110px}.info-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.card-icon{width:28px;height:28px;color:var(--color-primary);margin-bottom:16px}.info-card h3,.contact-card h3{font-size:var(--text-lg);margin-bottom:10px}.info-card p,.contact-card p,.footer-text{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.7}
.service-trigger{width:100%;text-align:left;color:inherit;font:inherit;cursor:pointer}.service-trigger:focus-visible{outline-offset:4px}.service-card-hint{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary)}.service-card-hint i{width:16px;height:16px}
.service-modal{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:24px}.service-modal[hidden]{display:none}.service-modal-backdrop{position:absolute;inset:0;background:rgba(16,18,20,.58);backdrop-filter:blur(8px)}.service-modal-dialog{position:relative;width:min(820px,100%);max-height:min(86dvh,920px);overflow:auto;background:var(--color-surface-2);border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-2xl);padding:32px;box-shadow:var(--shadow-lg)}.service-modal-close{position:absolute;top:18px;right:18px;z-index:1}.service-modal-head{display:flex;align-items:flex-start;gap:18px;padding-right:56px;margin-bottom:18px}.service-modal-icon{width:56px;height:56px;border-radius:18px;background:var(--color-primary-highlight);display:grid;place-items:center;color:var(--color-primary);flex-shrink:0}.service-modal-icon i{width:28px;height:28px}.service-modal-title{font-family:var(--font-display);font-size:clamp(2rem,1.5rem + 1vw,3rem);line-height:1.02}.service-modal-lead{font-size:var(--text-lg);color:var(--color-text-muted);max-width:56ch;margin-bottom:22px}.service-modal-grid{display:grid;grid-template-columns:1.15fr .95fr;gap:18px}.service-modal-panel{padding:22px;border-radius:var(--radius-xl);border:1px solid rgba(0,0,0,.06);background:var(--color-surface)}.service-modal-panel h4{font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);margin-bottom:12px}.service-modal-panel p{color:var(--color-text-muted);line-height:1.75}.service-modal-list{list-style:none;display:flex;flex-direction:column;gap:12px}.service-modal-list li{display:flex;align-items:flex-start;gap:10px;color:var(--color-text-muted);line-height:1.65}.service-modal-list li::before{content:"";width:8px;height:8px;margin-top:10px;border-radius:999px;background:var(--color-success);flex-shrink:0}.service-modal-footer{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-top:20px;padding-top:20px;border-top:1px solid rgba(0,0,0,.08)}.service-modal-example{color:var(--color-text-muted);max-width:44ch;line-height:1.7}.service-modal-actions{display:flex;gap:12px;flex-wrap:wrap}
.booking-modal{position:fixed;inset:0;z-index:320;display:grid;place-items:center;padding:24px}.booking-modal[hidden]{display:none}.booking-modal-backdrop{position:absolute;inset:0;background:rgba(16,18,20,.62);backdrop-filter:blur(8px)}.booking-modal-dialog{position:relative;width:min(1120px,100%);max-height:min(88dvh,980px);overflow:auto;background:var(--color-surface-2);border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-2xl);padding:32px;box-shadow:var(--shadow-lg)}.booking-modal-close{position:absolute;top:18px;right:18px;z-index:1}.booking-modal-head{display:flex;justify-content:space-between;gap:20px;padding-right:56px;margin-bottom:24px}.booking-modal-title{font-family:var(--font-display);font-size:clamp(2rem,1.45rem + 1vw,3rem);line-height:1.02;margin-bottom:10px}.booking-modal-lead{max-width:62ch;color:var(--color-text-muted);line-height:1.75}.booking-head-note{display:flex;flex-direction:column;gap:4px;min-width:250px;padding:18px;border-radius:var(--radius-xl);background:linear-gradient(135deg,var(--color-surface),var(--color-primary-highlight));border:1px solid rgba(0,0,0,.06)}.booking-head-note strong{font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary)}.booking-head-note span{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.65}.booking-layout{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:20px}.booking-calendar-panel,.booking-side-panel{padding:24px;border-radius:var(--radius-xl);border:1px solid rgba(0,0,0,.06);background:var(--color-surface)}.booking-month-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.booking-month-label{font-family:var(--font-display);font-size:var(--text-xl)}.booking-legend{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:18px;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);font-weight:700}.booking-legend span{display:inline-flex;align-items:center;gap:8px}.legend-swatch{width:12px;height:12px;border-radius:999px;background:var(--color-divider);display:inline-block}.legend-swatch.available{background:var(--color-primary)}.legend-swatch.reserved{background:#b8b2aa}.legend-swatch.pending{background:var(--color-warning)}.booking-weekdays,.booking-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.booking-weekdays{margin-bottom:10px}.booking-weekdays span{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);text-align:center}.booking-day{min-height:72px;border-radius:18px;border:1px solid rgba(0,0,0,.08);background:var(--color-surface-2);padding:10px;display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.booking-day:hover{transform:translateY(-1px);border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.booking-day.is-selected{background:var(--color-primary-highlight);border-color:var(--color-primary)}.booking-day.is-muted{opacity:.45;pointer-events:none}.booking-day.is-disabled{background:var(--color-surface-offset);color:var(--color-text-muted);pointer-events:none}.booking-day.is-disabled .booking-day-state{color:var(--color-text-muted)}.booking-day-number{font-weight:700;display:block;width:100%;text-align:left}.booking-day-state{font-size:var(--text-xs);color:var(--color-primary);line-height:1.3;display:block;width:100%;text-align:center;overflow-wrap:anywhere;word-break:break-word}.booking-slot-head{margin-bottom:16px}.booking-slot-kicker{font-size:var(--text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);margin-bottom:6px}.booking-slot-head h4{font-family:var(--font-display);font-size:var(--text-xl);margin-bottom:8px}.booking-slot-copy{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.65}.booking-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:18px}.booking-slot{border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:12px 14px;background:var(--color-surface-2);font-size:var(--text-sm);font-weight:700;cursor:pointer;text-align:left;transition:transform .18s ease,border-color .18s ease,background-color .18s ease,color .18s ease}.booking-slot:hover{transform:translateY(-1px)}.booking-slot.is-selected,.booking-slot.is-available:hover{border-color:var(--color-primary);background:var(--color-primary-highlight);color:var(--color-primary)}.booking-slot.is-reserved,.booking-slot.is-unavailable{background:var(--color-surface-offset);color:var(--color-text-muted);cursor:not-allowed}.booking-slot.is-pending{background:color-mix(in srgb,var(--color-warning) 16%, var(--color-surface-2));border-color:color-mix(in srgb,var(--color-warning) 38%, rgba(0,0,0,.1));color:var(--color-warning);cursor:not-allowed}.booking-summary{padding:18px;border-radius:18px;background:linear-gradient(135deg,var(--color-surface-2),var(--color-primary-highlight));border:1px solid rgba(0,0,0,.06);margin-bottom:18px}.booking-summary strong{display:block;margin-bottom:6px}.booking-summary p{font-size:var(--text-sm);line-height:1.7;color:var(--color-text-muted)}.booking-form{display:grid;gap:14px}.booking-form label{display:grid;gap:8px;font-size:var(--text-sm);font-weight:600}.booking-service-fieldset{border:1px solid rgba(0,0,0,.08);border-radius:20px;padding:18px 18px 16px;background:var(--color-surface-2)}.booking-service-fieldset legend{padding:0 8px;font-size:var(--text-sm);font-weight:700}.booking-service-help{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:12px}.booking-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.booking-service-option{display:flex!important;align-items:center;gap:10px;padding:12px 14px;border:1px solid rgba(0,0,0,.08);border-radius:16px;background:var(--color-surface);cursor:pointer;transition:border-color .18s ease,background-color .18s ease,transform .18s ease}.booking-service-option:hover{transform:translateY(-1px);border-color:var(--color-primary)}.booking-service-option input{width:18px;height:18px;accent-color:var(--color-primary)}.booking-service-option span{font-size:var(--text-sm);font-weight:600;line-height:1.4}.booking-service-option:has(input:checked){border-color:var(--color-primary);background:var(--color-primary-highlight)}.booking-service-option-other{grid-column:1 / -1}.booking-other-service{margin-top:12px}.booking-form input,.booking-form textarea{width:100%;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface-2);padding:14px 16px;color:var(--color-text);transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.booking-form input:focus-visible,.booking-form textarea:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 18%, transparent)}.booking-form textarea{resize:vertical;min-height:110px}.booking-form button[disabled]{opacity:.55;cursor:not-allowed}.booking-status{min-height:1.5em;font-size:var(--text-sm);font-weight:600;color:var(--color-text-muted)}.booking-status[data-state="success"]{color:var(--color-success)}.booking-status[data-state="error"]{color:#b94a48}
.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}.feature-list{display:flex;flex-direction:column;gap:14px;margin-top:26px}.feature-item{display:flex;align-items:flex-start;gap:10px;font-size:var(--text-base)}
.cta-section{background:var(--color-primary);color:var(--color-text-inverse);padding:44px 0}.cta-inner{display:flex;justify-content:space-between;gap:24px;align-items:center}.cta-inner h2{font-family:var(--font-display);font-size:var(--text-2xl);max-width:12ch}.btn-cta-white{background:#fff;color:var(--color-primary)}.btn-ghost-white{border:1px solid rgba(255,255,255,.35);color:#fff}.btn-ghost-white:hover{background:rgba(255,255,255,.08)}
.page-hero{padding:56px 0 24px}.page-hero h1{margin-bottom:12px}
.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.impressum-card{grid-column:1 / -1}.impressum-card a{overflow-wrap:anywhere}.impressum-kicker{font-weight:700;color:var(--color-primary)!important;text-transform:uppercase;letter-spacing:.08em;margin-bottom:18px}.impressum-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:18px}.impressum-card h4{font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);margin-bottom:8px}.impressum-note{margin-top:24px;padding-top:22px;border-top:1px solid rgba(0,0,0,.08)}.impressum-meta{margin-top:16px;font-size:var(--text-xs)!important}
.legal-layout{max-width:1120px}.legal-panel{background:var(--color-surface-2);border:1px solid rgba(0,0,0,.07);border-radius:var(--radius-xl);padding:clamp(26px,4vw,54px);box-shadow:var(--shadow-sm)}.legal-panel h2{font-size:var(--text-lg);margin:34px 0 10px}.legal-panel h2:first-child{margin-top:0}.legal-panel p{color:var(--color-text-muted);line-height:1.8;margin-top:10px}.legal-panel a{color:var(--color-primary);font-weight:700;overflow-wrap:anywhere}
.booking-contact-panel{margin-top:24px}
.site-footer{border-top:1px solid var(--color-divider);padding:40px 0}
.footer-certifications{margin-bottom:36px;padding:28px 32px;border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-2xl);background:linear-gradient(180deg,var(--color-surface-2),var(--color-surface));box-shadow:var(--shadow-sm)}
.footer-certifications-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:24px}
.footer-certifications-copy{max-width:56ch}
.footer-certifications-copy h3{font-family:var(--font-display);font-size:var(--text-xl);margin-bottom:8px}
.footer-certifications-copy p{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.7}
.footer-certifications-note{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);font-weight:700;white-space:nowrap}
.certification-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.certification-card{min-height:150px;padding:22px;border:1px solid rgba(0,0,0,.06);border-radius:var(--radius-xl);background:color-mix(in srgb,var(--color-surface-2) 88%, transparent);display:flex;flex-direction:column;justify-content:space-between;gap:18px}
.certification-card small{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}
.certification-mark{display:flex;flex-direction:column;gap:6px}
.certification-mark strong{font-size:clamp(1.5rem,1.1rem + 1vw,2.1rem);line-height:1;font-weight:700;letter-spacing:-.03em}
.certification-mark span{font-size:var(--text-sm);line-height:1.45;color:var(--color-text-muted)}
.certification-mark .cert-subline{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}
.cert-dena strong{font-size:clamp(2.6rem,2rem + 1.2vw,4rem);font-weight:500;letter-spacing:-.05em}
.cert-dena .cert-accent{height:6px;width:100%;max-width:180px;border-radius:999px;background:linear-gradient(90deg,#d22f27 0 26%,#e57a1f 26% 52%,#f0ba21 52% 78%,#ebc94d 78% 100%)}
.cert-bafa .cert-badge{display:flex;align-items:flex-start;gap:12px}
.cert-bafa .cert-badge::before{content:"";display:block;width:12px;height:64px;border-radius:999px;background:linear-gradient(180deg,#111 0 33%,#b71c1c 33% 66%,#f2c230 66% 100%);flex-shrink:0}
.cert-bafa strong{font-size:1.15rem;letter-spacing:-.02em}
.cert-eee strong,.cert-kfw strong{color:var(--color-primary)}
.cert-eee strong{font-size:2rem}
.cert-kfw strong{font-size:clamp(2.8rem,2.3rem + 1vw,4rem);letter-spacing:-.08em}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:28px}.footer-logo{margin-bottom:14px}.footer-grid h4{font-size:var(--text-sm);margin-bottom:14px}.footer-links{list-style:none;display:flex;flex-direction:column;gap:8px}.footer-links a:hover{color:var(--color-primary)}.footer-links li{font-size:var(--text-sm);color:var(--color-text-muted)}
.mobile-menu{display:none;position:fixed;inset:0;background:var(--color-bg);z-index:200;padding:24px;flex-direction:column;gap:28px}.mobile-menu.open{display:flex}.mobile-menu-header{display:flex;justify-content:space-between;align-items:center}.mobile-menu nav{display:flex;flex-direction:column;gap:10px}.mobile-menu nav a{font-family:var(--font-display);font-size:var(--text-xl);padding-block:6px}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}.reveal.visible{opacity:1;transform:none}
.booking-service-grid{grid-template-columns:1fr}
.booking-service-option{display:grid!important;grid-template-columns:22px minmax(0,1fr);align-items:center;column-gap:12px;min-height:58px;padding:14px 16px}
.booking-service-option input{margin:0}
.booking-service-option-other{grid-column:auto}
.booking-service-label{width:100%}
.booking-service-label{display:inline-flex;align-items:center;gap:10px}
.booking-service-label i{width:16px;height:16px;color:var(--color-primary);flex-shrink:0}
.card-grid.services-grid-four{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.services-grid-four .info-card{min-height:248px;padding:22px;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--color-surface-2),color-mix(in srgb,var(--color-surface-2) 88%,var(--color-primary-highlight)));position:relative;overflow:hidden}
.services-grid-four .info-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--color-primary),color-mix(in srgb,var(--color-primary) 35%,transparent));opacity:.72}
.services-grid-four .card-icon{width:24px;height:24px;margin-bottom:14px}
.services-grid-four .info-card h3{font-size:1.12rem;line-height:1.18;margin-bottom:8px}
.services-grid-four .info-card p{line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.service-modal-funding{padding:14px 16px;border-radius:var(--radius-lg);background:var(--color-primary-highlight);border:1px solid color-mix(in srgb,var(--color-primary) 24%,transparent);color:var(--color-primary);font-size:var(--text-sm);font-weight:700;line-height:1.55;max-width:38ch}
.service-modal-dialog{width:min(1040px,100%);padding:38px;background:linear-gradient(145deg,var(--color-surface-2),var(--color-surface));border-color:color-mix(in srgb,var(--color-primary) 18%,rgba(0,0,0,.08))}
.service-modal-head{align-items:center;margin-bottom:20px}
.service-modal-icon{width:62px;height:62px;border-radius:22px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-primary) 12%,transparent)}
.service-modal-lead{max-width:72ch;margin-left:80px;margin-top:-8px}
.service-modal-grid{grid-template-columns:1fr 1fr;gap:20px;align-items:stretch}
.service-modal-panel{padding:26px;background:color-mix(in srgb,var(--color-surface) 86%,var(--color-primary-highlight));box-shadow:var(--shadow-sm)}
.service-modal-panel p,.service-modal-list li{font-size:var(--text-base);line-height:1.72}
.service-modal-footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch}
.service-modal-example,.service-modal-funding{max-width:none;margin:0}
.service-modal-example,.service-modal-funding{min-height:170px;padding:26px;border-radius:var(--radius-xl);border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow-sm);line-height:1.72}
.service-modal-example{background:color-mix(in srgb,var(--color-surface) 86%,var(--color-primary-highlight));color:var(--color-text-muted)}
.service-modal-funding{background:color-mix(in srgb,var(--color-primary-highlight) 78%,var(--color-surface));color:var(--color-primary);font-size:var(--text-base)}
.service-modal-actions{grid-column:1 / -1;align-self:center;justify-self:end;display:flex;gap:12px;flex-wrap:wrap;padding-top:2px}
.services-grid-four .service-card-hint{margin-top:auto;padding-top:14px}
.service-title-two-lines{max-width:none}
.service-title-two-lines span{display:block;white-space:nowrap}
.cta-title-two-lines{max-width:none!important}
.cta-title-two-lines span{display:block;white-space:nowrap}
.funding-trigger{display:flex;flex-direction:column}
.funding-trigger .service-card-hint{margin-top:auto;padding-top:18px}
@media (max-width: 1180px){.card-grid.services-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 1100px){.service-modal-dialog{width:min(920px,100%)}.service-modal-lead{margin-left:0}.service-modal-footer{grid-template-columns:1fr 1fr}.service-modal-actions{grid-column:1 / -1;justify-self:start}}
@media (max-width: 980px){.impressum-columns{grid-template-columns:1fr}}
.booking-calendar-panel{display:flex;flex-direction:column}
.booking-slot-head{margin-top:22px}
.booking-side-panel{align-self:start}
.booking-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:16px}
.booking-slot{min-height:50px;padding:10px 12px;border-radius:14px;font-size:.96rem;line-height:1.2;text-align:center;display:flex;align-items:center;justify-content:center}
.booking-slot-copy{margin-bottom:14px}
@media (max-width: 980px){.site-nav,.header-actions .btn-cta{display:none}.hamburger{display:grid}.hero-grid,.split-grid,.cta-inner,.footer-grid,.contact-grid,.card-grid.three,.certification-grid,.service-modal-grid,.booking-layout,.booking-slots,.booking-service-grid{grid-template-columns:1fr}.footer-certifications-head,.service-modal-footer,.booking-modal-head{flex-direction:column;align-items:flex-start}.service-modal-footer{display:flex}.hero-floating-card{position:static;margin-top:16px;max-width:100%}.cta-inner{align-items:flex-start}.hero h1,.page-hero h1,.section-title,.cta-inner h2,.service-modal-lead{max-width:none}.service-modal,.booking-modal{padding:16px}.service-modal-dialog,.booking-modal-dialog{padding:24px}.service-modal-head,.booking-modal-head{padding-right:40px}.service-modal-lead{margin-left:0}.service-modal-example,.service-modal-funding{min-height:auto}.service-modal-actions{justify-self:start}.booking-day{min-height:64px}}
@media (max-width: 520px){.header-inner{padding-block:14px}.logo{width:215px;height:54px}.logo-text{gap:5px;padding-block:5px}.logo-name{font-size:2.08rem}.logo-sub{font-size:.76rem;padding:0}.logo-name::after{height:3px;margin-top:6px}.mobile-menu .logo{width:260px;height:60px}.mobile-menu .logo-name{font-size:2.2rem}.footer-logo{width:280px;height:60px}}
