:root {
  --ink: #1a1d21;
  --muted: #6b7280;
  --line: #ececee;
  --paper: #f7f7f8;
  --white: #ffffff;
  --accent: #c07a82;
  --accent-deep: #9d5759;
  --dark: #16191c;
  --font: "Segoe UI", system-ui, -apple-system, Roboto, Helvetica, Arial, sans-serif;
  --max: 1180px;
  --header-h: 76px;
  --mobile-ask-h: 0px;
  --ease: cubic-bezier(.2, .85, .2, 1);
  --pad: clamp(1.15rem, 4vw, 1.6rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body {
  margin: 0;
  font-family: var(--font);
  color: var(--ink);
  background: var(--white);
  line-height: 1.55;
  font-size: 16px;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
}
body.nav-open { overflow: hidden; }

img { max-width: 100%; height: auto; display: block; }
picture { display: block; }
a { color: inherit; }

.skip-link {
  position: absolute; left: -9999px; z-index: 1000;
  padding: 0.7rem 1rem; background: var(--ink); color: #fff;
}
.skip-link:focus { left: 1rem; top: 1rem; }

:focus-visible {
  outline: 2px solid var(--accent-deep);
  outline-offset: 3px;
}
.button:focus-visible,
.site-nav a:focus-visible,
.filter:focus-visible,
.advisor-option:focus-visible {
  outline: 2px solid var(--accent-deep);
  outline-offset: 3px;
}

/* Header main bar */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  transition: background 0.35s var(--ease), box-shadow 0.35s var(--ease), color 0.35s var(--ease), border-color 0.35s var(--ease);
}
.site-header.is-scrolled {
  box-shadow: 0 10px 28px rgba(16, 18, 20, 0.07);
}
.site-header__bar {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0.65rem 0.9rem;
  min-height: var(--header-h);
  max-width: calc(var(--max) + 2 * var(--pad));
  margin: 0 auto;
  padding: 0.5rem var(--pad);
}
.brand {
  display: flex; align-items: center;
  text-decoration: none; flex-shrink: 0;
  color: inherit;
  order: 0;
}
.brand-lockup {
  display: block;
  line-height: 0;
  color: inherit;
}
.brand-lockup svg {
  display: block;
  height: 54px;
  width: auto;
}
@media (max-width: 700px) {
  .brand-lockup svg { height: 46px; }
}

.form-mode-label {
  margin: 0 0 0.4rem;
  font-size: 0.8rem;
  font-weight: 600;
}
.optional {
  font-weight: 400;
  color: var(--muted);
  font-size: 0.75rem;
}
.form-mode-switch {
  display: flex;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: var(--paper);
  flex-shrink: 0;
  margin-bottom: 1.15rem;
  width: 100%;
}
.form-mode-switch__btn {
  appearance: none;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-decoration: none;
  font: inherit;
  font-size: 0.78rem;
  font-weight: 650;
  padding: 0.42rem 0.7rem;
  border-radius: 999px;
  color: var(--muted);
  flex: 1;
  text-align: center;
}
.form-mode-switch__btn.is-active {
  background: #fff;
  color: var(--ink);
  box-shadow: 0 1px 4px rgba(16,18,20,0.08);
}
.appointment-place {
  display: grid;
  gap: 0.55rem;
  margin: 0 0 1.05rem;
}
@media (min-width: 520px) {
  .appointment-place { grid-template-columns: 1fr 1fr; }
}
.appointment-place__option {
  position: relative;
  display: block;
  margin: 0;
  cursor: pointer;
}
.appointment-place__option input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.appointment-place__card {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  min-height: 100%;
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--paper);
  transition: border-color 0.2s var(--ease), background 0.2s var(--ease), box-shadow 0.2s var(--ease);
}
.appointment-place__card strong {
  font-size: 0.88rem;
  font-weight: 650;
  letter-spacing: -0.01em;
}
.appointment-place__card span {
  font-size: 0.78rem;
  font-weight: 400;
  color: var(--muted);
  line-height: 1.4;
}
.appointment-place__option:hover .appointment-place__card {
  border-color: rgba(192, 122, 130, 0.55);
}
.appointment-place__option:has(input:checked) .appointment-place__card {
  border-color: var(--accent);
  background: #fff;
  box-shadow: 0 0 0 1px var(--accent);
}
.appointment-place__option:has(input:focus-visible) .appointment-place__card {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.gewerbe-grid {
  display: grid;
  gap: 2rem;
}
@media (min-width: 900px) {
  .gewerbe-grid { grid-template-columns: 1fr 1fr; align-items: start; }
}
.login-card {
  padding: 1.4rem;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--paper);
}
.partner-info__list {
  margin: 0 0 1.3rem;
  padding-left: 1.1rem;
  color: var(--muted);
}
.partner-info__list li { margin-bottom: 0.4rem; }
.advisor--embed {
  box-shadow: none;
  padding: 0;
  margin: 1rem 0 0;
  grid-template-columns: 1fr;
}
.menu-toggle {
  order: 3;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 40px;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: 0.35rem 0.8rem 0.35rem 0.65rem;
  font: inherit; font-size: 0.8rem; font-weight: 600;
  cursor: pointer;
  color: inherit;
  flex-shrink: 0;
  transition: background 0.3s var(--ease), border-color 0.3s var(--ease), color 0.3s var(--ease);
}
.menu-toggle__icon {
  position: relative;
  width: 16px;
  height: 12px;
  display: block;
}
.menu-toggle__icon span {
  position: absolute;
  left: 0; right: 0;
  height: 1.5px;
  background: currentColor;
  border-radius: 2px;
  transition: transform 0.35s var(--ease), top 0.35s var(--ease);
}
.menu-toggle__icon span:first-child { top: 2px; }
.menu-toggle__icon span:last-child { top: 8px; }
.site-header.menu-open .menu-toggle__icon span:first-child {
  top: 5px; transform: rotate(45deg);
}
.site-header.menu-open .menu-toggle__icon span:last-child {
  top: 5px; transform: rotate(-45deg);
}
.site-header__panel { order: 1; }
.audience-switch {
  display: flex;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: rgba(16, 18, 20, 0.04);
  flex-shrink: 0;
  align-items: stretch;
}
.audience-switch__btn {
  text-decoration: none;
  font-size: 0.74rem;
  font-weight: 650;
  padding: 0.36rem 0.72rem;
  border-radius: 999px;
  color: var(--muted);
  letter-spacing: 0.01em;
  line-height: 1.2;
  white-space: nowrap;
  transition: background 0.2s var(--ease), color 0.2s var(--ease);
}
.audience-switch__btn:hover {
  color: var(--ink);
}
.audience-switch__btn.is-active {
  background: #fff;
  color: var(--ink);
  box-shadow: 0 1px 4px rgba(16, 18, 20, 0.08);
}
.audience-switch--bar { order: 0; }
.audience-switch--panel { display: none; }

.site-header__cta {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-left: auto;
  flex-shrink: 0;
  order: 2;
}
.site-header__meta,
.site-header__panel-actions,
.hero-phone--menu { display: none; }
.site-nav {
  display: flex;
  flex: 1;
  justify-content: center;
  gap: 0.15rem 0.15rem;
}
.site-nav a {
  position: relative;
  text-decoration: none;
  font-size: 0.82rem;
  font-weight: 500;
  color: #4b5563;
  padding: 0.45rem 0.7rem;
  border-radius: 999px;
  white-space: nowrap;
  transition: color 0.25s var(--ease), background 0.25s var(--ease);
}
.site-nav a:hover {
  color: var(--ink);
  background: rgba(16, 18, 20, 0.05);
}
.site-nav a.is-active {
  color: var(--accent-deep);
  font-weight: 650;
  background: rgba(192, 122, 130, 0.12);
}
.hero-phone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  min-height: 40px;
  padding: 0.3rem 0.8rem 0.3rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  text-decoration: none;
  font-size: 0.82rem;
  font-weight: 650;
  letter-spacing: 0.01em;
  white-space: nowrap;
  color: inherit;
  background: transparent;
  transition: background 0.25s var(--ease), border-color 0.25s var(--ease), color 0.25s var(--ease);
}
.hero-phone:hover {
  border-color: var(--accent);
  color: var(--accent-deep);
  background: rgba(192, 122, 130, 0.08);
}
.hero-phone svg,
.site-header .button svg,
.site-header__konto svg,
.site-header__termin svg {
  flex-shrink: 0;
}
.site-header .button {
  padding: 0.48rem 1rem;
  min-height: 40px;
  gap: 0.45rem;
}
.site-header__ask {
  padding: 0.48rem 0.95rem;
  min-height: 40px;
}
.site-header__ask-short { display: none; }
.site-header__ask--menu { display: none; }
.site-header__konto,
.site-header__termin {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 40px;
  padding: 0.3rem 0.75rem 0.3rem 0.65rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  text-decoration: none;
  font-size: 0.82rem;
  font-weight: 600;
  color: #4b5563;
  white-space: nowrap;
  background: transparent;
  transition: color 0.25s var(--ease), background 0.25s var(--ease), border-color 0.25s var(--ease);
}
.site-header__konto:hover,
.site-header__konto.is-active,
.site-header__termin:hover {
  color: var(--accent-deep);
  border-color: var(--accent);
  background: rgba(192, 122, 130, 0.1);
}
.site-header__konto--menu,
.site-header__termin--menu { display: none; }

@media (max-width: 1499px) {
  .site-header__konto--cta span { display: none; }
  .site-header__konto--cta { padding: 0; width: 40px; height: 40px; justify-content: center; }
  .site-header__ask-full { display: none; }
  .site-header__ask-short { display: inline; }
  .hero-phone--cta span { display: none; }
  .hero-phone--cta {
    width: 40px;
    height: 40px;
    padding: 0;
  }
}
@media (max-width: 1279px) and (min-width: 1120px) {
  .site-nav a { padding: 0.45rem 0.48rem; font-size: 0.78rem; }
  .audience-switch__btn { padding: 0.32rem 0.58rem; }
}

@media (max-width: 1119px) {
  .site-header__panel {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.85rem var(--pad) 1.3rem;
    background: var(--dark);
    color: #fff;
    transform: translateY(-6px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    z-index: 40;
    max-height: min(82vh, calc(100dvh - var(--header-h)));
    min-height: calc(100dvh - var(--header-h));
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    transition: opacity 0.35s var(--ease), transform 0.35s var(--ease), visibility 0.35s;
  }
  .site-header.menu-open .site-header__panel,
  .site-header__panel.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }
  .site-header__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.9rem;
    margin: 0 0 0.55rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 0.78rem;
    color: rgba(255, 255, 255, 0.55);
  }
  .site-nav {
    display: flex;
    flex-direction: column;
    width: 100%;
    margin: 0;
    gap: 0.1rem;
  }
  .site-nav a {
    font-size: 1.18rem;
    padding: 0.62rem 0.15rem;
    min-height: 48px;
    display: flex;
    align-items: center;
    color: rgba(255, 255, 255, 0.92);
    border-radius: 0;
    background: transparent;
  }
  .site-nav a:hover { color: #fff; background: transparent; }
  .site-nav a.is-active { color: var(--accent); background: transparent; }
  .site-header__panel-actions {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    margin-top: auto;
    padding-top: 1rem;
  }
  .site-header__konto--menu {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0;
    border: 0;
    font-size: 1.02rem;
    color: rgba(255, 255, 255, 0.9);
    background: transparent;
  }
  .site-header__konto--menu.is-active,
  .site-header__konto--menu:hover { color: var(--accent); background: transparent; }
  .hero-phone--menu {
    display: inline-flex;
    width: fit-content;
    border-color: rgba(255, 255, 255, 0.28);
    color: #fff;
  }
  .site-header__termin--menu {
    display: inline-flex;
    width: 100%;
    min-height: 48px;
    justify-content: center;
    border-color: rgba(255, 255, 255, 0.28);
    color: #fff;
    font-size: 1.02rem;
  }
  .site-header__termin--menu:hover {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.55);
    background: rgba(255, 255, 255, 0.1);
  }
  .site-header__ask--menu {
    display: inline-flex;
    width: 100%;
    min-height: 48px;
  }
  .audience-switch--bar { display: none; }
  .audience-switch--panel {
    display: flex;
    width: 100%;
    margin: 0 0 0.85rem;
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.16);
  }
  .audience-switch--panel .audience-switch__btn {
    flex: 1;
    text-align: center;
    color: rgba(255, 255, 255, 0.62);
    padding: 0.55rem 0.8rem;
    font-size: 0.82rem;
  }
  .audience-switch--panel .audience-switch__btn:hover { color: #fff; }
  .audience-switch--panel .audience-switch__btn.is-active {
    background: #fff;
    color: var(--ink);
  }
}

@media (max-width: 639px) {
  :root {
    --mobile-ask-h: calc(4.45rem + env(safe-area-inset-bottom, 0px));
  }
  .hero-phone--cta span { display: none; }
  .hero-phone--cta {
    width: 40px;
    height: 40px;
    padding: 0;
  }
  .site-header__konto--cta { display: none; }
  .site-header .button.site-header__ask--cta { display: none; }
  body { padding-bottom: var(--mobile-ask-h); }
}
@media (max-width: 429px) {
  .menu-toggle__label { display: none; }
  .menu-toggle { padding: 0.35rem 0.65rem; width: 40px; height: 40px; justify-content: center; }
}

.mobile-ask-bar { display: none; }
@media (max-width: 639px) {
  .mobile-ask-bar {
    display: block;
    position: fixed;
    z-index: 46;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0.7rem var(--pad) calc(0.7rem + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-top: 1px solid var(--line);
    box-shadow: 0 -10px 28px rgba(16, 18, 20, 0.08);
  }
  .mobile-ask-bar__btn {
    width: 100%;
    min-height: 48px;
  }
  .mobile-ask-bar__btn:hover {
    transform: none;
  }
}
body.nav-open .mobile-ask-bar,
body:has(dialog[open]) .mobile-ask-bar {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

@media (min-width: 1120px) {
  .menu-toggle { display: none; }
  .site-header__panel {
    display: flex;
    flex: 1;
    align-items: center;
    order: 1;
    gap: 1rem;
    min-width: 0;
  }
  .site-header__cta { order: 2; }
  .site-nav { display: flex; }
  .site-header__ask--menu,
  .site-header__konto--menu,
  .site-header__termin--menu,
  .site-header__meta,
  .site-header__panel-actions,
  .audience-switch--panel { display: none; }
}

.has-overlay-header .site-header {
  position: absolute;
  left: 0; right: 0; top: 0;
  background: rgba(12, 14, 16, 0.28);
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  color: #fff;
}
.has-overlay-header .site-header.menu-open {
  background: var(--dark);
  color: #fff;
  border-bottom-color: transparent;
}
.has-overlay-header .site-header.menu-open .brand { color: #fff; }
.has-overlay-header .hero-phone {
  border-color: rgba(255, 255, 255, 0.28);
  color: inherit;
}
.has-overlay-header .hero-phone:hover {
  border-color: rgba(255, 255, 255, 0.55);
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}
.has-overlay-header .site-header__konto--cta,
.has-overlay-header .site-header__termin--cta { color: inherit; border-color: rgba(255, 255, 255, 0.28); }
.has-overlay-header .site-header__konto--cta:hover,
.has-overlay-header .site-header__konto--cta.is-active,
.has-overlay-header .site-header__termin--cta:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.55);
  background: rgba(255, 255, 255, 0.1);
}
.has-overlay-header .site-nav a { color: rgba(255, 255, 255, 0.86); }
.has-overlay-header .site-nav a:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
}
.has-overlay-header .site-nav a.is-active {
  color: #fff;
  background: rgba(192, 122, 130, 0.28);
}
.has-overlay-header .audience-switch--bar {
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.08);
}
.has-overlay-header .audience-switch--bar .audience-switch__btn { color: rgba(255, 255, 255, 0.72); }
.has-overlay-header .audience-switch--bar .audience-switch__btn:hover { color: #fff; }
.has-overlay-header .audience-switch--bar .audience-switch__btn.is-active {
  background: #fff;
  color: var(--ink);
}
.has-overlay-header .menu-toggle {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.32);
  color: #fff;
}
.has-overlay-header .page-hero__copy {
  padding-top: calc(var(--header-h) + 2.4rem);
}

.has-overlay-header .site-header.is-scrolled {
  position: fixed;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  box-shadow: 0 10px 28px rgba(16, 18, 20, 0.07);
}
.has-overlay-header .site-header.is-scrolled .site-nav a { color: #4b5563; }
.has-overlay-header .site-header.is-scrolled .site-nav a:hover {
  color: var(--ink);
  background: rgba(16, 18, 20, 0.05);
}
.has-overlay-header .site-header.is-scrolled .site-nav a.is-active {
  color: var(--accent-deep);
  background: rgba(192, 122, 130, 0.12);
}
.has-overlay-header .site-header.is-scrolled .hero-phone {
  border-color: var(--line);
  color: var(--ink);
}
.has-overlay-header .site-header.is-scrolled .hero-phone:hover {
  border-color: var(--accent);
  color: var(--accent-deep);
  background: rgba(192, 122, 130, 0.08);
}
.has-overlay-header .site-header.is-scrolled .site-header__konto--cta,
.has-overlay-header .site-header.is-scrolled .site-header__termin--cta { color: #4b5563; border-color: var(--line); }
.has-overlay-header .site-header.is-scrolled .site-header__konto--cta.is-active,
.has-overlay-header .site-header.is-scrolled .site-header__konto--cta:hover,
.has-overlay-header .site-header.is-scrolled .site-header__termin--cta:hover {
  color: var(--accent-deep);
  background: rgba(192, 122, 130, 0.1);
}
.has-overlay-header .site-header.is-scrolled .audience-switch--bar {
  border-color: var(--line);
  background: rgba(16, 18, 20, 0.04);
}
.has-overlay-header .site-header.is-scrolled .audience-switch--bar .audience-switch__btn { color: var(--muted); }
.has-overlay-header .site-header.is-scrolled .audience-switch--bar .audience-switch__btn:hover { color: var(--ink); }
.has-overlay-header .site-header.is-scrolled .audience-switch--bar .audience-switch__btn.is-active {
  background: #fff;
  color: var(--ink);
}
.has-overlay-header .site-header.is-scrolled .menu-toggle {
  background: #fff;
  border-color: var(--line);
  color: var(--ink);
}
.has-overlay-header .site-header.is-scrolled.menu-open {
  background: var(--dark);
  color: #fff;
  border-bottom-color: transparent;
}
.has-overlay-header .site-header.is-scrolled.menu-open .site-nav a { color: rgba(255, 255, 255, 0.88); }
.has-overlay-header .site-header.is-scrolled.menu-open .site-nav a:hover,
.has-overlay-header .site-header.is-scrolled.menu-open .site-nav a.is-active {
  color: #fff;
}
.has-overlay-header .site-header.is-scrolled.menu-open .site-nav a.is-active { color: var(--accent); }
.has-overlay-header .site-header.is-scrolled.menu-open .hero-phone,
.has-overlay-header .site-header.menu-open .hero-phone {
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}
.has-overlay-header .site-header.is-scrolled.menu-open .site-header__konto--cta,
.has-overlay-header .site-header.menu-open .site-header__konto--cta,
.has-overlay-header .site-header.is-scrolled.menu-open .site-header__termin--cta,
.has-overlay-header .site-header.menu-open .site-header__termin--cta { color: #fff; }
.has-overlay-header .site-header.is-scrolled.menu-open .menu-toggle {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.35);
  color: #fff;
}

/* Buttons */
.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
  padding: 0.72rem 1.2rem;
  min-height: 44px;
  border: 0; border-radius: 999px;
  background: var(--ink); color: #fff;
  font: inherit; font-size: 0.86rem; font-weight: 600;
  text-decoration: none; cursor: pointer;
  transition: background 0.3s var(--ease), color 0.3s var(--ease), transform 0.18s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s var(--ease);
}
.button:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(16,18,20,0.12); }
.button--accent { background: var(--accent); color: #fff; }
.button--accent:hover { background: var(--accent-deep); }
.button--ghost {
  background: transparent;
  border: 1px solid rgba(255,255,255,0.55);
  color: #fff;
}
.button--wide { width: 100%; }
.button--outline {
  width: 100%;
  margin-top: auto;
  background: transparent;
  border: 1px solid var(--accent);
  color: var(--accent-deep);
}
.button:disabled { opacity: 0.45; cursor: not-allowed; }
[hidden] { display: none !important; }
.button:disabled:hover { transform: none; box-shadow: none; }
.text-link {
  color: var(--accent-deep);
  font-weight: 600;
  font-size: 0.9rem;
  text-decoration: none;
}
.text-link:hover { text-decoration: underline; }

/* Photo heroes */
.page-hero {
  position: relative;
  min-height: min(78dvh, 640px);
  display: flex;
  align-items: flex-end;
  color: #fff;
}
.page-hero--compact {
  min-height: 0;
  overflow: visible;
}
.has-overlay-header .page-hero--compact .page-hero__copy {
  padding-top: calc(var(--header-h) + 2.2rem);
  padding-bottom: 2.4rem;
}
.page-hero__media {
  position: absolute; inset: 0;
  background-color: #2a2e32;
  overflow: hidden;
}
.page-hero__media picture {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.page-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
  animation: kenburns 22s ease-out forwards;
}
@keyframes kenburns {
  from { transform: scale(1.04); }
  to { transform: scale(1.12); }
}
.page-hero__shade {
  position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(12,14,16,0.58) 0%, rgba(12,14,16,0.18) 52%, rgba(12,14,16,0.04) 100%);
}
.page-hero__copy {
  position: relative; z-index: 1;
  max-width: 640px;
  padding: 3.2rem var(--pad) 3.4rem;
}
.page-hero__copy > * {
  animation: hero-in 0.9s var(--ease) both;
}
.page-hero__copy > *:nth-child(1) { animation-delay: 0.06s; }
.page-hero__copy > *:nth-child(2) { animation-delay: 0.14s; }
.page-hero__copy > *:nth-child(3) { animation-delay: 0.22s; }
.page-hero__copy > *:nth-child(4) { animation-delay: 0.3s; }
.page-hero__copy > *:nth-child(5) { animation-delay: 0.38s; }
@keyframes hero-in {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: none; }
}
.hero-kicker {
  margin: 0 0 0.8rem;
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.72);
}
.hero-title {
  margin: 0 0 0.9rem;
  font-size: clamp(2.2rem, 5vw, 3.4rem);
  line-height: 1.08;
  font-weight: 650;
  letter-spacing: -0.03em;
}
.hero-title em { font-style: normal; color: var(--accent); }
.hero-lead {
  margin: 0 0 1.5rem;
  max-width: 46ch;
  color: rgba(255,255,255,0.9);
  font-size: 1.02rem;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 0.7rem; margin-bottom: 1.6rem; }
.hero-trust {
  list-style: none; margin: 0; padding: 0.15rem 0 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.4rem;
  font-size: 0.8rem; color: rgba(255,255,255,0.9);
  justify-items: center;
}
@media (min-width: 700px) {
  .hero-trust { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.hero-trust li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  text-align: center;
  width: 100%;
}
.hero-trust span { line-height: 1.35; max-width: 9.5rem; text-align: center; }
.hero-trust__icon {
  display: grid; place-items: center;
  width: 42px; height: 42px; flex-shrink: 0;
  border: none;
  border-radius: 50%;
  color: #fff;
  background: var(--accent);
  box-shadow: 0 8px 20px rgba(157, 87, 89, 0.38);
}
.hero-trust__icon svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.35;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.hero-script {
  position: absolute; right: 6%; bottom: 22%;
  z-index: 1; margin: 0;
  font-family: "Snell Roundhand", "Apple Chancery", Palatino, "Times New Roman", serif;
  font-style: italic;
  font-size: clamp(1.4rem, 3vw, 2rem);
  pointer-events: none;
  animation: hero-script-in 1.1s var(--ease) 0.55s both;
}
@keyframes hero-script-in {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: none; }
}
@media (max-width: 799px) {
  .hero-script { display: none; }
  .page-hero__media img,
  .showroom-intro__media img {
    animation: none;
    transform: none;
  }
}

.showroom-intro {
  position: relative;
  min-height: min(72dvh, 640px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: #d9d4cc;
}
.showroom-intro__media {
  position: absolute;
  inset: 0;
}
.showroom-intro__media picture,
.showroom-intro__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.showroom-intro__media img {
  transform: scale(1.04);
  animation: kenburns 22s ease-out forwards;
}
.showroom-intro__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: calc(var(--max) + 2 * var(--pad));
  margin: 0 auto;
  padding: 2.2rem var(--pad) 2.4rem;
}
.showroom-intro__card {
  max-width: 28.5rem;
  padding: 1.45rem 1.4rem 1.35rem;
  background: rgba(255, 255, 255, 0.94);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-radius: 16px;
  box-shadow: 0 22px 50px rgba(16, 18, 20, 0.14);
  animation: hero-in 0.9s var(--ease) both;
}
.showroom-intro__card h1 {
  margin: 0 0 0.55rem;
  font-size: clamp(1.85rem, 4vw, 2.55rem);
  letter-spacing: -0.035em;
  line-height: 1.1;
}
.showroom-intro__card .hero-lead {
  margin: 0 0 1.15rem;
  font-size: 0.98rem;
}
.showroom-intro__card .hero-actions {
  margin: 0;
}
.showroom-visit__photo {
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  background: #d8d2c8;
  box-shadow: 0 12px 36px rgba(16, 18, 20, 0.08);
}
.showroom-visit__photo img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.showroom-visit__photo + .anfahrt-panel {
  margin-top: 0.9rem;
}

.page-hero--split {
  display: grid;
  min-height: auto;
  color: var(--ink);
  background: #fff;
}
.page-hero--split .page-hero__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 1.35rem clamp(1.25rem, 3.5vw, 2.2rem);
  max-width: none;
}
.page-hero--split h1 {
  margin: 0 0 0.5rem;
  font-size: clamp(1.7rem, 3.1vw, 2.3rem);
  letter-spacing: -0.03em;
  line-height: 1.12;
}
.page-hero--split .hero-lead {
  margin: 0;
  font-size: 0.95rem;
  max-width: 52ch;
}
.page-hero--split .page-hero__photo {
  overflow: hidden;
  min-height: 160px;
}
.page-hero--split .page-hero__photo img,
.page-hero--split .ref-placeholder--hero {
  width: 100%;
  height: 160px;
  min-height: 160px;
  object-fit: cover;
}
.hero-lead--ink { color: var(--muted); }
.page-hero--split .hero-actions { margin: 1rem 0 0; }
@media (min-width: 760px) {
  .page-hero--split { grid-template-columns: 0.95fr 1.05fr; align-items: stretch; }
  .page-hero--split .page-hero__copy {
    padding: 1.2rem 1.8rem;
    min-height: 250px;
  }
  .page-hero--split .page-hero__photo {
    height: 250px;
    min-height: 250px;
  }
  .page-hero--split .page-hero__photo img,
  .page-hero--split .ref-placeholder--hero {
    height: 250px;
    min-height: 250px;
  }
  .page-hero--reverse .page-hero__copy { order: 2; }
  .page-hero--reverse .page-hero__photo { order: 1; }
}

.section { padding: 2.6rem var(--pad); scroll-margin-top: var(--header-h); }
.section--white { background: #fff; }
.section--light { background: var(--paper); }
.section-inner { max-width: var(--max); margin: 0 auto; }
.section-label {
  margin: 0 0 0.4rem;
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent-deep);
  font-weight: 700;
}
.section-heading {
  display: grid; gap: 0.85rem;
  margin-bottom: 1.25rem;
}
@media (min-width: 760px) {
  .section-heading { grid-template-columns: 1.15fr 0.85fr; align-items: end; }
}
.section-heading h2,
.contact-form-wrap h2,
.contact-hub h2,
.advisor-intro h2 {
  margin: 0 0 0.4rem;
  font-size: clamp(1.7rem, 3vw, 2.2rem);
  letter-spacing: -0.03em;
  line-height: 1.15;
}
.section-heading p,
.section-intro,
.lead { color: var(--muted); }
.lead { font-size: 1.05rem; max-width: 46ch; }

.preview-grid,
.ref-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 800px) {
  .preview-grid, .ref-grid { grid-template-columns: repeat(4, 1fr); }
}
.preview-card,
.ref-card,
.service-block {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(16, 18, 20, 0.06);
  transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease), opacity 0.8s var(--ease);
}
.preview-card:hover,
.service-block:hover,
.team-card:hover,
.ref-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 40px rgba(16, 18, 20, 0.12);
}
.preview-card img,
.ref-card img,
.service-block img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
  transition: transform 0.8s var(--ease);
}
.service-block img { aspect-ratio: 16 / 10; }
.preview-card:hover img,
.service-block:hover img,
.ref-card:hover img {
  transform: scale(1.06);
}
.preview-card h3 { margin: 0.85rem 1rem 0.25rem; font-size: 1rem; }
.preview-card__link {
  display: block;
  color: inherit;
  text-decoration: none;
  height: 100%;
}
.preview-card__link:hover h3,
.preview-card h3 a:hover { color: var(--accent-deep); }
.preview-card p { margin: 0 1rem 1.1rem; color: var(--muted); font-size: 0.88rem; }
.ref-card { position: relative; }
.ref-card span {
  position: absolute; left: 0.7rem; bottom: 0.7rem;
  padding: 0.25rem 0.55rem;
  background: rgba(16,18,20,0.72);
  color: #fff; font-size: 0.72rem;
  border-radius: 999px;
}
.ref-card--placeholder {
  box-shadow: none;
  border: 1px dashed #d8d9dc;
  background: var(--paper);
}
.ref-card--placeholder:hover {
  transform: none;
  box-shadow: none;
}
.ref-placeholder {
  display: grid;
  place-items: center;
  width: 100%;
  aspect-ratio: 4/3;
  background-color: #eef0f2;
  background-image:
    linear-gradient(rgba(255,255,255,0.55) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.55) 1px, transparent 1px);
  background-size: 28px 28px;
}
.ref-placeholder__mark {
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.88);
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.page-hero--split .ref-placeholder--hero {
  width: 100%;
  height: 100%;
  min-height: 180px;
  aspect-ratio: auto;
}
.section-cta { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 0.7rem; }
.button--light {
  background: #fff;
  color: var(--ink);
  border: 1px solid #e5e7eb;
}

.service-blocks {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 800px) {
  .service-blocks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.service-block > div { padding: 0.75rem 0.9rem 0.9rem; }
.service-block h2 { margin: 0 0 0.25rem; font-size: 1.02rem; letter-spacing: -0.02em; }
.service-block p {
  margin: 0 0 0.5rem;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.about-grid, .berater-intro, .anfahrt-grid {
  display: grid; gap: 2.2rem; align-items: center;
}
@media (min-width: 900px) {
  .about-grid, .berater-intro, .anfahrt-grid { grid-template-columns: 1fr 1fr; }
}
.anfahrt-note { color: var(--muted); }
.anfahrt-note .lead { color: var(--ink); font-weight: 600; margin-bottom: 0.4rem; }
.about-hero { padding-top: clamp(2.4rem, 5vw, 3.4rem); }
.about-copy h1 {
  margin: 0 0 0.9rem;
  font-size: clamp(2rem, 4.2vw, 3rem);
  letter-spacing: -0.035em;
  line-height: 1.08;
}
.about-facts {
  list-style: none;
  margin: 1.6rem 0 1.5rem;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.about-facts li {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.55rem;
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.35;
  color: var(--ink);
}
.about-facts__icon {
  color: var(--accent-deep);
}
.about-portrait {
  position: relative;
  margin: 0;
}
.about-portrait picture,
.about-portrait img {
  width: 100%;
  border-radius: 14px;
  aspect-ratio: 4/5;
  object-fit: cover;
  display: block;
}
.about-quote {
  margin: 1rem 0 0;
  padding: 1.2rem 0 0;
}
.about-quote p {
  margin: 0;
  font-size: clamp(1.05rem, 1.8vw, 1.25rem);
  line-height: 1.45;
  letter-spacing: -0.02em;
}
.about-quote footer {
  margin-top: 0.85rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--muted);
}
.about-quote__script {
  margin: 0.7rem 0 0;
  font-family: "Snell Roundhand", "Apple Chancery", Palatino, "Times New Roman", serif;
  font-style: italic;
  font-size: 1.25rem;
  color: var(--accent-deep);
}
@media (min-width: 900px) {
  .about-grid { align-items: start; grid-template-columns: 0.95fr 1.05fr; gap: 3rem; }
  .about-portrait {
    display: grid;
    grid-template-columns: 1fr 0.85fr;
    gap: 1.2rem;
    align-items: center;
  }
  .about-portrait picture { grid-column: 1; }
  .about-quote {
    grid-column: 2;
    margin: 0;
    padding: 0;
  }
}
@media (max-width: 639px) {
  .about-facts { grid-template-columns: 1fr; gap: 0.85rem; }
  .about-facts li { flex-direction: row; align-items: center; gap: 0.7rem; }
  .about-portrait img,
  .about-portrait picture { aspect-ratio: 4/3; }
}
.about-copy__cta { margin-top: 0; }
.about-story {
  display: grid;
  gap: 1.4rem;
}
@media (min-width: 860px) {
  .about-story { grid-template-columns: 1.05fr 0.95fr; gap: 2rem; align-items: start; }
}
.about-story__copy p {
  margin: 0 0 1rem;
  color: var(--muted);
  font-size: 1.02rem;
  max-width: 48ch;
}
.about-story__copy p:last-child { margin-bottom: 0; }
.about-values {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}
.about-values li {
  margin: 0;
  padding: 1rem 1.1rem 1.05rem;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(16, 18, 20, 0.06);
}
.about-values strong {
  display: block;
  margin-bottom: 0.25rem;
  letter-spacing: -0.02em;
}
.about-values p {
  margin: 0;
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.45;
}
.team-grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 720px) {
  .team-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .team-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
.team-card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(16, 18, 20, 0.06);
  display: flex;
  flex-direction: column;
  transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease);
}
.team-card__photo {
  position: relative;
  background: var(--paper);
}
.team-card__photo img,
.team-card__photo picture {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  display: block;
}
.team-card__photo--placeholder {
  aspect-ratio: 3 / 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  background-color: #eef0f2;
  background-image:
    linear-gradient(rgba(255,255,255,0.55) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.55) 1px, transparent 1px);
  background-size: 28px 28px;
}
.team-card__initials {
  display: grid;
  place-items: center;
  width: 3.4rem;
  height: 3.4rem;
  border-radius: 50%;
  background: #fff;
  color: var(--accent-deep);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  box-shadow: 0 0 0 1px var(--line);
}
.team-card__photo-mark {
  padding: 0.28rem 0.62rem;
  border-radius: 999px;
  background: rgba(255,255,255,0.88);
  color: var(--muted);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.team-card__body {
  padding: 0.9rem 0.95rem 1.05rem;
}
.team-card__role {
  margin: 0 0 0.2rem;
  font-size: 0.64rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-deep);
  font-weight: 700;
}
.team-card h3 {
  margin: 0;
  font-size: 1.02rem;
  letter-spacing: -0.03em;
  line-height: 1.25;
}
.team-card__note {
  margin: 0.35rem 0 0;
  color: var(--muted);
  font-size: 0.8rem;
  line-height: 1.35;
}
.team-card--pending h3 {
  color: var(--muted);
  font-weight: 600;
}
.team-grid__note { margin: 0.9rem 0 0; }
.service-extra {
  margin-top: 2.2rem;
  padding-top: 1.6rem;
  border-top: 1px solid var(--line);
  scroll-margin-top: var(--header-h);
}
.service-extra h2 {
  margin: 0 0 0.4rem;
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  letter-spacing: -0.03em;
}
.service-extra > p {
  margin: 0 0 1rem;
  color: var(--muted);
  max-width: 48ch;
}
@media (min-width: 800px) {
  .service-blocks--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 800px) {
  .preview-grid--about { grid-template-columns: repeat(4, 1fr); }
}
.fact-list, .check-list { list-style: none; margin: 0 0 1.4rem; padding: 0; }
.fact-list li, .check-list li { margin: 0 0 0.7rem; }
.fact-list strong { display: block; }
.check-list li::before { content: "✓ "; color: var(--accent-deep); font-weight: 700; }
.quote-block blockquote {
  margin: 0; max-width: 38rem;
  font-size: clamp(1.25rem, 2.4vw, 1.7rem);
  line-height: 1.35;
  letter-spacing: -0.02em;
}
.quote-block footer { margin-top: 1rem; color: var(--muted); font-size: 0.9rem; }

.process-floor {
  --grout: #c9c3bb;
  --grout-gap: 0.38rem;
  margin: 1.4rem 0 0;
  padding: var(--grout-gap);
  background-color: var(--grout);
  background-image: radial-gradient(rgba(26, 29, 33, 0.045) 0.5px, transparent 0.75px);
  background-size: 3.2px 3.2px;
  border-radius: 6px;
  box-shadow:
    inset 0 1px 2px rgba(26, 29, 33, 0.12),
    0 12px 28px rgba(16, 18, 20, 0.06);
}
.process-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--grout-gap);
  position: relative;
  counter-reset: tile;
}
@media (min-width: 900px) {
  .process-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.process-steps li {
  --tile-base: #f7f3ed;
  --tile-deep: #ebe4da;
  margin: 0;
  min-height: 11.25rem;
  padding: 1rem 1rem 2.5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.55) 0%, rgba(255, 255, 255, 0) 42%, rgba(26, 29, 33, 0.045) 100%),
    linear-gradient(180deg, var(--tile-base), var(--tile-deep));
  border-radius: 2px;
  border: 0;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.72),
    inset 0 -1px 0 rgba(26, 29, 33, 0.06);
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease);
}
.process-steps li:nth-child(2) {
  --tile-base: #f4efe9;
  --tile-deep: #e6ddd3;
}
.process-steps li:nth-child(3) {
  --tile-base: #f5efeb;
  --tile-deep: #e8dfd6;
}
.process-steps li:nth-child(4) {
  --tile-base: #f1eee8;
  --tile-deep: #ddd6cc;
}
@media (min-width: 900px) {
  .process-steps li {
    aspect-ratio: 1;
    min-height: 0;
  }
}
.process-steps li::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 28%, rgba(255, 255, 255, 0.46) 48%, transparent 64%);
  opacity: 0;
  transform: translateX(-22%);
  transition: opacity 0.55s var(--ease), transform 0.9s var(--ease);
  pointer-events: none;
  z-index: 0;
}
.process-steps li > * {
  position: relative;
  z-index: 1;
}
.process-steps li.is-current {
  transform: translateY(-3px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.82),
    0 0 0 1px rgba(192, 122, 130, 0.28),
    0 10px 22px rgba(16, 18, 20, 0.12);
  z-index: 1;
}
.process-steps li.is-current::before {
  opacity: 0.42;
  transform: translateX(10%);
}
.process-steps em {
  display: inline-block;
  margin: 0 0 0.55rem;
  font-style: normal;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--accent-deep);
  transition: color 0.35s var(--ease);
}
.process-steps li.is-current em {
  color: var(--accent);
}
.process-steps strong {
  display: block;
  margin-bottom: 0.35rem;
  letter-spacing: -0.02em;
}
.process-steps p {
  margin: 0;
  color: var(--muted);
  font-size: 0.88rem;
}
.process-steps li::after {
  content: counter(tile, decimal-leading-zero);
  counter-increment: tile;
  position: absolute;
  right: 0.55rem;
  bottom: 0.15rem;
  font-size: clamp(2.6rem, 5vw, 4.1rem);
  font-weight: 700;
  letter-spacing: -0.07em;
  line-height: 1;
  color: rgba(26, 29, 33, 0.07);
  pointer-events: none;
  z-index: 0;
}
.process-steps li.is-current::after {
  color: rgba(157, 87, 89, 0.16);
}
@media (max-width: 899px) {
  .process-steps strong { font-size: 0.98rem; }
  .process-steps p { font-size: 0.82rem; }
}
@media (hover: hover) and (pointer: fine) {
  .process-steps li:hover {
    transform: translateY(-7px) rotate(-0.35deg);
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.85),
      0 16px 30px rgba(16, 18, 20, 0.14);
    z-index: 2;
  }
}
.anfahrt-panel {
  margin: 1.4rem 0 0;
  padding: 1.1rem 1.15rem 1.2rem;
  background: var(--paper);
  border-radius: 14px;
}
.anfahrt-panel p { margin: 0 0 0.7rem; color: var(--muted); }
.anfahrt-panel .lead {
  margin: 0 0 0.35rem;
  color: var(--ink);
  font-weight: 600;
  font-size: 1rem;
}

.cta-band {
  background: var(--paper);
  color: var(--ink);
  padding: 2.2rem var(--pad);
  border-top: 1px solid var(--line);
}
.cta-band h2 { margin: 0 0 0.4rem; font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: -0.02em; color: var(--ink); }
.cta-band p { margin: 0; color: var(--muted); }
.cta-band__inner {
  max-width: var(--max); margin: 0 auto;
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.2rem;
}
.section-label--light { color: var(--accent); }

/* Contact */
.contact-hub {
  background: #fff;
  padding: 3rem var(--pad) 4rem;
}
.contact-hub .section-cta { margin-top: 1.3rem; }
.contact-hub__grid {
  max-width: var(--max);
  margin: 0 auto;
  display: grid;
  gap: 2.2rem;
  align-items: start;
}
@media (min-width: 900px) {
  .contact-hub__grid { grid-template-columns: 0.95fr 1.05fr; gap: 3rem; }
}
.contact-hub__intro .section-intro { max-width: 36ch; }

.contact-card {
  margin: 0;
  padding: 1.7rem 1.6rem 1.4rem;
  background: var(--paper);
  border-radius: 18px;
  box-shadow: 0 16px 40px rgba(16,18,20,0.06);
}
.contact-card h2 {
  margin: 0 0 0.25rem;
  font-size: 1.45rem;
  letter-spacing: -0.03em;
}
.contact-card__lead {
  margin: 0 0 1.3rem;
  color: var(--muted);
}
.contact-card__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 1.05rem;
}
.contact-card__list li {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 0.85rem;
  align-items: start;
}
.contact-card__icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  box-shadow: 0 8px 18px rgba(157, 87, 89, 0.28);
}
.contact-card__list strong { display: block; font-size: 0.95rem; }
.contact-card__list span,
.contact-card__list a,
.contact-card__list address {
  color: var(--ink);
  text-decoration: none;
  font-size: 0.92rem;
  line-height: 1.4;
}
.contact-card__list address {
  margin: 0;
  font-style: normal;
  color: var(--muted);
  font-size: 0.86rem;
}
.contact-card__list a:hover { color: var(--accent-deep); }
.contact-card__list li div span {
  display: block;
  color: var(--muted);
  font-size: 0.86rem;
  margin-top: 0.15rem;
}
.contact-card__script {
  margin: 1.4rem 0 0.2rem;
  font-family: "Snell Roundhand", "Apple Chancery", Palatino, "Times New Roman", serif;
  font-style: italic;
  font-size: 1.25rem;
  color: #5c6570;
}
.form-alt-link {
  margin: 0.9rem 0 0;
  font-size: 0.85rem;
  color: var(--muted);
}
.form-alt-link a { color: var(--ink); }
.contact-form label {
  display: block; font-size: 0.8rem; font-weight: 600; margin-bottom: 0.85rem;
}
.contact-form input,
.contact-form textarea,
.contact-form select {
  width: 100%; margin-top: 0.35rem;
  padding: 0.7rem 0.8rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font: inherit; background: #fff;
}
.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus {
  outline: 2px solid var(--accent); border-color: transparent;
}
.form-grid--split { display: grid; gap: 0.85rem; }
.form-grid--split > * { min-width: 0; }
@media (min-width: 520px) { .form-grid--split { grid-template-columns: 1fr 1fr; } }
.consent {
  display: flex !important; gap: 0.55rem; align-items: flex-start;
  font-weight: 400 !important; font-size: 0.8rem !important; color: var(--muted);
}
.consent input { width: auto; margin-top: 0.2rem; }
.honeypot { position: absolute; left: -9999px; height: 0; overflow: hidden; }
.form-status { margin: 0.75rem 0 0; }
.form-status.ok, #login-status.ok { color: #2d6a4f; }
.form-status.err, #login-status.err { color: var(--accent-deep); }
#login-status { margin: 0.75rem 0 0; font-size: 0.9rem; }
.setup-note, .caption { font-size: 0.8rem; color: var(--muted); }

.filter-bar {
  display: flex; flex-wrap: nowrap; gap: 0.45rem;
  margin: 0.7rem 0 0.95rem; align-items: center;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 0.15rem;
}
.filter-bar::-webkit-scrollbar { display: none; }
.filter {
  flex-shrink: 0;
  min-height: 40px;
  padding: 0.4rem 0.85rem; border-radius: 999px;
  border: 1px solid #e5e7eb; background: #fff;
  font: inherit; font-size: 0.8rem; cursor: pointer;
  transition: background 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease), transform 0.18s var(--ease);
}
.filter.active { background: var(--ink); color: #fff; border-color: var(--ink); }
#material-count { margin-left: auto; font-size: 0.8rem; color: var(--muted); }
@media (max-width: 900px) {
  #material-count { flex-basis: 100%; margin: 0.15rem 0 0; text-align: right; }
}
.materials {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: 1fr;
}
@media (min-width: 560px) {
  .materials { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 960px) {
  .materials {
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .materials .material-card { grid-column: span 4; }
  .materials--all .material-card--lead { grid-column: span 8; }
}

.format-grid {
  display: grid;
  gap: 0.85rem;
  grid-template-columns: 1fr;
  margin-top: 1rem;
}
@media (min-width: 560px) {
  .format-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
  .format-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.format-card {
  margin: 0;
  padding: 0.85rem 0.9rem 1rem;
  background: var(--paper);
  border-radius: 12px;
  box-shadow: none;
}
.format-card strong { display: block; margin-bottom: 0.2rem; font-size: 0.95rem; }
.format-card span { display: block; font-size: 0.8rem; color: var(--muted); line-height: 1.4; }
.format-visual {
  height: 108px;
  margin: 0 0 0.8rem;
  padding: 0.65rem;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}
.format-visual i {
  display: block;
  background: linear-gradient(145deg, #e6e0d6 0%, #cfc6b8 100%);
  border-radius: 2px;
}
.format-visual--gross {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 5px;
}
.format-visual--gross i { height: 100%; border-radius: 3px; }
.format-visual--brick {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  grid-template-rows: repeat(3, 1fr);
  gap: 3px;
}
.format-visual--brick i:nth-child(1) { grid-column: 1 / 4; }
.format-visual--brick i:nth-child(2) { grid-column: 4 / 7; }
.format-visual--brick i:nth-child(3) { grid-column: 7 / 9; }
.format-visual--brick i:nth-child(4) { grid-column: 1 / 3; }
.format-visual--brick i:nth-child(5) { grid-column: 3 / 6; }
.format-visual--brick i:nth-child(6) { grid-column: 6 / 9; }
.format-visual--brick i:nth-child(7) { grid-column: 1 / 4; }
.format-visual--brick i:nth-child(8) { grid-column: 4 / 7; }
.format-visual--brick i:nth-child(9) { grid-column: 7 / 9; }
.format-visual--grid {
  display: grid;
  grid-template-columns: repeat(4, 22px);
  grid-template-rows: repeat(4, 22px);
  gap: 3px;
  place-content: center;
  justify-content: center;
}
.format-visual--r11 {
  display: grid;
  grid-template-columns: repeat(2, 34px);
  grid-template-rows: repeat(2, 34px);
  gap: 5px;
  place-content: center;
  justify-content: center;
}
.format-visual--mosaic {
  display: grid;
  grid-template-columns: repeat(5, 15px);
  grid-template-rows: repeat(5, 15px);
  gap: 2px;
  place-content: center;
  justify-content: center;
}
.format-visual--mosaic i:nth-child(3n) { background: linear-gradient(145deg, #d7b4b6, #c07a82); }
.format-visual--mosaic i:nth-child(5n) { background: linear-gradient(145deg, #d8d2c8, #b7aea2); }
.format-visual--hex {
  display: grid;
  grid-template-columns: repeat(8, 14px);
  grid-template-rows: 26px 26px;
  justify-content: center;
  align-content: center;
  gap: 2px 3px;
  padding: 0.4rem;
}
.format-visual--hex i {
  grid-column: span 2;
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  border-radius: 0;
}
.format-visual--hex i:nth-child(5) { grid-column: 2 / span 2; }
.format-visual--thin,
.format-visual--thick {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 0.9rem 1rem;
}
.format-visual--thin i { height: 7px; border-radius: 2px; }
.format-visual--thick i { height: 22px; border-radius: 3px; }
.format-visual--r11 i {
  background:
    radial-gradient(circle at 30% 35%, rgba(255,255,255,0.45) 0 1.4px, transparent 1.8px),
    linear-gradient(145deg, #c5c1ba, #8f8b85);
  background-size: 7px 7px, 100% 100%;
}
.format-visual--pool {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 4px;
}
.format-visual--pool i {
  background: linear-gradient(160deg, #c9d6d8 0%, #8eacb3 100%);
}
.material-card {
  border: 0; padding: 0; border-radius: 14px; overflow: hidden;
  background: #fff; text-align: left; font: inherit; cursor: pointer; color: inherit;
  box-shadow: 0 10px 28px rgba(16,18,20,0.08);
}
.material-card figure { margin: 0; position: relative; }
.material-swatch { aspect-ratio: 5 / 4; display: block; overflow: hidden; }
.material-swatch img { width: 100%; height: 100%; object-fit: cover; display: block; }
.material-card figcaption {
  position: absolute;
  left: 0.7rem; right: 0.7rem; bottom: 0.7rem;
  padding: 0.7rem 0.8rem 0.75rem;
  background: rgba(255, 255, 255, 0.93);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 10px;
  box-shadow: 0 8px 22px rgba(16, 18, 20, 0.12);
}
.material-card strong { display: block; font-size: 0.98rem; letter-spacing: -0.02em; }
.material-card span {
  display: block;
  margin-bottom: 0.12rem;
  font-size: 0.64rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-deep);
  font-weight: 700;
}
.material-card em {
  display: block;
  margin-top: 0.18rem;
  font-style: normal;
  font-size: 0.78rem;
  color: var(--muted);
}
@media (min-width: 560px) {
  .material-swatch { aspect-ratio: 4 / 5; }
}
@media (min-width: 960px) {
  .materials--all .material-card--lead .material-swatch { aspect-ratio: 16 / 10; }
  .materials--all .material-card--lead strong { font-size: 1.35rem; }
  .materials--all .material-card--lead figcaption { left: 1rem; right: auto; bottom: 1rem; min-width: 15rem; }
}

.advisor {
  display: grid; gap: 1.5rem;
  padding: 1.6rem;
  background: #fff; border-radius: 14px;
  box-shadow: 0 12px 40px rgba(16,18,20,0.06);
}
@media (min-width: 860px) {
  .advisor { grid-template-columns: 0.9fr 1.1fr; }
  .advisor--embed { grid-template-columns: 1fr; }
}
.advisor-panel { min-width: 0; }
.advisor-result {
  display: grid;
  gap: 0.9rem;
}
.advisor-result__intro {
  margin: 0;
  color: var(--muted);
  font-size: 0.95rem;
}
.advisor-result__picks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}
.advisor-pick {
  display: grid;
  gap: 0.75rem;
  min-width: 0;
}
.advisor-pick__badge {
  display: block;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 600;
  margin-bottom: 0.12rem;
}
.advisor-result__image {
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 10px;
  overflow: hidden;
}
.advisor-result__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.result-tag {
  display: inline-block;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent-deep);
  font-weight: 600;
}
.advisor-result h3 {
  margin: 0.25rem 0 0.45rem;
  font-size: 1.35rem;
  line-height: 1.2;
}
.advisor-result p {
  color: var(--muted);
}
.advisor-result__intro,
.advisor-result__picks p {
  margin: 0;
}
.advisor-result__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.1rem;
  align-items: center;
}
.advisor-result--multi .advisor-pick {
  grid-template-columns: 5.5rem minmax(0, 1fr);
  align-items: start;
  gap: 0.8rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid #eee;
}
.advisor-result--multi .advisor-pick:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}
.advisor-result--multi .advisor-result__image {
  aspect-ratio: 1;
  border-radius: 8px;
}
.advisor-result--multi h3 {
  margin: 0.12rem 0 0.2rem;
  font-size: 1.05rem;
}
.step-top { display: flex; justify-content: space-between; margin-bottom: 1rem; font-size: 0.72rem; letter-spacing: 0.08em; color: var(--muted); }
.step-bars { display: flex; gap: 0.3rem; }
.step-bars i { width: 1.6rem; height: 3px; background: #e5e7eb; border-radius: 2px; display: block; }
.step-bars i.current { background: var(--accent); }
.advisor-options { display: grid; gap: 0.5rem; }
.advisor-option {
  width: 100%; text-align: left; padding: 0.8rem;
  border: 1px solid #e5e7eb; border-radius: 10px; background: var(--paper);
  font: inherit; cursor: pointer;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.75rem;
  align-items: center;
  transition: border-color 0.25s var(--ease), background 0.25s var(--ease), transform 0.18s var(--ease);
}
.advisor-option--plain { grid-template-columns: 1fr; }
.advisor-option:hover { transform: translateY(-1px); border-color: #d4d4d8; }
.advisor-option.selected { border-color: var(--accent-deep); background: #faf4f4; }
.advisor-option strong { display: block; color: var(--ink); font-size: 0.95rem; }
.advisor-option span span { color: var(--muted); font-size: 0.85rem; }
.advisor-swatches,
.advisor-size,
.advisor-surface {
  display: flex;
  gap: 0.2rem;
  flex-shrink: 0;
}
.advisor-swatches i {
  width: 1.05rem;
  height: 1.05rem;
  border-radius: 50%;
  border: 1px solid rgba(16,18,20,0.12);
  display: block;
}
.advisor-size {
  width: 2.4rem;
  height: 1.6rem;
  align-items: flex-end;
  justify-content: flex-start;
}
.advisor-size i {
  display: block;
  background: #d4d4d8;
  border-radius: 2px;
}
.advisor-size--klein i { width: 0.55rem; height: 0.55rem; }
.advisor-size--mittel i { width: 0.95rem; height: 0.95rem; }
.advisor-size--gross i { width: 1.4rem; height: 1.4rem; }
.advisor-surface {
  width: 2.2rem;
  height: 1.4rem;
  border-radius: 4px;
  border: 1px solid rgba(16,18,20,0.1);
}
.advisor-surface--matt { background: #d8d4ce; }
.advisor-surface--glanz {
  background: linear-gradient(135deg, #f4f1ec 0%, #cfc8be 55%, #eeeae4 100%);
}
.advisor-surface--struktur {
  background:
    repeating-linear-gradient(-45deg, #c9c4bc 0 3px, #b4afa7 3px 6px);
}
.advisor-controls { display: flex; justify-content: space-between; margin-top: 1.2rem; }

.site-footer--dark {
  background: var(--dark);
  color: rgba(255,255,255,0.82);
  border-top: 3px solid var(--accent);
}
.site-footer--dark a { color: inherit; text-decoration: none; }
.site-footer--dark a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 4px;
}

.footer-cta {
  max-width: var(--max); margin: 0 auto;
  padding: 2.4rem var(--pad) 2.1rem;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.1rem 1.6rem;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.footer-cta__text { max-width: 34rem; }
.footer-cta__text .section-label { color: var(--accent); }
.footer-cta__text h2 {
  color: #fff;
  margin: 0.15rem 0 0.4rem;
  font-size: clamp(1.35rem, 2.6vw, 1.85rem);
  letter-spacing: -0.03em;
  line-height: 1.2;
}
.footer-cta__lead {
  margin: 0;
  font-size: 0.92rem;
  color: rgba(255,255,255,0.62);
}
.footer-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  flex: 0 1 auto;
}
.footer-cta__actions .button {
  width: auto;
  margin: 0;
  min-width: 10.75rem;
}
.footer-cta .button--ghost:hover {
  border-color: #fff;
  background: rgba(255,255,255,0.07);
}

.footer-top {
  max-width: var(--max); margin: 0 auto;
  padding: 2.4rem var(--pad) 2rem;
  display: grid;
  gap: 2rem 2.4rem;
}
@media (min-width: 560px) {
  .footer-top { grid-template-columns: 1.1fr 1fr; }
  .footer-col--brand { grid-column: 1; grid-row: 1; }
  .footer-col:last-child { grid-column: 2; grid-row: 1; }
  .footer-col:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
}
@media (min-width: 880px) {
  .footer-top { grid-template-columns: 1.35fr 0.9fr 1.15fr; }
  .footer-col--brand,
  .footer-col:nth-child(2),
  .footer-col:last-child {
    grid-column: auto;
    grid-row: auto;
  }
}
.brand--footer { color: #fff; }
.brand--footer .brand-lockup svg { height: 58px; }
.footer-col__title {
  margin: 0 0 0.9rem;
  font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(255,255,255,0.48);
  font-weight: 700;
}
.footer-nav {
  display: grid;
  grid-template-columns: repeat(2, max-content);
  gap: 0.5rem 2.6rem;
  font-size: 0.9rem;
}
@media (min-width: 560px) and (max-width: 879px) {
  .footer-nav {
    grid-template-columns: repeat(3, max-content);
    gap: 0.5rem 2.2rem;
  }
}
@media (min-width: 880px) {
  .footer-nav { grid-template-columns: 1fr; }
}
.footer-nav a {
  width: fit-content;
  transition: color 0.2s var(--ease);
}
.footer-nav a:hover { color: #fff; }
.footer-nav a[aria-current="page"] { color: var(--accent); }
.footer-tagline {
  margin: 0.85rem 0 0.45rem;
  font-family: "Snell Roundhand", "Apple Chancery", Palatino, "Times New Roman", serif;
  font-style: italic;
  color: var(--accent);
  font-size: 1.15rem;
}
.footer-blurb {
  margin: 0;
  max-width: 18rem;
  font-size: 0.88rem;
  line-height: 1.5;
  color: rgba(255,255,255,0.62);
}
.footer-google {
  margin: 0.85rem 0 0;
}
.footer-google a {
  color: rgba(255,255,255,0.85);
  text-decoration: none;
  font-size: 0.86rem;
  font-weight: 600;
}
.footer-google a:hover { color: #fff; }
.footer-contact {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.95rem;
}
.footer-contact li {
  display: grid;
  grid-template-columns: 1.15rem 1fr;
  gap: 0.7rem;
  align-items: start;
}
.footer-contact__icon {
  color: var(--accent);
  display: grid;
  place-items: start center;
  padding-top: 0.18rem;
}
.footer-contact a {
  font-weight: 600;
  font-size: 0.9rem;
  line-height: 1.4;
  transition: color 0.2s var(--ease);
}
.footer-contact a:hover { color: #fff; }
.footer-contact li > div span {
  display: block;
  margin-top: 0.12rem;
  font-size: 0.82rem;
  font-weight: 400;
  color: rgba(255,255,255,0.55);
}

.footer-legal {
  max-width: var(--max); margin: 0 auto;
  padding: 1.05rem var(--pad) 1.2rem;
  font-size: 0.82rem;
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.55rem 1rem;
  border-top: 1px solid rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.5);
}
.footer-legal__nav { display: flex; flex-wrap: wrap; gap: 0.35rem 1.15rem; }
.footer-legal a { transition: color 0.2s var(--ease); }
.footer-legal a:hover { color: #fff; }

#material-dialog {
  border: 0;
  border-radius: 16px;
  padding: 0;
  max-width: min(560px, 92vw);
  width: min(560px, 92vw);
  position: fixed;
  inset: 0;
  margin: auto;
  height: fit-content;
  max-height: calc(100dvh - 1.5rem);
  overflow: auto;
  background: #fff;
  color: var(--ink);
  box-shadow: 0 28px 80px rgba(16, 18, 20, 0.28);
}
#material-dialog::backdrop { background: rgba(16, 18, 20, 0.55); }
#material-detail { padding: 0 1.5rem 1.5rem; }
#material-detail h2 { margin: 0 0 0.35rem; font-size: 1.45rem; letter-spacing: -0.03em; }
.eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.7rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent-deep);
  font-weight: 700;
}
.material-tagline {
  margin: 0 0 0.7rem;
  color: var(--muted);
  font-size: 0.95rem;
}
.material-traits {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  list-style: none;
  margin: 0.95rem 0 1rem;
  padding: 0;
}
.material-traits li {
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  background: var(--paper);
  font-size: 0.75rem;
  font-weight: 600;
}
.dialog-close {
  position: absolute; top: 0.55rem; right: 0.55rem; z-index: 2;
  width: 2rem; height: 2rem; border: 0; border-radius: 50%;
  background: rgba(255,255,255,0.92); cursor: pointer;
  box-shadow: 0 4px 14px rgba(16,18,20,0.16);
}

.site-dialog {
  border: 0;
  border-radius: 18px;
  padding: 0;
  width: min(34rem, calc(100vw - 1.25rem));
  height: fit-content;
  max-height: calc(100dvh - 1.5rem);
  overflow: hidden;
  position: fixed;
  inset: 0;
  margin: auto;
  background: #fff;
  color: var(--ink);
  box-shadow: 0 28px 80px rgba(16, 18, 20, 0.28);
}
.site-dialog::backdrop {
  background: rgba(16, 18, 20, 0.55);
}
.site-dialog__inner {
  padding: 1.7rem 1.4rem 1.35rem;
  overflow: auto;
  max-height: calc(100dvh - 1.5rem);
}
.site-dialog h2 {
  margin: 0 0 0.35rem;
  padding-right: 2.2rem;
  font-size: clamp(1.4rem, 3vw, 1.8rem);
  letter-spacing: -0.03em;
}
.site-dialog .section-intro {
  margin: 0 0 1.15rem;
  color: var(--muted);
}
.site-dialog .contact-form {
  margin: 0;
}
.site-dialog .form-status {
  margin: 0.85rem 0 0;
}
.material-detail-swatch {
  width: calc(100% + 3rem);
  margin: 0 -1.5rem 0.95rem;
  border-radius: 0;
  aspect-ratio: 16 / 10;
  display: block;
  overflow: hidden;
}
.material-detail-swatch img { width: 100%; height: 100%; object-fit: cover; display: block; }

.legal-page main { max-width: 720px; margin: 0 auto; padding: calc(var(--header-h) + 1.6rem) var(--pad) 4rem; }
.legal-page main p, .legal-page main li, .legal-updated { color: var(--muted); }
.legal-placeholder {
  padding: 0.8rem 1rem; border-left: 3px solid var(--accent);
  background: var(--paper); margin: 1rem 0;
}

.g-stars {
  display: inline-flex;
  align-items: center;
  gap: 0.08rem;
  vertical-align: middle;
}
.g-star {
  position: relative;
  display: inline-block;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.g-star svg { display: block; }
.g-star__base { fill: #e5e7eb; }
.g-star__fill {
  position: absolute;
  inset: 0 auto 0 0;
  overflow: hidden;
  width: 0;
}
.g-star__fill.is-20 { width: 20%; }
.g-star__fill.is-100 { width: 100%; }
.g-star__fill svg { fill: #c9a36a; }

.google-reviews__layout {
  display: grid;
  gap: 1.2rem;
}
@media (min-width: 900px) {
  .google-reviews__layout { grid-template-columns: 1.18fr 0.82fr; align-items: start; gap: 1.6rem; }
}
.google-reviews__summary {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 1.4rem 1.3rem 1.25rem;
  box-shadow: 0 10px 30px rgba(16, 18, 20, 0.06);
}
.google-reviews__brand {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0 0 1rem;
  font-size: 0.92rem;
  font-weight: 700;
}
.google-reviews__brand svg { flex-shrink: 0; }
.google-reviews__score {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin-bottom: 1.1rem;
}
.google-reviews__value {
  margin: 0;
  font-size: 1.7rem;
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
}
.google-reviews__count {
  margin: 0.2rem 0 0;
  color: var(--muted);
  font-size: 0.86rem;
}
.google-reviews__bars {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}
.google-reviews__bars li {
  display: grid;
  grid-template-columns: 1.1rem 1fr;
  gap: 0.55rem;
  align-items: center;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--muted);
}
.google-reviews__bar {
  display: block;
  height: 8px;
  border-radius: 99px;
  background: var(--line);
  overflow: hidden;
}
.google-reviews__bar-fill {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: var(--accent);
}
.google-reviews__bar-fill.is-20 { width: 20%; }
.google-reviews__bar-fill.is-80 { width: 80%; }
.google-reviews__bar-fill.is-100 { width: 100%; }
.google-reviews__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem 1.1rem;
  margin: 1.2rem 0 0;
}
.google-reviews__list {
  display: grid;
  gap: 1rem;
}
.google-review {
  margin: 0;
  padding: 1.25rem 1.2rem 1.15rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(16, 18, 20, 0.06);
}
.google-review__head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.google-review__avatar {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--accent-deep);
  color: #fff;
  font-weight: 700;
  flex-shrink: 0;
}
.google-review:nth-child(3n+2) .google-review__avatar { background: var(--ink); }
.google-review:nth-child(3n) .google-review__avatar { background: var(--accent); }
.google-review__name {
  margin: 0;
  font-weight: 700;
  font-size: 0.95rem;
}
.google-review__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.7rem;
  margin: 0.2rem 0 0;
  color: var(--muted);
  font-size: 0.82rem;
}
.google-review p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
}

.testimonial-grid {
  display: grid; gap: 1.1rem;
  margin-top: 1.6rem;
}
@media (min-width: 800px) {
  .testimonial-grid { grid-template-columns: repeat(3, 1fr); }
}
.testimonial-card {
  margin: 0; padding: 1.3rem;
  background: var(--paper);
  border-radius: 12px;
  border: 1px solid var(--line);
}
.testimonial-card p {
  margin: 0 0 0.8rem;
  font-size: 0.95rem;
  line-height: 1.5;
}
.testimonial-card footer {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--muted);
}
.testimonial-card,
.google-review,
.format-card,
.material-card,
.login-card {
  transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease);
}
.testimonial-card:hover,
.google-review:hover,
.format-card:hover,
.material-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(16,18,20,0.1);
}
.material-card img {
  transition: transform 0.8s var(--ease);
}
.material-card:hover img { transform: scale(1.07); }

/* Scroll progress */
.scroll-progress {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  width: 100%;
  z-index: 80;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left center;
  pointer-events: none;
  will-change: transform;
}

/* Marquee */
.ticker {
  overflow: hidden;
  background: var(--dark);
  color: rgba(255,255,255,0.88);
  border-top: 1px solid rgba(255,255,255,0.08);
  padding: 0.85rem 0;
}
.ticker__track {
  display: flex;
  align-items: center;
  width: max-content;
  gap: 0;
  animation: ticker 32s linear infinite;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.ticker:hover .ticker__track { animation-play-state: paused; }
.ticker__track span { padding: 0 0.15rem; }
.ticker__track i {
  display: inline-block;
  width: 6px; height: 6px;
  margin: 0 1.4rem;
  align-self: center;
  background: var(--accent);
  transform: rotate(45deg);
  flex-shrink: 0;
}
@keyframes ticker {
  from { transform: translate3d(0,0,0); }
  to { transform: translate3d(-50%,0,0); }
}

/* Scroll reveals: leichte Bewegung, Inhalt bleibt sichtbar */
html.js .preview-card,
html.js .service-block,
html.js .ref-card,
html.js .format-card,
html.js .google-review,
html.js .google-reviews__summary,
html.js .testimonial-card,
html.js .material-card,
html.js .section-heading,
html.js .cta-band__inner,
html.js .advisor,
html.js .about-grid > *,
html.js .about-story > *,
html.js .about-values li,
html.js .team-card,
html.js .berater-intro > *,
html.js .anfahrt-grid > *,
html.js .gewerbe-grid > *,
html.js .contact-form-wrap,
html.js .quote-block,
html.js .login-card,
html.js .partner-info,
html.js .footer-cta,
html.js .footer-col,
html.js .account-stat,
html.js .account-panel,
html.js .account-tile,
html.js .account-next,
html.js .account-notice,
html.js .account-object,
html.js .account-settings__form,
html.js .account-gate__intro {
  translate: 0 14px;
}
html.js .process-steps li {
  opacity: 0;
  translate: 0 -18px;
}
html.js .is-in {
  translate: 0 0;
  transition: translate 0.7s var(--ease);
}
html.js .process-steps li.is-in {
  opacity: 1;
  translate: 0 0;
  transition:
    translate 0.75s var(--ease),
    opacity 0.5s ease,
    transform 0.45s var(--ease),
    box-shadow 0.45s var(--ease);
}
html.js .process-steps li.is-in.d1 { transition-delay: 0.14s; }
html.js .process-steps li.is-in.d2 { transition-delay: 0.28s; }
html.js .process-steps li.is-in.d3 { transition-delay: 0.42s; }
html.js .is-in.d1 { transition-delay: 0.08s; }
html.js .is-in.d2 { transition-delay: 0.16s; }
html.js .is-in.d3 { transition-delay: 0.24s; }
html.js .is-in.d4 { transition-delay: 0.32s; }
html.js .is-in.d5 { transition-delay: 0.4s; }

html.js .account-page .login-card,
html.js .account-gate__intro {
  opacity: 1;
  translate: none;
}

.advisor-panel-enter {
  animation: hero-in 0.45s var(--ease) both;
}

#material-dialog[open],
.site-dialog[open] {
  animation: dialog-in 0.35s var(--ease);
}
#material-dialog::backdrop,
.site-dialog::backdrop {
  animation: fade-in 0.3s ease;
}
@keyframes dialog-in {
  from { opacity: 0; transform: translateY(12px) scale(0.98); }
  to { opacity: 1; transform: none; }
}
@keyframes fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

.page-hero--split .page-hero__photo {
  overflow: hidden;
}
.page-hero--split .page-hero__photo img {
  transition: transform 1.1s var(--ease);
}
.page-hero--split:hover .page-hero__photo img {
  transform: scale(1.04);
}

.section-heading h2,
.contact-form-wrap h2,
.advisor-intro h2,
.page-hero--split h1,
.about-grid h1,
.berater-intro h1 {
  text-wrap: balance;
}

/* Responsive refinements */
@media (max-width: 1119px) {
  .has-overlay-header .page-hero__copy { padding-top: calc(var(--header-h) + 1.8rem); }
}
@media (max-width: 799px) {
  .preview-grid, .ref-grid { grid-template-columns: 1fr 1fr; }
  .hero-title { font-size: clamp(2rem, 9vw, 2.7rem); }
  .section { padding: 2.15rem var(--pad); }
  .cta-band { padding: 2rem var(--pad); }
  .legal-page main { padding: calc(var(--header-h) + 1.4rem) var(--pad) 3.2rem; }
}
@media (max-width: 699px) {
  .page-hero {
    min-height: auto;
    align-items: flex-end;
  }
  .page-hero__shade {
    background: linear-gradient(180deg, rgba(12,14,16,0.38) 0%, rgba(12,14,16,0.5) 42%, rgba(12,14,16,0.72) 100%);
  }
  .page-hero__copy {
    padding: calc(var(--header-h) + 1.35rem) 1.15rem 2.1rem;
    max-width: none;
  }
  .has-overlay-header .page-hero__copy { padding-top: calc(var(--header-h) + 1.35rem); }
  .page-hero--compact .page-hero__copy { padding-bottom: 2rem; }
  .hero-lead { font-size: 0.98rem; }
  .hero-actions { gap: 0.55rem; }
  .hero-actions .button { flex: 1 1 auto; }
  .hero-trust { gap: 0.85rem 1rem; }
  .section-heading { margin-bottom: 1rem; }
  .footer-top, .footer-cta, .footer-legal { padding-left: var(--pad); padding-right: var(--pad); }
  .page-hero--split .page-hero__copy { padding: 1.05rem var(--pad) 0.85rem; }
  .page-hero--split .page-hero__photo img,
  .page-hero--split .ref-placeholder--hero { min-height: 150px; max-height: 170px; }
  .showroom-intro { min-height: min(58dvh, 480px); }
  .showroom-intro__inner { padding: 1.3rem var(--pad) 1.4rem; }
  .showroom-intro__card { max-width: none; padding: 1.2rem 1.15rem 1.15rem; }
}
@media (max-width: 479px) {
  .preview-grid, .ref-grid { grid-template-columns: 1fr; }
  .hero-trust { grid-template-columns: 1fr 1fr; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .button { width: 100%; }
  .showroom-intro__card .hero-actions .button { width: 100%; }
  .format-grid { grid-template-columns: 1fr; }
  .footer-cta__actions { width: 100%; }
  .footer-cta__actions .button { flex: 1 1 calc(50% - 0.35rem); min-width: 0; }
}

@media (hover: none), (pointer: coarse) {
  .page-hero__media img,
  .showroom-intro__media img {
    animation: none;
    transform: none;
  }
  .preview-card:hover,
  .service-block:hover,
  .team-card:hover,
  .ref-card:hover,
  .ref-card--placeholder:hover,
  .testimonial-card:hover,
  .google-review:hover,
  .format-card:hover,
  .material-card:hover,
  .account-tile:hover,
  .account-stat:hover,
  .process-steps li:hover,
  .process-steps li.is-current,
  .button:hover {
    transform: none;
  }
  .process-steps li:hover,
  .process-steps li.is-current {
    box-shadow:
      inset 0 1px 0 rgba(255, 255, 255, 0.72),
      inset 0 -1px 0 rgba(26, 29, 33, 0.06);
  }
  .button:hover {
    box-shadow: 0 10px 30px rgba(16, 18, 20, 0.06);
  }
  .preview-card:hover img,
  .service-block:hover img,
  .ref-card:hover img,
  .material-card:hover img,
  .account-tile:hover img,
  .page-hero--split:hover .page-hero__photo img {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }
  .page-hero__copy > * {
    opacity: 1 !important;
    transform: none !important;
  }
  html.js .preview-card,
  html.js .service-block,
  html.js .ref-card,
  html.js .format-card,
  html.js .google-review,
  html.js .google-reviews__summary,
  html.js .testimonial-card,
  html.js .material-card,
  html.js .section-heading,
  html.js .cta-band__inner,
  html.js .advisor,
  html.js .about-grid > *,
  html.js .about-story > *,
  html.js .about-values li,
  html.js .team-card,
  html.js .berater-intro > *,
  html.js .anfahrt-grid > *,
  html.js .gewerbe-grid > *,
  html.js .contact-form-wrap,
  html.js .quote-block,
  html.js .login-card,
  html.js .partner-info,
  html.js .footer-cta,
  html.js .footer-col,
  html.js .process-steps li {
    opacity: 1 !important;
    translate: none !important;
  }
  .hero-script {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
  .page-hero__media img,
  .showroom-intro__media img,
  .ticker__track {
    animation: none !important;
    transform: none !important;
  }
  .button:hover { transform: none; }
}

/* Intern / Backoffice — App-Shell analog 20 Wines */
.intern-body {
  --intern-sidebar: #16191c;
  --intern-sidebar-text: rgba(245, 245, 245, 0.72);
  --intern-sidebar-strong: #f5f5f5;
  --intern-sidebar-muted: rgba(245, 245, 245, 0.45);
  --intern-sidebar-hover: #1e2226;
  --intern-sidebar-active: rgba(192, 122, 130, 0.2);
  --intern-sidebar-border: rgba(255, 255, 255, 0.08);
  --intern-bg: #ececee;
  --intern-card-radius: 16px;
  --intern-shadow: 0 4px 16px rgba(22, 25, 28, 0.06);
  min-height: 100vh;
  background-color: var(--intern-bg);
  background-image:
    radial-gradient(ellipse 95% 60% at 6% -8%, rgba(192, 122, 130, 0.07), transparent 55%),
    radial-gradient(ellipse 75% 50% at 96% 4%, rgba(157, 87, 89, 0.05), transparent 52%);
  background-attachment: fixed;
}
.intern-wrap {
  display: grid;
  grid-template-columns: 248px minmax(0, 1fr);
  min-height: 100vh;
}
.intern-sidebar {
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: auto;
  background: var(--intern-sidebar);
  border-right: 1px solid var(--intern-sidebar-border);
  padding: 1.2rem 0.9rem 1rem;
  color: var(--intern-sidebar-text);
}
.intern-side-brand {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  color: #f4f2f0;
  margin: 0 0.35rem 1.35rem;
}
.intern-side-brand svg > g {
  fill: #f4f2f0;
}
.intern-side-brand__logo svg {
  height: 36px;
  width: auto;
}
.intern-side-brand__text {
  display: grid;
  gap: 0.08rem;
  min-width: 0;
}
.intern-side-brand__text strong {
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.15;
}
.intern-side-brand__text span,
.intern-side-brand__label {
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--intern-sidebar-muted);
}
.intern-side-nav {
  display: grid;
  gap: 0.2rem;
}
.intern-side-nav__link {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  width: 100%;
  text-align: left;
  text-decoration: none;
  padding: 0.52rem 0.7rem;
  border: 0;
  border-left: 3px solid transparent;
  border-radius: 12px;
  background: transparent;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 650;
  color: var(--intern-sidebar-text);
  cursor: pointer;
}
.intern-side-nav__link span { flex: 1; }
.intern-nav-icon {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  opacity: 0.85;
}
.intern-side-nav__link:hover {
  background: var(--intern-sidebar-hover);
  color: var(--intern-sidebar-strong);
}
.intern-side-nav__link.is-active {
  background: var(--intern-sidebar-active);
  color: var(--intern-sidebar-strong);
  border-left-color: var(--accent);
}
.intern-side-nav__link:hover .intern-nav-icon,
.intern-side-nav__link.is-active .intern-nav-icon {
  opacity: 1;
  color: var(--accent);
}
.intern-side-nav__link em {
  font-style: normal;
  min-width: 1.2rem;
  height: 1.2rem;
  padding: 0 0.32rem;
  border-radius: 99px;
  background: var(--accent);
  color: #fff;
  font-size: 0.65rem;
  font-weight: 700;
  line-height: 1.2rem;
  text-align: center;
}
.intern-side-nav__link--btn { font-family: inherit; }
.intern-side-peek {
  flex: 1;
  min-height: 0;
  margin-top: 1.15rem;
  padding-top: 0.95rem;
  border-top: 1px solid var(--intern-sidebar-border);
  overflow: auto;
}
.intern-side-peek__head h2 {
  margin: 0 0.55rem 0.45rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--intern-sidebar-muted);
}
.intern-side-peek__empty {
  margin: 0 0.55rem;
  font-size: 0.8rem;
  color: var(--intern-sidebar-muted);
}
.intern-side-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.intern-side-list a {
  display: block;
  text-decoration: none;
  padding: 0.45rem 0.55rem;
  border-radius: 10px;
  color: var(--intern-sidebar-strong);
}
.intern-side-list a:hover { background: var(--intern-sidebar-hover); }
.intern-side-list strong {
  display: block;
  font-size: 0.82rem;
  font-weight: 650;
}
.intern-side-list span {
  display: block;
  font-size: 0.72rem;
  color: var(--intern-sidebar-muted);
}
.intern-side-foot {
  margin-top: auto;
  padding-top: 0.9rem;
  border-top: 1px solid var(--intern-sidebar-border);
}
.intern-side-user {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0.35rem 0.7rem;
  min-width: 0;
}
.intern-side-user__avatar {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 99px;
  display: grid;
  place-items: center;
  background: var(--intern-sidebar-active);
  color: var(--intern-sidebar-strong);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.intern-side-user__meta {
  display: grid;
  gap: 0.08rem;
  min-width: 0;
}
.intern-side-user__meta strong {
  font-size: 0.78rem;
  font-weight: 650;
  color: var(--intern-sidebar-strong);
}
.intern-side-user__meta span,
.intern-side-user {
  font-size: 0.72rem;
  color: var(--intern-sidebar-muted);
  word-break: break-all;
}
.intern-main {
  max-width: none;
  margin: 0;
  padding: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.intern-main__body {
  padding: 1.2rem clamp(1.1rem, 2.4vw, 1.8rem) 3rem;
  min-width: 0;
}
.intern-main__body > .intern-flash,
.intern-main__body > .intern-page,
.intern-main > .intern-flash,
.intern-main > .intern-page {
  max-width: var(--max);
}
.intern-main > .intern-page--flow {
  max-width: 42rem;
}
.intern-page--dash .intern-now {
  max-width: none;
}
.intern-page--dash .intern-pipe {
  margin-top: 0.35rem;
}
.intern-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  flex-wrap: wrap;
  position: sticky;
  top: 0;
  z-index: 8;
  margin: 0;
  padding: 1.05rem clamp(1.1rem, 2.4vw, 1.8rem) 0.95rem;
  background: rgba(236, 236, 238, 0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(22, 25, 28, 0.06);
}
.intern-top > div:first-child,
.intern-top__aside {
  max-width: var(--max);
}
.intern-top h1 {
  margin: 0;
  font-size: 1.45rem;
  font-weight: 700;
  letter-spacing: -0.04em;
}
.intern-top__lede {
  margin: 0.28rem 0 0;
  color: var(--muted);
  font-size: 0.9rem;
}
.intern-top__aside {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  flex-wrap: wrap;
  margin-left: auto;
}
.intern-top__date {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}
.intern-top__back { min-height: 38px; }
.intern-lede {
  margin: 0 0 1.15rem;
  max-width: 42rem;
  color: var(--muted);
  font-size: 0.92rem;
}
.intern-lede--tight { margin: 0.35rem 0 1rem; }
.intern-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0 0 1.15rem;
}
.intern-flow__intro {
  margin: 0 0 1.1rem;
  max-width: 40rem;
  color: var(--muted);
}
.intern-pipe {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  list-style: none;
  margin: 0 0 1.15rem;
  padding: 0.45rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: var(--intern-shadow, 0 4px 16px rgba(22, 25, 28, 0.06));
}
.intern-pipe__step {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.4rem;
  flex: 0 0 auto;
  padding: 0.42rem 0.6rem 0.42rem 0.45rem;
  text-align: left;
  border-radius: 999px;
  background: var(--paper, #f6f3ef);
}
.intern-pipe__step.is-empty {
  background: transparent;
  opacity: 0.55;
}
.intern-pipe__n {
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 99px;
  display: grid;
  place-items: center;
  font-size: 0.68rem;
  font-weight: 700;
  background: var(--accent);
  color: #fff;
  flex-shrink: 0;
}
.intern-pipe__step--termin .intern-pipe__n { background: var(--accent-deep); }
.intern-pipe__step--auswahl .intern-pipe__n { background: #7d8a96; }
.intern-pipe__step--verlegung .intern-pipe__n { background: #c4a574; }
.intern-pipe__label {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  flex: 1;
}
.intern-pipe__step em {
  font-style: normal;
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--muted);
}
.intern-pipe__step.is-empty {
  opacity: 0.48;
}
.intern-pipe__step.has-items em {
  color: var(--ink);
}
.intern-now h2,
.intern-now .intern-section-head h2 {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}
.intern-now .intern-section-head { margin-bottom: 0.75rem; }
.intern-now__empty {
  margin: 0;
  padding: 1.2rem 1rem;
  background: #fff;
  border: 1px dashed var(--line);
  border-radius: 16px;
  color: var(--muted);
}
.intern-now__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}
@media (min-width: 860px) {
  .intern-now__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.intern-now__card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 1rem 1.1rem 1.05rem;
  box-shadow: var(--intern-shadow, 0 4px 16px rgba(22, 25, 28, 0.06));
  border-left: 4px solid var(--accent);
}
.intern-now__card--termin { border-left-color: var(--accent-deep); }
.intern-now__card--auswahl { border-left-color: #7d8a96; }
.intern-now__card--verlegung { border-left-color: #c4a574; }
.intern-now__phase {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent-deep);
}
.intern-now__card--verlegung .intern-now__phase { color: #9a7b4e; }
.intern-now__card--auswahl .intern-now__phase { color: #5f6b75; }
.intern-now__person {
  display: block;
  text-decoration: none;
  margin-bottom: 0.35rem;
}
.intern-now__person strong {
  display: block;
  font-size: 1.12rem;
  letter-spacing: -0.03em;
}
.intern-now__person span,
.intern-now__hint,
.intern-now__dates li {
  display: block;
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.4;
}
.intern-now__hint { margin: 0 0 0.55rem; }
.intern-now__dates {
  list-style: none;
  margin: 0 0 0.85rem;
  padding: 0.55rem 0.7rem;
  background: var(--paper, #f6f3ef);
  border-radius: 10px;
}
.intern-now__dates li + li { margin-top: 0.28rem; }
.intern-now__cta { margin-top: 0.15rem; }
.intern-now__cta form { margin: 0; }
.intern-now__cta .button { min-width: 11.5rem; }
.intern-card--today { max-width: 36rem; }
.progress-wrap {
  margin: 0 0 1.25rem;
  padding: 1.05rem 1.15rem 1.1rem;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--intern-card-radius, 16px);
  box-shadow: var(--intern-shadow, 0 4px 16px rgba(22, 25, 28, 0.06));
}
.progress-wrap--compact {
  margin: 0 0 1rem;
  padding: 0.85rem 0.9rem 0.95rem;
  box-shadow: none;
  background: var(--paper);
}
.progress-wrap--story .progress-now {
  margin-top: 0.95rem;
  padding-top: 0.9rem;
  border-top: 1px solid var(--line);
}
.progress-kicker {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--accent-deep);
}
.progress-now__title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.03em;
}
.progress-steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.15rem;
}
.progress-steps__item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.35rem;
  position: relative;
  text-align: left;
  flex: 0 0 auto;
}
.progress-steps__item:not(:last-child)::after {
  content: "";
  width: 12px;
  height: 2px;
  margin: 0 0.2rem 0 0.15rem;
  background: var(--line);
  border-radius: 99px;
  flex-shrink: 0;
}
.progress-steps__item.is-done:not(:last-child)::after,
.progress-steps__item.is-current:not(:last-child)::after {
  background: var(--accent);
}
.progress-steps__dot {
  width: 26px;
  height: 26px;
  border-radius: 99px;
  display: grid;
  place-items: center;
  font-size: 0.68rem;
  font-weight: 700;
  background: #fff;
  border: 2px solid var(--line);
  color: var(--muted);
  flex-shrink: 0;
}
.progress-steps__item.is-done .progress-steps__dot {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.progress-steps__item.is-current .progress-steps__dot {
  background: var(--accent-deep);
  border-color: var(--accent-deep);
  color: #fff;
  box-shadow: 0 0 0 3px rgba(157, 87, 89, 0.16);
}
.progress-steps__label {
  font-size: 0.8rem;
  font-weight: 650;
  color: var(--muted);
}
.progress-steps__item.is-done .progress-steps__label,
.progress-steps__item.is-current .progress-steps__label {
  color: var(--ink);
}
.progress-hint {
  margin: 0.4rem 0 0;
  color: var(--muted);
  font-size: 0.92rem;
}
.progress-cta { margin: 0.8rem 0 0; }
.progress-cta form { margin: 0; }
.account-dash .progress-wrap {
  box-shadow: 0 10px 28px rgba(22, 25, 28, 0.05);
}
@media (max-width: 640px) {
  .intern-now__cta .button { width: 100%; }
  .progress-steps__label { font-size: 0.68rem; }
}
.intern-create {
  width: 100%;
  margin-top: 1rem;
}
.intern-create summary {
  cursor: pointer;
  font-weight: 700;
  font-size: 1.05rem;
  list-style: none;
}
.intern-create summary::-webkit-details-marker { display: none; }
.intern-create[open] summary { margin-bottom: 0.2rem; }
.intern-body--login {
  display: grid;
  place-items: center;
  padding: 1.6rem var(--pad) 3.5rem;
  background-color: #16191c;
  background-image:
    radial-gradient(ellipse 90% 55% at 12% -10%, rgba(192, 122, 130, 0.22), transparent 55%),
    radial-gradient(ellipse 70% 45% at 92% 8%, rgba(157, 87, 89, 0.16), transparent 50%);
}
.intern-main--login {
  padding: 0;
  display: block;
}
.intern-login {
  width: min(400px, 100%);
  background: #fff;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
  padding: 1.95rem 1.65rem 1.45rem;
}
.intern-login__brand { display: block; margin-bottom: 1.15rem; color: var(--ink); }
.intern-login__brand .brand-lockup svg { height: 44px; }
.intern-login__kicker {
  margin: 0 0 0.35rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent-deep);
}
.intern-login h1 {
  margin: 0 0 0.35rem;
  font-size: 1.7rem;
  letter-spacing: -0.045em;
}
.intern-login__lede {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
}
.intern-login__form { margin-top: 1.15rem; }
.intern-login__foot {
  margin: 1rem 0 0;
  font-size: 0.85rem;
  color: var(--muted);
}
.intern-login__foot a { color: var(--accent-deep); }
.intern-flash {
  margin: 0 0 1.1rem;
  padding: 0.75rem 0.95rem;
  border-radius: 12px;
  font-size: 0.9rem;
  border: 1px solid transparent;
}
.intern-flash--ok { background: #e8f5ee; color: #2d6a4f; border-color: #cde8d8; }
.intern-flash--err { background: #f8eaea; color: var(--accent-deep); border-color: #efd4d4; }
.intern-page__head { margin-bottom: 1.4rem; }
.intern-page__head h1 {
  margin: 0.2rem 0 0.4rem;
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  letter-spacing: -0.04em;
}
.intern-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 0.85rem;
  margin-bottom: 1.4rem;
}
.intern-stat,
.intern-card {
  position: relative;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--intern-card-radius, 16px);
  padding: 1.1rem 1.2rem 1.15rem;
  box-shadow: var(--intern-shadow, 0 4px 16px rgba(22, 25, 28, 0.06));
  overflow: hidden;
}
.intern-stat {
  text-decoration: none;
  display: block;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
a.intern-stat:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(22, 25, 28, 0.1);
  border-color: rgba(192, 122, 130, 0.35);
}
.intern-stat__label,
.intern-stat p {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.intern-stat strong {
  display: block;
  margin: 0.35rem 0 0.1rem;
  font-size: 1.85rem;
  letter-spacing: -0.05em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.intern-stat span { font-size: 0.8rem; color: var(--muted); }
.intern-split {
  display: grid;
  gap: 1rem;
}
.intern-split--kpis { margin-bottom: 1.15rem; }
@media (min-width: 860px) {
  .intern-split { grid-template-columns: 1fr 1fr; }
  .intern-split--kunden { grid-template-columns: minmax(0, 1.7fr) minmax(15rem, 0.85fr); }
}
.intern-card h2 {
  margin: 0 0 0.8rem;
  font-size: 1.05rem;
}
.intern-split-count { margin: 0 0 1.1rem; color: var(--muted); }
.intern-bars,
.intern-feed {
  list-style: none;
  margin: 0;
  padding: 0;
}
.intern-bars li {
  display: grid;
  grid-template-columns: 9rem 1fr auto;
  gap: 0.6rem;
  align-items: center;
  font-size: 0.85rem;
  margin-bottom: 0.45rem;
}
.intern-bars em {
  font-style: normal;
  font-variant-numeric: tabular-nums;
  font-weight: 650;
  min-width: 1.2rem;
  text-align: right;
}
.intern-bar,
.intern-hbar {
  display: block;
  height: 8px;
  width: 100%;
  border-radius: 99px;
  overflow: visible;
}
.intern-bar {
  background: linear-gradient(90deg, var(--accent), var(--accent-deep));
  width: calc(var(--n, 0) * 1%);
  min-width: 4px;
}
.intern-hbar rect {
  fill: var(--accent);
}
.intern-card:nth-child(2) .intern-hbar rect,
.intern-split--kpis .intern-card:nth-child(2) .intern-hbar rect {
  fill: var(--accent-deep);
}
.intern-chart__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.8rem;
  flex-wrap: wrap;
}
.intern-chart__head h2 { margin: 0; }
.intern-card--chart { margin-bottom: 1.15rem; overflow: visible; }
.intern-card--chart .intern-split-count { margin: 0.45rem 0 1rem; }
.intern-chart { margin: 0; }
.intern-chart__legend {
  display: flex;
  gap: 0.9rem;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.78rem;
  color: var(--muted);
}
.intern-chart__legend li {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.intern-swatch {
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 3px;
  display: inline-block;
}
.intern-swatch--in { background: var(--accent); }
.intern-swatch--out { background: #c4a574; }
.intern-chart__plot {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(3.4rem, 4.6rem));
  justify-content: start;
  gap: 0.45rem;
  align-items: end;
  min-height: 12.5rem;
}
}
.intern-chart__col {
  display: grid;
  justify-items: center;
  gap: 0.25rem;
  min-width: 0;
}
.intern-chart__col svg {
  width: 100%;
  max-width: 2.4rem;
  height: 10rem;
  display: block;
}
.intern-chart__bar--in { fill: var(--accent); }
.intern-chart__bar--out { fill: #c4a574; }
.intern-chart__col strong {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.intern-chart__col.is-now strong { color: var(--accent-deep); }
.intern-chart__col span {
  font-size: 0.68rem;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.intern-donut-row {
  display: flex;
  align-items: center;
  gap: 1rem 1.2rem;
  flex-wrap: wrap;
}
.intern-donut-wrap {
  position: relative;
  width: 112px;
  height: 112px;
  flex-shrink: 0;
}
.intern-donut__track { stroke: var(--paper, #f6f3ef); }
.intern-donut__value {
  stroke: var(--accent);
  stroke-linecap: round;
}
.intern-donut-wrap p {
  position: absolute;
  inset: 0;
  margin: 0;
  display: grid;
  place-items: center;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.04em;
}
.intern-donut-copy {
  flex: 1;
  min-width: 12rem;
}
.intern-donut-copy p { margin: 0; }
.intern-donut-copy__meta {
  margin-top: 0.45rem;
  font-size: 0.82rem;
  color: var(--muted);
}
.intern-kpi-facts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 1rem;
}
.intern-kpi-facts li {
  display: flex;
  justify-content: space-between;
  gap: 0.6rem;
  align-items: baseline;
  padding: 0.55rem 0.7rem;
  background: var(--paper, #f6f3ef);
  border-radius: 10px;
}
.intern-kpi-facts span {
  font-size: 0.78rem;
  color: var(--muted);
}
.intern-kpi-facts strong {
  font-variant-numeric: tabular-nums;
  font-size: 1.05rem;
}
.intern-feed a {
  display: block;
  text-decoration: none;
  padding: 0.7rem 0;
  border-bottom: 1px solid var(--line);
}
.intern-feed a strong { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
.intern-feed a span,
.intern-feed a time {
  display: block;
  font-size: 0.82rem;
  color: var(--muted);
}
.intern-feed a .ref-num {
  display: inline-flex;
  font-size: 0.72rem;
  color: #fff;
}
.intern-card__action { margin: 1rem 0 0; }
.intern-empty { color: var(--muted); font-size: 0.9rem; }
.intern-empty--box {
  background: #fff;
  border: 1px dashed var(--line);
  border-radius: 14px;
  padding: 1.2rem;
}
.intern-agenda {
  list-style: none;
  margin: 0 0 1.35rem;
  padding: 0;
  display: grid;
  gap: 0.9rem;
  max-width: 42rem;
}
.intern-agenda__day {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--intern-shadow, 0 4px 16px rgba(22, 25, 28, 0.06));
}
.intern-agenda__day.is-today {
  border-color: rgba(192, 122, 130, 0.45);
}
.intern-agenda__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.8rem;
  padding: 0.75rem 1rem 0.6rem;
  border-bottom: 1px solid var(--line);
}
.intern-agenda__head strong {
  font-size: 0.98rem;
  letter-spacing: -0.02em;
}
.intern-agenda__head span {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.intern-agenda__day.is-today .intern-agenda__head span {
  color: var(--accent-deep);
}
.intern-agenda__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.intern-agenda__item {
  display: grid;
  grid-template-columns: 4.6rem minmax(0, 1fr) auto;
  gap: 0.65rem 0.8rem;
  align-items: center;
  padding: 0.8rem 1rem;
  text-decoration: none;
  border-bottom: 1px solid var(--line);
}
.intern-agenda__list li:last-child .intern-agenda__item {
  border-bottom: 0;
}
.intern-agenda__time {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  font-size: 0.95rem;
}
.intern-agenda__who strong {
  display: block;
  letter-spacing: -0.02em;
}
.intern-agenda__who span {
  display: block;
  font-size: 0.82rem;
  color: var(--muted);
  line-height: 1.35;
}
a.intern-slot {
  text-decoration: none;
}
.intern-card--cal { margin-top: 0.2rem; }
@media (max-width: 640px) {
  .intern-agenda__item {
    grid-template-columns: 4.2rem minmax(0, 1fr);
  }
  .intern-agenda__item .intern-pill {
    grid-column: 2;
  }
}
@media (max-width: 900px) {
  .intern-item summary {
    grid-template-columns: auto auto auto minmax(0, 1fr);
  }
  .intern-item summary strong,
  .intern-item summary .intern-item__meta,
  .intern-item summary time {
    grid-column: 1 / -1;
  }
}
.intern-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-bottom: 0.85rem;
  align-items: end;
}
.intern-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  align-items: end;
  margin: 0 0 1rem;
}
.intern-toolbar--compact { margin-bottom: 1.15rem; }
.intern-toolbar .intern-search,
.intern-filters .intern-search {
  flex: 1 1 14rem;
  min-width: 12rem;
}
form.intern-search input[type="search"] {
  margin-top: 0;
  min-height: 42px;
}
.intern-search input[type="search"] {
  display: block;
  width: 100%;
  margin-top: 0.3rem;
  padding: 0.5rem 0.75rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
  font: inherit;
}
.intern-count {
  margin: 0 0 0.85rem;
  font-size: 0.82rem;
  color: var(--muted);
}
.intern-toolbar__reset {
  font-size: 0.82rem;
  font-weight: 650;
  color: var(--accent-deep);
  text-decoration: none;
  padding-bottom: 0.45rem;
}
.intern-toolbar__reset:hover { text-decoration: underline; }
html.js .intern-filters__submit { display: none; }
.intern-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}
.intern-today {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--intern-card-radius, 16px);
  padding: 0.95rem 1.1rem 1rem;
  box-shadow: var(--intern-shadow, 0 4px 16px rgba(22, 25, 28, 0.06));
  margin: 0 0 1.15rem;
}
.intern-today__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.8rem;
  margin-bottom: 0.55rem;
}
.intern-today__head h2 {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}
.intern-today__head a {
  font-size: 0.82rem;
  font-weight: 650;
  color: var(--accent-deep);
  text-decoration: none;
}
.intern-today__head a:hover { text-decoration: underline; }
.intern-today__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.2rem;
}
.intern-today__list a {
  display: grid;
  grid-template-columns: 4.2rem minmax(0, 1fr);
  gap: 0.7rem;
  align-items: baseline;
  text-decoration: none;
  padding: 0.45rem 0.2rem;
  border-radius: 8px;
}
.intern-today__list a:hover { background: var(--paper); }
.intern-today__list strong {
  font-variant-numeric: tabular-nums;
}
.intern-today__list span {
  color: var(--muted);
  font-size: 0.9rem;
}
.intern-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.1rem;
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  font-size: 0.78rem;
  color: var(--muted);
}
.intern-legend li {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.intern-legend .intern-slot {
  width: 1.1rem;
  height: 0.7rem;
  margin: 0;
  padding: 0;
  border-radius: 4px;
}
.intern-table {
  display: grid;
  gap: 0;
}
.intern-table__head,
.intern-table__row {
  display: grid;
  grid-template-columns: minmax(8rem, 1.2fr) minmax(7rem, 1fr) minmax(8rem, 1fr) minmax(7rem, 0.9fr);
  gap: 0.8rem;
  align-items: center;
  padding: 0.75rem 0.15rem;
}
.intern-table__head {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  border-bottom: 1px solid var(--line);
  padding-top: 0;
}
.intern-table__row {
  text-decoration: none;
  border-bottom: 1px solid var(--line);
}
.intern-table__row:last-child { border-bottom: 0; }
.intern-table__row:hover { background: var(--paper); }
.intern-table__row strong {
  letter-spacing: -0.02em;
}
.intern-table__row span {
  font-size: 0.85rem;
  color: var(--muted);
}
@media (max-width: 720px) {
  .intern-table__head { display: none; }
  .intern-table__row {
    grid-template-columns: 1fr;
    gap: 0.2rem;
    padding: 0.85rem 0;
  }
}
.intern-filters label {
  font-size: 0.78rem;
  font-weight: 650;
}
.intern-filters select,
.intern-status-form select,
.intern-week input {
  font: inherit;
}
.intern-filters select,
.intern-status-form select {
  display: block;
  margin-top: 0.3rem;
  padding: 0.5rem 0.65rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fff;
}
.intern-list { display: grid; gap: 0.65rem; }
.intern-item {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
}
.intern-item summary {
  display: grid;
  grid-template-columns: auto auto auto minmax(7rem, 1.1fr) minmax(0, 1fr) auto;
  gap: 0.45rem 0.65rem;
  align-items: center;
  cursor: pointer;
  padding: 0.9rem 1rem;
  list-style: none;
}
.intern-item summary .ref-num { justify-self: start; }
.intern-item summary strong {
  min-width: 0;
  letter-spacing: -0.02em;
}
.intern-item summary::-webkit-details-marker { display: none; }
.intern-item__meta,
.intern-item time {
  font-size: 0.8rem;
  color: var(--muted);
}
.intern-pill {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 24px;
  padding: 0 0.5rem;
  border-radius: 99px;
  font-size: 0.7rem;
  font-weight: 700;
  background: var(--paper);
}
.intern-pill--termin { background: #f3e4e5; color: var(--accent-deep); }
.intern-pill--anfrage { background: #ece7e2; color: var(--ink); }
.intern-pill--step { background: #f3e4e5; color: var(--accent-deep); }
.intern-pill--status.is-new { background: #eef2ff; color: #3730a3; }
.intern-pill--status.is-progress { background: #fff4e5; color: #9a6700; }
.intern-pill--status.is-ok { background: #e8f5ee; color: #2d6a4f; }
.intern-pill--status.is-off { background: #f4f4f5; color: #52525b; }
.intern-pill--status.is-done { background: var(--paper); color: var(--muted); }
.intern-item__body { padding: 0 1rem 1rem; }
.intern-dl {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.7rem 1rem;
  margin: 0 0 0.9rem;
}
.intern-dl dt {
  font-size: 0.72rem;
  font-weight: 650;
  color: var(--muted);
}
.intern-dl dd { margin: 0.15rem 0 0; }
.intern-message {
  white-space: pre-wrap;
  background: var(--paper);
  border-radius: 10px;
  padding: 0.8rem 0.9rem;
  font-size: 0.9rem;
}
.intern-item__actions { margin-top: 0.35rem; }
.intern-status-form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  align-items: end;
  margin-top: 0.9rem;
}
.intern-week { margin-top: 0.4rem; }
.intern-week__scroll {
  overflow-x: auto;
  margin: 0 0 1rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.intern-week-table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  font-size: 0.82rem;
}
.intern-week-table th,
.intern-week-table td {
  padding: 0.45rem 0.4rem;
  text-align: center;
  border-bottom: 1px solid var(--line);
}
.intern-week-table thead th {
  font-size: 0.72rem;
  font-weight: 700;
  background: var(--paper);
  position: sticky;
  top: 0;
}
.intern-week-table tbody th {
  text-align: left;
  padding-left: 0.85rem;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.intern-week-table tbody tr:last-child th,
.intern-week-table tbody tr:last-child td { border-bottom: 0; }
.intern-week-table label {
  display: flex;
  justify-content: center;
  margin: 0;
  cursor: pointer;
}
.intern-week-table input {
  width: 1.05rem;
  height: 1.05rem;
  accent-color: var(--accent-deep);
}
.intern-check-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}
.intern-cal { display: grid; gap: 1rem; }
.intern-cal__week {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.45rem;
}
.intern-cal__day {
  background: var(--paper);
  border-radius: 10px;
  padding: 0.45rem 0.35rem 0.35rem;
}
.intern-cal__day.is-weekend { opacity: 0.78; }
.intern-cal__day.is-empty {
  background: transparent;
  visibility: hidden;
}
.intern-cal__week:first-child .intern-cal__day.is-empty {
  display: none;
}
.intern-cal__day p {
  margin: 0 0 0.3rem;
  font-size: 0.7rem;
  font-weight: 650;
}
.intern-slot {
  display: block;
  width: 100%;
  margin: 0 0 0.16rem;
  border: 0;
  border-radius: 6px;
  padding: 0.2rem 0.15rem;
  font: inherit;
  font-size: 0.68rem;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  text-align: center;
  line-height: 1.2;
}
button.intern-slot { cursor: pointer; }
.intern-slot.is-free { background: #e8f5ee; color: #2d6a4f; }
.intern-slot.is-closed { background: #ececee; color: #6b7280; }
.intern-slot.is-booked { background: #f3e4e5; color: var(--accent-deep); }
.intern-slot.is-past { background: #f4f4f5; color: #a1a1aa; }
@media (max-width: 879px) {
  .intern-chart__plot {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    row-gap: 0.85rem;
  }
  .intern-chart__col svg { height: 7.5rem; }
}
@media (max-width: 800px) {
  .intern-wrap { grid-template-columns: 1fr; }
  .intern-sidebar {
    position: static;
    height: auto;
    border-right: 0;
    border-bottom: 1px solid var(--intern-sidebar-border);
  }
  .intern-side-peek { display: none; }
  .intern-side-nav { grid-template-columns: 1fr 1fr; }
  .intern-side-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.6rem;
  }
  .intern-side-user { margin: 0 0.2rem 0 0; }
  .intern-side-foot form { margin-left: auto; }
  .intern-main { padding: 0; }
  .intern-main__body { padding: 1.1rem var(--pad) 2.8rem; }
  .intern-top { padding-left: var(--pad); padding-right: var(--pad); }
}
@media (max-width: 859px) {
  .intern-cal__week { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .intern-cal__day.is-empty { display: none; }
}
@media (max-width: 639px) {
  .intern-cal__week { grid-template-columns: 1fr 1fr; }
  .intern-bars li { grid-template-columns: 1fr auto; }
  .intern-bar,
  .intern-hbar { grid-column: 1 / -1; }
  .intern-side-brand { flex-direction: row; align-items: center; gap: 0.6rem; margin-bottom: 0.85rem; }
}

.service-block,
#faq {
  scroll-margin-top: calc(var(--header-h) + 0.8rem);
}
.faq-list {
  display: grid;
  gap: 0.6rem;
  margin-top: 1rem;
  max-width: none;
}
@media (min-width: 800px) {
  .faq-list { grid-template-columns: 1fr 1fr; }
}
.faq-list details {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 0.75rem 0.95rem;
  background: #fff;
}
.faq-list summary {
  cursor: pointer;
  font-weight: 650;
  list-style: none;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list details p {
  margin: 0.75rem 0 0;
  color: var(--muted);
}
.material-fallback {
  margin: 1rem 0 0;
  padding-left: 1.1rem;
  color: var(--muted);
  line-height: 1.7;
}
.footer-contact address {
  margin: 0;
  font-style: normal;
}
.error-page { max-width: 40rem; }
.error-page .lead { color: var(--muted); }

.intern-card--plain {
  overflow: visible;
}
.intern-card--list { margin-top: 0; }
.intern-page--customer .intern-card[id],
.intern-page--customer .intern-fold[id] {
  scroll-margin-top: 0.8rem;
}
.intern-sheet {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--intern-card-radius, 16px);
  padding: 1.1rem 1.2rem 1.15rem;
  box-shadow: var(--intern-shadow, 0 4px 16px rgba(22, 25, 28, 0.06));
  margin: 0 0 1rem;
}
.intern-sheet .progress-wrap {
  margin: 0 0 1rem;
  padding: 0 0 1rem;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.intern-sheet .progress-wrap--compact .progress-now {
  margin-top: 0.8rem;
  padding-top: 0.75rem;
  border-top: 0;
}
.intern-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 1.1rem;
  margin: 0 0 0.9rem;
}
@media (min-width: 860px) {
  .intern-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.intern-facts dt {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
}
.intern-facts dd { margin: 0.2rem 0 0; }
.intern-facts a { color: inherit; }
.intern-callout {
  margin: 0 0 0.75rem;
  padding: 0.7rem 0.85rem;
  background: var(--paper, #f6f3ef);
  border-radius: 12px;
}
.intern-callout--intern { background: #f4eee6; }
.intern-callout p { margin: 0.2rem 0 0; }
.intern-callout__kicker {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--accent-deep);
}
.intern-sheet__actions { margin: 0.15rem 0 0.35rem; }
.intern-fold {
  margin-top: 0.7rem;
  border-top: 1px solid var(--line);
  padding-top: 0.65rem;
}
.intern-fold > summary {
  cursor: pointer;
  font-weight: 650;
  font-size: 0.92rem;
  color: var(--accent-deep);
  list-style: none;
}
.intern-fold > summary::-webkit-details-marker { display: none; }
.intern-fold[open] > summary { margin-bottom: 0.7rem; }
.intern-jump {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.7rem;
  margin: 0 0 1rem;
}
.intern-jump a {
  display: block;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 0.7rem 0.85rem 0.8rem;
  text-decoration: none;
  box-shadow: var(--intern-shadow, 0 4px 16px rgba(22, 25, 28, 0.06));
}
.intern-jump a:hover { border-color: rgba(192, 122, 130, 0.45); }
.intern-jump strong {
  display: block;
  font-size: 1.35rem;
  letter-spacing: -0.04em;
  line-height: 1.1;
}
.intern-jump span {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.78rem;
  color: var(--muted);
}
.intern-section-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.8rem;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}
.intern-section-head h2 { margin: 0; }
.intern-section-head a {
  font-size: 0.85rem;
  font-weight: 650;
  color: var(--accent-deep);
  text-decoration: none;
}
.intern-section-head a:hover { text-decoration: underline; }
.intern-jobs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}
.intern-job {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--paper, #f6f3ef);
}
.intern-job.is-past { opacity: 0.68; }
.intern-job[open] { background: #fff; opacity: 1; }
.intern-job > summary {
  display: block;
  padding: 0.7rem 0.85rem;
  cursor: pointer;
  list-style: none;
}
.intern-job > summary::-webkit-details-marker { display: none; }
.intern-job__row {
  display: grid;
  grid-template-columns: 6.4rem minmax(0, 1fr) auto;
  gap: 0.4rem 0.85rem;
  align-items: center;
}
.intern-job__when strong { display: block; letter-spacing: -0.02em; }
.intern-job__what strong {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-wrap: wrap;
  letter-spacing: -0.02em;
}
.intern-job__when span,
.intern-job__what span {
  display: block;
  font-size: 0.8rem;
  color: var(--muted);
}
.intern-job__body {
  padding: 0 0.85rem 0.9rem;
  border-top: 1px solid var(--line);
}
.intern-picks {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.9rem;
}
.intern-pick {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  box-shadow: var(--intern-shadow, 0 4px 16px rgba(22, 25, 28, 0.06));
}
.intern-pick__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--paper, #f6f3ef);
}
.intern-pick__media picture,
.intern-pick__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.intern-pick__body {
  display: flex;
  flex-direction: column;
  gap: 0.22rem;
  padding: 0.85rem 0.95rem 1rem;
  min-width: 0;
}
.intern-pick__cat {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent-deep);
}
.intern-pick h3 {
  margin: 0;
  font-size: 1rem;
  letter-spacing: -0.02em;
}
.intern-pick__meta,
.intern-pick__note {
  margin: 0;
  font-size: 0.84rem;
  color: var(--muted);
  line-height: 1.4;
}
.intern-pick .intern-fold {
  margin-top: 0.5rem;
  padding-top: 0.5rem;
}
.intern-pick__form label { margin-bottom: 0.65rem; }
@media (max-width: 720px) {
  .intern-job__row {
    grid-template-columns: 1fr auto;
  }
  .intern-job__when { grid-column: 1 / -1; }
  .intern-jump { grid-template-columns: 1fr; }
}
.intern-form { margin: 0; }
.intern-form--tight { margin-top: 1.1rem; padding-top: 1.1rem; border-top: 1px solid var(--line); }
.intern-ghost-form {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}
.intern-inline-form { margin: 0; }
.intern-inline-form label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  margin-bottom: 0.85rem;
}
.intern-inline-form input,
.intern-inline-form textarea,
.intern-inline-form select {
  width: 100%;
  max-width: 100%;
  margin-top: 0.35rem;
  padding: 0.7rem 0.8rem;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  font: inherit;
  background: #fff;
}
.intern-inline-form input:focus,
.intern-inline-form textarea:focus,
.intern-inline-form select:focus {
  outline: 2px solid var(--accent);
  border-color: transparent;
}
.intern-inline-actions { margin-top: 0.4rem; }
.intern-delete { margin-top: 0.55rem; min-height: 36px; font-size: 0.8rem; }

.account-login {
  display: grid;
  gap: 2rem;
  align-items: start;
}
@media (min-width: 860px) {
  .account-login { grid-template-columns: 1.1fr 0.9fr; }
}
.account-gate { padding-top: 3.2rem; }
.account-gate__grid {
  display: grid;
  gap: 2rem 2.4rem;
  align-items: start;
}
@media (min-width: 900px) {
  .account-gate__grid { grid-template-columns: 1.05fr 0.95fr; }
  .account-gate__intro { order: 1; }
  .account-login-card { order: 2; }
}
@media (max-width: 899px) {
  .account-gate__photo { display: none; }
}
.account-gate__intro h1 {
  margin: 0.15rem 0 0.7rem;
  font-size: clamp(2rem, 4.2vw, 3.1rem);
  letter-spacing: -0.045em;
  line-height: 1.05;
}
.account-gate__intro .lead { margin: 0 0 1.4rem; }
.account-benefits {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.85rem;
}
.account-benefits li {
  display: grid;
  gap: 0.12rem;
  padding: 0 0 0.85rem 1rem;
  border-left: 2px solid var(--accent);
}
.account-benefits strong { font-size: 0.95rem; }
.account-benefits span { color: var(--muted); font-size: 0.9rem; }
.account-gate__photo {
  margin: 1.7rem 0 0;
  border-radius: 18px;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: #ddd;
}
.account-gate__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.account-login-card {
  background: #fff;
  border: 0;
  border-radius: 18px;
  box-shadow: 0 18px 50px rgba(16, 18, 20, 0.08);
  padding: 1.7rem 1.6rem 1.45rem;
}
.account-login-card h2 {
  margin: 0.1rem 0 0.35rem;
  font-size: 1.55rem;
  letter-spacing: -0.04em;
}
.account-login-card .section-intro { margin: 0 0 1.1rem; }
.account-login-card__help {
  margin: 1rem 0 0;
  font-size: 0.84rem;
  color: var(--muted);
}
.account-login-card__help a {
  color: var(--accent-deep);
  font-weight: 600;
  text-decoration: none;
}
.account-login-card__help a:hover { text-decoration: underline; }
.account-password-label { position: relative; }
.account-password {
  position: relative;
  display: block;
  margin-top: 0.35rem;
}
.account-password input { margin-top: 0; padding-right: 5.6rem; }
.account-password__toggle {
  position: absolute;
  right: 0.4rem;
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 0.75rem;
  font-weight: 650;
  cursor: pointer;
  padding: 0.25rem 0.45rem;
  min-height: 32px;
}
.account-password__toggle:hover,
.account-password__toggle[aria-pressed="true"] { color: var(--ink); }
.account-flash {
  margin: 0 0 1rem;
  padding: 0.7rem 0.9rem;
  border-radius: 10px;
  font-size: 0.9rem;
}
.account-flash--ok { background: #e8f5ee; color: #2d6a4f; }
.account-flash--err { background: #f8eaea; color: var(--accent-deep); }

.account-dash { padding-top: 2.6rem; }
.account-head {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.4rem;
  justify-content: space-between;
  align-items: end;
  margin-bottom: 1.35rem;
}
.account-head h1 {
  margin: 0.15rem 0 0.3rem;
  font-size: clamp(1.9rem, 3.6vw, 2.7rem);
  letter-spacing: -0.045em;
  line-height: 1.08;
}
.account-head .lead { margin: 0; max-width: 42ch; }
.account-logout {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 0.86rem;
  font-weight: 650;
  cursor: pointer;
  min-height: 44px;
  padding: 0.2rem 0;
}
.account-logout:hover { color: var(--accent-deep); }
.account-stats {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: 1fr;
  margin: 0 0 1.3rem;
}
@media (min-width: 720px) {
  .account-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .account-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.account-stat {
  display: grid;
  gap: 0.15rem;
  text-decoration: none;
  background: #fff;
  border-radius: 16px;
  padding: 1rem 1.1rem;
  box-shadow: 0 10px 28px rgba(16, 18, 20, 0.05);
  transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease);
}
.account-stat:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px rgba(16, 18, 20, 0.09);
}
.account-stat strong {
  font-size: 1.7rem;
  letter-spacing: -0.05em;
  line-height: 1;
}
.account-stat span {
  font-size: 0.82rem;
  color: var(--muted);
}
.account-next {
  background: var(--dark);
  color: #fff;
  border-radius: 20px;
  padding: 1.35rem 1.4rem 1.45rem;
  margin-bottom: 1.15rem;
}
.account-next--empty {
  background: #fff;
  color: var(--ink);
  box-shadow: 0 10px 28px rgba(16, 18, 20, 0.05);
}
.account-next__kicker {
  margin: 0 0 0.8rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
}
.account-next--empty .account-next__kicker { color: var(--accent-deep); }
.account-next__grid {
  display: grid;
  gap: 1.15rem;
  align-items: start;
}
@media (min-width: 640px) {
  .account-next__grid { grid-template-columns: auto 1fr; gap: 1.6rem; }
}
.account-next__date {
  min-width: 6.2rem;
  padding: 0.85rem 0.9rem 0.95rem;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.08);
  text-align: center;
}
.account-next--empty .account-next__date { background: var(--paper); }
.account-next__date em {
  display: block;
  font-style: normal;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 0.2rem;
}
.account-next__date strong {
  display: block;
  font-size: 2.45rem;
  letter-spacing: -0.06em;
  line-height: 0.95;
}
.account-next__date span {
  display: block;
  margin-top: 0.3rem;
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.68);
}
.account-next--empty .account-next__date span { color: var(--muted); }
.account-next__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.55rem;
}
.account-next h2 {
  margin: 0 0 0.35rem;
  font-size: clamp(1.4rem, 2.5vw, 1.9rem);
  letter-spacing: -0.04em;
}
.account-next__meta,
.account-next p { margin: 0 0 0.5rem; }
.account-next--empty p { color: var(--muted); }
.account-next__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.85rem;
}
.account-next__actions .button { width: auto; min-width: 8.5rem; }
.account-notice {
  background: #fff;
  border-left: 3px solid var(--accent);
  border-radius: 14px;
  padding: 0.95rem 1.1rem 1rem;
  margin: 0 0 1.4rem;
  box-shadow: 0 10px 28px rgba(16, 18, 20, 0.04);
}
.account-notice__kicker {
  margin: 0 0 0.25rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent-deep);
}
.account-notice p { margin: 0; }
.account-split {
  display: grid;
  gap: 1rem;
  margin-bottom: 0.4rem;
}
@media (min-width: 960px) {
  .account-split { grid-template-columns: 1fr 1fr; align-items: start; }
}
.account-panel,
.account-block {
  scroll-margin-top: calc(var(--header-h) + 0.9rem);
}
.account-panel {
  background: #fff;
  border-radius: 18px;
  padding: 1.2rem 1.2rem 1.3rem;
  box-shadow: 0 10px 28px rgba(16, 18, 20, 0.05);
}
.account-block { margin: 1.7rem 0 0; }
.account-block__head { margin-bottom: 1rem; }
.account-block__head h2 {
  margin: 0.1rem 0 0.3rem;
  font-size: 1.35rem;
  letter-spacing: -0.03em;
}
.account-block__head p { margin: 0; color: var(--muted); font-size: 0.92rem; }
@media (min-width: 760px) {
  .account-block__head--wide {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 1rem;
    align-items: end;
  }
}
.account-chip {
  display: inline-flex;
  align-items: center;
  width: max-content;
  min-height: 24px;
  padding: 0 0.55rem;
  border-radius: 99px;
  font-size: 0.7rem;
  font-weight: 700;
  background: var(--paper);
  color: var(--ink);
}
.ref-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.45rem;
  height: 1.45rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0;
  text-decoration: none;
  background: var(--accent-deep);
  color: #fff;
  flex: 0 0 auto;
}
a.ref-num:hover,
a.ref-num:focus-visible {
  color: #fff;
  filter: brightness(1.1);
}
.account-next .ref-num {
  background: var(--accent);
  color: #fff;
}
.account-item {
  scroll-margin-top: calc(var(--header-h) + 0.9rem);
}
.intern-feed li {
  scroll-margin-top: 5.5rem;
}
.account-chip--quiet { background: var(--paper); color: var(--ink); }
.account-next .account-chip--quiet { background: rgba(255, 255, 255, 0.12); color: #fff; }
.account-chip--termin { background: #f3e4e5; color: var(--accent-deep); }
.account-chip.is-new { background: #eef2ff; color: #3730a3; }
.account-chip.is-progress { background: #fff4e5; color: #9a6700; }
.account-chip.is-ok { background: #e8f5ee; color: #2d6a4f; }
.account-chip.is-off { background: #f4f4f5; color: #52525b; }
.account-chip.is-done { background: var(--paper); color: var(--muted); }
.account-next .account-chip.is-ok { background: #e8f5ee; color: #2d6a4f; }
.account-next .account-chip.is-progress { background: #fff4e5; color: #9a6700; }
.account-list,
.account-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.75rem;
}
.account-item {
  padding: 0.9rem 0.95rem 1rem;
  border-radius: 14px;
  background: var(--paper);
}
.account-item__top {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.45rem;
}
.account-item h3,
.account-timeline__body h3 {
  margin: 0 0 0.2rem;
  font-size: 1.02rem;
  letter-spacing: -0.02em;
}
.account-item p,
.account-timeline__body p {
  margin: 0.25rem 0 0;
  font-size: 0.88rem;
  color: var(--muted);
}
.account-item__meta { font-size: 0.8rem !important; }
.account-timeline { gap: 0; }
.account-timeline__item {
  display: grid;
  gap: 0.7rem;
  padding: 0.85rem 0 1rem;
  border-top: 1px solid var(--line);
}
.account-timeline__item:first-child { border-top: 0; padding-top: 0; }
@media (min-width: 520px) {
  .account-timeline__item { grid-template-columns: 5.6rem 1fr; }
}
.account-timeline__when strong,
.account-timeline__when span { display: block; }
.account-timeline__when strong { font-size: 0.92rem; }
.account-timeline__when span { color: var(--muted); font-size: 0.8rem; margin-top: 0.1rem; }
.account-timeline__item.is-past { opacity: 0.62; }
.account-timeline__item.is-next .account-timeline__when strong { color: var(--accent-deep); }
.account-empty {
  padding: 1.1rem 1rem;
  border-radius: 14px;
  background: var(--paper);
}
.account-empty p { margin: 0 0 0.4rem; color: var(--muted); }
.account-tiles {
  display: grid;
  gap: 0.95rem;
  grid-template-columns: 1fr;
}
@media (min-width: 720px) {
  .account-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.account-tile {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 10px 28px rgba(16, 18, 20, 0.06);
  transition: transform 0.45s var(--ease), box-shadow 0.45s var(--ease);
}
.account-tile:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(16, 18, 20, 0.1);
}
.account-tile__media {
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: #ece7e2;
}
.account-tile picture,
.account-tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.account-tile img { transition: transform 0.8s var(--ease); }
.account-tile:hover img { transform: scale(1.06); }
.account-tile__body { padding: 0.9rem 1rem 1.05rem; }
.account-tile__cat {
  margin: 0 0 0.2rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent-deep);
}
.account-tile h3 { margin: 0 0 0.3rem; font-size: 1.05rem; }
.account-tile p { margin: 0; font-size: 0.88rem; color: var(--muted); }
.account-tile .caption { margin-top: 0.4rem; }
.account-object {
  margin-top: 1.7rem;
  background: #fff;
  border-radius: 18px;
  padding: 1.15rem 1.2rem 1.2rem;
  box-shadow: 0 10px 28px rgba(16, 18, 20, 0.05);
}
.account-object__address {
  margin: 0.15rem 0 0.85rem;
  font-size: 1.05rem;
  letter-spacing: -0.02em;
}
.account-object__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}
.account-object__actions .button { width: auto; }
.account-hint {
  margin: -0.35rem 0 0.85rem;
  font-size: 0.82rem;
  color: var(--muted);
}
.account-legal-note {
  margin: 0 0 0.9rem;
  font-size: 0.86rem;
  color: var(--muted);
  line-height: 1.5;
}
.account-settings {
  display: grid;
  gap: 1rem;
}
@media (min-width: 900px) {
  .account-settings { grid-template-columns: 1fr 1fr; }
}
.account-settings__form {
  background: #fff;
  border-radius: 16px;
  padding: 1.15rem 1.2rem 1.25rem;
  box-shadow: 0 10px 28px rgba(16, 18, 20, 0.05);
}
.account-settings__form h3 {
  margin: 0 0 0.85rem;
  font-size: 1.05rem;
  letter-spacing: -0.02em;
}
.account-settings__form p {
  margin: 0 0 0.9rem;
  color: var(--muted);
  font-size: 0.9rem;
}
.account-settings__form .button { width: auto; }
.account-settings__form--danger {
  border: 1px solid #ead9d9;
}
.account-settings__foot {
  margin: 1rem 0 0;
  font-size: 0.86rem;
  color: var(--muted);
}

.account-jobs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}
.account-jobs li {
  background: var(--paper);
  border-radius: 12px;
  padding: 0.85rem 1rem;
}
.account-jobs strong { display: block; }
.account-jobs span {
  display: block;
  font-size: 0.86rem;
  color: var(--muted);
}
.account-entry__pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.45rem;
}

.whatsapp-fab {
  position: fixed;
  z-index: 45;
  right: max(1.05rem, env(safe-area-inset-right, 0px));
  bottom: max(1.05rem, env(safe-area-inset-bottom, 0px));
  display: none;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  min-height: 52px;
  padding: 0;
  border-radius: 999px;
  background: #128C7E;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 12px 28px rgba(18, 140, 126, 0.32);
  transition: transform 0.2s var(--ease), box-shadow 0.2s var(--ease), background 0.2s var(--ease), opacity 0.2s var(--ease), visibility 0.2s;
}
.whatsapp-fab__label { display: none; }
@media (max-width: 1119px) {
  .whatsapp-fab { display: inline-flex; }
}
@media (max-width: 639px) {
  .whatsapp-fab {
    bottom: calc(var(--mobile-ask-h) + 0.55rem);
  }
}
.whatsapp-fab:hover {
  background: #075E54;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 16px 32px rgba(7, 94, 84, 0.36);
}
.whatsapp-fab__icon {
  display: grid;
  place-items: center;
  line-height: 0;
}
.whatsapp-fab__icon svg { display: block; }
body.nav-open .whatsapp-fab,
body:has(dialog[open]) .whatsapp-fab {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
@media print {
  .whatsapp-fab,
  .mobile-ask-bar { display: none !important; }
}

.intern-wa {
  font-weight: 650;
  color: #128C7E;
  text-decoration: none;
}
.intern-wa:hover { color: #075E54; }
.intern-wa-btn { gap: 0.4rem; }
.intern-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin-top: 0.35rem;
}
