:root{
  /* Palette */
  --sunrise: #FFCCBB;  /* warm highlight */
  --topaz:   #6EB5C0;  /* soft teal */
  --cerulean:#006C84;  /* primary */
  --icicle:  #E2E8E4;  /* background base */

  /* Base */
  --bg: #E2E8E4;
  --bg2: #f8fbf9;
  --card: rgba(255,255,255,.82);
  --card2: rgba(255,255,255,.70);
  --border: rgba(0,108,132,.16);

  --text: rgba(12, 36, 48, .94);
  --muted: rgba(12, 36, 48, .66);
  --muted2: rgba(12, 36, 48, .50);

  /* Brand */
  --accent:  #006C84; /* Cerulean */
  --accent2: #6EB5C0; /* Topaz */
  --accent3: #FFCCBB; /* Sunrise */

  /* Shadows */
  --shadow: 0 14px 44px rgba(0,108,132,.12);
  --shadowSm: 0 10px 26px rgba(0,108,132,.10);
  --shadowBtn: 0 12px 26px rgba(0,108,132,.18);
  --shadowBtnHover: 0 18px 42px rgba(0,108,132,.22);

  --radius: 18px;
  --radius2: 26px;

  --max: 1280px;
  --focus: 0 0 0 4px rgba(255,204,187,.40);

  --headerH: 72px;
}

/* M8.1-A public notification DOI */
.notification-section{position:relative;overflow:clip}.notification-card{padding:clamp(24px,5vw,52px);border:1px solid var(--border);border-radius:var(--radius2);background:linear-gradient(125deg,rgba(255,255,255,.9),rgba(251,231,223,.74),rgba(220,237,239,.82));box-shadow:var(--shadowSm)}.notification-card__intro{max-width:680px}.notification-card__intro h2{margin:.25rem 0 .5rem;font-size:clamp(30px,4vw,48px)}.notification-flash{max-width:760px;padding:14px 16px;border:1px solid rgba(23,107,76,.25);border-radius:15px;background:#edf7f2;color:#176b4c;font-weight:700}.notification-morph{max-width:860px;margin-top:22px}.notification-morph__trigger{display:inline-flex;align-items:center;gap:9px}.notification-morph__panel{margin-top:12px;overflow:hidden;border:1px solid var(--border);border-radius:22px;background:rgba(255,255,255,.94)}.notification-morph.is-enhanced .notification-morph__panel{max-height:0;margin-top:0;opacity:0;transform:translateY(-6px);transition:max-height .32s ease,opacity .22s ease,transform .22s ease,margin .22s ease}.notification-morph.is-enhanced.is-open .notification-morph__panel{max-height:1100px;margin-top:12px;opacity:1;transform:none}.notification-form{padding:clamp(18px,4vw,32px);display:grid;gap:18px}.notification-form label>span,.notification-form legend{display:block;margin-bottom:7px;font-weight:780}.notification-form input[type="text"],.notification-form input[type="email"],.notification-form input:not([type]){width:100%;min-height:48px;padding:11px 13px;border:1px solid var(--border);border-radius:13px;background:#fff;color:var(--text);font:inherit}.notification-form__names{display:grid;grid-template-columns:1fr 1fr;gap:14px}.notification-form fieldset{margin:0;padding:0;border:0}.notification-form__choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.notification-choice{min-height:52px;display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:14px;background:#fff;cursor:pointer}.notification-choice:has(input:checked){border-color:var(--cerulean);background:#edf7f8}.notification-choice:focus-within{box-shadow:var(--focus)}.notification-choice input{width:20px;height:20px;flex:0 0 auto;accent-color:var(--cerulean)}.notification-choice span{margin:0!important;font-weight:700!important}.notification-form__privacy{margin:0;color:var(--muted);font-size:14px}.notification-form__actions{display:flex;flex-wrap:wrap;gap:10px}.notification-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:720px){.notification-form__choices{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.notification-card{padding:24px 18px}.notification-form__names,.notification-form__choices{grid-template-columns:1fr}.notification-form__actions .btn,.notification-morph__trigger{width:100%}}
@media(prefers-reduced-motion:reduce){.notification-morph.is-enhanced .notification-morph__panel{transition:none}}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }

body{
  margin:0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--text);
  background:
    radial-gradient(980px 520px at 14% -6%, rgba(255,204,187,.65), transparent 56%),
    radial-gradient(980px 520px at 92% 0%, rgba(110,181,192,.38), transparent 58%),
    radial-gradient(980px 520px at 72% 100%, rgba(0,108,132,.14), transparent 58%),
    linear-gradient(180deg, var(--bg), var(--bg2));
  line-height: 1.55;
  min-height: 100vh;
  background-repeat: no-repeat;
}

img{ max-width:100%; height:auto; display:block; }

a{
  color: var(--accent);
  text-decoration-color: rgba(0,108,132,.28);
  text-underline-offset: 3px;
}
a:hover{
  color: color-mix(in oklab, var(--accent) 82%, black);
  text-decoration-color: rgba(0,108,132,.45);
}

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible{
  outline:none;
  box-shadow: var(--focus);
  border-color: transparent;
}

.container{
  width: min(var(--max), calc(100% - 40px));
  margin: 0 auto;
}

.skip-link{
  position:absolute; left:-999px; top:10px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 10px 12px;
}
.skip-link:focus{ left: 14px; z-index: 9999; }

/* Header */
.header{
  position: sticky; top:0; z-index: 50;
  height: var(--headerH);
  display:flex;
  align-items:center;
  background: color-mix(in oklab, white 72%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid transparent;
}
.header.is-elevated{ border-bottom-color: var(--border); }

.header__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap: 14px;
}

.brand{
  display:flex; align-items:center; gap: 10px;
  text-decoration:none;
}
.brand__logo{
  width: 44px; height: 44px;
  border-radius: 16px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.92);
  padding: 6px;
  box-shadow: 0 10px 26px rgba(0,108,132,.10);
}
.brand__text strong{ display:block; font-size: 14px; letter-spacing: .2px; color: var(--text); }
.brand__text small{ display:block; font-size: 12px; color: var(--muted); }

/* Navigation (wärmer + edler) */
.nav{
  display:flex; align-items:center; gap: 10px;
}
.nav a{
  font-size: 15px;
  color: var(--muted);
  text-decoration:none;
  padding: 9px 11px;
  border-radius: 999px;
  border: 1px solid transparent;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .10s ease;
}
.nav a:hover{
  color: var(--text);
  background: color-mix(in oklab, var(--accent3) 40%, white);
  border-color: color-mix(in oklab, var(--accent3) 35%, var(--border));
}
.nav a.is-active{
  color: var(--text);
  background: linear-gradient(
  135deg,
  color-mix(in oklab, var(--accent3) 55%, white),
  color-mix(in oklab, var(--accent3) 30%, var(--accent2))
);
  border-color: color-mix(in oklab, var(--accent3) 40%, var(--border));
  box-shadow: 0 10px 24px rgba(255,204,187,.28);
}

.nav-toggle{
  display:none;
  background: rgba(255,255,255,.80);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 10px;
  cursor:pointer;
  box-shadow: 0 10px 24px rgba(0,108,132,.10);
}
.nav-toggle__bar{
  display:block; width: 22px; height: 2px;
  background: var(--text);
  margin: 4px 0;
  border-radius: 99px;
}
.sr-only{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip: rect(0,0,0,0); white-space:nowrap;
}

@media (max-width: 920px){
  .nav-toggle{ display:block; }
  .nav{
    position: fixed;
    inset: var(--headerH) 16px auto 16px;
    display:none;
    flex-direction: column;
    padding: 12px;
    background: rgba(255,255,255,.90);
    border: 1px solid var(--border);
    border-radius: var(--radius2);
    box-shadow: var(--shadow);
  }
  .nav.is-open{ display:flex; }
  .nav a{ width:100%; border-radius: 14px; }
}

/* Hero */
.page-hero{ padding: 42px 0 18px; }
.hero{ padding: 42px 0 18px; }
.hero__grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}
.hero__grid > *{ min-width: 0; }
@media (max-width: 920px){
  .hero__grid{ grid-template-columns: 1fr; }
}

.eyebrow{
  display:inline-flex;
  gap: 8px;
  align-items:center;
  font-size: 12px;
  color: var(--muted);
  padding: 7px 12px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.74);
  border-radius: 999px;
}
.eyebrow .dot{
  width: 8px; height: 8px; border-radius: 999px;
  background: linear-gradient(135deg, var(--accent3), var(--accent2));
  box-shadow: 0 0 0 4px rgba(255,204,187,.28);
}

h1{
  margin: 14px 0 10px;
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1.06;
  letter-spacing: -0.6px;
}
h2{
  margin: 0 0 8px;
  font-size: 28px;
  letter-spacing: -0.2px;
}
.lead{
  font-size: 16px;
  color: var(--muted);
  max-width: 62ch;
}

.hero__cta{ display:flex; gap: 10px; margin-top: 18px; flex-wrap: wrap; }

/* Buttons (edler) */
.btn{
  min-height: 44px;
  appearance:none;
  border: 1px solid color-mix(in oklab, var(--border) 80%, var(--accent3));
  border-radius: 14px;
  padding: 11px 14px;
  font-weight: 800;
  letter-spacing: .2px;
  font-size: 13px;
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  background: rgba(255,255,255,.84);
  box-shadow: 0 10px 26px rgba(0,108,132,.10);
  transition: transform .10s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease, filter .18s ease;
  position: relative;
  overflow: hidden;
}

/* subtle inner highlight */
.btn::before{
  content:"";
  position:absolute;
  inset:-2px;
  background: radial-gradient(520px 140px at 20% 0%, rgba(255,204,187,.35), transparent 55%);
  opacity:.55;
  pointer-events:none;
}

.btn--small{ padding: 9px 12px; border-radius: 13px; }

.btn--primary{
  border-color: transparent;
  background: linear-gradient(
    135deg,
    var(--accent3),
    color-mix(in oklab, var(--accent3) 70%, white)
  );
  color: rgba(12,36,48,.92);
  box-shadow: 0 14px 32px rgba(255,204,187,.45);
}
.btn--primary::before{
  background: radial-gradient(
    520px 140px at 20% 0%,
    rgba(255,255,255,.35),
    transparent 55%
  );
  opacity:.75;
}
.btn--primary:hover{
  filter: brightness(1.04) saturate(1.05);
  box-shadow: 0 20px 46px rgba(255,204,187,.55);
}


.btn--ghost{
  background: color-mix(in oklab, var(--accent3) 18%, white);
  border-color: color-mix(in oklab, var(--accent3) 30%, var(--border));
  color: var(--text);
}
.btn--ghost:hover{
  background: color-mix(in oklab, var(--accent3) 32%, white);
  box-shadow: 0 12px 28px rgba(255,204,187,.35);
}


.btn:hover{
  transform: translateY(-1px);
  box-shadow: var(--shadowBtnHover);
}
.btn--primary:hover{
  filter: saturate(1.05) contrast(1.02);
}

.btn:active{
  transform: translateY(0px);
  box-shadow: 0 10px 22px rgba(0,108,132,.16);
}

/* Sections */
.section{ padding: 52px 0; }
.section--alt{
  background:
    linear-gradient(180deg, transparent, rgba(255,255,255,.55), transparent);
}
.section__header{ margin-bottom: 18px; }
.muted{ color: var(--muted); }
.small{ font-size: 12px; color: var(--muted2); }

.grid{ display:grid; gap: 14px; }
.grid--2{ grid-template-columns: repeat(2, 1fr); }
.grid--3{ grid-template-columns: repeat(3, 1fr); }
@media (max-width: 920px){
  .grid--2, .grid--3{ grid-template-columns: 1fr; }
}

/* Cards + Glass */
.card{
  background: rgba(255,255,255,.70);
  border: 1px solid rgba(0,108,132,.14);
  border-radius: var(--radius2);
  padding: 18px;
  box-shadow: var(--shadowSm);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  position: relative;
  overflow:hidden;
}
.card--soft{ background: rgba(255,255,255,.62); }

.card__title{ margin: 0 0 10px; font-size: 16px; }
.card__text{ margin: 0 0 10px; color: var(--muted); }
.card__text strong{ color: var(--text); }
.card__text:last-child{ margin-bottom:0; }

.list{ margin: 0; padding-left: 18px; color: var(--muted); }

/* Notice */
.notice{
  margin-top: 12px;
  padding: 12px 12px;
  border-radius: 16px;
  border: 1px solid color-mix(in oklab, var(--accent2) 30%, var(--border));
  background: color-mix(in oklab, var(--accent2) 16%, white);
  color: var(--muted);
  font-size: 13px;
}

.notice--important{
  border-color: rgba(160, 62, 35, .35);
  background: rgba(255, 204, 187, .42);
  color: var(--text);
}

.announcements{
  padding-top: 18px;
  padding-bottom: 18px;
}
.announcement{
  border-left: 5px solid var(--accent2);
}
.announcement--notice{
  border-left-color: var(--sunrise);
}
.announcement--important{
  border-left-color: #a03e23;
  background: color-mix(in oklab, var(--sunrise) 28%, white);
}

.course-exceptions{
  margin-top: 12px;
  color: var(--muted);
}
.course-exceptions summary{
  color: var(--accent);
  cursor: pointer;
  font-weight: 700;
}

/* Quote block */
.quote{
  margin: 18px 0 0;
  padding: 18px;
  border-radius: var(--radius2);
  border: 1px dashed rgba(0,108,132,.28);
  background: rgba(255,255,255,.72);
}
.quote p{ margin:0; font-size: 15px; color: var(--muted); }
.quote footer{ margin-top: 8px; color: var(--muted2); font-size: 12px; }

/* Media */
.media{
  border-radius: var(--radius2);
  overflow:hidden;
  border: 1px solid rgba(0,108,132,.14);
  background: white;
  box-shadow: var(--shadow);
}
.media img{ width:100%; height: 100%; object-fit: cover; }

/* Forms */
.form{ display:grid; gap: 10px; }
label{ display:grid; gap: 6px; font-size: 13px; color: var(--muted); }
input, textarea{
  width:100%;
  border-radius: 14px;
  border: 1px solid rgba(0,108,132,.18);
  background: rgba(255,255,255,.86);
  padding: 10px 12px;
  color: var(--text);
  font: inherit;
  transition: box-shadow .16s ease, border-color .16s ease, background-color .16s ease;
}
input:focus, textarea:focus{
  border-color: transparent;
  box-shadow: var(--focus);
}
textarea{ resize: vertical; min-height: 110px; }
input:disabled, textarea:disabled, button:disabled{
  cursor: not-allowed;
  opacity: .62;
}
.check{ display:flex; gap: 10px; align-items:flex-start; }
.check input{ width: 18px; height: 18px; margin-top: 2px; }

.inquiry-form{ position: relative; }
.inquiry-context{ margin: 16px 0; padding: 12px 14px; display: grid; gap: 3px; border: 1px solid color-mix(in oklab, var(--accent2) 32%, var(--border)); border-radius: 14px; background: color-mix(in oklab, var(--icicle) 65%, white); }
.inquiry-context span{ color: var(--muted); font-size: 12px; font-weight: 700; }
.form-error-summary{ margin: 16px 0; padding: 16px 18px; border: 2px solid #9b321e; border-radius: 16px; background: rgba(255,204,187,.45); }
.form-error-summary h3{ margin: 0 0 8px; }
.form-error-summary ul{ margin: 0; padding-left: 20px; }
.field-error{ margin-top: -5px; color: #8a2a18; font-size: 12px; font-weight: 750; }
.inquiry-form [aria-invalid="true"]{ border-color: #9b321e; background: #fff5f1; }
.form-honeypot{ position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.contact-locations{ margin-top: 14px; }
.contact-locations summary{ color: var(--accent); cursor: pointer; font-weight: 800; }
.contact-locations .list{ margin-top: 12px; }
.inquiry-thanks{ max-width: 760px; margin: 0 auto; }

/* Accordion */
.accordion{ margin-top: 14px; }
.accordion__btn{
  width:100%;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(0,108,132,.18);
  border-radius: 16px;
  padding: 12px;
  cursor:pointer;
  font: inherit;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.accordion__btn:hover{
  background: color-mix(in oklab, var(--accent3) 22%, white);
  border-color: color-mix(in oklab, var(--accent3) 28%, rgba(0,108,132,.22));
  box-shadow: 0 10px 22px rgba(255,204,187,.18);
}
.accordion__panel{ padding: 12px 2px 0; }

/* Footer */
.footer{
  padding: 24px 0 40px;
  border-top: 1px solid rgba(0,108,132,.14);
  background: rgba(255,255,255,.58);
}
.footer__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap: 14px; flex-wrap: wrap;
}
.footer__links{ display:flex; gap: 14px; align-items:center; }
.linklike{
  background:none; border:none; color: var(--muted);
  cursor:pointer; padding:0;
  text-decoration: underline; text-underline-offset: 3px;
}
.linklike:hover{ color: var(--text); }

.breadcrumbs{
  margin-top: 10px;
  font-size: 13px;
  color: var(--muted);
}
.breadcrumbs a{ text-decoration: none; }

/* Glassmorphism */
.glass{
  background: rgba(255,255,255,.62);
  border: 1px solid rgba(0,108,132,.14);
  box-shadow: var(--shadow);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  position: relative;
  overflow:hidden;
}

/* Warm glow edges */
.card::before, .glass::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius: inherit;
  pointer-events:none;
  background: radial-gradient(650px 240px at 20% 0%, rgba(255,204,187,.42), transparent 60%);
  opacity:.65;
}

/* Map blocks */
.map-card{
  padding: 0;
  overflow: hidden;
}

.map-card__top{
  padding: 18px;
  border-bottom: 1px solid rgba(0,108,132,.14);
}

.map-embed{
  width: 100%;
  height: 340px;
  border: 0;
  display:block;
}

.map-consent{
  padding: 18px;
  display:grid;
  gap: 10px;
  place-items: start;
}
.map-consent p{
  margin:0;
  color: var(--muted);
}

/* Big Map */
.mapbig{
  padding: 0;
  overflow: hidden;
}

.mapbig__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 18px;
  border-bottom: 1px solid rgba(0,108,132,.14);
}

.mapbig__tabs{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items:center;
}

.mapbig__consent{
  padding: 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.mapbig__embed{
  width: 100%;
  height: 420px;
  border: 0;
  display:block;
}

.is-tab[aria-pressed="true"]{
  border-color: transparent;
  background: linear-gradient(
    135deg,
    var(--accent),
    color-mix(in oklab, var(--accent) 70%, var(--accent2))
  );
  color: white;
  box-shadow: 0 14px 34px rgba(0,108,132,.18);
}

/* Quote cards (für Yogi Bhajan Zitate) */
.quote-card{
  background: rgba(255,255,255,.66);
  border: 1px solid rgba(0,108,132,.14);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

/* Geschützter Admin-/Authentifizierungsbereich (M3) */
.admin-body{
  min-height:100vh;
  background:
    radial-gradient(800px 460px at 10% 0%, rgba(255,204,187,.56), transparent 60%),
    linear-gradient(180deg, #e2e8e4, #f8fbf9);
}
.admin-header{
  border-bottom:1px solid var(--border);
  background:rgba(255,255,255,.86);
}
.admin-header__inner{
  min-height:68px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.admin-brand{font-weight:900;text-decoration:none;color:var(--text)}
.admin-brand span{display:block;font-size:12px;color:var(--muted);font-weight:700}
.admin-main{padding:44px 0 72px}
.admin-panel{
  width:min(560px, calc(100% - 40px));
  margin:0 auto;
  padding:24px;
  border:1px solid var(--border);
  border-radius:var(--radius2);
  background:rgba(255,255,255,.9);
  box-shadow:var(--shadow);
}
.admin-panel--wide{width:min(920px, calc(100% - 40px))}
.admin-panel h1{font-size:clamp(30px, 4vw, 42px)}
.admin-form{margin-top:20px}
.admin-inline-form{margin-top:18px;display:flex;justify-content:center}
.admin-alert{
  margin:16px 0;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(0,108,132,.28);
  background:rgba(110,181,192,.16);
}
.admin-alert--error{border-color:#a03e23;background:rgba(255,204,187,.5)}
.admin-alert--warning{border-color:#9a6a00;background:#fff3c9}
.admin-secondary-link{margin-top:18px;text-align:center}
.admin-setup-grid,.admin-security-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  margin:22px 0;
}
.admin-qr{display:grid;place-items:center;background:#fff;border-radius:18px;padding:12px}
.admin-secret{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:800;letter-spacing:.08em}
.admin-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.admin-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0}
.admin-facts div{padding:14px;border:1px solid var(--border);border-radius:16px;background:#fff}
.admin-facts dt{font-size:12px;color:var(--muted)}
.admin-facts dd{margin:4px 0 0;font-weight:800}
.admin-actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}
.admin-code-list{columns:2;gap:24px;padding-left:28px;margin:22px 0}
.admin-code-list li{break-inside:avoid;margin:0 0 10px}
.admin-code-list code{font-size:14px;font-weight:800}
@media (max-width:720px){
  .admin-header__inner{align-items:flex-start;padding-top:12px;padding-bottom:12px;flex-direction:column}
  .admin-setup-grid,.admin-security-grid,.admin-facts{grid-template-columns:1fr}
  .admin-code-list{columns:1}
}

.quote-card--alt{
  background: rgba(255,255,255,.72);
}

.quote-card__text{
  margin: 0;
  font-size: 20px;
  line-height: 1.25;
  letter-spacing: -0.2px;
  color: var(--text);
}

.quote-card__by{
  margin: 12px 0 0;
  color: var(--muted);
  font-weight: 800;
}

/* --- Nav: warmes, minimales Rosa-Glow --- */
.nav a{ position: relative; }
.nav a:hover{
  box-shadow: 0 10px 26px rgba(255,204,187,.30);
}
.nav a.is-active{
  box-shadow:
    0 10px 24px rgba(255,204,187,.30),
    0 1px 0 rgba(255,255,255,.65) inset;
}

/* --- Cards: sanftes "Aufatmen" --- */
.card{
  transition: transform .14s ease, box-shadow .20s ease, border-color .20s ease, background-color .20s ease;
}
.card:hover{
  transform: translateY(-2px);
  box-shadow:
    0 18px 46px rgba(0,108,132,.12),
    0 16px 38px rgba(255,204,187,.26);
  border-color: color-mix(in oklab, var(--accent3) 40%, rgba(0,108,132,.18));
}
/* --- Hero: Bild gleich hoch wie die Box daneben --- */
.hero__grid{ align-items: stretch; }
.hero__grid > .media{ height: 100%; }
.hero__grid > .media img{
  height: 100%;
  min-height: 360px;
  object-fit: cover;
}

/* Optional: Hero-Box bekommt gleiche Höhe ohne Inline-Style */
.hero-box{
  padding: 18px;
  border-radius: var(--radius2);
}

.legal-address{ margin: 0; color: var(--muted); font-style: normal; }
.legal-address strong{ color: var(--text); }
.legal-email{ overflow-wrap: anywhere; }

@media (max-width: 650px){
  .hero__grid > .media img{ min-height: 280px; }
}

/* --- Stack Layout: volle Breite, untereinander --- */
.stack{
  display: grid;
  gap: 14px;
}

/* --- Quote stärker hervorheben --- */
.quote-card--emph{
  background: linear-gradient(135deg, rgba(255,204,187,.48), rgba(255,255,255,.74));
  border-color: rgba(255,204,187,.70);
  box-shadow:
    0 18px 48px rgba(255,204,187,.36),
    0 12px 34px rgba(0,108,132,.08);
}
.quote-card--emph .quote-card__text{
  font-size: 22px;
  line-height: 1.2;
}
.quote-card--emph .quote-card__by{
  font-weight: 900;
}

.quote-card{
  display: grid;
  justify-items: center;
  text-align: center;
}
/* M6 protected draft preview */
.preview-banner {
  position: relative;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px 16px;
  padding: 12px max(18px, calc((100% - 1120px) / 2));
  border-bottom: 2px solid #7a5700;
  background: #fff5cf;
  color: #4f3a00;
}

.preview-banner span { font-size: 14px; }

@media (max-width: 520px) {
  .preview-banner { justify-content: flex-start; }
}
/* Redaktionell kontrollierte Hero-Zeilen bleiben ein semantisches H1 und dürfen mobil natürlich umbrechen. */
.hero-title > span { display: block; max-width: 100%; overflow-wrap: anywhere; }
.offer-actions { margin-top: 14px; display: flex; gap: 10px; flex-wrap: wrap; }
.kundalini-effect-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kundalini-effect-grid > .card { min-width: 0; height: auto; overflow-wrap: anywhere; }
@media (min-width: 561px) and (max-width: 920px) { .grid--3.kundalini-effect-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .grid--3.kundalini-effect-grid { grid-template-columns: minmax(0, 1fr); } }

/* M8-C: shared public composition and interaction system */
.site-hero { padding: clamp(24px, 4vw, 54px) 0 24px; }
.site-hero__frame {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr);
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: clamp(22px, 3vw, 34px);
  background: linear-gradient(118deg, rgba(255,247,243,.96) 0%, rgba(255,255,255,.9) 49%, rgba(226,240,239,.92) 100%);
  box-shadow: 0 24px 70px rgba(0,108,132,.14);
}
.site-hero__content { min-width: 0; align-self: center; padding: clamp(28px, 5vw, 68px); position: relative; z-index: 1; }
.site-hero__content::after { position: absolute; z-index: -1; width: 190px; height: 190px; right: -70px; bottom: -100px; border-radius: 50%; background: rgba(255,204,187,.28); content: ""; }
.site-hero__title { margin: 16px 0 14px; font-size: clamp(38px, 5vw, 66px); line-height: 1.02; letter-spacing: -.035em; overflow-wrap: anywhere; }
.site-hero__title > span { display: block; }
.site-hero--kundalini .site-hero__title > span { white-space: pre-line; }
.site-hero--home .site-hero__title > span + span { margin-top:.12em; font-size:.8em; }
.site-hero__media { min-width: 0; min-height: 430px; margin: 0; position: relative; overflow: hidden; background: var(--icicle); }
.site-hero__media::before { position: absolute; z-index: 1; inset: 0 auto 0 0; width: 22%; background: linear-gradient(90deg, rgba(255,255,255,.82), transparent); content: ""; pointer-events: none; }
.site-hero__media img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: center; }
.site-hero--compact .site-hero__frame { grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr); }
.site-hero--compact .site-hero__content { padding-block: clamp(26px, 4vw, 46px); }
.site-hero--compact .site-hero__media { min-height: 330px; }
.site-hero__sections { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 8px; }
.site-hero__sections a { min-height: 44px; display: inline-flex; align-items: center; padding: 8px 12px; border: 1px solid var(--border); border-radius: 13px; background: rgba(255,255,255,.68); color: var(--text); font-size: 13px; font-weight: 750; text-decoration: none; }

.section-kicker { margin: 0 0 5px; color: var(--accent); font-size: 12px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.section__header--split { display: grid; grid-template-columns: minmax(0,.8fr) minmax(320px,1.2fr); align-items: end; gap: 28px; }
.section__header--split > p { margin: 0; }
.section-actions { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 10px; }
.empty-state { padding: clamp(28px, 6vw, 60px); border: 1px dashed rgba(0,108,132,.3); border-radius: var(--radius2); background: linear-gradient(135deg, rgba(255,247,243,.9), rgba(248,251,249,.9)); text-align: center; }
.empty-state h3 { margin: 0 0 7px; font-size: clamp(21px, 3vw, 30px); }
.empty-state p { margin: 0 auto 20px; max-width: 56ch; color: var(--muted); }

.course-list, .event-list, .home-course-list { display: grid; gap: 20px; }
.course-card {
  min-width: 0;
  position: relative;
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr) minmax(260px, 330px);
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 28px;
  background: rgba(255,255,255,.88);
  box-shadow: var(--shadowSm);
  transition: border-color .2s ease, box-shadow .25s ease;
}
.course-card:hover { border-color: rgba(0,108,132,.3); box-shadow: 0 24px 58px rgba(0,108,132,.14); }
.course-card__primary-link { color:inherit; text-decoration:none; }
.course-card__primary-link::after { position:absolute; z-index:0; inset:0; border-radius:inherit; content:""; }
.course-card__primary-link:focus-visible { outline:none; }
.course-card__primary-link:focus-visible::after { outline:3px solid var(--accent); outline-offset:-4px; }
.course-card:hover .course-card__primary-link { color:var(--accent); text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:4px; }
.course-card__availability-trigger, .course-card__actions, .course-exceptions, .course-schedule-dialog, .course-map { position:relative; z-index:1; }
.course-card__visual noscript { position:relative; z-index:1; }
.course-card__date { margin: 22px 0 22px 22px; min-height: 122px; align-self: start; display: grid; place-content: center; gap: 3px; border: 1px solid rgba(255,181,153,.52); border-radius: 22px; background: linear-gradient(145deg, #ffe1d6, #fff4ef); text-align: center; }
.course-card__date span { font-size: 36px; font-weight: 820; letter-spacing: -.04em; line-height: 1; }
.course-card__date small { color: var(--muted); font-size: 11px; }
.course-card__main { min-width: 0; padding: 24px; }
.course-card__heading { display: flex; align-items: start; justify-content: space-between; gap: 18px; }
.course-card__heading h3, .event-card__content h3 { margin: 0; font-size: clamp(24px, 3vw, 34px); line-height: 1.12; letter-spacing: -.025em; }
.course-card__heading p, .event-card__content header > p:last-child { margin: 4px 0 0; color: var(--muted); }
.course-card__summary { max-width: 65ch; color: var(--muted); }
.course-card__availability { flex: 0 0 auto; margin: 0 !important; padding: 9px 11px; display: grid; border-radius: 13px; background: color-mix(in oklab, var(--sunrise) 36%, white); color: var(--text) !important; text-align: right; }
.course-card__availability span { color: var(--muted); font-size: 12px; font-weight: 750; }
.course-card__availability-trigger { min-height: 44px; border: 1px solid transparent; font: inherit; cursor: pointer; transition: border-color .18s ease, background-color .18s ease; }
.course-card__availability-trigger:hover { border-color: color-mix(in oklab,var(--cerulean) 32%,transparent); background: color-mix(in oklab,var(--sunrise) 48%,white); }
.course-card__availability-trigger .course-card__availability-hint { margin-top: 3px; color: var(--accent); }
.course-schedule-dialog { width: min(560px,calc(100% - 32px)); max-height: min(720px,calc(100dvh - 48px)); padding: 0; overflow: auto; border: 1px solid var(--border); border-radius: 24px; background: #fff; color: var(--text); box-shadow: 0 28px 90px rgba(12,36,48,.26); }
.course-schedule-dialog::backdrop { background: rgba(12,36,48,.46); backdrop-filter: blur(3px); }
.course-schedule-dialog__header { padding: 22px 22px 16px; position: sticky; z-index: 1; top: 0; display: flex; align-items: start; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--border); background: rgba(255,255,255,.96); }
.course-schedule-dialog__header h4 { margin: 2px 0 0; font-size: clamp(23px,4vw,31px); line-height: 1.15; }
.course-schedule-dialog__close { width: 44px; height: 44px; flex: 0 0 44px; display: grid; place-items: center; border: 1px solid var(--border); border-radius: 999px; background: var(--bg2); color: var(--text); font: inherit; font-size: 26px; line-height: 1; cursor: pointer; }
.course-schedule-list { margin: 0; padding: 10px 22px 22px; display: grid; gap: 4px; list-style: none; }
.course-schedule-list li { min-width: 0; padding: 13px 12px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid color-mix(in oklab,var(--topaz) 22%,white); }
.course-schedule-list time { min-width: 0; display: grid; gap: 2px; }
.course-schedule-list time strong { overflow-wrap: anywhere; }
.course-schedule-list time span { color: var(--muted); font-size: 13px; }
.course-schedule-list__next { border-radius: 14px; background: color-mix(in oklab,var(--sunrise) 24%,white); }
.course-schedule-list__label { flex: 0 0 auto; color: var(--accent); font-size: 11px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.course-facts { margin: 22px 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; }
.course-facts div { min-width: 0; padding-left: 10px; border-left: 3px solid color-mix(in oklab, var(--topaz) 58%, white); }
.course-facts dt { color: var(--muted); font-size: 11px; font-weight: 750; }
.course-facts dd { margin: 2px 0 0; font-size: 13px; font-weight: 760; overflow-wrap: anywhere; }
.next-date { margin: 16px 0; padding: 14px 16px; display: grid; gap: 2px; border: 1px solid rgba(255,181,153,.5); border-radius: 16px; background: linear-gradient(135deg, rgba(255,239,232,.9), rgba(255,255,255,.9)); }
.next-date span { color: #7b4737; font-size: 11px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.next-date small { color: var(--muted); }
.structured-notes { margin-top: 18px; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px,1fr)); gap: 10px; }
.structured-notes section { padding: 13px 14px; border-radius: 15px; background: color-mix(in oklab, var(--icicle) 60%, white); }
.structured-notes h4 { margin: 0 0 7px; font-size: 13px; }
.structured-notes ul { margin: 0; padding-left: 18px; color: var(--muted); font-size: 13px; }
.structured-notes p { margin: 0; color: var(--muted); font-size: 13px; }
.disclosure summary { min-height: 44px; display: flex; align-items: center; color: var(--accent); cursor: pointer; font-weight: 780; }
.disclosure ul { margin-top: 5px; padding-left: 20px; }
.course-card__visual { min-width: 0; padding: 22px 22px 22px 0; display: flex; flex-direction: column; gap: 12px; }
.course-card__visual > img, .event-card__visual > img { width: 100%; aspect-ratio: 4 / 3; border-radius: 20px; object-fit: cover; object-position: center; }
.course-card__visual address { color: var(--muted); font-size: 12px; font-style: normal; overflow-wrap: anywhere; }
.course-card__no-image { min-height: 190px; display: grid; place-items: center; overflow: hidden; border: 1px solid var(--border); border-radius: 20px; background: radial-gradient(circle at 30% 20%, rgba(255,204,187,.72), transparent 42%), linear-gradient(145deg, #f7fbf9, #dfeeed); color: var(--accent); }
.course-card__no-image span { padding: 12px; font-size: 13px; font-weight: 850; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.course-card__actions, .event-card__actions { margin-top: auto; display: flex; flex-wrap: wrap; gap: 8px; }
.course-card__actions .btn { flex: 1 1 120px; }
.course-map { grid-column:1 / -1; max-height:0; margin:0 16px; position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(210px,.45fr) minmax(0,1.55fr); border:1px solid transparent; border-radius:24px; background:var(--bg2); box-shadow:0 18px 48px rgba(12,36,48,.14); opacity:0; clip-path:inset(0 0 100% 0 round 24px); transition:max-height .38s ease, margin-bottom .38s ease, opacity .24s ease, clip-path .38s cubic-bezier(.2,.8,.2,1), border-color .2s ease; }
.course-map[hidden] { display: none; }
.course-map.is-open { max-height:540px; margin-bottom:16px; border-color:var(--border); opacity:1; clip-path:inset(0 round 24px); }
.course-map__close { width: 48px; height: 48px; position: absolute; z-index: 2; top: 14px; right: 14px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 999px; background: rgba(12,36,48,.88); color: #fff; font: inherit; font-size: 28px; line-height: 1; cursor: pointer; box-shadow: 0 8px 24px rgba(12,36,48,.3); transition: transform .18s ease, background-color .18s ease; }
.course-map__close:hover { background: var(--accent); transform: scale(1.05); }
.course-map__status { padding: 28px 22px; display: flex; flex-direction: column; justify-content: center; gap: 5px; }
.course-map__status span, .course-map__fallback { color: var(--muted); font-size: 12px; }
.course-map iframe { width: 100%; min-height: 350px; border: 0; border-radius: 0 23px 0 0; background: var(--icicle); }
.course-map__fallback { grid-column: 1 / -1; margin: 0; padding: 10px 22px; border-top: 1px solid var(--border); }

.locations-overview { margin-top: 36px; padding: clamp(22px,4vw,38px); display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 30px; border: 1px solid var(--border); border-radius: 24px; background: rgba(255,255,255,.7); }
.locations-overview p { color: var(--muted); }
.locations-overview ul { margin: 0; padding: 0; display: grid; gap: 8px; list-style: none; }
.locations-overview li { padding: 11px 13px; display: grid; border-radius: 13px; background: rgba(255,255,255,.8); }
.locations-overview span { color: var(--muted); font-size: 13px; }

.event-card { min-width: 0; display: grid; grid-template-columns: minmax(170px,.52fr) minmax(0,1.3fr) minmax(240px,.7fr); overflow: hidden; border: 1px solid var(--border); border-radius: 28px; background: rgba(255,255,255,.88); box-shadow: var(--shadowSm); }
.event-card__date { padding: 28px; display: flex; flex-direction: column; justify-content: center; gap: 7px; background: linear-gradient(145deg, #ffe4da, #fff7f3); }
.event-card__date span { font-size: 22px; font-weight: 850; line-height: 1.2; }
.event-card__date strong { color: var(--muted); }
.event-card__content { min-width: 0; padding: 28px; }
.event-card__content > p { color: var(--muted); }
.event-card__location { padding-left: 12px; border-left: 3px solid var(--topaz); }
.event-card__visual { min-width: 0; padding: 22px 22px 22px 0; display: grid; align-items: center; }
.event-card__visual .course-card__no-image { min-height: 220px; }
.editorial-callout { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); gap: clamp(28px,6vw,80px); }
.editorial-callout p { color: var(--muted); }
.flyer-callout { padding: 22px 24px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid var(--border); border-radius: 20px; background: rgba(255,255,255,.75); }
.flyer-callout h2, .flyer-callout p { margin: 0; }
.flyer-callout p { color: var(--muted); }
.home-course-row { min-width: 0; padding: 15px 16px; display: grid; grid-template-columns: 54px minmax(0,1fr) auto; align-items: center; gap: 16px; border: 1px solid var(--border); border-radius: 18px; background: rgba(255,255,255,.75); }
.home-course-row__day { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 16px; background: var(--sunrise); font-weight: 900; }
.home-course-row h3, .home-course-row p { margin: 0; }
.home-course-row p { color: var(--muted); font-size: 13px; }

/* M8.1-B1: open editorial rhythm and compact offer family */
.editorial-section { position: relative; }
.editorial-section--tint, .course-overview-section, .offer-list-section { background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.56), rgba(255,255,255,.08)); }
.editorial-split { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(320px,.9fr); align-items: center; gap: clamp(32px,7vw,92px); }
.editorial-split .editorial-copy { grid-column: 1; grid-row: 1; }
.editorial-split .editorial-media { grid-column: 2; grid-row: 1 / span 2; }
.editorial-split .editorial-split__actions { grid-column: 1; grid-row: 2; margin-top: clamp(-52px,-4vw,-24px); }
.editorial-split--image-first .editorial-copy { grid-column: 2; }
.editorial-split--image-first .editorial-media { grid-column: 1; }
.editorial-split--image-first .editorial-split__actions { grid-column: 2; }
.editorial-copy { min-width: 0; }
.editorial-copy h2, .editorial-narrow h2 { margin-bottom: 18px; font-size: clamp(30px,4vw,48px); line-height: 1.08; }
.editorial-copy--open { width: min(82ch,100%); }
.editorial-copy > p:not(.section-kicker), .editorial-prose { max-width: 68ch; color: var(--muted); font-size: clamp(16px,1.5vw,18px); line-height: 1.76; }
.editorial-section > .container:not(.editorial-split) > .editorial-copy { width: min(950px,100%); }
.editorial-section > .container:not(.editorial-split) > .editorial-copy > .editorial-prose { max-width: 100%; }
.editorial-prose p { margin: 0 0 1.15em; }
.editorial-narrow { width: min(900px, calc(100% - 40px)); }
.editorial-narrow--balanced { width: min(1080px, calc(100% - 40px)); }
.editorial-narrow--balanced > .section-kicker,
.editorial-narrow--balanced > h2,
.editorial-narrow--balanced > .editorial-prose,
.editorial-narrow--balanced > .editorial-quote { width: min(100%, 82ch); margin-inline: auto; }
.kundalini-effect-header { max-width: 820px; margin-bottom: clamp(26px,4vw,42px); }
.kundalini-effect-header h2 { margin: 0 0 12px; font-size: clamp(30px,4vw,48px); line-height: 1.08; }
.kundalini-effect-header > p:last-child { max-width: 68ch; margin: 0; font-size: clamp(16px,1.5vw,18px); line-height: 1.7; }
.section[id] { scroll-margin-top: calc(var(--headerH) + 18px); }
.editorial-media { min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--border); border-radius: clamp(20px,3vw,30px); background: var(--icicle); box-shadow: 0 22px 54px rgba(0,108,132,.12); }
.editorial-media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; }
.editorial-media--portrait, .editorial-media--square { width:fit-content; max-width:100%; justify-self:center; }
.editorial-media--portrait img, .editorial-media--square img { width:auto; height:auto; max-width:100%; max-height:640px; aspect-ratio:auto; display:block; }
.editorial-media--square img { max-height:520px; }
.editorial-points { margin: 22px 0 0; padding: 0; display: grid; gap: 9px; list-style: none; color: var(--muted); }
.editorial-points li { position: relative; padding-left: 24px; }
.editorial-points li::before { width: 9px; height: 9px; position: absolute; top: .52em; left: 1px; border-radius: 50%; background: linear-gradient(135deg,var(--sunrise),var(--topaz)); content: ""; }
.editorial-quote { max-width: 760px; margin: clamp(34px,6vw,62px) 0 0; padding: 4px 0 4px clamp(22px,4vw,42px); border-left: 4px solid var(--topaz); color: var(--text); }
.editorial-quote--warm { border-left-color: var(--sunrise); }
.editorial-quote p { margin: 0; font-size: clamp(21px,2.975vw,33.25px); line-height: 1.3; letter-spacing: -.018em; }
.editorial-quote footer { margin-top: 14px; color: var(--muted); font-size: 14px; font-weight: 750; }
.general-info-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(30px,7vw,90px); }
.general-info-grid > section { min-width: 0; padding-top: 22px; border-top: 3px solid color-mix(in oklab,var(--topaz) 52%,white); }
.general-info-grid > section:nth-child(even) { border-top-color: color-mix(in oklab,var(--sunrise) 72%,white); }
.general-info-grid h2, .general-info-grid h3 { margin: 0 0 14px; font-size: clamp(23px,3vw,32px); }
.general-info-grid ul, .general-info-grid ol { margin: 0; padding-left: 22px; color: var(--muted); }
.general-info-grid li + li { margin-top: 7px; }
.general-info-grid p { max-width: 58ch; color: var(--muted); }
.structured-flow { display:grid; gap:14px; }
.structured-flow__item { display:grid; grid-template-columns:minmax(8rem,.32fr) 1.5rem minmax(0,1fr); align-items:start; gap:8px; padding-block:12px; border-bottom:1px solid var(--border); }
.structured-flow__item:last-child { border-bottom:0; }
.structured-flow__keyword { color:var(--text); font-weight:750; }
.structured-flow__separator { color:var(--muted2); text-align:center; }
.structured-flow__description { max-width:68ch!important; margin:0; color:var(--muted); }
.structured-flow__item:not(:has(.structured-flow__keyword)) .structured-flow__description { grid-column:1 / -1; }
.about-open-sections { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(46px,8vw,110px); }
.about-open-sections article { padding-top:22px; border-top:3px solid color-mix(in oklab,var(--topaz) 52%,white); }
.about-open-sections article:nth-child(2) { border-top-color:color-mix(in oklab,var(--sunrise) 72%,white); }
.legal-page-content { width:min(900px,calc(100% - 40px)); }
.legal-toc { padding-bottom:clamp(28px,5vw,54px); border-bottom:1px solid var(--border); }
.legal-sections,.legal-page-content { display:grid; gap:clamp(30px,5vw,58px); }
.legal-section { scroll-margin-top:calc(var(--headerH) + 18px); }
.legal-section + .legal-section { padding-top:clamp(28px,5vw,52px); border-top:1px solid var(--border); }
.legal-section > p { max-width:76ch; }
.page-hero h1,.system-page-shell h1 { overflow-wrap:anywhere; }
.system-page-shell { min-height:100vh; display:grid; align-items:center; }
@media(max-width:700px){.structured-flow__item{grid-template-columns:1fr;gap:4px}.structured-flow__separator{display:none}.structured-flow__description{grid-column:1}.about-open-sections{grid-template-columns:1fr}}
.course-flow-items { display:grid; gap:14px; }
.course-flow-items p { margin:0; padding-bottom:14px; border-bottom:1px solid color-mix(in oklab,var(--topaz) 28%,white); white-space:normal; }
.course-flow-items p:last-child { padding-bottom:0; border-bottom:0; }
.text-link { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; font-weight: 800; }
.compact-offer-teaser { margin-top: clamp(30px,5vw,54px); padding: 18px 20px; display: grid; grid-template-columns: minmax(0,1fr) minmax(360px,1.25fr) auto; align-items: center; gap: 22px; border: 1px solid var(--border); border-radius: 20px; background: rgba(255,255,255,.76); box-shadow: var(--shadowSm); }
.compact-offer-list { margin-top: clamp(30px,5vw,54px); display: grid; gap: 14px; }
.compact-offer-list .compact-offer-teaser { margin-top: 0; }
.compact-offer-teaser h3, .compact-offer-teaser p { margin: 0; }
.compact-offer-teaser > div > p:last-child { color: var(--muted); }
.compact-offer-teaser dl, .event-facts { margin: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.compact-offer-teaser dl div, .event-facts div { min-width: 0; padding-left: 10px; border-left: 3px solid color-mix(in oklab,var(--topaz) 58%,white); }
.compact-offer-teaser dt, .event-facts dt { color: var(--muted); font-size: 11px; font-weight: 750; }
.compact-offer-teaser dd, .event-facts dd { margin: 2px 0 0; font-size: 13px; font-weight: 760; overflow-wrap: anywhere; }
.empty-state--compact { padding: clamp(24px,4vw,38px); }
.effect-card { padding: 22px; }
.effect-card__icon { width: 48px; height: 48px; margin-bottom: 16px; display: grid; place-items: center; border-radius: 16px; background: linear-gradient(145deg,rgba(255,204,187,.46),rgba(226,240,239,.78)); color: var(--accent); }
.effect-icon { width: 28px; height: 28px; display: block; }
.effect-card .card__title { font-size: 18px; }
.event-facts { margin-top: 20px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.event-card__visual address { color: var(--muted); font-size: 12px; font-style: normal; overflow-wrap: anywhere; }
.event-card__actions .btn { flex: 1 1 118px; }

/* C2-A: stable public course and event deep-link destinations */
.offer-detail-hero { padding: clamp(24px,4vw,54px) 0 clamp(28px,5vw,66px); }
.offer-detail-hero__frame { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr); overflow:hidden; border:1px solid var(--border); border-radius:clamp(24px,4vw,34px); background:rgba(255,255,255,.86); box-shadow:var(--shadow); }
.offer-detail-hero__content { min-width:0; padding:clamp(30px,5vw,68px); align-self:center; }
.offer-detail-hero__content h1 { margin:8px 0 14px; font-size:clamp(38px,5vw,64px); line-height:1.03; letter-spacing:-.035em; overflow-wrap:anywhere; }
.offer-detail-back-link { margin-bottom:18px; color:var(--muted); text-decoration:none; }
.offer-detail-back-link:hover { color:var(--accent); text-decoration:underline; text-underline-offset:4px; }
.offer-detail-hero__intro { max-width:58ch; margin:0 0 18px; color:var(--muted); font-size:clamp(18px,2vw,23px); line-height:1.5; }
.offer-detail-description { max-width:65ch; color:var(--muted); line-height:1.72; }
.offer-detail-hero__visual { min-width:0; min-height:560px; margin:0; background:var(--icicle); }
.offer-detail-hero__visual img { width:100%; height:100%; object-fit:cover; object-position:center; }
.offer-detail-hero__placeholder { width:100%; height:100%; min-height:inherit; display:grid; place-items:center; background:radial-gradient(circle at 28% 20%,rgba(255,204,187,.82),transparent 40%),linear-gradient(145deg,#f7fbf9,#d8eceb); color:var(--accent); }
.offer-detail-hero__placeholder span { padding:24px; font-size:14px; font-weight:850; letter-spacing:.1em; text-align:center; text-transform:uppercase; }
.offer-detail-facts { margin:28px 0 0; padding-top:22px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 22px; border-top:1px solid var(--border); }
.offer-detail-facts div { min-width:0; padding-left:12px; border-left:3px solid color-mix(in oklab,var(--topaz) 58%,white); }
.offer-detail-facts div:nth-child(even) { border-left-color:color-mix(in oklab,var(--sunrise) 76%,white); }
.offer-detail-facts dt { color:var(--muted); font-size:12px; font-weight:750; }
.offer-detail-facts dd { margin:3px 0 0; font-weight:760; overflow-wrap:anywhere; }
.offer-detail-action { margin-top:28px; display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.offer-detail-state { flex:1 1 300px; padding:14px 16px; display:grid; gap:3px; border:1px solid rgba(255,181,153,.48); border-radius:16px; background:linear-gradient(135deg,rgba(255,239,232,.92),rgba(255,255,255,.92)); }
.offer-detail-state span { color:var(--muted); font-size:14px; }
.offer-detail-notes { display:grid; grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr); gap:clamp(28px,7vw,90px); }
.offer-detail-notes h2 { font-size:clamp(28px,4vw,42px); }
.offer-detail-notes > div:last-child { padding-top:18px; border-top:3px solid color-mix(in oklab,var(--sunrise) 72%,white); }
.offer-detail-notes > div:last-child p { max-width:68ch; margin:0; color:var(--muted); line-height:1.72; }
.offer-detail-notes > div:last-child p + p { margin-top:16px; padding-top:16px; border-top:1px solid var(--border); }
.offer-detail-schedule { display:grid; grid-template-columns:minmax(240px,.58fr) minmax(0,1.42fr); align-items:start; gap:clamp(28px,7vw,90px); }
.offer-detail-schedule h2 { font-size:clamp(28px,4vw,42px); }
.offer-detail-schedule ol { margin:0; padding:0; display:grid; gap:10px; list-style:none; }
.offer-detail-schedule li { min-width:0; padding:14px 16px; display:grid; grid-template-columns:minmax(220px,1.2fr) minmax(140px,.8fr) minmax(150px,.65fr); align-items:center; gap:12px; border:1px solid var(--border); border-radius:16px; background:rgba(255,255,255,.78); }
.offer-detail-schedule li.is-past { background:rgba(255,255,255,.48); color:var(--muted); }
.offer-detail-schedule li.is-next { border-color:color-mix(in oklab,var(--sunrise) 72%,var(--border)); background:color-mix(in oklab,var(--sunrise) 24%,white); }
.offer-detail-schedule time { display:grid; }
.offer-detail-schedule time span, .offer-detail-schedule small { color:var(--muted); }
.offer-detail-schedule small { grid-column:1 / -1; }
.offer-detail-schedule__badges { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:7px; }
.offer-detail-schedule__badge { min-height:24px; padding:3px 9px; display:inline-flex; align-items:center; border:1px solid var(--border); border-radius:999px; color:var(--muted); background:color-mix(in oklab,var(--icicle) 54%,white); font-size:12px; font-weight:760; line-height:1.25; white-space:nowrap; }
.offer-detail-schedule__badge--next { border-color:color-mix(in oklab,var(--sunrise) 80%,var(--border)); color:var(--text); background:color-mix(in oklab,var(--sunrise) 46%,white); }
.offer-detail-schedule__status { color:#8b3f32; font-size:12px; text-transform:uppercase; }
.offer-detail-directions { display:grid; grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr); align-items:start; gap:clamp(28px,7vw,90px); }
.offer-detail-directions__intro h2 { font-size:clamp(28px,4vw,42px); }
.offer-detail-directions__intro address { margin:18px 0; display:grid; gap:4px; color:var(--muted); font-style:normal; }
.offer-detail-directions__intro address strong { color:var(--text); }
.offer-detail-directions > .course-map { grid-column:2; margin:0; }
.offer-detail-directions > .course-map.is-open { margin-bottom:0; }

@media (max-width: 1020px) {
  .site-hero__frame { grid-template-columns: minmax(0,1fr) minmax(310px,.82fr); }
  .course-card { grid-template-columns: 90px minmax(0,1fr); }
  .course-card__date { margin: 18px 0 18px 18px; }
  .course-card__visual { grid-column: 1 / -1; padding: 0 22px 22px; display: grid; grid-template-columns: minmax(220px,.8fr) minmax(0,1.2fr); align-items: center; }
  .course-card__visual > img, .course-card__visual > .course-card__no-image { grid-row: 1 / span 2; }
  .event-card { grid-template-columns: minmax(160px,.45fr) minmax(0,1fr); }
  .event-card__visual { grid-column: 1 / -1; padding: 0 22px 22px; }
  .event-card__visual > img, .event-card__visual > .course-card__no-image { max-height: 320px; }
  .compact-offer-teaser { grid-template-columns: minmax(0,1fr) minmax(300px,1fr); }
  .compact-offer-teaser > .btn { grid-column: 1 / -1; justify-self: start; }
  .offer-detail-hero__frame { grid-template-columns:minmax(0,1fr); }
  .offer-detail-hero__visual { min-height:clamp(300px,58vw,520px); }
  .offer-detail-notes, .offer-detail-schedule, .offer-detail-directions { grid-template-columns:minmax(0,1fr); gap:22px; }
  .offer-detail-directions > .course-map { grid-column:1; }
}

@media (max-width: 760px) {
  .container { width: min(var(--max), calc(100% - 28px)); }
  .editorial-narrow--balanced { width: min(var(--max), calc(100% - 28px)); }
  .site-hero { padding-top: 20px; }
  .site-hero__frame, .site-hero--compact .site-hero__frame { grid-template-columns: minmax(0,1fr); }
  .site-hero__content { padding: 28px 22px 24px; }
  .site-hero__content::after, .site-hero__media::before { display: none; }
  .site-hero__title { font-size: clamp(34px, 11vw, 52px); }
  .site-hero__media, .site-hero--compact .site-hero__media { min-height: clamp(240px, 70vw, 380px); }
  .site-hero__media img { object-position: center 35%; }
  .site-hero--stable-crop .site-hero__media img { object-position: center; }
  .section { padding: 40px 0; }
  .section__header--split, .locations-overview, .editorial-callout { grid-template-columns: minmax(0,1fr); gap: 14px; }
  .course-card { grid-template-columns: 76px minmax(0,1fr); border-radius: 22px; }
  .course-card__date { min-height: 92px; margin: 14px 0 14px 14px; border-radius: 17px; }
  .course-card__date span { font-size: 28px; }
  .course-card__main { padding: 18px 16px; }
  .course-card__heading { display: grid; }
  .course-card__availability { width: max-content; max-width: 100%; text-align: left; }
  .course-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .course-card__visual { display: flex; padding: 0 16px 16px; }
  .course-card__visual > img { max-height: 300px; }
  .course-map { grid-template-columns: minmax(0,1fr); }
  .course-map.is-open { max-height: 680px; }
  .course-map iframe { min-height: 300px; }
  .event-card { grid-template-columns: minmax(0,1fr); }
  .event-card__date { padding: 20px 22px; }
  .event-card__content { padding: 22px; }
  .event-card__visual { padding: 0 22px 22px; }
  .editorial-split, .general-info-grid { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .editorial-split .editorial-copy, .editorial-split--image-first .editorial-copy { grid-column: 1; grid-row: 1; }
  .editorial-split .editorial-media, .editorial-split--image-first .editorial-media { grid-column: 1; grid-row: 2; }
  .editorial-split .editorial-split__actions, .editorial-split--image-first .editorial-split__actions { grid-column: 1; grid-row: 3; margin-top: -10px; }
  .editorial-media { margin-top: 2px; }
  .compact-offer-teaser { grid-template-columns: minmax(0,1fr); gap: 16px; }
  .compact-offer-teaser dl { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .compact-offer-teaser > .btn { grid-column: auto; justify-self: stretch; }
  .offer-detail-hero__content { padding:30px 22px; }
  .offer-detail-hero__visual { min-height:clamp(260px,74vw,390px); }
  .offer-detail-schedule li { grid-template-columns:minmax(0,1fr) auto; }
  .offer-detail-schedule__location { grid-column:1; }
  .offer-detail-schedule__badges { grid-column:2; grid-row:1 / span 2; justify-content:flex-end; }
  .course-schedule-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 20px); margin: auto auto 10px; border-radius: 24px 24px 18px 18px; }
  .course-schedule-dialog__header { padding: 18px 16px 14px; }
  .course-schedule-list { padding: 8px 12px 18px; }
}

@media (max-width: 920px) {
  .nav { display: flex; visibility: hidden; opacity: 0; transform: translateY(-8px) scale(.98); transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s; }
  .nav.is-open { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }
}

@media (max-width: 420px) {
  .brand__text { display: none; }
  .hero__cta .btn, .site-hero__sections a, .flyer-callout .btn { width: 100%; }
  .course-card { grid-template-columns: minmax(0,1fr); }
  .course-card__date { width: 74px; min-height: 74px; margin-bottom: 0; }
  .course-card__main { padding-top: 12px; }
  .course-facts, .structured-notes { grid-template-columns: minmax(0,1fr); }
  .course-card__actions .btn { flex-basis: 100%; }
  .home-course-row { grid-template-columns: 48px minmax(0,1fr); }
  .home-course-row .btn { grid-column: 1 / -1; }
  .flyer-callout { align-items: stretch; flex-direction: column; }
  .footer__links { align-items: flex-start; flex-direction: column; }
  .compact-offer-teaser dl, .event-facts { grid-template-columns: minmax(0,1fr); }
  .course-schedule-list li { align-items: start; flex-direction: column; gap: 7px; }
  .offer-detail-facts { grid-template-columns:minmax(0,1fr); }
  .offer-detail-action { align-items:stretch; flex-direction:column; }
  .offer-detail-action .btn { width:100%; }
  .offer-detail-state { flex-basis:auto; }
  .offer-detail-schedule small { grid-column:1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .card:hover, .course-card:hover { transform: none; }
}
