/* PPDB Home Campus Flat Glass UI v9.6
 * Scope: campus directory only. Existing Home design remains untouched.
 */
[data-campus-directory-flat] .home-campus-toolbar {
  transition: border-color .28s ease, box-shadow .28s ease, background .28s ease, transform .28s ease;
}

[data-campus-directory-flat] [data-campus-toolbar-flat].is-active {
  border-color: rgba(0, 136, 218, .52);
  background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(238,249,255,.86));
  box-shadow:
    0 18px 48px rgba(7, 89, 145, .14),
    0 0 0 1px rgba(22, 160, 225, .16),
    0 0 34px rgba(0, 149, 226, .13);
}

[data-campus-directory-flat] [data-campus-toolbar-flat].is-active .home-campus-filter-icon {
  box-shadow:
    0 12px 30px rgba(4, 91, 153, .25),
    0 0 0 5px rgba(9, 155, 222, .10),
    0 0 24px rgba(0, 155, 232, .24);
}

[data-campus-directory-flat] [data-campus-toolbar-flat].is-active select {
  border-color: rgba(0, 132, 211, .74);
  background: rgba(255,255,255,.96);
  box-shadow:
    0 0 0 4px rgba(5, 145, 218, .11),
    0 0 24px rgba(0, 147, 226, .16);
}

[data-campus-directory-flat] [data-campus-toolbar-flat].is-pulsing {
  animation: campusSelectGlow .58s cubic-bezier(.2,.78,.2,1);
}

.home-campus-flat-shell {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 24px;
  border: 1px solid rgba(255,255,255,.82);
  border-radius: 30px;
  background:
    radial-gradient(circle at 6% 5%, rgba(0, 167, 230, .13), transparent 30%),
    radial-gradient(circle at 93% 96%, rgba(255, 210, 61, .16), transparent 28%),
    linear-gradient(145deg, rgba(255,255,255,.72), rgba(238,247,252,.50));
  box-shadow:
    0 24px 66px rgba(21, 71, 107, .10),
    inset 0 1px 0 rgba(255,255,255,.96);
  -webkit-backdrop-filter: blur(22px) saturate(145%);
  backdrop-filter: blur(22px) saturate(145%);
}

.home-campus-flat-shell::before,
.home-campus-flat-shell::after {
  position: absolute;
  z-index: -1;
  border-radius: 50%;
  content: "";
  pointer-events: none;
  filter: blur(2px);
}

.home-campus-flat-shell::before {
  top: -120px;
  right: -80px;
  width: 280px;
  height: 280px;
  background: rgba(0, 147, 219, .08);
}

.home-campus-flat-shell::after {
  bottom: -140px;
  left: -90px;
  width: 300px;
  height: 300px;
  background: rgba(255, 205, 44, .08);
}

.home-campus-flat-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  margin-bottom: 21px;
  padding: 0 2px 18px;
  border-bottom: 1px solid rgba(177, 205, 224, .58);
}

.home-campus-flat-heading-icon {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.78);
  border-radius: 17px;
  color: #fff;
  background: linear-gradient(145deg, #073b70, #058fd0);
  box-shadow: 0 12px 28px rgba(5, 90, 148, .22), inset 0 1px 0 rgba(255,255,255,.22);
}

.home-campus-flat-heading-icon svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.home-campus-flat-heading span {
  display: block;
  margin-bottom: 3px;
  color: #0875bb;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.home-campus-flat-heading h3 {
  margin: 0;
  color: #092f56;
  font-size: clamp(21px, 2.1vw, 27px);
  line-height: 1.15;
  letter-spacing: -.025em;
}

.home-campus-flat-heading p {
  margin: 6px 0 0;
  color: #5c7184;
  font-size: 11px;
  line-height: 1.55;
}

.home-campus-grid-flat {
  align-items: stretch;
}

.home-campus-card-glass {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.80) !important;
  background:
    linear-gradient(145deg, rgba(255,255,255,.76), rgba(231,244,252,.50)) !important;
  box-shadow:
    0 16px 42px rgba(17, 66, 101, .10),
    inset 0 1px 0 rgba(255,255,255,.96) !important;
  -webkit-backdrop-filter: blur(20px) saturate(145%);
  backdrop-filter: blur(20px) saturate(145%);
  transition:
    transform .3s cubic-bezier(.2,.8,.2,1),
    border-color .3s ease,
    box-shadow .3s ease,
    opacity .24s ease;
}

.home-campus-card-glass[hidden] {
  display: none !important;
}

.home-campus-card-glass::before {
  top: 0 !important;
  right: 12% !important;
  left: 12% !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.98), transparent) !important;
}

.home-campus-card-glass::after {
  right: -55px !important;
  bottom: -62px !important;
  width: 160px !important;
  height: 160px !important;
  background: rgba(5, 150, 218, .10) !important;
  filter: blur(10px) !important;
}

.home-campus-card-glass:hover {
  transform: translateY(-8px) scale(1.008) !important;
  border-color: rgba(92, 190, 234, .72) !important;
  box-shadow:
    0 28px 66px rgba(13, 67, 105, .18),
    0 0 0 1px rgba(255,255,255,.72),
    inset 0 1px 0 #fff !important;
}

.home-campus-card-glass .home-campus-copy {
  background: linear-gradient(180deg, rgba(255,255,255,.44), rgba(245,251,255,.22));
}

.home-campus-glass-sheen {
  position: absolute;
  z-index: 3;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(112deg, transparent 18%, rgba(255,255,255,.15) 44%, rgba(255,255,255,.42) 50%, rgba(255,255,255,.12) 57%, transparent 78%);
  transform: translateX(-125%);
  transition: transform .8s cubic-bezier(.2,.7,.2,1);
}

.home-campus-card-glass:hover .home-campus-glass-sheen,
.home-campus-card-glass.is-filter-match .home-campus-glass-sheen {
  transform: translateX(125%);
}

.home-campus-flat-shell.is-filtered .home-campus-card-glass.is-filter-match {
  border-color: rgba(70, 188, 239, .88) !important;
  box-shadow:
    0 22px 58px rgba(4, 85, 139, .18),
    0 0 0 1px rgba(0, 155, 226, .23),
    0 0 34px rgba(0, 160, 232, .20),
    inset 0 1px 0 rgba(255,255,255,.98) !important;
  animation: campusCardGlowIn .58s cubic-bezier(.2,.8,.2,1) both;
}

.home-campus-flat-shell.is-filtered .home-campus-card-glass.is-filter-match::after {
  background: rgba(3, 161, 230, .18) !important;
  transform: scale(1.28);
  opacity: .95;
}

.home-campus-card-glass.is-filter-enter {
  animation: campusFlatEnter .42s cubic-bezier(.2,.78,.2,1) both;
  animation-delay: var(--campus-delay, 0ms);
}

@keyframes campusFlatEnter {
  from { opacity: 0; transform: translateY(16px) scale(.975); }
  to { opacity: 1; transform: none; }
}

@keyframes campusCardGlowIn {
  0% { opacity: .58; transform: translateY(13px) scale(.976); filter: saturate(.82); }
  65% { opacity: 1; transform: translateY(-2px) scale(1.006); filter: saturate(1.08); }
  100% { opacity: 1; transform: none; filter: none; }
}

@keyframes campusSelectGlow {
  0% { transform: scale(.995); }
  45% { transform: scale(1.006); box-shadow: 0 20px 55px rgba(0, 132, 205, .20), 0 0 38px rgba(0, 157, 230, .19); }
  100% { transform: none; }
}

@media (max-width: 760px) {
  .home-campus-flat-shell {
    padding: 17px;
    border-radius: 23px;
  }

  .home-campus-flat-heading {
    align-items: start;
    margin-bottom: 17px;
    padding-bottom: 15px;
  }

  .home-campus-flat-heading-icon {
    width: 45px;
    height: 45px;
    border-radius: 14px;
  }

  .home-campus-flat-heading p {
    font-size: 10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  [data-campus-directory-flat] *,
  [data-campus-directory-flat] *::before,
  [data-campus-directory-flat] *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}

/* v9.6.2 — Keep campus action buttons crisp on card hover.
 * The glass effect remains on the card surface, not on the buttons.
 */
.home-campus-card-glass > .home-campus-media,
.home-campus-card-glass > .home-campus-copy {
  position: relative;
  z-index: 2;
}

.home-campus-card-glass .home-campus-glass-sheen {
  z-index: 1;
}

.home-campus-card-glass:hover {
  /* Scaling the whole card can rasterize button text on some browsers. */
  transform: translateY(-8px) !important;
}

.home-campus-card-glass .home-campus-actions {
  position: relative;
  z-index: 6;
  isolation: isolate;
}

.home-campus-card-glass .home-campus-register,
.home-campus-card-glass .home-campus-register:hover,
.home-campus-card-glass .home-campus-register:focus,
.home-campus-card-glass .home-campus-register:focus-visible,
.home-campus-card-glass .home-campus-register:active {
  opacity: 1 !important;
  filter: none !important;
  -webkit-filter: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  text-shadow: none !important;
  transform: translateZ(0);
  -webkit-font-smoothing: antialiased;
  backface-visibility: hidden;
}

.home-campus-card-glass .home-campus-register:hover,
.home-campus-card-glass .home-campus-register:focus-visible {
  transform: translateY(-2px) translateZ(0) !important;
  box-shadow:
    0 13px 28px rgba(5, 55, 94, .20),
    0 0 0 3px rgba(255,255,255,.26) !important;
}

.home-campus-card-glass .home-btn-navy,
.home-campus-card-glass .home-btn-campus-new {
  background-clip: padding-box !important;
}

.home-campus-card-glass .home-btn-navy:hover,
.home-campus-card-glass .home-btn-navy:focus-visible {
  background: linear-gradient(145deg, #072f59, #075f98) !important;
  color: #fff !important;
}

.home-campus-card-glass .home-btn-campus-new:hover,
.home-campus-card-glass .home-btn-campus-new:focus-visible {
  background: linear-gradient(145deg, #ffd94f, #f4bd14) !important;
  color: #092f56 !important;
}
