/* fonts.css */
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrEtFmSq17w.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrEtMmSq17w.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrEtHmSq17w.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrEtGmSq17w.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrEtImSo.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrEtFmSq17w.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrEtMmSq17w.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrEtHmSq17w.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrEtGmSq17w.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/co3ZmX5slCNuHLi8bLeY9MK7whWMhyjYrEtImSo.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggqxSuXd.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggOxSuXd.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggSxSuXd.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggixSuXd.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggmxSuXd.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggexSg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggqxSuXd.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggOxSuXd.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggSxSuXd.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggixSuXd.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggmxSuXd.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggexSg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggqxSuXd.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggOxSuXd.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggSxSuXd.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggixSuXd.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggmxSuXd.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggexSg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggqxSuXd.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggOxSuXd.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggSxSuXd.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggixSuXd.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggmxSuXd.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggexSg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggqxSuXd.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggOxSuXd.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggSxSuXd.woff2) format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggixSuXd.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggmxSuXd.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/fonts/xn7gYHE41ni1AdIRggexSg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* styles.css */
/*
 * PUZZLE GYM — Visuelles System
 * Inhalte, Dokumentstruktur, Links und JavaScript bleiben unverändert.
 * 01 Tokens · 02 Basis · 03 Navigation · 04 Komponenten · 05 Seiten · 06 Responsivität
 */
:root {
  color-scheme: light;
  --ink: #212521;
  --muted: #626960;
  --gold: #b59b68;
  --gold-dark: #756039;
  --gold-light: #e5d7b8;
  --paper: #fbfaf7;
  --white: #fff;
  --sand: #f0eee7;
  --sage: #e9eee5;
  --line: #e0e2d9;
  --line-strong: #bfc5b8;
  --font-body: Manrope, Arial, sans-serif;
  --font-editorial: 'Cormorant Garamond', Georgia, serif;
  --text-xs: 1rem;
  --text-sm: 1rem;
  --text-body: 1.125rem;
  --text-lead: clamp(1rem, 1.35vw, 1.125rem);
  --title-xl: clamp(3.5rem, 6.8vw, 6.75rem);
  --title-lg: clamp(2.625rem, 4.5vw, 4.5rem);
  --title-md: clamp(1.5rem, 2.2vw, 2rem);
  --space-1: 8px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 32px;
  --space-5: 48px;
  --space-6: 64px;
  --section-space: clamp(64px, 8vw, 120px);
  --gutter: clamp(22px, 4.5vw, 72px);
  --container: 1440px;
  --radius-sm: 10px;
  --radius-md: 20px;
  --radius-lg: 32px;
  --radius-pill: 999px;
  --shadow: 0 12px 36px #20271a08, 0 2px 6px #20271a04;
  --shadow-hover: 0 24px 56px #20271a12, 0 4px 12px #20271a06;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --duration-fast: 180ms;
  --duration: 360ms;
  --duration-reveal: 700ms;
}

/* Basis und zugängliche Interaktion */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 130px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--font-body); font-size: var(--text-body); line-height: 1.7; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, summary { cursor: pointer; }
button { color: inherit; }
button, a { touch-action: manipulation; }
button, a, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }
p { margin: 0 0 1.25em; color: var(--muted); }
h1, h2, h3 { margin: 0; font-weight: 500; line-height: 1.08; letter-spacing: -.045em; text-wrap: balance; }
h1 { font-size: var(--title-xl); }
h2 { font-size: var(--title-lg); }
h3 { font-size: var(--title-md); line-height: 1.2; letter-spacing: -.025em; }
em { font-family: var(--font-editorial); font-weight: 500; color: var(--gold-dark); letter-spacing: -.03em; }
main section > * { min-width: 0; }
::selection { background: var(--gold-light); color: var(--ink); }
:focus-visible { outline: 3px solid var(--gold-dark); outline-offset: 5px; }
.skip-link { position: fixed; z-index: 100; top: -100px; left: 24px; padding: 14px 22px; background: white; border-radius: var(--radius-sm); box-shadow: var(--shadow); }
.skip-link:focus { top: 12px; }
.eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 var(--space-3); color: var(--gold-dark); font-size: var(--text-xs); font-weight: 700; letter-spacing: .16em; line-height: 1.6; text-transform: uppercase; }
.gold-line { width: 32px; height: 2px; background: var(--gold); border-radius: 2px; flex-shrink: 0; }
.section { max-width: var(--container); padding: var(--section-space) var(--gutter); margin: auto; }

/* Navigation: kompakte, schwebende Markenleiste */
.site-header { position: sticky; top: 16px; z-index: 50; display: flex; align-items: center; gap: 28px; width: calc(100% - 48px); max-width: 1392px; min-height: 84px; margin: 16px auto 0; padding: 14px 24px; background: #fffefbeF; border: 1px solid #e2e2d8; border-radius: var(--radius-pill); box-shadow: 0 6px 26px #20271a04; backdrop-filter: blur(22px); transition: box-shadow var(--duration), background var(--duration); }
.site-header.is-scrolled { background: #fffffff5; box-shadow: 0 10px 40px #20271a10; }
.brand { display: inline-flex; align-items: center; flex-shrink: 0; }
.logo-crop { position: relative; display: block; overflow: hidden; width: 162px; aspect-ratio: 4 / 1; mix-blend-mode: multiply; }
.logo-crop img { position: absolute; max-width: none; width: 122.4%; height: auto; left: -11.2%; top: 50%; transform: translateY(-50%); }
.main-nav { display: flex; gap: 26px; align-items: center; margin-left: auto; font-size: var(--text-sm); font-weight: 600; }
.main-nav a { position: relative; padding: 12px 0; white-space: nowrap; transition: color var(--duration-fast); }
.main-nav a::after { position: absolute; content: ''; left: 0; bottom: 5px; width: 100%; height: 2px; border-radius: 2px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform var(--duration) var(--ease); }
.main-nav a:last-child { color: var(--gold-dark); }
.main-nav a:hover, .main-nav a[aria-current] { color: var(--gold-dark); }
.main-nav a:hover::after, .main-nav a[aria-current]::after { transform: scaleX(1); }
.header-cta { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 48px; padding: 12px 20px; border: 1px solid var(--ink); border-radius: var(--radius-pill); background: var(--ink); color: white; white-space: nowrap; font-size: var(--text-sm); font-weight: 600; transition: background var(--duration), box-shadow var(--duration); }
.header-cta:hover { background: #404b3c; box-shadow: 0 5px 15px #20271a14; }
.nav-toggle { display: none; }

/* Buttons, Links, Karten und visuelle Überschriften */
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 56px; padding: 16px 24px; border: 1px solid transparent; border-radius: var(--radius-pill); font-size: var(--text-sm); line-height: 1.5; font-weight: 700; transition: transform var(--duration) var(--ease), background var(--duration), border-color var(--duration), box-shadow var(--duration); }
.button > span { font-size: 20px; line-height: 1; font-weight: 400; transition: transform var(--duration) var(--ease); }
.button-primary { background: linear-gradient(115deg, #dfcdaa, #c5ad80); color: #28271f; border-color: #c7b28a; box-shadow: 0 3px 7px #a58d5710; }
.button-outline, .button-ghost { background: transparent; color: var(--ink); border-color: var(--line-strong); }
.text-link { display: inline-flex; align-items: center; gap: 18px; min-height: 48px; padding: 9px 0; border-bottom: 1px solid var(--line-strong); font-size: var(--text-sm); font-weight: 600; transition: color var(--duration), border-color var(--duration); }
.text-link > span { transition: transform var(--duration) var(--ease); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: var(--space-5); margin-bottom: var(--space-5); }
.section-heading > p { max-width: 360px; margin: 0 0 4px; font-size: var(--text-body); }
.center-heading { text-align: center; margin-bottom: var(--space-5); }
.center-heading .eyebrow { justify-content: center; }
.center-heading > p:last-child { margin: var(--space-3) 0 0; font-size: var(--text-lead); }

/* Startseite / Hero */
.hero { display: grid; grid-template-columns: 1.1fr 1fr; gap: 5%; align-items: center; max-width: var(--container); min-height: 750px; margin: auto; padding: 58px var(--gutter) 74px; }
.hero-copy { padding: var(--space-3) 0; }
.hero .eyebrow { margin-bottom: var(--space-4); }
.hero h1 { line-height: 1.02; margin-bottom: var(--space-4); }
.hero h1 em { display: inline-block; font-size: 1.1em; }
.hero-description { font-size: var(--text-lead); line-height: 1.85; margin-bottom: var(--space-4); }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; }
.hero-note { display: flex; align-items: center; gap: var(--space-2); margin-top: var(--space-4); }
.hero-note p { margin: 0; font-size: var(--text-xs); line-height: 1.8; }
.hero-note strong { display: block; color: var(--ink); font-size: var(--text-sm); font-weight: 600; }
.hero-note span:not(.mini-mark) { font-size: var(--text-xs); }
.mini-mark { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid #dcd4c2; border-radius: 50%; color: var(--gold-dark); background: #f5f1e7; font-size: 23px; flex-shrink: 0; }
.hero-visual { position: relative; padding: 0 16px 22px 0; }
.hero-visual::before { content: ''; position: absolute; inset: 18px 0 0 20px; border-radius: var(--radius-lg); border: 1px solid #d3c5a8; background: #eee7d7; }
.hero-photo { height: 595px; position: relative; overflow: hidden; border-radius: var(--radius-lg); background: #dadbd3; box-shadow: var(--shadow); }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 56% center; animation: photo-arrive 1.4s var(--ease) both; }
.hero-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, #182018a8); pointer-events: none; }
.hero-photo-caption { display: flex; align-items: center; justify-content: space-between; gap: 12px; position: absolute; bottom: 25px; left: 28px; right: 28px; z-index: 1; color: white; font-size: var(--text-sm); }
.hero-photo-caption > span:last-child { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid #ffffff70; border-radius: 50%; font-size: 22px; }
.hero-seal { position: absolute; left: -30px; top: 35px; width: 154px; padding: 19px 22px; border: 1px solid #ffffffd9; border-radius: var(--radius-md); background: #fffdf5ed; box-shadow: 0 16px 36px #17211518; backdrop-filter: blur(15px); text-align: center; transform: rotate(-5deg); }
.hero-seal span { display: block; font-size: 1rem; font-weight: 700; letter-spacing: .15em; }
.hero-seal strong { display: block; font-family: var(--font-editorial); font-size: 38px; line-height: 1.2; font-style: italic; font-weight: 500; color: var(--gold-dark); margin: 4px 0; }
.vertical-note { position: absolute; right: 21px; top: 28px; writing-mode: vertical-rl; color: #fff; text-shadow: 0 1px 5px #0009; font-size: 1rem; letter-spacing: .22em; z-index: 1; }
.brand-strip { display: flex; align-items: center; justify-content: space-around; gap: 22px; width: calc(100% - 2 * var(--gutter)); max-width: 1296px; padding: 26px 24px; margin: 0 auto; border: 1px solid var(--line); background: white; border-radius: var(--radius-pill); }
.brand-strip span { font-size: var(--text-xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.brand-strip i { font-size: 1rem; font-style: normal; color: var(--gold); }

/* Intro / Areas */
.intro { display: grid; grid-template-columns: .55fr 1fr; gap: 24px 8%; align-items: start; padding-top: var(--section-space); padding-bottom: var(--section-space); }
.intro .eyebrow { grid-column: 1; padding-top: 10px; max-width: 200px; }
.intro h2 { grid-column: 2; font-size: clamp(2.5rem, 4.15vw, 4rem); }
.intro > p:last-child { grid-column: 2; margin: 0; max-width: 650px; font-size: var(--text-lead); line-height: 1.85; }
.areas { padding-top: 0; }
.area-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.area-card { min-width: 0; padding: 12px; background: white; border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow); transition: box-shadow var(--duration), border-color var(--duration); }
.area-image { position: relative; overflow: hidden; aspect-ratio: .92; border-radius: 22px; background: var(--sand); }
.area-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.8); transition: transform 800ms var(--ease), filter 600ms; }
.area-image::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, #0002, transparent 40%, #10171070); pointer-events: none; }
.area-number { position: absolute; z-index: 1; top: 18px; left: 18px; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid #ffffff85; border-radius: 50%; background: #18201826; color: white; font-size: var(--text-xs); backdrop-filter: blur(12px); }
.area-tag { position: absolute; z-index: 1; bottom: 16px; left: 16px; right: 16px; width: fit-content; max-width: calc(100% - 32px); padding: 7px 12px; border-radius: var(--radius-pill); background: #ffffffee; color: var(--ink); font-size: 1rem; font-weight: 600; }
.area-copy { padding: 24px 16px 20px; }
.area-copy h3 { font-size: clamp(1.375rem, 2vw, 1.75rem); }
.area-copy p { font-size: var(--text-sm); line-height: 1.85; margin: 10px 0 0; }
.area-copy .area-lead { color: var(--ink); font-weight: 600; margin-top: 16px; }
summary { list-style: none; }
summary::-webkit-details-marker { display: none; }
.more-areas { margin-top: var(--space-4); padding: 0 28px; border: 1px solid var(--line); border-radius: var(--radius-md); background: white; }
.more-areas summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; font-size: var(--text-sm); font-weight: 600; }
.more-areas summary span { color: var(--gold-dark); font-size: 25px; transition: transform var(--duration); }
.more-areas[open] summary span { transform: rotate(45deg); }
.more-areas-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; padding: 8px 0 28px; }
.more-areas-grid article { border-top: 1px solid var(--line); padding-top: 20px; }
.more-areas-grid article > span { font-size: var(--text-xs); color: var(--gold-dark); }
.more-areas-grid h3 { font-size: 22px; margin: 12px 0; }
.more-areas-grid p { font-size: var(--text-sm); margin-bottom: 0; }

/* Daily Bar und Kurswelten */
.daily-section { display: grid; grid-template-columns: 1.1fr 1fr; gap: 8%; align-items: center; max-width: 1392px; width: calc(100% - 48px); padding: 56px; border: 1px solid #e3dfd3; border-radius: 40px; background: #f0eee7; overflow: hidden; }
.daily-photo { position: relative; border-radius: 26px; overflow: hidden; }
.daily-photo img { width: 100%; aspect-ratio: .94; object-fit: cover; transition: transform 1000ms var(--ease); }
.photo-label { position: absolute; left: 18px; bottom: 18px; padding: 6px 10px; border-radius: var(--radius-pill); color: white; background: #24261fab; backdrop-filter: blur(12px); font-size: 1rem; }
.daily-copy h2 { margin-bottom: var(--space-4); }
.daily-copy > p:not(.eyebrow) { max-width: 420px; font-size: var(--text-body); line-height: 1.85; }
.editorial-note { display: flex; gap: 24px; margin-top: var(--space-4); border-top: 1px solid #d7d2c5; padding-top: 24px; font-size: var(--text-sm); }
.editorial-note > span { color: var(--gold-dark); }
.editorial-note p { margin: 0; }
.editorial-note strong { color: var(--ink); font-weight: 600; }
.course-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.course-tile { position: relative; display: block; overflow: hidden; padding: 40px; min-height: 330px; border: 1px solid #d7dece; border-radius: var(--radius-lg); box-shadow: var(--shadow); transition: transform var(--duration) var(--ease), box-shadow var(--duration); }
.balance-tile { background: linear-gradient(120deg, #eef2e8, #dde6d7); }
.flow-tile { background: linear-gradient(120deg, #f5efdf, #e9ddc5); border-color: #dfd1b3; }
.course-tile::before, .course-tile::after { content: ''; position: absolute; right: -65px; top: -95px; width: 310px; height: 310px; border: 1px solid #fff; border-radius: 50%; pointer-events: none; transition: transform 900ms var(--ease); }
.course-tile::after { right: -22px; top: -60px; width: 270px; height: 270px; }
.course-tile .eyebrow, .course-tile h3, .course-tile p { position: relative; z-index: 1; }
.course-tile .eyebrow { font-size: var(--text-xs); }
.course-tile h3 { font-family: var(--font-editorial); font-style: italic; font-size: clamp(4rem, 5.7vw, 5.5rem); margin: 34px 0 12px; }
.course-tile p { max-width: calc(100% - 42px); font-size: var(--text-sm); margin: 0; }
.round-arrow { position: absolute; right: 30px; bottom: 32px; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #a9ae9a; border-radius: 50%; background: #ffffff59; font-size: 22px; transition: background var(--duration), transform var(--duration); }
.course-included { text-align: center; font-size: var(--text-sm); margin: 24px 0 0; }
.course-included a { color: var(--gold-dark); text-decoration: underline; text-underline-offset: 4px; }

/* Tarife */
.pricing-section { position: relative; max-width: 1392px; width: calc(100% - 48px); padding: 80px 56px; background: #f1f0e9; border: 1px solid var(--line); border-radius: 40px; }
.price-grid { max-width: 1020px; margin: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: stretch; }
.price-card { position: relative; display: flex; flex-direction: column; overflow: hidden; min-width: 0; padding: 36px; background: white; border: 1px solid #dbdfd4; border-radius: var(--radius-lg); box-shadow: var(--shadow); transition: transform var(--duration) var(--ease), box-shadow var(--duration); }
.price-card.is-featured { border-color: #bda77b; background: linear-gradient(150deg, #fbf7eb, #fff 65%); box-shadow: 0 14px 44px #99815414; }
.price-card.is-featured::before { content: ''; position: absolute; left: 30px; right: 30px; top: 0; height: 4px; background: var(--gold); border-radius: 0 0 6px 6px; }
.price-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 28px; }
.price-top .eyebrow { margin: 0; font-size: 1rem; }
.plan-index { color: var(--gold-dark); font-size: var(--text-xs); }
.price-card h3 { font-size: 34px; }
.price-card > p { font-size: var(--text-sm); margin: 12px 0 0; }
.price { display: flex; align-items: center; gap: 12px; margin: 28px 0 24px; }
.price > strong { font-size: 88px; font-weight: 500; line-height: 1; letter-spacing: -.07em; font-variant-numeric: lining-nums tabular-nums; }
.price > span { font-size: 26px; line-height: 1.35; }
.price small { display: block; font-size: var(--text-xs); color: var(--muted); }
.reduced-price { display: grid; gap: 3px; border: 1px solid var(--line); background: #f6f7f2; padding: 14px 16px; border-radius: var(--radius-sm); }
.is-featured .reduced-price { border-color: #e0d5bf; background: #f0e9d9; }
.reduced-price strong { font-size: var(--text-body); font-weight: 700; }
.reduced-price span { font-size: var(--text-xs); color: var(--muted); }
.price-card .signup-fee { font-size: 1rem; margin: 16px 0 4px; }
.signup-fee strong { color: var(--ink); font-weight: 600; }
.feature-list { list-style: none; padding: 20px 0 4px; margin: 16px 0 28px; border-top: 1px solid var(--line); flex: 1; }
.feature-list li { display: flex; align-items: baseline; gap: 12px; font-size: var(--text-sm); margin: 12px 0; }
.feature-list li::before { content: '✓'; color: var(--gold-dark); font-size: 1rem; flex-shrink: 0; }
.price-card .button { width: 100%; font-size: var(--text-sm); padding: 16px 20px; }
.pricing-note { max-width: 780px; margin: 28px auto 0; text-align: center; font-size: var(--text-xs); line-height: 1.85; }

/* FAQ und Formulare */
.faq-section { display: grid; grid-template-columns: .85fr 1.15fr; align-items: start; gap: 8%; }
.faq-section > div > p:last-child { margin-top: 24px; font-size: var(--text-body); }
.accordion { display: grid; gap: 12px; }
.accordion details { border: 1px solid var(--line); border-radius: var(--radius-md); background: white; transition: background var(--duration), border-color var(--duration); }
.accordion details[open] { background: #f5f3eb; border-color: #cfc4a8; }
.accordion summary { display: flex; justify-content: space-between; align-items: center; gap: 22px; padding: 23px 24px; font-size: var(--text-sm); font-weight: 600; }
.accordion summary span { font-size: 24px; line-height: 1; color: var(--gold-dark); font-weight: 400; transition: transform var(--duration); }
.accordion details[open] summary span { transform: rotate(45deg); }
.accordion p { padding: 0 24px 24px; margin: 0; font-size: var(--text-sm); line-height: 1.85; }
.contact-section { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 10%; align-items: center; max-width: 1392px; width: calc(100% - 48px); padding: 72px 64px; border: 1px solid #ddd5c4; border-radius: 40px; background: radial-gradient(ellipse at 5% 20%, #fffaf0, transparent 60%), #ece6d8; overflow: hidden; }
.contact-section h2 { font-size: clamp(4.5rem, 7vw, 7rem); margin-bottom: var(--space-4); }
.contact-section > div > p { font-size: var(--text-lead); line-height: 1.85; }
.contact-email { display: inline-block; max-width: 100%; overflow-wrap: anywhere; padding: 10px 0; margin-top: 8px; border-bottom: 1px solid #a59a82; font-size: var(--text-body); }
.contact-wordmark { margin-top: 48px; }
.contact-wordmark .logo-crop { width: 200px; }
.contact-form { padding: 36px; background: #fffefb; border: 1px solid #e7e0d2; border-radius: var(--radius-lg); box-shadow: 0 16px 50px #70634b0b; }
.contact-form h3 { font-size: 30px; }
.contact-form > p { font-size: var(--text-sm); margin: 12px 0 26px; }
.contact-form label, .auth-form label { display: grid; gap: 8px; margin-bottom: 20px; color: var(--ink); font-size: 1rem; font-weight: 600; }
.contact-form input, .contact-form select, .contact-form textarea, .auth-form input { width: 100%; min-width: 0; min-height: 52px; padding: 13px 14px; background: #fafbf7; color: var(--ink); border: 1px solid #cdd2c4; border-radius: var(--radius-sm); font-size: 16px; line-height: 1.5; font-weight: 400; transition: background var(--duration-fast), border-color var(--duration-fast), box-shadow var(--duration-fast); }
.contact-form input::placeholder, .auth-form input::placeholder { color: #767d70; opacity: 1; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus, .auth-form input:focus { outline: 0; border-color: var(--gold-dark); background: white; box-shadow: 0 0 0 3px #b59b6826; }
.contact-form textarea { resize: vertical; line-height: 1.7; }
.contact-form .button { width: 100%; margin-top: 4px; }
.contact-form .form-note { font-size: var(--text-xs); line-height: 1.8; margin: 16px 0 0; }
.request-preview { margin-top: 24px; }

/* Footer */
.site-footer { max-width: var(--container); padding: 64px var(--gutter) 32px; margin: auto; }
.footer-top { display: flex; align-items: center; gap: 40px; padding-bottom: 36px; }
.footer-top > p { font-size: var(--text-sm); margin: 0; }
.back-top { display: grid; place-items: center; width: 48px; height: 48px; margin-left: auto; border: 1px solid var(--line-strong); border-radius: 50%; background: white; font-size: 22px; transition: background var(--duration), border-color var(--duration); }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px 28px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: var(--text-xs); }
.footer-bottom nav { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.footer-bottom a { padding: 6px 0; transition: color var(--duration-fast); }
.footer-bottom a:hover { color: var(--gold-dark); }

/* Kursseite — gleicher Rhythmus und gleiche Komponenten */
.courses-hero, .course-worlds, .course-catalog, .schedule-section, .course-cta, .auth-page, .member-hero, .booking-section, .my-bookings { max-width: var(--container); padding: var(--section-space) var(--gutter); margin: auto; }
.courses-hero { display: grid; grid-template-columns: 1.1fr 1fr; gap: 7%; align-items: center; padding-top: 64px; }
.courses-hero h1 { font-size: clamp(3rem, 5.5vw, 5.5rem); margin-bottom: var(--space-4); }
.courses-hero-copy > p:not(.eyebrow) { font-size: var(--text-lead); max-width: 560px; }
.courses-hero-media { min-height: 590px; border-radius: var(--radius-lg); background: url('assets/course-room-balance-1086w.webp') center / cover; box-shadow: var(--shadow); }
.course-worlds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding-top: 0; padding-bottom: 0; }
.course-world { min-width: 0; padding: 40px; background: var(--sage); border: 1px solid #d6decc; border-radius: var(--radius-lg); }
.flow-world { background: #f0e8d8; border-color: #ded0b3; }
.course-world > span, .catalog-grid article > span { color: var(--gold-dark); font-size: var(--text-xs); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.course-world h2 { font-size: clamp(1.75rem, 2.9vw, 2.5rem); line-height: 1.2; margin: 24px 0; overflow-wrap: anywhere; hyphens: auto; }
.course-world p { font-size: var(--text-body); }
.course-chip-list { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 26px; }
.course-chip-list a { display: inline-flex; align-items: center; min-height: 40px; padding: 7px 14px; background: #ffffff70; border: 1px solid #c6c9b8; border-radius: var(--radius-pill); font-size: var(--text-xs); transition: background var(--duration); }
.catalog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.catalog-grid article { padding: 32px; background: white; border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow); transition: box-shadow var(--duration), border-color var(--duration); }
.catalog-grid h3 { margin: 20px 0; font-size: 27px; }
.course-time { display: block; color: var(--gold-dark); font-size: 1rem; line-height: 1.7; margin-bottom: 16px; }
.catalog-grid p { font-size: var(--text-sm); margin: 0; }
.schedule-section { background: #f0f2eb; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.calendar-scroll { overflow: auto; border: 1px solid #d4dacb; border-radius: var(--radius-md); box-shadow: var(--shadow); scrollbar-color: #b6bdab #f2f3ed; }
.calendar-table { display: grid; grid-template-columns: 82px repeat(5, minmax(140px, 1fr)); min-width: 810px; gap: 1px; background: #d9dfd1; }
.calendar-cell, .calendar-course { padding: 22px 16px; background: white; font-size: 1rem; }
.calendar-day, .calendar-time { font-weight: 700; }
.calendar-course { transition: background var(--duration), box-shadow var(--duration); }
.calendar-course span { display: block; color: var(--gold-dark); font-size: 1rem; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 8px; }
.calendar-course strong { font-size: 1rem; line-height: 1.6; }
.calendar-course.balance { background: #e9eee3; }
.calendar-course.flow { background: #f2ead9; }
.course-cta { text-align: center; }
.course-cta .eyebrow { justify-content: center; }
.course-cta h2 { margin-bottom: var(--space-4); }
.course-cta > p:not(.eyebrow) { max-width: 750px; margin: 0 auto 32px; font-size: var(--text-lead); }

/* Login und Mitgliederbereich */
.auth-page { min-height: 78vh; display: grid; grid-template-columns: 1.1fr 1fr; gap: 10%; align-items: center; background: linear-gradient(90deg, #fbfaf7fc, #fbfaf7cb), url('assets/daily-bar-reference-760w.webp') center / cover; }
.auth-copy h1, .member-hero h1 { font-size: clamp(3rem, 5vw, 5rem); margin-bottom: var(--space-4); }
.auth-copy > p:not(.eyebrow), .member-hero p { font-size: var(--text-lead); }
.auth-panel, .member-status { padding: 36px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: #ffffffed; box-shadow: var(--shadow); backdrop-filter: blur(18px); }
.auth-tabs { display: flex; gap: 6px; padding: 6px; margin-bottom: 28px; background: #f1f3ed; border: 1px solid var(--line); border-radius: var(--radius-pill); }
.auth-tabs button { width: 50%; min-height: 44px; padding: 10px; border: 1px solid transparent; border-radius: var(--radius-pill); background: transparent; font-size: var(--text-sm); }
.auth-tabs button.is-active { background: white; color: var(--gold-dark); border-color: #e0dbce; box-shadow: 0 2px 6px #20271a08; }
.auth-form { display: none; }
.auth-form.is-active { display: grid; }
.auth-form .button { width: 100%; justify-content: center; }
.form-note, .empty-state { font-size: var(--text-xs); line-height: 1.8; margin: 20px 0 0; }
.member-hero { display: grid; grid-template-columns: 1.15fr 1fr; gap: 7%; align-items: center; }
.member-status { border-color: #d9c9a9; background: linear-gradient(130deg, #fffdf6, white); }
.member-status > span, .booking-grid span, .booking-list span { font-size: 1rem; line-height: 1.8; color: var(--gold-dark); letter-spacing: .1em; text-transform: uppercase; }
.member-status strong { display: block; font-size: 30px; font-weight: 500; line-height: 1.2; letter-spacing: -.035em; margin: 20px 0; }
.member-status p { font-size: var(--text-sm); margin: 0; }
.booking-section { background: #f0f2eb; }
.booking-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.booking-grid article { min-width: 0; display: flex; flex-direction: column; padding: 26px; border: 1px solid var(--line); border-radius: var(--radius-md); background: white; box-shadow: var(--shadow); }
.booking-grid article.is-booked { border-color: var(--gold); background: #f7f0e0; }
.booking-grid h3 { font-size: 24px; margin: 20px 0; }
.booking-grid p { font-size: var(--text-sm); }
.booking-grid small { font-size: var(--text-xs); margin-top: auto; }
.booking-grid button, .booking-list button { min-height: 46px; padding: 12px; margin-top: 18px; border: 1px solid var(--ink); border-radius: var(--radius-pill); background: var(--ink); color: white; font-size: var(--text-sm); font-weight: 600; transition: background var(--duration), transform var(--duration); }
.booking-grid button:disabled { background: #dde1d5; border-color: #dde1d5; color: #626960; cursor: default; }
.booking-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.booking-list article { padding: 28px; border: 1px solid var(--line); border-radius: var(--radius-md); background: white; }
.booking-list strong { display: block; font-size: 24px; font-weight: 500; margin: 16px 0; }
.booking-list p { font-size: var(--text-sm); }
.booking-list button { width: 100%; }

/* Bewegung: kurze, ruhige Übergänge; Hover nur für Zeigegeräte */
@media (hover: hover) and (pointer: fine) {
  .button:hover { transform: translateY(-2px); box-shadow: 0 8px 20px #68553718; }
  .button-primary:hover { background: linear-gradient(115deg, #e7d8bb, #d1bb93); }
  .button-outline:hover, .button-ghost:hover { background: #f0f2eb; border-color: var(--gold); }
  .button:hover > span { transform: translate(3px, -3px); }
  .text-link:hover { color: var(--gold-dark); border-color: var(--gold); }
  .text-link:hover > span { transform: translate(3px, -2px); }
  .area-card:hover { box-shadow: var(--shadow-hover); border-color: #c5cdbd; }
  .area-card:hover img { transform: scale(1.045); filter: saturate(1); }
  .daily-photo:hover img { transform: scale(1.025); }
  .course-tile:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); }
  .course-tile:hover::before { transform: translate(-14px, 18px); }
  .course-tile:hover::after { transform: translate(14px, -12px); }
  .course-tile:hover .round-arrow { transform: rotate(6deg); background: #ffffffbd; }
  .price-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); }
  .catalog-grid article:hover { border-color: #c2c9b9; box-shadow: var(--shadow-hover); }
  .course-chip-list a:hover { background: white; }
  .calendar-course:hover { background: #fffdf6; box-shadow: inset 0 0 0 2px var(--gold); }
  .back-top:hover { background: var(--gold-light); border-color: var(--gold); }
  .booking-grid button:not(:disabled):hover, .booking-list button:hover { background: #424d3d; }
}
[data-reveal].will-reveal { opacity: 0; transform: translateY(24px); transition: opacity var(--duration-reveal) var(--ease), transform var(--duration-reveal) var(--ease); transition-delay: var(--reveal-delay, 0ms); }
[data-reveal='left'].will-reveal { transform: translateX(-28px); }
[data-reveal='right'].will-reveal { transform: translateX(28px); }
[data-reveal].will-reveal.is-visible { opacity: 1; transform: none; }
.hero-copy > * { animation: copy-arrive 800ms var(--ease) both; }
.hero-copy > :nth-child(2) { animation-delay: 70ms; }
.hero-copy > :nth-child(3) { animation-delay: 140ms; }
.hero-copy > :nth-child(4) { animation-delay: 210ms; }
.hero-copy > :nth-child(5) { animation-delay: 280ms; }
@keyframes copy-arrive { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes photo-arrive { from { transform: scale(1.04); } to { transform: scale(1); } }

/* Tablet */
@media (max-width: 1150px) {
  .site-header { gap: 20px; padding: 12px 20px; }
  .main-nav { gap: 18px; font-size: 1rem; }
  .logo-crop { width: 146px; }
  .header-cta { font-size: 1rem; padding: 12px 17px; gap: 12px; }
  .hero { min-height: 680px; padding-top: 42px; gap: 5%; }
  .hero-photo { height: 550px; }
  .hero-seal { width: 132px; left: -20px; padding: 15px; }
  .hero-seal strong { font-size: 34px; }
  .hero .eyebrow { font-size: 1rem; letter-spacing: .12em; }
  .hero-actions { gap: 12px 20px; }
  .hero-actions .button { gap: 16px; padding: 16px 20px; }
  .hero-note { align-items: start; }
  .area-grid { gap: 18px; }
  .area-copy { padding: 22px 10px 16px; }
  .daily-section, .pricing-section { padding: 48px 36px; }
  .contact-section { padding: 56px 40px; gap: 6%; }
  .contact-form { padding: 28px; }
  .price-card { padding: 30px; }
  .price-card .button { font-size: 1rem; }
  .booking-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .courses-hero-media { min-height: 530px; }
}
@media (max-width: 950px) {
  .site-header { top: 12px; width: calc(100% - 32px); min-height: 76px; margin-top: 12px; }
  .main-nav { display: none; position: absolute; top: calc(100% + 10px); left: 0; right: 0; margin: 0; padding: 18px 24px; max-height: calc(100svh - 120px); overflow: auto; border: 1px solid var(--line); border-radius: 24px; background: #fffffff9; backdrop-filter: blur(20px); box-shadow: var(--shadow-hover); }
  .nav-open .main-nav { display: flex; flex-direction: column; align-items: stretch; gap: 2px; }
  .main-nav a { font-size: 16px; padding: 13px 4px; }
  .nav-toggle { order: 3; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px; flex-shrink: 0; width: 44px; height: 44px; padding: 10px; border: 1px solid var(--line); border-radius: 50%; background: white; }
  .nav-toggle span { width: 21px; height: 1px; background: var(--ink); transition: transform var(--duration); }
  .nav-open .nav-toggle span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .nav-open .nav-toggle span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .header-cta { margin-left: auto; }
  .hero h1 { font-size: clamp(3.5rem, 7.1vw, 4.4rem); }
  .hero-photo { height: 555px; }
  .hero-note span:not(.mini-mark) { font-size: 1rem; }
  .brand-strip { gap: 14px; padding: 22px; }
  .brand-strip span { font-size: 1rem; letter-spacing: .07em; }
  .intro { grid-template-columns: .4fr 1fr; gap: 24px 6%; }
  .intro .eyebrow { font-size: 1rem; }
  .section-heading { gap: 32px; }
  .section-heading > p { max-width: 300px; font-size: var(--text-sm); }
  .area-copy h3 { font-size: 22px; }
  .area-copy p { font-size: 1rem; }
  .area-tag { font-size: 1rem; left: 10px; right: 10px; max-width: calc(100% - 20px); padding: 6px 10px; }
  .daily-section { gap: 6%; }
  .daily-copy h2 { font-size: 45px; }
  .daily-copy > p:not(.eyebrow) { font-size: var(--text-sm); }
  .course-tile { padding: 30px; }
  .course-tile .eyebrow { font-size: 1rem; }
  .round-arrow { right: 24px; bottom: 26px; }
  .price-card { padding: 28px; }
  .price-card h3 { font-size: 31px; }
  .price-grid { gap: 20px; }
  .faq-section { gap: 6%; }
  .faq-section h2 { font-size: 43px; }
  .contact-section { gap: 5%; padding: 48px 32px; }
  .contact-section h2 { font-size: 70px; }
  .contact-form { padding: 25px; }
  .contact-form h3 { font-size: 27px; }
  .contact-form .button { font-size: 1rem; padding: 16px 18px; gap: 14px; }
  .courses-hero { gap: 5%; }
  .courses-hero h1 { font-size: 52px; }
  .courses-hero-media { min-height: 500px; }
  .course-world { padding: 30px; }
  .catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .auth-page { gap: 6%; }
  .auth-panel { padding: 28px; }
  .auth-copy h1, .member-hero h1 { font-size: 50px; }
  .member-hero { gap: 5%; }
  .member-status { padding: 28px; }
  .booking-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Smartphone */
@media (max-width: 700px) {
  :root { --gutter: 22px; --section-space: 64px; --radius-lg: 26px; --title-lg: clamp(2.375rem, 9vw, 3.25rem); }
  html { scroll-padding-top: 116px; }
  .site-header { width: calc(100% - 24px); top: 10px; min-height: 70px; padding: 10px 14px; gap: 10px; margin-top: 10px; }
  .site-header .logo-crop { width: 132px; }
  .header-cta { min-height: 44px; padding: 11px 14px; font-size: 1rem; gap: 10px; }
  .nav-toggle { width: 44px; height: 44px; }
  .hero { grid-template-columns: 1fr; gap: 30px; padding-top: 40px; padding-bottom: 40px; min-height: 0; }
  .hero-copy { padding: 0; }
  .hero .eyebrow { font-size: 1rem; margin-bottom: 24px; }
  .hero h1 { font-size: clamp(3.6rem, 12.8vw, 5.5rem); margin-bottom: 24px; }
  .hero-description { font-size: 16px; line-height: 1.8; margin-bottom: 28px; }
  .hero-actions { gap: 12px 20px; }
  .hero-actions .button { padding: 16px 22px; font-size: 1rem; }
  .hero-actions .text-link { font-size: 1rem; }
  .hero-note { margin-top: 28px; gap: 12px; }
  .hero-note strong { font-size: 1rem; }
  .hero-note span:not(.mini-mark) { font-size: 1rem; }
  .hero-visual { margin-top: 5px; padding: 0 10px 12px 0; }
  .hero-visual::before { inset: 12px 0 0 12px; border-radius: 26px; }
  .hero-photo { height: 435px; border-radius: 26px; }
  .hero-seal { top: 22px; left: 18px; width: 123px; padding: 14px; border-radius: 16px; transform: rotate(-4deg); }
  .hero-seal strong { font-size: 31px; }
  .hero-seal span { font-size: 1rem; }
  .hero-photo-caption { left: 22px; right: 22px; bottom: 22px; font-size: 1rem; }
  .vertical-note { right: 21px; top: 22px; font-size: 1rem; }
  .brand-strip { width: calc(100% - 44px); flex-wrap: wrap; justify-content: center; gap: 10px 16px; padding: 20px; border-radius: 22px; }
  .brand-strip span { font-size: 1rem; }
  .brand-strip i { font-size: 1rem; }
  .intro { display: block; }
  .intro .eyebrow { max-width: none; padding: 0; font-size: 1rem; margin-bottom: 24px; }
  .intro h2 { font-size: clamp(2.125rem, 8.7vw, 3rem); margin-bottom: 24px; }
  .intro > p:last-child { font-size: 16px; }
  .section-heading { display: block; margin-bottom: 32px; }
  .section-heading > p { max-width: 100%; margin-top: 24px; font-size: 16px; }
  .section-heading > .text-link { margin-top: 22px; }
  .area-grid { grid-template-columns: 1fr; gap: 24px; }
  .area-image { aspect-ratio: 1.12; border-radius: 18px; }
  .area-copy { padding: 24px 14px 20px; }
  .area-copy h3 { font-size: 28px; }
  .area-copy p { font-size: 1rem; }
  .area-tag { font-size: 1rem; padding: 7px 12px; left: 14px; bottom: 14px; }
  .more-areas { padding: 0 22px; }
  .more-areas summary { font-size: 1rem; }
  .more-areas-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 18px; }
  .more-areas-grid h3 { font-size: 20px; overflow-wrap: anywhere; }
  .more-areas-grid p { font-size: 1rem; }
  .daily-section, .pricing-section, .contact-section { width: calc(100% - 24px); border-radius: 28px; }
  .daily-section { grid-template-columns: 1fr; padding: 22px; gap: 32px; }
  .daily-photo { border-radius: 19px; }
  .daily-photo img { aspect-ratio: 1.06; }
  .daily-copy { padding: 0 4px 8px; }
  .daily-copy h2 { font-size: 48px; }
  .daily-copy > p:not(.eyebrow) { font-size: 16px; max-width: none; }
  .editorial-note { margin-top: 24px; }
  .photo-label { font-size: 1rem; left: 12px; bottom: 12px; }
  .course-duo { grid-template-columns: 1fr; gap: 20px; }
  .course-tile { min-height: 300px; padding: 30px; }
  .course-tile h3 { font-size: 70px; }
  .course-tile p { font-size: 1rem; }
  .course-included { font-size: 1rem; }
  .pricing-section { padding: 48px 20px; }
  .center-heading { margin-bottom: 32px; }
  .price-grid { grid-template-columns: 1fr; gap: 24px; }
  .price-card { padding: 28px; }
  .price-card h3 { font-size: 34px; }
  .price-card .button { font-size: 1rem; padding: 16px 18px; }
  .price-card .signup-fee { font-size: 1rem; }
  .feature-list li { font-size: 1rem; }
  .pricing-note { font-size: 1rem; }
  .faq-section { grid-template-columns: 1fr; gap: 24px; }
  .faq-section h2 { font-size: 43px; }
  .faq-section > div > p:last-child { margin-top: 20px; }
  .accordion summary { padding: 22px 20px; font-size: 1rem; }
  .accordion p { padding: 0 20px 24px; font-size: 1rem; }
  .contact-section { grid-template-columns: 1fr; gap: 34px; padding: 36px 20px 22px; }
  .contact-section > div { padding: 0 6px; }
  .contact-section h2 { font-size: 68px; }
  .contact-section > div > p { font-size: 16px; }
  .contact-email { font-size: 1rem; }
  .contact-wordmark { margin-top: 28px; }
  .contact-wordmark .logo-crop { width: 160px; }
  .contact-form { padding: 28px 22px; }
  .contact-form h3 { font-size: 28px; }
  .contact-form .button { font-size: 1rem; }
  .site-footer { padding-top: 44px; }
  .footer-top { flex-wrap: wrap; gap: 20px; padding-bottom: 28px; }
  .footer-top > p { order: 3; width: 100%; font-size: 1rem; }
  .footer-bottom { flex-direction: column; align-items: start; gap: 18px; }
  .footer-bottom nav { gap: 4px 18px; font-size: 1rem; }
  .courses-hero { grid-template-columns: 1fr; gap: 32px; padding-top: 44px; }
  .courses-hero h1 { font-size: clamp(3rem, 10.5vw, 4rem); }
  .courses-hero-media { min-height: 0; height: 420px; }
  .course-worlds { grid-template-columns: 1fr; }
  .course-world { padding: 30px; }
  .course-world h2 { font-size: 32px; }
  .course-world p { font-size: 1rem; }
  .catalog-grid { grid-template-columns: 1fr; }
  .catalog-grid article { padding: 30px; }
  .catalog-grid p { font-size: 1rem; }
  .course-cta h2 { font-size: 42px; }
  .auth-page { grid-template-columns: 1fr; gap: 32px; padding-top: 44px; min-height: 0; }
  .auth-copy h1, .member-hero h1 { font-size: clamp(2.75rem, 10.2vw, 4rem); }
  .auth-panel { padding: 26px; }
  .auth-tabs button { font-size: 1rem; }
  .member-hero { grid-template-columns: 1fr; gap: 28px; padding-top: 44px; }
  .booking-grid, .booking-list { grid-template-columns: 1fr; }
}
@media (max-width: 380px) {
  .site-header { gap: 6px; padding: 9px 10px; }
  .site-header .logo-crop { width: 103px; }
  .header-cta { font-size: 1rem; gap: 6px; padding: 11px 12px; }
  .nav-toggle { width: 42px; height: 44px; }
  .hero h1 { font-size: 54px; }
  .hero .eyebrow { font-size: 1rem; gap: 9px; }
  .gold-line { width: 20px; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .text-link { width: fit-content; }
  .hero-photo { height: 390px; }
  .hero-note { gap: 9px; }
  .hero-note strong { font-size: 1rem; }
  .hero-note span:not(.mini-mark) { font-size: 1rem; }
  .more-areas { padding: 0 18px; }
  .more-areas-grid { grid-template-columns: 1fr; }
  .price-card { padding: 24px 20px; }
  .price-card h3 { font-size: 30px; }
  .price-card .button { font-size: 1rem; gap: 10px; }
  .price-top .eyebrow { font-size: 1rem; }
  .contact-form { padding: 24px 18px; }
  .contact-form h3 { font-size: 26px; }
  .contact-form .button { font-size: 1rem; gap: 10px; }
  .auth-panel { padding: 22px; }
}

/* Bewegungspräferenz gilt auch bei nachträglichem Umschalten. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  [data-reveal].will-reveal { opacity: 1; transform: none; }
  .button:hover, .course-tile:hover, .price-card:hover, .area-card:hover img, .daily-photo:hover img { transform: none; }
}
@media print {
  .site-header { position: static; box-shadow: none; }
  [data-reveal].will-reveal { opacity: 1; transform: none; }
  .hero-copy > * { animation: none; }
}

/* Lift bleibt auch nach einer abgeschlossenen Scroll-Einblendung aktiv. */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .price-card.will-reveal.is-visible:hover,
  .course-tile.will-reveal.is-visible:hover { transform: translateY(-4px); }
}

/* Studiomotive, Special Shakes und Eröffnungsangebot */
.hero-photo img { object-position: 64% center; }
.hero-regular-price { display: block; }
.offer-inline-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 8px; color: var(--gold-dark); font-size: 1rem; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.strength-showcase { display: grid; grid-template-columns: minmax(0, 2.6fr) minmax(0, 1fr); gap: 24px; margin-top: 32px; }
.strength-feature { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: white; box-shadow: var(--shadow); }
.strength-photo { overflow: hidden; }
.strength-photo img { width: 100%; height: auto; aspect-ratio: 1.55; object-fit: cover; transition: transform 800ms var(--ease); }
.strength-copy { display: grid; grid-template-columns: 1.05fr 1fr; align-items: start; column-gap: 32px; padding: 30px; }
.strength-copy .eyebrow { grid-column: 1 / -1; margin-bottom: 16px; }
.strength-copy h3 { font-size: clamp(28px, 3vw, 42px); }
.strength-copy > p:last-child { font-size: 1rem; margin: 0; }
.locker-feature { position: relative; margin: 0; overflow: hidden; border-radius: var(--radius-lg); background: #171817; }
.locker-feature img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.locker-feature figcaption { position: absolute; bottom: 20px; left: 16px; right: 16px; padding: 10px; border: 1px solid #ffffff38; border-radius: var(--radius-sm); background: #121512c2; backdrop-filter: blur(14px); color: #f6f0e5; font-size: 1rem; text-align: center; }
.special-shakes { grid-column: 1 / -1; min-width: 0; margin-top: 36px; padding-top: 44px; border-top: 1px solid #d7d2c5; }
.special-shakes .section-heading { margin-bottom: 32px; }
.special-shakes .section-heading h3 { font-size: clamp(38px, 4.6vw, 62px); }
.special-shakes .section-heading > p { max-width: 340px; }
.shake-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.shake-card { min-width: 0; margin: 0; overflow: hidden; border: 1px solid #d9d3c7; border-radius: var(--radius-md); background: white; box-shadow: var(--shadow); transition: box-shadow var(--duration), transform var(--duration); }
.shake-card > img { width: 100%; height: auto; }
.shake-card figcaption { padding: 22px; }
.shake-card h4 { margin: 0 0 10px; font-size: 19px; font-weight: 600; letter-spacing: -.025em; line-height: 1.35; }
.shake-card figcaption p { margin: 0; font-size: 1rem; line-height: 1.8; }
.gallery-hint { display: none; }
.opening-offer { display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: center; max-width: 1020px; margin: 0 auto 36px; padding: 36px 40px; border: 1px solid #c7b58e; border-radius: var(--radius-lg); background: radial-gradient(ellipse at 100% 0, #efe1bf, transparent 70%), #fffdf6; }
.opening-offer h3 { font-size: clamp(32px, 3.5vw, 48px); margin-bottom: 20px; }
.opening-offer-copy .eyebrow { font-size: 1rem; margin-bottom: 20px; }
.opening-offer-copy > p:not(.eyebrow) { font-size: 1rem; max-width: 440px; }
.opening-offer-value { text-align: center; padding: 25px 15px; border-left: 1px solid #cdbd9b; }
.opening-offer-value > span { display: block; font-size: 1rem; color: var(--gold-dark); font-weight: 600; }
.opening-offer-value > strong { display: block; margin: 4px 0 12px; font-size: clamp(64px, 7vw, 98px); font-weight: 500; line-height: 1.1; letter-spacing: -.065em; color: var(--ink); }
.opening-offer-value > p { font-size: 1rem; margin: 16px 0 0; line-height: 1.8; }
.plan-opening-offer { display: grid; gap: 6px; margin: 20px 0 0; padding: 18px; border: 1px solid #cfc1a5; border-radius: var(--radius-sm); background: #f3ecd9; }
.plan-opening-offer > strong { font-size: 18px; line-height: 1.4; font-weight: 600; }
.plan-opening-offer > span { font-size: 1rem; }
.plan-opening-offer del { margin-right: 5px; color: var(--muted); text-decoration-thickness: 1px; }
.plan-opening-offer b { font-weight: 600; }
.plan-opening-offer small { font-size: 1rem; color: var(--gold-dark); }
.price small { max-width: 145px; }
.price-card .signup-fee { font-size: 1rem; }
.price-card .button { font-size: 1rem; gap: 12px; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .strength-feature:hover .strength-photo img { transform: scale(1.025); }
  .shake-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); }
}
@media (max-width: 950px) {
  .strength-copy { display: block; padding: 26px; }
  .strength-copy > p:last-child { margin-top: 20px; }
  .strength-showcase { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  .shake-gallery { gap: 16px; }
  .shake-card figcaption { padding: 18px; }
  .shake-card h4 { font-size: 17px; }
  .opening-offer { padding: 30px; gap: 25px; }
  .opening-offer-copy .eyebrow { font-size: 1rem; }
}
@media (max-width: 700px) {
  .strength-showcase { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .strength-photo img { aspect-ratio: 1.2; }
  .strength-copy { padding: 26px; }
  .strength-copy h3 { font-size: 36px; }
  .locker-feature { height: 280px; }
  .locker-feature img { object-position: center 25%; }
  .locker-feature figcaption { width: fit-content; margin: auto; padding: 9px 15px; }
  .special-shakes { margin-top: 8px; padding-top: 32px; }
  .special-shakes .section-heading > p { font-size: 1rem; }
  .shake-gallery { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 88%; overflow-x: auto; gap: 16px; padding-bottom: 12px; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: #b59b68 #e3dfd3; }
  .shake-card { scroll-snap-align: start; }
  .shake-card h4 { font-size: 20px; }
  .shake-card figcaption { padding: 20px; }
  .gallery-hint { display: flex; justify-content: space-between; gap: 12px; font-size: 1rem; margin: 16px 0 0; }
  .opening-offer { grid-template-columns: 1fr; gap: 22px; padding: 28px 24px; }
  .opening-offer h3 { font-size: 36px; }
  .opening-offer-value { border-left: 0; border-top: 1px solid #cdbd9b; padding: 24px 0 0; }
  .opening-offer-value > strong { font-size: 80px; }
  .opening-offer-copy > p:not(.eyebrow) { font-size: 1rem; }
  .price-card .button { font-size: 1rem; }
}
@media (max-width: 380px) {
  .opening-offer { padding: 24px 20px; }
  .opening-offer h3 { font-size: 31px; }
  .opening-offer .text-link { font-size: 1rem; gap: 10px; }
  .plan-opening-offer { padding: 14px; }
}

/* Markenauftakt: großzügige Bildbühne, ruhiger Übergang ins helle Design. */
.brand-hero { position: relative; isolation: isolate; display: flex; align-items: center; min-height: 720px; min-height: min(850px, calc(100svh - 132px)); max-width: 1392px; margin: 20px auto 0; width: calc(100% - 48px); padding: clamp(44px, 6vw, 88px); overflow: hidden; border-radius: 32px; background: #171715; color: white; }
.brand-hero-image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 48%; }
.brand-hero::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, #080b0bd9 0%, #080b0b95 40%, #080b0b10 100%), linear-gradient(0deg, #080b0bb3, transparent 35%); }
.brand-hero-content { max-width: 900px; padding: 45px 0 70px; }
.brand-hero .eyebrow { color: #e0cfac; margin-bottom: 30px; font-size: 1rem; }
.brand-hero h1 { font-size: clamp(56px, 6.7vw, 96px); line-height: 1.04; font-weight: 600; letter-spacing: -.065em; }
.brand-hero-name { display: block; margin-bottom: 22px; font-size: 1rem; font-weight: 700; letter-spacing: .29em; line-height: 1.5; text-transform: uppercase; }
.hero-gold { color: #e2c899; }
.brand-hero-lead { color: #e8e7e0; margin: 30px 0; font-size: clamp(15px, 1.5vw, 19px); }
.brand-hero-secondary { color: white; border-color: #ffffff70; background: #ffffff08; backdrop-filter: blur(8px); }
.brand-hero-secondary:hover { background: #ffffff1f; border-color: #ffffffb0; }
.brand-hero-bottom { position: absolute; bottom: 30px; left: clamp(44px, 6vw, 88px); right: clamp(44px, 6vw, 88px); display: flex; align-items: center; justify-content: space-between; border-top: 1px solid #ffffff30; padding-top: 22px; gap: 20px; color: #d1d1c9; font-size: 1rem; text-transform: uppercase; letter-spacing: .13em; }
.brand-hero-bottom a { display: flex; align-items: center; gap: 22px; min-height: 30px; }
.brand-hero-bottom a span { color: #e2c899; font-size: 20px; }
.hero-offer-strip { display: flex; align-items: center; gap: 32px; padding: 26px 36px; max-width: 1296px; width: calc(100% - 2 * var(--gutter)); margin: 28px auto; border: 1px solid #d9c9a9; border-radius: 20px; background: #f0e8d8; }
.hero-offer-label { font-size: 1rem; line-height: 1.6; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: #665333; }
.hero-offer-strip strong { font-size: clamp(15px, 1.4vw, 20px); font-weight: 600; letter-spacing: -.02em; }
.hero-offer-arrow { display: grid; place-items: center; margin-left: auto; flex-shrink: 0; width: 40px; height: 40px; border: 1px solid #b6a27a; border-radius: 50%; transition: background .3s, transform .3s; }
.hero-offer-strip:hover .hero-offer-arrow { background: #e1cfaa; transform: rotate(45deg); }
.brand-strip { border: 0; background: transparent; padding-top: 12px; padding-bottom: 12px; }
.intro-side .eyebrow { max-width: none; }
.intro-mark { display: block; color: #c6b086; font-size: 110px; line-height: 1; margin-top: 38px; }
.intro-copy h2 { font-size: clamp(52px, 6.2vw, 88px); }
.intro-copy .intro-lead { color: var(--ink); font-size: clamp(20px, 2vw, 26px); line-height: 1.5; font-weight: 500; margin: 28px 0 20px; letter-spacing: -.025em; }
.intro-copy > p:last-child { max-width: 620px; margin: 0; font-size: var(--text-lead); }

/* Zwei Tarife als Bildkarten — vom Einstieg bis zum vollständigen Vergleich. */
.price-grid { max-width: 1152px; gap: 28px; }
.price-card, .price-card.is-featured { padding: 0; background: white; }
.price-card.is-featured::before { display: none; }
.plan-visual { position: relative; isolation: isolate; display: flex; align-items: flex-end; min-height: 360px; padding: 34px; overflow: hidden; background: #171715; color: white; }
.plan-visual > img { position: absolute; z-index: -2; inset: 0; height: 100%; width: 100%; object-fit: cover; transition: transform 800ms var(--ease); }
.plan-visual::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg, #0a0d0bf2, #0a0d0b50 70%, #0a0d0b30); }
.plan-visual-copy { width: 100%; }
.plan-visual .price-top { margin-bottom: 30px; }
.plan-visual .eyebrow { color: #e3ceaa; }
.plan-visual .plan-index { color: #eee3cd; border-color: #ffffff60; background: #ffffff10; }
.plan-visual h3 { font-size: clamp(38px, 4vw, 58px); letter-spacing: -.05em; font-weight: 600; }
.plan-visual p { color: #e8e7df; font-size: 1rem; margin: 16px 0 0; }
.plan-details { display: flex; flex-direction: column; flex: 1; padding: 8px 34px 34px; }
.plan-details .feature-list { flex: 1; }
.plan-details .price { margin-top: 22px; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .price-card:hover .plan-visual > img { transform: scale(1.055); }
  .brand-hero-image { animation: brand-scene-in 1.8s var(--ease) both; }
  .brand-hero-content { animation: brand-copy-in 1s var(--ease) both; }
}
@keyframes brand-scene-in { from { transform: scale(1.045); } to { transform: scale(1); } }
@keyframes brand-copy-in { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 900px) {
  .brand-hero { min-height: 660px; padding: 42px; }
  .brand-hero h1 { font-size: clamp(56px, 8vw, 76px); }
  .brand-hero-bottom { left: 42px; right: 42px; }
  .hero-offer-strip { gap: 22px; padding: 22px; }
  .hero-offer-label { max-width: 112px; }
  .hero-offer-strip strong span { display: block; }
  .plan-visual { min-height: 300px; padding: 26px; }
  .plan-details { padding: 6px 26px 26px; }
}
@media (max-width: 600px) {
  .brand-hero { width: calc(100% - 24px); margin-top: 12px; min-height: 670px; border-radius: 24px; padding: 28px; }
  .brand-hero-image { object-position: 60% center; }
  .brand-hero::before { background: linear-gradient(90deg, #080b0bbf, #080b0b35), linear-gradient(0deg, #080b0bcc, transparent 80%); }
  .brand-hero-content { padding: 30px 0 75px; }
  .brand-hero h1 { font-size: clamp(43px, 10.6vw, 62px); line-height: 1.08; }
  .brand-hero-name { font-size: 1rem; margin-bottom: 24px; }
  .brand-hero .eyebrow { font-size: 1rem; letter-spacing: .08em; gap: 8px; margin-bottom: 26px; }
  .brand-hero .gold-line { width: 18px; }
  .brand-hero-lead { font-size: 1rem; margin: 24px 0; }
  .brand-hero .hero-actions { display: grid; gap: 12px; max-width: 320px; }
  .brand-hero .button { font-size: 1rem; min-height: 50px; padding: 14px 20px; }
  .brand-hero-bottom { left: 28px; right: 28px; bottom: 24px; font-size: 1rem; letter-spacing: .06em; gap: 10px; }
  .brand-hero-bottom a { gap: 10px; }
  .hero-offer-strip { position: relative; display: block; margin: 20px auto; padding: 20px 64px 20px 20px; border-radius: 16px; }
  .hero-offer-label { max-width: none; display: block; font-size: 1rem; margin-bottom: 8px; }
  .hero-offer-strip strong { display: block; font-size: 1rem; line-height: 1.65; }
  .hero-offer-arrow { position: absolute; right: 16px; top: calc(50% - 17px); height: 34px; width: 34px; }
  .intro { gap: 24px; }
  .intro-mark { display: none; }
  .intro-copy h2 { font-size: clamp(48px, 12vw, 66px); }
  .intro-side .eyebrow { margin: 0; padding: 0; }
  .plan-visual { min-height: 310px; padding: 26px; }
  .plan-visual h3 { font-size: 42px; }
}
@media (max-width: 360px) {
  .brand-hero { padding: 22px; min-height: 635px; }
  .brand-hero h1 { font-size: 38px; }
  .brand-hero .eyebrow { font-size: 1rem; }
  .brand-hero-bottom { left: 22px; right: 22px; }
  .brand-hero-bottom > span { max-width: 90px; }
  .plan-details { padding: 6px 20px 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .brand-hero-image, .brand-hero-content { animation: none; }
  .price-card:hover .plan-visual > img, .hero-offer-strip:hover .hero-offer-arrow { transform: none; }
}

/* accessibility.css */
/* Gemeinsame Lesbarkeit, Kontraste und Bedienung für alle Website-Seiten. */
:root { --muted: #51584f; --gold-dark: #67512d; --text-xs: 1rem; --text-sm: 1rem; --text-body: 1.125rem; --app-muted: #66513d; }
html { font-size: 100%; scroll-padding-top: 140px; }
.readable-site { font-size: 1.125rem; line-height: 1.7; overflow-wrap: break-word; }
.readable-site :is(p, li) { line-height: 1.7; }
.readable-site :is(button, input, select, textarea, summary) { font-size: 1rem; }
.readable-site :is(button, summary, input, select) { min-height: 44px; }
.readable-site :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid #253d62 !important; outline-offset: 4px !important; box-shadow: 0 0 0 3px #fff; }
.readable-site [hidden] { display: none !important; }
.readable-site input, .readable-site textarea, .readable-site select { border-color: #858b80; min-width: 0; max-width: 100%; }
.readable-site input::placeholder, .readable-site textarea::placeholder { color: #62695f; opacity: 1; }
.readable-site .eyebrow { letter-spacing: .075em; line-height: 1.6; }
.readable-site .button { white-space: normal; }
.readable-site .button > span { flex-shrink: 0; }
.readable-site .form-note, .readable-site .pricing-note { font-size: 1rem; color: #51584f; line-height: 1.75; }
.form-error { color: #9c2920; font-size: 1rem; margin: 12px 0 0; }
.form-error:empty, .booking-status:empty { display: none; }
.booking-status { padding: 16px; border: 1px solid #6a7556; border-radius: 12px; background: #eef2e5; color: #37442c; }
.readable-site .main-nav { gap: clamp(16px, 1.8vw, 30px); }
.readable-site .main-nav a { min-height: 44px; }
.readable-site .site-footer a { display: inline-flex; align-items: center; min-height: 44px; }
.readable-site .back-top { min-width: 48px; }
.readable-site .contact-email { overflow-wrap: anywhere; }
.readable-site .skip-link { top: -150px; }
.readable-site .skip-link:focus { top: 12px; }
.readable-site :is(.area-copy p, .strength-copy > p:not(.eyebrow), .daily-copy > p:not(.eyebrow), .intro-copy > p:last-child, .section-heading > p, .center-heading > p:last-child, .accordion details > p, .contact-section > div > p:not(.eyebrow), .contact-form > p:not(.form-note), .course-tile > p) { font-size: 1.125rem; }
.readable-site .intro-copy .intro-lead { font-size: 1.5rem; }
.readable-site .hero-location { font-size: 1rem; letter-spacing: .13em; }
.readable-site .brand-hero-lead { font-size: clamp(1.125rem, 1.5vw, 1.5rem); }
.readable-site .brand-hero-bottom { font-size: 1rem; gap: 24px; }
.readable-site .brand-hero-bottom > span, .readable-site .brand-hero-bottom > a { max-width: none; }
.readable-site .brand-hero.has-scroll-scene .hero-scroll-cue { bottom: 12px; }
.readable-site .brand-hero.has-scroll-scene .brand-hero-bottom { bottom: 64px; }
.readable-site .journey-map strong { font-size: 1.125rem; }
.readable-site .journey-map a { gap: 16px; }
.readable-site .area-tag { background: #fffdf4f5; color: #343828; line-height: 1.6; }
.readable-site .contact-steps li::before { font-size: 1rem; width: 28px; height: 28px; line-height: 26px; }
.readable-site .contact-steps li { padding-left: 42px; }
.readable-site .contact-steps strong { font-size: 1.125rem; }
.readable-site .contact-location address { font-size: 1.125rem; }
.readable-site .calendar-course:focus-visible { outline-offset: -4px !important; }
.readable-site .calendar-table { grid-template-columns: 90px repeat(5, minmax(170px, 1fr)); min-width: 945px; }
.readable-site .calendar-course { padding: 20px 16px; }
.readable-site .calendar-course strong { line-height: 1.5; }
.readable-site .booking-grid article, .readable-site .booking-list article { min-width: 0; }
@media (max-width: 1240px) {
  .readable-site .site-header { gap: 16px; }
  .readable-site .main-nav { display: none; position: absolute; left: 0; right: 0; top: calc(100% + 10px); margin: 0; padding: 18px 24px; max-height: calc(100svh - 160px); overflow-y: auto; background: #fff; border: 1px solid #b9bcb2; border-radius: 22px; box-shadow: 0 16px 40px #20271a1a; }
  .readable-site.nav-open .main-nav { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
  .readable-site .nav-toggle { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; flex-shrink: 0; width: 48px; height: 48px; order: 3; padding: 10px; border: 1px solid #777e70; border-radius: 50%; background: #fff; }
  .readable-site .nav-toggle span { display: block; width: 20px; height: 2px; background: #212521; }
  .readable-site .header-cta { margin-left: auto; }
}
@media (max-width: 900px) {
  .readable-site .journey-map { grid-template-columns: 1fr; }
  .readable-site .journey-map a { min-height: 96px; padding: 20px 0; }
  .readable-site .journey-map a + a { border-left: 0; border-top: 1px solid var(--line); }
  .readable-site .strength-showcase { grid-template-columns: 1fr; }
  .readable-site .locker-feature { display: flex; gap: 24px; align-items: center; padding: 18px; border: 1px solid #cbc7ba; border-radius: 16px; background: #f3f0e7; }
  .readable-site .locker-feature img { position: static; width: 92px; height: 170px; object-fit: contain; flex-shrink: 0; border-radius: 8px; }
  .readable-site .locker-feature figcaption { position: static; padding: 0; color: #384032; background: none; text-align: left; font-size: 1.125rem; }
}
@media (max-width: 700px) {
  .readable-site .brand-hero-bottom { position: static; margin-top: 38px; padding-top: 20px; width: 100%; display: grid; grid-template-columns: 1fr; gap: 12px; text-align: center; }
  .readable-site .brand-hero-bottom a { text-align: center; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; }
  .readable-site .hero-stage { min-height: 0; padding: 48px var(--gutter) 28px; }
  .readable-site .area-copy { padding: 24px; }
  .readable-site .area-copy h3 { font-size: 1.625rem; }
  .readable-site .strength-feature { grid-template-columns: 1fr; }
  .readable-site .strength-photo img { min-height: 0; height: auto; aspect-ratio: 1.4; object-fit: cover; }
  .readable-site .strength-copy { padding: 26px; }
  .readable-site .daily-photo { min-height: 300px; height: auto; }
  .readable-site .photo-label { position: static; display: block; background: #f3eee2; color: #333b30; padding: 12px; border-radius: 0; }
  .readable-site .daily-photo img { height: 280px; }
  .readable-site .special-shakes summary { gap: 12px; }
  .readable-site .course-tile { padding: 26px; }
  .readable-site .course-tile .eyebrow { max-width: none; }
  .readable-site .course-tile > p { max-width: none; padding-right: 0; }
  .readable-site .course-tile .round-arrow { position: static; display: grid; margin-top: 18px; }
  .readable-site .contact-form { padding: 24px; }
  .readable-site .auth-panel { padding: 24px 20px; }
  .readable-site .auth-tabs { border-radius: 16px; }
  .readable-site .auth-tabs button { padding-inline: 8px; }
}
@media (max-width: 420px) {
  html { scroll-padding-top: 178px; }
  .readable-site .site-header { flex-wrap: wrap; border-radius: 22px; padding: 10px 14px; gap: 8px; }
  .readable-site .site-header .brand { margin-right: auto; }
  .readable-site .site-header .logo-crop { width: 138px; }
  .readable-site .nav-toggle { order: 2; }
  .readable-site .header-cta { order: 3; width: 100%; margin-left: 0; min-height: 44px; padding-block: 8px; }
  .readable-site .main-nav { max-height: calc(100svh - 185px); }
  .readable-site .button { padding-inline: 18px; }
  .readable-site .hero-stage h1 { font-size: clamp(36px, 9vw, 44px); }
  .readable-site .hero-location { letter-spacing: .08em; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .readable-site *, .readable-site *::before, .readable-site *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .readable-site .will-reveal { opacity: 1 !important; transform: none !important; }
}
@media (forced-colors: active) {
  .readable-site .button, .readable-site .price-card, .readable-site .opening-offer { border: 2px solid CanvasText; }
  .readable-site :focus-visible { outline: 3px solid Highlight !important; }
  .readable-site .hero-line { color: CanvasText; }
}

/* refinement.css */
/* Puzzle Gym: klare Szenen, kurze Wege, lesbare Inhalte. */
:root{--header-clearance:120px;--scene-ink:#171b17;--scene-gold:#ddc18a}
.home-page .section{padding-block:clamp(36px,5vw,64px)}
.home-page .section-heading{margin-bottom:22px;gap:20px}
.home-page .section-heading h2,.home-page .course-feature .section-heading h2{font-size:clamp(32px,3.4vw,48px);line-height:1.1}
.home-page .intro{gap:28px 6%;padding-block:48px}
.home-page .welcome-story .intro-copy{margin-top:22px}
.home-page .intro-copy>p:last-child{font-size:20px;line-height:1.6;max-width:590px}
.home-page .welcome-image{height:clamp(280px,45svh,410px)}
.home-page .welcome-image img{object-position:center 52%}
.home-page .welcome-image figcaption{display:none}
.home-page .journey-map{gap:0;margin-top:0;border:1px solid #d8d1c1;border-radius:12px;overflow:hidden}
.home-page .journey-map a{min-height:74px;padding:16px 22px;border:0;border-radius:0;background:#f4f1e9}
.home-page .journey-map a+a{border-left:1px solid #d8d1c1}
.home-page .journey-map strong{font-size:18px}
/* One complete scene, edge to edge; content stays in normal flow when zoomed. */
.home-page .areas{padding-inline:0;padding-top:22px}
.home-page .areas .section-heading{display:flex;align-items:baseline;justify-content:space-between;padding-inline:var(--gutter);margin-bottom:18px}
.home-page .areas .section-heading h2{margin:0;font-size:38px}
.home-page .areas .section-heading>span{font-size:18px;color:#53564b}
.area-cinema,.area-viewport{border-radius:0;border-inline:0;box-shadow:none}
.area-slide{grid-template-columns:minmax(0,2fr) minmax(290px,1fr);min-height:0;height:clamp(230px,calc(100svh - var(--header-clearance) - 240px),550px)}
.area-slide-photo{height:100%}
.area-slide-photo img{display:block;object-position:center 48%}
.area-slide:first-child .area-slide-photo img{object-position:center 52%}
.area-slide-copy{padding:clamp(24px,3vw,46px)}
.area-slide-copy h3{font-size:clamp(30px,3.3vw,48px);margin:0 0 16px;line-height:1.08}
.area-slide-copy p{font-size:20px;line-height:1.5;margin:0}
.area-slide-tag{font-size:16px;margin-top:24px;padding:8px 12px}
.area-carousel-footer{padding:8px var(--gutter);gap:16px;min-height:64px;flex-wrap:nowrap}
.area-arrow{width:46px;height:46px;min-width:46px}
.area-arrows{gap:8px}
.area-play{min-width:46px;padding:8px}
.area-carousel-position strong{font-size:20px}
.area-pickers{grid-template-columns:repeat(5,minmax(0,1fr))}
.area-picker{padding:12px 18px;min-height:54px;justify-content:center;text-align:center;font-size:16px}
.area-mobile-select{display:none}
.home-page .more-areas{margin:28px var(--gutter) 0}
.home-page .more-areas-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:650px){.home-page .more-areas-grid{grid-template-columns:1fr}}
.area-locker-note{margin:0;padding:16px;border:0;grid-column:1/-1}
.area-locker-note img{height:70px;width:34px}
/* A compact, cinematic ad for the bar. */
.home-page .daily-section{display:block;padding:0;margin:0;width:100%;border:0;border-radius:0;background:#191a16}
.bar-banner{position:relative;display:grid;grid-template-columns:minmax(320px,1fr) minmax(0,2fr);min-height:360px;height:clamp(360px,51svh,510px);overflow:hidden;background:radial-gradient(ellipse at 20% 80%,#58492d45,transparent 60%),#151813}
.bar-banner-copy{position:relative;z-index:2;align-self:center;padding:32px clamp(24px,3vw,52px);color:#fff}
.bar-banner-copy .eyebrow{color:#e4c98f;margin-bottom:16px}
.home-page .bar-banner h2{font-size:clamp(38px,3.7vw,58px);line-height:1.05;margin:0 0 18px;color:#fff}
.bar-banner h2 em{color:#e3c695}
.bar-banner-copy>p:not(.eyebrow){color:#e9e5db;font-size:20px;margin:0 0 22px}
/* Three visible product scenes, with the full motifs available below. */
.bar-shake-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;min-width:0;min-height:0;background:#c4a66b66}
.bar-shake{position:relative;isolation:isolate;min-width:0;margin:0;overflow:hidden;background:#171a15}
.bar-shake:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#0b100bf5,transparent 46%),linear-gradient(180deg,#13171038,transparent 35%);box-shadow:inset 1px 0 0 #f8dfa633}
.bar-shake img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 60%;transform:scale(1.13);transition:transform 700ms cubic-bezier(.2,.7,.3,1)}
.bar-shake figcaption{position:absolute;z-index:1;bottom:0;left:0;right:0;display:grid;gap:5px;padding:26px 12px;text-align:center;color:#fff9ee}
.bar-shake figcaption:before{content:'';width:34px;height:2px;margin:0 auto 10px;background:#e9c88b;box-shadow:0 0 15px #edbe7777}
.bar-shake figcaption span{font-size:16px;line-height:1.3;color:#efdbb0}
.bar-shake figcaption strong{font-size:clamp(20px,2vw,30px);font-weight:500;line-height:1.2;letter-spacing:-.025em}
@media(hover:hover){.bar-shake:hover img{transform:scale(1.19)}}
@media(prefers-reduced-motion:reduce){.bar-shake img{transition:none}}
.home-page .special-shakes{margin:0;padding:0 var(--gutter);border:0;border-radius:0;background:#f1ece1}
.home-page .special-shakes>summary{padding:18px 0;min-height:80px}
.home-page .special-shakes .eyebrow{display:none}
.home-page .special-shakes strong{font-size:22px}
.home-page .shake-gallery{padding-block:20px}
.home-page .shake-card img{height:min(52svh,430px);object-fit:contain;background:#1a1c17}
/* Real course rooms: one image-led pair. */
.home-page .course-feature .section-heading p{font-size:18px;margin:14px 0 0}
.home-page .course-duo{gap:20px}
.home-page .course-tile{position:relative;height:clamp(250px,42svh,380px);min-height:0;padding:28px;display:flex;align-items:flex-end;overflow:hidden;border-radius:16px;background:#272a20}
.course-tile>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 46%;transition:transform 700ms}
.home-page .course-tile:before{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0a110df5,transparent 80%);z-index:1}
.home-page .course-tile:after{display:none}
.course-tile>div,.course-tile>.round-arrow{position:relative;z-index:2}
.home-page .course-tile h3{font-size:38px;color:#fff;margin:0 0 10px}
.home-page .course-tile p{font-size:18px;color:#f7f3e9;margin:0;max-width:none}
.home-page .course-tile .round-arrow{position:absolute;top:22px;right:22px;bottom:auto;background:#faf7ef;color:#20261d;border:0}
@media(hover:hover){.course-tile:hover>img{transform:scale(1.035)}}
.courses-hero{display:block;min-height:0;padding-block:70px 36px;background:#f8f6ef}
.courses-hero-copy{max-width:100%;padding:0}
.courses-hero-copy h1{font-size:clamp(40px,5vw,68px);max-width:850px}
.course-worlds{gap:24px}
.course-world{overflow:hidden;position:relative;padding:0 28px 28px!important}
.course-world-photo{width:calc(100% + 56px);max-width:none;margin:0 -28px 24px;height:clamp(240px,42svh,390px);object-fit:cover;object-position:center 48%}
.course-world h2{font-size:30px;margin-bottom:14px}
/* The app becomes its own cinematic scene. */
.home-page .app-experience{position:relative;isolation:isolate;grid-template-columns:1fr 1fr;gap:24px 6%;padding-block:40px;min-height:490px;background:radial-gradient(ellipse at 78% 45%,#6452334d,transparent 49%),linear-gradient(115deg,#121813,#222820);color:#fbf8ee;overflow:hidden}
.app-experience:before,.app-experience:after{content:'';position:absolute;pointer-events:none;z-index:-1;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#d5b67599,transparent)}
.app-experience:before{top:16px}.app-experience:after{bottom:16px}
.app-experience-intro h2{font-size:clamp(40px,5.5vw,76px);color:#fff;margin:0 0 22px}
.app-experience-intro h2 em{color:#e0c28b}
.home-page .app-experience-intro .eyebrow{color:#e0c28b}
.app-experience-intro>p{font-size:20px;color:#eeede4;line-height:1.5}
.app-experience-intro .app-invitation{font-size:18px;color:#ece8da;margin-top:24px;max-width:410px}
.app-experience .app-skip-puzzle{color:#e4c992;border-color:#b69b6a;margin-top:18px}
.app-puzzle-panel{border:0;box-shadow:none;background:none;border-radius:0}
.app-puzzle-field{height:320px}
.app-puzzle-orbit{border-color:#d4b97b4d}
.app-puzzle-orbit.orbit-two{border-color:#d4b97b26}
.app-puzzle-target{background:linear-gradient(135deg,#6a604132,#b1975c14);border:1px solid #c8a77088;box-shadow:0 0 90px #debb6626}
.app-puzzle-target svg{fill:#3e4030;stroke:#c5aa71}
.app-puzzle-state{color:#f8eed6;font-size:20px}
.app-puzzle-caption p{color:#d0cbbd}
.app-puzzle-piece svg{filter:drop-shadow(0 15px 18px #0009)}
.app-infos{grid-column:auto;border:1px solid #98805b77;border-radius:18px;background:#ffffff05;padding:26px;box-shadow:inset 0 1px 0 #d6bc8544}
.app-info-heading{display:flex;flex-direction:column;gap:20px;align-items:flex-start;margin:0 0 22px}
.app-info-heading h3{color:#fff;font-size:30px;line-height:1.2}
.app-info-heading .button{order:2;min-height:50px}
.app-info-grid{display:grid;grid-template-columns:1fr;gap:16px}
.app-info-grid article{display:grid;grid-template-columns:42px 1fr;gap:4px 16px;align-items:center;border:0;padding:0}
.app-feature-icon{grid-row:span 2;width:42px;height:42px;border-radius:10px;background:#e4c994;color:#282719}
.app-info-grid h4{font-size:20px;color:#fff;margin:0}
.app-info-grid p{grid-column:2;font-size:16px;color:#dfdcd1;line-height:1.5}
.app-demo-note{color:#d8d4c6;border-color:#d2b47a44;font-size:16px;margin-top:20px;padding-top:16px}
.readable-site .app-experience :focus-visible{outline-color:#f4dbab!important}
/* Less repeated copy, compact membership cards. */
.home-page .plan-visual{min-height:0;padding:24px 28px}
.home-page .plan-visual-copy{display:flex;align-items:center;justify-content:space-between;gap:22px;width:100%}
.home-page .plan-logo{margin:0;width:125px;height:40px;flex-shrink:0}
.home-page .plan-visual h3{font-size:30px;margin:0}
.home-page .plan-visual p{display:none}
.home-page .plan-details{padding:26px 28px}
.home-page .price strong{font-size:58px}
.home-page .price{margin-bottom:16px}
.home-page .feature-list{margin-block:20px;gap:9px}
.home-page .feature-list li{font-size:18px;line-height:1.4;padding-block:0}
.home-page .plan-opening-offer{padding:16px;margin-block:20px}
.home-page .reduced-price{padding-block:14px}
.home-page .pricing-note{max-width:100%;font-size:16px;line-height:1.6}
/* FAQ is a quiet reference grid; contact is a separate gold invitation. */
.home-page .faq-section{display:block;background:#fff;padding-block:44px}
.home-page .faq-section h2{font:600 clamp(28px,3vw,40px)/1.2 var(--font-body,Manrope,sans-serif);margin:0 0 28px;letter-spacing:-.04em}
.home-page .accordion{display:grid;grid-template-columns:1fr 1fr;gap:0 36px;border-top:0;align-items:start}
.home-page .accordion details{border-top:1px solid #d6d9cf;border-bottom:0}
.home-page .accordion summary{font-size:18px;font-weight:600;min-height:76px;line-height:1.45;padding-block:18px}
.home-page .accordion p{font-size:18px;line-height:1.65;padding:0 0 22px}
.home-page .contact-section{background:linear-gradient(125deg,#ede3cc,#f8f5ec 65%);gap:6%;align-items:start;padding-block:54px;border-top:1px solid #cfc0a1}
.home-page .contact-section h2{font:600 clamp(36px,4.5vw,64px)/1.08 Manrope,sans-serif;letter-spacing:-.055em;margin-bottom:22px}
.home-page .contact-intro>p{font-size:20px;line-height:1.6}
.parent-download{margin-top:30px;max-width:470px;padding-top:24px;border-top:1px solid #b7a47e}
.parent-download strong{font-size:20px}.parent-download p{font-size:18px;line-height:1.6;margin:12px 0 16px}
.home-page .contact-form{padding:28px;background:#fffefa;border:1px solid #c5b797;border-radius:18px;box-shadow:0 16px 50px #4b3b180c;gap:18px;min-width:0}
.form-heading{display:flex;gap:16px;align-items:flex-start}.form-heading h3{font-size:26px!important;margin:0 0 8px!important}.form-heading p{font-size:16px;margin:0;line-height:1.5}
.form-symbol{display:grid;place-items:center;min-width:44px;height:44px;border:1px solid #baa172;border-radius:50%;font-size:26px;color:#66502b}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.home-page .contact-form label{font-size:16px;color:#333b2e;line-height:1.5;gap:8px;min-width:0;margin:0}
.home-page .contact-form input,.home-page .contact-form select{font-family:inherit;font-size:18px;min-height:50px;padding:10px 12px;border:1px solid #898c80;border-radius:8px;background:#fff;width:100%;color:#222b1c}
.home-page .contact-form input:focus,.home-page .contact-form select:focus{border-color:#4e5b38}
.home-page .contact-form .form-check{display:flex;flex-direction:row;align-items:flex-start;gap:12px}
.home-page .contact-form input[type=checkbox]{width:22px;height:22px;min-height:22px;flex-shrink:0;accent-color:#65502a;margin-top:2px}
.contact-form a{color:#534325;text-decoration:underline;text-underline-offset:3px}
.form-privacy,.form-required,.form-extra p,.form-age-note{font-size:16px!important;line-height:1.6;margin:0!important}
.form-extra{padding:14px 0;border-block:1px solid #d7d0c0}.form-extra summary{font-size:16px;cursor:pointer;display:flex;justify-content:space-between;gap:10px}.form-extra .form-grid{padding-block:16px}
.form-age-note{border-left:3px solid #9c753a;padding:10px 14px;background:#f7efd9}
.form-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-status:empty{display:none}.form-status{padding:14px;border:1px solid #a28859;border-radius:8px;font-size:18px;line-height:1.6;margin:0}.form-status[data-state=error]{border-color:#9e3927;background:#fff4ef;color:#7b281d}.form-status[data-state=success]{background:#f0f6e9;color:#334826}
.home-page .contact-form button:disabled{opacity:.65;cursor:wait}
.legal-page{padding:60px var(--gutter);max-width:980px;margin:auto}.legal-page h1{font-size:clamp(36px,5vw,60px);margin-bottom:32px}.legal-page h2{font-size:26px;margin:34px 0 18px}.legal-page h3{font-size:22px;margin:26px 0 16px}.legal-page p,.legal-page li,.legal-page address{font-size:18px;line-height:1.75}.legal-page ul{padding-left:24px}.legal-page a{text-decoration:underline}.legal-page .legal-card{background:#f2ecdf;padding:24px;border-radius:14px;border:1px solid #cec1a4}
[hidden]{display:none!important}
@media(max-width:900px){.area-slide{grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr)}.area-slide-copy h3{font-size:32px}.area-picker{padding:12px 8px}.home-page .plan-visual-copy{gap:12px}.home-page .plan-visual h3{font-size:26px}.home-page .plan-logo{width:95px}.form-grid{grid-template-columns:1fr}.home-page .contact-section{gap:32px}.home-page .contact-form{padding:24px}}
@media(max-width:760px){
.home-page .section{padding-block:32px}.home-page .areas{padding-top:12px}.home-page .areas .section-heading{margin-bottom:14px;flex-direction:row;align-items:center}.home-page .areas .section-heading h2{font-size:32px}.home-page .areas .section-heading>span{display:none}
.area-slide{display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto;min-height:0}
.area-slide-photo{height:clamp(145px,calc(100svh - var(--header-clearance) - 340px),285px);aspect-ratio:auto}
.area-slide-copy{padding:20px var(--gutter);justify-content:flex-start;min-height:180px}
.area-slide-copy h3{font-size:30px;line-height:1.1;margin-bottom:12px}.area-slide-copy p{font-size:18px;line-height:1.45;margin:0}.area-slide-tag{font-size:16px;margin-top:14px;padding:5px 9px}
.area-carousel-footer{padding:8px var(--gutter);display:flex;gap:8px;flex-wrap:wrap;min-height:62px}.area-carousel-position{display:none}.area-mobile-select{display:block;flex:1;min-width:0;margin:0}.area-mobile-select select{width:100%;font:600 16px/1.4 Manrope,sans-serif;background:#faf8f2;border:0;color:#353e2d;min-height:46px;padding:8px 18px 8px 0}.area-pickers{display:none}.area-play{margin:0;padding:8px;min-width:44px;min-height:46px}.area-play [data-play-label]{display:none}.area-arrows{margin-left:0}.area-arrow{width:44px;height:44px;min-width:44px}.area-arrows{gap:6px}
.home-page .intro{display:grid;gap:24px}.home-page .welcome-image{height:290px}.home-page .journey-map a{padding:14px 18px;min-height:66px}.home-page .journey-map a+a{border-left:0;border-top:1px solid #d8d1c1}
.home-page .daily-section{padding:0}.bar-banner{height:auto;min-height:0;display:block}.bar-banner-copy{padding:28px var(--gutter);max-width:none;height:auto;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.bar-banner-image{position:absolute;inset:0 0 0 35%;opacity:.7}.bar-banner-image:after{background:linear-gradient(90deg,#151813 0%,#15181350 65%),linear-gradient(0deg,#15181380,transparent)}.bar-banner-copy>p:not(.eyebrow){font-size:18px}.home-page .bar-banner h2{font-size:40px}
.home-page .course-duo{gap:16px}.home-page .course-tile{height:250px;padding:24px}.home-page .course-tile h3{font-size:34px}.home-page .course-tile p{font-size:18px}.home-page .course-feature .section-heading{gap:16px}
.home-page .app-experience{grid-template-columns:1fr;min-height:0;gap:8px;padding-block:36px}.app-experience-intro h2{font-size:40px;margin-bottom:16px}.app-experience-intro .eyebrow{margin-bottom:12px}.app-experience-intro .app-invitation{margin-top:16px;font-size:16px}.app-experience-intro>p{font-size:18px}.app-experience .app-skip-puzzle{margin-top:8px}.app-puzzle-field{height:240px}.app-puzzle-orbit{width:210px;height:210px}.app-puzzle-orbit.orbit-two{width:270px;height:270px}.app-puzzle-caption{padding:0 0 12px}.app-puzzle-state{display:none}.app-puzzle-caption p{font-size:16px}.app-experience.is-unlocked .app-experience-intro{display:none}.app-infos{padding:24px}.app-info-heading h3{font-size:28px}.app-info-heading .button{width:auto}.app-info-grid{gap:18px}.app-info-grid p{grid-column:2}
.home-page .price-grid{gap:20px}.home-page .plan-visual{padding:20px}.home-page .plan-visual-copy{gap:16px}.home-page .plan-visual h3{font-size:28px}.home-page .plan-logo{width:110px}.home-page .plan-details{padding:22px}.home-page .price strong{font-size:52px}.home-page .feature-list li{font-size:18px}
.home-page .faq-section{padding-block:32px}.home-page .faq-section h2{font-size:30px;margin-bottom:20px}.home-page .accordion{grid-template-columns:1fr}.home-page .accordion summary{font-size:18px;min-height:65px;padding-block:16px}.home-page .contact-section{padding-block:36px}.home-page .contact-section h2{font-size:40px}.home-page .contact-form{padding:22px}.form-heading{gap:12px}.form-symbol{display:none}.form-grid{gap:16px}.form-heading h3{font-size:24px!important}.parent-download{margin-top:24px}
.course-world-photo{height:260px}.course-worlds{gap:24px}.courses-hero{padding-block:44px 24px}.course-world h2{font-size:28px}.legal-page{padding-block:40px}
}
@media(max-width:380px){.area-play{display:none}.home-page .plan-visual h3{font-size:25px}.home-page .plan-logo{width:95px}.home-page .contact-form{padding:18px}.bar-banner-copy{max-width:100%}.bar-banner-copy .eyebrow{font-size:16px}.home-page .bar-banner h2{font-size:38px}}
@media(prefers-reduced-motion:reduce){.course-tile>img,.app-puzzle-piece{transition:none!important}}
.home-page .training-route{display:grid;grid-template-columns:1fr 1fr;gap:6%;background:#edf1e8;border-block:1px solid #cbd4bf;align-items:center}
.training-route h2{font-size:clamp(36px,4vw,56px);line-height:1.1;margin-bottom:22px}.training-route .route-distance{font-size:23px;line-height:1.5;font-weight:600;color:#34492a;margin-top:28px}
.route-planner{display:flex;flex-direction:column;gap:18px}.route-planner>label{display:flex;flex-direction:column;gap:10px;font-size:18px;font-weight:600}.route-planner input{border:1px solid #89977b;background:#fff;padding:14px 16px;border-radius:8px;font:18px Manrope,sans-serif;width:100%;min-width:0}.route-privacy,.route-external{font-size:16px;line-height:1.6;margin:0;color:#47533c}.route-options{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.route-options a{background:#fbfcf8;border:1px solid #a4af96;border-radius:12px;padding:16px 10px;display:flex;flex-direction:column;gap:10px;align-items:center;text-align:center;transition:background .2s,transform .2s}.route-options a:hover{background:#dbe5cd;transform:translateY(-3px)}.route-options strong{font-size:18px}.route-options a>span:first-child{font-size:28px;color:#526539}.route-options a>span:last-child{font-size:16px}.route-planner>.button{align-self:flex-start}.route-planner>.text-link{align-self:flex-start;border:0;background:transparent;font-size:16px;text-decoration:underline}
@media(max-width:1100px){.route-options{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.home-page .training-route{grid-template-columns:1fr;gap:24px}.training-route h2{font-size:36px}.training-route .route-distance{font-size:22px;margin-top:20px}.route-options a{gap:6px;padding:12px}.route-options a>span:first-child{display:none}}

.app-experience-intro h2{font-size:clamp(30px,3.5vw,48px);line-height:1.15;margin-bottom:20px}.app-experience-intro .app-subtitle{font-size:clamp(36px,4.4vw,60px);line-height:1.1;font-weight:500;letter-spacing:-.045em;color:#fff;margin:0 0 24px}.app-subtitle em{color:#e0c28b}.home-page .app-experience-intro .eyebrow{display:none}
@media(max-width:760px){.app-experience-intro h2{font-size:30px;margin-bottom:12px}.app-experience-intro .app-subtitle{font-size:36px;margin-bottom:18px}.app-experience-intro .app-subtitle br{display:none}}

[data-form-step]{display:flex;flex-direction:column;gap:18px}.form-progress{font-size:16px;font-weight:700;color:#675331;border-block:1px solid #dfd5be;padding-block:12px;margin:0}.form-actions{display:flex;justify-content:space-between;gap:12px;align-items:center}.form-actions .button{flex:1}.form-actions .text-link{background:transparent;border:0;font-size:16px;padding:12px 0}.home-page .contact-form{align-self:start}
/* Edle, fühlbare Aktionen: ruhiges Metall, klare Kontur, großzügige Klickfläche. */
.readable-site .button,.readable-site .header-cta{position:relative;isolation:isolate;min-height:54px;font-size:17px;font-weight:700;letter-spacing:-.02em;border-radius:14px;transition:transform 220ms ease,box-shadow 220ms ease,background-position 500ms ease,border-color 220ms ease}
.readable-site .button-primary{background:linear-gradient(115deg,#f1dfb5 0%,#d5b982 34%,#efddae 60%,#c8a369 100%);background-size:180% 100%;color:#282619;border:1px solid #aa8b55;box-shadow:inset 0 1px 0 #fff4d7,inset 0 -1px 0 #a0855050,0 5px 12px #6b502318;padding:15px 24px}
.readable-site .button-primary>span[aria-hidden]{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:#fff9e63d;border:1px solid #76572144;font-size:20px;transition:transform 220ms ease,background 220ms ease}
.readable-site .header-cta{background:linear-gradient(120deg,#343a2c,#1c231a);border:1px solid #555f48;color:#fffef4;box-shadow:inset 0 1px 0 #f4ecd124,0 5px 14px #17220d18;padding:13px 20px}
.readable-site .button-secondary,.readable-site .button-ghost{background:#fffdf6;border:1px solid #a29980;color:#30362a;box-shadow:inset 0 1px 0 #fff,0 3px 10px #34301c08}
.readable-site .area-arrow{background:linear-gradient(135deg,#faf1d7,#dcc399);box-shadow:inset 0 1px 0 #fff7e6,0 3px 8px #49351c14;border:1px solid #a28b63;border-radius:12px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.readable-site .button:hover,.readable-site .header-cta:hover{transform:translateY(-2px)}.readable-site .button-primary:hover{background-position:100% 0;box-shadow:inset 0 1px 0 #fff7e1,0 8px 22px #74552729;border-color:#816532}.readable-site .button-primary:hover>span[aria-hidden]{transform:translateX(2px);background:#fff9e673}.readable-site .header-cta:hover{box-shadow:inset 0 1px 0 #efd08b66,0 7px 18px #18211026;border-color:#aa8e58}}
.readable-site .button:active,.readable-site .header-cta:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #5d4b2726}
@media(max-width:420px){.readable-site .header-cta{min-height:44px;border-radius:10px;padding:10px 16px}.readable-site .button{font-size:17px;padding:13px 18px;min-height:52px}}
@media(prefers-reduced-motion:reduce){.readable-site .button,.readable-site .header-cta,.readable-site .button-primary>span{transition:none;transform:none}}

/* Eröffnung: eine klare, farbige Angebotsbühne direkt am Einstieg. */
.home-page .opening-ribbon{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px 32px;align-items:center;margin-top:18px;padding:22px var(--gutter);border:0;border-block:1px solid #b18a40;background:linear-gradient(108deg,#edc76a 0%,#f8e5a5 46%,#dfb45b 76%,#efd0a7 100%);color:#29291e;box-shadow:inset 0 1px #fff1bb,0 8px 24px #8a632515}
.opening-ribbon:before{content:'';position:absolute;z-index:-1;inset:-70% -20%;pointer-events:none;background:linear-gradient(105deg,transparent 42%,#fff9dd99 49%,transparent 57%);transform:translateX(-45%);animation:opening-glint 1.7s .3s ease-out both}
.opening-ribbon-label{display:inline-flex;align-items:center;gap:12px;width:fit-content;padding:12px 16px;border:1px solid #36422d;border-radius:10px;background:#263421;color:#fff1c7;font-size:16px;font-weight:700;box-shadow:0 4px 12px #5039181c}
.opening-ribbon-label>span{font-size:26px;line-height:1;color:#f2d284}
.home-page .opening-ribbon p{display:flex;flex-direction:column;gap:5px;margin:0;line-height:1.4;color:#29291e}
.home-page .opening-ribbon p strong{font-size:clamp(22px,2vw,30px);letter-spacing:-.035em;font-weight:800}
.home-page .opening-ribbon p>span{font-size:18px;font-weight:500}
.home-page .opening-ribbon>a{gap:12px;font-size:17px;line-height:1.35;text-decoration:none;border-bottom:1px solid #4e442a;padding-block:5px;min-height:46px;white-space:nowrap}
.opening-ribbon>a>span{display:grid;place-items:center;width:32px;height:32px;border:1px solid #6d582d;border-radius:50%;background:#fff4cd5e;font-size:20px}
@keyframes opening-glint{to{transform:translateX(35%)}}
@media(max-width:1100px){.home-page .opening-ribbon{grid-template-columns:minmax(0,1fr) auto;gap:12px 24px}.opening-ribbon-label{grid-column:1/-1;padding:7px 12px}}
@media(max-width:760px){.home-page .opening-ribbon{grid-template-columns:1fr;gap:12px;margin-top:12px;padding-block:18px}.opening-ribbon-label{font-size:16px}.home-page .opening-ribbon p strong{font-size:24px}.home-page .opening-ribbon p>span{font-size:17px;max-width:340px}.home-page .opening-ribbon>a{justify-self:start;font-size:16px;min-height:44px}.opening-ribbon>a>span{width:28px;height:28px}}
@media(prefers-reduced-motion:reduce){.opening-ribbon:before{animation:none;transform:none}}
/* Ruhiger Markenabschluss mit klar getrennten Wegen und großen Links. */
.readable-site .premium-footer{position:relative;max-width:none;width:100%;margin:0;padding:56px var(--gutter) 20px;background:radial-gradient(ellipse at 0 0,#35402a80,transparent 60%),#192119;color:#f6f4ea;border-top:3px solid #c9ab70}
.premium-footer .footer-main{display:grid;grid-template-columns:1.1fr 1fr 1fr 1.2fr;gap:36px;padding-bottom:40px}
.premium-footer .footer-identity{min-width:0}.premium-footer .footer-identity .brand{display:flex;width:235px;max-width:100%;padding:0;min-height:0}.premium-footer .footer-identity .logo-crop{width:100%;filter:grayscale(1) invert(1) sepia(.35) brightness(1.8);mix-blend-mode:screen}.premium-footer .footer-identity p{font-size:27px;line-height:1.25;letter-spacing:-.03em;margin:26px 0 0;color:#dfc28f}
.premium-footer .footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.premium-footer .footer-column h2{font-size:19px;font-weight:700;line-height:1.4;color:#e6c98e;letter-spacing:0;margin:0 0 16px}.premium-footer .footer-column>a{font-size:17px;line-height:1.45;min-height:44px;padding:8px 0;gap:12px;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:6px;transition:color 180ms,text-decoration-color 180ms}.premium-footer .footer-column>a:hover{color:#f3d89f;text-decoration-color:#aa8b57}.premium-footer .footer-column address{font-size:17px;font-style:normal;line-height:1.8;margin:0 0 6px;color:#eeeee4}.premium-footer .footer-column address strong{font-weight:600}.premium-footer .footer-email{overflow-wrap:anywhere}
.premium-footer .footer-bottom{border-top:1px solid #63735475;padding-top:18px;gap:16px 24px;color:#d6dccd;font-size:16px;align-items:center}.premium-footer .footer-bottom nav{gap:4px 24px;flex:1;justify-content:center}.premium-footer .footer-bottom a{font-size:16px;color:#dce1d4;min-height:44px}.premium-footer .footer-bottom a:hover{color:#f4d69c}.premium-footer .back-top{display:grid!important;flex:0 0 48px;width:48px;height:48px;margin-left:0;justify-content:center;background:#2a3625;border:1px solid #748062;color:#ecd099!important;border-radius:12px;font-size:24px!important;transition:background 180ms,border-color 180ms}.premium-footer .back-top:hover{background:#35422d;border-color:#d5b981}.readable-site .premium-footer a:focus-visible{outline:3px solid #f7d784;outline-offset:5px}
@media(max-width:1100px){.premium-footer .footer-main{grid-template-columns:1fr 1fr;gap:32px 48px}.premium-footer .footer-identity .brand{width:210px}.premium-footer .footer-identity p{font-size:26px}.premium-footer .footer-bottom nav{justify-content:flex-start;order:3;flex-basis:100%}.premium-footer .footer-bottom>.back-top{margin-left:auto}}
@media(max-width:540px){.readable-site .premium-footer{padding-top:36px}.premium-footer .footer-main{grid-template-columns:1fr 1fr;gap:30px 18px;padding-bottom:28px}.premium-footer .footer-identity{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px}.premium-footer .footer-identity .brand{width:158px}.premium-footer .footer-identity p{font-size:20px;margin:0}.premium-footer .footer-column h2{font-size:18px;margin-bottom:10px}.premium-footer .footer-column>a,.premium-footer .footer-column address{font-size:16px}.premium-footer .footer-visit{grid-column:1/-1;border-top:1px solid #63735475;padding-top:24px}.premium-footer .footer-bottom nav{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px;align-items:start}.premium-footer .footer-bottom nav a{align-items:flex-start;padding-block:10px}.premium-footer .footer-bottom{font-size:16px}}
@media(max-width:360px){.premium-footer .footer-identity{display:block}.premium-footer .footer-identity p{margin-top:18px;font-size:22px}}
@media(forced-colors:active){.opening-ribbon-label,.readable-site .premium-footer{border:1px solid CanvasText}.premium-footer .footer-identity .logo-crop{filter:none;mix-blend-mode:normal}}

/* Areas als eigene, bildschirmfüllende Galerie inszenieren. */
.home-page .areas{background:linear-gradient(150deg,#f2eee2,#fcfbf7 58%);border-top:1px solid #d9ccae;padding-top:24px}
.home-page .areas .section-heading{align-items:center;gap:24px;margin-bottom:22px}
.areas-heading-title{display:flex;align-items:center;gap:20px;min-width:0}
.areas-title-mark{display:grid;place-items:center;flex:0 0 58px;width:58px;height:58px;border:1px solid #b29860;border-radius:16px;background:linear-gradient(135deg,#f6ebce,#d4b57c);box-shadow:inset 0 1px 0 #fff9e9,0 5px 18px #70572a13}
.areas-title-mark svg{width:44px;height:44px;fill:#574323;filter:drop-shadow(0 1px 0 #fff4)}
.home-page .areas .section-heading h2{font-size:clamp(48px,5.2vw,76px);line-height:1.05;letter-spacing:-.055em;color:#242b21}
.home-page .areas .section-heading h2 em{color:#83602c}
.home-page .areas .section-heading>span{font-size:20px;line-height:1.45;color:#535846;max-width:300px;padding-left:26px;border-left:1px solid #baa578}
.area-cinema{border-block:1px solid #b49a64;box-shadow:0 18px 42px #3e331413}
.area-slide{height:clamp(230px,calc(100svh - var(--header-clearance) - 285px),550px)}
.area-slide-copy{position:relative;isolation:isolate;background:radial-gradient(ellipse at 100% 0,#7e66354d,transparent 68%),#24291f;border-left:1px solid #bfa16e88;color:#fffdf4;padding:clamp(24px,3vw,44px)}
.area-slide-copy:before{content:'';position:absolute;pointer-events:none;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#dcb975,#fff1c6,#8d7445)}
.area-slide-copy:after{content:'';position:absolute;z-index:-1;pointer-events:none;right:20px;bottom:20px;width:70px;height:70px;border-right:1px solid #c6a66a66;border-bottom:1px solid #c6a66a66;border-radius:0 0 12px 0}
.area-slide-copy h3{font-size:clamp(30px,3.3vw,48px);font-weight:500;color:#fffaf0;letter-spacing:-.04em;text-wrap:balance}
.area-slide-copy p{color:#e8e9df}
.area-slide-tag{background:#dac08c1a;border:1px solid #bfa16e88;color:#f1dcae;border-radius:8px;padding:7px 12px}
.area-carousel-footer{background:#f4f0e5;border-top:1px solid #bfa572;box-shadow:inset 0 1px 0 #fff;min-height:64px}
.area-carousel-position strong{font-size:24px;color:#725626;font-variant-numeric:tabular-nums}
.area-play{border-color:#d0c4a9;background:#fffdf6;border-radius:10px}
.area-pickers{background:#d0c1a1;border-top:1px solid #c0aa7e}
.area-picker{background:linear-gradient(160deg,#fffef9,#f1eee4);font-weight:600;transition:background 220ms,color 220ms;gap:10px}
.area-picker:before{content:'';width:7px;height:7px;flex:0 0 7px;border:1px solid #9c895f;border-radius:50%;transition:background 220ms,box-shadow 220ms}
.area-picker[aria-current="true"]{background:linear-gradient(135deg,#ecdcaf,#d4b57b);color:#302a1b;box-shadow:inset 0 1px 0 #fff6db}
.area-picker[aria-current="true"]:before{background:#67502b;border-color:#67502b;box-shadow:0 0 0 4px #f8edcc88}
.area-picker[aria-current="true"]:after{background:#796033;height:3px;left:16px;right:16px}
@media(hover:hover){.area-picker:hover{background:#e8dcc1;color:#292e24}.area-picker:hover:before{background:#927443}}
/* Symmetrische Tarifkarten: Logo, Preis, Leistungen und Aktion auf einer Achse. */
.home-page .price-card{text-align:center}
.home-page .plan-visual{padding-block:20px}
.home-page .plan-visual-copy{flex-direction:column;justify-content:center;align-items:center;gap:12px;text-align:center}
.home-page .plan-logo{width:140px;height:44px;margin:0 auto}
.home-page .plan-visual h3{font-size:30px;text-align:center}
.home-page .plan-details{display:flex;flex-direction:column;flex:1;text-align:center}
.home-page .price{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;margin-top:6px}
.home-page .price .price-amount{display:flex;align-items:baseline;justify-content:center;gap:7px;line-height:1}
.home-page .price-amount strong{font-size:58px;font-weight:600;line-height:1;letter-spacing:-.065em;font-variant-numeric:lining-nums tabular-nums}
.home-page .price-amount>span{font-size:30px;font-weight:500}
.home-page .price>small{margin:0;max-width:none;font-size:16px;text-align:center}
.home-page .reduced-price{justify-items:center;text-align:center}
.home-page .feature-list li{display:block;text-align:center}
.home-page .feature-list li:before{display:inline;margin-right:9px}
.home-page .plan-opening-offer{justify-items:center;text-align:center}
.home-page .price-card .button{justify-content:center}
@media(max-width:900px){.home-page .areas .section-heading h2{font-size:52px}.home-page .areas .section-heading>span{max-width:245px;font-size:18px}.areas-title-mark{flex-basis:48px;width:48px;height:48px;border-radius:13px}.areas-title-mark svg{width:38px;height:38px}}
@media(max-width:760px){
 .home-page .areas{padding-top:20px}.home-page .areas .section-heading{margin-bottom:18px;gap:12px}.areas-heading-title{gap:14px}.home-page .areas .section-heading h2{font-size:44px;line-height:1.05}.areas-title-mark{width:44px;height:44px;flex-basis:44px;border-radius:12px}.areas-title-mark svg{width:34px;height:34px}
 .area-slide{height:auto;min-height:0}.area-slide-photo{height:clamp(135px,calc(100svh - var(--header-clearance) - 380px),265px)}.area-slide-copy{padding:18px var(--gutter);min-height:180px;border-left:0}.area-slide-copy h3{font-size:30px;margin-bottom:10px;line-height:1.1;text-wrap:initial}.area-slide-copy p{font-size:18px;line-height:1.45}.area-slide-tag{padding:5px 9px;margin-top:12px}.area-slide-copy:after{width:44px;height:44px;right:16px;bottom:16px}
 .area-mobile-select select{background:transparent;color:#343b2e}.area-carousel-footer{min-height:62px}
 .home-page .plan-visual{padding-block:20px}.home-page .plan-visual-copy{gap:10px}.home-page .plan-logo{width:130px;height:42px}.home-page .plan-visual h3{font-size:28px}.home-page .price-amount strong{font-size:52px}
}
@media(max-width:360px){.home-page .areas .section-heading h2{font-size:39px}.areas-heading-title{gap:10px}.areas-title-mark{flex-basis:40px;width:40px;height:40px}.area-slide-copy h3{font-size:28px}}
@media(prefers-reduced-motion:reduce){.area-picker,.area-picker:before{transition:none}}
@media(forced-colors:active){.area-slide-copy,.areas-title-mark,.area-picker[aria-current="true"]{border:1px solid CanvasText}.areas-title-mark svg{fill:CanvasText}}

/* Keep all three shakes on screen, including on narrow phones. */
@media(min-width:761px) and (max-width:1050px){.bar-banner{grid-template-columns:minmax(280px,.95fr) minmax(0,1.65fr)}.bar-banner-copy{padding:28px 24px}.home-page .bar-banner h2{font-size:38px}.bar-shake figcaption strong{font-size:20px}}
@media(max-width:760px){
 .bar-banner-copy{padding:24px var(--gutter)}
 .bar-banner-copy .eyebrow{margin-bottom:10px}
 .home-page .bar-banner h2{font-size:36px;margin-bottom:12px}
 .bar-banner-copy>p:not(.eyebrow){margin-bottom:16px;line-height:1.4}
 .bar-shake-trio{height:clamp(240px,32svh,300px)}
 .bar-shake img{transform:scale(1.45);object-position:50% 64%}
 .bar-shake figcaption{padding:18px 5px;gap:4px}
 .bar-shake figcaption strong{font-size:clamp(16px,4.3vw,22px)}
 .bar-shake figcaption:before{margin-bottom:5px;width:24px}
}

/* Das Angebot begleitet die Tarifwahl als schmale Information. */
.home-page .opening-offer-compact{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px 32px;align-items:center;padding:18px 24px;margin:0 0 24px;border:1px solid #d7c69f;border-radius:12px;background:linear-gradient(110deg,#f5eddc,#faf6ec);box-shadow:none;color:#302f26}
.home-page .opening-offer-compact h3{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:600;line-height:1.4;letter-spacing:0;margin:0}
.home-page .opening-offer-compact h3>span{color:#81652e;font-size:25px;line-height:1}
.home-page .opening-offer-compact>p{display:grid;gap:4px;margin:0;max-width:none;line-height:1.45;color:#302f26}
.home-page .opening-offer-compact>p strong{font-size:20px;font-weight:600;letter-spacing:-.015em}
.home-page .opening-offer-compact>p>span{font-size:16px;color:#5a5140}
@media(max-width:760px){.home-page .opening-offer-compact{grid-template-columns:1fr;gap:9px;padding:16px 18px;margin-bottom:20px}.home-page .opening-offer-compact h3{font-size:16px}.home-page .opening-offer-compact>p strong{font-size:18px}}

/* Marken-Icon für die Einladung ins Gym. */
.puzzle-link-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;vertical-align:middle}
.puzzle-link-icon svg{display:block;width:24px;height:24px;fill:currentColor}
.readable-site .header-cta>.puzzle-link-icon{color:#e6c98e}
.home-page .opening-ribbon>a>.puzzle-link-icon{border:0;background:transparent;border-radius:0}
.premium-footer .puzzle-link-icon svg{width:20px;height:20px}
@media(max-width:760px){
 .readable-site .header-cta{min-height:44px;padding:8px 16px;gap:12px;border:1px solid #c9b78e;border-radius:10px;background:linear-gradient(110deg,#fffcf5,#f2ecdd);color:#34392c;font-size:16px;font-weight:600;box-shadow:none;letter-spacing:0}
 .readable-site .header-cta>.puzzle-link-icon{color:#80632d}
 .readable-site .header-cta .puzzle-link-icon svg{width:22px;height:22px}
 .readable-site .header-cta:hover{background:#efe5cf;border-color:#a58b56;box-shadow:none}
 .readable-site .header-cta:active{background:#e9ddc4;box-shadow:none}
}
@media(forced-colors:active){.puzzle-link-icon svg{fill:ButtonText}.readable-site .header-cta{border-color:ButtonText}}

.form-grid .form-field-full{grid-column:1/-1}
.home-page .contact-form input[type=date]{min-width:0;max-width:100%;appearance:none}


/* Legal pages: draft notice and the points that still need a decision. */
.legal-note{border:1px solid #b59b68;border-left:4px solid #b59b68;background:linear-gradient(120deg,#f8efdb,#f1e3c6);border-radius:14px;padding:18px 20px;margin:0 0 28px;font-size:1.125rem;line-height:1.6}
.legal-open{display:inline;background:#f3e2bc;box-shadow:inset 0 -2px 0 #b59b68;border-radius:4px;padding:1px 5px;font-weight:600;color:#4a3c1e}

/* Trainerbegleitung beim Probetraining: eine Entscheidung, zwei gleichwertige Antworten.
   Keine ist vorausgewählt — wer fragt, soll auch eine Antwort bekommen. */
.contact-form .form-choice{border:1px solid #c5b797;border-radius:12px;padding:16px 18px 14px;margin:0;
 display:flex;flex-direction:column;gap:12px;background:#fdfcf7;min-width:0}
.contact-form .form-choice legend{float:left;width:100%;padding:0;margin:0 0 4px;font-size:16px;color:#333b2e;line-height:1.5}
.contact-form .form-choice .form-check{margin:0;cursor:pointer}
.contact-form .form-choice input[type=radio]{width:20px;height:20px;flex:0 0 20px;margin-top:2px;accent-color:#7a6a3f}
.contact-form .form-hint{font-size:14px;color:#5c5340;margin:0}

/* Probetraining: klare Schritte und große, gleichwertige Auswahlflächen. */
#kontakt .contact-form{padding:clamp(22px,2.5vw,36px);border-radius:24px;background:linear-gradient(145deg,#fffdf7,#f6efdf);border:1px solid #c4b18c;box-shadow:0 20px 60px #4b3b1812;display:flex;flex-direction:column;gap:24px}
#kontakt .contact-form [hidden]{display:none!important}
#kontakt .form-heading{align-items:center;padding-bottom:4px}
#kontakt .form-heading h3{font-size:clamp(24px,2.1vw,30px)!important;letter-spacing:-.035em;line-height:1.2}
#kontakt .form-heading p{color:#686052;font-size:16px}
#kontakt .form-symbol{background:#efe1c2;border:0;color:#725832;flex:0 0 48px;height:48px;border-radius:14px}
#kontakt .form-progress{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:0;border:0}
#kontakt .form-progress li{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:3px solid #ded5c5;color:#786e5b;font-size:16px;line-height:1.35}
#kontakt .form-step-number{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:#ece6da;font-size:14px;font-weight:700}
#kontakt .form-progress [aria-current=step]{color:#292b28;border-color:#a48650}
#kontakt .form-progress [aria-current=step] .form-step-number{background:#292c2d;color:#f4e4c0}
#kontakt .form-progress .is-complete{color:#6d5732;border-color:#c7ac75}
#kontakt .form-progress .is-complete .form-step-number{background:#ead8ae;color:#56401f}
#kontakt [data-form-step]{gap:22px}
#kontakt .form-choice{display:block;border:0;background:transparent;padding:0;margin:0}
#kontakt .form-choice legend{float:none;font-size:19px;font-weight:700;color:#2d302b;margin:0 0 14px;line-height:1.4}
#kontakt .form-choice-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#kontakt .form-choice-option{position:relative;display:flex;align-items:flex-start;gap:12px;padding:18px 16px;border:1px solid #c9bda5;border-radius:14px;background:#fffefb;cursor:pointer;transition:background .18s,border-color .18s,box-shadow .18s}
#kontakt .form-choice-option>span{display:flex;flex-direction:column;gap:7px;min-width:0}
#kontakt .form-choice-option strong{font-size:17px;line-height:1.4;color:#30322c}
#kontakt .form-choice-option>span>span{font-size:16px;font-weight:400;color:#625b4d;line-height:1.5}
#kontakt .form-choice-option input[type=radio]{appearance:auto;min-width:20px;width:20px;height:20px;min-height:20px;flex:0 0 20px;padding:0;margin:3px 0 0;accent-color:#836332;box-shadow:none}
#kontakt .form-choice-option:has(input:checked){border-color:#94733a;background:linear-gradient(135deg,#f6eacf,#ebd5a8);box-shadow:inset 0 0 0 1px #94733a}
#kontakt .form-choice-option:focus-within{outline:2px solid #795a25;outline-offset:3px}
#kontakt .form-hint{font-size:16px;color:#71644e;line-height:1.55;margin:12px 0 0}
#kontakt .form-extra{border:1px solid #ccbea3;border-radius:14px;padding:0;background:#fffaf0}
#kontakt .form-extra summary{padding:16px 18px;font-weight:600;align-items:center;line-height:1.5;min-height:58px}
#kontakt .form-extra summary>span{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:#ede1c9;color:#725a30;font-size:21px}
#kontakt .form-extra[open] summary>span{transform:rotate(45deg)}
#kontakt .form-extra .form-grid{padding:0 18px 16px;grid-template-columns:1fr 1fr}
#kontakt .form-extra>p{padding:0 18px 18px;color:#686052}
#kontakt .contact-form input:not([type=radio]):not([type=checkbox]),#kontakt .contact-form select{font:inherit;font-size:16px;min-height:52px;padding:13px 14px;background:#fffef9;border-color:#bdae91;border-radius:10px}
#kontakt .contact-form input:focus-visible,#kontakt .contact-form select:focus-visible{outline:2px solid #94733a;outline-offset:2px}
#kontakt .form-check{font-weight:400;line-height:1.6;gap:12px}
#kontakt .form-check input{margin-top:3px}
#kontakt .form-privacy{color:#716858}
#kontakt .form-actions{padding-top:18px;border-top:1px solid #d9ccb3;gap:20px}
#kontakt .form-actions .button{margin:0;min-height:56px}
#kontakt .form-actions .text-link{flex:0 0 auto;color:#655236;font-weight:600;min-height:48px}
@media(hover:hover){#kontakt .form-choice-option:hover{border-color:#a48b5d;background:#f8efd9}}
@media(max-width:1100px) and (min-width:761px),(max-width:480px){#kontakt .form-choice-options{grid-template-columns:1fr}}
@media(max-width:480px){#kontakt .contact-form{padding:22px 18px;gap:20px;border-radius:20px}#kontakt .form-progress{gap:10px}#kontakt .form-progress li{align-items:flex-start;gap:8px}#kontakt .form-progress li>span:last-child{padding-top:3px}#kontakt .form-extra .form-grid{grid-template-columns:1fr}#kontakt .form-actions{flex-wrap:wrap;gap:12px}#kontakt .form-actions .button{flex:1 0 100%}#kontakt .form-choice-option{padding:16px}}
@media(prefers-reduced-motion:reduce){#kontakt .form-choice-option{transition:none}}

/* Adresse, Anfahrt und Öffnungszeiten erhalten eigene, lesbare Bereiche. */
.home-page #kontakt{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(30px,5vw,80px);scroll-margin-top:150px}
#kontakt .contact-intro{min-width:0}
#kontakt .contact-location{display:grid;grid-template-columns:1fr;gap:0;align-items:stretch;margin:28px 0 12px;padding:0;border:1px solid #c4af86;border-radius:20px;background:#fff9ed75;overflow:hidden}
#kontakt .contact-address-block{padding:24px 26px}
#kontakt .contact-address-block h3,#kontakt .opening-hours h3{font-size:19px;font-weight:700;letter-spacing:-.025em;margin:0 0 14px;line-height:1.4;color:#35352e}
#kontakt .contact-location address{font-size:17px;line-height:1.75;margin:0}
#kontakt .contact-location address strong{font-weight:600}
#kontakt .contact-location .text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:46px;margin-top:18px;padding:9px 16px;border:1px solid #aa9160;border-radius:10px;background:#fff8e8;color:#634d27;font-size:16px;font-weight:600}
#kontakt .opening-hours{padding:24px 26px;border-top:1px solid #c9b692;background:#ffffff30;min-width:0}
#kontakt .opening-hours dl{display:grid;gap:0;margin:0}
#kontakt .opening-hours dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:18px;padding:10px 0;border-bottom:1px solid #c6b49366}
#kontakt .opening-hours dl>div:last-child{padding-bottom:0;border:0}
#kontakt .opening-hours dt{font-size:16px;color:#6d624e;font-weight:400}
#kontakt .opening-hours dd{margin:0;font-size:17px;font-weight:600;color:#34362f;white-space:nowrap;font-variant-numeric:tabular-nums}
#kontakt .contact-email{display:inline-flex;gap:16px;align-items:center;font-size:17px;margin:0;padding:12px 0;border-bottom:0;color:#5c4826}
#kontakt .parent-download{max-width:none;margin-top:18px;padding:20px 0 0;border-color:#c4ac81}
#kontakt .parent-download strong{font-size:17px}
#kontakt .parent-download p{font-size:16px;margin:8px 0 12px;line-height:1.65;color:#645b49}
#kontakt .parent-download .text-link{font-size:16px}
@media(max-width:900px){.home-page #kontakt{grid-template-columns:1fr}.home-page #kontakt .contact-intro{padding:0}#kontakt .contact-location{max-width:none}}
@media(max-width:480px){#kontakt .contact-address-block,#kontakt .opening-hours{padding:21px 18px}#kontakt .opening-hours dl>div{gap:10px}#kontakt .opening-hours dd{font-size:16px}.home-page #kontakt{scroll-margin-top:170px}}
/* Probetraining: Ablauf statt Trainerwahl, genaue Uhrzeit */
#kontakt .form-intro-note{border:1px solid #c5b797;border-radius:12px;padding:16px 18px;background:#faf7ef;margin:0 0 18px}
#kontakt .form-intro-note strong{display:block;font-size:17px;color:#2d302b;margin-bottom:6px}
#kontakt .form-intro-note p{margin:0;font-size:15px;line-height:1.6;color:#4a4638}
#kontakt [data-time-hint]{margin:8px 0 16px!important}
#kontakt input[type=time]{min-height:48px}

/* Elternformulare (02.11.2026): Probetraining und Mitgliedschaft zur Wahl */
.parent-download-wahl{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.parent-download-wahl li{display:grid;gap:4px;margin:0}
.parent-download-wahl small{font-size:15px;line-height:1.5;color:#645b49}
#kontakt .parent-download-wahl .text-link{font-size:16px}
.eltern-wahl{display:flex;flex-wrap:wrap;gap:12px}
.eltern-wahl .button{white-space:normal;text-align:left}

/* mobile-icons.css */
/* Mobile action icons use the same puzzle silhouette as the app. */
i.responsive-icon{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;flex-shrink:0;font-style:normal;line-height:1;width:auto;height:auto;padding:0;background:transparent;border:0;border-radius:0;font-weight:inherit}
i.responsive-icon>.desktop-arrow{display:inline;font:inherit;line-height:inherit;color:inherit;text-transform:none}
i.responsive-icon>.mobile-puzzle-icon{display:none}
@media(max-width:760px){
 i.responsive-icon>.desktop-arrow{display:none}
 i.responsive-icon>.mobile-puzzle-icon{display:block;width:22px;height:22px;flex:0 0 22px;fill:currentColor}
 .readable-site .form-actions [data-form-back]{display:inline-flex;align-items:center;justify-content:center;gap:8px}
 .readable-site .form-actions [data-form-back][hidden]{display:none}
 .readable-site .area-arrow{display:inline-flex;align-items:center;justify-content:center}
 /* Directional controls stay recognizable in the Areas carousel. */
 .readable-site .area-arrow .responsive-icon>.desktop-arrow{display:inline;font-size:24px}
 .readable-site .area-arrow .responsive-icon>.mobile-puzzle-icon{display:none}
 .readable-site .area-mobile-select select{appearance:auto;background-image:none;padding-right:12px!important}
 .readable-site .back-top .mobile-puzzle-icon,.readable-site .round-arrow .mobile-puzzle-icon{width:23px;height:23px}
 .readable-site select{appearance:none;background-image:url('assets/puzzle-action.svg');background-repeat:no-repeat;background-position:right 12px center;background-size:18px 20px;padding-right:42px!important}
}
@media(forced-colors:active){i.responsive-icon>.mobile-puzzle-icon{fill:ButtonText}}

/* cream-theme.css */
/* Warm limestone, cream and sand: shared across the complete website. */
:root{
 --paper:#eee3cf;--white:#f2e8d7;--sand:#e3d4bb;--sage:#ddd7c1;
 --ink:#292c24;--muted:#575347;--gold-dark:#68512d;--gold-light:#e1c996;
 --line:#d0bea0;--line-strong:#ac9877;
 --app-bg:#eee3cf;--app-panel:#f2e8d7;--app-panel-2:#e3d4bb;--app-line:#c9b89a;--app-muted:#575347;--cream:#eee3cf;
}
html{background:#e7dac3}
body{background:var(--paper)}
.readable-site .site-header{background:#ede1cbf5;border-color:#c6b494;box-shadow:0 8px 28px #5945210b}
.readable-site .site-header.is-scrolled{background:#ecdfc8fa}
.readable-site .skip-link,.readable-site .nav-toggle{background:#f1e6d3}
.readable-site .button-secondary,.readable-site .button-ghost{background:#eee1c8}
/* Retain gold accents and the deliberately silver Basic tariff. */
.home-page .boutique-hero{background:#e6d5b7;border-bottom-color:#bda782}
.boutique-hero .hero-atmosphere{background:radial-gradient(ellipse at 50% 24%,#efe0c3 4%,#ead9b8 28%,transparent 65%),linear-gradient(115deg,#cfb98d44,transparent 38%,#c3a57340)}
.boutique-hero .hero-halo{background:radial-gradient(ellipse at 50% 38%,#f1e5ce 5%,#ead7af99 34%,#bfa16c30 57%,transparent 69%)}
.boutique-hero .hero-light-trace{border-color:#987b4838;box-shadow:0 0 70px #bf9e6030,inset 0 0 85px #f4e2bc60}
.home-page .intro,.home-page .course-feature{background:#eee3cf}
.home-page .journey-map a{background:#e4d4b7;border-color:#bfaa85}
.home-page .journey-map a:hover{background:#dcc6a2}
.home-page .areas{background:linear-gradient(135deg,#decbab,#ebddc3 70%)}
.area-cinema,.area-carousel-footer{background:#e6d6b9}
.area-carousel-footer{border-color:#bba17a}
.area-play,.area-mobile-select select{background-color:#eee0c5}
.area-picker{background:linear-gradient(145deg,#efe1c7,#e0cbaa)}
.home-page .more-areas,.more-areas{background:#eee1ca;border-color:#c5b08c}
.area-locker-note{background:#e5d3b5}
.home-page .special-shakes{background:#e2d0b2}
.shake-card{background:#ede0c8}
.home-page .pricing-section{background:#e6d8bd}
.home-page .opening-offer-compact{background:linear-gradient(110deg,#e9d9b8,#eee1c8);border-color:#bfa87d}
.home-page .faq-section{background:linear-gradient(125deg,#d3d2ce,#e4e2dd);border-block:1px solid #b7b0a3;color:#30312d}
.home-page .accordion details,.accordion details{background:transparent;border-color:#c6b492}
.accordion details[open]{background:#e0cfaf}
.home-page .faq-section .accordion details{border-color:#b1b0a8;background:transparent}
.home-page .faq-section .accordion details[open]{background:#e5e3de}
.home-page .faq-section .accordion summary{color:#30312d}
.home-page .faq-section .accordion summary:hover{background:#c8c7c0}
.home-page .faq-section .accordion p{color:#4e4d46;padding:12px 20px 24px}
.home-page .faq-section :focus-visible{outline-color:#68512d}
.home-page .contact-section,.contact-section{background:linear-gradient(125deg,#dcc5a0,#e9dabe 70%);border-color:#bca17a}
.home-page .contact-form,.contact-form{background:#f0e5d1;border-color:#bda680;box-shadow:0 16px 50px #4b3b1810}
.home-page .contact-form input,.home-page .contact-form select,.home-page .contact-form textarea,.contact-form input,.contact-form select,.contact-form textarea,.auth-form input{background-color:#f5ebd9;border-color:#9f8d70;color:#292c24}
.home-page .contact-form input:focus,.home-page .contact-form select:focus,.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus,.auth-form input:focus{background-color:#f2e2c7;border-color:#625334}
.form-age-note{background:#e7d3aa}
.legal-page .legal-card{background:#e2d2b5;border-color:#bba680}
.courses-hero{background:#e7d7ba}.course-world{background:#ded5bb}.flow-world{background:#dfcaaa}
.catalog-grid article,.calendar-cell,.calendar-course,.booking-grid article,.booking-list article{background:#f0e3cc}
.schedule-section,.booking-section{background:#e2d4b9}
.calendar-course.balance{background:#dbd6bd}.calendar-course.flow{background:#e5ceab}
.course-chip-list a{background:#efe3ca9c}.course-chip-list a:hover,.calendar-course:hover{background:#f0dfbf}
.auth-page{background:linear-gradient(90deg,#e9dcc5f5,#dfcaabc9),url('assets/daily-bar-reference-760w.webp') center/cover}
.auth-panel,.member-status{background:#efe2cbee}.auth-tabs{background:#dfceaf}.auth-tabs button.is-active{background:#f0e2c7}
/* Match the separate interactive app preview to the website palette. */
body:not(.readable-site){background:#e2d2b7}
.app-shell{background:var(--app-bg)}
.intro-screen{background:radial-gradient(ellipse at 30% 25%,#f0e3c9,#e2ccaa)}
.puzzle-app-grid article,.settings-card,.day-card,.course-book-card,.detail-card{background:#f0e3cc}
.app-login-card input,.outline-button,.filter-chip{background:#eee0c5}
.tariff-mini{background:linear-gradient(120deg,#e9d5ad,#f0e1c6)}
.bottom-nav{background:#eadcc2f5}
@media(max-width:1240px){.readable-site .main-nav{background:#eee1cafc;border-color:#c3ac84}}
@media(max-width:760px){.readable-site .header-cta{background:linear-gradient(110deg,#eee0c5,#e4d1ad);border-color:#b8a077}.readable-site .header-cta:hover{background:#dcc7a0}.area-mobile-select select{background-color:transparent}}
@media(forced-colors:active){html,body{background:Canvas}.hero-atmosphere{display:none}}

/* studio-scenes.css */
/* Anthracite replaces the green brand accents; cream and gold stay warm. */
:root{--ink:#292b2e;--scene-ink:#202225;--anthracite:#25272a;--anthracite-raised:#36393d}
.home-page .boutique-hero,.home-page .boutique-hero h1,.home-page .studio-welcome .intro-side h2{color:var(--ink)}
.home-page .studio-welcome .journey-map{background:var(--anthracite)}
.home-page .studio-welcome .journey-map a:hover{background:var(--anthracite-raised)}
.area-slide-copy{background:radial-gradient(ellipse at 100% 0,#ffffff09,transparent 68%),var(--anthracite)}
.home-page .app-experience{background:radial-gradient(ellipse at 78% 45%,#ffffff0c,transparent 52%),linear-gradient(115deg,#1d1f22,#303338)}
.app-puzzle-target svg{fill:#373a3e}
.readable-site .premium-footer{background:radial-gradient(ellipse at 0 0,#45484c66,transparent 60%),#202225}
.premium-footer .footer-bottom,.premium-footer .footer-visit{border-color:#6b6d7066}
.premium-footer .back-top{background:#33363a;border-color:#75777b}.premium-footer .back-top:hover{background:#44474b}
.readable-site .button-outline,.readable-site .button-secondary,.area-mobile-select select{color:var(--ink)}
@media(min-width:761px){.readable-site .header-cta{background:linear-gradient(120deg,#383b40,#222427);border-color:#62656a}}
/* One title system, based on the Areas heading. */
.readable-site .section-title{display:flex;align-items:center;gap:20px;min-width:0;margin:0 0 24px}
.readable-site .section-heading .section-title{margin:0}
.readable-site .section-title h2{font-family:var(--font-body,Manrope,sans-serif)!important;font-size:clamp(42px,4.5vw,64px)!important;font-weight:500!important;line-height:1.07!important;letter-spacing:-.045em!important;margin:0!important;min-width:0;text-wrap:balance;hyphens:manual}
.readable-site .section-title h2 em{font-family:var(--font-editorial);font-weight:500;font-size:1em!important;display:inline!important}
.readable-site .section-title .areas-title-mark{flex:0 0 58px;width:58px;height:58px}
.readable-site .section-title .areas-title-mark svg{width:44px;height:44px}
.home-page .studio-welcome .intro-copy{margin-top:0}
.home-page .app-experience-intro .app-subtitle{font-size:clamp(30px,3vw,42px);line-height:1.12;margin-bottom:20px}
.home-page .app-experience-intro .app-subtitle br{display:none}
.home-page .app-experience-intro>p{font-size:18px}
.home-page .app-experience{min-height:440px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 5%;padding-block:36px}
.home-page .app-puzzle-field{height:280px}.home-page .app-puzzle-caption{padding-bottom:8px}
.coaching-logo{display:block;width:40px;height:40px;object-fit:contain;flex:0 0 40px;filter:drop-shadow(0 2px 3px #33240820)}
.extra-copy .text-link:has(.coaching-logo){gap:12px;min-height:48px}
.plan-term{font-size:16px;line-height:1.5;margin:0 0 14px;color:#48484a}
.gym-passes{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.gym-pass{display:flex;flex-direction:column;min-width:0;padding:24px}
.gym-pass-heading{min-height:40px}.gym-pass-price{flex:1;align-items:flex-start;flex-direction:column;gap:14px}
.gym-pass-current{min-height:46px}.gym-pass-day .gym-pass-price{justify-content:center}
/* Shakes and meals share a single, edge-to-edge cinema with clear controls. */
.home-page .food-experience{background:var(--anthracite);padding:0;border-block:1px solid #b79966}
.food-viewport{width:100%;outline-offset:-5px}
.food-experience.is-ready .food-viewport{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.food-viewport::-webkit-scrollbar{display:none}
.food-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
.food-slide .bar-banner,.food-slide .meal-banner{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);height:100%;min-height:400px;background:radial-gradient(ellipse at 10% 80%,#ae89591a,transparent 60%),#222427}
.food-slide .bar-banner-copy,.food-slide .meal-copy{align-self:center;padding:32px var(--gutter);min-width:0}
.food-slide .bar-banner-copy>p:not(.eyebrow),.food-slide .meal-copy>p:not(.eyebrow){font-size:20px;line-height:1.5;margin-bottom:24px}
.food-slide .section-title h2{color:#fff9ed}
.food-slide .section-title h2 em{color:#e3c695}
.food-slide .bar-shake-trio{height:100%;min-height:400px}
.food-slide .bar-shake{background:#202225}
.food-slide .bar-shake:after{background:linear-gradient(0deg,#111315f5,transparent 46%),linear-gradient(180deg,#17191b38,transparent 35%)}
.food-slide .bar-shake img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 61%}
.food-slide .meal-visual{height:400px;align-self:center;padding:24px}
.food-slide .meal-visual img{height:92%;max-width:75%}
.food-slide .meal-wordmark{font-size:28px;top:28px;right:32px}
.food-controls{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px var(--gutter);background:#292c30;color:#f4ead6;border-top:1px solid #b69b654d}
.food-pickers,.food-actions{display:flex;align-items:center;gap:10px}
.food-pickers button{min-height:48px;padding:10px 22px;border:1px solid #77716a;border-radius:10px;background:transparent;color:#f4ead6;font:600 17px/1.4 var(--font-body)}
.food-pickers button[aria-current="true"]{background:linear-gradient(135deg,#edd9b0,#d2b379);color:#302a20;border-color:#d2b379}
.food-arrow,.food-play{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:48px;min-height:48px;border:1px solid #77716a;border-radius:10px;background:transparent;color:#f4ead6;font:600 16px/1.3 var(--font-body)}
.food-play{padding:10px 14px}.food-play[aria-pressed="true"]{border-color:#e5c895;background:#414044}
.food-arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.food-count{font-size:16px;white-space:nowrap;margin:0 10px;color:#d8cfbd;font-variant-numeric:tabular-nums}.food-count strong{font-weight:600;color:#f0d59f}
.food-experience :focus-visible{outline-color:#f4d49c!important;outline-offset:-4px}
.food-experience .special-shakes{color:var(--ink)}
@media(hover:hover){.food-pickers button:hover,.food-arrow:hover,.food-play:hover{border-color:#e8c88f;background-color:#414449}.food-pickers button[aria-current="true"]:hover{background:#e5c895}.food-slide.is-current .bar-shake:hover img{transform:scale(1.16)}}
@media(prefers-reduced-motion:no-preference){.food-slide.is-current .section-title{animation:food-title-in 550ms ease both}.food-slide.is-current .meal-visual img{animation:food-product-in 800ms ease both}.food-controls button{transition:background-color 200ms,border-color 200ms}}
@keyframes food-title-in{from{opacity:.3;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes food-product-in{from{opacity:.4;transform:translateX(24px) rotate(-7deg)}to{opacity:1;transform:rotate(-7deg)}}
@media(max-width:1050px){.gym-passes{gap:16px}.gym-pass{padding:20px}.gym-pass-heading{align-items:flex-start;flex-direction:column;gap:10px;min-height:80px}.gym-pass h3{font-size:25px}.home-page .gym-pass .button{padding:12px;font-size:16px;gap:8px}.food-slide .bar-banner-copy,.food-slide .meal-copy{padding:28px 24px}.food-slide .section-title{gap:14px}.food-slide .section-title h2{font-size:42px!important}.food-slide .section-title .areas-title-mark{width:48px;height:48px;flex-basis:48px}}
@media(max-width:760px){
 .readable-site .section-title{gap:14px;margin-bottom:20px;align-items:flex-start}.readable-site .section-title h2{font-size:40px!important;line-height:1.08!important;text-wrap:initial}.readable-site .section-title .areas-title-mark{width:44px;height:44px;flex-basis:44px}.readable-site .section-title .areas-title-mark svg{width:34px;height:34px}
 .home-page .app-experience{grid-template-columns:minmax(0,1fr);min-height:0;gap:14px;padding-block:28px}.home-page .app-experience-intro .app-subtitle{font-size:30px;margin-bottom:14px}.home-page .app-experience-intro .app-invitation{margin-top:14px}.home-page .app-skip-puzzle{margin-top:10px}.home-page .app-puzzle-field{height:210px}.home-page .app-puzzle-caption{padding-inline:0}.home-page .app-puzzle-orbit{width:190px;height:190px}.home-page .app-puzzle-orbit.orbit-two{width:250px;height:250px}
 .gym-passes{grid-template-columns:1fr}.gym-pass-heading{flex-direction:row;align-items:center;min-height:34px}.gym-pass-price{flex-direction:row;align-items:center}.gym-pass-day .gym-pass-price{justify-content:flex-start}.gym-pass-day .gym-pass-current{flex-direction:row;align-items:baseline;gap:12px}
 .food-slide .bar-banner,.food-slide .meal-banner{grid-template-columns:minmax(0,1fr);grid-template-rows:1fr 220px;min-height:0}
 .food-slide .bar-banner-copy,.food-slide .meal-copy{padding:24px var(--gutter);align-self:center}.food-slide .section-title{margin-bottom:16px}.food-slide .section-title h2{font-size:40px!important}.food-slide .bar-banner-copy .eyebrow,.food-slide .meal-copy .eyebrow{font-size:16px;margin-bottom:14px;letter-spacing:.025em}
 .food-slide .bar-banner-copy>p:not(.eyebrow),.food-slide .meal-copy>p:not(.eyebrow){font-size:18px;margin-bottom:18px;line-height:1.5}
 .food-slide .bar-shake-trio{height:220px;min-height:0}.food-slide .bar-shake img{transform:scale(1.42);object-position:50% 65%}.food-slide .bar-shake figcaption{padding:15px 5px}.food-slide .bar-shake figcaption strong{font-size:clamp(16px,4.3vw,22px)}
 .food-slide .meal-visual{height:220px;padding:10px 25px 20px}.food-slide .meal-visual img{height:100%;max-width:64%;margin-right:35px}.food-slide .meal-wordmark{font-size:24px;right:24px;top:20px}
 .food-controls{gap:10px;flex-wrap:wrap;padding:12px var(--gutter)}.food-pickers{flex:1;gap:8px}.food-pickers button{font-size:16px;padding:10px 12px;flex:1;white-space:nowrap}.food-actions{gap:8px}.food-play-label,.food-count{display:none}.food-play{padding:10px}.food-arrow,.food-play{min-width:44px;min-height:44px}.food-actions{margin-left:auto}
}
@media(max-width:450px){.food-pickers{flex-basis:100%}.food-actions{width:100%;justify-content:flex-end}.food-count{display:block;margin-right:auto}.food-play-label{display:inline}.food-play{margin-right:auto}.food-count{display:none}}
@media(max-width:360px){.readable-site .section-title h2,.food-slide .section-title h2{font-size:35px!important}.readable-site .section-title{gap:10px}.readable-site .section-title .areas-title-mark{width:40px;height:40px;flex-basis:40px}.readable-site .section-title .areas-title-mark svg{width:30px;height:30px}.food-slide .meal-wordmark{font-size:20px}.coaching-logo{width:34px;height:34px;flex-basis:34px}}
@media(forced-colors:active){.food-controls,.food-pickers button,.food-arrow,.food-play{border:1px solid ButtonText;background:Canvas;color:CanvasText}.food-pickers button[aria-current="true"]{outline:2px solid Highlight}.readable-site .section-title .areas-title-mark svg{fill:CanvasText}}

/* Compact mobile controls leave room for the complete scene and readable copy. */
.food-mobile-select{display:none}
.nav-toggle span{background:var(--ink)}
.extra-photo,.home-page .course-tile{background:#292c30}
.home-page .course-tile:before{background:linear-gradient(0deg,#111315f5,transparent 80%)}
@media(max-width:760px){
 .food-slide .bar-banner,.food-slide .meal-banner{grid-template-rows:1fr 190px}.food-slide .bar-shake-trio,.food-slide .meal-visual{height:190px}
 .food-controls{flex-wrap:nowrap;gap:8px}.food-pickers{display:none}.food-mobile-select{display:block;flex:1;min-width:0;margin:0}.food-mobile-select select{width:100%;min-height:44px;padding:8px 0;border:0;background:#292c30;color:#f4ead6;font:600 16px/1.4 var(--font-body)}
 .food-actions{width:auto;gap:6px;margin:0;flex:0 0 auto}.food-play{margin:0;min-width:44px;padding:8px}.food-play-label,.food-count{display:none}
}

/* Centered closing call-to-action keeps its heading on the same axis as copy and button. */
.course-cta .section-title{justify-content:center}
.course-cta .section-title h2{text-align:left}

/* Pass titles carry the studio branding beside the name. */
.gym-pass .gym-pass-title{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-width:0}
.gym-pass-title .gym-pass-logo{width:76px;flex:0 0 76px}
.gym-pass-heading{flex-wrap:wrap}

/* anthracite-light.css */
/* Anthracite light: one warm key light from the upper left, a cool fill from the lower right,
   polished gold edges and single reflections only where a real surface would catch light. */
:root{
 --anth-base:#212326;
 --anth-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 .06 0 0 0 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
 --anth-surface:var(--anth-grain),radial-gradient(110% 130% at 0 0,#e0bc7e24,transparent 55%),radial-gradient(90% 110% at 100% 100%,#9aa6b614,transparent 60%),linear-gradient(145deg,#303338 0%,#232529 45%,#18191c 100%);
 --anth-edge:linear-gradient(90deg,transparent,#d6b47659 18%,#ffecc4d9 42%,#d6b47659 70%,transparent) top/100% 1px no-repeat;
}

/* Journey bar under the welcome block */
.home-page .studio-welcome .journey-map{position:relative;background:var(--anth-edge),var(--anth-surface);background-color:var(--anth-base);box-shadow:inset 0 -1px 0 #0000004d}
.home-page .studio-welcome .journey-map a,.home-page .studio-welcome .journey-map a:hover{background:transparent}
.home-page .studio-welcome .journey-map a::before{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(70% 120% at 50% 118%,#e0bc7e38,transparent 70%),linear-gradient(180deg,#ffffff0a,transparent 60%);transition:opacity 300ms ease}
.home-page .studio-welcome .journey-map a:hover::before,.home-page .studio-welcome .journey-map a:focus-visible::before{opacity:1}
.home-page .studio-welcome .journey-map a>*{position:relative}

/* Area text panel: light spills over from the photo edge */
.area-slide-copy{background:linear-gradient(180deg,transparent 6%,#e0bc7e70 36%,#e0bc7e1f 76%,transparent) left/1px 100% no-repeat,radial-gradient(95% 70% at 0 32%,#e0bc7e21,transparent 70%),radial-gradient(80% 60% at 100% 100%,#9aa6b612,transparent 65%),var(--anth-grain),linear-gradient(160deg,#2f3237 0%,#222428 52%,#18191c 100%);background-color:var(--anth-base)}

/* Fitness bar: shakes and meals */
.home-page .food-experience{position:relative;background:var(--anth-surface);background-color:var(--anth-base)}
.food-slide .bar-banner,.food-slide .meal-banner{background:radial-gradient(75% 95% at 0 0,#e0bc7e21,transparent 60%),radial-gradient(60% 80% at 100% 100%,#9aa6b612,transparent 65%),var(--anth-grain),linear-gradient(150deg,#2c2f34 0%,#202225 55%,#17181b 100%);background-color:var(--anth-base)}
.food-controls{background:linear-gradient(180deg,#2b2e33,#1e2023);box-shadow:inset 0 1px 0 #ffffff0d}
.food-mobile-select select{background-color:#25282c}

/* App stage: a warm spotlight falls on the puzzle target */
.home-page .app-experience{background:radial-gradient(34% 62% at 76% 46%,#e8c88c2b,transparent 70%),linear-gradient(104deg,transparent 56%,#fff0cf0b 63%,transparent 71%),radial-gradient(70% 90% at 0 0,#e0bc7e14,transparent 60%),var(--anth-grain),linear-gradient(115deg,#1a1c1f 0%,#26292d 48%,#303338 100%);background-color:var(--anth-base)}

/* Footer: the gold rule reflects onto the dark surface below */
.readable-site .premium-footer{background:radial-gradient(55% 60% at 50% 0,#e0bc7e1c,transparent 70%),radial-gradient(60% 80% at 0 0,#45484c55,transparent 60%),var(--anth-grain),linear-gradient(180deg,#25272b 0%,#1c1e21 55%,#141517 100%);background-color:#1c1e21}
.readable-site .premium-footer::before{content:'';position:absolute;left:0;right:0;top:-3px;height:3px;pointer-events:none;background:linear-gradient(90deg,#8d713f 0%,#d4b574 22%,#fff0c8 42%,#c9ab70 58%,#9c7f4a 80%,#d9bd82 100%)}
.premium-footer .back-top{background:linear-gradient(145deg,#3b3e43,#25272b);box-shadow:inset 0 1px 0 #ffffff1a}
.premium-footer .back-top:hover{background:linear-gradient(145deg,#484b50,#2c2f33)}

/* Small anthracite surfaces: polished top edge */
.opening-ribbon-label{border-color:#4b4e53;background:radial-gradient(120% 160% at 0 0,#e0bc7e2e,transparent 60%),linear-gradient(135deg,#36393e,#1e2023);box-shadow:inset 0 1px 0 #ffffff1a,0 4px 12px #3a2a1424}
@media(min-width:761px){.readable-site .header-cta{overflow:hidden;border-color:#5d6066;background:radial-gradient(120% 140% at 0 0,#e0bc7e26,transparent 60%),linear-gradient(135deg,#3b3e43 0%,#26282c 55%,#1b1c1f 100%);box-shadow:inset 0 1px 0 #ffffff1f,inset 0 -1px 0 #00000059,0 6px 16px #1a1a1c24}}

/* Silver and gold tariff plates: metal catches the light once they appear and on hover */
.home-page .plan-visual{background-image:linear-gradient(112deg,transparent 42%,#ffffffa6 50%,transparent 58%),linear-gradient(125deg,#fafbfc 0%,#d9dee5 42%,#f5f7f9 72%,#d8dee5 100%);background-size:250% 100%,100% 100%;background-position:100% 0,0 0;background-repeat:no-repeat}
.home-page .plan-all-in .plan-visual{background-image:linear-gradient(112deg,transparent 42%,#fff8e3b3 50%,transparent 58%),linear-gradient(125deg,#f6ead0 0%,#d3b982 44%,#eee0bb 73%,#c8ab71 100%);background-size:250% 100%,100% 100%;background-position:100% 0,0 0;background-repeat:no-repeat}

/* Motion stays optional: one pass, never looping */
@media(prefers-reduced-motion:no-preference){
 .home-page .plan-visual::before{content:'';position:absolute;inset:-40% -30%;z-index:-1;pointer-events:none;background:linear-gradient(112deg,transparent 40%,#ffffff94 49%,#fffdf5cc 50%,#ffffff3d 53%,transparent 60%);transform:translateX(-80%);opacity:0}
 .home-page .price-card.is-visible .plan-visual::before{animation:anth-metal-sheen 1800ms cubic-bezier(.25,.6,.3,1) 450ms both}
 .food-slide .bar-banner::before,.food-slide .meal-banner::before{content:'';position:absolute;inset:-30% -20%;z-index:3;pointer-events:none;background:linear-gradient(108deg,transparent 40%,#ffe9b826 48%,#fff6de47 50%,#e6c78a12 53%,transparent 60%);transform:translateX(-110%)}
 .food-slide.is-current .bar-banner::before,.food-slide.is-current .meal-banner::before{animation:anth-light-pass 1600ms cubic-bezier(.2,.6,.3,1) 120ms both}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .home-page .price-card:hover .plan-visual{background-position:0 0,0 0;transition:background-position 1100ms cubic-bezier(.25,.6,.3,1)}
 .readable-site .header-cta::after,.button-primary::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(105deg,transparent 30%,#fff7e052 48%,transparent 66%);transform:translateX(-120%)}
 .button-primary{overflow:hidden}
 .readable-site .header-cta:hover::after,.button-primary:hover::after{transform:translateX(120%);transition:transform 750ms cubic-bezier(.2,.6,.3,1)}
}
@keyframes anth-metal-sheen{0%{opacity:0;transform:translateX(-80%)}15%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translateX(80%)}}
@keyframes anth-light-pass{0%{opacity:0;transform:translateX(-110%)}20%{opacity:1}100%{opacity:0;transform:translateX(110%)}}

@media(max-width:760px){
 .area-slide-copy{background:linear-gradient(90deg,transparent 6%,#e0bc7e70 36%,#e0bc7e1f 76%,transparent) top/100% 1px no-repeat,radial-gradient(120% 80% at 30% 0,#e0bc7e21,transparent 70%),var(--anth-grain),linear-gradient(170deg,#2f3237 0%,#222428 52%,#18191c 100%);background-color:var(--anth-base)}
 .home-page .app-experience{background:radial-gradient(70% 34% at 50% 74%,#e8c88c2b,transparent 70%),radial-gradient(90% 50% at 0 0,#e0bc7e14,transparent 60%),var(--anth-grain),linear-gradient(170deg,#1a1c1f 0%,#26292d 52%,#303338 100%);background-color:var(--anth-base)}
}
@media(forced-colors:active){.readable-site .premium-footer::before,.home-page .plan-visual::before,.food-slide .bar-banner::before,.food-slide .meal-banner::before,.readable-site .header-cta::after,.button-primary::after,.home-page .studio-welcome .journey-map a::before{display:none}}

/* interactions.css */
/* Counting numbers keep their final width, so nothing around them jumps. */
[data-count]{font-variant-numeric:lining-nums tabular-nums}
[data-count].is-counting{display:inline-block;text-align:right}

/* Clearer hover states: colour, border and depth on every pointer device;
   movement only when the visitor has not asked for reduced motion. */
@media(hover:hover){
 /* Tariffs */
 .readable-site .price-card:not(.will-reveal),.readable-site .price-card.is-settled{transition:transform 380ms cubic-bezier(.2,.7,.3,1),box-shadow 380ms ease,border-color 380ms ease}
 .home-page .price-card.plan-basic:hover{border-color:#8f9aa8;box-shadow:0 32px 64px -26px #3d465470,0 0 0 1px #8f9aa866}
 .home-page .price-card.plan-all-in:hover{border-color:#a8894f;box-shadow:0 32px 64px -24px #7a5a2470,0 0 0 1px #c9a86a80}
 .home-page .gym-pass{transition:transform 320ms cubic-bezier(.2,.7,.3,1),box-shadow 320ms ease,border-color 320ms ease}
 .home-page .gym-pass:hover{border-color:#9a7a44;box-shadow:inset 0 1px #fbf0d8,0 24px 46px -22px #6b502370}

 /* Extras, courses and course formats */
 .extra-card:hover{border-color:#a8894f;box-shadow:0 28px 56px -26px #493b2470}
 .extra-card:hover .extra-photo img{transform:scale(1.07)}
 .course-tile:hover{box-shadow:0 32px 64px -28px #1c1a1685}
 .course-tile:hover>img{transform:scale(1.07)}
 .course-tile .round-arrow{transition:transform 320ms cubic-bezier(.2,.7,.3,1),background-color 220ms ease,border-color 220ms ease}
 .readable-site .course-tile:hover .round-arrow{transform:rotate(45deg);background:#e5c895;border-color:#e5c895;color:#2a2418}
 .catalog-grid article:not(.will-reveal),.catalog-grid article.is-settled{transition:transform 320ms cubic-bezier(.2,.7,.3,1),box-shadow 320ms ease,border-color 320ms ease}
 .readable-site .catalog-grid article:hover{border-color:#b59b68;box-shadow:0 26px 50px -26px #6b502366}
 .home-page .studio-welcome .welcome-image:hover img{transform:scale(1.05)}

 /* Buttons */
 .readable-site .button:not(.button-primary):hover{box-shadow:0 14px 28px -14px #4a391d73}
 .readable-site .button-primary:hover{box-shadow:inset 0 1px 0 #fff7e1,0 16px 32px -14px #74552785;border-color:#7d6433}
 .readable-site .button-outline:hover{background:linear-gradient(135deg,#f5e9cf,#e3cd9e);border-color:#9a7c45;color:#2a2418}
 .home-page .plan-basic .button:hover{background:linear-gradient(135deg,#fbfcfd,#d0d7e0);border-color:#56616e}
 .home-page .plan-all-in .button:hover{background:linear-gradient(115deg,#ecd9ab,#c29f5e);border-color:#7d6433}
 .home-page .gym-pass .button:hover{background:linear-gradient(135deg,#f5e9cf,#dcc393);border-color:#846e45}
 .readable-site .header-cta:hover{border-color:#b59b68;box-shadow:inset 0 1px 0 #ffffff26,0 12px 26px -10px #00000066,0 0 0 1px #b59b6859}
 .area-arrow:hover,.food-arrow:hover{box-shadow:0 10px 22px -10px #0000006b}

 /* Links */
 .main-nav a::after{background:linear-gradient(90deg,#b59b68,#e5c895);transition:transform 280ms cubic-bezier(.2,.7,.3,1)}
 .readable-site .main-nav a:hover{color:#6b5530}
 .text-link{background:linear-gradient(90deg,#b59b68,#e5c895) left bottom/0 2px no-repeat;transition:background-size 320ms ease,color 200ms ease,border-color 200ms ease}
 .readable-site .text-link:hover{background-size:100% 2px;color:#6b5530;border-color:transparent}
 .readable-site .text-link:hover>span{transform:translate(4px,-3px)}
 .home-page .app-experience .text-link:hover{color:#f6dfae}
 .premium-footer .footer-column>a:hover{text-decoration-color:#e5c895}
 .home-page .studio-welcome .journey-map a>span:last-child{transition:transform 260ms ease}

 /* Questions */
 .home-page .faq-section .accordion summary{transition:background-color 220ms ease,box-shadow 220ms ease}
 .home-page .faq-section .accordion summary:hover{background:#d6d2c7;box-shadow:inset 3px 0 0 #b59b68}
 .accordion summary:hover span{color:#7a5f2c}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .home-page .price-card:hover,.home-page .price-card.will-reveal.is-visible:hover{transform:translateY(-10px)}
 .home-page .gym-pass:hover,.extra-card:hover,.readable-site .catalog-grid article:hover,.readable-site .catalog-grid article.will-reveal.is-visible:hover{transform:translateY(-6px)}
 .readable-site .course-tile:hover,.readable-site .course-tile.will-reveal.is-visible:hover{transform:translateY(-8px)}
 .readable-site .button:hover,.readable-site .header-cta:hover{transform:translateY(-3px)}
 .area-arrow:hover,.food-arrow:hover{transform:translateY(-3px)}
 .home-page .studio-welcome .journey-map a:hover>span:last-child{transform:translateY(4px)}
 .accordion summary:hover span{transform:scale(1.3)}
 .accordion details[open] summary:hover span{transform:rotate(45deg) scale(1.3)}
}

/* firmenfitness.css */
/* Firmenfitness Nürnberg — gleiche Sprache wie die Startseite: Creme, Anthrazit, Gold,
   Manrope für Text und Cormorant für die Schreibschrift-Akzente. */
.ff-seite{--ff-gold:#9b7a3d;--ff-gold-hell:#dbc18b;--ff-anth:#252829;--ff-creme:#f4ecdc;--ff-rand:#c9b58f;background:#efe6d4;color:#232520;overflow-x:clip}
.ff-seite h2,.ff-seite h3{text-wrap:balance}
.ff-seite em{font-family:var(--font-editorial);font-style:italic;font-weight:400;color:var(--ff-gold)}
.ff-kicker{display:flex;align-items:center;gap:14px;margin:0 0 18px;font:600 .8125rem/1.5 var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:#7a6440}
.ff-kicker:after{content:'';width:56px;height:1px;background:linear-gradient(90deg,#a7895599,transparent)}
.ff-textlink{display:inline-flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid #a78b5a88;font-weight:700;color:#3d3423;text-decoration:none}
.ff-textlink:hover{border-color:var(--ff-gold);color:#1f1d17}
.ff-aktionen{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px}
.ff-aktionen .button{min-width:min(100%,300px)}

/* Einstieg */
.ff-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:center;padding:clamp(128px,14vw,170px) var(--gutter) clamp(56px,7vw,96px);background:radial-gradient(ellipse at 30% 30%,#faf1dc 0%,#ecdcbd 55%,#e2cfab 100%);border-bottom:1px solid #c5b18c80}
.ff-puzzle-kontur{position:absolute;z-index:-1;width:clamp(320px,38vw,640px);left:-12%;top:12%;fill:none;stroke:#947541;stroke-width:.13;opacity:.24;transform:rotate(-18deg);pointer-events:none}
.ff-hero-text{max-width:640px;justify-self:end;width:100%}
.ff-hero h1{margin:0 0 24px;font-size:clamp(3rem,6.6vw,6.25rem);line-height:.98;letter-spacing:-.055em;font-weight:600;color:#1f231f}
.ff-hero h1 em{display:inline-block;font-size:1.08em;letter-spacing:-.02em;color:#8d6d35;line-height:1.05}
.ff-lead{max-width:34em;margin:0 0 32px;font-size:clamp(1.0625rem,1.35vw,1.25rem);line-height:1.7;color:#4d4739}
.ff-fakten{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:40px 0 0;padding:22px 0 0;list-style:none;border-top:1px solid #b69d6f66}
.ff-fakten li{display:grid;gap:2px}
.ff-fakten strong{font-family:var(--font-editorial);font-style:italic;font-weight:400;font-size:clamp(2rem,3vw,2.75rem);line-height:1;color:#8d6d35}
.ff-fakten span{font-size:.9375rem;line-height:1.4;color:#5c5340}
.ff-hero-bild{position:relative;margin:0;max-width:720px}
.ff-hero-bild img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:28px;box-shadow:0 40px 80px -40px #3a2c1680,0 0 0 1px #ffffff55 inset}
.ff-hero-karte{position:absolute;left:clamp(-40px,-3vw,-16px);bottom:34px;display:grid;gap:4px;max-width:280px;padding:20px 24px;border:1px solid #d7bd8355;border-radius:18px;background:radial-gradient(ellipse at 100% 0,#a4834638,transparent 65%),var(--ff-anth);color:#f4ead7;box-shadow:0 24px 48px -24px #1b1c1fb3}
.ff-hero-karte span{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ff-gold-hell)}
.ff-hero-karte strong{font-family:var(--font-editorial);font-style:italic;font-weight:400;font-size:1.75rem;line-height:1.15;color:#fff6e4}
.ff-hero-karte small{font-size:.875rem;color:#cfc4ad}

/* Abschnitte */
.ff-abschnitt{padding:clamp(64px,8vw,120px) var(--gutter)}
.ff-abschnitt>*{max-width:1240px;margin-inline:auto}
.ff-kopf{max-width:1240px;margin-bottom:clamp(32px,4vw,56px)}
.ff-kopf h2,.ff-leistung-text h2,.ff-anfrage-intro h2{margin:0 0 18px;font-size:clamp(2.25rem,4.2vw,3.75rem);line-height:1.05;letter-spacing:-.045em;font-weight:600;color:#1f231f}
.ff-kopf>p:not(.ff-kicker){max-width:40em;font-size:1.125rem;line-height:1.7;color:#5a5343}

/* Nutzen */
.ff-nutzen{background:linear-gradient(150deg,#f4ecdc,#ebdfc6)}
.ff-kacheln{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.ff-kacheln article{position:relative;padding:30px 26px 32px;border:1px solid #c9b58f99;border-radius:22px;background:#fbf6ea;box-shadow:0 16px 40px -30px #49392080;transition:transform .35s var(--ease,ease),box-shadow .35s}
.ff-kacheln span{display:block;margin-bottom:26px;font-family:var(--font-editorial);font-style:italic;font-size:2.75rem;line-height:1;color:#a88a52}
.ff-kacheln h3{margin:0 0 10px;font-size:1.3125rem;line-height:1.25;letter-spacing:-.02em}
.ff-kacheln p{margin:0;font-size:1rem;line-height:1.65;color:#5c5340}

/* Leistung */
.ff-leistung{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,72px);align-items:center;max-width:none;background:#efe6d4}
.ff-leistung>*{margin:0}
.ff-leistung-bild{justify-self:end;width:100%;max-width:620px}
.ff-leistung-bild img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:26px;box-shadow:0 36px 70px -40px #3a2c1680}
.ff-leistung-text{max-width:640px}
.ff-tarife{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:28px}
.ff-tarife article{display:flex;flex-direction:column;padding:26px 24px;border:1px solid var(--ff-rand);border-radius:22px;background:#fbf6ea}
.ff-tarife article.is-dunkel{border-color:#b59b686b;background:radial-gradient(ellipse at 100% 0,#a4834630,transparent 65%),var(--ff-anth);color:#f4ead7}
.ff-tarife h3{margin:0 0 4px;font-size:1.75rem;letter-spacing:-.035em}
.ff-tarife .is-dunkel h3{color:#fff6e4}
.ff-tarife p{margin:0 0 18px;color:#6b624e}.ff-tarife .is-dunkel p{color:#cfc4ad}
.ff-tarife ul{display:grid;gap:10px;margin:0 0 22px;padding:0;list-style:none}
.ff-tarife li{position:relative;padding-left:20px;font-size:.9875rem;line-height:1.5}
.ff-tarife li:before{content:'';position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:2px;background:var(--ff-gold)}
.ff-tarife .is-dunkel li:before{background:var(--ff-gold-hell)}
.ff-auf-anfrage{margin-top:auto;padding-top:16px;border-top:1px solid #c9b58f88;font-family:var(--font-editorial);font-style:italic;font-size:1.3rem;color:var(--ff-gold)}
.ff-tarife .is-dunkel .ff-auf-anfrage{border-color:#d7bd8340;color:var(--ff-gold-hell)}

/* Ablauf */
.ff-ablauf{background:linear-gradient(150deg,#ebdfc6,#e2d1b0)}
.ff-schritte{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 auto;padding:0;list-style:none;counter-reset:none}
.ff-schritte li{position:relative;padding:8px clamp(18px,3vw,40px) 8px 0;border-left:0}
.ff-schritte li+li{padding-left:clamp(18px,3vw,40px);border-left:1px solid #a7895566}
.ff-schritte span{display:block;margin-bottom:14px;font-family:var(--font-editorial);font-style:italic;font-size:3.5rem;line-height:1;color:#a88a52}
.ff-schritte h3{margin:0 0 8px;font-size:1.375rem;letter-spacing:-.02em}
.ff-schritte p{margin:0;font-size:1.0625rem;line-height:1.65;color:#5a5343}

/* Anfrage */
.ff-anfrage{background:#efe6d4}
.ff-anfrage-karte{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,4vw,64px);padding:clamp(28px,4vw,56px);border:1px solid #b59b686b;border-radius:30px;background:radial-gradient(ellipse at 0 0,#a4834633,transparent 55%),radial-gradient(ellipse at 100% 100%,#a4834622,transparent 60%),var(--ff-anth);color:#f1e8d6;box-shadow:0 40px 80px -46px #1b1c1fcc}
.ff-anfrage .ff-kicker{color:#d3bd8f}.ff-anfrage .ff-kicker:after{background:linear-gradient(90deg,#d3bd8f88,transparent)}
.ff-anfrage-intro h2{color:#fff6e4}.ff-anfrage-intro h2 em{color:var(--ff-gold-hell)}
.ff-anfrage-intro>p{font-size:1.0625rem;line-height:1.7;color:#d9cfbb}
.ff-haken{display:grid;gap:10px;margin:26px 0 0;padding:0;list-style:none}
.ff-haken li{position:relative;padding-left:30px;color:#efe4cd}
.ff-haken li:before{content:'';position:absolute;left:0;top:.2em;width:18px;height:18px;border-radius:50%;background:#d7bd8326;box-shadow:inset 0 0 0 1px #d7bd8388}
.ff-haken li:after{content:'';position:absolute;left:6px;top:.42em;width:5px;height:9px;border:solid var(--ff-gold-hell);border-width:0 2px 2px 0;transform:rotate(45deg)}
.ff-formular{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;align-content:start}
.ff-breit{grid-column:1/-1}
.ff-feld{display:grid;gap:7px;min-width:0}
.ff-feld label{font-size:.9375rem;font-weight:600;color:#efe4cd}
.ff-feld input,.ff-feld select,.ff-feld textarea{width:100%;min-width:0;min-height:52px;padding:12px 14px;border:1px solid #d7bd8347;border-radius:12px;background:#ffffff0f;color:#fff8ea;font:inherit;font-size:1rem;transition:border-color .2s,background .2s}
.ff-feld textarea{min-height:92px;resize:vertical}
.ff-feld select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#dbc18b 50%),linear-gradient(135deg,#dbc18b 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.ff-feld select option{color:#222}
.ff-feld input::placeholder,.ff-feld textarea::placeholder{color:#b9ae99}
.ff-feld :is(input,select,textarea):focus{outline:none;border-color:var(--ff-gold-hell);background:#ffffff17;box-shadow:0 0 0 3px #dbc18b33}
.ff-feld [aria-invalid=true]{border-color:#f0a38e}
.ff-zustimmung{display:flex;gap:12px;align-items:flex-start;font-size:.9375rem;line-height:1.55;color:#d9cfbb}
.ff-zustimmung input{flex:0 0 20px;width:20px;height:20px;margin-top:2px;accent-color:#c9a864}
.ff-zustimmung a{color:var(--ff-gold-hell)}
.ff-honig{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.ff-formular .button{justify-content:space-between;margin-top:6px}
.ff-formular .button[disabled]{opacity:.65;cursor:wait}
.ff-status{min-height:1.5em;margin:0;font-size:.9375rem;color:#f0cb7d}.ff-status.is-fehler{color:#ffb4a4;font-weight:600}
.ff-ergebnis{align-self:center;padding:clamp(24px,3vw,40px);border:1px solid #d7bd8355;border-radius:22px;background:#ffffff0a}
.ff-ergebnis h3{margin:0 0 10px;font-family:var(--font-editorial);font-style:italic;font-weight:400;font-size:clamp(2rem,3vw,2.75rem);color:#fff6e4}
.ff-ergebnis p{color:#d9cfbb;line-height:1.7}
.ff-ergebnis .ff-textlink{color:#f1e8d6;border-color:#d7bd8388;cursor:pointer}
.ff-ergebnis[hidden],.ff-formular[hidden]{display:none}

/* FAQ */
.ff-faq{background:linear-gradient(135deg,#eee7d9,#e0d8c9)}
.ff-fragen{max-width:1000px;margin:0 auto}
.ff-fragen details{border-bottom:1px solid #b9a88870}
.ff-fragen details:first-child{border-top:1px solid #b9a88870}
.ff-fragen summary{display:flex;align-items:center;gap:18px;padding:24px 8px;cursor:pointer;list-style:none;font-size:1.1875rem;font-weight:600;line-height:1.45}
.ff-fragen summary::-webkit-details-marker{display:none}
.ff-fragen summary span{margin-left:auto;flex:0 0 34px;height:34px;display:grid;place-items:center;border:1px solid #a9906266;border-radius:50%;font-weight:400;font-size:22px;transition:transform .3s}
.ff-fragen details[open] summary span{transform:rotate(45deg)}
.ff-fragen details[open]{background:#f6eddb}
.ff-fragen p{margin:0;padding:0 56px 26px 8px;font-size:1.0625rem;line-height:1.75;color:#4f4a3c}

@media(hover:hover) and (pointer:fine){.ff-kacheln article:hover{transform:translateY(-4px);box-shadow:0 26px 50px -30px #49392099}.ff-fragen summary:hover{color:#70532e}}
@media(max-width:1100px){.ff-kacheln{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
 .ff-hero{grid-template-columns:1fr;padding-top:120px}
 .ff-hero-text{justify-self:start}
 .ff-hero-bild img{aspect-ratio:4/3}
 .ff-hero-karte{left:16px;bottom:16px}
 .ff-leistung{grid-template-columns:1fr}
 .ff-leistung-bild{justify-self:stretch;max-width:none}.ff-leistung-bild img{aspect-ratio:16/10}
 .ff-anfrage-karte{grid-template-columns:1fr}
 .ff-schritte{grid-template-columns:1fr;gap:26px}
 .ff-schritte li,.ff-schritte li+li{padding:0 0 0 22px;border-left:1px solid #a7895566}
}
@media(max-width:600px){
 .ff-kacheln,.ff-tarife,.ff-formular{grid-template-columns:1fr}
 .ff-fakten{gap:8px}.ff-fakten span{font-size:.8125rem}
 .ff-hero-karte{position:static;margin-top:-40px;margin-inline:14px;max-width:none}
 .ff-fragen summary{font-size:1.0625rem;padding:20px 4px}
 .ff-fragen p{padding:0 8px 22px 4px}
 .ff-aktionen .button{width:100%}
}
@media(prefers-reduced-motion:reduce){.ff-kacheln article,.ff-fragen summary span{transition:none}.ff-kacheln article:hover{transform:none}}
@media(forced-colors:active){.ff-anfrage-karte,.ff-tarife article,.ff-kacheln article{border:1px solid CanvasText}.ff-puzzle-kontur{display:none}}
/* Rasterspalten dürfen schmaler als ihr längstes Wort werden; lange Wörter trennen. */
.ff-hero>*,.ff-leistung>*,.ff-anfrage-karte>*,.ff-formular>*,.ff-kacheln>*,.ff-tarife>*,.ff-schritte>*{min-width:0}
.ff-seite :is(h1,h2,h3,p,li,summary){overflow-wrap:break-word}.ff-seite :is(h2,h3){hyphens:auto}
@media(max-width:420px){.ff-anfrage-karte{padding:22px 16px;border-radius:22px}.ff-ergebnis{padding:20px 16px}.ff-abschnitt{padding-inline:16px}}

/* Camp Dörfl: Firmenfitness direkt im Unternehmen — ergänzt die Mitgliedschaft. */
.ff-camp{background:linear-gradient(150deg,#e8dcc4,#dccaa7);padding-bottom:clamp(72px,9vw,128px)}
.ff-camp-karte{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(28px,4vw,64px);align-items:center;padding:clamp(22px,3vw,40px);border:1px solid #bfae91;border-radius:30px;background:radial-gradient(ellipse at 100% 0,#d8bf8a33,transparent 60%),#fbf6ea;box-shadow:0 36px 70px -44px #3a2c1699}
.ff-camp-karte>*{min-width:0}
.ff-camp-bild{position:relative;margin:0;height:100%}
.ff-camp-bild>img{display:block;width:100%;height:100%;min-height:360px;object-fit:cover;object-position:45% 40%;border-radius:22px}
.ff-camp-bild figcaption{position:absolute;left:16px;bottom:16px;display:flex;align-items:center;gap:12px;padding:10px 16px 10px 10px;border-radius:14px;background:#252829e6;color:#f4ead7;backdrop-filter:blur(6px)}
.ff-camp-bild figcaption img{width:42px;height:42px;border-radius:50%}
.ff-camp-bild figcaption span{display:grid;font-weight:700;line-height:1.3}
.ff-camp-bild figcaption small{font-weight:400;font-size:.8125rem;color:#d3c7ad}
.ff-camp-text h2{margin:0 0 16px;font-size:clamp(2.125rem,3.8vw,3.25rem);line-height:1.06;letter-spacing:-.045em;font-weight:600;color:#1f231f}
.ff-camp-text>p:not(.ff-kicker){font-size:1.0625rem;line-height:1.7;color:#524b3c}
.ff-camp-formate{display:grid;gap:14px;margin:24px 0;padding:0;list-style:none}
.ff-camp-formate li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;padding-top:14px;border-top:1px solid #c9b58f88}
.ff-camp-formate span{font-family:var(--font-editorial);font-style:italic;font-size:2.25rem;line-height:1;color:#a88a52}
.ff-camp-formate h3{margin:0 0 4px;font-size:1.1875rem;letter-spacing:-.02em}
.ff-camp-formate p{margin:0;font-size:.98rem;line-height:1.6;color:#5c5340}
.ff-camp-referenzen{margin:0 0 24px;font-size:.9375rem!important;line-height:1.6;color:#6b5a38!important}
.ff-camp-referenzen strong{display:block;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:#8a6c3d}
.ff-fragen p a{color:#70532e;font-weight:600}
@media(max-width:900px){.ff-camp-karte{grid-template-columns:1fr}.ff-camp-bild>img{min-height:0;aspect-ratio:16/10}}
@media(max-width:420px){.ff-camp-karte{padding:16px;border-radius:22px}.ff-camp-formate li{grid-template-columns:40px minmax(0,1fr)}}

/* restart-popup.css */
/* Restart-Pop-up (restart-popup.js): festlich, aber ruhig – helle Karte mit Goldrahmen, Datum in der Akzentschrift,
   Öffnungszeit auf Anthrazit. Keine Kicker-Chips, kein Konfetti; Bewegung nur ohne „reduzierte Bewegung“. */
.restart-popup{width:min(540px,calc(100% - 28px));max-height:calc(100dvh - 28px);margin:auto;padding:0;border:0;background:transparent;color:#212521;overflow:visible}
.restart-popup::backdrop{background:radial-gradient(70% 60% at 50% 40%,#2a2620cc,#111214e6);backdrop-filter:blur(4px)}
.restart-karte{position:relative;max-height:calc(100dvh - 28px);overflow:auto;padding:30px clamp(22px,6vw,44px) 30px;border-radius:28px;text-align:center;
 background:radial-gradient(120% 70% at 50% 0,#fff8e8 0,#fbfaf7 58%) padding-box,linear-gradient(140deg,#f3e2b9,#b59b68 30%,#fff1cf 52%,#9c7f48 74%,#e9d4a3) border-box;
 border:2px solid transparent;box-shadow:0 40px 110px -30px #000d,0 0 0 1px #ffffff40 inset}
/* Feine Lichtpunkte am Rand – das Festliche, ohne laut zu werden. */
.restart-karte::before{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
 background:radial-gradient(2px 2px at 12% 18%,#d9bd84,transparent),radial-gradient(1.5px 1.5px at 86% 14%,#c9a96b,transparent),radial-gradient(2px 2px at 92% 46%,#e3c98f,transparent),
  radial-gradient(1.5px 1.5px at 7% 58%,#c9a96b,transparent),radial-gradient(2px 2px at 18% 88%,#d9bd84,transparent),radial-gradient(1.5px 1.5px at 80% 90%,#c9a96b,transparent);opacity:.9}
.restart-x{position:absolute;top:12px;right:12px;width:40px;height:40px;border:1px solid #d9cba9;border-radius:50%;background:#fffdf8;color:#5d5136;font-size:22px;line-height:1;cursor:pointer}
.restart-x:focus-visible,.restart-aktionen :focus-visible{outline:3px solid #b59b68;outline-offset:3px}
.restart-logo{display:block;width:190px;max-width:62%;height:auto;margin:4px auto 10px}
.restart-datum{margin:6px 0 2px;display:flex;align-items:baseline;justify-content:center;gap:10px;flex-wrap:wrap}
.restart-tag{font-family:var(--font-editorial,'Cormorant Garamond',serif);font-style:italic;font-weight:500;font-size:clamp(64px,17vw,104px);line-height:.95;
 background:linear-gradient(100deg,#8a6c36,#c7a865 35%,#f4e2b4 50%,#c7a865 65%,#8a6c36) 0 0/220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent}
.restart-jahr{font-size:15px;letter-spacing:.32em;font-weight:600;color:#756039}
.restart-titel{margin:12px 0 8px;font-size:clamp(26px,6.4vw,34px);line-height:1.15;font-weight:600;color:#212521;overflow-wrap:break-word}
.restart-titel em{font-family:var(--font-editorial,'Cormorant Garamond',serif);font-weight:500;color:#756039}
.restart-text{margin:0 auto 18px;max-width:34ch;font-size:17px;line-height:1.6;color:#4b4f48}
.restart-zeiten{position:relative;display:grid;gap:4px;margin:0 0 16px;padding:16px 18px;border-radius:18px;color:#f4ecdd;
 background:linear-gradient(90deg,transparent,#d6b47666 20%,#ffecc4cc 50%,#d6b47666 80%,transparent) top/100% 1px no-repeat,radial-gradient(110% 130% at 0 0,#e0bc7e2e,transparent 55%),linear-gradient(145deg,#303338,#1c1d20);background-color:#212326}
.restart-zeiten span{font-size:14px;letter-spacing:.04em;color:#d8c9a8}
.restart-zeiten strong{font-size:clamp(26px,7vw,32px);font-weight:600;letter-spacing:.01em;font-variant-numeric:tabular-nums;color:#fff}
.restart-adresse{display:grid;gap:2px;margin:0 0 22px;font-style:normal;font-size:16px;line-height:1.5;color:#3d413a}
.restart-adresse span:first-child{font-weight:600}
.restart-aktionen{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.restart-aktionen .button{flex:1 1 180px;justify-content:center;white-space:normal;text-align:center}
@media(prefers-reduced-motion:no-preference){
 .restart-popup[open] .restart-karte{animation:restart-auf .5s cubic-bezier(.2,.7,.2,1) both}
 .restart-popup[open]::backdrop{animation:restart-dunkel .4s ease both}
 .restart-popup[open] .restart-tag{animation:restart-glanz 2.6s ease .35s both}
}
@keyframes restart-auf{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@keyframes restart-dunkel{from{opacity:0}to{opacity:1}}
@keyframes restart-glanz{from{background-position:100% 0}to{background-position:0 0}}
@media(max-width:420px){.restart-karte{padding:26px 18px 22px;border-radius:24px}.restart-text{font-size:16px}}
/* Niedrige Fenster (Laptop, Handy quer): enger setzen, damit alles ohne Scrollen sichtbar bleibt. */
@media(max-height:760px){
 .restart-karte{padding-top:22px;padding-bottom:20px}
 .restart-logo{width:150px;margin:0 auto 4px}
 .restart-tag{font-size:clamp(50px,11vh,84px)}
 .restart-titel{margin:8px 0 6px}
 .restart-text{margin-bottom:12px}
 .restart-zeiten{padding:12px 16px;margin-bottom:12px}
 .restart-adresse{margin-bottom:14px}
}
