
:root{
  --pt-red:#C63527;
  --sos-navy:#0B1C3D;
  --ink:#0b0d10;
  --bg:#07090c;
  --text:#f3f6fb;
  --muted:rgba(243,246,251,.72);
  --border:rgba(255,255,255,.12);
  --card:rgba(255,255,255,.06);
  --card2:rgba(255,255,255,.03);
  --shadow: 0 24px 80px rgba(0,0,0,.55);
  --r:18px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(900px 520px at 15% 10%, rgba(198,53,39,.25), transparent 60%),
    radial-gradient(760px 520px at 85% 18%, rgba(11,28,61,.30), transparent 65%),
    var(--bg);
  color:var(--text);
}
a{color:inherit}
.container{max-width:1180px;margin:0 auto;padding:0 18px}
.top{
  position:sticky;top:0;z-index:30;
  backdrop-filter: blur(14px);
  background: linear-gradient(180deg, rgba(7,9,12,.92), rgba(7,9,12,.55));
  border-bottom:1px solid rgba(255,255,255,.06);
}
.topInner{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0}
.brand{display:flex;align-items:center;gap:10px}
.badge{
  width:40px;height:40px;border-radius:12px;
  display:grid;place-items:center;
  font-weight:900;
  background: linear-gradient(135deg, var(--sos-navy), var(--pt-red));
  box-shadow: 0 14px 36px rgba(198,53,39,.20);
}
.brandText strong{font-weight:900;letter-spacing:-.02em}
.brandText div{font-size:12.5px;color:var(--muted);margin-top:2px}
.nav{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 18px;
  border-radius:999px;
  border:1px solid var(--border);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  color:var(--text);
  text-decoration:none;
  font-weight:800;
  font-size:13px;
}

.pantherLogo{
  width:34px;
  height:34px;
  object-fit:contain;
  filter: drop-shadow(0 6px 18px rgba(0,0,0,.55));
}

.pantherLogo{
  width:34px;
  height:34px;
  object-fit:contain;
  filter: drop-shadow(0 6px 18px rgba(0,0,0,.55));
}
.btn.primary{background:linear-gradient(135deg,var(--pt-red),#9f2a1f);border-color:rgba(198,53,39,.7)}
.btn.navy{background:linear-gradient(135deg,var(--sos-navy),#162e63);border-color:rgba(70,105,175,.5)}
.btn.ghost{background:transparent}
.heroWrap{padding:22px 0 14px}
.hero{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap:18px;
  align-items:stretch;
}
.card{
  border:1px solid var(--border);
  background: linear-gradient(180deg, var(--card), var(--card2));
  border-radius: var(--r);
  box-shadow: var(--shadow);
  overflow:hidden;
}
.pad{padding:18px}
.kicker{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 12px;border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.22);
  color:var(--muted);
  font-weight:900;
  font-size:12.5px;
}
.kicker.red{border-color:rgba(198,53,39,.55);background:linear-gradient(135deg, rgba(198,53,39,.22), rgba(11,28,61,.20))}
h1{
  margin:12px 0 10px;
  font-size: clamp(30px, 3.6vw, 48px);
  letter-spacing:-.04em;
  line-height:1.03;
  font-family:"Playfair Display", Georgia, "Times New Roman", serif;
}
h1 .accent{color:var(--pt-red)}
.sub{
  color:var(--muted);
  font-size:16px;
  margin:0 0 14px;
}
.quickGrid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:10px;
  margin-top:14px;
}
.pill{
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.22);
  border-radius:14px;
  padding:10px 12px;
}
.pill strong{display:block;font-weight:900}
.pill span{color:var(--muted);font-size:12.5px}
.steps{
  margin-top:14px;
  display:grid;
  gap:10px;
}
.step{
  display:flex;gap:12px;align-items:flex-start;
  padding:12px;border-radius:16px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.20);
}
.num{
  width:30px;height:30px;border-radius:10px;
  display:grid;place-items:center;
  background: rgba(198,53,39,.18);
  border:1px solid rgba(198,53,39,.35);
  font-weight:900;
}
.step p{margin:0;color:var(--muted)}
.media{
  width:100%;
  aspect-ratio: 16/10;
  object-fit: contain;
  display:block;
}
.media.contain{object-fit:contain;background:#000}
.section{padding:18px 0}
.sectionTitle{
  font-family:"Playfair Display", Georgia, serif;
  font-weight:900;
  letter-spacing:-.02em;
  margin:0 0 12px;
  font-size:24px;
}
.grid2{display:grid;grid-template-columns: 1fr 1fr;gap:16px}
.feature{
  display:flex;gap:12px;
  padding:14px;border-radius:16px;
  border:1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.18);
}
.ico{
  width:38px;height:38px;border-radius:14px;
  display:grid;place-items:center;
  background: rgba(11,28,61,.28);
  border:1px solid rgba(70,105,175,.35);
  font-weight:900;
}
.feature h3{margin:0 0 4px;font-size:15px}
.feature p{margin:0;color:var(--muted);font-size:13.5px}
.videoWrap{border-radius:var(--r);overflow:hidden;border:1px solid var(--border);background:#000;box-shadow:var(--shadow)}
.video{width:100%;aspect-ratio:16/9;border:0;display:block}
.footer{
  padding:18px 0 74px;
  color:var(--muted);
  border-top:1px solid rgba(255,255,255,.08);
  margin-top:10px;
  display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;
}
.smallLinks{display:flex;gap:12px;flex-wrap:wrap}
.smallLinks a{color:var(--muted);text-decoration:none}
.smallLinks a:hover{color:var(--text);text-decoration:underline}

/* Mobile sticky action bar */
.stickyBar{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  background: rgba(7,9,12,.88);
  border-top:1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(14px);
  padding:10px 12px;
  display:none;
}
.stickyInner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.stickyInner a{padding:12px 10px;border-radius:14px;font-weight:900;font-size:14px}
.stickyInner a:nth-child(1){background:linear-gradient(135deg,var(--pt-red),#9f2a1f);border:1px solid rgba(198,53,39,.65)}
.stickyInner a:nth-child(2){background:linear-gradient(135deg,var(--sos-navy),#162e63);border:1px solid rgba(70,105,175,.45)}
.stickyInner a:nth-child(3){background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10)}

@media (max-width: 980px){
  .hero{grid-template-columns:1fr}
  .quickGrid{grid-template-columns:1fr}
  .grid2{grid-template-columns:1fr}
  .nav{display:none}
  .stickyBar{display:block}
}

/* Brand polish: subtle SOS navy accents */
.sectionTitle{
  position:relative;
}
.sectionTitle:after{
  content:"";
  display:block;
  height:3px;
  width:68px;
  margin-top:10px;
  border-radius:999px;
  background: linear-gradient(90deg, var(--pt-red), var(--sos-navy));
  opacity:.85;
}

/* Logo */
.logoImg{
  width:48px;height:48px;border-radius:12px;
  object-fit:contain;
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  padding:6px;
}

/* YouTube banner */
.banner{
  border:1px solid rgba(255,255,255,.10);
  background:#000;
  border-radius: var(--r);
  overflow:hidden;
  box-shadow: var(--shadow);
}
.banner iframe{
  width:100%;
  aspect-ratio: 21/9;
  border:0;
  display:block;
}

/* MP4 loop panel */
.loopPanel{
  border:1px solid rgba(255,255,255,.10);
  border-radius: var(--r);
  overflow:hidden;
  background:#000;
  box-shadow: var(--shadow);
}
.loopPanel video{
  width:100%;
  height:auto;
  display:block;
}
@media (max-width: 980px){
  .banner iframe{ aspect-ratio: 16/9; }
}

/* Full-bleed banner (edge-to-edge) */
.fullBleed{
  width:100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
.banner{
  border-radius: 0;
  border-left:0;border-right:0;
}
.banner iframe{
  aspect-ratio: 21/9;
}
.bannerOverlay{
  position: relative;
}
.soundBtn{
  position:absolute;
  right:14px;
  bottom:14px;
  z-index:5;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background: rgba(7,9,12,.55);
  color:#fff;
  font-weight:900;
  cursor:pointer;
  backdrop-filter: blur(10px);
}
.soundBtn:focus{outline:2px solid rgba(198,53,39,.55); outline-offset:2px;}
.soundBtn[data-on="true"]{
  background: linear-gradient(135deg, var(--pt-red), #9f2a1f);
  border-color: rgba(198,53,39,.7);
}
@media (max-width: 980px){
  .banner iframe{ aspect-ratio: 16/9; }
}


/* Colleges logos */
.sectionHead{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.sectionHead h2{margin:0}
.logoGrid{
  margin-top:16px;
  display:grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap:12px;
}
.logoCard{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.03);
  text-decoration:none;
  color: rgba(255,255,255,.78);
  min-height:120px;
  transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.logoCard:hover{transform: translateY(-2px); border-color: rgba(198,53,39,.45); background: rgba(198,53,39,.08)}
.logoCard img{
  width: 64px;
  height: 64px;
  object-fit: contain;
  filter: none;
}
.logoCard span{
  font-size: 11px;
  line-height: 1.2;
  text-align:center;
}
@media (max-width: 1100px){
  .logoGrid{grid-template-columns: repeat(4, minmax(0,1fr));}
}
@media (max-width: 700px){
  .logoGrid{grid-template-columns: repeat(2, minmax(0,1fr));}
  .logoCard{min-height:110px}
}


/* ===========================
   Brand Color System + Dark Mode
   =========================== */
:root {
  --pt-red: #C63527;
  --soft-red: #FFDADA;
  --sos-blue: #1F4FD8;
  --navy: #0A1F44;
  --white: #FFFFFF;

  --bg: #070A12;            /* default dark */
  --fg: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.72);
  --card-bg: rgba(255,255,255,.06);
  --card-border: rgba(255,255,255,.14);
  --shadow: 0 22px 70px rgba(0,0,0,.55);
}

/* Light mode available if you ever want to toggle */
:root[data-theme="light"]{
  --bg: var(--white);
  --fg: var(--navy);
  --muted: rgba(10,31,68,.72);
  --card-bg: rgba(255,255,255,.92);
  --card-border: rgba(10,31,68,.14);
  --shadow: 0 18px 50px rgba(10,31,68,.10);
}

body{
  background: var(--bg) !important;
  color: var(--fg) !important;
}

/* Header strip */
.top{
  background: rgba(7,10,18,.88) !important;
  backdrop-filter: blur(14px);
  border-bottom: 4px solid var(--pt-red) !important;
}

/* Cards */
.card, .banner, .videoWrap, .loopPanel{
  background: var(--card-bg) !important;
  border-color: var(--card-border) !important;
  box-shadow: var(--shadow) !important;
}

/* Buttons */
.btn.primary{
  background: var(--pt-red) !important;
  border-color: rgba(198,53,39,.75) !important;
}
.btn.navy{
  background: var(--sos-blue) !important;
  border-color: rgba(31,79,216,.55) !important;
}

/* Footer */
.footer{
  background: rgba(10,31,68,.95) !important;
  color: var(--white) !important;
}

/* SOS hero logo */
.sosHeroLogo{
  display:flex;
  justify-content:center;
  padding:18px 16px 10px;
  background: radial-gradient(800px 200px at 50% 0%, rgba(31,79,216,.18), transparent 60%);
}
.sosHeroLogo img{
  width: min(720px, 92vw);
  height:auto;
  display:block;
  filter: drop-shadow(0 14px 32px rgba(0,0,0,.55));
}
.sosHeroLogo a{
  display:inline-block;
}


/* SOS hero logo */
.sosHeroLogo{
  display:flex;
  justify-content:center;
  padding:18px 16px 10px;
  background: radial-gradient(800px 200px at 50% 0%, rgba(31,79,216,.18), transparent 60%);
}
.sosHeroLogo img{
  width: min(720px, 92vw);
  height:auto;
  display:block;
  filter: drop-shadow(0 14px 32px rgba(0,0,0,.55));
}
.sosHeroLogo a{
  display:inline-block;
}


/* SOS hero logo */
.sosHeroLogo{
  display:flex;
  justify-content:center;
  padding:18px 16px 10px;
  background: radial-gradient(800px 200px at 50% 0%, rgba(31,79,216,.18), transparent 60%);
}
.sosHeroLogo img{
  width: min(720px, 92vw);
  height:auto;
  display:block;
  filter: drop-shadow(0 14px 32px rgba(0,0,0,.55));
}
.sosHeroLogo a{
  display:inline-block;
}


/* Banner height tuned */
#ytBanner{
  width:100%;
  height: 28vh;
  min-height: 180px;
  max-height: 320px;
  border:0;
  display:block;
  background:#000;
}
@media (max-width: 430px){
  #ytBanner{ height: 26vh; max-height: 280px; }
}
.sosTitleOverlay{
  position:absolute;
  z-index:4;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 900;
  letter-spacing: 0.02em;
  line-height: 1;
  color: var(--sos-blue);
  
  text-decoration:none;
  text-shadow: none;
  font-size: clamp(34px, 6vw, 76px);
}
.sosTitleOverlay--center{
  left: 50%;
  transform: translateX(-50%);
  top: 12px;
  text-align:center;
  padding: 10px 14px;
  background: rgba(0,0,0,.28);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  backdrop-filter: blur(10px);
}
@media (max-width: 430px){
  .sosTitleOverlay{ font-size: 40px;  }
  .sosTitleOverlay--center{ top: 10px; padding: 8px 10px; }
}

/* Clean two-video layout inside full page */
#video .videoGridClean{
  display:grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 980px){
  #video .videoGridClean{ grid-template-columns: 1fr 1fr; gap: 18px; }
}
.videoFrameClean{
  border-radius: 18px;
  overflow:hidden;
  background:#000;
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 22px 70px rgba(0,0,0,.55);
}
.cleanVideo{
  width:100%;
  aspect-ratio: 16/9;
  height:auto;
  object-fit: contain;
  display:block;
}

/* ===== SOS Title block (NOT on video) ===== */
.heroTitleRow{
  max-width: 1200px;
  margin: 14px auto 10px auto;
  padding: 0 18px;
  text-align:center;
}
.heroSOSTitle{
  display:inline-block;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 900;
  letter-spacing: 0.02em;
  line-height: 1.02;
  color: var(--sos-blue);
  
  text-decoration:none;
  text-shadow: none;
  font-size: clamp(38px, 6vw, 82px);
  padding: 6px 10px;
}
.heroSOSTitle:hover{
  filter: none;
}
.heroSubline{
  margin-top: 6px;
  font-size: 14px;
  color: var(--muted);
}
@media (max-width: 430px){
  .heroTitleRow{ margin-top: 10px; }
  .heroSOSTitle{ font-size: 44px;  }
  .heroSubline{ font-size: 13px; }
}

/* Disable any leftover overlay title positioning */
.sosTitleOverlay{ position: static !important; left:auto !important; top:auto !important; transform:none !important; }

/* ===== Image tiles: prevent text cropping ===== */
.imgTile img, .mediaTile img, .cardMedia img, .ptPhoto img{
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}

/* If a fixed-height wrapper is forcing crop, allow it to grow */
.imgTile, .mediaTile, .cardMedia, .ptPhoto{
  height: auto !important;
}


/* --- Requested refinements (safe-area, nav spacing, SOS image title) --- */
:root{
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}

html{ scroll-padding-top: calc(84px + var(--safe-top)); }

body{
  padding-bottom: var(--safe-bottom);
}

/* Sticky header + notch-safe padding */
.top{
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(12px);
}
.topInner{
  /* tighter header height + keep iPhone notch safe area */
  padding: calc(6px + var(--safe-top)) 16px 6px;
}

/* Even, organized top navigation */
.nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap: 10px;
  flex-wrap: wrap;
}
.nav a{
  white-space: nowrap;
}
@media (max-width: 860px){
  .nav{
    justify-content:flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 6px;
    padding-bottom: 2px;
  }
  .nav::-webkit-scrollbar{ display:none; }
}

/* SOS image title in header */
.sosTitleLink{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
}
.sosTitleImg{
  height: 44px;
  width: auto;
  display:block;
  filter: none;
}
@media (max-width: 520px){
  .sosTitleImg{ height: 36px; }
}

/* Center banner video beneath header (avoid overlap) */
.hero{
  padding-top: 10px;
}
.heroInner{
  margin: 0 auto;
}

/* Prevent campus image text from being cropped */
.mediaNoRatio{
  aspect-ratio: auto !important;
  height: auto !important;
  max-height: 420px;
}

/* Lightweight performance boost for long pages */
.section{
  content-visibility: auto;
  contain-intrinsic-size: 900px;
}

/* Park Tudor red heading with white outline */
.pt-red-outline{
  color:#fff;
  -webkit-text-stroke:0;
  text-shadow: 0 2px 12px rgba(0,0,0,.55);
  font-weight: 800;
  letter-spacing: 0.01em;
  display: inline-block;
  padding-bottom: 6px;
  border-bottom: 3px solid rgba(198,53,39,.95); /* #C63527 */
}

/* SOS Blue section headers */
.pt-blue-outline{
  color:#fff;
  -webkit-text-stroke:0;
  text-shadow: 0 2px 12px rgba(0,0,0,.55);
  font-weight: 800;
  letter-spacing: 0.01em;
  display: inline-block;
  padding-bottom: 6px;
  border-bottom: 3px solid rgba(45,91,255,.95);
}

/* ===========================
   Tighter section spacing
   =========================== */
.section{
  padding-top: 26px !important;
  padding-bottom: 26px !important;
}
@media (max-width: 430px){
  .section{ padding-top: 20px !important; padding-bottom: 20px !important; }
}
.sectionHead{ margin-bottom: 12px !important; }
.rule{ margin-top: 10px !important; margin-bottom: 10px !important; }

/* ===========================
   Header styling to match SOS logo feel
   =========================== */
.sosHeaderStyle{
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0,0,0,.55);
}
.ptHeaderStyle{
  font-weight: 900;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0,0,0,.55);
}
/* ===========================
   Scroll animations for key headers
   =========================== */
.revealHeader{
  display: inline-block;
  opacity: 0;
  transform: translateY(10px) scale(0.985);
  filter: blur(2px);
  transition: opacity .65s ease, transform .65s ease, filter .65s ease;
}
.revealHeader.in{
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: none;
}
.revealHeader.in.sosHeaderStyle{
  animation: sosGlowIn .9s ease-out both;
}
@keyframes sosGlowIn{
  0%{ filter: none; }
  60%{ filter: none; }
  100%{ filter: none; }
}
.revealHeader.in.ptHeaderStyle{
  animation: ptGlowIn .9s ease-out both;
}
@keyframes ptGlowIn{
  0%{ filter: none; }
  60%{ filter: none; }
  100%{ filter: none; }
}

/* ===========================
   Fix SOS title white artifacts
   =========================== */
.sosHeaderStyle{
  
  text-shadow: none;
}

/* ===========================
   Full-bleed facility banner video
   =========================== */
.heroVideoWrap.heroFullBleed{
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}
.heroVideoWrap.heroFullBleed iframe,
.heroVideoWrap.heroFullBleed video{
  width: 100% !important;
  display: block !important;
  border-radius: 0 !important;
}
.heroVideoWrap.heroFullBleed iframe{
  width: 100vw !important;
  /* full-bleed but not too tall */
  height: min(26vh, 260px) !important;
  min-height: 180px !important;
  border: 0;
  display: block;
}
@media (max-width: 430px){
  .heroVideoWrap.heroFullBleed iframe{ height: min(24vh, 210px); min-height: 160px; }
}

/* ===========================
   Auto-loop video placement under 'Take a quick look'
   =========================== */
.videoCard{ margin-top: 12px; }
.videoFrame{
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(0,0,0,.35);
}
.inlineLoopVideo{
  width: 100%;
  height: auto;
  display: block;
}


/* SOS hero logo with panther corners */
.sosHeroLogo{ display:flex; justify-content:center; margin: 0 auto 14px; }
.sosHeroLink{ position: relative; display:inline-block; }
.pantherCorner{
  position:absolute;
  top:-10px;
  width:72px;
  height:auto;
  filter: drop-shadow(0 8px 22px rgba(31,79,216,.25)) drop-shadow(0 8px 22px rgba(198,53,39,.18));
}
.pantherCorner.left{ left:-14px; }
.pantherCorner.right{ right:-14px; transform: scaleX(-1); }

@media (max-width: 640px){
  .heroFullBleed iframe{ height: min(26vh, 240px) !important; min-height: 180px !important; }
  .pantherCorner{ width:54px; top:-8px; }
  .pantherCorner.left{ left:-10px; }
  .pantherCorner.right{ right:-10px; }
}

/* Campus section title above image */
.campusHeaderPad{ padding-bottom: 8px !important; }
.campusHeaderPad .campusKicker{ color: #ffffff !important; }
.campusHeaderPad .campusTitle{ color: var(--pt-red) !important; }

/* Park Tudor brand color */
.brand-red{
  color: var(--red);
  font-weight: 700;
  letter-spacing: 0.02em;
  -webkit-text-stroke: 0;
  text-shadow: none;
}


/* Campus header above image */
.campusTitleBlock{
  text-align:center;
  margin: 0 0 12px 0;
}
.campusTitleBlock .campus-sub{
  color:#FFFFFF;
  font-weight:800;
  letter-spacing:0.04em;
  margin-bottom:6px;
}
.campusTitleBlock .campus-title{
  color:#C63527;
  font-weight:900;
  font-size: clamp(22px, 2.6vw, 34px);
}

/* Full-bleed banner (edge-to-edge, not too tall) */
.heroVideoWrap.heroFullBleed{
  width:100vw !important;
  max-width:100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  border-radius:0 !important;
  overflow:hidden !important;
}
.heroVideoWrap.heroFullBleed iframe,
.heroVideoWrap.heroFullBleed video{
  width:100% !important;
  height: min(44vh, 420px) !important;
  display:block !important;
  border:0 !important;
}
@media (max-width:430px){
  .heroVideoWrap.heroFullBleed iframe,
  .heroVideoWrap.heroFullBleed video{
    height: min(34vh, 320px) !important;
  }
}


/* SOS hero image replacement */
.sosHeroImg{
  width:100%;
  height:140px;
  display:block;
  object-fit:contain;
  transform:none;
  background:transparent;
}
@media (max-width: 640px){
  .sosHeroImg{
    width: 100%;
    height: 120px;
    object-fit: contain;
    border-radius: 0;
  }
}

/* --- Header brand layout overrides (match reference) --- */
.brand{display:flex;align-items:center;gap:14px;min-width:0}
.logoBtn{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.logoBtn:hover{border-color:rgba(255,255,255,.18);box-shadow:0 12px 36px rgba(0,0,0,.45)}
.logoBtn:focus-visible{outline:2px solid rgba(31,79,216,.85);outline-offset:3px}
.logoImg{height:48px;width:auto;display:block}
.sosTitleLink{display:inline-flex;align-items:center;min-width:0}
.sosTitleImg{height:44px;width:auto;display:block;filter:drop-shadow(0 10px 26px rgba(0,0,0,.35))}

@media (max-width: 520px){
  .logoBtn{width:52px;height:52px;border-radius:14px}
  .logoImg{height:40px}
  .sosTitleImg{height:38px}
}

/* Make the banner video fill edge-to-edge without side bars */
.heroVideoWrap iframe{position:absolute;top:50%;left:50%;width:100%;height:100%;transform:translate(-50%,-50%) scale(1.18);}


/* Campus card: title ABOVE image + tighter spacing */
.campusCard .campusHead{
  text-align:center;
  padding:14px 18px 10px;
}
.campusCard .campusHead .campus-sub{
  color: var(--white);
  font-weight: 800;
  letter-spacing: 0.04em;
  margin: 0 0 6px 0;
  text-transform: uppercase;
  font-size: 12px;
  opacity: 0.9;
}
.campusCard .campusHead .campus-title{
  margin: 0;
}
.campusCard .campusHead .sectionTitle{
  margin: 0;
}
.campusCard .mediaNoRatio{
  margin-top: 0;
}
.campusCard .pad:not(.campusHead){
  padding-top: 12px;
}


/* YouTube embed block inside the clean video grid */
.ytBlock{ width:100%; display:flex; flex-direction:column; gap:10px; }
.miniCap{
  font-size: 12px;
  line-height: 1.35;
  color: rgba(255,255,255,0.9);
  text-align: center;
  padding: 0 18px;
  margin: 2px 0 10px;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.ytIframe{
  width:100%;
  aspect-ratio:16/9;
  border:0;
  border-radius:16px;
  box-shadow:0 16px 60px rgba(0,0,0,.35);
}
@media (max-width: 860px){
  .miniCap{ font-size:11px; }
  .ytIframe{ border-radius:14px; }
}

/* ===== Menu (slide-down) ===== */
.menuWrap{display:flex;align-items:center;justify-content:flex-end;}
.menuBtn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid var(--border);
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  color:var(--text);
  cursor:pointer;
  font-weight:800;
}
.menuIcon{
  width:18px;height:12px;position:relative;display:inline-block;
}
.menuIcon::before,.menuIcon::after,.menuIcon span{
  content:"";position:absolute;left:0;right:0;height:2px;border-radius:2px;background:rgba(255,255,255,.85);
}
.menuIcon::before{top:0;}
.menuIcon::after{bottom:0;}
.menuIcon span{top:5px;}
/* middle bar using background trick */
.menuIcon{background:linear-gradient(rgba(255,255,255,.85),rgba(255,255,255,.85));background-size:100% 2px;background-position:center;background-repeat:no-repeat;}

.menuPanel{
  position:absolute;
  top:calc(100% + 10px);
  right:16px;
  width:min(420px, calc(100vw - 32px));
  padding:12px;
  border-radius:16px;
  border:1px solid var(--border);
  background: rgba(8,10,18,.92);
  backdrop-filter: blur(14px);
  box-shadow: 0 18px 55px rgba(0,0,0,.55);
  display:flex;
  flex-direction:column;
  gap:10px;
  max-height:0;
  overflow:hidden;
  opacity:0;
  transform: translateY(-10px);
  transition: max-height .35s ease, opacity .25s ease, transform .35s ease;
  pointer-events:none;
  z-index:9999;
}
.menuPanel.open{
  max-height:460px;
  opacity:1;
  transform: translateY(0);
  pointer-events:auto;
}

/* tighter header height */
.top{position:relative;}
.topInner{position:relative;}

/* Mobile-only sticky header */
@media (max-width: 820px){
  .top{position:sticky; top:0; z-index:10000; padding-top: env(safe-area-inset-top);}
  .menuPanel{right:12px; top:calc(100% + 8px);}
  .menuBtn{padding:9px 12px;}
}

/* SOS hero image sizing + fade-in */
.sosHeroImg{
  max-height:160px;
  width:auto;
  height:auto;
  transform: scaleX(1.15); /* larger without adding height */
  transform-origin:center;
}
@media (max-width: 520px){
  .sosHeroImg{max-height:130px; transform: scaleX(1.12);}
}

/* ===== Final overrides (requested) ===== */
.top{padding:10px 14px;}
@media (max-width: 900px){
  .top{position:sticky; top:0; padding-top:calc(env(safe-area-inset-top) + 8px); padding-bottom:8px;}
}

.sosHeroImg{
  width:min(720px, 94vw);
  height:auto;
  max-height:140px; /* keep height from growing */
  object-fit:contain;
  transform: scaleX(1.15);
  transform-origin:center;
  animation:sosFadeOpacity 900ms ease-out 140ms both;
}

@keyframes sosFadeOpacity{
  from{opacity:0; filter:blur(1.2px) saturate(0.9);}
  to{opacity:1; filter:blur(0) saturate(1);}
}

/* ===== Overrides (Jan 2026 fixes) ===== */
.heroTitleRow.fullBleed{
  /* Full-width SOS band (no black showing around the artwork) */
  max-width: none;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  margin-top: 10px;
  padding: 0;
  border: none;
  border-radius: 0;
  overflow: hidden;
  /* sampled from the SOS artwork edges */
  background: #1F2548;
  box-shadow: 0 16px 44px rgba(0,0,0,0.45);
}
.heroTitleRow.fullBleed a{ display:block; }
.heroTitleRow.fullBleed .sosHeroImg{
  width: 100%;
  height: 140px;
  object-fit: contain;
  transform: none;
  padding: 0;
  background: #1F2548;
  filter: saturate(1.05) contrast(1.05) drop-shadow(0 10px 24px rgba(0,0,0,0.35));
}
@media (max-width: 520px){
  .heroTitleRow.fullBleed{ padding: 8px 0 8px; }
  .heroTitleRow.fullBleed .sosHeroImg{ height: 104px; }
}

/* Ensure the long wellness caption wraps and stays fully visible */
.miniCap{
  white-space: normal;
  overflow: visible;
  word-break: break-word;
  text-transform: none;
  letter-spacing: 0.02em;
  line-height: 1.25;
  padding: 0 12px;
  text-align: center;
}
@media (max-width: 520px){
  .miniCap{ font-size: 11px; letter-spacing: 0.02em; }
}

/* Header center wordmark (Park Tudor) */
.brandCenter{
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  pointer-events: auto;
}
.brandCenter a{ display:flex; align-items:center; justify-content:center; }
.headerWordmark{
  height:78px;
  width:auto;
  max-width:min(980px, 82vw);
  display:block;
  object-fit:contain;
  filter: drop-shadow(0 10px 18px rgba(0,0,0,0.45));
}
.desktopOnly{ display: block; }
.mobileOnly{ display: none; }

@media (max-width: 820px){
  .headerWordmark{ height: 34px; max-width: 62vw; }
  .desktopOnly{ display: none; }
  .mobileOnly{ display: block; }
}

@media (max-width: 420px){
  .headerWordmark{ height: 28px; }
}

/* Scroll shrink effect */
.top{ transition: padding 220ms ease, backdrop-filter 220ms ease; }
.top.top--shrink{ padding-top: 8px !important; padding-bottom: 8px !important; }
.top.top--shrink .logoBtn{ transform: translateY(-1px); }
.top.top--shrink .logoImg{ width: 44px; height: 44px; }
.top.top--shrink .menuBtn{ padding: 8px 12px; }
.top.top--shrink .headerWordmark{ height: 30px; }

@media (max-width: 820px){
  .top.top--shrink .headerWordmark{ height: 28px; }
}


.centerWordmark{
  display:block;
  max-width: 240px;
  width: min(240px, 52vw);
  height: auto;
  margin: 0 auto;
}


}
@media (max-width:420px){
  .centerWordmark{
    width: min(210px, 56vw);
  }
}