@font-face {
  font-family: "Barlow";
  src: url("./assets/fonts/Barlow-Light.woff2") format("woff2");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: "Barlow";
  src: url("./assets/fonts/Barlow-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "Barlow";
  src: url("./assets/fonts/Barlow-Medium.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "Barlow";
  src: url("./assets/fonts/Barlow-SemiBold.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

:root {
  --blue: #13598d;
  --blue-deep: #00365f;
  --blue-soft: #e9f2f8;
  --orange: #f39207;
  --orange-light: #f8af35;
  --ink: #17222a;
  --muted: #5c6971;
  --paper: #fff;
  --soft: #f7f7f7;
  --line: #dbe2e7;
  --shadow: 0 18px 45px rgba(19, 52, 75, .12);
  --radius: 14px;
  --content: 1180px;
  --header-height: 132px;
}

*, *::before, *::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 1rem);
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Barlow", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1.08rem;
  font-weight: 300;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
}

button, input, select, textarea { font-family: inherit; }

img, video, iframe { display: block; max-width: 100%; }

a {
  color: var(--blue);
  text-decoration-thickness: .08em;
  text-underline-offset: .16em;
}

a:hover { color: var(--blue-deep); }

h1, h2, h3, h4, h5, h6 {
  color: var(--blue-deep);
  font-weight: 500;
  line-height: 1.15;
  margin: 1.6em 0 .65em;
  text-wrap: balance;
}

h1 { font-size: clamp(2.1rem, 5vw, 4.5rem); letter-spacing: -.025em; }
h2 { font-size: clamp(1.65rem, 3vw, 2.5rem); }
h3 { font-size: clamp(1.35rem, 2.4vw, 2rem); }
h4 { font-size: clamp(1.18rem, 1.8vw, 1.45rem); }
h5 { font-size: 1.18rem; }

p, ul, ol { margin: 0 0 1.15rem; }
li + li { margin-top: .35rem; }

.sr-only,
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: fixed;
  top: .75rem;
  left: .75rem;
  z-index: 1000;
  transform: translateY(-160%);
  background: #fff;
  color: var(--blue-deep);
  padding: .7rem 1rem;
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.skip-link:focus { transform: translateY(0); }

.site-header {
  position: sticky;
  top: 0;
  z-index: 500;
  color: #fff;
  border-bottom: 1px solid rgba(255, 255, 255, .16);
  background: linear-gradient(105deg, #13598d 0%, #164f7d 100%);
  box-shadow: 0 8px 24px rgba(0, 31, 54, .18);
}

.header-inner {
  width: 100%;
  min-height: var(--header-height);
  margin: 0 auto;
  padding: 0 clamp(1.25rem, 3vw, 3.25rem);
  display: flex;
  align-items: center;
  gap: clamp(1.25rem, 3vw, 3rem);
}

.brand-bar {
  order: 2;
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.brand { display: flex; align-items: center; }
.brand img { display: block; width: clamp(220px, 15vw, 280px); height: 76px; object-fit: contain; object-position: right center; }

.menu-toggle {
  display: none;
  width: 44px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  color: #fff;
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease;
}

.menu-toggle:hover,
.menu-toggle:focus-visible { border-color: rgba(255,255,255,.7); background: rgba(255,255,255,.15); }

.menu-toggle__icon,
.menu-toggle__icon::before,
.menu-toggle__icon::after {
  display: block;
  width: 22px;
  height: 2px;
  margin: 0 auto;
  background: currentColor;
  content: "";
  transition: transform .2s ease;
}

.menu-toggle__icon::before { transform: translateY(-7px); }
.menu-toggle__icon::after { transform: translateY(5px); }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon::before { transform: translateY(0) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle__icon::after { transform: translateY(-2px) rotate(-45deg); }

.primary-nav {
  order: 1;
  min-width: 0;
  flex: 1 1 auto;
}

.nav-list, .submenu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav-list {
  min-height: 52px;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
}

.nav-item { position: relative; margin: 0; }
.nav-row { display: flex; height: 100%; align-items: stretch; }
.nav-row > a {
  position: relative;
  display: flex;
  min-height: 52px;
  padding: 0 clamp(.72rem, 1.15vw, 1.15rem);
  align-items: center;
  color: #fff;
  font-family: "Barlow", system-ui, sans-serif;
  font-size: .91rem;
  font-weight: 500;
  letter-spacing: .025em;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
  transition: color .2s ease;
}

.nav-list > .nav-item > .nav-row > a::after {
  position: absolute;
  right: clamp(.72rem, 1.15vw, 1.15rem);
  bottom: 3px;
  left: clamp(.72rem, 1.15vw, 1.15rem);
  height: 1px;
  background: var(--orange-light);
  content: "";
  opacity: 0;
  transform: scaleX(.45);
  transition: opacity .2s ease, transform .2s ease;
}

.nav-row > a small {
  display: block;
  margin-left: .35rem;
  color: rgba(255,255,255,.72);
  font-size: .68rem;
}

.nav-item.is-active > .nav-row > a,
.nav-row > a:hover,
.nav-row > a:focus-visible { background: transparent; color: #f90; }

.nav-list > .nav-item.is-active > .nav-row > a::after,
.nav-list > .nav-item > .nav-row > a:hover::after,
.nav-list > .nav-item > .nav-row > a:focus-visible::after { opacity: 1; transform: scaleX(1); }

.submenu-toggle {
  width: 24px;
  margin-left: -.6rem;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.78);
  cursor: pointer;
  transition: color .2s ease;
}

.submenu-toggle:hover,
.submenu-toggle:focus-visible { color: var(--orange-light); }

.submenu-toggle span::before {
  display: block;
  content: "";
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translate(-2px, 2px);
}

.submenu {
  display: none;
  position: absolute;
  top: calc(100% + .55rem);
  left: 0;
  z-index: 30;
  min-width: 250px;
  padding: .55rem;
  border: 1px solid rgba(19, 89, 141, .12);
  border-radius: 13px;
  background: rgba(255, 255, 255, .985);
  box-shadow: 0 18px 46px rgba(0, 35, 62, .18);
}

@media (min-width: 1201px) {
  /* Schliesst die optische Luecke, damit das Untermenue beim Hinunterfahren
     mit der Maus nicht den Hover-Kontakt zum Hauptmenue verliert. */
  .nav-list > .has-submenu > .submenu::before {
    position: absolute;
    right: 0;
    bottom: 100%;
    left: 0;
    height: .55rem;
    content: "";
  }

  /* Derselbe sichere Uebergang fuer seitlich aufklappende Untermenues. */
  .submenu .has-submenu > .submenu::before {
    position: absolute;
    top: 0;
    right: 100%;
    bottom: 0;
    width: .25rem;
    content: "";
  }
}

.submenu .nav-row > a {
  width: 100%;
  min-height: 40px;
  padding: .65rem .75rem;
  border-radius: 8px;
  color: var(--blue-deep);
  font-size: .92rem;
  letter-spacing: 0;
  white-space: normal;
}

.submenu .nav-row > a small { color: var(--muted); }
.submenu .nav-row > a:hover,
.submenu .nav-row > a:focus-visible { background: var(--blue-soft); color: var(--blue-deep); }
.submenu .submenu-toggle { margin-left: -.3rem; color: var(--blue-deep); }
.submenu .submenu-toggle:hover,
.submenu .submenu-toggle:focus-visible { color: var(--orange); }
.submenu .submenu { top: -.55rem; left: calc(100% + .25rem); border-radius: 13px; }
.has-submenu:hover > .submenu,
.has-submenu:focus-within > .submenu { display: block; }

.section {
  width: min(var(--content), calc(100% - 2rem));
  margin: 0 auto;
  padding: clamp(3.5rem, 7vw, 4rem) clamp(.1rem, 2vw, 1.5rem);
}

.section--soft {
  width: 100%;
  max-width: none;
  padding-inline: max(1rem, calc((100% - var(--content)) / 2));
  background: var(--soft);
}

.eyebrow {
  margin-bottom: .8rem;
  color: var(--orange);
  font-size: .83rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.home-intro-flow {
  display: flow-root;
  background: radial-gradient(circle at 92% 0, rgb(245 163 26 / 16%), transparent 34%), linear-gradient(126deg, #ffebcd 0%, #ffffff 58%, #ffffff 100%);
}

.hero-carousel {
  position: relative;
  width: min(var(--content), calc(100% - 2rem));
  margin: clamp(1rem, 3.5vw, 3.5rem) auto 0;
  overflow: hidden;
  isolation: isolate;
  border-radius: clamp(14px, 1.5vw, 20px);
  background: #e8edf0;
  box-shadow: 0 14px 34px rgba(19, 52, 75, .13);
  /* border-bottom: 5px solid var(--orange);*/
}

.hero-carousel ul { position: relative; margin: 0; padding: 0; aspect-ratio: 1350 / 226; list-style: none; }
.hero-slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity .9s ease; }
.hero-slide.is-active { z-index: 1; opacity: 1; }
.hero-slide picture, .hero-slide img { width: 100%; height: 100%; }
.hero-slide img { object-fit: cover; }

.hero-control {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 44px;
  height: 44px;
  overflow: hidden;
  isolation: isolate;
  border: 1px solid rgba(255, 255, 255, .42);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, .12);
  color: var(--blue-deep);
  padding: 0;
  box-shadow: 0 5px 14px rgba(0, 35, 62, .11);
  -webkit-backdrop-filter: blur(8px) saturate(120%);
  backdrop-filter: blur(8px) saturate(120%);
  cursor: pointer;
  transform: translateY(-50%);
  transition: background-color .22s ease, border-color .22s ease, box-shadow .22s ease, transform .22s ease;
}

.hero-control svg {
  position: relative;
  z-index: 1;
  display: block;
  width: 18px;
  height: 18px;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}

.hero-control:hover {
  border-color: rgba(255, 255, 255, .62);
  background: rgba(255, 255, 255, .2);
  box-shadow: 0 7px 18px rgba(0, 35, 62, .14);
  transform: translateY(-50%) scale(1.04);
}
.hero-control:active { transform: translateY(-50%) scale(.98); }
.hero-control:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
.hero-control--prev { left: 1.15rem; }
.hero-control--next { right: 1.15rem; }

.social-entry {
  width: 100%;
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
}
.social-entry__inner {
  width: min(var(--content), calc(100% - 2rem));
  margin: 0 auto;
  padding: clamp(2.5rem, 5vw, 4rem) clamp(.1rem, 2vw, 1.5rem);
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(260px, .75fr);
  gap: clamp(1.5rem, 5vw, 4.5rem);
  align-items: end;
}
.social-entry__copy h1 { max-width: 850px; margin: 0; font-size: clamp(2.35rem, 5vw, 4.7rem); }
.social-entry__copy > p:last-child { max-width: 760px; margin: 1.15rem 0 0; color: #344550; font-size: clamp(1.08rem, 2vw, 1.32rem); }
.social-entry__actions {
  display: grid;
  gap: .7rem;
}
.social-entry__actions .button { width: 100%; }
.social-entry__actions .button--quiet { border-color: rgba(243, 146, 7, .5); background: #fffaf2; }
.social-entry__text-link { padding: .55rem .25rem; font-weight: 500; text-align: center; text-decoration: none; }

.welcome-section {
  display: block;
}

.welcome-copy { display: flow-root; }
.welcome-copy h2 { margin-top: 0; font-size: clamp(2rem, 4vw, 3.5rem); }
.welcome-media { float: right; width: min(46%, 520px); margin: 0 0 1.5rem clamp(1.5rem, 4vw, 3rem); }
.welcome-media video { width: 100%; border-radius: var(--radius); box-shadow: var(--shadow); }
.welcome-conclusion { font-size: 1.14rem; font-weight: 400; }
.copy--mobile { display: none; }

.quick-links {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  padding-top: 1rem;
  text-align: center;
}

.quick-link { display: grid; justify-items: center; gap: 1rem; color: var(--blue-deep); font-size: 1.28rem; font-weight: 500; text-decoration: none; }
.quick-link img { width: 128px; transition: transform .25s ease; }
.quick-link:hover img { transform: translateY(-5px) scale(1.03); }

.offer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.35rem; }
.offer-card { overflow: hidden; border-radius: var(--radius); background: #fff; box-shadow: 0 8px 26px rgba(0,54,95,.08); transition: transform .25s ease, box-shadow .25s ease; }
.offer-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.offer-card a { display: block; height: 100%; color: var(--ink); text-decoration: none; }
.offer-card img { width: 100%; height: auto; object-fit: cover; }
.offer-card div { padding: 1.2rem; }
.offer-card p { min-height: 3.4em; font-weight: 400; }
.offer-card span { color: var(--blue); font-size: .94rem; font-weight: 500; }

.video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.video-card { border-radius: var(--radius); background: var(--blue-deep); color: #fff; overflow: hidden; box-shadow: var(--shadow); }
.video-card h2 { margin: 1.25rem 1.25rem .5rem; color: #fff; font-size: 1.35rem; }
.video-card > a { display: inline-block; margin: 0 1.25rem 1.35rem; color: #fff; }

.home-social { display: grid; gap: 1.5rem; }
.home-social__intro { max-width: 780px; }
.home-social__intro h2 { margin: 0; }
.home-social__intro > p:last-child { margin-bottom: 0; color: #344550; }
.social-channel-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.social-channel {
  min-width: 0;
  padding: 1.15rem;
  border: 1px solid rgba(19, 89, 141, .16);
  border-radius: var(--radius);
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: .25rem 1rem;
  align-items: center;
  background: #fff;
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(19, 52, 75, .07);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.social-channel:hover,
.social-channel:focus-visible { border-color: rgba(19, 89, 141, .45); color: var(--ink); box-shadow: var(--shadow); transform: translateY(-3px); }
.social-channel > img { width: 52px; height: 52px; grid-row: 1 / span 2; object-fit: contain; }
.social-channel__copy { min-width: 0; display: grid; }
.social-channel__copy strong { color: var(--blue-deep); font-size: 1.18rem; font-weight: 600; }
.social-channel__copy small { color: var(--muted); font-size: .93rem; line-height: 1.4; }
.social-channel__action { grid-column: 2; color: var(--blue); font-size: .9rem; font-weight: 500; }
.home-social__privacy { margin: 0; color: var(--muted); font-size: .86rem; }

.page-hero {
  position: relative;
  min-height: 250px;
  display: grid;
  place-items: end start;
  overflow: hidden;
  background: linear-gradient(90deg, rgba(0,54,95,.96), rgba(19,89,141,.72)), url("./assets/images/bannergrafiken/Felsenbilder/Felsengrafik%203-100.jpg") center 44% / cover;
}

.page-hero::after { position: absolute; inset: auto 0 0; height: 5px; background: var(--orange); content: ""; }
.page-hero > div { width: min(var(--content), calc(100% - 2rem)); margin: 0 auto; padding: clamp(3rem, 7vw, 5rem) clamp(.1rem, 2vw, 1.5rem) 2.6rem; }
.page-hero h1 { max-width: 900px; margin: 0; color: #fff; font-size: clamp(2.2rem, 5vw, 4rem); }
.page-hero .eyebrow { color: #ffd08a; }

.page-content { max-width: 1040px; padding-top: clamp(2.5rem, 5vw, 4.5rem); }
.page-content > :first-child { margin-top: 0; }
.page-content img { height: auto; border-radius: 10px; }
.page-content hr { height: 1px; margin: 3.5rem 0; border: 0; background: var(--line); }
.page-content .lead { font-size: 1.22rem; line-height: 1.55; }
.page-content .card,
.page-content .uk-card {
  margin: 0 0 1.5rem;
  padding: clamp(1rem, 3vw, 2rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--soft);
}

.page-content .uk-card-secondary { background: var(--blue-deep); color: #fff; }
.page-content .uk-card-secondary h2,
.page-content .uk-card-secondary h3,
.page-content .uk-card-secondary h4,
.page-content .uk-card-secondary a { color: #fff; }

.page-content .row { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.page-content .row > * { flex: 1 1 260px; }
.page-content .col-md-3 { flex-basis: 190px; flex-grow: .65; }
.page-content .col-md-4 { flex-basis: 240px; flex-grow: .8; }
.page-content .col-md-8, .page-content .col-md-9 { flex-basis: 430px; flex-grow: 1.5; }

.page-content [class*="uk-child-width"] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
}

.page-content [class*="uk-child-width"] > div { min-width: 0; }
.page-content .uk-tab { display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; list-style: none; }
.page-content .uk-tab li { margin: 0; }
.page-content .uk-tab a { display: inline-block; padding: .55rem .8rem; border-radius: 8px; background: var(--blue-soft); text-decoration: none; }
.page-content .uk-nav {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: 0 0 1.25rem;
  padding: 0;
  list-style: none;
}
.page-content .uk-nav li { margin: 0; }
.page-content .uk-nav a {
  display: block;
  padding: .62rem .82rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--blue-deep);
  font-weight: 500;
  line-height: 1.25;
  text-decoration: none;
}
.page-content .uk-nav a:hover,
.page-content .uk-nav a:focus-visible,
.page-content .uk-nav .is-active a {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
}
.page-content .uk-switcher { padding: 0; list-style: none; }
.page-content .uk-switcher > li { margin: 0 0 2rem; padding: clamp(1rem, 3vw, 2rem); border: 1px solid var(--line); border-radius: var(--radius); }
.page-content .uk-switcher > li[hidden] { display: none; }

/* Ausbildungsangebote: gemeinsamer Ausbildungsweg, Übersicht und Kursdetails. */
.education-page { max-width: 1180px; }

.education-local-nav {
  margin: 0 0 clamp(2rem, 5vw, 3.5rem);
  padding: .85rem;
  display: flex;
  gap: 1rem;
  align-items: center;
  border: 1px solid rgba(19, 89, 141, .15);
  border-radius: 14px;
  background: rgba(233, 242, 248, .65);
}
.education-local-nav > span {
  flex: 0 0 auto;
  padding: 0 .5rem;
  color: var(--blue-deep);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.education-local-nav > div { display: flex; flex: 1; gap: .35rem; }
.education-local-nav a {
  min-height: 42px;
  padding: .55rem .8rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  color: var(--blue-deep);
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
}
.education-local-nav a:hover,
.education-local-nav a:focus-visible { background: #fff; color: var(--blue-deep); }
.education-local-nav a[aria-current="page"] {
  background: var(--blue);
  color: #fff;
  box-shadow: 0 6px 16px rgba(19, 89, 141, .18);
}

.education-overview { display: grid; gap: clamp(2.2rem, 5vw, 4.5rem); }
.education-overview__intro {
  max-width: 900px;
  padding-left: clamp(1rem, 2.5vw, 1.8rem);
  border-left: 4px solid var(--orange);
}
.education-overview__intro h2,
.education-course-intro h2,
.education-info-evening h2 { margin: .25rem 0 .85rem; }
.education-overview__intro .lead,
.education-course-intro .lead,
.education-info-evening .lead { margin-bottom: .85rem; color: #344550; }
.education-stage,
.education-step {
  margin: 0 0 .45rem;
  color: var(--blue);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .09em;
  line-height: 1.35;
  text-transform: uppercase;
}

.education-path {
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.4vw, 1.7rem);
  list-style: none;
}
.education-path > li { min-width: 0; margin: 0; }
.education-offer-card > article {
  height: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(19, 89, 141, .17);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(19, 52, 75, .09);
}
.education-offer-card__media { overflow: hidden; aspect-ratio: 705 / 447; background: var(--soft); }
.page-content .education-offer-card__media img {
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
  transition: transform .3s ease;
}
.education-offer-card:hover .education-offer-card__media img { transform: scale(1.025); }
.education-offer-card__body {
  flex: 1;
  padding: clamp(1.25rem, 2.5vw, 1.8rem);
  display: flex;
  flex-direction: column;
}
.education-offer-card h3 { margin: 0 0 .75rem; font-size: clamp(1.35rem, 2vw, 1.65rem); }
.education-offer-card__body > p:not(.education-step):not(.education-status) { color: #344550; }
.education-highlights { margin: .35rem 0 1.15rem; padding: 0; list-style: none; }
.education-highlights li { position: relative; margin: 0 0 .5rem; padding-left: 1.25rem; line-height: 1.45; }
.education-highlights li::before {
  position: absolute;
  top: .58em;
  left: 0;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--orange);
  content: "";
}
.education-status {
  margin-top: auto;
  padding: .8rem 0 0;
  border-top: 1px solid var(--line);
  color: var(--blue-deep);
  font-size: .94rem;
  line-height: 1.45;
}
.education-card-cta { width: 100%; margin-top: 1rem; }
.education-card-cta span { margin-left: .4rem; }

.education-choice {
  padding: clamp(1.5rem, 4vw, 2.8rem);
  border-radius: 22px;
  background: linear-gradient(135deg, var(--blue-deep), var(--blue));
  color: #fff;
}
.education-choice h2,
.education-choice h3,
.education-choice a { color: #fff; }
.education-choice h2 { margin: .2rem 0 1.4rem; }
.education-choice .education-stage { color: #ffd08a; }
.education-choice__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.education-choice__grid article {
  padding: 1.2rem;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 14px;
  background: rgba(255, 255, 255, .08);
}
.education-choice__grid h3 { margin: 0 0 .55rem; font-size: 1.18rem; }
.education-choice__grid p { margin: 0; color: rgba(255, 255, 255, .88); }
.education-choice__contact { margin: 1.35rem 0 0; }
.education-choice__contact a { font-weight: 600; }

.education-course-intro,
.education-info-evening {
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  border: 1px solid rgba(19, 89, 141, .15);
  border-radius: 22px;
  background: rgb(204 204 204 / 11%);
}
.education-course-intro__copy,
.education-info-evening__copy { padding: clamp(1.5rem, 4vw, 3rem); }
.education-course-intro__media,
.education-info-evening__media {
  min-height: 300px;
  display: grid;
  align-items: center;
  background: var(--blue-soft);
}
.education-course-intro__media > img,
.education-info-evening__media > img {
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: 0;
  object-fit: cover;
}
.education-course-intro__media .external-embed { border-radius: 0; }
.education-actions { margin-top: 1.35rem; display: flex; flex-wrap: wrap; gap: .65rem; }
.education-actions .button--quiet { border-color: rgba(19, 89, 141, .35); }
.education-notice {
  margin: 1.15rem 0 0;
  padding: .9rem 1rem;
  border-left: 3px solid var(--orange);
  border-radius: 0 8px 8px 0;
  background: rgba(243, 146, 7, .08);
  color: #344550;
}

.education-facts {
  margin: 1rem 0 clamp(2.4rem, 5vw, 4rem);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .75rem;
}
.education-facts > div {
  padding: 1rem 1.1rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.education-facts span { display: block; margin-bottom: .25rem; color: var(--muted); font-size: .8rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.education-facts strong { display: block; color: var(--blue-deep); font-size: .98rem; line-height: 1.4; }

.education-tabs { scroll-margin-top: calc(var(--header-height) + 1.2rem); }
.education-tabs > .uk-grid {
  display: grid;
  grid-template-columns: minmax(215px, 250px) minmax(0, 1fr);
  gap: clamp(1.2rem, 3vw, 2.2rem);
  align-items: start;
}
.education-tabs > .uk-grid > div { min-width: 0; }
.page-content .education-tabs .uk-nav {
  margin: 0;
  padding: .7rem;
  display: grid;
  gap: .35rem;
  border: 1px solid rgba(19, 89, 141, .13);
  border-radius: 14px;
  background: rgba(233, 242, 248, .55);
}
.page-content .education-tabs .uk-nav a {
  min-height: 44px;
  padding: .65rem .75rem;
  border-color: transparent;
  background: transparent;
}
.page-content .education-tabs .uk-nav a:hover,
.page-content .education-tabs .uk-nav a:focus-visible { border-color: rgba(19, 89, 141, .18); background: #fff; color: var(--blue-deep); }
.page-content .education-tabs .uk-nav .is-active a {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
  box-shadow: 0 5px 14px rgba(19, 89, 141, .18);
}
.page-content .education-tabs .uk-switcher { margin: 0; }
.page-content .education-tabs .uk-switcher > li {
  margin: 0;
  padding: clamp(1.3rem, 3.5vw, 2.5rem);
  border-color: rgba(19, 89, 141, .15);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(19, 52, 75, .07);
}
.education-tabs .uk-switcher > li > .uk-panel > h4:first-child {
  margin: 0 0 1.25rem;
  padding-bottom: .75rem;
  border-bottom: 3px solid var(--orange);
  color: var(--blue-deep);
  font-size: clamp(1.35rem, 2.4vw, 1.8rem);
}
.education-tabs .uk-panel .uk-margin > h4 { margin: 1.65rem 0 .55rem; color: var(--blue-deep); }
.education-tabs .uk-panel .uk-margin > h4:first-child { margin-top: 0; }
.education-tabs .registration-form { margin: 1rem 0 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }

.education-info-evening { grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr); }
.education-info-evening__media { padding: 0; }
.education-interest {
  margin-top: 1.25rem;
  padding: clamp(1.4rem, 4vw, 2.6rem);
  border: 1px solid rgba(19, 89, 141, .15);
  border-radius: 20px;
  background: rgba(233, 242, 248, .45);
}
.education-interest > div { max-width: 820px; }
.education-interest h2 { margin: .2rem 0 .65rem; }
.education-interest-form { margin: 1.4rem 0 0; background: #fff; box-shadow: none; }
.education-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.education-interest-form .form-field > label { display: block; margin-bottom: .4rem; color: var(--blue-deep); font-weight: 500; }
.education-interest-form fieldset { margin: 0 0 1.1rem; padding: 0; border: 0; }
.education-interest-form legend { margin-bottom: .45rem; color: var(--blue-deep); font-weight: 500; }
.education-interest-check { display: flex !important; gap: .45rem; align-items: flex-start; color: var(--ink) !important; font-weight: 400 !important; }
.education-interest-check input { flex: 0 0 auto; margin-top: .32rem; }

.coaching-page,
.paarberatung-page {
  display: grid;
  gap: 1.5rem;
}

.coaching-intro,
.paarberatung-intro {
  max-width: 900px;
  margin-bottom: .35rem;
}

.coaching-intro h2,
.paarberatung-intro h2 { margin-bottom: .8rem; }
.coaching-intro .lead,
.paarberatung-intro .lead { margin-bottom: 0; color: #344550; }
.coaching-intro .lead + .lead { margin-top: .65rem; }

.coaching-card,
.paarberatung-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(190px, 240px) minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
  overflow: hidden;
  padding: clamp(1.4rem, 4vw, 2.6rem);
  border: 1px solid rgba(19, 89, 141, .15);
  border-radius: 20px;
  background: rgb(204 204 204 / 11%);
  /*box-shadow: 0 12px 34px rgba(19, 52, 75, .08);*/
}

.coaching-card::before,
.paarberatung-card::before,
.coaching-booking-panel::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--orange), var(--orange-light));
  content: "";
}

.coaching-visual,
.paarberatung-visual {
  min-height: 220px;
  padding: 1.25rem;
  display: grid;
  align-items: start;
  justify-items: center;
  background: transparent;
}

.coaching-visual img,
.paarberatung-visual img {
  width: auto;
  max-width: 210px;
  max-height: 220px;
  margin: 0;
}

.coaching-card--gemeinsam .coaching-visual img,
.paarberatung-card--gemeinsam .paarberatung-visual img { max-width: 175px; }
.coaching-card--kosten .coaching-visual img,
.paarberatung-card--kosten .paarberatung-visual img { max-width: 185px; }
.coaching-card--photo .coaching-visual { min-height: 0; }
.coaching-card--photo .coaching-visual img { max-width: 220px; border-radius: 14px; }
.coaching-visual-link { color: inherit; text-decoration: none; }
.coaching-visual-link:focus-visible { outline: 3px solid var(--orange); outline-offset: 4px; }

.coaching-copy h3,
.paarberatung-copy h3 {
  margin: 0 0 .8rem;
  color: var(--blue-deep);
  font-size: clamp(1.45rem, 2.2vw, 1.8rem);
}

.coaching-copy p,
.paarberatung-copy p { margin-bottom: 1rem; }
.coaching-copy ul,
.paarberatung-copy ul { margin: 1.15rem 0 0; padding: 0; list-style: none; }
.coaching-copy li,
.paarberatung-copy li { position: relative; margin: 0 0 .72rem; padding-left: 1.35rem; }
.coaching-copy li::before,
.paarberatung-copy li::before {
  position: absolute;
  top: .68em;
  left: .05rem;
  width: .48rem;
  height: .48rem;
  border-radius: 50%;
  background: var(--orange);
  content: "";
}

.coaching-cta,
.paarberatung-cta {
  width: fit-content;
  min-height: 48px;
  margin: 1.15rem 0 0 auto;
  padding: .35rem 1rem .35rem .38rem;
  display: flex;
  gap: .65rem;
  align-items: center;
  border: 1px solid rgba(19, 89, 141, .22);
  border-radius: 999px;
  background: #fff;
  color: var(--blue-deep);
  font-weight: 600;
  text-decoration: none;
  box-shadow: 0 7px 18px rgba(19, 52, 75, .08);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.coaching-cta img,
.paarberatung-cta img { width: 40px; height: 40px; margin: 0; border-radius: 50%; }
.coaching-cta:hover,
.coaching-cta:focus-visible,
.paarberatung-cta:hover,
.paarberatung-cta:focus-visible {
  border-color: var(--orange);
  color: var(--blue-deep);
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(19, 52, 75, .13);
}

.coaching-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  justify-content: flex-end;
  align-items: center;
  margin-top: 1.15rem;
}
.coaching-card-actions .coaching-cta { margin-top: 0; margin-left: 0; }
.coaching-detail-link {
  display: inline-flex;
  gap: .4rem;
  align-items: center;
  min-height: 44px;
  padding: .55rem .85rem;
  border-radius: 999px;
  color: var(--blue-deep);
  font-weight: 600;
  text-decoration: none;
}
.coaching-detail-link:hover,
.coaching-detail-link:focus-visible { color: var(--orange-dark); text-decoration: underline; }

.coaching-booking-panel {
  position: relative;
  overflow: hidden;
  padding: clamp(1.4rem, 4vw, 2.6rem);
  border: 1px solid rgba(19, 89, 141, .15);
  border-radius: 20px;
  background: rgb(204 204 204 / 11%);
}
.coaching-booking-panel h3 { margin-top: 0; color: var(--blue-deep); }
.coaching-booking-panel .external-embed { background: rgba(255, 255, 255, .72); }
.coaching-booking-options { margin-top: 1rem; }

.coaching-actions,
.paarberatung-actions { display: flex; justify-content: flex-end; padding-top: .4rem; }
.coaching-back,
.paarberatung-back {
  display: inline-flex;
  gap: .45rem;
  align-items: center;
  padding: .62rem .9rem;
  border-radius: 8px;
  color: var(--blue-deep);
  font-weight: 500;
  text-decoration: none;
}
.coaching-back:hover,
.coaching-back:focus-visible,
.paarberatung-back:hover,
.paarberatung-back:focus-visible { background: var(--blue-soft); color: var(--blue-deep); }

.button,
.page-content button,
.page-content input[type="submit"] {
  display: inline-flex;
  min-height: 44px;
  padding: .68rem 1.05rem;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--blue);
  border-radius: 8px;
  background: var(--blue);
  color: #fff;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.1;
  text-decoration: none;
  cursor: pointer;
}

.button:hover,
.page-content button:hover { background: var(--blue-deep); color: #fff; }
.button:disabled { cursor: wait; opacity: .6; }
.button--quiet { background: #fff; color: var(--blue-deep); }
.button--small { min-height: 40px; padding: .55rem .85rem; font-size: .92rem; }

.external-embed {
  width: 100%;
  min-height: 220px;
  overflow: hidden;
  border-radius: 12px;
  background: #e7edf1;
}

.external-embed--video { aspect-ratio: 16 / 9; min-height: 0; }
.external-embed--map { min-height: 260px; }
.location-map { max-width: 920px; min-height: clamp(320px, 45vw, 480px); margin: 1.5rem 0 1rem; }
.external-embed--tall { min-height: min(900px, 75vh); }
.eventfrog-wrapper,
.external-embed[data-embed-src^="https://embed.eventfrog.ch/"] {
  background: var(--paper);
  border-radius: 0;
}
.external-embed[data-embed-src^="https://embed.eventfrog.ch/"] { min-height: 620px; }
.external-embed[data-embed-src^="https://embed.eventfrog.ch/"] iframe { background: var(--paper); }
.external-embed iframe { width: 100%; height: 100%; min-height: inherit; border: 0; }
.embed-placeholder { width: 100%; min-height: inherit; padding: clamp(1.2rem, 4vw, 2.5rem); display: grid; place-content: center; justify-items: center; text-align: center; }
.embed-placeholder p { max-width: 560px; margin-bottom: .65rem; }

.youtube-placeholder {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: inherit;
  display: grid;
  place-items: center;
  isolation: isolate;
  background: var(--blue-deep);
}

.youtube-placeholder::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(0, 20, 36, .08), rgba(0, 20, 36, .7));
  content: "";
}

.youtube-placeholder__image {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.youtube-placeholder__content {
  width: min(92%, 520px);
  padding: 1rem;
  align-self: end;
  color: #fff;
  text-align: center;
  text-shadow: 0 1px 3px rgba(0, 20, 36, .7);
}

.youtube-placeholder__content p {
  max-width: 470px;
  margin: .65rem auto 0;
  color: rgba(255, 255, 255, .94);
  font-size: clamp(.78rem, 1.4vw, .9rem);
  line-height: 1.35;
}

.youtube-activate {
  min-height: 44px;
  padding: .65rem 1rem;
  border: 1px solid rgba(255, 255, 255, .8);
  border-radius: 999px;
  display: inline-flex;
  gap: .55rem;
  align-items: center;
  background: rgba(255, 255, 255, .94);
  color: var(--blue-deep);
  font-size: .94rem;
  font-weight: 600;
  line-height: 1.2;
  text-shadow: none;
  box-shadow: 0 8px 24px rgba(0, 20, 36, .24);
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

.youtube-activate span { color: var(--orange); font-size: .82rem; }
.youtube-activate:hover,
.youtube-activate:focus-visible { background: var(--orange); color: #fff; transform: translateY(-1px); }
.youtube-activate:hover span,
.youtube-activate:focus-visible span { color: #fff; }

.location-link-panel {
  max-width: 720px;
  margin: 1.4rem 0 2rem;
  padding: 1rem 1.15rem;
  border-left: 3px solid var(--blue);
  border-radius: 0 8px 8px 0;
  background: rgba(0, 91, 143, .055);
}

.location-link-panel p { margin: 0; }
.location-link-panel p + p { margin-top: .65rem; }
.location-link-notice { color: var(--text-soft); font-size: .92rem; line-height: 1.55; }
.location-map-link { font-weight: 600; text-underline-offset: .18em; }
.location-map-link span { display: inline-block; margin-left: .18rem; font-size: .88em; }

.registration-form {
  margin: 2rem 0;
  padding: clamp(1.2rem, 4vw, 2.5rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(145deg, #fff 0%, #fbfdff 100%);
  box-shadow: 0 10px 35px rgba(0,54,95,.08);
}
.registration-form .form-trap {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.registration-form .form-header { max-width: 720px; margin-bottom: 1.35rem; }
.registration-form .form-header h2,
.registration-form .form-header h3 { margin: .15rem 0 .4rem; }
.registration-form .form-header p:last-child { margin: 0; color: var(--muted); }
.registration-form .form-eyebrow { margin: 0; color: #a85400; font-size: .78rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.registration-form .form-step {
  margin: 0 0 1rem;
  padding: clamp(1.1rem, 2.5vw, 1.55rem);
  border: 1px solid rgba(19, 89, 141, .14);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(0, 54, 95, .045);
}
.registration-form .form-step--finish { background: rgba(233, 242, 248, .48); }
.registration-form .form-step__heading { display: flex; gap: .85rem; align-items: flex-start; margin-bottom: 1.1rem; }
.registration-form .form-step__heading h3 { margin: .05rem 0 .15rem; color: var(--blue-deep); font-size: clamp(1.2rem, 2.5vw, 1.55rem); }
.registration-form .form-step__heading p { margin: 0; color: var(--muted); font-size: .96rem; }
.registration-form .form-step__number { display: grid; flex: 0 0 2.15rem; width: 2.15rem; height: 2.15rem; place-items: center; border-radius: 50%; background: var(--orange); color: #fff; font-weight: 700; }
.registration-form .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .95rem 1rem; }
.registration-form .form-field--wide { grid-column: 1 / -1; }
.registration-form .form-field,
.registration-form .form-choice-group,
.registration-form fieldset { margin: 0; padding: 0; border: 0; }
.registration-form label,
.registration-form legend { display: block; margin-bottom: .42rem; color: var(--blue-deep); font-weight: 600; }
.registration-form input[type="text"],
.registration-form input[type="email"],
.registration-form input[type="tel"],
.registration-form input[type="number"],
.registration-form select,
.registration-form textarea {
  width: 100%;
  min-height: 46px;
  padding: .68rem .8rem;
  border: 1px solid #a9b9c5;
  border-radius: 9px;
  background: #fff;
  color: var(--ink);
  font-size: 1rem;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.registration-form input:focus,
.registration-form select:focus,
.registration-form textarea:focus { border-color: var(--blue); outline: 0; box-shadow: 0 0 0 3px rgba(19, 89, 141, .14); }
.registration-form textarea { min-height: 130px; }
.registration-form input[type="checkbox"], .registration-form input[type="radio"] { width: 1.18rem; height: 1.18rem; margin: .15rem .6rem 0 0; accent-color: var(--blue); }
.registration-form .form-choices--cards { display: grid; gap: .65rem; }
.registration-form .form-choices--dates { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.registration-form .form-choice { display: flex; align-items: flex-start; margin: .55rem 0; color: var(--ink); font-weight: 400; cursor: pointer; }
.registration-form .form-choices--cards .form-choice { margin: 0; padding: .85rem .95rem; border: 1px solid #c9d5dd; border-radius: 11px; background: #fff; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease; }
.registration-form .form-choices--cards .form-choice:hover { border-color: var(--blue); }
.registration-form .form-choices--cards .form-choice:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(19, 89, 141, .12); }
.registration-form .form-choices--cards .form-choice:has(input:checked) { border-color: var(--blue); background: rgba(233, 242, 248, .7); box-shadow: inset 3px 0 0 var(--orange); }
.registration-form .form-choice input { flex: 0 0 auto; }
.registration-form .form-choice-text { display: flex; min-width: 0; flex-direction: column; }
.registration-form .form-choice-text strong { color: var(--blue-deep); }
.registration-form .form-choices--dates .form-choice-text { display: block; }
.registration-form .form-cost { display: grid; grid-template-columns: 1fr auto; gap: .1rem 1rem; align-items: end; margin-bottom: 1rem; padding: .85rem 1rem; border-left: 4px solid var(--orange); border-radius: 0 10px 10px 0; background: var(--soft); }
.registration-form .form-cost span { color: var(--muted); font-size: .86rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.registration-form .form-cost strong { grid-row: span 2; color: var(--blue-deep); font-size: clamp(1.25rem, 3vw, 1.65rem); }
.registration-form .form-cost small { color: var(--muted); }
.registration-form .form-terms-link { margin: -.2rem 0 0 1.8rem; font-size: .92rem; }
.registration-form .form-submit { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; margin-top: 1.2rem; }
.registration-form .form-required-hint { margin: 0; color: var(--muted); font-size: .9rem; }
.registration-form .form-status { flex-basis: 100%; margin: 0; }
.registration-form .form-followup { margin-top: .85rem; border-top: 1px solid var(--line); }
.registration-form .form-followup summary { padding: 1rem .2rem; color: var(--blue-deep); font-weight: 600; cursor: pointer; }
.registration-form .form-followup > div { padding: 0 .2rem .25rem; }
.registration-form .form-followup ul { margin-top: 0; }
.registration-form--interest { padding: clamp(1.15rem, 3vw, 1.8rem); }
.registration-form--interest .form-choice-group--interest { margin-top: 1.15rem; padding: .75rem .9rem; border-radius: 10px; background: var(--soft); }
.registration-intro { margin-bottom: 2rem; }
.registration-intro__image { width: 100%; height: auto; margin-bottom: 1.5rem; border-radius: var(--radius); }
.form-status { color: var(--blue-deep); font-weight: 500; }

.form-result-dialog {
  width: min(660px, calc(100% - 2rem));
  max-height: calc(100dvh - 2rem);
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 20px;
  background: #fff;
  color: var(--ink);
  box-shadow: 0 30px 90px rgba(0, 31, 54, .34);
}
.form-result-dialog::backdrop { background: rgba(0, 31, 54, .66); backdrop-filter: blur(3px); }
.form-result-dialog[open] { animation: form-dialog-in .2s ease-out; }
.form-result-dialog__panel { position: relative; max-height: calc(100dvh - 2rem); padding: clamp(1.4rem, 5vw, 2.5rem); overflow-y: auto; overscroll-behavior: contain; }
.form-result-dialog__close {
  position: absolute;
  top: .8rem;
  right: .8rem;
  width: 2.45rem;
  height: 2.45rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--soft);
  color: var(--blue-deep);
  font: inherit;
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
}
.form-result-dialog__close:hover,
.form-result-dialog__close:focus-visible { background: #dfeaf1; outline: 2px solid var(--blue); outline-offset: 2px; }
.form-result-dialog__mark { display: grid; width: 3.25rem; height: 3.25rem; margin-bottom: 1rem; place-items: center; border-radius: 50%; background: #e5f4ec; color: #1d7146; font-size: 1.65rem; font-weight: 700; }
.form-result-dialog__eyebrow { margin: 0 3rem .3rem 0; color: #a85400; font-size: .78rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.form-result-dialog h2 { margin: 0 3rem 1.5rem 0; color: var(--blue-deep); font-size: clamp(1.65rem, 4vw, 2.2rem); }
.form-result-dialog h3 { margin: 0 0 .7rem; color: var(--blue-deep); font-size: 1.08rem; }
.form-result-summary { margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; }
.form-result-summary__row { display: grid; grid-template-columns: minmax(120px, .72fr) minmax(0, 1.28fr); gap: .75rem 1rem; padding: .72rem .9rem; }
.form-result-summary__row + .form-result-summary__row { border-top: 1px solid var(--line); }
.form-result-summary dt { color: var(--muted); font-size: .91rem; font-weight: 600; }
.form-result-summary dd { margin: 0; overflow-wrap: anywhere; color: var(--blue-deep); font-weight: 600; white-space: pre-line; }
.form-result-dialog__message { margin: 1rem 0 0; padding: .9rem 1rem; border-left: 4px solid #27875a; border-radius: 0 10px 10px 0; background: #edf8f2; font-weight: 600; overflow-wrap: anywhere; }
.form-result-dialog__message.is-warning { border-left-color: var(--orange); background: #fff5e8; }
.form-result-dialog__hint { margin: .75rem 0 0; color: var(--muted); font-size: .92rem; }
.form-result-dialog__actions { display: flex; justify-content: flex-end; margin-top: 1.35rem; }

@keyframes form-dialog-in {
  from { opacity: 0; transform: translateY(10px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 520px) {
  .form-result-dialog { width: calc(100% - 1rem); max-height: calc(100dvh - 1rem); border-radius: 15px; }
  .form-result-dialog__panel { max-height: calc(100dvh - 1rem); padding: 1.25rem 1rem; }
  .form-result-summary__row { grid-template-columns: 1fr; gap: .2rem; }
  .form-result-dialog__actions .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .form-result-dialog[open] { animation: none; }
}

.d-none { display: none !important; }
.d-block { display: block !important; }
.text-center { text-align: center !important; }
.text-end { text-align: right !important; }
.bg-light { background: var(--soft) !important; }
.rounded-circle { border-radius: 50% !important; }

.site-footer { padding: clamp(3rem, 6vw, 5rem) 1rem 1.5rem; background: linear-gradient(100deg, #13598d, #00365f); color: #fff; }
.footer-inner { max-width: var(--content); margin: 0 auto; display: grid; grid-template-columns: 1fr .45fr 1.6fr; gap: clamp(1.5rem, 5vw, 4rem); align-items: start; }
.footer-contact img { width: min(240px, 100%); margin-bottom: 1.5rem; filter: brightness(0) invert(1); }
.footer-contact address { font-style: normal; }
.site-footer a { color: #fff; }
.footer-social { display: flex; flex-direction: column; gap: 1.1rem; align-items: center; }
.footer-social img { width: 46px; height: 46px; object-fit: contain; transition: transform .2s ease; }
.footer-social a:hover img { transform: scale(1.08); }
.footer-map .external-embed { min-height: 240px; }
.footer-map .embed-placeholder { color: var(--ink); }
.footer-legal { margin-top: 1rem; text-align: right; font-size: .9rem; }

.cookie-banner {
  position: fixed;
  z-index: 900;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
  max-width: 1080px;
  margin: 0 auto;
  padding: 1.25rem;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 1.5rem;
  align-items: center;
  border: 1px solid #d9e2e8;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 24px 80px rgba(0,31,54,.28);
}

.cookie-banner h2 { margin: 0 0 .35rem; font-size: 1.35rem; }
.cookie-banner p { margin: 0 0 .35rem; font-size: .96rem; }
.cookie-actions { display: flex; gap: .65rem; flex-wrap: wrap; justify-content: flex-end; }
.noscript { padding: 2rem; }

@media (min-width: 576px) {
  .d-sm-block { display: block !important; }
  .d-sm-none { display: none !important; }
}
@media (min-width: 768px) {
  .d-md-block { display: block !important; }
  .d-md-none { display: none !important; }
}
@media (min-width: 992px) {
  .d-lg-block { display: block !important; }
  .d-lg-none { display: none !important; }
}
@media (min-width: 1200px) {
  .d-xl-block { display: block !important; }
  .d-xl-none { display: none !important; }
}

@media (max-width: 1200px) {
  :root { --header-height: 86px; }
  .header-inner { width: 100%; min-height: 0; padding: 0; display: block; }
  .brand-bar { width: 100%; height: var(--header-height); margin: 0 auto; padding: 0 clamp(1rem, 3vw, 2rem); align-items: center; }
  .brand img { width: clamp(165px, 22vw, 210px); height: 58px; object-position: right center; }
  .menu-toggle { display: block; }
  .primary-nav { display: none; max-height: calc(100vh - var(--header-height)); overflow-y: auto; border-top: 1px solid rgba(255,255,255,.14); background: linear-gradient(105deg, #13598d 0%, #164f7d 100%); }
  .primary-nav.is-open { display: block; }
  .nav-list { min-height: 0; padding: .5rem clamp(1rem, 3vw, 2rem) 1.15rem; display: block; }
  .nav-list > .nav-item + .nav-item { border-top: 1px solid rgba(255,255,255,.1); }
  .nav-row > a { flex: 1; min-height: 50px; padding: .82rem .65rem; color: #fff; font-size: .96rem; letter-spacing: .01em; }
  .nav-list > .nav-item > .nav-row > a::after { display: none; }
  .nav-row > a small { margin-left: .5rem; }
  .nav-row > a small { color: rgba(255,255,255,.72); }
  .nav-item.is-active > .nav-row > a,
  .nav-row > a:hover,
  .nav-row > a:focus-visible { background: rgba(255,255,255,.1); color: #fff; }
  .submenu-toggle { width: 44px; margin-left: 0; color: rgba(255,255,255,.88); }
  .submenu,
  .submenu .submenu { position: static; display: none; min-width: 0; margin: 0 0 .45rem .65rem; padding: .2rem .2rem .2rem .75rem; border: 0; border-left: 1px solid rgba(255,255,255,.24); border-radius: 0; background: transparent; box-shadow: none; }
  .submenu-open > .submenu { display: block; }
  .submenu .nav-row > a { color: #fff; }
  .submenu .nav-row > a small { color: rgba(255,255,255,.7); }
  .submenu .submenu-toggle { margin-left: 0; color: #fff; }
  .submenu .nav-row > a:hover,
  .submenu .nav-row > a:focus-visible { background: rgba(255,255,255,.1); color: #fff; }
  .has-submenu:hover > .submenu:not(.submenu-open > .submenu),
  .has-submenu:focus-within > .submenu:not(.submenu-open > .submenu) { display: none; }
  .offer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 980px) {
  .social-entry__inner { grid-template-columns: 1fr; align-items: start; }
  .social-entry__actions { max-width: 560px; grid-template-columns: 1fr 1fr; }
  .social-entry__text-link { grid-column: 1 / -1; }
  .social-channel-grid { grid-template-columns: 1fr; }
  .education-local-nav { display: block; }
  .education-local-nav > span { display: block; margin-bottom: .55rem; }
  .education-local-nav > div { display: grid; grid-template-columns: repeat(2, 1fr); }
  .education-path { grid-template-columns: 1fr; }
  .education-offer-card > article { display: grid; grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); }
  .education-offer-card__media { height: 100%; aspect-ratio: auto; }
  .education-choice__grid { grid-template-columns: 1fr; }
  .education-course-intro,
  .education-info-evening { grid-template-columns: 1fr; }
  .education-course-intro__media,
  .education-info-evening__media { min-height: 0; }
  .education-course-intro__media > img,
  .education-info-evening__media > img { max-height: 360px; }
  .education-facts { grid-template-columns: 1fr; }
  .education-tabs > .uk-grid { grid-template-columns: 1fr; }
  .page-content .education-tabs .uk-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  body { font-size: 1rem; }
  .hero-carousel ul { aspect-ratio: 486 / 131; }
  .hero-control { width: 36px; height: 36px; }
  .hero-control svg { width: 16px; height: 16px; }
  .hero-control--prev { left: .65rem; }
  .hero-control--next { right: .65rem; }
  .social-entry__inner { gap: 1.4rem; }
  .social-entry__copy h1 { font-size: clamp(2.1rem, 11vw, 3.2rem); }
  .social-entry__actions { max-width: none; grid-template-columns: 1fr; }
  .social-entry__text-link { grid-column: auto; }
  .welcome-media { float: none; width: 100%; margin: 0 0 1.75rem; }
  .copy--desktop { display: none; }
  .copy--mobile { display: block; }
  .quick-links { grid-template-columns: 1fr; gap: 2.4rem; }
  .offer-grid, .video-grid, .page-content [class*="uk-child-width"] { grid-template-columns: 1fr; }
  .social-channel { grid-template-columns: 44px minmax(0, 1fr); padding: 1rem; }
  .social-channel > img { width: 44px; height: 44px; }
  .page-hero { min-height: 210px; }
  .education-local-nav { padding: .7rem; }
  .education-local-nav a { justify-content: flex-start; text-align: left; }
  .education-overview { gap: 2rem; }
  .education-overview__intro { padding-left: 1rem; }
  .education-offer-card > article { display: flex; }
  .education-offer-card__media { height: auto; aspect-ratio: 705 / 447; }
  .education-choice { border-radius: 16px; }
  .education-course-intro,
  .education-info-evening { border-radius: 16px; }
  .education-course-intro__copy,
  .education-info-evening__copy { padding: 1.25rem; }
  .education-actions { display: grid; }
  .education-actions .button { width: 100%; }
  .education-form-grid { grid-template-columns: 1fr; }
  .registration-form .form-grid { grid-template-columns: 1fr; }
  .registration-form .form-field--wide { grid-column: auto; }
  .registration-form .form-choices--dates { grid-template-columns: 1fr; }
  .registration-form .form-cost { grid-template-columns: 1fr; }
  .registration-form .form-cost strong { grid-row: auto; }
  .registration-form .form-step__heading { gap: .7rem; }
  .page-content .education-tabs .uk-nav { grid-template-columns: 1fr; }
  .page-content .education-tabs .uk-switcher > li { padding: 1.2rem; border-radius: 14px; }
  .page-content .row { display: block; }
  .page-content .row > * { margin-bottom: 1rem; }
  .coaching-page,
  .paarberatung-page { gap: 1rem; }
  .coaching-card,
  .paarberatung-card { grid-template-columns: 1fr; gap: 1.15rem; padding: 1.2rem; border-radius: 15px; }
  .coaching-visual,
  .paarberatung-visual { min-height: 150px; padding: .9rem; }
  .coaching-visual img,
  .paarberatung-visual img,
  .coaching-card--gemeinsam .coaching-visual img,
  .paarberatung-card--gemeinsam .paarberatung-visual img,
  .coaching-card--kosten .coaching-visual img,
  .paarberatung-card--kosten .paarberatung-visual img,
  .coaching-card--photo .coaching-visual img { max-width: 160px; max-height: 160px; }
  .coaching-copy h3,
  .paarberatung-copy h3 { font-size: 1.4rem; }
  .coaching-cta,
  .paarberatung-cta { margin-top: .75rem; }
  .coaching-card-actions .coaching-cta { margin-top: 0; }
  .coaching-booking-panel { padding: 1.2rem; border-radius: 15px; }
  .coaching-actions,
  .paarberatung-actions { justify-content: flex-start; }
  .footer-inner { grid-template-columns: 1fr; }
  .footer-social { flex-direction: row; justify-content: flex-start; }
  .footer-map { grid-column: 1; }
  .footer-legal { text-align: left; }
  .cookie-banner {
    right: .65rem;
    bottom: .65rem;
    left: .65rem;
    padding: .85rem 1rem;
    grid-template-columns: 1fr;
    gap: .65rem;
    max-height: calc(100vh - 1.3rem);
    max-height: calc(100dvh - 1.3rem);
    overflow-y: auto;
    border-radius: 12px;
  }
  .cookie-banner h2 { margin-bottom: .18rem; font-size: 1.08rem; }
  .cookie-banner p { margin-bottom: .18rem; font-size: .84rem; line-height: 1.35; }
  .cookie-banner a { font-size: .84rem; }
  .cookie-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
  .cookie-actions .button { width: 100%; min-height: 42px; padding: .62rem .7rem; font-size: .88rem; }
}

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