/* Polaris-themed campus directory styles (derived from site tokens) */
.campuses-hero {
  padding: 72px 0 48px;
  background: linear-gradient(180deg,#f4f8ff 0%,#fff 60%);
  text-align: center;
}
.campuses-hero .h-sub { letter-spacing: .24em; color: #3b4f6f; font-weight:700; }
.campuses-hero h1 { font-size: clamp(2.2rem,5vw,3.6rem); margin: 12px 0 8px; color:#0f2447; }
.campuses-hero p.lead { max-width: 980px; margin: 0 auto; color:#425277; font-size:1.05rem; }

.campus-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 20px;
  align-items: stretch;
}
.campus-card {
  position: relative;
  overflow: hidden;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 46px rgba(11,28,50,0.06);
  transition: transform .32s ease, box-shadow .32s ease;
  display: flex;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
}
.campus-card .card-media { height: 220px; overflow:hidden; }
.campus-card .card-media img { width:100%; height:100%; object-fit:cover; transform:scale(1); transition: transform .8s ease; display:block; }
.campus-card .card-body { padding: 18px 18px 22px; flex:1 1 auto; display:flex; flex-direction:column; }
.campus-card h3 { margin:0 0 6px; font-size:1.15rem; color:#0f2447; }
.campus-card .location { color:#6b7b95; font-size:.95rem; margin-bottom:10px; }
.campus-card p.desc { color:#425277; font-size:.95rem; margin-bottom:12px; flex:1 1 auto; }
.campus-card .explore { margin-top:12px; align-self:flex-start; display:inline-flex; gap:8px; align-items:center; font-weight:700; color:#0f2447; text-decoration:none; }
.campus-card .explore .arrow { transition: transform .28s ease; }

.campus-card:hover { transform: translateY(-6px); box-shadow:0 32px 80px rgba(11,28,50,0.12); }
.campus-card:hover .card-media img { transform: scale(1.06); }
.campus-card:hover .explore .arrow { transform: translateX(6px); }

/* Layout variants */
.card--feature { grid-column: span 12; display:grid; grid-template-columns: 1fr 560px; gap:20px; }
.card--feature .card-media { height: 360px; }
.card--feature .card-body { padding:28px; }

.card--pair { grid-column: span 6; }

/* Responsive */
@media (max-width:1100px){
  .card--feature { grid-column: span 12; grid-template-columns: 1fr; }
  .card--pair { grid-column: span 6; }
}
@media (max-width:700px){
  .campuses-hero { padding: 48px 16px; }
  .campus-grid { grid-template-columns: repeat(2,1fr); gap:12px; }
  .card--pair { grid-column: span 2; }
  .card--feature { grid-column: span 2; }
  .card--feature .card-media { height:200px; }
}

/* Map placeholder */
.campus-map { padding:40px 0; background: linear-gradient(180deg,#fff 0%, #f6f9ff 100%); }
.map-placeholder { position:relative; width:100%; height:clamp(360px, 65vh, 720px); background:#e9f1ff; border-radius:12px; box-shadow:0 18px 46px rgba(11,28,50,0.08); overflow:hidden; }
.map-placeholder iframe { display:block; width:100%; height:100%; border:0; }

@media (max-width:700px){
  .map-placeholder { height:clamp(320px, 58vh, 520px); }
}

/* CTA */
.campus-cta { padding:56px 0; text-align:center; }
.campus-cta .btn { display:inline-block; margin:12px; padding:12px 20px; border-radius:10px; text-decoration:none; font-weight:700; }
.campus-cta .btn-primary { background:var(--pol-gold, #d3a55f); color:#072040; }
.campus-cta .btn-secondary { border:1px solid rgba(7,32,64,0.08); color:#072040; background:#fff; }

/* Reveal helpers */
.on-scroll { opacity:0; transform: translateY(24px); transition: all .8s cubic-bezier(.22,1,.36,1); }
.on-scroll.in-view { opacity:1; transform:none; }
