/* Campus & Räume product family ------------------------------------------ */
.cc-detail { overflow: hidden; }
.cc-detail * { box-sizing: border-box; }
.cc-detail-hero { --cc-detail-viewport-gutter: max(var(--cc-pad), calc((100vw - var(--cc-max)) / 2)); background: var(--cc-white); min-height: clamp(650px, 76vh, 860px); position: relative; }
.cc-detail-hero__inner { align-items: center; display: grid; gap: clamp(48px, 7vw, 110px); grid-template-columns: minmax(0, .9fr) minmax(440px, 1.1fr); min-height: inherit; }
.cc-detail-hero__copy { padding-block: var(--cc-section); position: relative; z-index: 2; }
.cc-detail-hero__copy .cc-display { font-size: clamp(52px, 5.5vw, 84px); max-width: 770px; }
.cc-detail-hero__media { align-self: stretch; margin-right: calc(-1 * var(--cc-detail-viewport-gutter)); min-height: 590px; position: relative; }
.cc-detail-hero__media img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.cc-detail-hero__media::after { background: linear-gradient(90deg, var(--cc-white), transparent 25%); content: ""; inset: 0; pointer-events: none; position: absolute; }
.cc-detail-hero__note { display: none; }

.cc-family-nav { background: var(--cc-mist); border-block: 1px solid var(--cc-line); }
.cc-family-nav__inner { align-items: center; display: grid; gap: 20px 34px; grid-template-columns: auto 1fr; padding-block: 28px; }
.cc-family-nav__title { color: var(--cc-navy); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.cc-family-nav__links { display: flex; flex-wrap: wrap; gap: 10px 24px; justify-content: flex-end; }
.cc-family-nav a { color: var(--cc-muted) !important; font-size: 13px; font-weight: 650; position: relative; }
.cc-family-nav a:hover,
.cc-family-nav a[aria-current="page"] { color: var(--cc-blue) !important; }
.cc-family-nav a[aria-current="page"]::after { background: var(--cc-blue); bottom: -8px; content: ""; height: 2px; left: 0; position: absolute; right: 0; }

.cc-detail-section { padding-block: var(--cc-section); }
.cc-detail-section--ice { background: var(--cc-ice); }
.cc-detail-section--mist { background: var(--cc-mist); }
.cc-detail-section--navy { background: var(--cc-navy); color: var(--cc-white); }
.cc-detail-section--navy .cc-h2,
.cc-detail-section--navy h3 { color: var(--cc-white); }
.cc-detail-section--navy .cc-eyebrow { color: var(--cc-blue-2); }
.cc-detail-section--navy .cc-lead,
.cc-detail-section--navy p { color: rgba(255,255,255,.72); }
.cc-detail-head { display: grid; gap: 38px clamp(45px, 8vw, 120px); grid-template-columns: minmax(0, 1fr) minmax(280px, .72fr); margin-bottom: var(--cc-gap-visual); }
.cc-detail-head p:last-child { color: var(--cc-muted); font-size: 18px; line-height: 1.7; margin: 0; }
.cc-detail-section--navy .cc-detail-head p:last-child { color: rgba(255,255,255,.7); }
.cc-detail-kicker { color: var(--cc-blue); font-size: 11px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }

/* Planning */
.cc-plan-board { background: var(--cc-white); border-top: 4px solid var(--cc-blue); box-shadow: 0 26px 75px rgba(7,26,54,.09); display: grid; grid-template-columns: 190px 1fr; }
.cc-plan-rooms { border-right: 1px solid var(--cc-line); padding-top: 66px; }
.cc-plan-room { align-items: center; border-top: 1px solid var(--cc-line); color: var(--cc-navy); display: flex; font-size: 16px; font-weight: 750; height: 112px; padding-inline: 30px; }
.cc-plan-grid { min-width: 0; overflow: hidden; position: relative; }
.cc-plan-hours { color: var(--cc-muted); display: grid; font-size: 12px; grid-template-columns: repeat(3, 1fr); height: 66px; padding: 24px 30px 0; }
.cc-plan-hours span:nth-child(2) { text-align: center; }
.cc-plan-hours span:last-child { text-align: right; }
.cc-plan-lane { border-top: 1px solid var(--cc-line); height: 112px; padding: 16px 4%; position: relative; }
.cc-plan-lane::before,
.cc-plan-lane::after { background: var(--cc-line); content: ""; inset-block: 0; position: absolute; width: 1px; }
.cc-plan-lane::before { left: 35%; }
.cc-plan-lane::after { left: 68%; }
.cc-plan-event { align-items: center; background: var(--cc-ice); border-left: 3px solid var(--cc-blue); display: flex; flex-direction: column; height: 80px; justify-content: center; left: 8%; padding: 12px 18px; position: absolute; top: 16px; width: 42%; }
.cc-plan-event strong { color: var(--cc-navy); font-size: 18px; }
.cc-plan-event small { color: var(--cc-blue); margin-bottom: 4px; }
.cc-plan-event--late { left: 54%; width: 34%; }
.cc-plan-free { color: #6f7d8d; font-size: 13px; left: 10%; position: absolute; top: 46px; }

.cc-process { display: grid; grid-template-columns: repeat(7, auto); margin-top: var(--cc-gap-visual); }
.cc-process__item { border-top: 2px solid var(--cc-blue); color: var(--cc-navy); font-size: clamp(18px,2vw,28px); font-weight: 750; padding: 26px 6px 0; }
.cc-process__arrow { color: var(--cc-blue); font-size: 25px; padding: 22px 20px 0; }
.cc-detail-section--navy .cc-process__item { color: var(--cc-white); }

/* Occupancy */
.cc-status-layout { align-items: start; display: grid; gap: clamp(45px,8vw,115px); grid-template-columns: minmax(300px,.72fr) minmax(0,1fr); }
.cc-room-card { background: var(--cc-white); border-top: 4px solid var(--cc-blue); box-shadow: 0 28px 65px rgba(7,26,54,.13); }
.cc-room-card__top { background: var(--cc-navy); color: var(--cc-white); padding: 34px; }
.cc-room-card__top small { color: var(--cc-blue-2); display: block; font-size: 11px; font-weight: 800; letter-spacing: .15em; margin-bottom: 12px; text-transform: uppercase; }
.cc-room-card__top strong { font-size: clamp(44px,5vw,72px); letter-spacing: -.05em; }
.cc-room-state { border-bottom: 1px solid var(--cc-line); padding: 28px 34px; }
.cc-room-state small { color: var(--cc-blue); display: block; font-size: 11px; font-weight: 800; letter-spacing: .12em; margin-bottom: 10px; text-transform: uppercase; }
.cc-room-state strong { color: var(--cc-navy); display: block; font-size: 23px; line-height: 1.15; }
.cc-room-state span { color: var(--cc-muted); display: block; margin-top: 8px; }
.cc-room-state--free { background: var(--cc-mist); }
.cc-audiences { border-top: 1px solid var(--cc-line); }
.cc-audience { align-items: start; border-bottom: 1px solid var(--cc-line); display: grid; gap: 30px; grid-template-columns: 150px 1fr; padding: 24px 0; }
.cc-audience strong { color: var(--cc-navy); }
.cc-audience p:empty { display: none; }
.cc-audience p:not(:empty) { color: var(--cc-muted); grid-column: 2; line-height: 1.6; margin: 0; }

/* Photo-led pages */
.cc-detail-hero--photo { background: var(--cc-navy); min-height: clamp(720px,88vh,950px); }
.cc-detail-hero--photo .cc-detail-hero__media { inset: 0; margin: 0; position: absolute; }
.cc-detail-hero--photo .cc-detail-hero__media::after { background: linear-gradient(90deg,rgba(3,16,36,.95) 0%,rgba(3,16,36,.76) 37%,rgba(3,16,36,.12) 72%),linear-gradient(0deg,rgba(3,16,36,.55),transparent 45%); }
.cc-detail-hero--photo .cc-detail-hero__inner { display: block; }
.cc-detail-hero--photo .cc-detail-hero__copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; min-height: inherit; width: min(54%,720px); }
.cc-detail-hero--photo .cc-display { color: var(--cc-white); }
.cc-detail-hero--photo .cc-lead { color: rgba(255,255,255,.8); }
.cc-detail-hero--photo .cc-eyebrow { color: var(--cc-blue-2); }
.cc-sign-detail { display: grid; gap: clamp(40px,7vw,100px); grid-template-columns: minmax(310px,.8fr) minmax(0,1fr); }
.cc-door-screen { background: var(--cc-navy); box-shadow: 0 30px 80px rgba(7,26,54,.18); color: var(--cc-white); padding: clamp(30px,5vw,64px); }
.cc-door-screen__room { color: var(--cc-blue-2); font-size: 12px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.cc-door-screen h3 { font-size: clamp(38px,4.7vw,64px); letter-spacing: -.045em; line-height: 1; margin: 45px 0 14px; }
.cc-door-screen h3 { color: var(--cc-white); }
.cc-door-screen__time { border-bottom: 1px solid rgba(255,255,255,.17); color: var(--cc-white); font-size: 18px; padding-bottom: 35px; }
.cc-door-screen__person { color: rgba(255,255,255,.68); margin-top: 20px; }
.cc-door-screen__next { border-top: 1px solid rgba(255,255,255,.17); margin-top: 38px; padding-top: 28px; }
.cc-door-screen__next small { color: var(--cc-blue-2); display: block; font-size: 11px; font-weight: 800; letter-spacing: .12em; margin-bottom: 8px; text-transform: uppercase; }
.cc-door-screen__next strong { font-size: 20px; }
.cc-info-list { border-top: 1px solid var(--cc-line); }
.cc-info-list__item { align-items: center; border-bottom: 1px solid var(--cc-line); display: flex; gap: 20px; justify-content: space-between; padding: 23px 0; }
.cc-info-list__item strong { color: var(--cc-navy); font-size: 18px; }
.cc-info-list__item span { color: var(--cc-blue); font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

/* Signage and board */
.cc-signage-board { background: var(--cc-navy); box-shadow: 0 32px 90px rgba(7,26,54,.2); color: var(--cc-white); display: grid; grid-template-columns: .72fr 1.28fr; }
.cc-signage-board__title { border-right: 1px solid rgba(255,255,255,.14); padding: clamp(34px,5vw,70px); }
.cc-signage-board__title small { color: var(--cc-blue-2); font-size: 11px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.cc-signage-board__title h3 { font-size: clamp(40px,5vw,70px); line-height: 1; margin: 40px 0 0; }
.cc-signage-board__title h3 { color: var(--cc-white); }
.cc-signage-events { padding: clamp(22px,4vw,54px); }
.cc-signage-event { align-items: center; border-bottom: 1px solid rgba(255,255,255,.15); display: grid; gap: 22px; grid-template-columns: 90px 1fr auto; padding: 25px 0; }
.cc-signage-event time { color: var(--cc-blue-2); font-size: 19px; font-weight: 800; }
.cc-signage-event strong { color: var(--cc-white); font-size: 22px; }
.cc-signage-event span { color: rgba(255,255,255,.6); font-size: 14px; }
.cc-data-stack { align-items: center; display: grid; gap: 17px; justify-items: center; margin-top: var(--cc-gap-visual); }
.cc-data-stack__item { background: var(--cc-white); border: 1px solid var(--cc-line); color: var(--cc-navy); font-size: 20px; font-weight: 750; padding: 22px 42px; text-align: center; width: min(100%,520px); }
.cc-data-stack__item:first-child { background: var(--cc-blue); border-color: var(--cc-blue); color: var(--cc-white); }
.cc-data-stack__arrow { color: var(--cc-blue); font-size: 25px; }
.cc-board { background: #081d3c; box-shadow: 0 30px 80px rgba(7,26,54,.2); color: var(--cc-white); display: grid; grid-template-columns: 1.15fr .85fr; }
.cc-board__lead { border-right: 1px solid rgba(255,255,255,.14); padding: clamp(34px,6vw,80px); }
.cc-board__label { color: var(--cc-blue-2); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.cc-board__lead h3 { font-size: clamp(42px,5vw,72px); letter-spacing: -.045em; line-height: 1; margin: 42px 0 22px; }
.cc-board__lead h3 { color: var(--cc-white); }
.cc-board__lead p { color: rgba(255,255,255,.67); font-size: 18px; }
.cc-board__items { padding: clamp(25px,4vw,55px); }
.cc-board__item { border-bottom: 1px solid rgba(255,255,255,.14); padding: 24px 0; }
.cc-board__item small { color: var(--cc-blue-2); display: block; font-size: 10px; font-weight: 800; letter-spacing: .13em; margin-bottom: 9px; text-transform: uppercase; }
.cc-board__item strong { color: var(--cc-white); font-size: 20px; }

/* Wayfinding */
.cc-route-layout { align-items: center; display: grid; gap: clamp(45px,8vw,110px); grid-template-columns: minmax(300px,.72fr) minmax(0,1fr); }
.cc-route-card { background: var(--cc-white); border-top: 4px solid var(--cc-blue); box-shadow: 0 30px 80px rgba(7,26,54,.16); padding: clamp(30px,5vw,60px); }
.cc-route-card h3 { color: var(--cc-navy); font-size: clamp(32px,4vw,50px); letter-spacing: -.04em; margin: 18px 0 8px; }
.cc-route-card__room { color: var(--cc-blue); font-size: 18px; font-weight: 800; }
.cc-route { margin-top: 35px; }
.cc-route__stop { align-items: center; color: var(--cc-navy); display: grid; font-weight: 700; gap: 16px; grid-template-columns: 16px 1fr; padding: 9px 0; }
.cc-route__stop::before { background: var(--cc-blue); border-radius: 50%; content: ""; height: 9px; width: 9px; }
.cc-route__line { background: var(--cc-line); height: 22px; margin-left: 4px; width: 2px; }
.cc-search-modes { border-top: 1px solid var(--cc-line); }
.cc-search-mode { align-items: center; border-bottom: 1px solid var(--cc-line); display: grid; gap: 24px; grid-template-columns: 50px 1fr; padding: 24px 0; }
.cc-search-mode span { color: var(--cc-blue); font-size: 12px; font-weight: 800; }
.cc-search-mode strong { color: var(--cc-navy); font-size: 19px; }

/* Shared connection and CTA */
.cc-link-band { border-block: 1px solid rgba(255,255,255,.14); display: grid; grid-template-columns: 1fr auto; margin-top: var(--cc-gap-visual); }
.cc-link-band__copy { padding: 30px 30px 30px 0; }
.cc-link-band__copy strong { color: var(--cc-white); display: block; font-size: clamp(24px,3vw,40px); letter-spacing: -.035em; line-height: 1.1; }
.cc-link-band__copy span { color: rgba(255,255,255,.64); display: block; margin-top: 10px; }
.cc-link-band a { align-items: center; border-left: 1px solid rgba(255,255,255,.14); color: var(--cc-white) !important; display: flex; font-weight: 750; gap: 18px; padding: 30px 0 30px 42px; }
.cc-link-band a::after { color: var(--cc-blue-2); content: "→"; font-size: 24px; }
.cc-detail-cta { background: var(--cc-white); }
.cc-detail-cta .cc-container { align-items: end; display: grid; gap: 45px; grid-template-columns: 1fr auto; }
.cc-detail-cta h2 { color: var(--cc-navy); font-size: clamp(38px,4.7vw,68px); letter-spacing: -.045em; line-height: 1.02; margin: 0; }
.cc-detail-section--navy .cc-h2 { hyphens: auto; overflow-wrap: normal; word-break: normal; }
.cc-detail-cta .cc-btns > .maintenance-sonetix-email-protect { display: inline-flex; }
.cc-detail-cta .maintenance-sonetix-email-protect-link { align-items: center; background: var(--cc-blue); border: 1px solid var(--cc-blue); color: var(--cc-white) !important; display: inline-flex; font-size: 15px; font-weight: 700; justify-content: center; min-height: 54px; padding: 0 25px; transition: .2s ease; }
.cc-detail-cta .maintenance-sonetix-email-protect-link:hover { background: var(--cc-navy); border-color: var(--cc-navy); }

@media (max-width: 980px) {
  .cc-detail-hero__inner { grid-template-columns: 1fr 1fr; gap: 35px; }
  .cc-detail-hero__media { min-height: 520px; }
  .cc-family-nav__inner { align-items: start; grid-template-columns: 1fr; }
  .cc-family-nav__links { justify-content: flex-start; }
  .cc-detail-head { grid-template-columns: 1fr; }
  .cc-plan-board { grid-template-columns: 145px 1fr; }
  .cc-status-layout,.cc-sign-detail,.cc-route-layout { gap: 45px; grid-template-columns: .85fr 1.15fr; }
  .cc-signage-board,.cc-board { grid-template-columns: 1fr; }
  .cc-signage-board__title,.cc-board__lead { border-bottom: 1px solid rgba(255,255,255,.14); border-right: 0; }
}

@media (max-width: 760px) {
  .cc-detail-hero { min-height: auto; }
  .cc-detail-hero__inner { display: flex; flex-direction: column; gap: 0; width: 100%; }
  .cc-detail-hero__copy { padding: 82px var(--cc-pad) 58px; width: 100%; }
  .cc-detail-hero__media { margin: 0; min-height: 68vw; width: 100%; }
  .cc-detail-hero__media::after { background: linear-gradient(180deg,var(--cc-white),transparent 25%); }
  .cc-detail-hero--photo { min-height: 760px; }
  .cc-detail-hero--photo .cc-detail-hero__inner { display: block; }
  .cc-detail-hero--photo .cc-detail-hero__copy { min-height: 760px; padding-inline: var(--cc-pad); width: 80%; }
  .cc-detail-hero--photo .cc-detail-hero__media { min-height: 100%; }
  .cc-detail-hero--photo .cc-detail-hero__media::after { background: linear-gradient(90deg,rgba(3,16,36,.92),rgba(3,16,36,.35)),linear-gradient(0deg,rgba(3,16,36,.65),transparent 50%); }
  .cc-detail-section--navy .cc-h2 { overflow-wrap: anywhere; }
  .cc-family-nav__links { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .cc-plan-board { grid-template-columns: 108px minmax(490px,1fr); overflow-x: auto; }
  .cc-plan-rooms { position: sticky; left: 0; z-index: 2; background: var(--cc-white); }
  .cc-plan-room { font-size: 14px; padding-inline: 16px; }
  .cc-process { gap: 0; grid-template-columns: 1fr; }
  .cc-process__item { border-top: 1px solid var(--cc-line); padding: 22px 0; }
  .cc-process__arrow { padding: 0; transform: rotate(90deg); width: 25px; }
  .cc-status-layout,.cc-sign-detail,.cc-route-layout { grid-template-columns: 1fr; }
  .cc-signage-event { grid-template-columns: 72px 1fr; }
  .cc-signage-event span { grid-column: 2; }
  .cc-link-band { grid-template-columns: 1fr; }
  .cc-link-band__copy { padding-right: 0; }
  .cc-link-band a { border-left: 0; border-top: 1px solid rgba(255,255,255,.14); padding-left: 0; }
  .cc-detail-cta .cc-container { align-items: start; grid-template-columns: 1fr; }
  .cc-detail-cta .cc-btns > .maintenance-sonetix-email-protect,
  .cc-detail-cta .maintenance-sonetix-email-protect-link { width: 100%; }
}

@media (max-width: 520px) {
  .cc-detail-hero__copy .cc-display { font-size: 45px; }
  .cc-detail-hero--photo,.cc-detail-hero--photo .cc-detail-hero__copy { min-height: 680px; }
  .cc-detail-hero--photo .cc-detail-hero__copy { width: 100%; }
  .cc-family-nav__links { grid-template-columns: 1fr; }
  .cc-family-nav a[aria-current="page"]::after { bottom: -4px; right: auto; width: 40px; }
  .cc-room-card__top,.cc-room-state { padding-inline: 25px; }
  .cc-audience { gap: 10px; grid-template-columns: 1fr; }
  .cc-audience p:not(:empty) { grid-column: 1; }
  .cc-signage-event { align-items: start; grid-template-columns: 1fr; }
  .cc-signage-event span { grid-column: auto; }
  .cc-data-stack__item { padding-inline: 20px; }
}
