/* 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; }
}

/* home.css */
/* Startseite: drei Kapitel, klare Hierarchie und gezielte Vertiefung. */
.home-page { --section-space: clamp(52px, 6vw, 80px); --title-lg: clamp(32px, 3.6vw, 48px); }
.home-page .section { max-width: 1240px; }
.home-page .section-heading { gap: 32px; margin-bottom: 30px; }
.home-page .section-heading > p { max-width: 400px; }
.home-page .eyebrow { margin-bottom: 16px; letter-spacing: .11em; }
.home-page .brand-hero { min-height: 660px; }
.home-page .brand-hero-content { padding: 24px 0 68px; }
.home-page .brand-hero .eyebrow { margin-bottom: 28px; }
.home-page .brand-hero-bottom { font-size: 1rem; text-transform: none; letter-spacing: .03em; }
.home-page .main-nav a[aria-current="location"] { color: var(--gold-dark); }
.home-page .main-nav a[aria-current="location"]::after { transform: scaleX(1); }
.home-page .chapter-number { display: inline-grid; place-items: center; flex-shrink: 0; width: 30px; height: 30px; border: 1px solid #d8c6a4; border-radius: 50%; color: var(--gold-dark); font-size: 1rem; letter-spacing: 0; }

/* Ein kurzer Überblick zeigt den Weg, ohne eine zweite Navigation zu stapeln. */
.home-page .intro { grid-template-columns: .9fr 1.1fr; gap: 32px 9%; padding-top: 56px; padding-bottom: 56px; }
.home-page .intro-side h2 { font-size: clamp(36px, 4vw, 54px); }
.home-page .intro-side .eyebrow { padding: 0; }
.home-page .intro-copy .intro-lead { margin: 0 0 14px; font-size: 20px; }
.home-page .intro-copy > p:last-child { font-size: 1rem; line-height: 1.8; }
.journey-map { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin-top: 10px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.journey-map a { display: flex; align-items: center; gap: 16px; min-width: 0; min-height: 100px; padding: 20px 22px; transition: background 180ms; }
.journey-map a:first-child { padding-left: 0; }
.journey-map a + a { border-left: 1px solid var(--line); }
.journey-map a > span:last-child { margin-left: auto; color: var(--gold-dark); }
.journey-map .journey-number { align-self: flex-start; padding-top: 3px; font-size: 1rem; color: var(--gold-dark); }
.journey-map strong, .journey-map small { display: block; }
.journey-map strong { font-size: 1rem; font-weight: 700; }
.journey-map small { font-size: 1rem; color: var(--muted); margin-top: 4px; line-height: 1.6; }
.journey-map a:hover { background: #f0eee7; }

/* Kapitel 1: überschaubare Areas, danach optionale Einblicke. */
.home-page .areas { padding-bottom: 44px; }
.home-page .area-grid { gap: 20px; }
.home-page .area-card { padding: 0; overflow: hidden; border-radius: 20px; box-shadow: none; }
.home-page .area-image { aspect-ratio: 1.6; border-radius: 0; }
.home-page .area-copy { padding: 22px; }
.home-page .area-copy h3 { font-size: 23px; }
.home-page .area-copy p { font-size: 1rem; line-height: 1.7; }
.home-page .area-copy .area-lead { margin-top: 12px; }
.home-page .area-number { display: none; }
.home-page .area-tag { font-size: 1rem; padding: 5px 10px; }
.home-page .strength-showcase { grid-template-columns: minmax(0, 5fr) minmax(120px, 1fr); margin-top: 24px; gap: 20px; }
.home-page .strength-feature { display: grid; grid-template-columns: 1.1fr 1fr; border-radius: 20px; box-shadow: none; }
.home-page .strength-photo { min-width: 0; }
.home-page .strength-photo img { height: 100%; aspect-ratio: auto; min-height: 245px; }
.home-page .strength-copy { display: flex; flex-direction: column; justify-content: center; padding: 26px; }
.home-page .strength-copy .eyebrow { font-size: 1rem; margin-bottom: 10px; }
.home-page .strength-copy h3 { font-size: 27px; }
.home-page .strength-copy > p:last-child { font-size: 1rem; line-height: 1.75; margin-top: 16px; }
.home-page .locker-feature { border-radius: 20px; height: auto; }
.home-page .locker-feature img { object-position: center 30%; }
.home-page .locker-feature figcaption { font-size: 1rem; bottom: 12px; left: 10px; right: 10px; padding: 6px; }
.home-page .more-areas { margin-top: 20px; border-radius: 14px; }
.home-page .more-areas summary { padding: 16px 0; }
.home-page .daily-section { width: calc(100% - 2 * var(--gutter)); max-width: 1110px; grid-template-columns: .85fr 1.15fr; padding: 30px; gap: 28px 40px; margin: 0 auto; border-radius: 24px; }
.home-page .daily-photo { height: 280px; min-height: 0; border-radius: 16px; }
.home-page .daily-copy h2 { font-size: 34px; margin-bottom: 16px; }
.home-page .daily-copy h2 br { display: none; }
.home-page .daily-copy > p:not(.eyebrow) { font-size: 1rem; line-height: 1.75; max-width: none; margin-bottom: 0; }
.home-page .editorial-note { margin-top: 18px; padding-top: 14px; font-size: 1rem; }
.home-page .editorial-note > span { display: none; }
.home-page .editorial-note br { display: none; }
.home-page .special-shakes { margin-top: 0; padding-top: 0; border-top: 1px solid #d7d2c5; }
.home-page .special-shakes summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0 0; }
.home-page .special-shakes summary .eyebrow { font-size: 1rem; margin-bottom: 4px; }
.home-page .special-shakes summary strong { display: block; font-size: 21px; letter-spacing: -.02em; font-weight: 600; }
.disclosure-copy { display: block; font-size: 1rem; color: var(--muted); margin-top: 5px; }
.disclosure-plus { display: grid; place-items: center; flex-shrink: 0; width: 38px; height: 38px; border: 1px solid #b4ac99; border-radius: 50%; font-size: 22px; color: var(--gold-dark); }
.special-shakes[open] .disclosure-plus { transform: rotate(45deg); }
.shakes-content { padding-top: 26px; }
.home-page .shake-gallery { max-width: 850px; margin: auto; }
.home-page .shake-card figcaption { padding: 16px; }
.home-page .shake-card h4 { font-size: 17px; }
.home-page .course-feature { padding-top: 44px; padding-bottom: 36px; }
.home-page .course-feature .section-heading h2 { font-size: 34px; }
.home-page .course-feature .section-heading h2 br { display: none; }
.home-page .course-tile { min-height: 200px; padding: 26px; border-radius: 20px; box-shadow: none; }
.home-page .course-tile h3 { font-size: 48px; margin: 18px 0 8px; }
.home-page .course-tile .eyebrow { font-size: 1rem; }
.home-page .course-tile p { font-size: 1rem; }
.home-page .round-arrow { width: 36px; height: 36px; right: 22px; bottom: 22px; }
.home-page .course-included { margin-top: 18px; font-size: 1rem; }
.chapter-next { display: flex; align-items: center; justify-content: space-between; gap: 28px; max-width: 1110px; width: calc(100% - 2 * var(--gutter)); margin: 0 auto 64px; padding-top: 24px; border-top: 1px solid var(--line); }
.chapter-next p { margin: 0; }
.chapter-next strong, .chapter-next p span { display: block; }
.chapter-next strong { color: var(--ink); font-size: 17px; }
.chapter-next p span { font-size: 1rem; margin-top: 4px; }
.chapter-next .button { flex-shrink: 0; }

/* Kapitel 2: ein Angebot, zwei gut vergleichbare Entscheidungen. */
.home-page .pricing-section { max-width: 1240px; padding: 56px 44px; border-radius: 28px; background: #f1f1eb; }
.home-page .center-heading { text-align: left; margin-bottom: 28px; }
.home-page .center-heading .eyebrow { justify-content: flex-start; }
.home-page .center-heading h2 br { display: none; }
.home-page .center-heading > p:last-child { margin-top: 16px; font-size: 1rem; }
.home-page .opening-offer { grid-template-columns: 1fr 235px; max-width: none; gap: 30px; margin-bottom: 26px; padding: 24px 28px; border-radius: 16px; background: #f6eedb; }
.home-page .opening-offer-copy .eyebrow { font-size: 1rem; margin-bottom: 6px; }
.home-page .opening-offer h3 { font-size: 23px; margin-bottom: 8px; line-height: 1.25; letter-spacing: -.025em; }
.home-page .opening-offer-copy > p:not(.eyebrow) { font-size: 1rem; margin-bottom: 0; max-width: 620px; }
.home-page .opening-offer-value { text-align: left; padding: 0 0 0 26px; }
.home-page .opening-offer-value strong { font-size: 28px; font-weight: 600; margin: 0 0 5px; letter-spacing: -.04em; }
.home-page .opening-offer-value > span { font-size: 1rem; }
.home-page .opening-offer-value > p { font-size: 1rem; line-height: 1.6; margin: 8px 0 0; }
.home-page .price-grid { gap: 24px; }
.home-page .price-card { border-radius: 20px; box-shadow: none; }
.home-page .plan-visual { min-height: 210px; padding: 26px; }
.home-page .plan-visual .price-top { margin-bottom: 18px; }
.home-page .plan-visual h3 { font-size: 36px; }
.home-page .plan-visual p { font-size: 1rem; margin-top: 8px; }
.home-page .plan-details { padding: 0 26px 26px; }
.home-page .price { margin: 22px 0 16px; }
.home-page .price > strong { font-size: 62px; }
.home-page .price > span { font-size: 22px; }
.home-page .price small { max-width: none; font-size: 1rem; }
.home-page .reduced-price { border: 0; padding: 0; background: transparent; gap: 2px; }
.home-page .reduced-price strong { font-size: 1rem; }
.home-page .reduced-price span { font-size: 1rem; }
.home-page .feature-list { margin: 20px 0 0; padding: 12px 0; }
.home-page .feature-list li { font-size: 1rem; margin: 9px 0; }
.home-page .plan-opening-offer { background: #f7f4ec; border: 0; border-radius: 10px; padding: 13px 16px; margin: 12px 0 18px; gap: 3px; }
.home-page .plan-opening-offer > strong { font-size: 1rem; }
.home-page .plan-opening-offer > span, .home-page .plan-opening-offer small { font-size: 1rem; }
.home-page .price-card .button { min-height: 50px; }
.home-page .pricing-note { max-width: none; margin-top: 22px; text-align: left; font-size: 1rem; }
.pricing-help { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; border-top: 1px solid var(--line); margin-top: 22px; padding-top: 18px; font-size: 1rem; }
.pricing-help > span { color: var(--muted); }
.pricing-help a { font-weight: 600; text-decoration: underline; text-underline-offset: 4px; padding: 8px 0; }
.pricing-help a:last-child { margin-left: auto; color: var(--gold-dark); font-size: 1rem; }
.home-page .faq-section { padding-top: 56px; padding-bottom: 56px; gap: 7%; }
.home-page .faq-section h2 { font-size: 36px; }
.home-page .faq-section > div > p:last-child { font-size: 1rem; margin-top: 18px; }
.home-page .accordion { gap: 8px; }
.home-page .accordion details { border-radius: 12px; }
.home-page .accordion summary { padding: 16px 20px; font-size: 1rem; }

/* Kapitel 3: den nächsten Schritt und den E-Mail-Ablauf erklären. */
.home-page .contact-section { max-width: 1240px; padding: 48px; gap: 7%; align-items: start; border-radius: 28px; background: #eee9dd; }
.home-page .contact-section h2 { font-size: clamp(40px, 4.4vw, 60px); margin-bottom: 20px; }
.home-page .contact-section > div > p { font-size: 16px; }
.home-page .contact-section .eyebrow { font-size: 1rem; }
.home-page .contact-wordmark { display: none; }
.contact-steps { list-style: none; counter-reset: contact-step; padding: 0; margin: 26px 0 0; }
.contact-steps li { counter-increment: contact-step; position: relative; padding: 0 0 22px 38px; }
.contact-steps li::before { content: counter(contact-step); position: absolute; left: 0; top: 0; width: 24px; height: 24px; border: 1px solid #bbad90; border-radius: 50%; text-align: center; font-size: 1rem; line-height: 22px; color: var(--gold-dark); }
.contact-steps strong, .contact-steps span { display: block; }
.contact-steps strong { font-size: 1rem; font-weight: 700; }
.contact-steps span { font-size: 1rem; color: var(--muted); margin-top: 4px; }
.home-page .contact-form { border-radius: 20px; padding: 28px; }
.home-page .contact-form h3 { font-size: 25px; }
.home-page .contact-form > p { font-size: 1rem; margin-bottom: 22px; }

@media (max-width: 900px) {
  .home-page .intro { gap: 26px 6%; }
  .journey-map a { padding: 18px 14px; gap: 10px; }
  .journey-map strong { font-size: 1rem; }
  .journey-map small { font-size: 1rem; }
  .home-page .strength-showcase { grid-template-columns: minmax(0, 5fr) 130px; }
  .home-page .strength-feature { grid-template-columns: 1fr; }
  .home-page .strength-photo img { min-height: 0; height: 240px; }
  .home-page .strength-copy { padding: 22px; }
  .home-page .strength-copy h3 br { display: none; }
  .home-page .daily-section { gap: 24px; padding: 24px; }
  .home-page .daily-photo { height: 300px; }
  .home-page .daily-copy h2 { font-size: 29px; }
  .home-page .opening-offer { grid-template-columns: 1fr 180px; gap: 20px; padding: 22px; }
  .home-page .opening-offer-value { padding-left: 20px; }
  .home-page .pricing-section { padding: 40px 28px; }
  .home-page .plan-visual, .home-page .plan-details { padding-left: 22px; padding-right: 22px; }
  .home-page .contact-section { padding: 32px; }
}
@media (max-width: 650px) {
  .home-page .brand-hero { min-height: 630px; }
  .home-page .brand-hero-bottom { align-items: start; font-size: 1rem; }
  .home-page .brand-hero-bottom > span { max-width: 85px; }
  .home-page .brand-hero-bottom a { max-width: 170px; text-align: right; }
  .home-page .intro { display: block; padding: 36px var(--gutter) 40px; }
  .home-page .intro-side h2 { font-size: 38px; }
  .home-page .intro-side h2 br { display: none; }
  .home-page .intro-copy { margin-top: 22px; }
  .home-page .intro-copy .intro-lead { font-size: 17px; }
  .home-page .intro-copy .intro-lead br { display: none; }
  .home-page .intro-copy > p:last-child { font-size: 1rem; }
  .journey-map { display: block; margin-top: 28px; }
  .journey-map a, .journey-map a:first-child { min-height: 76px; padding: 15px 0; gap: 16px; }
  .journey-map a + a { border-left: 0; border-top: 1px solid var(--line); }
  .journey-map strong { font-size: 1rem; }
  .journey-map small { font-size: 1rem; margin-top: 2px; }
  .home-page .section-heading { align-items: start; flex-direction: column; gap: 14px; margin-bottom: 24px; }
  .home-page .section-heading h2 { font-size: 34px; }
  .home-page .section-heading h2 br { display: none; }
  .home-page .section-heading > p { font-size: 1rem; }
  .home-page .area-grid { grid-template-columns: 1fr; gap: 14px; }
  .home-page .area-card { display: grid; grid-template-columns: 30% minmax(0, 1fr); border-radius: 16px; }
  .home-page .area-image { aspect-ratio: auto; height: 100%; }
  .home-page .area-tag { display: none; }
  .home-page .area-copy { padding: 18px; }
  .home-page .area-copy h3 { font-size: 20px; }
  .home-page .area-copy .area-lead { font-size: 1rem; margin-top: 8px; }
  .home-page .area-copy p { font-size: 1rem; line-height: 1.7; margin-top: 6px; }
  .home-page .strength-showcase { grid-template-columns: minmax(0, 1fr) 80px; gap: 12px; margin-top: 18px; }
  .home-page .strength-photo img { height: 155px; }
  .home-page .strength-copy { padding: 18px; }
  .home-page .strength-copy .eyebrow { font-size: 1rem; letter-spacing: .06em; }
  .home-page .strength-copy h3 { font-size: 23px; }
  .home-page .strength-copy > p:last-child { font-size: 1rem; margin-top: 12px; }
  .home-page .locker-feature { border-radius: 16px; }
  .home-page .locker-feature figcaption { font-size: 1rem; bottom: 10px; left: 5px; right: 5px; padding: 5px; }
  .home-page .more-areas { padding: 0 18px; }
  .home-page .more-areas summary { font-size: 1rem; }
  .home-page .areas { padding-bottom: 32px; }
  .home-page .daily-section { display: grid; grid-template-columns: minmax(0, 1fr); padding: 20px; gap: 22px; }
  .home-page .daily-photo { height: 190px; }
  .home-page .daily-copy h2 { font-size: 28px; }
  .home-page .daily-copy > p:not(.eyebrow) { font-size: 1rem; }
  .home-page .editorial-note { font-size: 1rem; }
  .home-page .special-shakes summary { gap: 12px; padding-top: 20px; }
  .home-page .special-shakes summary strong { font-size: 18px; }
  .disclosure-copy { font-size: 1rem; }
  .home-page .shake-gallery { grid-auto-columns: 94%; }
  .home-page .shake-card figcaption { padding: 14px; }
  .home-page .shake-card h4 { font-size: 16px; }
  .home-page .course-feature { padding-top: 32px; padding-bottom: 26px; }
  .home-page .course-feature .section-heading h2 { font-size: 28px; }
  .home-page .course-feature .text-link { font-size: 1rem; min-height: 40px; }
  .home-page .course-duo { grid-template-columns: 1fr; gap: 14px; }
  .home-page .course-tile { padding: 22px; min-height: 160px; border-radius: 16px; }
  .home-page .course-tile h3 { font-size: 40px; margin: 14px 0 6px; }
  .home-page .course-tile p { font-size: 1rem; max-width: calc(100% - 25px); }
  .home-page .course-tile .eyebrow { margin: 0; font-size: 1rem; }
  .chapter-next { display: block; margin-bottom: 40px; }
  .chapter-next .button { margin-top: 18px; width: 100%; font-size: 1rem; min-height: 50px; }
  .home-page .pricing-section { width: calc(100% - 24px); padding: 30px 18px; border-radius: 24px; }
  .home-page .center-heading h2 { font-size: 32px; }
  .home-page .center-heading > p:last-child { font-size: 1rem; }
  .home-page .opening-offer { display: block; padding: 18px; margin-bottom: 20px; }
  .home-page .opening-offer h3 { font-size: 21px; }
  .home-page .opening-offer-copy > p:not(.eyebrow) { font-size: 1rem; }
  .home-page .opening-offer-value { border: 0; border-top: 1px solid #d7c7a5; margin-top: 15px; padding: 14px 0 0; }
  .home-page .opening-offer-value strong { display: inline; font-size: 22px; margin-right: 8px; }
  .home-page .opening-offer-value > span { display: inline; font-size: 1rem; }
  .home-page .opening-offer-value > p { font-size: 1rem; margin-top: 4px; }
  .home-page .price-grid { grid-template-columns: 1fr; gap: 20px; }
  .home-page .plan-visual { min-height: 180px; padding: 22px; }
  .home-page .plan-visual h3 { font-size: 32px; }
  .home-page .plan-visual p { font-size: 1rem; }
  .home-page .plan-details { padding: 0 22px 22px; }
  .home-page .price > strong { font-size: 58px; }
  .home-page .price small { max-width: 140px; }
  .home-page .pricing-note { font-size: 1rem; }
  .pricing-help { display: block; font-size: 1rem; }
  .pricing-help > span, .pricing-help a { display: block; }
  .pricing-help a:last-child { margin: 0; font-size: 1rem; }
  .home-page .faq-section { padding-top: 40px; padding-bottom: 40px; gap: 24px; }
  .home-page .faq-section h2 { font-size: 30px; }
  .home-page .faq-section h2 br { display: none; }
  .home-page .accordion summary { font-size: 1rem; padding: 15px 16px; }
  .home-page .contact-section { width: calc(100% - 24px); padding: 30px 20px; gap: 24px; border-radius: 24px; }
  .home-page .contact-section h2 { font-size: 40px; }
  .home-page .contact-section h2 br { display: none; }
  .home-page .contact-section > div > p { font-size: 1rem; }
  .home-page .contact-form { padding: 22px 18px; }
  .home-page .contact-form h3 { font-size: 23px; }
  .home-page .contact-email { font-size: 1rem; }
  .contact-steps li { padding-bottom: 16px; }
}

/* Bildschirmbreite nutzen; Zeilenlängen bleiben für Lesetexte begrenzt. */
.home-page { --gutter: clamp(22px, 4vw, 88px); }
.home-page .site-header { width: calc(100% - 40px); max-width: none; }
.home-page .section { width: 100%; max-width: none; padding-left: var(--gutter); padding-right: var(--gutter); }
.home-page .daily-section, .home-page .chapter-next { width: calc(100% - 2 * var(--gutter)); max-width: none; }
.home-page .daily-section { padding: clamp(24px, 3vw, 48px); }
.home-page .daily-photo { height: clamp(260px, 24vw, 420px); }
.home-page .daily-copy { max-width: 650px; }
.home-page .pricing-section, .home-page .contact-section { width: 100%; border-radius: 0; border-left: 0; border-right: 0; }
.home-page .price-grid { max-width: none; }
.home-page .intro-copy > p:last-child { max-width: 700px; }
.home-page .pricing-note { max-width: 1050px; margin-left: 0; }
.home-page .site-footer { max-width: none; }
.home-page .plan-visual { min-height: clamp(210px, 18vw, 310px); }

/* Reiner Markenauftakt. Staffelung, Tiefenbewegung und Maskierung wie Camp Dörfl. */
.home-page .brand-hero { display: grid; place-items: center; width: 100%; max-width: none; min-height: min(820px, calc(100svh - 110px)); margin: 0; padding: 64px var(--gutter) 100px; color: var(--ink); background: var(--paper); border-radius: 0; border-bottom: 1px solid var(--line); overflow: hidden; }
.home-page .brand-hero::before { display: none; }
.home-page .brand-hero-content { width: 100%; max-width: none; padding: 0; text-align: center; animation: none; perspective: 1200px; }
.hero-wordmark { display: flex; justify-content: center; margin-bottom: 38px; }
.hero-wordmark .logo-crop { width: clamp(240px, 24vw, 440px); }
.home-page .brand-hero h1 { font-size: clamp(60px, 6.5vw, 126px); line-height: 1.05; letter-spacing: -.06em; font-weight: 500; perspective: 1200px; }
.hero-line { display: block; transform-origin: left bottom; }
.home-page .hero-gold { color: var(--gold-dark); }
.home-page .brand-hero-lead { margin: 28px 0 26px; color: var(--muted); font-size: clamp(15px, 1.3vw, 20px); }
.home-page .hero-actions { justify-content: center; }
.home-page .brand-hero .text-link { font-size: 1rem; }
.home-page .brand-hero-bottom { color: var(--muted); bottom: 24px; left: var(--gutter); right: var(--gutter); padding-top: 18px; border-color: var(--line); font-size: 1rem; }
.home-page .brand-hero-bottom a { color: var(--gold-dark); }
.home-page .brand-hero-bottom a span { color: var(--gold-dark); }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@keyframes logo-arrive { from { opacity: 0; transform: translate3d(0, 30px, 0); } to { opacity: 1; transform: none; } }
@keyframes title-depth-in { from { opacity: 0; clip-path: inset(-15% -50% 100% -50%); transform: translate3d(70px, 48px, -110px) rotateX(-24deg) rotateZ(-3deg); } to { opacity: 1; clip-path: inset(-15% -50% -20% -50%); transform: translate3d(0, 0, 0) rotateX(0) rotateZ(0); } }
@media (max-width: 650px) {
  .home-page .site-header { width: calc(100% - 24px); }
  .home-page .brand-hero { min-height: 600px; padding: 40px var(--gutter) 100px; }
  .hero-wordmark { margin-bottom: 32px; }
  .hero-wordmark .logo-crop { width: clamp(220px, 66vw, 320px); }
  .home-page .brand-hero h1 { font-size: clamp(40px, 8.9vw, 58px); }
  .home-page .brand-hero-lead { font-size: 1rem; }
  .home-page .brand-hero .hero-actions { display: flex; flex-direction: column; max-width: none; gap: 12px; }
  .home-page .brand-hero .button { min-width: 225px; }
  .home-page .brand-hero-bottom { font-size: 1rem; gap: 24px; }
  .home-page .brand-hero-bottom > span { max-width: 116px; }
  .home-page .daily-section { padding: 20px; }
  .home-page .daily-photo { height: 190px; }
  .home-page .pricing-section, .home-page .contact-section { padding-top: 36px; padding-bottom: 36px; }
  .home-page .plan-visual { min-height: 180px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-wordmark, .hero-line, .home-page .brand-hero-lead, .home-page .brand-hero .hero-actions, .home-page .brand-hero-bottom { animation: none; }
}
.hero-location { display: block; margin-bottom: 20px; font-size: clamp(10px, .9vw, 13px); font-weight: 700; line-height: 1.5; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-dark); }

@media (max-width: 650px) {
  .home-page .locker-feature img { object-fit: contain; object-position: center 25%; }
  .hero-location { margin-bottom: 18px; }
  .hero-wordmark { margin-bottom: 26px; }
}
.contact-location { display: flex; align-items: end; gap: 28px; flex-wrap: wrap; margin: 24px 0 12px; padding-top: 20px; border-top: 1px solid #d0c5af; }
.contact-location address, .footer-address { font-style: normal; font-size: 1rem; line-height: 1.75; }
.contact-location address > *, .footer-address > * { display: block; }
.contact-location address strong, .footer-address strong { font-weight: 600; }
.contact-location .text-link { min-height: 40px; padding-bottom: 6px; font-size: 1rem; }
.footer-address { color: var(--muted); font-size: 1rem; }
@media (max-width: 650px) {
  .contact-location { gap: 12px; }
  .contact-location address { font-size: 1rem; }
  .footer-address { font-size: 1rem; }
}

/* Sichtbare Textinszenierung: Scroll-Szene am Desktop, Einblendung im Sichtfeld mobil. */
.home-page .brand-hero { display: block; min-height: 0; height: auto; padding: 0; overflow: visible; }
.hero-stage { position: relative; display: grid; place-items: center; min-height: min(820px, calc(100svh - 110px)); padding: 64px var(--gutter) 100px; overflow: hidden; }
.hero-scroll-cue { display: none; }
.home-page .hero-stage :is(.hero-wordmark, .hero-location, .hero-line, .brand-hero-lead, .hero-actions, .brand-hero-bottom) { animation: none; }
@media (min-width: 901px) and (prefers-reduced-motion: no-preference) {
  .home-page .brand-hero.has-scroll-scene { --hero-scroll-distance: min(90vh, 900px); height: calc(100svh - var(--hero-stage-top, 116px) + var(--hero-scroll-distance)); }
  .has-scroll-scene .hero-stage { position: sticky; top: var(--hero-stage-top, 116px); height: calc(100svh - var(--hero-stage-top, 116px)); min-height: 0; padding-top: 28px; padding-bottom: 92px; }
  .home-page .has-scroll-scene .hero-line { --scene-step: var(--hero-line-1, 1); opacity: var(--scene-step); clip-path: inset(-15% -50% calc((1 - var(--scene-step)) * 120% - 20%) -50%); transform: perspective(1000px) translate3d(calc((1 - var(--scene-step)) * 70px), calc((1 - var(--scene-step)) * 48px), calc((1 - var(--scene-step)) * -110px)) rotateX(calc((1 - var(--scene-step)) * -24deg)) rotateZ(calc((1 - var(--scene-step)) * -3deg)); transition: none; will-change: opacity, transform; }
  .home-page .has-scroll-scene .hero-line + .hero-line { --scene-step: var(--hero-line-2, 1); }
  .home-page .has-scroll-scene .brand-hero-lead { opacity: var(--hero-support, 1); transform: translateY(calc((1 - var(--hero-support, 1)) * 30px)); }
  .home-page .has-scroll-scene .hero-actions { opacity: var(--hero-actions, 1); transform: translateY(calc((1 - var(--hero-actions, 1)) * 30px)); }
  .home-page .has-scroll-scene:not(.is-scene-open) .hero-actions { pointer-events: none; }
  .home-page .has-scroll-scene .hero-wordmark { transform: translateY(calc(var(--hero-progress, 0) * -8px)) scale(calc(1 - var(--hero-progress, 0) * .035)); }
  .home-page .has-scroll-scene .hero-stage:focus-within :is(.hero-line, .brand-hero-lead, .hero-actions) { opacity: 1; transform: none; clip-path: none; pointer-events: auto; }
  .has-scroll-scene .hero-scroll-cue { position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 14px; min-height: 44px; padding: 8px 14px; color: var(--gold-dark); font-size: 1rem; }
  .hero-scroll-cue > span:last-child { font-size: 20px; }
}
@media (prefers-reduced-motion: no-preference) {
  .home-page .brand-hero:not(.has-scroll-scene) .hero-stage.is-reveal-pending :is(.hero-location, .hero-line, .brand-hero-lead, .hero-actions) { opacity: 0; }
  .home-page .brand-hero:not(.has-scroll-scene) .hero-stage.is-entering .hero-wordmark { animation: logo-arrive .95s var(--ease) 80ms both; }
  .home-page .brand-hero:not(.has-scroll-scene) .hero-stage.is-entering .hero-location { animation: logo-arrive .95s var(--ease) 180ms both; }
  .home-page .brand-hero:not(.has-scroll-scene) .hero-stage.is-entering .hero-line { animation: title-depth-in .95s var(--ease) 320ms both; }
  .home-page .brand-hero:not(.has-scroll-scene) .hero-stage.is-entering .hero-line + .hero-line { animation-delay: 760ms; }
  .home-page .brand-hero:not(.has-scroll-scene) .hero-stage.is-entering .brand-hero-lead { animation: logo-arrive .95s var(--ease) 1120ms both; }
  .home-page .brand-hero:not(.has-scroll-scene) .hero-stage.is-entering .hero-actions { animation: logo-arrive .95s var(--ease) 1340ms both; }
  .home-page .brand-hero .hero-stage:focus-within :is(.hero-line, .hero-location, .brand-hero-lead, .hero-actions) { opacity: 1; animation: none; }
}
@media (max-width: 650px) {
  .hero-stage { min-height: 600px; padding: 40px var(--gutter) 100px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-page .brand-hero .hero-stage :is(.hero-wordmark, .hero-location, .hero-line, .brand-hero-lead, .hero-actions, .brand-hero-bottom) { animation: none; transform: none; opacity: 1; clip-path: none; }
}
@media (min-width: 901px) and (max-height: 800px) {
  .hero-stage .hero-wordmark { margin-bottom: 24px; }
  .hero-stage .hero-location { margin-bottom: 12px; }
  .home-page .hero-stage h1 { font-size: clamp(56px, 5.5vw, 80px); }
  .home-page .hero-stage .brand-hero-lead { margin: 20px 0; }
}
.hero-wordmark { mix-blend-mode: multiply; }

/* Empfang, Eröffnungsangebot und Mitgliedschaften — Originalbilder nur bei den Areas. */
.opening-ribbon { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px 32px; padding: 14px var(--gutter); margin-top: 20px; border-block: 1px solid #d7c6a0; background: #efe3c8; color: #342e22; }
.opening-ribbon p { margin: 0; color: inherit; font-size: 1rem; }
.opening-ribbon strong { font-weight: 800; }
.opening-ribbon a { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; font-size: 1rem; font-weight: 700; text-decoration: underline; text-underline-offset: 5px; }
.home-page .intro { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: center; gap: 48px 7%; padding-block: clamp(48px, 6vw, 96px); }
.welcome-story { max-width: 760px; }
.home-page .welcome-story h2 { font-size: clamp(44px, 4.8vw, 76px); }
.home-page .welcome-story .intro-copy { margin-top: 30px; }
.home-page .welcome-story .intro-lead { font-size: clamp(22px, 2vw, 28px); color: var(--ink); line-height: 1.5; }
.welcome-image { position: relative; margin: 0; border-radius: 24px; overflow: hidden; background: #e5ddd1; }
.welcome-image img { width: 100%; height: clamp(420px, 43vw, 620px); object-fit: cover; object-position: 50% 57%; }
.welcome-image figcaption { position: absolute; inset: auto 20px 20px; padding: 12px 16px; border: 1px solid #fff8; border-radius: 12px; background: #fffcf4f5; color: var(--ink); font-size: 1rem; }
.home-page .pricing-section { background: #f4f3ee; padding-block: clamp(56px, 6vw, 100px); }
.home-page .center-heading { margin-bottom: 36px; }
.home-page .opening-offer { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(240px, .8fr); align-items: center; gap: 48px; padding: clamp(28px, 4vw, 64px); margin-bottom: 36px; border: 1px solid #baa16d; border-radius: 24px; background: linear-gradient(120deg, #f5ebd5 0%, #e8d5af 52%, #d0b581 100%); box-shadow: inset 0 1px 0 #fff9, 0 16px 42px #705d3010; color: #292a24; }
.home-page .opening-offer .eyebrow { color: #504022; margin-bottom: 20px; letter-spacing: .09em; }
.home-page .opening-offer h3 { font-size: clamp(38px, 4.4vw, 68px); line-height: 1.1; font-weight: 600; letter-spacing: -.055em; margin-bottom: 24px; }
.opening-offer h3 > span { color: #5d4928; }
.home-page .opening-offer-copy > p:not(.eyebrow) { font-size: 1.125rem; max-width: 650px; line-height: 1.7; color: #403c30; margin-bottom: 24px; }
.offer-button { background: #282b25; color: #fff; border-color: #282b25; }
.offer-button:hover { background: #424539; color: #fff; }
.home-page .opening-offer-value { padding: 32px 0 32px 44px; border: 0; border-left: 1px solid #8b774c; text-align: left; color: #292a24; }
.home-page .opening-offer-value > span { display: block; color: #423a28; font-size: 1.125rem; }
.home-page .opening-offer-value > strong { display: block; font-size: 1.5rem; font-weight: 500; line-height: 1.1; margin: 18px 0 12px; letter-spacing: -.035em; }
.home-page .opening-offer-value b { display: block; font-size: clamp(68px, 7vw, 110px); font-weight: 600; letter-spacing: -.065em; line-height: 1.05; }
.home-page .opening-offer-value > p { color: #4c402b; font-size: 1rem; line-height: 1.7; margin-top: 24px; }
.home-page .price-grid { gap: 28px; }
.home-page .price-card { border: 1px solid #aeb5bf; border-radius: 24px; box-shadow: 0 12px 38px #252a330a; }
.home-page .price-card.plan-basic { background: linear-gradient(135deg, #fff 0%, #f2f4f6 60%, #e8ecf0 100%); }
.home-page .price-card.plan-all-in { border-color: #bda571; background: linear-gradient(135deg, #fcf7e9 0%, #eddfbf 65%, #dbc495 100%); }
.home-page .plan-visual { min-height: 300px; padding: clamp(26px, 3vw, 44px); border-bottom: 1px solid #bfc5cd; color: #212521; background: linear-gradient(125deg, #fafbfc 0%, #d9dee5 42%, #f5f7f9 72%, #d8dee5 100%); }
.home-page .plan-all-in .plan-visual { border-color: #b69b63; background: linear-gradient(125deg, #f6ead0 0%, #d3b982 44%, #eee0bb 73%, #c8ab71 100%); }
.home-page .plan-visual::after { display: none; }
.home-page .plan-logo { width: clamp(170px, 16vw, 240px); margin-bottom: 30px; }
.home-page .plan-visual .price-top { margin-bottom: 16px; gap: 16px; }
.home-page .plan-visual .eyebrow { color: #424950; letter-spacing: .07em; }
.home-page .plan-all-in .plan-visual .eyebrow { color: #504022; }
.home-page .plan-visual .plan-index { color: #3e454d; background: #ffffff65; border-color: #87919f; width: 40px; height: 40px; }
.home-page .plan-all-in .plan-index { color: #504022; border-color: #8b754b; }
.home-page .plan-visual h3 { font-size: clamp(36px, 3.3vw, 52px); }
.home-page .plan-visual p { color: #444b51; font-size: 1.125rem; margin-top: 12px; line-height: 1.6; }
.home-page .plan-all-in .plan-visual p { color: #453a26; }
.home-page .plan-details { padding: 8px clamp(26px, 3vw, 44px) 36px; }
.home-page .price { margin-block: 26px 20px; gap: 18px; }
.home-page .price > strong { font-size: clamp(68px, 6.4vw, 92px); font-weight: 600; }
.home-page .price > span { font-size: 30px; }
.home-page .price small { display: block; line-height: 1.55; font-size: 1rem; max-width: 210px; margin-top: 4px; color: #444d44; }
.home-page .reduced-price { padding-bottom: 22px; border-bottom: 1px solid #bac0c6; }
.home-page .reduced-price strong { font-size: 1.25rem; color: #252b25; }
.home-page .reduced-price span { margin-top: 5px; color: #444d44; }
.home-page .plan-all-in .reduced-price { border-color: #bda879; }
.home-page .feature-list { margin-top: 16px; padding-block: 8px 20px; }
.home-page .feature-list li { font-size: 1.125rem; color: #2b312d; line-height: 1.6; margin: 14px 0; }
.home-page .feature-list li::before { color: #554522; }
.home-page .plan-opening-offer { padding: 20px; gap: 8px; background: #ffffffa6; border: 1px solid #bfc5ca; margin-bottom: 24px; }
.home-page .plan-all-in .plan-opening-offer { background: #fff8e9b3; border-color: #bda879; }
.home-page .plan-opening-offer > strong { font-size: 1.25rem; color: #262b26; }
.home-page .plan-opening-offer small { color: #54452b; }
.home-page .price-card .button { min-height: 58px; }
.home-page .plan-basic .button { border-color: #6c7784; background: #edf0f3; }
.home-page .plan-basic .button:hover { background: #dde3e9; }
.home-page .plan-all-in .button { background: linear-gradient(115deg, #e4cf9d, #c6a86b); border-color: #967b44; }
@media (max-width: 900px) {
  .home-page .intro { gap: 32px; }
  .home-page .opening-offer { grid-template-columns: minmax(0, 1.5fr) minmax(190px, 1fr); gap: 26px; }
  .home-page .opening-offer-value { padding-left: 26px; }
  .home-page .plan-visual { min-height: 300px; }
}
@media (max-width: 700px) {
  .opening-ribbon { align-items: start; justify-content: start; padding: 16px var(--gutter); gap: 4px; margin-top: 16px; }
  .home-page .intro { grid-template-columns: 1fr; gap: 30px; }
  .welcome-image img { height: auto; max-height: 580px; aspect-ratio: 4 / 5; }
  .home-page .welcome-story h2 { font-size: clamp(38px, 10vw, 58px); }
  .home-page .opening-offer { grid-template-columns: 1fr; padding: 26px; gap: 28px; border-radius: 20px; }
  .home-page .opening-offer h3 { font-size: clamp(34px, 8.5vw, 48px); }
  .home-page .opening-offer-value { padding: 24px 0 0; border-left: 0; border-top: 1px solid #8b774c; margin: 0; }
  .home-page .opening-offer-value > strong { margin-top: 12px; }
  .home-page .opening-offer-value > strong > br { display: none; }
  .home-page .opening-offer-value b { display: inline; font-size: 68px; margin-left: 8px; }
  .home-page .opening-offer-value > p { margin-top: 16px; }
  .home-page .price-grid { grid-template-columns: 1fr; gap: 28px; }
  .home-page .plan-visual { min-height: 0; padding: 28px 24px; }
  .home-page .plan-logo { width: 190px; margin-bottom: 24px; }
  .home-page .plan-details { padding: 0 24px 26px; }
  .home-page .price { flex-wrap: wrap; gap: 12px; }
  .home-page .price small { max-width: 150px; }
  .home-page .opening-offer .button { width: 100%; padding-inline: 18px; gap: 12px; }
}
/* A defined backdrop keeps the supplied white logo canvas invisible during 3D motion. */
.home-page .brand-hero-content { background: var(--paper); }

/* 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; }
}

/* experience.css */
/* PUZZLE GYM — Rauminszenierung und interaktiver App-Einstieg. */
.area-cinema { position: relative; isolation: isolate; border: 1px solid #b9ac90; border-radius: 26px; background: #f9f7f0; box-shadow: 0 24px 70px #40301712, inset 0 1px 0 #fff; overflow: hidden; }
.area-cinema::before { content: ''; position: absolute; pointer-events: none; inset: 0; z-index: 2; border-radius: inherit; box-shadow: inset 0 1px 0 #fffdf2, inset 0 0 22px #d8b97c12; }
.area-viewport { display: flex; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: 26px 26px 0 0; }
.area-viewport::-webkit-scrollbar { display: none; }
.readable-site .area-viewport:focus-visible { outline-offset: -5px !important; }
.area-slide { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(310px, 1fr); flex: 0 0 100%; min-width: 0; min-height: clamp(480px, 42vw, 650px); scroll-snap-align: start; scroll-snap-stop: always; }
.area-slide-photo { position: relative; min-width: 0; overflow: hidden; background: #24221d; }
.area-slide-photo::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(140deg, #f9dba31f, transparent 36%, transparent 75%, #b78b4720); box-shadow: inset 0 0 40px #19160f14; }
.area-slide-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.area-light-beam { position: absolute; inset: -40% -25%; background: linear-gradient(108deg, transparent 37%, #fff4cc03 43%, #ffebae38 48%, #fff9dd70 50%, #eaca8d14 53%, transparent 62%); transform: translateX(-110%); pointer-events: none; mix-blend-mode: screen; }
.area-slide-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px, 3.1vw, 52px); background: radial-gradient(ellipse at 100% 0, #ede1c6 0%, transparent 60%), #fbfaf5; }
.area-slide-number { color: #675333; font-size: 1rem; letter-spacing: .1em; margin-bottom: 36px; }
.area-slide-copy .eyebrow { font-size: 1rem; margin-bottom: 14px; }
.area-slide-copy h3 { font-size: clamp(32px, 3.25vw, 52px); line-height: 1.12; letter-spacing: -.045em; margin-bottom: 22px; }
.area-slide-copy p { font-size: 1.125rem; line-height: 1.7; margin-bottom: 20px; }
.area-slide-copy .area-slide-lead { font-weight: 700; color: #363c32; margin-bottom: 12px; }
.area-slide-tag { align-self: flex-start; padding: 10px 14px; font-size: 1rem; line-height: 1.5; margin-top: 12px; background: #ece4d1; color: #52432a; border: 1px solid #c7b388; border-radius: 10px; }
.area-carousel-footer { display: flex; align-items: center; gap: 28px; padding: 20px 28px; border-top: 1px solid #c9baa0; background: #faf8f2; }
.area-carousel-position { display: flex; gap: 12px; align-items: baseline; color: #52574c; margin: 0; font-size: 1rem; }
.area-carousel-position strong { color: #282e25; font-size: 1.5rem; font-weight: 600; }
.area-play { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; padding: 10px 12px; background: transparent; border: 1px solid transparent; border-radius: 8px; font-size: 1rem; color: #524329; margin-left: auto; }
.area-play:hover { background: #ece5d5; }
.area-play > span:first-child { width: 20px; text-align: center; }
.area-arrows { display: flex; gap: 12px; }
.area-arrow { width: 54px; height: 54px; border-radius: 50%; border: 1px solid #968158; background: #f1e7d2; color: #3c3424; font-size: 26px !important; transition: background 200ms, transform 200ms; }
.area-arrow:hover { background: #dac499; transform: translateY(-2px); }
.area-pickers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: #d3c9b6; border-top: 1px solid #c9baa0; }
.area-picker { position: relative; display: flex; align-items: center; gap: 14px; min-width: 0; padding: 20px; min-height: 96px; text-align: left; border: 0; background: #fbfaf6; color: #41483b; font-size: 1rem; line-height: 1.5; }
.area-picker img { width: 60px; height: 50px; object-fit: cover; border-radius: 6px; flex-shrink: 0; opacity: .7; transition: opacity 250ms; }
.area-picker > span:not(.area-picker-number) { min-width: 0; }
.area-picker-number { margin-left: auto; color: #67512d; font-size: 1rem; }
.area-picker::after { content: ''; position: absolute; left: 20px; right: 20px; bottom: 0; height: 3px; background: #957344; transform: scaleX(0); transform-origin: left; transition: transform 300ms; }
.area-picker:hover, .area-picker[aria-current="true"] { background: #ede5d4; color: #2d332a; }
.area-picker[aria-current="true"]::after { transform: scaleX(1); }
.area-picker[aria-current="true"] img, .area-picker:hover img { opacity: 1; }
.area-picker[aria-current="true"] { font-weight: 700; }
.area-locker-note { display: flex; align-items: center; gap: 20px; margin-top: 28px; padding: 18px 22px; border: 1px solid #d8d2c5; border-radius: 16px; background: #f3f0e8; }
.area-locker-note img { width: 46px; height: 98px; object-fit: contain; border-radius: 4px; }
.area-locker-note p { margin: 0; color: #4d5447; font-size: 1.125rem; }
@media (prefers-reduced-motion: no-preference) {
  .area-slide.is-current .area-light-beam { animation: area-light-pass 1500ms cubic-bezier(.2,.6,.3,1) both; }
  .area-slide.is-current .area-slide-photo img { animation: area-photo-enter 1100ms cubic-bezier(.2,.6,.3,1) both; }
  .area-slide.is-current .area-slide-copy > * { animation: area-copy-enter 650ms ease both; }
  .area-slide.is-current .area-slide-copy h3 { animation-delay: 80ms; }
  .area-slide.is-current .area-slide-lead { animation-delay: 120ms; }
}
@keyframes area-light-pass { from { transform: translateX(-110%); opacity: 0; } 25% { opacity: .8; } to { transform: translateX(100%); opacity: 0; } }
@keyframes area-photo-enter { from { transform: scale(1.025); } to { transform: scale(1); } }
@keyframes area-copy-enter { from { opacity: .4; transform: translateY(12px); } to { opacity: 1; transform: none; } }

/* Das Puzzleteil ist ein echtes Bedienelement; der Rest der Fläche scrollt normal. */
.home-page .app-experience { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 44px 6%; padding-block: clamp(56px, 7vw, 112px); }
.app-experience-intro { max-width: 650px; }
.app-experience-intro h2 { font-size: clamp(42px, 5vw, 76px); margin-bottom: 26px; line-height: 1.08; }
.app-experience-intro > p { font-size: 1.125rem; line-height: 1.7; }
.app-experience-intro .eyebrow { font-size: 1rem; }
.app-experience-intro .app-invitation { margin-top: 28px; color: #333b2e; font-weight: 600; max-width: 500px; }
.app-skip-puzzle { background: transparent; border: 0; border-bottom: 1px solid #857653; border-radius: 0; color: #63502e; padding-inline: 0; }
.app-puzzle-panel { border: 1px solid #cbb991; border-radius: 28px; overflow: hidden; background: radial-gradient(ellipse at 50% 38%, #fffcf4 0%, #f2e8d4 55%, #e8dac0 100%); box-shadow: inset 0 1px 0 #fff, 0 24px 70px #67502c0c; }
.app-puzzle-field { position: relative; isolation: isolate; width: 100%; height: clamp(320px, 30vw, 420px); }
.app-puzzle-orbit { position: absolute; top: 50%; left: 50%; width: 260px; height: 260px; max-width: 90%; border: 1px solid #bfa36d55; border-radius: 50%; transform: translate(-50%, -50%); pointer-events: none; }
.app-puzzle-orbit.orbit-two { width: 350px; height: 350px; max-width: 110%; border-color: #cab78e44; }
.app-puzzle-target { display: grid; place-items: center; position: absolute; top: 50%; left: 50%; width: 148px; height: 148px; transform: translate(-50%, -50%); border: 1px solid #b59b68; border-radius: 28px; background: linear-gradient(135deg, #fffffff0, #ede2cb99); box-shadow: inset 0 2px 8px #7c623017, 0 14px 34px #84652e0c; transition: box-shadow 300ms, border-color 300ms; }
.app-puzzle-target svg { width: 104px; height: 104px; fill: #d9cbaa; stroke: #8c7243; stroke-width: 1; }
.app-puzzle-target.is-near { border-color: #745329; box-shadow: 0 0 0 8px #d7b97840, 0 0 48px #d2aa5b50; }
.app-puzzle-piece { --piece-x: -90px; --piece-y: 84px; position: absolute; top: 50%; left: 50%; width: 104px; height: 104px; margin: -52px 0 0 -52px; padding: 0; display: grid; place-items: center; background: transparent; border: 0; border-radius: 14px; cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; transform: translate3d(var(--piece-x), var(--piece-y), 0); transition: transform 550ms cubic-bezier(.2,.8,.2,1); z-index: 2; }
.app-puzzle-piece svg { width: 104px; height: 104px; fill: url(#app-piece-gold); stroke: #8b6932; stroke-width: .7; filter: drop-shadow(0 12px 12px #78542045); pointer-events: none; }
.app-puzzle-piece.is-dragging { cursor: grabbing; transition: none; }
.app-puzzle-piece:active svg { filter: drop-shadow(0 16px 16px #78542060); }
.app-puzzle-caption { position: relative; padding: 0 28px 28px; text-align: center; }
.app-puzzle-state { display: block; color: #453b28; font-size: 1.125rem; font-weight: 700; margin-bottom: 8px; }
.app-puzzle-caption p { font-size: 1rem; color: #5c5039; margin: 0; }
.app-infos { grid-column: 1 / -1; border: 1px solid #c6b99b; border-radius: 24px; padding: clamp(26px, 4vw, 54px); background: linear-gradient(120deg, #fffefa, #f2ecdd); }
.app-info-heading { display: flex; align-items: center; justify-content: space-between; gap: 36px; margin-bottom: 36px; }
.app-info-heading h3 { font-size: clamp(28px, 2.8vw, 42px); line-height: 1.25; max-width: 650px; }
.app-info-heading .button { flex-shrink: 0; }
.app-info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px; }
.app-info-grid article { border-top: 1px solid #bbaa85; padding-top: 26px; }
.app-feature-icon { display: grid; place-items: center; width: 48px; height: 48px; font-size: 1rem; color: #604c28; border: 1px solid #bba470; border-radius: 14px; background: #eadcbc; }
.app-info-grid h4 { font-size: 1.5rem; line-height: 1.4; font-weight: 600; letter-spacing: -.02em; margin: 20px 0 12px; }
.app-info-grid p { font-size: 1.125rem; line-height: 1.7; margin: 0; }
.app-demo-note { font-size: 1rem; color: #575c50; margin: 32px 0 0; border-top: 1px solid #d3c9b3; padding-top: 20px; }
.app-experience.is-unlocked .app-puzzle-piece { cursor: default; }
.app-experience.is-unlocked .app-puzzle-target { box-shadow: 0 0 0 10px #e7ce9850, 0 0 64px #d8b46955; border-color: #947039; }
@media (prefers-reduced-motion: no-preference) {
  .app-experience.is-unlocked .app-infos { animation: app-information-in 650ms cubic-bezier(.2,.8,.2,1) both; }
  .app-experience.is-unlocked .app-puzzle-target { animation: app-unlock-light 900ms ease both; }
}
@keyframes app-information-in { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes app-unlock-light { 0%, 100% { filter: brightness(1); } 45% { filter: brightness(1.12); } }
@media (max-width: 1100px) {
  .area-slide { grid-template-columns: minmax(0, 1.25fr) minmax(300px, 1fr); }
  .area-picker { padding: 16px; gap: 10px; }
  .area-picker img { width: 48px; height: 48px; }
  .area-picker-number { display: none; }
  .app-info-heading { align-items: flex-start; flex-direction: column; gap: 24px; }
  .app-info-grid { gap: 26px; }
}
@media (max-width: 760px) {
  .area-slide { grid-template-columns: 1fr; min-height: 0; }
  .area-slide-photo { aspect-ratio: 4 / 3; }
  .area-slide-copy { padding: 28px; justify-content: flex-start; }
  .area-slide-number { margin-bottom: 18px; }
  .area-slide-copy h3 { font-size: clamp(30px, 7vw, 40px); margin-bottom: 18px; }
  .area-slide-copy p { margin-bottom: 16px; }
  .area-slide-tag { margin-top: auto; }
  .area-carousel-footer { gap: 12px; flex-wrap: wrap; padding: 18px 20px; }
  .area-carousel-position { gap: 8px; }
  .area-play { margin-left: auto; padding-inline: 8px; }
  .area-arrows { margin-left: auto; }
  .area-arrow { width: 48px; height: 48px; }
  .area-pickers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .area-picker { align-items: flex-start; min-height: 114px; flex-direction: column; padding: 16px; gap: 10px; }
  .area-picker img { width: 52px; height: 42px; }
  .area-cinema { border-radius: 20px; }
  .home-page .app-experience { grid-template-columns: 1fr; gap: 28px; }
  .app-puzzle-field { height: 330px; }
  .app-puzzle-caption { padding: 0 20px 26px; }
  .app-info-grid { grid-template-columns: 1fr; gap: 26px; }
  .app-info-grid article { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 12px 18px; }
  .app-info-grid h4 { align-self: center; margin: 0; }
  .app-info-grid p { grid-column: 1 / -1; }
  .app-info-heading { margin-bottom: 28px; }
  .app-info-heading .button { width: 100%; }
}
@media (max-width: 380px) {
  .area-carousel-footer { padding: 16px; }
  .area-carousel-position { width: 100%; }
  .area-play { margin-left: 0; }
  .area-slide-copy { padding: 24px; }
  .area-slide-copy h3 { font-size: 30px; }
  .app-info-heading .button { gap: 12px; }
}

/* 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}}

/* boutique-hero.css */
/* Puzzle Gym — light, typographic boutique entrance. */
.home-page .boutique-hero{position:relative;isolation:isolate;overflow:hidden;width:100%;margin:0;min-height:0;height:auto;background:#f3f0e7;border-bottom:1px solid #d1c7ae;color:#22291f}
.home-page .boutique-hero .hero-stage{position:relative;display:grid;grid-template-rows:1fr auto;place-items:center;row-gap:36px;width:100%;min-height:clamp(620px,calc(100svh - 230px),900px);height:auto;top:auto;padding:48px var(--gutter) 24px;overflow:hidden}
.hero-atmosphere{position:absolute;z-index:-1;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 50% 24%,#fffefa 4%,#fbf8f0 28%,transparent 65%),linear-gradient(115deg,#dbd0b733,transparent 38%,#d7c9a852)}
.hero-halo{position:absolute;left:14%;right:14%;top:4%;height:110%;border-radius:0;background:radial-gradient(ellipse at 50% 38%,#fffef9 5%,#f9f0d9a6 34%,#cdb17838 57%,transparent 69%);transform:translateY(var(--hero-drift,0px))}
.hero-light-trace{position:absolute;top:-36%;left:15%;width:70%;height:125%;border:1px solid #b79a5a30;border-radius:50%;transform:rotate(-24deg);box-shadow:0 0 70px #e0c58c33,inset 0 0 85px #fffbed88}
.hero-edge{position:absolute;top:28px;bottom:24px;width:1px;background:linear-gradient(transparent,#b69a6570 24%,#b69a6538 80%,transparent)}
.hero-edge-left{left:var(--gutter)}.hero-edge-right{right:var(--gutter)}
.home-page .boutique-hero .brand-hero-content{position:relative;width:100%;max-width:1220px;align-self:center;z-index:1;padding:0 24px;background:transparent;text-align:center;mix-blend-mode:multiply}
.home-page .boutique-hero .hero-wordmark{justify-content:center;margin:0 0 27px;mix-blend-mode:multiply}
.home-page .boutique-hero .hero-wordmark .logo-crop{width:clamp(250px,22vw,370px)}
.home-page .boutique-hero h1{margin:0;color:#252b23;font-size:clamp(82px,8.4vw,154px);font-weight:600;line-height:.99;letter-spacing:-.068em}
.home-page .boutique-hero .hero-location{display:flex;align-items:center;justify-content:center;gap:16px;margin:0 0 24px;font-family:Manrope,sans-serif;font-size:16px;line-height:1.5;font-weight:600;letter-spacing:.12em;color:#6d5936;text-transform:uppercase}
.boutique-hero .hero-location:before,.boutique-hero .hero-location:after{content:'';width:38px;height:1px;background:#a68c575e}
.home-page .boutique-hero .hero-line{display:block;transform-origin:50% 100%;padding-inline:12px}
.home-page .boutique-hero .hero-gold{margin-top:5px;font-size:1.08em;font-weight:500;line-height:1.04;letter-spacing:-.045em;color:#8c6b35}
.home-page .boutique-hero .hero-gold em{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:500}
.home-page .boutique-hero .brand-hero-lead{font-size:clamp(19px,1.6vw,25px);line-height:1.5;letter-spacing:-.025em;color:#505348;margin:26px 0 26px}
.boutique-hero .brand-hero-lead strong{color:#292f24;font-weight:700}
.home-page .boutique-hero .hero-actions{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:30px;max-width:none}
.home-page .boutique-hero .hero-actions .button{min-height:56px;min-width:225px;border-radius:10px;padding:14px 22px;background:linear-gradient(115deg,#e9d29d,#f4e5bc 46%,#d9bb80);border-color:#b79a62;box-shadow:inset 0 1px #fff8e6,0 5px 16px #8c713d18;color:#292d23}
.home-page .boutique-hero .hero-actions .text-link{font-size:17px;min-height:48px;color:#30382b;gap:12px}
.home-page .boutique-hero .brand-hero-bottom{position:relative;left:auto;right:auto;bottom:auto;width:100%;max-width:none;display:flex;justify-content:space-between;align-items:center;margin:0;padding:20px 0 0;border-top:1px solid #b5a0794a;font-size:16px;line-height:1.4;letter-spacing:0;z-index:1}
.home-page .boutique-hero .brand-hero-bottom a{display:inline-flex;align-items:center;gap:10px;max-width:none;min-height:44px;text-align:left;color:#625033}
.home-page .boutique-hero .hero-scroll-cue{display:flex;position:absolute;bottom:24px;right:var(--gutter);left:auto;transform:none;align-items:center;gap:14px;min-height:44px;color:#625033;font-size:16px;padding:0;z-index:2}
/* Deliberate, brief motion: the complete message appears without a scroll gate. */
@media(prefers-reduced-motion:no-preference){
 .home-page .boutique-hero.is-cinema-entering .hero-wordmark{animation:boutique-logo-in 900ms cubic-bezier(.2,.65,.3,1) both}
 .home-page .boutique-hero.is-cinema-entering .hero-location{animation:boutique-fade-in 700ms 90ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-line{animation:boutique-title-in 1000ms cubic-bezier(.17,.67,.24,1) 160ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-gold{animation-delay:320ms}
 .home-page .boutique-hero.is-cinema-entering .brand-hero-lead{animation:boutique-fade-in 750ms 450ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-actions{animation:boutique-fade-in 750ms 540ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-light-trace{animation:boutique-light-in 3800ms cubic-bezier(.2,.65,.3,1) both}
 .home-page .boutique-hero .hero-stage:focus-within :is(.hero-wordmark,.hero-location,.hero-line,.brand-hero-lead,.hero-actions){animation:none;opacity:1;transform:none;clip-path:none}
}
@keyframes boutique-logo-in{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
@keyframes boutique-fade-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes boutique-title-in{from{opacity:0;transform:perspective(1000px) translateY(32px) rotateX(-9deg);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(-12% -8% -18% -8%)}}
@keyframes boutique-light-in{from{opacity:0;transform:translateX(-7%) rotate(-32deg)}to{opacity:1;transform:translateX(0) rotate(-24deg)}}
@media(min-width:901px) and (max-height:800px){
 .home-page .boutique-hero .hero-stage{min-height:490px;row-gap:16px;padding-top:24px;padding-bottom:14px}
 .home-page .boutique-hero .hero-wordmark{margin-bottom:16px}.home-page .boutique-hero .hero-wordmark .logo-crop{width:210px}
 .home-page .boutique-hero h1{font-size:clamp(64px,5.6vw,80px)}.home-page .boutique-hero .hero-location{margin-bottom:12px}
 .home-page .boutique-hero .brand-hero-lead{margin:14px 0;font-size:20px}.home-page .boutique-hero .brand-hero-bottom{padding-top:12px}.home-page .boutique-hero .hero-scroll-cue{bottom:14px}
}
@media(max-width:900px){
 .home-page .boutique-hero .hero-stage{min-height:650px;row-gap:28px;padding:40px var(--gutter) 20px}
 .home-page .boutique-hero .brand-hero-content{padding-inline:14px}.home-page .boutique-hero h1{font-size:clamp(60px,10.5vw,94px)}
 .home-page .boutique-hero .hero-wordmark .logo-crop{width:260px}
}
@media(max-width:760px){
 .home-page .opening-ribbon{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;row-gap:5px;padding-block:16px;align-items:center}
 .home-page .opening-ribbon-label{grid-column:1;grid-row:1;padding:0;border:0;box-shadow:none;background:transparent;color:#403821;font-weight:600;gap:8px}
 .home-page .opening-ribbon-label>span{font-size:21px;color:#65512d}
 .home-page .opening-ribbon p{grid-column:1;grid-row:2}.home-page .opening-ribbon p strong{font-size:20px;line-height:1.25}
 .home-page .opening-ribbon>a{grid-column:2;grid-row:1/3;white-space:normal;width:112px;gap:6px;line-height:1.4;font-size:16px;min-height:48px;align-items:center;border-bottom:0;justify-self:end}
 .home-page .opening-ribbon>a>.puzzle-link-icon{flex:0 0 22px;width:22px;height:22px}
 .home-page .boutique-hero .hero-stage{min-height:0;row-gap:24px;padding:32px var(--gutter) 18px}
 .home-page .boutique-hero .brand-hero-content{padding:0}
 .home-page .boutique-hero .hero-wordmark{margin:0 0 22px}.home-page .boutique-hero .hero-wordmark .logo-crop{width:clamp(190px,54vw,260px)}
 .home-page .boutique-hero h1{font-size:clamp(61px,16vw,100px);line-height:1.02;letter-spacing:-.07em}
 .home-page .boutique-hero .hero-location{font-size:16px;letter-spacing:.07em;gap:10px;margin-bottom:18px}
 .boutique-hero .hero-location:before,.boutique-hero .hero-location:after{width:18px}
 .home-page .boutique-hero .hero-line{padding-inline:0}
 .home-page .boutique-hero .hero-gold{font-size:.82em;line-height:1.1;letter-spacing:-.05em;margin-top:6px;white-space:nowrap}
 .home-page .boutique-hero .brand-hero-lead{max-width:360px;margin:20px auto 24px;font-size:19px;line-height:1.5;text-wrap:balance}
 .home-page .boutique-hero .hero-actions{flex-direction:column;gap:8px}
 .home-page .boutique-hero .hero-actions .button{min-width:240px;min-height:52px}
 .home-page .boutique-hero .hero-actions .text-link{min-height:44px}
 .home-page .boutique-hero .brand-hero-bottom{justify-content:center;padding-top:12px;font-size:16px}
 .home-page .boutique-hero .brand-hero-bottom a{text-align:center;justify-content:center;gap:9px}
 .home-page .boutique-hero .hero-scroll-cue{display:none}
 .hero-edge{top:24px;bottom:76px;opacity:.55}.hero-edge-left{left:10px}.hero-edge-right{right:10px}
 .hero-light-trace{width:150%;left:-25%;height:80%;top:-13%}.hero-halo{left:-40%;right:-40%;top:0;height:115%}
}
@media(max-width:360px){
 .home-page .opening-ribbon{column-gap:10px}.home-page .opening-ribbon p strong{font-size:18px}.home-page .opening-ribbon>a{width:101px}.home-page .opening-ribbon-label{font-size:16px;letter-spacing:-.025em}
 .home-page .boutique-hero .hero-location{gap:7px;letter-spacing:.04em}.boutique-hero .hero-location:before,.boutique-hero .hero-location:after{width:10px}
 .home-page .boutique-hero .hero-gold{font-size:.73em}.home-page .boutique-hero .brand-hero-lead{font-size:18px}
}
@media(prefers-reduced-motion:reduce){.hero-halo,.hero-light-trace{transform:none}.home-page .boutique-hero .hero-stage :is(.hero-wordmark,.hero-location,.hero-line,.brand-hero-lead,.hero-actions){opacity:1;transform:none;clip-path:none;animation:none}}
@media(forced-colors:active){.hero-atmosphere{display:none}.home-page .boutique-hero .hero-gold{color:CanvasText}.home-page .boutique-hero .hero-actions .button{border:1px solid ButtonText}}

@media(max-width:360px){
 .home-page .boutique-hero .hero-stage{padding-top:24px;padding-bottom:10px;row-gap:14px}
 .home-page .boutique-hero .hero-wordmark{margin-bottom:16px}.home-page .boutique-hero .hero-wordmark .logo-crop{width:170px}
 .home-page .boutique-hero h1{font-size:56px}.home-page .boutique-hero .hero-location{margin-bottom:14px}
 .home-page .boutique-hero .brand-hero-lead{margin:12px auto 16px}.home-page .boutique-hero .brand-hero-bottom{padding-top:8px}
}

/* extras.css */
/* Zusatzleistungen: two concise, independent services. */
.home-page .extras-section{background:var(--sand);padding-block:40px}
.extras-section .eyebrow{margin-bottom:12px}
.extras-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.extra-card{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr);min-width:0;border:1px solid #bfae91;border-radius:16px;overflow:hidden;background:var(--paper);box-shadow:0 10px 28px #493b2410;transition:transform 300ms ease,box-shadow 300ms ease}
.extra-brand{display:flex;align-items:center;justify-content:center;padding:26px;background:linear-gradient(140deg,#e2d1b6,#f0e5d1)}
.extra-brand img{width:180px;max-width:100%;height:auto;mix-blend-mode:multiply}
.extra-copy{align-self:center;padding:30px 28px}
.extra-copy h3{font-size:clamp(26px,2.5vw,36px);line-height:1.12;margin:0 0 16px}
.extra-copy p{font-size:18px;line-height:1.6;margin:0 0 16px;color:var(--muted)}
.extra-copy .extra-brand-name{font-size:18px;font-weight:700;color:var(--gold-dark);margin-bottom:10px}
.extra-note{display:inline-block;font-size:16px;font-weight:600;border-top:1px solid var(--line-strong);padding-top:14px;color:#5c4b2e}
.extra-photo{position:relative;overflow:hidden;min-height:280px;background:#30372d}
.extra-photo img{width:100%;height:100%;object-fit:cover;object-position:46% 28%;transition:transform 650ms ease}
.extra-copy .text-link{font-size:16px;gap:12px;line-height:1.4}
/* A separate food moment, with locally hosted official product artwork. */
.meal-banner{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1fr;width:100%;overflow:hidden;background:radial-gradient(ellipse at 86% 45%,#8c704641,transparent 57%),#222a23;color:#f5ecd9}
.meal-banner:after{content:'';position:absolute;pointer-events:none;inset:14px;border:1px solid #d7b87c33;z-index:-1}
.meal-copy{align-self:center;padding:44px var(--gutter)}
.meal-copy .eyebrow{font-size:16px;letter-spacing:.08em;color:#e3c898;margin-bottom:18px}
.meal-copy h2{font-size:clamp(38px,4.2vw,64px);color:#f5ecda;margin-bottom:20px;line-height:1.03}
.meal-copy h2 em{color:#e5c58e}
.meal-copy>p:not(.eyebrow){font-size:20px;line-height:1.6;color:#e8dfce;max-width:470px;margin-bottom:22px}
.meal-visual{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;height:clamp(360px,51svh,500px);overflow:hidden;padding:22px}
.meal-wordmark{position:absolute;top:24px;right:34px;font-size:26px;font-weight:800;letter-spacing:-1.2px;color:#eee4ce;z-index:2}.meal-wordmark span{font-weight:400}
.meal-light{position:absolute;inset:10% 0 -70%;border:1px solid #dab87538;border-radius:50%;transform:rotate(-22deg);box-shadow:0 0 90px #c5a46612,inset 0 0 90px #c5a4660f}
.meal-visual img{position:relative;display:block;height:92%;width:auto;max-width:78%;object-fit:contain;transform:rotate(-7deg);filter:drop-shadow(12px 20px 22px #0005);transition:transform 650ms ease}
@media(hover:hover){.extra-card:hover{transform:translateY(-3px);box-shadow:0 16px 40px #493b241a}.extra-card:hover .extra-photo img{transform:scale(1.035)}.meal-banner:hover .meal-visual img{transform:rotate(-3deg) translateY(-4px)}}
@media(max-width:1000px){.extra-card{grid-template-columns:120px 1fr}.extra-copy{padding:24px}.extra-brand{padding:15px}.meal-copy{padding:36px var(--gutter)}}
@media(max-width:760px){
 .home-page .extras-section{padding-block:32px}.extras-grid{grid-template-columns:1fr;gap:16px}.extra-card{grid-template-columns:100px minmax(0,1fr);border-radius:12px}.extra-copy{padding:22px 18px}.extra-copy h3{font-size:26px}.extra-copy p{font-size:18px;line-height:1.5}.extra-copy .extra-brand-name{font-size:16px}.extra-photo{min-height:260px}.extra-brand{padding:12px}
 .meal-banner{grid-template-columns:1fr}.meal-copy{padding:30px var(--gutter) 0}.meal-copy h2{font-size:40px;margin-bottom:16px}.meal-copy .eyebrow{margin-bottom:14px}.meal-copy>p:not(.eyebrow){font-size:18px;margin-bottom:18px}.meal-copy .button{font-size:16px;min-height:52px;padding:12px 18px;gap:12px}
 .meal-visual{height:245px;padding:15px 25px 20px}.meal-visual img{height:100%;max-width:62%;margin-right:35px}.meal-wordmark{font-size:22px;top:34px;right:24px}.meal-light{inset:10% 15% -70%}
}
@media(max-width:360px){.extra-card{grid-template-columns:80px minmax(0,1fr)}.extra-copy{padding:18px 14px}.extra-copy h3{font-size:25px}.extra-copy .text-link{gap:8px}.meal-copy h2{font-size:36px}.meal-visual{height:210px}.meal-wordmark{font-size:20px}.meal-copy .button{padding:12px;gap:8px}}
@media(prefers-reduced-motion:reduce){.extra-card,.extra-photo img,.meal-visual img{transition:none}.extra-card:hover,.extra-card:hover .extra-photo img{transform:none}.meal-banner:hover .meal-visual img{transform:rotate(-7deg)}}
@media(forced-colors:active){.meal-banner,.extra-card{border:1px solid CanvasText}.meal-light{display:none}}

/* Flexible access is separate from the Basic and All-In memberships. */
.gym-passes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:24px}
.gym-pass{padding:26px 28px;border:1px solid #b8a27b;border-radius:16px;background:linear-gradient(120deg,#eee2cb,#e5d2af);box-shadow:inset 0 1px #fbf0d8}
.gym-pass-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.gym-pass h3{font-size:28px;line-height:1.2}
.gym-pass-badge{display:inline-flex;align-items:center;min-height:34px;padding:4px 12px;background:#c5a66b;border:1px solid #a7864d;color:#30291b;border-radius:6px;font-size:16px;font-weight:600}
.gym-pass-price{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:24px 0;color:#494434}
.gym-pass-regular{font-size:18px;line-height:1.5}.gym-pass-regular del{margin-left:6px;text-decoration-thickness:1.5px}
.gym-pass-current{display:flex;align-items:baseline;gap:12px;color:#302d23;flex-wrap:wrap}.gym-pass-current strong{font-size:46px;font-weight:600;line-height:1;letter-spacing:-.05em;white-space:nowrap}.gym-pass-current>span{font-size:16px}
.home-page .gym-pass .button{display:flex;justify-content:space-between;min-height:50px;border-color:#ac9570;background:#f2e6d0;font-size:17px;padding:12px 18px;border-radius:10px}
.home-page .gym-pass .button:hover{background:#dfcca7;border-color:#846e45}
.home-page .extras-section .section-heading h2{font-size:clamp(32px,3.4vw,48px)}
@media(max-width:900px){.gym-pass-price{align-items:flex-start;flex-direction:column;gap:14px}}
@media(max-width:760px){.gym-passes{grid-template-columns:1fr;gap:16px;margin-bottom:20px}.gym-pass{padding:22px}.gym-pass h3{font-size:26px}.gym-pass-price{flex-direction:row;align-items:center;margin:22px 0}.gym-pass-current{gap:6px;flex-direction:column}.gym-pass-current strong{font-size:42px}.home-page .extras-section .section-heading h2{font-size:32px;line-height:1.1}.home-page .extras-section .section-heading h2 em{display:block;overflow-wrap:normal;font-size:.95em}}
@media(max-width:360px){.gym-pass{padding:18px}.gym-pass h3{font-size:25px}.gym-pass-heading{gap:10px}.gym-pass-badge{padding-inline:8px}.home-page .gym-pass .button{padding:12px;font-size:16px;gap:12px}.gym-pass-regular{font-size:17px}.home-page .extras-section .section-heading h2{font-size:30px}}

/* All In Flex: the commitment-free option, deliberately the eye-catcher under the two plans. */
.home-page .price-card.plan-flex{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:18px clamp(24px,3vw,44px);padding:clamp(26px,2.8vw,34px) clamp(26px,2.8vw,38px);border:1px solid #b59b68;border-radius:20px;background:var(--anth-edge),var(--anth-surface);background-color:var(--anth-base);box-shadow:0 26px 52px -30px #1b1c1fa6}
.home-page .plan-flex .plan-flex-main{min-width:0;text-align:left}
.home-page .plan-flex .eyebrow{margin-bottom:10px;color:#e5c895;font-size:1rem;letter-spacing:.14em}
.home-page .plan-flex h3{margin:0 0 8px;font-size:clamp(32px,3vw,42px);line-height:1.1;letter-spacing:-.04em;color:#fff6e4}
.home-page .plan-flex .plan-flex-main p{margin:0;font-size:1.125rem;line-height:1.6;color:#ded5c4}
.home-page .plan-flex .plan-flex-price{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap;color:#fff6e4}
.home-page .plan-flex .price-amount{display:flex;align-items:baseline;gap:6px}
.home-page .plan-flex .price-amount strong{font-size:clamp(52px,5vw,66px);font-weight:600;line-height:1;letter-spacing:-.06em}
.home-page .plan-flex .price-amount>span{font-size:30px;font-weight:500;color:#e9cf95}
.home-page .plan-flex .plan-flex-price small{font-size:1.0625rem;color:#d8cfbd}
.home-page .plan-flex .plan-flex-fee{font-size:1.0625rem;color:#e9cf95;font-weight:600}
.home-page .plan-flex .button{min-height:56px;font-size:17px}
@media(hover:hover){.home-page .price-card.plan-flex:hover{border-color:#e5c895;box-shadow:0 34px 64px -28px #1b1c1fc4,0 0 0 1px #e5c89559}}
@media(max-width:900px){
 .home-page .price-card.plan-flex{grid-template-columns:minmax(0,1fr) auto;gap:18px 20px}
 .home-page .plan-flex .button{grid-column:1/-1;justify-content:space-between}
}
@media(max-width:560px){
 .home-page .price-card.plan-flex{grid-template-columns:1fr;text-align:left}
 .home-page .plan-flex .plan-flex-price{align-items:flex-start}
}
@media(forced-colors:active){.home-page .price-card.plan-flex{border:1px solid CanvasText}}

/* The reduced price is an argument of its own, so it gets its own surface instead of a quiet line. */
.home-page .price-card .reduced-price{margin:4px 0 6px;padding:16px 18px;border:1px solid #b9c4cf;border-bottom:1px solid #b9c4cf;border-radius:14px;background:linear-gradient(135deg,#f4f7fa,#e5ecf3);box-shadow:inset 0 1px #fff,0 6px 16px -12px #3d465466;gap:4px}
.home-page .price-card .reduced-price strong{font-size:clamp(24px,2.1vw,29px);line-height:1.1;letter-spacing:-.035em;color:#1f2520}
.home-page .price-card .reduced-price span{font-size:1.0625rem;font-weight:600;color:#414a52;margin-top:2px}
.home-page .plan-all-in .reduced-price{border-color:#cdb281;background:linear-gradient(135deg,#fdf7e8,#f2e4c4);box-shadow:inset 0 1px #fffaf0,0 6px 16px -12px #7a5a2466}
.home-page .plan-all-in .reduced-price span{color:#6b5a38}
@media(max-width:560px){.home-page .price-card .reduced-price{padding:14px 14px}.home-page .price-card .reduced-price strong{font-size:25px}}


/* Opening hours next to the address, and how long a card is valid. */
.opening-hours{margin-top:22px}
.opening-hours h3{font-size:20px;letter-spacing:-.02em;margin-bottom:10px}
.opening-hours dl{display:grid;gap:6px;margin:0;max-width:330px}
.opening-hours dl>div{display:flex;justify-content:space-between;gap:16px;font-size:1.0625rem;line-height:1.5}
.opening-hours dt{color:#5c5340}
.opening-hours dd{margin:0;font-weight:600;white-space:nowrap}
.gym-pass-validity{display:block;margin-top:6px;font-size:1rem;line-height:1.45;color:#6b5a38;font-weight:600}

/* The brand mark closes the tariff buttons; it says "you belong here" better than an arrow.
   The round arrow styling of the gold buttons must not squeeze it. */
.readable-site .button>.button-logo,.readable-site .button-primary>.button-logo{width:76px;height:auto;flex:0 0 76px;aspect-ratio:4/1;border:0;background:none;border-radius:0;display:block;transform:none}
.readable-site .plan-flex .button>.button-logo{width:82px;flex-basis:82px}
@media(max-width:760px){.readable-site .button>.button-logo{width:66px;flex-basis:66px}}
@media(forced-colors:active){.button-logo{display:none}}

/* InBody as a third extra: two prices side by side, photo like the coaching card. */
.extras-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.extra-inbody .extra-photo img{object-position:50% 42%}
.extra-prices{display:flex;flex-wrap:wrap;gap:8px 26px;margin:14px 0 4px}
.extra-prices span{display:flex;flex-direction:column;gap:2px;font-size:1rem;line-height:1.4;color:#5c5340}
.extra-prices strong{font-size:27px;font-weight:600;letter-spacing:-.04em;color:#26251f}
.extra-inbody .extra-note{border-top:0;padding-top:0;color:#6b5a38}
.extra-inbody .text-link{margin-top:12px}

/* Voucher advertisement above the contact block. */
.voucher-band{padding-block:clamp(36px,4vw,60px)}
.voucher-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center;gap:clamp(24px,4vw,56px);padding:clamp(26px,3vw,40px) clamp(24px,3vw,44px);border:1px solid #c2ab7f;border-radius:26px;background:linear-gradient(135deg,#f8efdb,#eedfbd 55%,#e6d2a8);box-shadow:0 26px 54px -34px #6b502380}
.voucher-copy p{font-size:1.125rem;line-height:1.65;max-width:46ch;margin-bottom:22px;color:#4d4638}
.voucher-visual{margin:0}
.voucher-visual img{display:block;width:100%;height:auto;filter:drop-shadow(0 18px 34px #6b50232e)}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .voucher-visual img{transition:transform 420ms cubic-bezier(.2,.7,.3,1)}
 .voucher-inner:hover .voucher-visual img{transform:translateY(-6px) rotate(-1deg)}
}
@media(max-width:900px){
 .extras-grid{grid-template-columns:1fr}
 .voucher-inner{grid-template-columns:1fr;gap:24px}
 .voucher-visual{order:-1}
}
@media(forced-colors:active){.voucher-inner{border:1px solid CanvasText}}

/* 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}}

/* welcome.css */
/* Studio introduction: an editorial spread with a clear next step. */
.home-page .intro.studio-welcome{display:grid;grid-template-columns:minmax(0,.46fr) minmax(0,.54fr);align-items:stretch;width:100%;max-width:none;gap:0;padding:0;margin:0;background:#eee3cf;border-bottom:1px solid #b39a71}
.home-page .studio-welcome .welcome-story{grid-column:2;grid-row:1;position:relative;display:flex;flex-direction:column;justify-content:center;max-width:none;padding:clamp(32px,4.5vw,72px);min-height:420px;border-block:1px solid #c9b799;background:linear-gradient(125deg,#f0e5d0,#e4d3b4)}
.studio-welcome .welcome-kicker{display:flex;align-items:center;gap:14px;font-size:18px;font-weight:600;line-height:1.5;margin:0 0 28px;color:#675333;letter-spacing:0}
.studio-welcome .welcome-kicker:before{content:'';width:34px;height:2px;flex-shrink:0;background:#a18450}
.home-page .studio-welcome .intro-side h2{margin:0;font-size:clamp(50px,5.4vw,86px);font-weight:600;line-height:1.02;letter-spacing:-.055em;color:#283123}
.home-page .studio-welcome .intro-side h2 br{display:block}
.home-page .studio-welcome .intro-side h2 em{font-size:1.08em;font-weight:500;color:#79603a}
.home-page .studio-welcome .intro-copy{margin-top:28px;max-width:490px}
.home-page .studio-welcome .intro-copy>p{font-size:20px;line-height:1.6;max-width:none;margin:0;color:#4c4e40;text-wrap:pretty}
.home-page .studio-welcome .welcome-image{grid-column:1;grid-row:1;position:relative;min-width:0;min-height:420px;height:auto;align-self:stretch;border-radius:0;margin:0;overflow:hidden;background:#bfae92}
.home-page .studio-welcome .welcome-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 61%;transition:transform 900ms cubic-bezier(.2,.7,.3,1)}
.studio-welcome .welcome-image:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#172017ad,transparent 38%);box-shadow:inset 0 0 0 1px #bda47c44}
.home-page .studio-welcome .welcome-image figcaption{position:absolute;z-index:1;inset:auto 28px 28px;display:block;border:0;border-radius:0;padding:0;background:none;color:#fff2d8;font-size:18px;font-weight:500;line-height:1.5;text-align:left}
.home-page .studio-welcome .journey-map{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;border:0;border-radius:0;background:#293425;overflow:hidden}
.home-page .studio-welcome .journey-map a{position:relative;display:flex;align-items:center;gap:20px;min-width:0;min-height:88px;padding:18px clamp(24px,4vw,64px);border:0;background:transparent;color:#f1e7d2}
.home-page .studio-welcome .journey-map a+a{border-left:1px solid #bca57644;border-top:0}
.home-page .studio-welcome .journey-map .journey-number{align-self:center;padding:0;color:#d7bb81;font-family:var(--font-editorial);font-size:30px;font-weight:500;line-height:1}
.home-page .studio-welcome .journey-map strong{font-size:18px;line-height:1.4;font-weight:600}
.home-page .studio-welcome .journey-map a>span:last-child{color:#dfc48c}
.home-page .studio-welcome .journey-map a:focus-visible{outline-color:#f2d69b;outline-offset:-5px}
@media(hover:hover){.home-page .studio-welcome .welcome-image:hover img{transform:scale(1.025)}.home-page .studio-welcome .journey-map a:hover{background:#3c4833}}
@media(max-width:1000px) and (min-width:761px){.home-page .studio-welcome .welcome-story{padding:34px}.home-page .studio-welcome .intro-side h2{font-size:52px}.home-page .studio-welcome .journey-map a{gap:12px;padding:18px 24px}.home-page .studio-welcome .journey-map strong{font-size:17px}}
@media(max-width:760px){
 .home-page .intro.studio-welcome{grid-template-columns:minmax(0,1fr)}
 .home-page .studio-welcome .welcome-story{grid-column:1;grid-row:1;padding:26px var(--gutter);min-height:0}
 .studio-welcome .welcome-kicker{font-size:17px;margin-bottom:18px;gap:10px}.studio-welcome .welcome-kicker:before{width:22px}
 .home-page .studio-welcome .intro-side h2{font-size:clamp(43px,12vw,62px);line-height:1.02}
 .home-page .studio-welcome .intro-copy{margin-top:18px;max-width:520px}.home-page .studio-welcome .intro-copy>p{font-size:18px;line-height:1.5}
 .home-page .studio-welcome .welcome-image{grid-column:1;grid-row:2;min-height:0;height:185px}.home-page .studio-welcome .welcome-image img{object-position:50% 59%}
 .home-page .studio-welcome .welcome-image figcaption{inset:auto var(--gutter) 16px;font-size:16px}
 .home-page .studio-welcome .journey-map{grid-column:1;grid-row:3;grid-template-columns:1fr}
 .home-page .studio-welcome .journey-map a{min-height:56px;padding:12px var(--gutter);gap:18px}.home-page .studio-welcome .journey-map a+a{border-top:1px solid #bca57644;border-left:0}.home-page .studio-welcome .journey-map .journey-number{font-size:25px}.home-page .studio-welcome .journey-map strong{font-size:17px}
}
@media(max-width:360px){.studio-welcome .welcome-kicker{font-size:16px;gap:8px}.studio-welcome .welcome-kicker:before{width:16px}.home-page .studio-welcome .welcome-story{padding-block:22px}.home-page .studio-welcome .welcome-image{height:160px}.home-page .studio-welcome .welcome-image figcaption{font-size:16px;max-width:230px}}
@media(prefers-reduced-motion:reduce){.home-page .studio-welcome .welcome-image img{transition:none}.home-page .studio-welcome .welcome-image:hover img{transform:none}}
@media(forced-colors:active){.home-page .studio-welcome .welcome-story,.home-page .studio-welcome .journey-map{background:Canvas;color:CanvasText}.home-page .studio-welcome .journey-map a{border:1px solid CanvasText}}

/* 04.10.2026: Willkommensbereich ohne Foto – kompakt über die volle Breite, Überschrift links, Text und Eckdaten rechts. */
.home-page .intro.studio-welcome{grid-template-columns:minmax(0,1fr)}
.home-page .studio-welcome .welcome-story{grid-column:1;grid-row:1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);grid-template-rows:auto 1fr;column-gap:clamp(32px,6vw,110px);align-items:center;min-height:0;padding:clamp(40px,5vw,76px) clamp(24px,6vw,96px)}
.home-page .studio-welcome .welcome-kicker{grid-column:1/-1;margin-bottom:22px}
.home-page .studio-welcome .intro-side h2{font-size:clamp(36px,3.6vw,58px);line-height:1.06;letter-spacing:-.04em;text-wrap:balance}
.home-page .studio-welcome .intro-side h2 em{display:block;font-size:1em}
.home-page .studio-welcome .intro-copy{margin-top:6px;max-width:560px}
.home-page .studio-welcome .welcome-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:30px 0 0;padding:0;list-style:none;border-top:1px solid #c9b799}
.home-page .studio-welcome .welcome-facts li{padding:18px 16px 0 0;min-width:0}
.home-page .studio-welcome .welcome-facts li+li{padding-left:16px;border-left:1px solid #c9b799}
.home-page .studio-welcome .welcome-facts strong{display:block;font-family:var(--font-editorial);font-size:clamp(30px,2.6vw,42px);font-weight:500;line-height:1.05;color:#79603a}
.home-page .studio-welcome .welcome-facts span{display:block;margin-top:6px;font-size:15px;line-height:1.4;color:#4c4e40}
@media(max-width:1000px){.home-page .studio-welcome .welcome-story{grid-template-columns:minmax(0,1fr)}.home-page .studio-welcome .intro-copy{margin-top:22px}}
@media(max-width:760px){.home-page .studio-welcome .welcome-story{padding:30px var(--gutter)}.home-page .studio-welcome .intro-side h2{font-size:clamp(32px,8.6vw,44px)}.home-page .studio-welcome .welcome-facts{margin-top:22px}.home-page .studio-welcome .welcome-facts li{padding:14px 10px 0 0}.home-page .studio-welcome .welcome-facts li+li{padding-left:10px}.home-page .studio-welcome .welcome-facts strong{font-size:24px}.home-page .studio-welcome .welcome-facts span{font-size:14px}}

/* 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)}
}

/* hero-cinema.css */
/* Header as a short title sequence: 7 Areas. → 1 Erlebnis. → Puzzle Gym → Dein Fitnessstudio in Nürnberg.
   Without JavaScript or with reduced motion the finished composition is shown straight away. */
/* No own layer group here, otherwise the logo's multiply would lose the cream backdrop. */
.home-page .boutique-hero .brand-hero-content,.home-page .boutique-hero h1.hero-sequence{mix-blend-mode:normal;z-index:auto;perspective:none}
.home-page .boutique-hero h1.hero-sequence{display:flex;flex-direction:column;align-items:center;margin:0;--hero-track:-.068em;font-size:clamp(84px,8.8vw,156px);font-weight:600;line-height:1;letter-spacing:var(--hero-track);color:#252b23}
.hero-sequence .hero-scene{display:block;position:relative}
.hero-scene-areas{padding-inline:.06em}
.hero-scene-areas .hero-num{font-variant-numeric:lining-nums tabular-nums}
.hero-scene-experience{margin-top:.02em}
.hero-scene-experience .hero-reveal{display:block;padding:0 .08em .06em;font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:500;font-size:1.08em;line-height:1.04;letter-spacing:-.035em;color:#8c6b35}
.hero-divider{display:block;width:min(360px,56%);height:1px;margin:clamp(22px,2.6vw,34px) auto clamp(20px,2.2vw,28px);background:linear-gradient(90deg,transparent,#b59b68 22%,#e9cf95 50%,#b59b68 78%,transparent)}
.hero-brand-row{display:grid;place-items:center}
.hero-bloom{position:absolute;left:50%;top:50%;width:170%;height:320%;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;background:radial-gradient(closest-side,#fffaf0e0,#f5e2b870 42%,#e3c78a1f 64%,transparent 78%);opacity:.5}
.home-page .boutique-hero .hero-brand-logo{position:relative;width:clamp(240px,22vw,360px);font-size:1rem}
.hero-credit{--credit-track:.14em;display:flex;align-items:center;justify-content:center;gap:16px;max-width:100%;text-align:center;text-wrap:balance;margin-top:clamp(14px,1.6vw,20px);font-family:Manrope,sans-serif;font-size:clamp(16px,1.35vw,20px);line-height:1.5;font-weight:600;letter-spacing:var(--credit-track);text-transform:uppercase;color:#6d5936}
.hero-credit:before,.hero-credit:after{content:'';flex:0 0 42px;height:1px;background:#a68c5775}
.home-page .boutique-hero .hero-sequence+.hero-actions,.home-page .boutique-hero .brand-hero-content>.hero-actions{margin-top:clamp(26px,3vw,40px)}

/* Light sweeps over the lettering once. */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
 .hero-shine{background-image:linear-gradient(100deg,var(--shine-base) 0 40%,var(--shine-light) 50%,var(--shine-base) 60% 100%);background-size:260% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent}
 .hero-scene-areas .hero-shine{--shine-base:#252b23;--shine-light:#e9cf95}
 .hero-scene-experience .hero-shine{--shine-base:#8c6b35;--shine-light:#fff1cf}
}

/* Before the sequence starts, its parts wait invisibly (only while motion is welcome and the script runs). */
.hero-cinema-pending .home-page .boutique-hero:not(.is-cinema-entering) :is(.hero-scene,.hero-divider,.hero-actions,.brand-hero-bottom,.hero-scroll-cue){opacity:0}

@media(prefers-reduced-motion:no-preference){
 .home-page .boutique-hero.is-cinema-entering .hero-scene-areas{animation:hero-cinema-areas 1700ms linear 100ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-scene-areas .hero-num{animation:hero-cinema-glow 1500ms ease 600ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-scene-experience .hero-reveal{animation:hero-cinema-write 950ms cubic-bezier(.45,.05,.2,1) 1450ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-scene-experience:after{content:'';position:absolute;top:6%;bottom:10%;left:0;width:2px;border-radius:2px;pointer-events:none;background:linear-gradient(transparent,#fff6dc 30%,#fff6dc 70%,transparent);box-shadow:0 0 22px 7px #f0d392a6;animation:hero-cinema-pen 950ms cubic-bezier(.45,.05,.2,1) 1450ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-scene-areas .hero-shine{animation:hero-cinema-shine 1400ms cubic-bezier(.3,.6,.3,1) 2200ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-scene-experience .hero-shine{animation:hero-cinema-write 950ms cubic-bezier(.45,.05,.2,1) 1450ms both,hero-cinema-shine 1400ms cubic-bezier(.3,.6,.3,1) 2350ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-divider{animation:hero-cinema-line 750ms cubic-bezier(.3,.7,.2,1) 2350ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-bloom{animation:hero-cinema-bloom 1900ms ease-out 2450ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-brand-logo{animation:hero-cinema-logo 1000ms cubic-bezier(.16,.72,.22,1) 2550ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-credit{animation:hero-cinema-credit 1000ms cubic-bezier(.2,.7,.2,1) 3100ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-credit:before,.home-page .boutique-hero.is-cinema-entering .hero-credit:after{animation:hero-cinema-line 800ms cubic-bezier(.3,.7,.2,1) 3350ms both}
 .home-page .boutique-hero.is-cinema-entering .hero-actions{animation:boutique-fade-in 750ms ease 3550ms both}
 .home-page .boutique-hero.is-cinema-entering :is(.brand-hero-bottom,.hero-scroll-cue){animation:boutique-fade-in 750ms ease 3800ms both}
 /* Keyboard users get everything at once. */
 .home-page .boutique-hero .hero-stage:focus-within :is(.hero-scene,.hero-scene *,.hero-divider,.hero-bloom,.hero-brand-logo,.hero-credit,.hero-actions,.brand-hero-bottom,.hero-scroll-cue){animation:none!important;opacity:1;filter:none;transform:none;clip-path:none}
 .home-page .boutique-hero .hero-stage:focus-within .hero-bloom{opacity:.5;transform:translate(-50%,-50%)}
}
/* 7 Areas. appears large in the middle of the visible stage, holds, then glides to its place. */
@keyframes hero-cinema-areas{0%{opacity:0;transform:translateY(var(--areas-shift,0px)) scale(1.28);filter:blur(16px);letter-spacing:.02em;animation-timing-function:cubic-bezier(.16,.72,.22,1)}30%{opacity:1;transform:translateY(var(--areas-shift,0px)) scale(1.2);filter:blur(0);letter-spacing:var(--hero-track);animation-timing-function:linear}55%{opacity:1;transform:translateY(var(--areas-shift,0px)) scale(1.18);filter:blur(0);letter-spacing:var(--hero-track);animation-timing-function:cubic-bezier(.65,0,.25,1)}100%{opacity:1;transform:none;filter:blur(0);letter-spacing:var(--hero-track)}}
@keyframes hero-cinema-glow{0%{text-shadow:0 0 0 #e7c98800}35%{text-shadow:0 0 34px #e7c988cc}100%{text-shadow:0 0 0 #e7c98800}}
@keyframes hero-cinema-write{from{clip-path:inset(-25% 100% -25% 0)}to{clip-path:inset(-25% -6% -25% -6%)}}
@keyframes hero-cinema-pen{0%{left:0;opacity:0}12%{opacity:1}85%{opacity:1}100%{left:100%;opacity:0}}
@keyframes hero-cinema-shine{from{background-position:100% 0}to{background-position:0 0}}
@keyframes hero-cinema-line{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@keyframes hero-cinema-bloom{0%{opacity:0;transform:translate(-50%,-50%) scale(.55)}40%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}100%{opacity:.5;transform:translate(-50%,-50%) scale(1)}}
@keyframes hero-cinema-logo{from{opacity:0;transform:translateY(18px) scale(.94);filter:blur(10px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes hero-cinema-credit{from{opacity:0;letter-spacing:calc(var(--credit-track) + .36em)}to{opacity:1;letter-spacing:var(--credit-track)}}

@media(min-width:901px) and (max-height:800px){
 .home-page .boutique-hero h1.hero-sequence{font-size:clamp(64px,6vw,96px)}
 .home-page .boutique-hero .hero-brand-logo{width:220px}
 .hero-divider{margin-block:16px 14px}
}
@media(max-width:760px){
 .home-page .boutique-hero h1.hero-sequence{--hero-track:-.07em;font-size:clamp(58px,17vw,100px)}
 .home-page .boutique-hero .hero-brand-logo{width:clamp(200px,58vw,260px)}
 .hero-credit{--credit-track:.08em;gap:10px;font-size:16px}
 .hero-credit:before,.hero-credit:after{flex-basis:18px}
}
@media(max-width:360px){
 .home-page .boutique-hero h1.hero-sequence{font-size:54px}
 .hero-credit{--credit-track:.04em;gap:7px}.hero-credit:before,.hero-credit:after{flex-basis:10px}
}
@media(forced-colors:active){
 .hero-shine{color:CanvasText;background:none}
 .hero-bloom,.hero-divider{display:none}
}

/* breakfast.css */
@media(min-width:761px){.home-page .area-pickers{grid-template-columns:repeat(7,minmax(0,1fr))}.home-page .area-picker{padding:14px 8px;gap:7px;line-height:1.35}}
@media(min-width:761px) and (max-width:1100px){.home-page .area-pickers{grid-template-columns:repeat(4,minmax(0,1fr))}}
.breakfast-feature{display:grid;grid-template-columns:1.15fr 1fr;overflow:hidden;border:1px solid #bda477;border-radius:20px;margin:0 0 28px;background:radial-gradient(ellipse at top right,#8b744033,transparent 65%),linear-gradient(135deg,#36393d,#1c1e21);color:#f7efdf;box-shadow:0 20px 50px #29251c20}
.breakfast-feature figure{position:relative;margin:0;min-width:0}.breakfast-feature figure img{display:block;width:100%;height:100%;min-height:400px;object-fit:cover}.breakfast-feature figcaption{position:absolute;bottom:12px;left:14px;font-size:16px;color:white;background:#202225c9;border-radius:5px;padding:3px 8px}.breakfast-copy{padding:clamp(26px,4vw,60px);align-self:center}.breakfast-copy .eyebrow{color:#ead09a;font-size:16px}.breakfast-copy h3{font-size:clamp(34px,4vw,58px);line-height:1.05;letter-spacing:-.045em;color:#fff6e5;margin-bottom:24px}.breakfast-copy>p:not(.eyebrow){font-size:18px;line-height:1.65;margin-bottom:20px;color:#e2d9cb}.breakfast-copy .button{margin-top:8px}
.breakfast-page{max-width:1200px;margin:auto;padding:48px 24px 80px}.breakfast-page h1{font-size:clamp(36px,5vw,64px);line-height:1.12;margin:20px 0}.breakfast-page>p{font-size:18px;line-height:1.6}.breakfast-booking{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:32px;align-items:start}.breakfast-booking>img{width:100%;height:auto;border-radius:18px}.breakfast-booking form{display:grid;gap:20px;min-width:0}.breakfast-booking label{display:grid;gap:8px;font-size:16px;font-weight:600}.breakfast-booking input,.breakfast-booking select{width:100%;min-width:0;min-height:48px;font:inherit;padding:10px;border:1px solid #ac9770;border-radius:8px;background:#fffaf0;color:#242629}.breakfast-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.breakfast-booking p{font-size:16px;line-height:1.55}.breakfast-booking .breakfast-honey{display:none}.breakfast-booking button:disabled{opacity:.6;cursor:wait}
@media(max-width:760px){.breakfast-feature,.breakfast-booking{grid-template-columns:1fr}.breakfast-feature figure img{min-height:0;aspect-ratio:3/2}.breakfast-copy{padding:28px}.breakfast-page{padding:32px 20px 60px}}
@media(max-width:380px){.breakfast-fields{grid-template-columns:1fr}}

/* Four services, in reading order: breakfast, XXL, coaching, InBody. */
.home-page .extras-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.extras-grid .breakfast-feature{margin:0;min-width:0;border-radius:16px;grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr)}
.extras-grid .breakfast-feature figure img{min-height:0;height:100%;object-position:50% 50%;aspect-ratio:auto}
.extras-grid .breakfast-copy{padding:26px 24px;min-width:0}
.extras-grid .breakfast-copy h3{font-size:30px;line-height:1.15;margin-bottom:16px}
.extras-grid .breakfast-copy>p:not(.eyebrow){font-size:17px;line-height:1.55;margin-bottom:14px}
.extras-grid .breakfast-copy .eyebrow{font-size:16px;letter-spacing:.04em}
.extras-grid .breakfast-copy .button{padding:12px 16px;gap:10px;font-size:16px}
@media(max-width:1100px) and (min-width:901px){.extras-grid .breakfast-feature{grid-template-columns:120px minmax(0,1fr)}.extras-grid .breakfast-copy{padding:24px 18px}}
@media(max-width:900px){.home-page .extras-grid{grid-template-columns:1fr}}
@media(max-width:560px){.extras-grid .breakfast-feature{grid-template-columns:1fr}.extras-grid .breakfast-feature figure img{height:auto;aspect-ratio:3/2}.extras-grid .breakfast-copy{padding:24px}}
/* The bowl configurator keeps the food and selection summary beside the choices. */
.bowl-booking{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,56px)}
.bowl-preview{position:sticky;top:135px;min-width:0}.bowl-preview>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:18px}.bowl-image-note{font-size:16px;line-height:1.5;color:#655d4f;margin:12px 0 22px}
.bowl-summary{padding:26px;border:1px solid #a58e65;border-radius:18px;background:radial-gradient(at top left,#bca47726,transparent 65%),#272a2e;color:#f5eddd}.bowl-summary h2{font-size:27px;color:#f5eddd;margin:0 0 18px;letter-spacing:-.025em}.bowl-summary p{display:grid;gap:5px;border-top:1px solid #dfc68e33;padding-top:12px;margin-top:12px;font-size:16px;line-height:1.5}.bowl-summary strong{color:#e5c895}.bowl-summary span{color:#f5eddd}
.bowl-group{min-width:0;border:0;padding:0 0 24px;margin:0;border-bottom:1px solid #b6a38166}.bowl-group legend{font-size:25px;line-height:1.3;font-weight:600;margin-bottom:10px;letter-spacing:-.02em}.bowl-group legend>span{display:inline-block;font-size:16px;color:#806339;margin-right:10px}.bowl-group>p{margin:0 0 16px;color:#625946}
.bowl-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.breakfast-booking .bowl-choice{display:flex;align-items:center;gap:10px;border:1px solid #bca783;border-radius:12px;padding:13px 12px;min-height:52px;background:#fffaf06e;cursor:pointer;font-weight:500;line-height:1.4;transition:background .18s,border-color .18s,box-shadow .18s}.breakfast-booking .bowl-choice input{appearance:auto;flex:0 0 20px;width:20px;height:20px;min-height:0;padding:0;margin:0;accent-color:#826330}.bowl-choice span{min-width:0;overflow-wrap:anywhere}.breakfast-booking .bowl-choice:has(input:checked){background:linear-gradient(135deg,#f4e8cb,#e6cfa0);border-color:#8e713a;box-shadow:inset 0 0 0 1px #8e713a}.breakfast-booking .bowl-choice:focus-within{outline:2px solid #725422;outline-offset:3px}.bowl-details-title{font-size:28px;line-height:1.2;margin:6px 0}
@media(hover:hover){.breakfast-booking .bowl-choice:hover{background:#eeddbb;border-color:#8e713a}}
@media(max-width:760px){.bowl-booking{grid-template-columns:1fr}.bowl-preview{position:static}.bowl-summary{padding:20px}.bowl-preview>img{max-height:260px}.bowl-group legend{font-size:24px}}
@media(max-width:380px){.bowl-choices{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.breakfast-booking .bowl-choice{transition:none}}

/* Preise je Zutat und die laufende Summe */
.bowl-price{display:block;margin-top:2px;font-weight:400;font-size:12px;letter-spacing:.02em;opacity:.72}
.bowl-total{margin-top:14px;padding-top:12px;border-top:1px solid currentColor;font-size:17px}
.bowl-total strong{font-weight:700}
.bowl-total span{font-weight:700}

/* Drei Mengen pro Zutat; erst nach Auswahl eingeblendet. */
.bowl-ingredient{min-width:0;align-self:start}
.bowl-portions{min-width:0;margin:8px 0 0;padding:0;border:0}
.bowl-portions[hidden]{display:none}
.bowl-portions legend{font-size:14px;letter-spacing:0;font-weight:500;margin:0 0 6px;color:#625946}
.bowl-portion-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.breakfast-booking .bowl-portion{position:relative;display:block;min-width:0;cursor:pointer}
.breakfast-booking .bowl-portion input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0}
.bowl-portion>span{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:64px;padding:8px 2px;border:1px solid #bca783;border-radius:8px;background:#fffaf0;font-size:16px;font-weight:600;white-space:nowrap}
.bowl-portion small{font-size:14px;font-weight:400}
.bowl-portion input:checked+span{background:#e6cfa0;border-color:#806339;box-shadow:inset 0 0 0 1px #806339}
.bowl-portion input:focus-visible+span{outline:2px solid #725422;outline-offset:3px}
.bowl-price{font-size:14px;opacity:1;color:#625946}
@media(min-width:761px) and (max-width:1050px),(max-width:480px){.bowl-choices{grid-template-columns:1fr}}

/* Nährwerte deiner Bowl — Kalorien, Makros, Balken, Tabellen */
.bowl-naehrwerte{--nw-eiweiss:#86c2aa;--nw-kh:#e6b95c;--nw-fett:#d9826a;margin-top:22px;padding-top:18px;border-top:1px solid #dfc68e55}
.bowl-naehrwerte h3{margin:0 0 14px;font-size:19px;letter-spacing:-.01em;color:#f5eddd}
.bowl-summary .bowl-naehrwerte p{display:block;border:0;padding:0;margin:0}
.bowl-nw-leer{font-size:14px;opacity:.75}
.bowl-nw-kopf{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center}
.bowl-nw-kcal{display:flex;flex-direction:column;align-items:flex-start;padding-right:18px;border-right:1px solid #dfc68e44}
.bowl-nw-kcal strong{font-size:40px;line-height:1;font-weight:700;letter-spacing:-.03em;color:#f5eddd;font-variant-numeric:tabular-nums}
.bowl-nw-kcal span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#dfc68e;margin-top:4px}
.bowl-nw-makros{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.bowl-nw-makros>div{display:flex;flex-direction:column;gap:2px;padding-left:10px;border-left:3px solid}
.bowl-nw-makros strong{font-size:18px;color:#f5eddd;font-variant-numeric:tabular-nums}
.bowl-nw-makros span{font-size:12px;color:#f5edddb3}
.bowl-nw-makros .is-eiweiss{border-color:var(--nw-eiweiss)}.bowl-nw-makros .is-kh{border-color:var(--nw-kh)}.bowl-nw-makros .is-fett{border-color:var(--nw-fett)}
.bowl-balance{margin:18px 0 6px;padding:14px;border-radius:14px;background:#ffffff0d;border:1px solid #dfc68e2e}
.bowl-balance-kopf{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:#f5edddb3}
.bowl-balance-urteil{padding:3px 10px;border-radius:999px;font-size:12px;letter-spacing:.02em;text-transform:none;font-weight:700}
.bowl-balance-urteil.is-gut{background:#86c2aa2e;color:#a6dcc5}.bowl-balance-urteil.is-mittel{background:#e6b95c2e;color:#f0cb7d}.bowl-balance-urteil.is-schwach{background:#d9826a33;color:#f0a38e}
.bowl-balance-leiste{display:flex;height:30px;border-radius:9px;overflow:hidden;gap:2px;background:#ffffff14}
.bowl-balance-leiste span{display:flex;align-items:center;justify-content:center;min-width:0;font-size:12px;font-weight:700;color:#1d1f22;white-space:nowrap;overflow:hidden;transition:flex-basis .35s cubic-bezier(.2,.8,.2,1)}
.bowl-balance-leiste .is-eiweiss{background:var(--nw-eiweiss)}.bowl-balance-leiste .is-kh{background:var(--nw-kh)}.bowl-balance-leiste .is-fett{background:var(--nw-fett)}
.bowl-balance-ziele{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:13px;color:#f5eddd}
.bowl-balance-ziele span{display:inline-flex;align-items:center;gap:6px}
.bowl-balance-ziele i{width:9px;height:9px;border-radius:3px;display:inline-block}
.bowl-balance-ziele .is-eiweiss i{background:var(--nw-eiweiss)}.bowl-balance-ziele .is-kh i{background:var(--nw-kh)}.bowl-balance-ziele .is-fett i{background:var(--nw-fett)}
.bowl-balance-ziele small{opacity:.6;font-size:11px}
.bowl-balance-ziele .is-daneben{color:#f0cb7d}
.bowl-balance-punkte{display:flex;align-items:center;gap:10px;margin-top:12px}
.bowl-balance-skala{flex:1;height:6px;border-radius:99px;background:#ffffff1f;overflow:hidden}
.bowl-balance-skala span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d9826a,#e6b95c 50%,#86c2aa);transition:width .35s cubic-bezier(.2,.8,.2,1)}
.bowl-balance-punkte small{font-size:12px;color:#f5edddb3;white-space:nowrap}
.bowl-balance-tipps{margin:10px 0 0;padding-left:18px;font-size:13px;line-height:1.5;color:#f5edddd9}
.bowl-nw-tabelle{width:100%;border-collapse:collapse;margin-top:16px;font-size:14px;font-variant-numeric:tabular-nums}
.bowl-nw-tabelle caption{text-align:left;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#dfc68e;padding-bottom:6px}
.bowl-nw-tabelle thead th{font-size:11px;font-weight:600;color:#f5edddb3;text-align:right;padding:0 0 4px}
.bowl-nw-tabelle tbody th{text-align:left;font-weight:500;padding:6px 0;color:#f5eddd}
.bowl-nw-tabelle td{text-align:right;padding:6px 0 6px 12px;color:#f5eddd}
.bowl-nw-tabelle td:last-child{color:#f5edddb3;width:56px}
.bowl-nw-tabelle tbody tr{border-top:1px solid #dfc68e24}
.bowl-nw-tabelle tr.is-davon th{padding-left:14px;font-size:13px;color:#f5edddb3}
.bowl-summary .bowl-nw-fuss{margin-top:12px;font-size:11.5px;line-height:1.5;color:#f5edddb3}
@media(max-width:420px){.bowl-nw-kopf{grid-template-columns:1fr}.bowl-nw-kcal{border-right:0;padding-right:0;flex-direction:row;align-items:baseline;gap:8px}}
@media(prefers-reduced-motion:reduce){.bowl-balance-leiste span,.bowl-balance-skala span{transition:none}}
/* Die Spalte mit Bild, Zusammenstellung und Nährwerten bleibt stehen — ist sie höher als der
   Bildschirm, scrollt sie in sich, damit Tabelle und Balken erreichbar bleiben. */
@media(min-width:761px){.bowl-preview{max-height:calc(100vh - 150px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:4px}}
.bowl-nw-kopf{grid-template-columns:1fr;gap:12px}
.bowl-nw-kcal{flex-direction:row;align-items:baseline;gap:8px;border-right:0;padding-right:0}
.bowl-nw-makros strong{white-space:nowrap}
/* Eigene Menge: das Zahlenfeld steht sichtbar im dritten Knopf */
.bowl-portion-eigen span{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px 4px}
.bowl-portion.bowl-portion-eigen input[type=number]{position:static;opacity:1;width:4.2em;height:auto;min-height:30px;padding:3px 6px;border:1px solid #bca783;border-radius:8px;background:#fffdf7;font:inherit;font-weight:600;text-align:center;-moz-appearance:textfield}
.bowl-portion-eigen input[type=number]::-webkit-inner-spin-button,.bowl-portion-eigen input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.bowl-portion-eigen input[type=number]:focus{outline:2px solid #725422;outline-offset:1px}
.bowl-portion-eigen small{flex-basis:100%}
/* Flüssigkeit: keine Mengenwahl, die Menge steht im Preis */
[data-automatisch] .bowl-price{opacity:.8}
.bowl-portion.bowl-portion-eigen input[type=number]{width:3.3em;padding:3px 4px}.bowl-portion-eigen span{flex-wrap:wrap}.bowl-portion-eigen span>small{margin-top:2px}
.bowl-portion.bowl-portion-eigen>span{flex-direction:row}
.bowl-portion-eigen span>small{flex-basis:100%;text-align:center}

/* Prep my Meal vorbestellen */
.meal-liste{display:grid;gap:10px}
.meal-karte{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid #bca783;border-radius:14px;padding:14px 16px;background:#fffaf06e;transition:background .18s,border-color .18s}
.meal-karte.is-gewaehlt{background:linear-gradient(135deg,#f3e3c1,#e6cfa0);border-color:#806339}
.meal-text{min-width:0}.meal-text h3{margin:0;font-size:18px;letter-spacing:-.01em}.meal-text p{margin:4px 0 0;font-size:14px;color:#625946;line-height:1.45}
.meal-fakten{display:block;margin-top:6px;font-size:12px;color:#806339;letter-spacing:.02em}
.meal-rechts{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:0 0 auto}
.meal-preis{font-size:17px}
.meal-zaehler{display:flex;align-items:center;border:1px solid #bca783;border-radius:999px;overflow:hidden;background:#fffdf7}
.meal-zaehler button{width:36px;height:36px;border:0;background:transparent;font-size:18px;cursor:pointer;color:#3a352b}.meal-zaehler button:hover{background:#eeddbb}
.meal-zaehler input{width:2.6em;border:0;background:transparent;text-align:center;font:inherit;font-weight:700;-moz-appearance:textfield}
.meal-zaehler input::-webkit-inner-spin-button,.meal-zaehler input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.meal-laden{color:#625946}
.meal-page textarea{width:100%}
@media(max-width:520px){.meal-karte{flex-direction:column;align-items:stretch}.meal-rechts{flex-direction:row;justify-content:space-between;align-items:center}}

/* Eine Spalte: Übersicht → Auswahl → Analyse → Abschluss (auf dem Handy wie am Rechner) */
.breakfast-booking.bowl-booking{display:block;max-width:880px;margin-inline:auto}
.bowl-uebersicht{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(20px,4vw,44px);align-items:center;margin:0 0 40px;padding-bottom:36px;border-bottom:1px solid #b6a38166}
.bowl-uebersicht-bild{margin:0}.bowl-uebersicht-bild img{width:100%;height:auto;border-radius:18px;display:block;aspect-ratio:3/2;object-fit:cover}
.bowl-uebersicht-bild figcaption{margin-top:8px;font-size:13px;color:#625946}
.bowl-uebersicht-text h2{font-size:clamp(26px,3.4vw,34px);letter-spacing:-.025em;margin:4px 0 14px}
.bowl-schritte{list-style:none;counter-reset:s;margin:0;padding:0;display:grid;gap:10px}
.bowl-schritte li{counter-increment:s;display:grid;grid-template-columns:32px 1fr;column-gap:12px;align-items:start}
.bowl-schritte li::before{content:counter(s,decimal-leading-zero);grid-row:span 2;font-size:14px;font-weight:600;color:#806339;padding-top:2px}
.bowl-schritte b{font-weight:650}.bowl-schritte span{color:#625946;font-size:15px;line-height:1.45}
.bowl-uebersicht-hinweis{margin:16px 0 0;font-size:14px;color:#806339}
.bowl-analyse{margin:36px 0 34px}
.bowl-analyse>.eyebrow{margin:0 0 4px;color:#dfc68e}
@media(max-width:760px){.bowl-uebersicht{grid-template-columns:1fr;margin-bottom:28px;padding-bottom:26px}}
.bowl-summary.bowl-analyse>p.eyebrow{display:block;border:0;padding:0;margin:0 0 4px}
@media(min-width:761px){
 .bowl-analyse [data-bowl-summary]>p:not(.bowl-total){grid-template-columns:200px 1fr;column-gap:20px;align-items:baseline;padding-top:9px;margin-top:9px}
 .bowl-analyse [data-bowl-summary]>p.bowl-total{grid-template-columns:200px 1fr;column-gap:20px}
}
@media(max-width:760px){.bowl-analyse [data-bowl-summary]>p{grid-template-columns:118px 1fr;column-gap:12px;align-items:baseline;padding-top:9px;margin-top:9px;font-size:15px}}
.bestell-hinweis{display:block;margin-top:6px;font-size:13px;line-height:1.45;color:#625946;font-weight:400}

/* Die Supplement Area verwendet dieselbe dunkle Karte wie das Frühstück. */
.extras-grid .extra-supplements.breakfast-feature{background:radial-gradient(ellipse at top right,#8b744033,transparent 65%),linear-gradient(135deg,#36393d,#1c1e21);border-color:#bda477;color:#f7efdf}
.extras-grid .extra-supplements figure{position:relative;overflow:hidden;padding:0;background:#292c2d}
.extras-grid .extra-supplements figure img{object-fit:cover;object-position:36% 45%;width:100%;height:100%;max-height:none;aspect-ratio:auto}
.extras-grid .extra-supplements .button{background:#d7bd83;color:#202225;border-color:#d7bd83;box-shadow:0 5px 16px #0002}
.extras-grid .extra-supplements .button-xxl{display:inline-flex;align-items:center;gap:.6em}
.extras-grid .extra-supplements .button-xxl-logo{display:block;height:1.6em;width:auto;flex:none;margin:-.2em 0}
@media(max-width:560px){.extras-grid .extra-supplements figure img{height:auto;max-height:none;aspect-ratio:3/2;object-position:center}.extras-grid .extra-supplements figure{padding:0}}

/* Bowl seit 25.10.2026: Schritt für Schritt als Bildkarten — Geschmack, Portion, Topping, Obst,
   Preis, hier essen oder mitnehmen. Texte brechen um, nichts wird abgeschnitten. */
.bowl-schritte-form{display:grid;gap:28px}
.bowl-karten{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.bowl-karten.is-geschmack,.bowl-karten.is-verzehr{grid-template-columns:repeat(2,minmax(0,1fr))}
.breakfast-booking .bowl-karte{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid #bca783;border-radius:16px;overflow:hidden;background:#fffaf0;cursor:pointer;font-weight:500;line-height:1.4;transition:background .18s,border-color .18s,box-shadow .18s}
.breakfast-booking .bowl-karte>input{position:absolute;top:0;left:0;opacity:0;width:1px;height:1px;min-height:0;padding:0;margin:0}
.bowl-karte-bild{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#efe3cc}
.bowl-karte-bild.is-packung{object-position:50% 50%;background:radial-gradient(circle at 50% 42%,#f8f1e3,#ebdcc0 78%)}
.bowl-karte-bild.is-leer{background:#efe3cc}
.bowl-karte-text{display:grid;gap:4px;padding:12px 14px 14px;min-width:0}
.bowl-karte-text strong{font-size:18px;line-height:1.3;font-weight:650;overflow-wrap:anywhere}
.bowl-karte-text small{font-size:14px;line-height:1.45;color:#625946;font-weight:400;white-space:pre-line;overflow-wrap:anywhere}
.bowl-karte-preis{font-size:15px;font-weight:650;color:#3a352b}
.breakfast-booking .bowl-karte:has(input:checked){border-color:#806339;box-shadow:inset 0 0 0 2px #806339;background:linear-gradient(135deg,#f4e8cb,#ead6ab)}
.breakfast-booking .bowl-karte:has(input:checked)::after{content:'✓';position:absolute;top:10px;right:10px;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#806339;color:#fffaf0;font-size:16px;font-weight:700;box-shadow:0 2px 8px #3a2c1440}
.breakfast-booking .bowl-karte:has(input:focus-visible){outline:2px solid #725422;outline-offset:3px}
.bowl-karte.is-geschmack .bowl-karte-text strong{font-size:21px}
.bowl-karte.is-portion .bowl-karte-text,.bowl-karte.is-verzehr .bowl-karte-text{padding:18px 16px;padding-right:46px}
.bowl-karte.is-portion .bowl-karte-preis{font-size:17px}
@media(hover:hover){.breakfast-booking .bowl-karte:hover{border-color:#8e713a;background:#f6ecd6}}
@media(prefers-reduced-motion:reduce){.breakfast-booking .bowl-karte{transition:none}}
@media(max-width:620px){.bowl-karten,.bowl-karten.is-geschmack{grid-template-columns:repeat(2,minmax(0,1fr))}.bowl-karten.is-portionen,.bowl-karten.is-verzehr{grid-template-columns:1fr}.bowl-karte-text strong{font-size:17px}.bowl-karte.is-geschmack .bowl-karte-text strong{font-size:19px}}
@media(max-width:340px){.bowl-karten,.bowl-karten.is-geschmack{grid-template-columns:1fr}}
/* Preis, Allergene und Zubereitung in der dunklen Karte */
.bowl-summary h2>span{display:inline-block;font-size:16px;color:#dfc68e;margin-right:10px;letter-spacing:0}
.bowl-analyse [data-bowl-summary]>p.bowl-zubereitung{display:block;font-size:14px;color:#f5edddb3}
.bowl-allergene{margin-top:22px;padding-top:18px;border-top:1px solid #dfc68e55}
.bowl-allergene h3{margin:0 0 10px;font-size:19px;letter-spacing:-.01em;color:#f5eddd}
.bowl-summary .bowl-allergene p{display:block;border:0;padding:0;margin:0 0 6px;font-size:15px;line-height:1.5;color:#f5eddd;overflow-wrap:anywhere}
.bowl-summary .bowl-allergene .bowl-allergene-hinweis{font-size:14px;color:#f5edddb3}
.bowl-zutatenliste{margin-top:10px;border:1px solid #dfc68e33;border-radius:12px;padding:10px 12px;background:#ffffff08}
.bowl-zutatenliste summary{cursor:pointer;font-size:14px;font-weight:600;color:#e5c895;overflow-wrap:anywhere}
.bowl-summary .bowl-zutatenliste p{margin:8px 0 0;font-size:13px;line-height:1.55;color:#f5edddd9}

/* signature.css */
/* Puzzle Gym · Feinschliff der Startseite, September 2026.
   Bewusst separat: Mitglieder- und Betreiberoberflächen bleiben eigenständig. */
.home-page{--signature-ease:cubic-bezier(.2,.7,.25,1)}
.home-page .reading-progress{position:fixed;inset:0 0 auto;height:3px;z-index:110;pointer-events:none;background:transparent}
.reading-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#8a6c3d,#d4b775,#8a6c3d)}
.home-page .reading-progress[hidden]{display:none}
.home-page .site-header{border-color:#c5b18c99;box-shadow:0 8px 32px #46371f0a,inset 0 1px #fff8e0a6}
.home-page .site-header.is-scrolled{background:#efe5d3f5;box-shadow:0 10px 32px #35271517,inset 0 1px #fff9ed}
.home-page .main-nav a[aria-current=location]:after{transform:scaleX(1)}
/* Ein geprägtes Markenzeichen statt zusätzlicher Bilder im Einstieg. */
.hero-puzzle-outline{position:absolute;width:clamp(310px,39vw,680px);height:auto;left:-14%;top:6%;fill:none;stroke:#947541;stroke-width:.13;opacity:.27;transform:rotate(-18deg);pointer-events:none}
.hero-margin-note{position:absolute;left:calc(var(--gutter) + 28px);top:46%;display:grid;gap:8px;color:#796744;font-family:'Cormorant Garamond',Georgia,serif;font-size:24px;font-style:italic;line-height:1.2}
.home-page .boutique-hero .hero-atmosphere{background:radial-gradient(ellipse at 51% 37%,#faf1dc 0%,#ebdbbc 51%,#ddc8a6 100%)}
.home-page .boutique-hero .hero-light-trace{border-color:#a5864838;box-shadow:inset 0 0 75px #fff5d526}
.home-page .boutique-hero .hero-divider{width:min(300px,52%)}
.home-page .boutique-hero .hero-actions .button{box-shadow:inset 0 1px #fff9e8,0 8px 22px #70542919}
.home-page .hero-scroll-cue>span:last-child{display:grid;place-items:center;width:34px;height:44px;border:1px solid #ac916666;border-radius:20px}
/* Dünne Kapitelzeilen führen durch die Seite. */
.home-page .section-kicker{display:flex;align-items:center;gap:14px;font:600 16px/1.5 Manrope,sans-serif;color:#76603d;margin:0 0 22px;letter-spacing:.025em}
.section-kicker>span:not(:empty){display:grid;place-items:center;min-width:32px;height:32px;border:1px solid #aa8a555c;border-radius:50%;font-size:14px;font-variant-numeric:tabular-nums;font-weight:500}
.section-kicker>span:empty{display:none}
.section-kicker:after{content:'';width:64px;height:1px;background:linear-gradient(90deg,#a7895580,transparent)}
.home-page .section-kicker:after{background:linear-gradient(90deg,#a7895580,transparent)}
.home-page .areas>.area-scene>.section-kicker{margin-inline:var(--gutter);margin-bottom:16px}
.home-page .areas{padding-top:44px;background:linear-gradient(150deg,#eee2c9,#e4d1ae)}
.home-page .pricing-section{background:radial-gradient(ellipse at 80% 0,#f7ecd6,transparent 60%),#e8dbc2}
.home-page .center-heading{margin-bottom:32px}
.home-page .areas .section-heading>span{color:#675c47}
.home-page .section-title h2{text-wrap:balance}
/* Die Galerie liest sich als Bildstrecke mit sieben klaren Stationen. */
.home-page .area-slide{height:auto;min-height:clamp(340px,41vw,510px);align-items:stretch}
.home-page .area-slide-photo{position:relative;height:auto;min-height:100%;overflow:hidden}
.home-page .area-slide-photo img{position:absolute;inset:0;width:100%;height:100%;min-height:0;object-fit:cover}
.home-page .area-slide-copy{justify-content:center;padding:clamp(26px,3.4vw,54px);background:radial-gradient(ellipse at 110% 0,#b3945140,transparent 62%),#292c2b}
.home-page .area-editorial-number{display:flex;align-items:baseline;gap:12px;margin:0 0 26px;color:#d0b984;line-height:1;font-variant-numeric:lining-nums tabular-nums}
.area-editorial-number>span{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(54px,6vw,86px);font-weight:400;font-style:italic;line-height:.9}
.area-editorial-number>small{font-size:16px;color:#b5ad9c;font-weight:400}
.home-page .area-slide-copy h3{font-size:clamp(30px,3vw,46px);line-height:1.1}
.home-page .area-slide-tag{align-self:flex-start;background:transparent;border:0;border-left:2px solid #bda270;border-radius:0;padding:0 0 0 12px;color:#e1d0a9;line-height:1.5}
.home-page .area-carousel-footer{background:#eaddc5;border-color:#beaa855c;padding-block:14px}
.home-page .area-pickers{grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;background:#eaddc5;border-top:0;padding:0 var(--gutter) 24px}
.home-page .area-picker{position:relative;display:grid;grid-template-columns:1fr;align-content:start;gap:10px;padding:8px 8px 14px;min-height:0;border:1px solid transparent;border-radius:10px;background:transparent;text-align:left;color:#655945;font-size:16px;font-weight:500;line-height:1.35;box-shadow:none}
.home-page .area-picker:before{display:none}
.home-page .area-picker:after{height:2px;left:10px;right:10px;bottom:4px;background:#9b7841}
.home-page .area-picker img{display:block;width:100%;height:76px;object-fit:cover;border-radius:5px;opacity:.7;filter:saturate(.7);transition:opacity .25s,filter .25s}
.home-page .area-picker>span:not(.area-picker-index){padding-inline:2px}
.home-page .area-picker .area-picker-index{position:absolute;top:13px;left:13px;padding:3px 6px;border-radius:4px;background:#232820cc;color:#f9eed8;font-size:12px;line-height:1.3;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.home-page .area-picker[aria-current=true]{background:#fbf3e0;border-color:#b29a7280;color:#352d22;box-shadow:0 6px 18px #5e47200a}
.home-page .area-picker[aria-current=true] img{opacity:1;filter:none}
/* Lichtkanten, Metall und ruhiger Abstand. */
.home-page .price-card{border-radius:22px;box-shadow:0 16px 40px -24px #392d285c}
.home-page .plan-visual{border-bottom:1px solid #89785730;position:relative}
.home-page .price-card .plan-details{padding-top:28px}
.home-page .price-card .button{border-radius:10px;min-height:54px}
.home-page .opening-offer-compact{border-left:3px solid #9b7a3d;background:linear-gradient(115deg,#f4e8cc,#efe2c7);border-radius:4px 12px 12px 4px}
.home-page .extra-card{border-radius:22px;box-shadow:0 10px 34px -24px #49392050}
.home-page .course-tile{border:1px solid #bb9f734a;border-radius:20px}
.home-page .faq-section{background:linear-gradient(135deg,#eee7d9,#e0d8c9);border-block-color:#c3b59670;gap:clamp(32px,6vw,96px)}
.home-page .faq-section .accordion{counter-reset:questions}
.home-page .faq-section .accordion details{counter-increment:questions;border:0;border-bottom:1px solid #b9a88870;border-radius:0;background:transparent}
.home-page .faq-section .accordion details:first-child{border-top:1px solid #b9a88870}
.home-page .faq-section .accordion summary{gap:18px;padding:24px 14px;min-height:78px;font-weight:500;line-height:1.5;transition:background .2s,color .2s}
.home-page .faq-section .accordion summary:before{content:counter(questions,decimal-leading-zero);font-size:14px;font-weight:500;font-variant-numeric:tabular-nums;color:#7a6544;flex:0 0 24px;align-self:center}
.home-page .faq-section .accordion summary>span{margin-left:auto;flex:0 0 32px;height:32px;border:1px solid #a9906259;border-radius:50%;display:grid;place-items:center;background:transparent;font-weight:400;font-size:23px;line-height:1}
.home-page .faq-section .accordion details[open]{background:#f6eddb;border-color:#b59b68}
.home-page .faq-section .accordion details[open] summary{color:#70532e}
.home-page .faq-section .accordion p{padding:0 64px 26px 56px;line-height:1.8}
.home-page .premium-footer{border-top:1px solid #a78b5866}
.home-page .premium-footer .back-top{border-color:#af96637a;box-shadow:inset 0 0 0 5px #ffffff06}
@media(hover:hover) and (pointer:fine){
 .home-page .area-picker:hover{background:#f5ead3;border-color:#b7a08055}
 .home-page .area-picker:hover img{opacity:1;filter:none}
 .home-page .faq-section .accordion summary:hover{background:#fff4dd70}
 .home-page .course-tile:hover>img,.home-page .extra-card:hover .extra-photo img{transform:scale(1.035)}
}
@media(prefers-reduced-motion:no-preference){
 .home-page .area-slide.is-current .area-editorial-number{animation:signature-rise .6s var(--signature-ease) both}
 .home-page .area-slide.is-current .area-slide-copy h3{animation:signature-rise .65s .07s var(--signature-ease) both}
 .home-page .area-slide.is-current .area-slide-copy>p:not(.area-editorial-number){animation:signature-rise .65s .12s var(--signature-ease) both}
 .home-page .area-slide.is-current .area-slide-tag{animation:signature-rise .65s .17s var(--signature-ease) both}
 .home-page .accordion summary>span{transition:transform .3s var(--signature-ease),background .3s}
 .home-page .button:active{transform:translateY(1px);transition-duration:80ms}
 .home-page .hero-puzzle-outline{animation:signature-etch 1.8s .2s ease-out both}
 .home-page .hero-margin-note{animation:signature-rise .9s .5s both}
 /* Verkürzte Titelsequenz: gleiche Dramaturgie, Aktionen früher erreichbar. */
 .home-page .boutique-hero.is-cinema-entering .hero-scene-areas{animation-duration:1100ms;animation-delay:0ms}
 .home-page .boutique-hero.is-cinema-entering .hero-scene-experience .hero-shine{animation-duration:750ms,1000ms;animation-delay:650ms,1300ms}
 .home-page .boutique-hero.is-cinema-entering .hero-scene-experience:after{animation-duration:750ms;animation-delay:650ms}
 .home-page .boutique-hero.is-cinema-entering .hero-divider{animation-delay:850ms;animation-duration:600ms}
 .home-page .boutique-hero.is-cinema-entering .hero-brand-logo{animation-delay:1000ms;animation-duration:650ms}
 .home-page .boutique-hero.is-cinema-entering .hero-bloom{animation-delay:900ms;animation-duration:1000ms}
 .home-page .boutique-hero.is-cinema-entering .hero-credit{animation-delay:1150ms;animation-duration:650ms}
 .home-page .boutique-hero.is-cinema-entering .hero-credit:before,.home-page .boutique-hero.is-cinema-entering .hero-credit:after{animation-delay:1200ms}
 .home-page .boutique-hero.is-cinema-entering .hero-actions{animation-delay:1250ms;animation-duration:650ms}
 .home-page .boutique-hero.is-cinema-entering :is(.brand-hero-bottom,.hero-scroll-cue){animation-delay:1450ms;animation-duration:600ms}
}
@keyframes signature-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes signature-etch{from{opacity:0;stroke-dasharray:360;stroke-dashoffset:360}to{opacity:.27;stroke-dasharray:360;stroke-dashoffset:0}}
@media(max-width:1100px){.hero-margin-note{display:none}.home-page .area-pickers{gap:6px}.home-page .area-picker img{height:60px}.home-page .area-picker{padding:5px 5px 12px;font-size:16px}.home-page .area-picker .area-picker-index{top:9px;left:9px}}
@media(max-width:760px){
 .hero-puzzle-outline{width:330px;left:-210px;top:14%;opacity:.18}
 .home-page .section-kicker{font-size:16px;gap:10px;margin-bottom:16px;letter-spacing:0}
 .home-page .section-kicker:after{width:30px;flex-shrink:1}
 .home-page .areas{padding-top:28px}
 .home-page .area-slide{min-height:0;grid-template-columns:minmax(0,1fr)}
 .home-page .area-slide-photo{height:clamp(230px,62vw,390px);min-height:0}
 .home-page .area-slide-copy{padding:26px var(--gutter);min-height:240px}
 .home-page .area-editorial-number{margin-bottom:18px;gap:10px}
 .area-editorial-number>span{font-size:46px}
 .home-page .area-slide-copy h3{font-size:32px}
 .home-page .area-slide-tag{margin-top:18px}
 .home-page .area-pickers{display:none}
 .home-page .area-carousel-footer{padding-block:12px}
 .home-page .faq-section .accordion summary{padding:20px 0;gap:12px;font-size:17px}
 .home-page .faq-section .accordion summary:before{flex-basis:20px;font-size:13px}
 .home-page .faq-section .accordion summary>span{flex-basis:28px;height:28px}
 .home-page .faq-section .accordion p{padding:0 16px 24px 32px;font-size:17px}
}
@media(prefers-reduced-motion:reduce){
 .home-page{scroll-behavior:auto}
 .home-page *, .home-page *:before,.home-page *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .home-page .hero-cinema-pending,.hero-cinema-pending .home-page .boutique-hero :is(.hero-scene,.hero-divider,.hero-actions,.brand-hero-bottom,.hero-scroll-cue){opacity:1}
 .home-page .area-picker img{transition:none}
}
@media(forced-colors:active){
 .hero-puzzle-outline,.hero-margin-note,.reading-progress{display:none}
 .home-page .area-picker[aria-current=true]{border:2px solid Highlight}
 .home-page .section-kicker,.home-page .area-editorial-number,.home-page .area-editorial-number small{color:CanvasText}
 .home-page .faq-section .accordion details{border-bottom:1px solid CanvasText}
}

/* Die Supplement Area verbindet Studiofoto und hochwertige Shop-Einladung. */
.home-page .extra-supplements.breakfast-feature{position:relative;overflow:hidden;border:1px solid #b59b686b;border-radius:22px;background:radial-gradient(ellipse at 100% 0,#a4834630,transparent 65%),#292e2b;box-shadow:0 16px 40px -28px #25291e80}
.home-page .extra-supplements figure{position:relative}
.home-page .extra-supplements figure:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#1e2923d9);pointer-events:none}
.home-page .extra-supplements .supplement-caption{position:absolute;inset:auto 26px 22px;z-index:1;display:flex;flex-direction:column;gap:4px;margin:0;padding:0;background:none;text-align:left;font-size:16px;color:#f4ead7;line-height:1.5}
.supplement-caption>span:last-child{font-size:13px;color:#d0c5ae}
.home-page .extra-supplements .breakfast-copy{padding:clamp(24px,3vw,42px)}
.home-page .extra-supplements .eyebrow{font-size:13px;letter-spacing:.07em;color:#d3bd8f}
.home-page .extra-supplements h3{font-weight:500;font-size:clamp(32px,3.2vw,48px);letter-spacing:-.035em;line-height:1.1}
.home-page .extra-supplements h3 em{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.13em;color:#dbc18b;font-weight:400;line-height:1.2}
.supplement-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.supplement-tags span{padding:6px 12px;border:1px solid #bea4704d;border-radius:999px;font-size:14px;line-height:1.5;color:#deceaa}
.home-page .extra-supplements .button{background:linear-gradient(115deg,#e0c38c,#efdfb5);border-color:#bea371;box-shadow:inset 0 1px #fff3d0;min-height:52px}

/* Personal Training und InBody: gleicher Kartenaufbau wie Frühstück und Supplement Area
   (Foto links in voller Höhe, auf dem Handy oben in voller Breite) — aber hell. */
.home-page .extras-grid .breakfast-feature.extra-hell{border:1px solid #bfae91;border-radius:22px;background:radial-gradient(ellipse at 100% 0,#d8bf8a33,transparent 62%),var(--paper,#fbf6ea);color:#26251f;box-shadow:0 16px 40px -28px #49392066}
.home-page .extra-hell figure{position:relative;overflow:hidden;background:#e7dcc6}
.home-page .extras-grid .extra-hell figure img{width:100%;height:100%;object-fit:cover;transition:transform 650ms ease}
.home-page .extras-grid .extra-coaching figure img{object-position:50% 22%}
.home-page .extras-grid .extra-inbody figure img{object-position:42% 45%}
.home-page .extra-hell .breakfast-copy{padding:clamp(24px,3vw,42px)}
.home-page .extra-hell .eyebrow{font-size:13px;letter-spacing:.07em;color:#8a6c3d}
.home-page .extras-grid .extra-hell h3{font-weight:500;font-size:clamp(32px,3.2vw,48px);letter-spacing:-.035em;line-height:1.1;color:#26251f}
.home-page .extra-hell h3 em{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.13em;color:#9b7a3d;font-weight:400;line-height:1.2}
.home-page .extras-grid .extra-hell .breakfast-copy>p:not(.eyebrow){color:#5c5340}
.home-page .extra-hell .extra-prices strong{color:#26251f}
.home-page .extra-hell .text-link{font-size:16px;gap:12px;line-height:1.4;color:#5c4323}
@media(hover:hover){.home-page .extra-hell:hover figure img{transform:scale(1.035)}}
@media(max-width:560px){
 .home-page .extras-grid .extra-hell figure img{height:auto;aspect-ratio:4/3}
 .home-page .extras-grid .extra-coaching figure img{aspect-ratio:4/5;object-position:50% 20%}
}
@media(prefers-reduced-motion:reduce){.home-page .extra-hell figure img{transition:none}.home-page .extra-hell:hover figure img{transform:none}}
/* InBody ist ein Querformat: Foto über die ganze Kartenbreite oben, damit beide Personen
   und das Gerät zu sehen sind (ein schmaler Bildstreifen schneidet es zu stark ab). */
.home-page .extras-grid .extra-inbody.extra-hell{grid-template-columns:1fr;grid-template-rows:auto 1fr}
.home-page .extras-grid .extra-inbody figure img{height:auto;aspect-ratio:16/9;object-position:50% 40%}
.home-page .extras-grid .extra-inbody .breakfast-copy{align-self:start}
/* Frühstück: Überschrift wie bei der Supplement Area — Schreibschrift gut lesbar in Gold. */
.home-page .extra-breakfast h3{font-weight:500;font-size:clamp(32px,3.2vw,48px);letter-spacing:-.035em;line-height:1.1}
.home-page .extra-breakfast h3 em{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.13em;color:#dbc18b;font-weight:400;line-height:1.2;font-style:italic}
.home-page .extra-breakfast .eyebrow{font-size:13px;letter-spacing:.07em;color:#d3bd8f}
.home-page .extra-hell .extra-note{display:block;margin:6px 0 14px}.home-page .extra-hell .text-link{display:inline-flex;align-items:center}
/* Personal Training wie InBody: Foto über die ganze Kartenbreite oben, Text darunter. */
.home-page .extras-grid .extra-coaching.extra-hell{grid-template-columns:1fr;grid-template-rows:auto 1fr}
.home-page .extras-grid .extra-coaching figure img{height:auto;aspect-ratio:16/9;object-position:50% 28%}
.home-page .extras-grid .extra-coaching .breakfast-copy{align-self:start}
@media(max-width:560px){.home-page .extras-grid .extra-coaching figure img{aspect-ratio:4/3;object-position:50% 25%}}
/* Zusatzleistungen: oben die drei Vorbestellungen nebeneinander (Frühstück, Supplement Area,
   Prep my Meal), darunter Personal Training und InBody. Sechs Spalten, damit beide Reihen
   die volle Breite füllen. Oben steht das Foto über dem Text, sonst wird die Spalte zu schmal. */
@media(min-width:901px){
 .home-page .extras-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
 .home-page .extras-grid>.extra-breakfast,.home-page .extras-grid>.extra-supplements,.home-page .extras-grid>.extra-meal{grid-column:span 2;grid-template-columns:1fr;grid-template-rows:auto 1fr}
 .home-page .extras-grid>.extra-coaching,.home-page .extras-grid>.extra-inbody{grid-column:span 3}
 /* Prep my Meal vorerst ausgeblendet: dann teilen sich Frühstück und Supplement Area die obere Reihe. */
 .home-page .extras-grid:not(:has(>.extra-meal))>:is(.extra-breakfast,.extra-supplements){grid-column:span 3}
 .home-page .extras-grid>.extra-breakfast figure img,.home-page .extras-grid>.extra-supplements figure img{height:auto;aspect-ratio:16/10;max-height:none}
 .home-page .extras-grid>:is(.extra-breakfast,.extra-supplements,.extra-meal) .breakfast-copy{align-self:stretch;display:flex;flex-direction:column;align-items:flex-start;padding:clamp(22px,2.2vw,32px)}
 /* Knöpfe der drei Vorbestellungen sitzen unten auf einer Linie, egal wie lang der Text ist. */
 .home-page .extras-grid>:is(.extra-breakfast,.extra-supplements,.extra-meal) .breakfast-copy>.button{margin-top:auto}
 .home-page .extras-grid>:is(.extra-breakfast,.extra-supplements,.extra-meal) h3{font-size:clamp(28px,2.4vw,38px)}
}
/* Prep my Meal: dunkle Karte wie Frühstück und Supplement Area, Packung statt Foto. */
.home-page .extras-grid .extra-meal.breakfast-feature{position:relative;overflow:hidden;border:1px solid #b59b686b;border-radius:22px;background:radial-gradient(ellipse at 100% 0,#a4834630,transparent 65%),#2a2c2f;box-shadow:0 16px 40px -28px #25291e80}
.home-page .extra-meal .meal-figure{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:16/10;overflow:hidden;background:radial-gradient(60% 75% at 50% 60%,#d8bf8a2e,transparent 70%),#232528}
.home-page .extras-grid .extra-meal .meal-figure img{position:relative;width:auto;height:86%;min-height:0;max-width:70%;object-fit:contain;transform:rotate(-7deg);filter:drop-shadow(12px 20px 22px #0006);transition:transform 650ms ease}
.home-page .extra-meal .meal-wordmark{top:18px;right:22px;font-size:22px}
.home-page .extra-meal .eyebrow{font-size:13px;letter-spacing:.07em;color:#d3bd8f}
.home-page .extra-meal h3{font-weight:500;font-size:clamp(32px,3.2vw,48px);letter-spacing:-.035em;line-height:1.1}
.home-page .extra-meal h3 em{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.13em;color:#dbc18b;font-weight:400;line-height:1.2;font-style:italic}
.home-page .extra-meal .button{background:linear-gradient(115deg,#e0c38c,#efdfb5);border-color:#bea371;color:#202225;box-shadow:inset 0 1px #fff3d0;min-height:52px}
@media(hover:hover){.home-page .extra-meal:hover .meal-figure img{transform:rotate(-3deg) translateY(-4px)}}
@media(max-width:900px){.home-page .extras-grid .extra-meal.breakfast-feature{grid-template-columns:1fr;grid-template-rows:auto 1fr}}
@media(prefers-reduced-motion:reduce){.home-page .extras-grid .extra-meal .meal-figure img{transition:none}.home-page .extra-meal:hover .meal-figure img{transform:rotate(-7deg)}}
/* Kurse starten erst im Dezember: kleiner Hinweis unter dem Tag der beiden Kurs-Areas. */
.home-page .area-slide-soon{align-self:flex-start;margin-top:10px;padding-left:14px;color:#bda270;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;line-height:1.4}
@media (prefers-reduced-motion:no-preference){.home-page .area-slide.is-current .area-slide-soon{animation:signature-rise .65s .22s var(--signature-ease) both}}
.home-page .course-tile .course-soon{display:block;margin-top:10px;color:#e5c895;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;line-height:1.4}
/* Personal Training und InBody kompakter (Dominik, 09.10.2026: „zu groß platziert“) — flacheres Foto,
   Überschrift kleiner und auf dem Desktop in einer Zeile, Text und Abstände enger. */
.home-page .extras-grid .extra-coaching figure img,.home-page .extras-grid .extra-inbody figure img{aspect-ratio:2/1}
.home-page .extras-grid .extra-coaching figure img{object-position:50% 24%}
.home-page .extras-grid .extra-inbody figure img{object-position:50% 26%}
.home-page .extras-grid :is(.extra-coaching,.extra-inbody) .breakfast-copy{padding:clamp(20px,2vw,28px)}
.home-page .extras-grid :is(.extra-coaching,.extra-inbody) h3{font-size:clamp(26px,2.1vw,34px);margin-bottom:10px}
.home-page .extras-grid :is(.extra-coaching,.extra-inbody) .breakfast-copy>p:not(.eyebrow){font-size:15px;line-height:1.55;margin-bottom:10px}
.home-page .extras-grid :is(.extra-coaching,.extra-inbody) .eyebrow{margin-bottom:8px}
.home-page .extras-grid :is(.extra-coaching,.extra-inbody) .text-link{font-size:15px}
@media(min-width:901px){.home-page .extras-grid :is(.extra-coaching,.extra-inbody) h3 br{display:none}.home-page .extras-grid :is(.extra-coaching,.extra-inbody) h3 em{margin-left:.18em}}
@media(max-width:560px){
 .home-page .extras-grid .extra-coaching figure img{aspect-ratio:16/10;object-position:50% 22%}
 .home-page .extras-grid .extra-inbody figure img{aspect-ratio:16/10}
 .home-page .extras-grid :is(.extra-coaching,.extra-inbody) h3{font-size:30px}
}

/* Team (26.10.2026): Platzhalter, bis die Vorstellung kommt. */
.home-page .team-section{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:clamp(20px,6vw,96px);padding-block:clamp(40px,6vw,72px)}
.home-page .team-section h2{margin:0}
.home-page .team-section>p{margin:0;max-width:520px;font-size:clamp(18px,2vw,22px);line-height:1.5;color:#4e4d46}
/* Tarife: „Nur für kurze Zeit“ (31.10.2026) — im Eröffnungsangebot als ruhige Zeile mit ablaufender Goldlinie,
   in Basic und All-In direkt unter dem Preis. Kein Abzeichen, nur Typografie. */
.home-page .opening-offer-compact{grid-template-columns:auto minmax(0,1fr) auto}
.home-page .opening-offer-compact .nur-kurz{display:grid;justify-items:end;gap:9px;margin:0;padding-left:32px;border-left:1px solid #b99f68;color:#5a4214}
.home-page .opening-offer-compact .nur-kurz-text{font-size:16px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.3;white-space:nowrap}
.home-page .opening-offer-compact .nur-kurz-linie{display:block;width:100%;min-width:120px;height:3px;border-radius:2px;background:linear-gradient(90deg,#9b7a3d,#d9bd7c);transform-origin:left center;animation:nur-kurz-laeuft 5.5s cubic-bezier(.45,0,.2,1) infinite}
@keyframes nur-kurz-laeuft{0%{transform:scaleX(1);opacity:1}70%{transform:scaleX(.18);opacity:1}85%{transform:scaleX(.18);opacity:0}100%{transform:scaleX(1);opacity:0}}
.home-page .price .price-limited{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:12px;padding-top:11px;border-top:1px solid #dccba3;color:#5f4618;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.35}
.home-page .price .price-limited::before{content:"";flex:0 0 auto;width:7px;height:7px;background:#a8853f;transform:rotate(45deg)}
@media(max-width:760px){
 .home-page .opening-offer-compact{grid-template-columns:1fr}
 .home-page .opening-offer-compact .nur-kurz{justify-items:start;padding:10px 0 0;border-left:0;border-top:1px solid #cdb98c}
 .home-page .opening-offer-compact .nur-kurz-text{white-space:normal}
 .home-page .price .price-limited{display:block;text-align:center;font-size:13px;letter-spacing:.06em}
 .home-page .price .price-limited::before{display:inline-block;margin:0 8px 2px 0;vertical-align:middle}
}
@media(prefers-reduced-motion:reduce){.home-page .opening-offer-compact .nur-kurz-linie{animation:none;transform:scaleX(.5)}}


/* running-club.css */
/* Running Club auf der Startseite (running-club.js): dunkle Fläche wie die Anthrazit-Elemente, Logo öffnet die Anmeldung. */
.running-section{position:relative;background:var(--anth-edge,none),var(--anth-surface,linear-gradient(145deg,#303338,#18191c));background-color:var(--anth-base,#212326);color:#f1ede3}
.running-inner{max-width:1392px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:center;padding:clamp(56px,8vw,104px) clamp(22px,5vw,72px)}
.running-logo{appearance:none;display:grid;gap:14px;justify-items:center;width:100%;padding:clamp(18px,3vw,32px);border:1px solid #e0bc7e33;border-radius:28px;background:radial-gradient(90% 120% at 50% 0%,#e0bc7e1a,transparent 70%);color:#e5d7b8;font:inherit;cursor:pointer;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}
.running-logo img{display:block;width:100%;height:auto}
.running-logo span{font-size:14px;font-weight:600;letter-spacing:.04em}
@media (hover:hover) and (pointer:fine){.running-logo:hover{transform:translateY(-4px);border-color:#e0bc7e80;box-shadow:0 24px 60px -30px #e0bc7e66}}
.running-logo:focus-visible{outline:2px solid #e5d7b8;outline-offset:6px}
.running-text h2{margin:0 0 16px;color:#fff;font-size:clamp(32px,3.4vw,48px);line-height:1.1;font-weight:500}
.running-text h2 em{color:#e0bc7e}
.running-text>p{margin:0 0 8px;color:#d6d0c3;font-size:17px;line-height:1.7;max-width:560px}
.running-fakten{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0;padding:0;list-style:none;max-width:560px}
.running-fakten li{padding:12px 14px;border:1px solid #ffffff1f;border-radius:16px;background:#ffffff0a;font-size:14px;color:#c9c2b2}
.running-fakten strong{display:block;margin-bottom:2px;color:#fff;font-size:16px}
.running-naechster{margin:0 0 20px!important;color:#e5d7b8!important;font-weight:600;font-size:15px!important}
.running-dialog{width:min(560px,calc(100% - 28px));max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:26px;background:#fbfaf7;color:#212521;box-shadow:0 40px 100px -30px #000c;overflow:auto}
.running-dialog::backdrop{background:#16171acc;backdrop-filter:blur(3px)}
.running-dialog-kopf{position:relative;padding:22px 24px 18px;background:#111;text-align:center}
.running-dialog-kopf img{display:block;width:min(320px,80%);height:auto;margin:0 auto}
.running-schliessen{position:absolute;top:12px;right:12px;width:38px;height:38px;border:0;border-radius:50%;background:#ffffff1a;color:#fff;font-size:20px;line-height:1;cursor:pointer}
.running-schliessen:focus-visible{outline:2px solid #e5d7b8}
.running-dialog form,.running-erfolg{display:grid;gap:14px;padding:22px 24px 26px}
.running-dialog h3{margin:0;font-size:24px;line-height:1.2}
.running-dialog .running-klein{margin:0;color:#626960;font-size:14px;line-height:1.6}
.running-dialog label{display:grid;gap:6px;font-size:14px;font-weight:600;color:#212521}
.running-dialog input,.running-dialog select,.running-dialog textarea{min-height:48px;padding:10px 12px;border:1px solid #cfd2c8;border-radius:10px;background:#fff;font:inherit;font-size:16px;color:#212521}
.running-dialog textarea{min-height:76px}
.running-dialog input:focus-visible,.running-dialog select:focus-visible,.running-dialog textarea:focus-visible{outline:2px solid #b59b68;outline-offset:1px}
.running-zwei{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.running-check{display:flex!important;gap:10px;align-items:flex-start;font-weight:500!important;line-height:1.5}
.running-check input{width:20px;min-height:20px;height:20px;margin-top:2px;flex:none}
.running-check a{color:#756039}
.running-falle{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.running-meldung{margin:0;font-size:14px}.running-meldung.is-fehler{color:#a52c20;font-weight:600}
.running-erfolg{text-align:center}
.running-erfolg strong{display:block;font-size:18px}
@media(max-width:860px){.running-inner{grid-template-columns:1fr}.running-fakten{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.running-zwei{grid-template-columns:1fr}.running-fakten{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.running-logo{transition:none}.running-logo:hover{transform:none}}
.running-erfolg .button{justify-content:center;text-align:center}
/* Die nächsten Läufe mit Ort und Notiz (Website) */
.running-laeufe{display:grid;gap:8px;margin:0 0 22px;padding:0;list-style:none;max-width:560px}
.running-lauf{display:grid;gap:3px;padding:12px 14px;border:1px solid #ffffff1f;border-radius:14px;background:#ffffff0a;font-size:14px;color:#c9c2b2}
.running-lauf-kopf{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.running-lauf-kopf strong{color:#fff;font-size:15px}
.running-lauf-kopf span{color:#9fd3b0;font-weight:600}
.running-lauf.is-voll .running-lauf-kopf span{color:#e5b77a}.running-lauf.is-abgesagt .running-lauf-kopf span{color:#f0a493}
.running-lauf.is-abgesagt{opacity:.75}
.running-lauf-ort{color:#e5d7b8}
.running-lauf-notiz{color:#c9c2b2;line-height:1.55}
.running-lauf-knopf{justify-self:start;margin-top:4px;padding:6px 12px;border:1px solid #e0bc7e66;border-radius:999px;background:none;color:#e5d7b8;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.running-lauf-knopf:hover{border-color:#e0bc7e;background:#e0bc7e14}
.running-lauf-knopf:focus-visible{outline:2px solid #e5d7b8;outline-offset:2px}
.running-details{display:grid;gap:4px;padding:10px 12px;border-radius:10px;background:#f1ece0;font-size:14px;line-height:1.5;color:#3a3d36}
.running-details:empty{display:none}
.running-details p{margin:0}
/* Schritt 1: Umfrage — Logo mittig, darunter kurz der Plan und ein Knopf (running-club.js) */
.running-section [hidden]{display:none!important}
.running-umfrage{max-width:900px;margin:0 auto;display:grid;justify-items:center;gap:16px;padding:clamp(56px,8vw,104px) clamp(22px,5vw,72px);text-align:center}
.running-logo-mitte{max-width:min(760px,100%)}
.running-umfrage h2{margin:6px 0 0;color:#fff;font-size:clamp(32px,3.4vw,48px);line-height:1.1;font-weight:500}
.running-umfrage h2 em{color:#e0bc7e}
.running-umfrage>p{margin:0;max-width:620px;color:#d6d0c3;font-size:17px;line-height:1.7}
.running-umfrage>.button{margin-top:6px}
.running-umfrage .running-umfrage-klein{font-size:13px;color:#a9a294}
.running-umfrage-frage{display:grid;gap:14px;padding:22px 24px 26px}
.running-umfrage-antworten{display:grid;gap:10px}
.running-umfrage-antworten button{min-height:54px;padding:12px 16px;border:1px solid #cfd2c8;border-radius:14px;background:#fff;font:inherit;font-size:17px;font-weight:600;color:#212521;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}
.running-umfrage-antworten button.is-ja{border-color:#b59b68;background:linear-gradient(115deg,#e0c38c,#efdfb5);color:#26251f}
@media (hover:hover){.running-umfrage-antworten button:hover{border-color:#b59b68;background:#f6efe1}.running-umfrage-antworten button.is-ja:hover{background:linear-gradient(115deg,#d9b877,#ead7a6)}}
.running-umfrage-antworten button:focus-visible{outline:2px solid #b59b68;outline-offset:2px}
.running-umfrage-antworten button:disabled{opacity:.6;cursor:progress}


/* 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}
}
