/* Teamseite im freigegebenen schwarzen und goldenen Seitenlayout. */
html:has(.team-layout), body:has(.team-layout) { overflow-x: clip; }
.team-layout { background: #080808; color: #fff; }
.team-layout .container { width: var(--home-page-width); max-width: none; padding-inline: 0; margin-inline: auto; }
.team-layout .reveal { opacity: 1; transform: none; transition: none; }
.team-layout .btn { border-radius: 7px; padding: 13px 22px; min-height: 48px; font-size: 14px; }
.team-layout .btn-ghost { border: 1px solid #a97924; color: #fff; background: #08080899; }
.team-layout a:focus-visible { outline: 2px solid #f5ba42; outline-offset: 5px; }
.team-page-hero { position: relative; isolation: isolate; overflow: hidden; padding: 110px 0 65px; }
.team-page-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg,#080808e8,#08080866 65%),linear-gradient(0deg,#080808,transparent 65%); }
.team-hero-image { position: absolute; inset: 64px 0 0; width: 100%; height: calc(100% - 64px); object-fit: cover; object-position: center top; z-index: -2; opacity: .65; }
.team-breadcrumb { display: flex; align-items: center; gap: 12px; color: #aaa; font-size: 12px; margin-bottom: 30px; }
.team-breadcrumb a { color: #ddd; }
.team-kicker { color: #f5ba42; font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 12px; }
.team-page-hero h1 { font-size: clamp(38px,4vw,72px); line-height: 1.05; letter-spacing: -.045em; margin: 0 0 22px; max-width: 20ch; font-weight: 850; }
.team-intro { color: #d0d0d4; font-size: clamp(16px,1.3vw,19px); line-height: 1.65; max-width: 49ch; margin: 0 0 26px; }
.team-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.team-organisation { padding: 32px 0 64px; }
.team-section-heading { text-align: center; margin-bottom: 28px; }
.team-layout h2 { font-size: clamp(28px,2.6vw,42px); line-height: 1.12; font-weight: 800; letter-spacing: -.035em; margin: 0 0 14px; }
.team-section-heading > p:last-child { color: #b7b7bb; font-size: 16px; }
.team-org-root { width: 240px; height: 156px; display: grid; place-items: center; border: 1px solid #9a7028; border-radius: 10px; margin: 0 auto 54px; position: relative; background: linear-gradient(135deg,#211a10,#101011); }
.team-org-root img { width: 125px; height: 125px; object-fit: contain; }
.team-org-root::after { content: ''; position: absolute; width: 1px; height: 28px; top: 100%; left: 50%; background: #9a7028; }
.team-org-functions { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; position: relative; }
.team-org-functions::before { content: ''; position: absolute; left: calc((100% - 48px) / 6); right: calc((100% - 48px) / 6); top: -27px; height: 1px; background: #9a7028; }
.team-function { border: 1px solid #665026; border-radius: 10px; background: linear-gradient(125deg,#17140f,#101011); padding: clamp(22px,2vw,32px); position: relative; }
.team-function::before { content: ''; position: absolute; width: 1px; height: 27px; bottom: 100%; left: 50%; background: #9a7028; }
.team-function h3 { font-size: clamp(25px,2vw,32px); line-height: 1.1; margin: 0 0 20px; padding-bottom: 18px; border-bottom: 1px solid #363026; font-weight: 800; letter-spacing: -.03em; }
.team-function > p:last-child { color: #bfc0c4; font-size: 15px; line-height: 1.7; margin: 0; max-width: 65ch; }
.team-function strong { color: #f5ba42; font-weight: 650; }
/* Ein gemeinsames Personenraster, die Funktionshierarchie steht im Organigramm. */
.team-layout .team-members-heading { width: min(1280px, var(--home-page-width)); padding-top: 28px; border-top: 1px solid #282521; }
.team-layout .team-stage { padding: 24px 0 52px; }
.team-layout .team-stage-inner { width: min(1280px, var(--home-page-width)); display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); align-items: stretch; gap: 20px; }
.team-layout .team-org-rail { display: none; }
.team-layout .team-tier, .team-layout .team-grid { display: contents; }
.team-layout .team-tier::before { display: none; }
/* Die vorhandenen Gruppenüberschriften bleiben für Screenreader verfügbar. */
.team-layout .team-tier .team-tier-heading { position: absolute; width: 1px; height: 1px; min-height: 0; padding: 0; margin: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.team-layout .team-card { display: flex; flex-direction: column; align-items: center; align-content: normal; min-width: 0; width: 100%; min-height: 316px; max-width: none; padding: 28px 20px 18px; border: 1px solid #393126; border-radius: 10px; background: #111112; box-shadow: none; transform: none; text-align: center; }
.team-layout .team-card::before { border-radius: 9px; }
.team-layout .team-card:hover { border-color: #9a7028; transform: none; box-shadow: none; }
.team-layout .team-card .team-avatar { width: 112px; height: 112px; min-width: 112px; margin: 0 0 18px; border-radius: 50%; align-self: center; }
.team-layout .team-card .team-name { font-size: 20px; line-height: 1.2; min-height: 1.2em; margin: 0 0 8px; overflow-wrap: anywhere; align-self: center; text-align: center; }
.team-layout .team-card .team-role { font-size: 13px; line-height: 1.4; margin: 0; text-transform: none; letter-spacing: 0; color: #f5ba42; align-self: center; text-align: center; }
.team-layout .team-card .team-role-sub { font-size: 12px; line-height: 1.4; margin: 5px 0 0; align-self: center; text-align: center; }
.team-layout .team-social-btn { width: 36px; height: 36px; border-radius: 6px; }
.team-layout .team-card .team-socials { width: 100%; justify-content: center; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 16px; border-top: 0; }
.team-layout .team-card .founder-badge { top: 12px; right: 12px; }
.team-layout #team-mitglieder, .team-layout #organigramm { scroll-margin-top: 88px; }
.team-layout #team-mitglieder:focus, .team-layout #organigramm:focus { outline: none; }
.team-layout .cta-section { padding: 8px 0 52px; }
.team-layout .cta-box { padding: 30px 36px; background: #14120e; border: 1px solid #665026; border-radius: 10px; }
.team-layout .cta-title { font-size: clamp(26px,2.6vw,38px); }
.team-layout .cta-sub { max-width: 66ch; font-size: 16px; }
@media(min-width:901px) and (max-width:1200px) {
  .team-layout .team-stage-inner { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media(max-width:900px) {
  .team-layout .team-stage-inner { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .team-page-hero { padding-bottom: 44px; }
  .team-org-functions { grid-template-columns: 1fr; gap: 18px; border-left: 1px solid #9a7028; margin-left: 12px; padding-left: 22px; }
  .team-org-functions::before { display: none; }
  .team-org-root { margin: 0 0 30px; }
  .team-org-root::after { left: 12px; height: 31px; }
  .team-function::before { width: 23px; height: 1px; left: -23px; top: 38px; }
  .team-function > p:last-child { max-width: none; }
}
@media(max-width:640px) {
  .team-layout .team-stage-inner { grid-template-columns: minmax(0,1fr); }
  .team-page-hero { padding-top: 94px; }
  .team-page-hero h1 { font-size: 39px; }
  .team-hero-image { object-position: 68% top; opacity: .4; }
  .team-hero-actions .btn { width: 100%; font-size: 13px; }
  .team-section-heading { text-align: left; }
  .team-layout .team-card { width: 100%; }
  .team-layout .cta-box { padding: 26px 22px; }
  .team-layout .cta-actions { display: flex; flex-wrap: wrap; gap: 10px; }
  .team-function h3 { font-size: 27px; }
}
@media(prefers-reduced-motion:reduce) {
  .team-layout *, .team-layout *::before { animation: none !important; transition: none !important; }
}
