/* ==========================================================================
   MSS Campus Locator — front-end styles
   Every selector is scoped under .mss-locator so the theme can't leak in
   and this can't leak out.
   ========================================================================== */

.mss-locator{
  --mss-green:#1a6b42;
  --mss-green-dk:#11492d;
  --mss-purple:#5b2c8d;
  --mss-orange:#f26c21;
  --mss-ink:#232132;
  --mss-muted:#66637a;
  --mss-line:#e6e2ee;
  --mss-tint:#f8f6fc;
  --mss-band:linear-gradient(100deg,#5b2c8d 0%,#9c2b80 32%,#dd3529 68%,#f58220 100%);
  --mss-radius:14px;
  --mss-shadow:0 12px 34px rgba(46,26,80,.12);
  --mss-shadow-sm:0 4px 14px rgba(46,26,80,.08);

  font-family:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--mss-ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.mss-locator *,
.mss-locator *::before,
.mss-locator *::after{box-sizing:border-box;}

.mss-locator p{margin:0 0 1rem;}
.mss-locator h2,
.mss-locator h3{margin:0;line-height:1.25;font-weight:600;letter-spacing:-.01em;color:inherit;}
.mss-locator ul{margin:0;padding:0;}

.mss-locator .mss-wrap{width:100%;max-width:1180px;margin-inline:auto;padding-inline:20px;}

.mss-locator :focus-visible{
  outline:3px solid var(--mss-orange);
  outline-offset:2px;
  border-radius:6px;
}

/* --- Head band ----------------------------------------------------------- */
.mss-locator .mss-head{
  background:var(--mss-band);
  padding:56px 0 96px;
  position:relative;
  overflow:hidden;
}
.mss-locator .mss-head::after{
  content:"";
  position:absolute;
  inset:auto -40px -30px auto;
  width:260px;height:160px;
  background-image:radial-gradient(rgba(255,255,255,.35) 1.6px,transparent 1.6px);
  background-size:16px 16px;
  opacity:.7;
  pointer-events:none;
}
.mss-locator .mss-head h2{
  color:#fff;
  font-size:clamp(1.9rem,4.4vw,2.8rem);
  font-weight:700;
  max-width:16ch;
}
.mss-locator .mss-head-note{
  color:rgba(255,255,255,.92);
  max-width:60ch;
  margin:1rem 0 0;
  font-size:1.02rem;
}

/* --- Intro + stats ------------------------------------------------------- */
.mss-locator .mss-intro{padding:44px 0 8px;}
.mss-locator .mss-intro p{max-width:72ch;color:var(--mss-muted);}

.mss-locator .mss-stats{
  display:flex;
  flex-wrap:wrap;
  gap:14px 40px;
  margin:26px 0 0;
  list-style:none;
}
.mss-locator .mss-stats li{display:flex;flex-direction:column;}
.mss-locator .mss-stats b{
  font-size:1.55rem;
  font-weight:700;
  color:var(--mss-green);
  line-height:1.1;
}
.mss-locator .mss-stats span{font-size:.85rem;color:var(--mss-muted);}

/* --- Filter panel -------------------------------------------------------- */
.mss-locator .mss-panel{
  position:relative;
  margin-top:-56px;
  background:#fff;
  border-radius:18px;
  box-shadow:var(--mss-shadow);
  padding:26px 24px 24px;
}
.mss-locator .mss-panel--flat{
  margin-top:0;
  border:1px solid var(--mss-line);
  box-shadow:var(--mss-shadow-sm);
}
.mss-locator .mss-panel-title{
  font-size:1.05rem;
  font-weight:600;
  color:var(--mss-green);
  margin-bottom:18px;
}
.mss-locator .mss-panel-actions{margin-top:18px;display:flex;flex-wrap:wrap;gap:12px;}

.mss-locator .mss-fields{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  align-items:end;
}
.mss-locator .mss-label{
  display:block;
  font-size:.82rem;
  font-weight:500;
  color:var(--mss-muted);
  margin-bottom:6px;
}

.mss-locator .mss-text{
  width:100%;
  height:46px;
  border:1px solid var(--mss-line);
  border-radius:10px;
  padding:0 14px;
  font:inherit;
  font-size:.92rem;
  color:var(--mss-ink);
  background:#fff;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.mss-locator .mss-text::placeholder{color:#a5a1b4;}
.mss-locator .mss-text:focus{
  border-color:var(--mss-purple);
  box-shadow:0 0 0 3px rgba(91,44,141,.12);
  outline:none;
}

/* --- Searchable select --------------------------------------------------- */
.mss-locator .mss-select{position:relative;}
.mss-locator .mss-select__trigger{
  width:100%;
  height:46px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border:1px solid var(--mss-line);
  border-radius:10px;
  background:#fff;
  padding:0 12px 0 14px;
  font:inherit;
  font-size:.92rem;
  color:var(--mss-ink);
  cursor:pointer;
  text-align:left;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.mss-locator .mss-select__trigger:hover{border-color:#cfc8de;}
.mss-locator .mss-select.is-open .mss-select__trigger{
  border-color:var(--mss-purple);
  box-shadow:0 0 0 3px rgba(91,44,141,.12);
}
.mss-locator .mss-select__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mss-locator .mss-select__value[data-empty="true"]{color:#a5a1b4;}
.mss-locator .mss-select__caret{
  flex:none;width:14px;height:14px;
  color:var(--mss-purple);
  transition:transform .18s ease;
}
.mss-locator .mss-select.is-open .mss-select__caret{transform:rotate(180deg);}

.mss-locator .mss-select__panel{
  position:absolute;
  z-index:40;
  top:calc(100% + 6px);
  left:0;right:0;
  background:#fff;
  border:1px solid var(--mss-line);
  border-radius:12px;
  box-shadow:var(--mss-shadow);
  padding:8px;
  display:none;
}
.mss-locator .mss-select.is-open .mss-select__panel{display:block;}
.mss-locator .mss-select__search{position:relative;margin-bottom:6px;}
.mss-locator .mss-select__search input{
  width:100%;
  height:38px;
  border:1px solid var(--mss-line);
  border-radius:8px;
  padding:0 34px 0 12px;
  font:inherit;
  font-size:.88rem;
}
.mss-locator .mss-select__search input:focus{border-color:var(--mss-purple);outline:none;}
.mss-locator .mss-select__search svg{
  position:absolute;
  right:11px;top:50%;
  transform:translateY(-50%);
  width:14px;height:14px;
  color:#9d99ac;
  pointer-events:none;
}
.mss-locator .mss-select__options{
  list-style:none;
  margin:0;padding:0;
  max-height:224px;
  overflow-y:auto;
}
.mss-locator .mss-select__options li{
  padding:9px 12px;
  border-radius:8px;
  font-size:.9rem;
  cursor:pointer;
}
.mss-locator .mss-select__options li[aria-selected="true"]{
  color:var(--mss-green);
  font-weight:600;
  background:#eef6f1;
}
.mss-locator .mss-select__options li.is-active{background:var(--mss-purple);color:#fff;}
.mss-locator .mss-select__options li.is-empty{color:var(--mss-muted);cursor:default;font-size:.86rem;}

/* --- Buttons ------------------------------------------------------------- */
.mss-locator .mss-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  height:46px;
  padding:0 22px;
  border-radius:10px;
  border:1px solid transparent;
  font:inherit;
  font-size:.92rem;
  font-weight:600;
  cursor:pointer;
  text-decoration:none;
  transition:filter .15s ease,background-color .15s ease,color .15s ease;
}
.mss-locator .mss-btn--ghost{background:#fff;border-color:var(--mss-line);color:var(--mss-muted);}
.mss-locator .mss-btn--ghost:hover{border-color:var(--mss-orange);color:var(--mss-orange);}
.mss-locator .mss-btn--solid{
  background:linear-gradient(90deg,var(--mss-purple),var(--mss-orange));
  color:#fff;
}
.mss-locator .mss-btn--solid:hover{filter:brightness(1.06);color:#fff;}
.mss-locator .mss-btn--outline{background:#fff;border-color:var(--mss-green);color:var(--mss-green);}
.mss-locator .mss-btn--outline:hover{background:var(--mss-green);color:#fff;}

/* --- Results ------------------------------------------------------------- */
.mss-locator .mss-results{padding:34px 0 60px;}
.mss-locator .mss-results-bar{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  margin-bottom:14px;
}
.mss-locator .mss-count{font-size:.92rem;color:var(--mss-muted);margin:0;}
.mss-locator .mss-count b{color:var(--mss-ink);font-weight:600;}
.mss-locator .mss-scope{font-size:.85rem;color:var(--mss-purple);font-weight:500;}

.mss-locator .mss-tablewrap{
  border:1px solid var(--mss-line);
  border-radius:var(--mss-radius);
  overflow:hidden;
  box-shadow:var(--mss-shadow-sm);
  background:#fff;
}
.mss-locator .mss-province-group + .mss-province-group{
  border-top:1px solid var(--mss-line);
}
.mss-locator .mss-province-heading{
  margin:0;
  padding:14px 18px;
  font-size:1rem;
  font-weight:600;
  color:#fff;
  background:var(--mss-purple);
  border-bottom:1px solid var(--mss-line);
}
.mss-locator .mss-table{width:100%;border-collapse:collapse;font-size:.93rem;margin:0;table-layout:fixed;}
.mss-locator .mss-table th:nth-child(1),
.mss-locator .mss-table td:nth-child(1){width:35%;}
.mss-locator .mss-table th:nth-child(2),
.mss-locator .mss-table td:nth-child(2){width:33%;}
.mss-locator .mss-table th:nth-child(3),
.mss-locator .mss-table td:nth-child(3){width:18%;}
.mss-locator .mss-table thead th{
  background:var(--mss-tint);
  color:var(--mss-green);
  font-weight:600;
  font-size:.86rem;
  text-align:left;
  padding:14px 18px;
  border-bottom:1px solid var(--mss-line);
  white-space:nowrap;
}
.mss-locator .mss-table tbody td{
  padding:16px 18px;
  border-bottom:1px solid var(--mss-line);
  vertical-align:top;
  color:var(--mss-muted);
}
.mss-locator .mss-table tbody tr:last-child td{border-bottom:none;}
.mss-locator .mss-table tbody tr:hover td{background:#fcfbfe;}
.mss-locator .mss-campus-name{color:var(--mss-ink);font-weight:600;display:block;}
.mss-locator .mss-campus-area{font-size:.82rem;color:var(--mss-purple);display:block;margin-top:2px;}
.mss-locator .mss-phone{color:var(--mss-ink);text-decoration:none;font-weight:500;white-space:nowrap;}
.mss-locator .mss-phone:hover{color:var(--mss-orange);}
.mss-locator .mss-nophone{color:#a5a1b4;}
.mss-locator .mss-pin{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;height:38px;
  border-radius:50%;
  background:var(--mss-tint);
  color:var(--mss-purple);
  transition:background-color .15s ease,color .15s ease;
}
.mss-locator .mss-pin:hover{background:var(--mss-purple);color:#fff;}
.mss-locator .mss-pin svg{width:17px;height:17px;}
.mss-locator .mss-col-map{width:14%;text-align:center;}

.mss-locator .mss-empty{text-align:center;padding:56px 24px;background:#fff;}
.mss-locator .mss-empty h3{font-size:1.1rem;margin-bottom:.4rem;}
.mss-locator .mss-empty p{color:var(--mss-muted);max-width:44ch;margin:0 auto 1.2rem;font-size:.94rem;}

/* --- CTA ----------------------------------------------------------------- */
.mss-locator .mss-cta{
  background:var(--mss-tint);
  border-radius:18px;
  padding:34px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-bottom:64px;
}
.mss-locator .mss-cta h3{font-size:1.3rem;color:var(--mss-green);margin-bottom:.35rem;}
.mss-locator .mss-cta p{color:var(--mss-muted);margin:0;max-width:52ch;font-size:.95rem;}

/* --- Responsive ---------------------------------------------------------- */
@media (max-width:980px){
  .mss-locator .mss-fields{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:620px){
  .mss-locator .mss-head{padding:40px 0 84px;}
  .mss-locator .mss-panel{padding:22px 18px;margin-top:-52px;}
  .mss-locator .mss-panel--flat{margin-top:0;}
  .mss-locator .mss-fields{grid-template-columns:1fr;}
  .mss-locator .mss-btn{width:100%;}

  .mss-locator .mss-tablewrap{border:none;box-shadow:none;border-radius:0;overflow:visible;background:none;}
  .mss-locator .mss-province-group{margin-bottom:28px;}
  .mss-locator .mss-province-group:last-child{margin-bottom:0;}
  .mss-locator .mss-province-group + .mss-province-group{border-top:none;}
  .mss-locator .mss-province-heading{background:none;color:var(--mss-green);border-bottom:1px solid var(--mss-line);padding:0 0 10px;margin-bottom:14px;}
  .mss-locator .mss-table thead{
    position:absolute;width:1px;height:1px;overflow:hidden;
    clip:rect(0 0 0 0);white-space:nowrap;
  }
  .mss-locator .mss-table,
  .mss-locator .mss-table tbody,
  .mss-locator .mss-table tr,
  .mss-locator .mss-table td{display:block;width:100%;}
  .mss-locator .mss-table tbody tr{
    border:1px solid var(--mss-line);
    border-radius:var(--mss-radius);
    box-shadow:var(--mss-shadow-sm);
    padding:16px 18px;
    margin-bottom:14px;
    background:#fff;
  }
  .mss-locator .mss-table tbody td{border:none;padding:6px 0;}
  .mss-locator .mss-table tbody tr:hover td{background:none;}
  .mss-locator .mss-table tbody td[data-label]::before{
    content:attr(data-label);
    display:block;
    font-size:.72rem;
    font-weight:600;
    color:var(--mss-purple);
    margin-bottom:2px;
  }
  .mss-locator .mss-col-map{width:auto;text-align:left;}
  .mss-locator .mss-cta{padding:26px 20px;}
}

@media (prefers-reduced-motion:reduce){
  .mss-locator *{transition:none !important;animation:none !important;}
}

/* ==========================================================================
   Single campus page
   ========================================================================== */

.mss-locator.mss-single{padding:36px 0 64px;}

.mss-locator .mss-breadcrumb{
  font-size:.85rem;
  color:var(--mss-muted);
  margin-bottom:18px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
}
.mss-locator .mss-breadcrumb a{color:var(--mss-purple);text-decoration:none;}
.mss-locator .mss-breadcrumb a:hover{text-decoration:underline;}
.mss-locator .mss-breadcrumb span[aria-hidden]{color:#c9c4d6;}

.mss-locator .mss-campus-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,440px);
  gap:0;
  border:1px solid var(--mss-line);
  border-radius:18px;
  overflow:hidden;
  background:#fff;
  box-shadow:var(--mss-shadow-sm);
}

.mss-locator .mss-campus-info{padding:36px 34px;}

.mss-locator .mss-campus-eyebrow{
  font-size:.8rem;
  font-weight:600;
  color:var(--mss-orange);
  margin:0 0 .35rem;
}
.mss-locator .mss-campus-title-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 .5rem;
}
.mss-locator .mss-campus-title{
  font-size:clamp(1.5rem,3.2vw,2.05rem);
  font-weight:700;
  color:var(--mss-green);
  line-height:1.2;
  margin:0;
}
.mss-locator .mss-status-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 12px;
  border-radius:999px;
  font-size:.76rem;
  font-weight:600;
  line-height:1;
  white-space:nowrap;
}
.mss-locator .mss-status-badge__icon{width:13px;height:13px;flex:none;}
.mss-locator .mss-status-badge--coming-soon{
  background:#f1f335;
  color:#1a1a1a;
}
.mss-locator .mss-campus-place{
  font-size:.95rem;
  color:var(--mss-purple);
  margin:0 0 1.5rem;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.mss-locator .mss-campus-place span{
  font-size:.78rem;
  color:var(--mss-muted);
  background:var(--mss-tint);
  border-radius:20px;
  padding:3px 12px;
}

.mss-locator .mss-campus-meta{
  display:grid;
  grid-template-columns:104px minmax(0,1fr);
  gap:12px 16px;
  margin:0 0 26px;
  font-size:.95rem;
}
.mss-locator .mss-campus-meta dt{color:var(--mss-ink);font-weight:600;}
.mss-locator .mss-campus-meta dd{margin:0;color:var(--mss-muted);}
.mss-locator .mss-campus-meta a{color:var(--mss-purple);text-decoration:none;}
.mss-locator .mss-campus-meta a:hover{color:var(--mss-orange);text-decoration:underline;}

.mss-locator .mss-campus-body{color:var(--mss-muted);margin-bottom:24px;}
.mss-locator .mss-campus-body p:last-child{margin-bottom:0;}

.mss-locator .mss-campus-actions{display:flex;flex-wrap:wrap;gap:12px;}

.mss-locator .mss-campus-map{position:relative;min-height:340px;background:var(--mss-tint);}
.mss-locator .mss-campus-map iframe{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  border:0;
  display:block;
}

/* --- Other campuses in this city ----------------------------------------- */
.mss-locator .mss-nearby{margin-top:40px;}
.mss-locator .mss-nearby h2{
  font-size:1.15rem;
  color:var(--mss-green);
  margin-bottom:16px;
}
.mss-locator .mss-nearby ul{
  list-style:none;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:14px;
}
.mss-locator .mss-nearby a{
  display:block;
  padding:16px 18px;
  border:1px solid var(--mss-line);
  border-radius:var(--mss-radius);
  text-decoration:none;
  background:#fff;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.mss-locator .mss-nearby a:hover{
  border-color:var(--mss-purple);
  box-shadow:var(--mss-shadow-sm);
}
.mss-locator .mss-nearby strong{display:block;color:var(--mss-ink);font-weight:600;font-size:.95rem;}
.mss-locator .mss-nearby span{display:block;color:var(--mss-muted);font-size:.85rem;margin-top:3px;}

.mss-locator .mss-backlink{margin-top:32px;font-size:.92rem;}
.mss-locator .mss-backlink a{color:var(--mss-purple);text-decoration:none;font-weight:500;}
.mss-locator .mss-backlink a:hover{text-decoration:underline;}

/* clickable campus name in the results table */
.mss-locator a.mss-campus-name{text-decoration:none;}
.mss-locator a.mss-campus-name:hover{color:var(--mss-purple);text-decoration:underline;}

@media (max-width:860px){
  .mss-locator .mss-campus-card{grid-template-columns:1fr;}
  .mss-locator .mss-campus-map{min-height:280px;order:-1;}
  .mss-locator .mss-campus-info{padding:28px 22px;}
  .mss-locator .mss-campus-meta{grid-template-columns:1fr;gap:2px 0;}
  .mss-locator .mss-campus-meta dd{margin-bottom:10px;}
}
