/* Unternehmen & Konzept: the shared SWS visual language, with page-specific layouts. */
.sws-company-page .hero-top { display:grid; grid-template-columns:minmax(0,1.14fr) minmax(0,.86fr); gap:26px; align-items:stretch; }
.sws-company-page .hero-copy-card,.sws-company-page .hero-media-card { min-width:0; position:relative; border:1px solid rgba(1,102,94,.13); border-radius:27px; box-shadow:0 24px 58px rgba(16,54,49,.085),inset 0 1px 0 #fff; }
.sws-company-page .hero-copy-card { padding:38px 40px; background:radial-gradient(circle at 100% 0%,rgba(24,163,164,.085),transparent 40%),linear-gradient(145deg,rgba(255,255,255,.98),rgba(244,250,246,.94)); }
.sws-company-page #unternehmen h1 { margin:25px 0 0; color:#123e46; font-size:clamp(37px,3.55vw,52px); font-weight:710; line-height:1.12; letter-spacing:-.04em; text-wrap:balance; }
.sws-company-page #unternehmen h1 span { color:transparent; background:linear-gradient(95deg,#005d56,#087d76 62%,#18a3a4); background-clip:text; -webkit-background-clip:text; hyphens:manual; }
.sws-company-page #unternehmen .lead { font-size:17px; margin-top:24px; }
.sws-company-page .hero-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:25px; }
.sws-company-page .meta-pill { padding:8px 11px; border:1px solid rgba(1,102,94,.12); border-radius:99px; background:rgba(255,255,255,.72); color:#31655d; font-size:10px; font-weight:700; line-height:1.4; box-shadow:inset 0 1px 0 #fff; }
.sws-company-page .company-hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.sws-company-page .company-hero-actions .sws-btn { min-height:46px; font-size:12px; padding-inline:16px; }
.sws-company-page .hero-media-card { overflow:hidden; min-height:470px; background:#dcebe3; }
.sws-company-page .hero-media-card .building { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 44%; }
.sws-company-page .hero-media-overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(1,52,44,.03),transparent 45%,rgba(4,42,36,.55)); }
.sws-company-page .logo-card { position:absolute; bottom:28px; left:26px; width:190px; padding:14px 18px; border:1px solid rgba(255,255,255,.7); border-radius:15px; background:rgba(255,255,255,.93); backdrop-filter:blur(10px); box-shadow:0 12px 30px rgba(7,48,39,.15),inset 0 1px 0 #fff; }
.sws-company-page .logo-card img { width:100%; height:auto; }
.sws-company-page .hero-media-card .location-badge { position:absolute; top:20px; right:20px; padding:10px 13px; border:1px solid rgba(255,255,255,.8); border-radius:10px; background:rgba(255,255,255,.88); color:#285a50; backdrop-filter:blur(8px); font-size:10px; font-weight:700; }
.sws-company-page .hero { margin-top:24px; }
.sws-company-page .hero > div:empty { display:none; }
.sws-company-page .hero .side { position:relative; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:center; gap:32px; margin:0; padding:25px 30px; border:1px solid rgba(1,102,94,.12); border-radius:20px; background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(235,246,239,.9)); box-shadow:0 12px 30px rgba(16,54,49,.045),inset 0 1px 0 #fff; }
.sws-company-page .hero .side::before { content:''; position:absolute; left:0; top:24px; bottom:24px; width:3px; border-radius:0 3px 3px 0; background:linear-gradient(#01665e,#18a3a4); }
.sws-company-page .side > strong { font-size:25px; line-height:1.25; letter-spacing:-.025em; font-weight:650; }
.sws-company-page .side > p { margin:0; color:#6f7f7d; font-size:15px; line-height:1.75; }
.sws-company-page .facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:26px; }
.sws-company-page .fact { position:relative; min-width:0; padding:25px; border:1px solid rgba(1,102,94,.12); border-radius:18px; background:linear-gradient(145deg,#fff,#f6fbf8); box-shadow:0 12px 30px rgba(16,54,49,.05),inset 0 1px 0 #fff; }
.sws-company-page .fact small { display:block; color:#078278; font-size:10px; line-height:1.5; font-weight:750; text-transform:uppercase; letter-spacing:.06em; }
.sws-company-page .fact > strong { display:block; margin-top:15px; font-size:20px; font-weight:680; line-height:1.3; letter-spacing:-.025em; }
.sws-company-page .fact p { margin:12px 0 0; color:#6f7f7d; font-size:14px; line-height:1.7; }

.sws-company-page .head { margin:0; }
.sws-company-page .principles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:36px; }
.sws-company-page .principle { position:relative; min-width:0; overflow:hidden; padding:30px; border:1px solid rgba(1,102,94,.13); border-radius:23px; background:radial-gradient(circle at 100% 0%,rgba(24,163,164,.07),transparent 45%),linear-gradient(145deg,#fff,#f6fbf8); box-shadow:0 18px 42px rgba(16,54,49,.065),inset 0 1px 0 #fff; }
.sws-company-page .principle-index { display:grid; place-items:center; width:38px; height:38px; margin-bottom:24px; border:1px solid rgba(1,102,94,.14); border-radius:11px; background:linear-gradient(145deg,#edf8f2,#fff); color:#01665e; font-size:12px; font-weight:800; box-shadow:0 5px 14px rgba(1,102,94,.04),inset 0 1px 0 #fff; }
.sws-company-page .principle-kicker { color:#0b887a; font-size:10px; line-height:1.5; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.sws-company-page .principle h3 { margin:15px 0 0; color:#123e46; font-size:24px; line-height:1.28; font-weight:680; letter-spacing:-.025em; }
.sws-company-page .principle p { margin:16px 0 12px; color:#6f7f7d; font-size:15px; line-height:1.75; }
.sws-company-page .principle-line { position:absolute; left:30px; right:30px; bottom:0; height:3px; border-radius:99px 99px 0 0; background:linear-gradient(90deg,#01665e,#18a3a4,rgba(24,163,164,.1)); }

.sws-company-page .roadmap { position:relative; margin-top:38px; }
.sws-company-page .roadmap-line { position:absolute; top:25px; bottom:25px; left:25px; width:2px; background:linear-gradient(#01665e,#18a3a4 60%,rgba(1,102,94,.12)); }
.sws-company-page .steps { position:relative; display:grid; grid-template-columns:1fr; gap:18px; margin:0; }
.sws-company-page .step { position:relative; display:grid; grid-template-columns:52px minmax(0,1fr); align-items:start; gap:24px; min-width:0; padding:0; border:0; background:none; box-shadow:none; }
.sws-company-page .step-marker { position:relative; z-index:1; display:grid; place-items:center; width:52px; height:52px; margin-top:22px; border:1px solid rgba(1,102,94,.17); border-radius:15px; background:linear-gradient(145deg,#fff,#edf7f1); color:#01665e; font-size:13px; font-weight:800; box-shadow:0 8px 22px rgba(1,102,94,.09),0 0 0 5px rgba(246,251,248,.9),inset 0 1px 0 #fff; }
.sws-company-page .step-card { min-width:0; padding:27px 32px; border:1px solid rgba(1,102,94,.12); border-radius:22px; background:radial-gradient(circle at 100% 0%,rgba(24,163,164,.055),transparent 42%),linear-gradient(145deg,#fff,#f7fbf9); box-shadow:0 16px 38px rgba(16,54,49,.06),inset 0 1px 0 #fff; }
.sws-company-page .step-kicker { color:#0b887a; font-size:10px; line-height:1.5; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.sws-company-page .step h3 { margin:11px 0 0; color:#123e46; font-size:25px; line-height:1.25; font-weight:680; letter-spacing:-.025em; }
.sws-company-page .step p { margin:14px 0 0; max-width:890px; color:#6f7f7d; font-size:16px; line-height:1.75; }
.sws-company-page .step-note { margin-top:18px; padding:12px 15px; border:1px solid rgba(1,102,94,.08); border-radius:10px; background:rgba(234,246,238,.72); color:#5a776b; font-size:13px; line-height:1.65; }
.sws-company-page .step-note strong { color:#01665e; font-weight:700; }

.sws-company-page .location-card { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:34px; margin-top:36px; padding:30px; border:1px solid rgba(1,102,94,.13); border-radius:26px; background:radial-gradient(circle at 0% 0%,rgba(24,163,164,.06),transparent 45%),linear-gradient(145deg,#fff,#f5faf7); box-shadow:0 22px 52px rgba(16,54,49,.075),inset 0 1px 0 #fff; }
.sws-company-page .location-kicker { font-size:10px; line-height:1.5; font-weight:800; text-transform:uppercase; letter-spacing:.12em; color:#0b887a; }
.sws-company-page .location-copy h3 { margin:15px 0 0; color:#123e46; font-size:28px; line-height:1.25; font-weight:680; letter-spacing:-.03em; }
.sws-company-page .location-copy p { margin:18px 0 0; color:#6f7f7d; font-size:16px; line-height:1.75; }
.sws-company-page .location-media { min-width:0; overflow:hidden; border:1px solid rgba(1,102,94,.12); border-radius:18px; background:#fff; box-shadow:0 12px 30px rgba(4,59,54,.07),inset 0 1px 0 #fff; }
.sws-company-page .location-media > img { width:100%; height:auto; object-fit:contain; }
.sws-company-page .location-caption { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px; border-top:1px solid rgba(1,102,94,.1); }
.sws-company-page .location-caption strong { display:block; font-size:13px; line-height:1.5; font-weight:700; }
.sws-company-page .location-caption small { display:block; margin-top:5px; color:#6f7f7d; font-size:11px; line-height:1.55; }
.sws-company-page .location-caption .location-badge { flex:none; padding:8px 10px; border:1px solid rgba(1,102,94,.12); border-radius:8px; color:#01665e; background:#eef7f2; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.sws-company-page .team-list { display:grid; gap:20px; margin-top:34px; }
.sws-company-page .team-group { min-width:0; padding:26px; border:1px solid rgba(1,102,94,.13); border-radius:24px; background:radial-gradient(circle at 100% 0%,rgba(24,163,164,.055),transparent 45%),linear-gradient(145deg,#fff,#f5faf7); box-shadow:0 18px 42px rgba(16,54,49,.06),inset 0 1px 0 #fff; }
.sws-company-page .department-heading { display:flex; align-items:center; flex-wrap:wrap; gap:14px; }
.sws-company-page .department-badge { flex:none; padding:8px 11px; border:1px solid rgba(1,102,94,.13); border-radius:9px; background:linear-gradient(145deg,#eaf6ef,#f7fcf9); color:#0b7e72; font-size:9px; font-weight:800; line-height:1.5; text-transform:uppercase; letter-spacing:.07em; }
.sws-company-page .department-title { color:#123e46; font-size:22px; font-weight:680; letter-spacing:-.025em; }
.sws-company-page .department-line { flex:1; min-width:30px; height:1px; background:linear-gradient(90deg,rgba(1,102,94,.18),transparent); }
.sws-company-page .department-people { display:grid; grid-template-columns:1fr; gap:16px; margin-top:22px; }
.sws-company-page .team-group:first-child .department-people { grid-template-columns:repeat(2,minmax(0,1fr)); }
.sws-company-page .person-row { display:flex; align-items:center; min-width:0; gap:22px; padding:20px; border:1px solid rgba(1,102,94,.1); border-radius:17px; background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(247,252,249,.9)); box-shadow:0 7px 20px rgba(16,54,49,.03),inset 0 1px 0 #fff; }
.sws-company-page .photo-placeholder { position:relative; flex:0 0 96px; display:grid; place-items:center; width:96px; height:112px; padding-bottom:15px; overflow:hidden; border:1px solid rgba(1,102,94,.15); border-radius:14px; background:radial-gradient(circle at 85% 10%,rgba(24,163,164,.15),transparent 60%),linear-gradient(145deg,#f4fbf7,#e2f0e7); box-shadow:inset 0 1px 0 #fff; }
.sws-company-page .photo-placeholder::before { content:''; position:absolute; width:110px; height:110px; left:28px; top:15px; border:1px solid rgba(1,102,94,.08); border-radius:50%; }
.sws-company-page .person-initials { position:relative; color:transparent; background:linear-gradient(145deg,#01665e,#18a3a4); background-clip:text; -webkit-background-clip:text; font-size:31px; font-weight:650; letter-spacing:-.04em; }
.sws-company-page .photo-label { position:absolute; left:0; right:0; bottom:10px; color:#6a8c7c; font-size:8px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; text-align:center; }
.sws-company-page .person-content { display:grid; grid-template-columns:minmax(170px,.38fr) minmax(0,1fr); align-items:center; gap:24px; min-width:0; flex:1; }
.sws-company-page .team-group:first-child .person-content { display:block; }
.sws-company-page .team-group:first-child .person-description { margin-top:13px; }
.sws-company-page .person-meta small { display:block; color:#0b887a; font-size:9px; line-height:1.5; font-weight:750; text-transform:uppercase; letter-spacing:.09em; }
.sws-company-page .person-meta > strong { display:block; margin-top:7px; color:#123e46; font-size:23px; line-height:1.2; font-weight:680; letter-spacing:-.025em; }
.sws-company-page .person-description > strong { display:block; color:#285b4e; font-size:14px; line-height:1.5; font-weight:700; }
.sws-company-page .person-description p { margin:7px 0 0; color:#6f7f7d; font-size:14px; line-height:1.7; }
.sws-company-page .company-footer { position:relative; background:linear-gradient(120deg,#083a3a,#07534c); color:#e4f4ec; padding:30px 0; }
.sws-company-page .company-footer-inner { display:flex; align-items:center; justify-content:space-between; gap:26px; width:min(1200px,calc(100% - 96px)); margin:0 auto; }
.sws-company-page .company-footer strong { display:block; font-size:13px; line-height:1.6; }
.sws-company-page .company-footer span { display:block; margin-top:4px; color:#a9ccbb; font-size:12px; line-height:1.6; }
.sws-company-page .company-footer nav { display:flex; flex-wrap:wrap; gap:24px; }
.sws-company-page .company-footer a { color:#c1e6d9; font-size:12px; line-height:1.6; text-decoration:none; }
.sws-company-page .company-footer a:hover { color:#fff; text-decoration:underline; }
@media(max-width:1050px) {
  .sws-company-page .hero-top { grid-template-columns:1fr; }
  .sws-company-page .hero-media-card { min-height:360px; }
  .sws-company-page #unternehmen h1 { max-width:800px; font-size:clamp(38px,5.2vw,52px); }
  .sws-company-page .facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sws-company-page .principles { grid-template-columns:1fr; }
  .sws-company-page .principle { padding:28px; }
  .sws-company-page .location-card { grid-template-columns:1fr; }
  .sws-company-page .team-group:first-child .department-people { grid-template-columns:1fr; }
  .sws-company-page .person-content { grid-template-columns:minmax(150px,.4fr) minmax(0,1fr); }
}
@media(max-width:760px) {
  .sws-company-page .hero .side { display:block; }
  .sws-company-page .side > p { margin-top:13px; }
  .sws-company-page .person-content { display:block; }
  .sws-company-page .person-description { margin-top:13px; }
}
@media(max-width:680px) {
  .sws-company-page .hero-copy-card { padding:27px 23px; border-radius:22px; }
  .sws-company-page #unternehmen h1 { font-size:clamp(32px,8vw,40px); line-height:1.16; margin-top:21px; }
  .sws-company-page #unternehmen .lead { font-size:16px; }
  .sws-company-page .hero-media-card { min-height:300px; border-radius:22px; }
  .sws-company-page .hero-media-card .location-badge { top:15px; right:15px; font-size:9px; }
  .sws-company-page .logo-card { width:158px; bottom:22px; left:20px; }
  .sws-company-page .hero .side { padding:24px; border-radius:18px; }
  .sws-company-page .side > strong { font-size:23px; }
  .sws-company-page .facts { grid-template-columns:1fr; gap:12px; }
  .sws-company-page .fact { padding:24px; }
  .sws-company-page .principle { padding:25px; border-radius:20px; }
  .sws-company-page .principle h3 { font-size:23px; }
  .sws-company-page .principle p { font-size:15px; }
  .sws-company-page .step { grid-template-columns:34px minmax(0,1fr); gap:13px; }
  .sws-company-page .roadmap-line { left:16px; }
  .sws-company-page .step-marker { width:34px; height:38px; border-radius:10px; font-size:10px; box-shadow:0 6px 16px rgba(1,102,94,.07),0 0 0 4px rgba(246,251,248,.9); }
  .sws-company-page .step-card { padding:23px 20px; border-radius:18px; }
  .sws-company-page .step h3 { font-size:22px; }
  .sws-company-page .step p { font-size:15px; }
  .sws-company-page .step-note { padding:11px 12px; font-size:12px; }
  .sws-company-page .location-card { padding:24px 20px; border-radius:21px; gap:25px; }
  .sws-company-page .location-copy h3 { font-size:25px; }
  .sws-company-page .location-copy p { font-size:15px; }
  .sws-company-page .location-caption { padding:15px; }
  .sws-company-page .location-caption .location-badge { display:none; }
  .sws-company-page .team-group { padding:22px 18px; border-radius:21px; }
  .sws-company-page .department-heading { gap:12px; }
  .sws-company-page .department-title { font-size:20px; }
  .sws-company-page .person-row { align-items:flex-start; gap:16px; padding:18px 15px; }
  .sws-company-page .photo-placeholder { flex-basis:64px; width:64px; height:85px; border-radius:11px; }
  .sws-company-page .person-initials { font-size:25px; }
  .sws-company-page .photo-label { font-size:7px; }
  .sws-company-page .person-meta > strong { font-size:21px; }
  .sws-company-page .person-meta small { font-size:8px; }
  .sws-company-page .person-description > strong { font-size:13px; }
  .sws-company-page .person-description p { font-size:13px; }
  .sws-company-page .company-footer-inner { display:block; width:calc(100% - 40px); }
  .sws-company-page .company-footer nav { gap:18px; margin-top:20px; }
}
