/* Wariant C. Jasna, wspólna przestrzeń domu i przemysłu. */
.modern.campus {
  --ink: #37545a;
  --muted: #637b7d;
  --paper: #f5f7f4;
  --line: #dce5df;
  --red: #ad4438;
  --red-dark: #92352d;
  color: var(--ink);
  background: #fffefa;
}
.campus .variant-bar, .campus .site-footer { background: #f0f4f0; color: #597073; }
.campus .site-header { background: #fffefaed; border-color: #e1e8e2; }
.campus .header-search { background: #f0f4f0; }
.campus .campus-hero { padding-block: 48px 20px; }
.campus-heading { display: grid; grid-template-columns: 1.2fr 1fr; align-items: end; gap: 70px; margin-bottom: 34px; }
.campus .campus-heading h1 { font-size: clamp(42px,4.8vw,72px); line-height: 1.08; letter-spacing: -.05em; color: #3c5d64; }
.campus-heading h1 span { color: #ad4438; }
.campus .campus-heading .section-label { color: #647f80; font-size: 11px; letter-spacing: 1.5px; margin-bottom: 18px; text-transform: uppercase; }
.campus-intro > p { font-size: 16px; line-height: 1.8; color: #637b7d; max-width: 480px; }
.campus .campus-intro .hero-actions { display: flex; gap: 24px; align-items: center; margin-top: 22px; flex-wrap: wrap; }
.campus .button.primary { background: var(--red); color: #fff; }
.campus .button.primary:hover { background: var(--red-dark); }
.campus-map { position: relative; border-radius: 24px; overflow: hidden; border: 1px solid #e1e9e4; background: #f2f7f8; }
.campus-map > img { display: block; width: 100%; height: auto; }
.campus-pin { position: absolute; left: var(--x); top: var(--y); transform: translate(-50%,-50%); display: flex; align-items: center; gap: 8px; padding: 5px 13px 5px 5px; min-height: 44px; border-radius: 50px; border: 1px solid #c4d5ce; background: #fffefaf5; color: #37545a; font: inherit; font-size: 11px; box-shadow: 0 4px 13px #68857c12; cursor: pointer; white-space: nowrap; }
.campus-pin b { display: grid; place-items: center; width: 30px; height: 30px; background: #b04d3e; color: #fff; border-radius: 50%; font-size: 10px; font-weight: 600; }
.campus-pin:hover { border-color: #ad4438; background: #fff; }
.campus-pin:focus-visible, .campus-choice:focus-visible { outline: 3px solid #ad4438; outline-offset: 3px; }
.campus-caption { display: flex; justify-content: space-between; gap: 20px; margin-block: 15px 24px; font-size: 11px; color: #607a7c; }
.campus-choices { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.campus-choice { display: flex; gap: 12px; align-items: center; text-align: left; padding: 17px 13px; border: 1px solid #e1e8e2; border-radius: 14px; background: #fffefa; color: #37545a; font: inherit; cursor: pointer; min-width: 0; }
.campus-choice:hover { background: #f0f4ed; border-color: #b7cac1; }
.choice-number { display: grid; place-items: center; width: 28px; height: 28px; flex-shrink: 0; border: 1px solid #dbc4b7; border-radius: 50%; color: #ad4438; font-size: 10px; }
.choice-number .icon { width: 15px; height: 15px; }
.campus-choice strong { display: block; font-size: 12px; font-weight: 600; }
.campus-choice small { display: block; font-size: 10px; color: #637b7d; margin-top: 5px; line-height: 1.5; }
.choice-arrow { margin-left: auto; color: #849a95; font-size: 16px; }
.campus .filter-bar, .campus .integrator-card, .campus .solution-card, .campus .product-image { background: #f1f5f1; }
.campus .filter-button.active { background: #527674; color: #fff; }
.campus .card-category { background: #e2eae2; color: #536e71; }
.campus .integrator-card:hover { background: #eaf1e9; border-color: #bfcfc3; }
.campus .card-bottom .icon { background: #dbe5dd; }
.campus .news-section { background: #f5f1e9; }
.campus .news-item { border-color: #ddd8cc; }
.campus .solutions-section { background: #fffefa; }
.campus .contact-band { background: #e8f0e9; color: #37545a; }
.campus .contact-band p { color: #5d7779; }
.campus .contact-band .button { background: #ad4438; color: white; }
.campus .contact-dialog { color: #37545a; background: #fffefa; }
.campus .manufacturer-line b { color: #647e7b; }
.campus .footer-top p, .campus .footer-top a, .campus .footer-contact { color: #596f72; }
.campus .campus-pin { padding: 5px 12px 5px 5px; width: auto; height: auto; justify-content: center; }
.campus .campus-pin span { display: block; position: static; transform: none; background: transparent; border: 0; padding: 0; box-shadow: none; }
.campus .campus-pin:hover, .campus .campus-pin:focus-visible { z-index: 3; }
.campus .campus-pin:hover span, .campus .campus-pin:focus-visible span { display: block; }
.campus .pin-12 b { background: #926b28; }
.ex-raychem-mark { position: absolute; top: calc(100% + 7px); left: 50%; transform: translateX(-50%); width: 116px; height: auto; padding: 7px 10px; box-sizing: content-box; background: #fffefa; border: 1px solid #e1d8c1; border-radius: 7px; }
.campus-viewport.is-overview .ex-raychem-mark { width: 9cqw; padding: .55cqw .8cqw; top: calc(100% + .6cqw); border-radius: .6cqw; }
.campus-ex { display: grid; grid-template-columns: 68px minmax(0,1fr) auto; gap: 30px; align-items: start; padding: 35px; margin-bottom: 70px; border: 1px solid #e1d5b6; border-radius: 22px; background: #fbf7ed; scroll-margin-top: 20px; }
.ex-mark { display: grid; place-items: center; width: 62px; height: 62px; border: 2px solid #ba9b5e; border-radius: 18px; color: #886a32; font-size: 29px; font-weight: 700; }
.campus .campus-ex h2 { font-size: 30px; line-height: 1.2; letter-spacing: -.025em; }
.campus-ex p:not(.section-label) { font-size: 14px; line-height: 1.7; color: #617777; max-width: 650px; margin-top: 13px; }
.campus-ex .ex-note { font-size: 11px !important; }
.ex-actions { display: flex; flex-direction: column; gap: 14px; padding-top: 17px; }
.ex-actions .text-button { font-size: 12px; }
@media (max-width: 1050px) {
  .campus-ex { grid-template-columns: 58px minmax(0,1fr); gap: 22px; padding: 25px; }
  .ex-actions { grid-column: 2; align-items: flex-start; padding-top: 0; }
}
@media (max-width: 650px) {
  .campus-ex { display: block; padding: 22px; margin-bottom: 42px; }
  .ex-mark { width: 45px; height: 45px; font-size: 24px; border-radius: 13px; margin-bottom: 20px; }
  .campus .campus-ex h2 { font-size: 27px; }
  .ex-actions { margin-top: 20px; }
}
@media (max-width: 1050px) {
  .campus-heading { gap: 30px; }
  .campus-choices { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 650px) {
  .campus .campus-hero { padding-top: 30px; }
  .campus-heading { display: block; margin-bottom: 24px; }
  .campus .campus-heading h1 { font-size: clamp(35px,9.6vw,56px); }
  .campus .campus-heading .section-label { font-size: 10px; letter-spacing: 1px; margin-bottom: 14px; }
  .campus-intro > p { font-size: 14px; margin-top: 18px; }
  .campus .campus-intro .hero-actions { gap: 16px; margin-top: 20px; }
  .campus .campus-intro .button, .campus .campus-intro .text-button { font-size: 12px; }
  .campus-map { border-radius: 16px; }
  .campus-caption { display: block; margin-block: 12px 18px; font-size: 11px; line-height: 1.6; }
  .campus-caption span { display: none; }
  .campus-choices { gap: 8px; }
  .campus-choice { padding: 13px 10px; gap: 8px; align-items: flex-start; }
  .campus-choice strong { font-size: 11px; line-height: 1.4; }
  .campus-choice small { font-size: 10px; line-height: 1.5; }
  .choice-number { width: 23px; height: 23px; }
  .choice-arrow { display: none; }
}
.map-controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 12px; font-size: 12px; color: #607a7c; }
.map-zoom { display: none; min-height: 44px; padding: 8px 15px; border: 1px solid #bdcec4; border-radius: 20px; background: #f1f5ed; color: #37545a; font: inherit; cursor: pointer; }
.campus-viewport { overflow: auto; border-radius: 24px; border: 1px solid #e1e9e4; background: #f2f7f8; }
.campus-viewport:focus-visible { outline: 3px solid #ad4438; outline-offset: 3px; }
.campus-viewport .campus-map { border: 0; border-radius: 0; container-type: inline-size; }
@media (max-width: 1100px) {
  .map-controls { flex-wrap: wrap; font-size: 11px; }
  .map-zoom { display: block; }
  .campus-viewport .campus-map { width: 1100px; }
  .campus-viewport.is-overview .campus-map { width: 100%; }
  .campus-viewport.is-overview .campus-pin { min-height: 0; gap: .5cqw; padding: .4cqw .8cqw .4cqw .4cqw; font-size: 1cqw; }
  .campus-viewport.is-overview .campus-pin b { width: 2.5cqw; height: 2.5cqw; font-size: .85cqw; }
  .campus-caption span { display: block; margin-top: 5px; }
}
@media (max-width: 360px) {
  .campus .campus-heading h1 { font-size: 34px; }
  .campus-choice { padding: 12px 8px; gap: 6px; }
  .campus .campus-intro .hero-actions { gap: 12px; }
}

/* Realistyczna scena: dwa pionowe szeregi i bezpośrednie odsyłacze. */
.campus-viewport { background: #fff; }
.campus-viewport .campus-map { aspect-ratio: 16 / 7; background: #fff; }
.campus-map > img { position: absolute; left: 11.80556%; top: 4.76190%; width: 76.38889%; height: 87.30159%; object-fit: contain; }
.campus-leaders { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.campus-leaders polyline { fill: none; stroke: #8b9d9a; stroke-width: 1.2; stroke-linejoin: round; }
.campus .campus-pin,
.campus-viewport.is-overview .campus-pin {
 width: 14.6%; min-height: 44px; gap: .55cqw; padding: .55cqw;
 border: 0; border-radius: 6px; background: transparent; box-shadow: none;
 justify-content: flex-start; text-align: left; white-space: normal;
 font-size: 1.04cqw; line-height: 1.35; color: #37545a;
}
.campus .campus-pin span { color: inherit; font-size: inherit; font-weight: 600; line-height: inherit; white-space: normal; }
.campus .campus-pin:hover { background: #f2f5f1; color: #ad4438; }
.campus .campus-pin.pin-right { padding-left: 2.8cqw; }
.campus .pin-12 { color: #82632f; }
.campus .ex-raychem-mark,
.campus-viewport.is-overview .ex-raychem-mark {
 left: 4.1cqw; top: 100%; transform: none; width: 5cqw; height: auto;
 border: 0; border-radius: 0; padding: 0; background: transparent;
}
.campus-art-note { position: absolute; left: 3%; bottom: 3%; font-size: .76cqw; letter-spacing: .03em; color: #748583; }
/* Czerwony punkt należy do tego samego odsyłacza co tekst. */
.campus .campus-pin::before {
 content: ''; display: block; flex: 0 0 .75cqw; width: .75cqw; height: .75cqw;
 border-radius: 50%; background: #c8302d; box-shadow: 0 0 0 .15cqw #fff;
}
.campus .campus-pin:hover::before, .campus .campus-pin:focus-visible::before { background: #a5201d; }
.campus .campus-pin.pin-left span { max-width: 8.5cqw; }
@media (max-width: 1100px) {
 .campus-viewport.is-overview .campus-pin { min-height: 0; }
}
