/* ============================================================
   CAMPUS PAGE — section styles
   ============================================================ */

/* ---------- Hero ---------- */
.campus-hero{
  position:relative; overflow:hidden;
  background:var(--teal-deep);
  color:var(--cream);
  padding:96px 0 0;
  border-bottom:1px solid rgba(217,183,138,.18);
}
.campus-hero .hero-photo{ position:absolute; inset:0; z-index:0; }
.campus-hero .hero-photo img{
  width:100%; height:100%; object-fit:cover; object-position:50% 50%; display:block;
  filter: sepia(0.5) saturate(0.55) contrast(1.05) brightness(0.76) hue-rotate(-8deg);
}
.campus-hero .hero-photo::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.32) 55%, rgba(0,0,0,.5) 100%),
    linear-gradient(0deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.2) 55%, rgba(0,0,0,.55) 100%);
}
.campus-hero .wrap{ position:relative; z-index:1; }
.campus-hero .lockup{
  display:grid; grid-template-columns:1.2fr .9fr;
  gap:64px; align-items:end;
  padding-bottom:64px;
}
.campus-hero h1{
  font-size:clamp(48px, 6.4vw, 96px);
  margin:24px 0 0;
}
.campus-hero .sub{
  margin-top:24px;
  font-family:var(--display); font-style:italic; font-weight:600;
  font-size:28px; line-height:1.3;
  color:var(--accent);
  max-width:520px;
}
.campus-hero .addr{
  margin-top:36px;
  font-family:var(--mono); font-size:11px; letter-spacing:.24em;
  text-transform:uppercase; color:rgba(217,183,138,.96); font-weight:700;
  line-height:1.8;
}
.campus-hero .addr .l{ display:block; color:var(--sand); font-size:10px; margin-top:8px; font-weight:700; }

.campus-hero .facts{
  display:grid; grid-template-columns:repeat(4, 1fr);
  border-top:1px solid rgba(217,183,138,.22);
}
.campus-hero .fact{
  padding:28px 24px 32px;
  border-right:1px solid rgba(217,183,138,.18);
  text-align:left;
}
.campus-hero .fact:first-child{ padding-left:0; }
.campus-hero .fact:last-child{ padding-right:0; border-right:none; }
.campus-hero .fact .l{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.26em;
  text-transform:uppercase; color:var(--sand); font-weight:700;
}
.campus-hero .fact .v{
  font-family:var(--display); font-weight:300;
  font-size:42px; line-height:1; letter-spacing:-.02em;
  color:var(--cream); margin-top:14px;
}
.campus-hero .fact .v em{ font-style:italic; color:var(--accent); }
.campus-hero .fact .u{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.18em;
  text-transform:uppercase; color:rgba(217,183,138,.7); font-weight:700;
  margin-top:8px;
}
@media (max-width:880px){
  .campus-hero{ padding:64px 0 0; }
  .campus-hero .lockup{ grid-template-columns:1fr; gap:32px; padding-bottom:48px; }
  .campus-hero .facts{ grid-template-columns:repeat(2, 1fr); }
  .campus-hero .fact{ padding:24px 16px; border-bottom:1px solid rgba(217,183,138,.18); }
  .campus-hero .fact:nth-child(2n){ border-right:none; }
  .campus-hero .fact:nth-last-child(-n+2){ border-bottom:none; }
}

/* ---------- Hero photo slot ---------- */
.campus-photo{
  background:var(--teal-deep);
  padding:0 0 0;
}
.campus-photo .frame{
  background:var(--teal-deep);
  border-top:1px solid rgba(217,183,138,.18);
  border-bottom:1px solid rgba(217,183,138,.18);
  position:relative;
  aspect-ratio:21/9;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.campus-photo .is-img{
  width:100%; height:100%; display:block;
  --is-bg:var(--teal-deep);
  --is-fg:rgba(244,238,221,.45);
  --is-border:rgba(217,183,138,.4);
}
.campus-photo .cap{
  position:absolute; left:32px; bottom:24px;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.26em;
  text-transform:uppercase; color:var(--sand);
  pointer-events:none;
  background:rgba(12,29,28,.78);
  padding:8px 14px;
  border:1px solid rgba(217,183,138,.22);
}

/* ---------- Map + site plan ---------- */
.site-plan{ background:var(--cream); color:var(--ink); padding:120px 0; }
.site-plan .head{ max-width:760px; margin-bottom:56px; }
.site-plan .head h2{ margin-top:14px; }
.site-plan .head .lede{
  color:var(--sage); font-size:18px; margin-top:14px;
}

.sp-grid{
  display:grid; grid-template-columns:1.1fr 1fr;
  gap:56px; align-items:stretch;
}

/* Editorial map */
.sp-map{
  background:var(--paper);
  border:1px solid var(--rule);
  position:relative;
  aspect-ratio:5/4;
  overflow:hidden;
}
.sp-map .mlabel{
  position:absolute;
  font-family:var(--mono); font-size:10px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--sage);
  pointer-events:none;
}
.sp-map .mlabel.tl{ top:24px; left:28px; }
.sp-map .mlabel.bl{ bottom:24px; left:28px; }
.sp-map .pin{
  position:absolute; left:42%; top:32%;
  transform:translate(-50%, -100%);
  text-align:center;
}
.sp-map .pin .dot{
  width:14px; height:14px; background:var(--accent);
  border-radius:50%;
  margin:0 auto;
  box-shadow:0 0 0 6px rgba(179,92,58,.12);
}
.sp-map .pin .lbl{
  font-family:var(--display); font-weight:400;
  font-size:30px; line-height:1; color:var(--ink);
  margin-top:14px;
  font-style:italic;
}
.sp-map .pin .sub{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.28em;
  text-transform:uppercase; color:var(--accent);
  margin-top:8px;
}
.sp-map .city{
  position:absolute;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--ink);
  display:flex; align-items:center; gap:8px;
}
.sp-map .city .dot{ width:5px; height:5px; background:var(--ink); border-radius:50%; }
.sp-map .city.auburn{ top:58%; left:36%; }
.sp-map .city.sac{ top:78%; left:55%; }
.sp-map .city.sf{ top:88%; left:14%; }

/* Site plan list */
.sp-list{
  display:flex; flex-direction:column; gap:0;
  border:1px solid var(--rule);
  background:var(--paper);
}
.sp-list .row{
  display:grid; grid-template-columns:60px 1fr auto;
  align-items:center; gap:20px;
  padding:18px 22px;
  border-bottom:1px solid var(--rule);
}
.sp-list .row:last-child{ border-bottom:none; }
.sp-list .row .num{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.24em;
  color:var(--accent);
}
.sp-list .row .name{
  font-family:var(--display); font-weight:400;
  font-size:22px; line-height:1.15; color:var(--ink);
}
.sp-list .row .name em{ font-style:italic; color:var(--sage); font-size:16px; margin-left:8px; }
.sp-list .row .meta{
  font-family:var(--mono); font-size:11px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--sage);
  white-space:nowrap;
}

@media (max-width:880px){
  .site-plan{ padding:80px 0; }
  .sp-grid{ grid-template-columns:1fr; gap:32px; }
  .sp-list .row{ grid-template-columns:50px 1fr; }
  .sp-list .row .meta{ grid-column:2; }
  .sp-list .row .name{ font-size:18px; }
}

/* ---------- Property tour (photo grid placeholders) ---------- */
.tour{ background:var(--teal-deep); color:var(--cream); padding:120px 0; }
.tour .head{ max-width:760px; margin-bottom:48px; }
.tour .head h2{ margin-top:14px; }
.tour .head .lede{
  color:rgba(244,238,221,.78); font-size:18px; margin-top:14px;
}
.tour-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:24px;
}
.tour-card{
  display:flex; flex-direction:column;
}
.tour-card .ph{
  aspect-ratio:4/3;
  background:rgba(244,238,221,.04);
  border:1px solid rgba(217,183,138,.28);
  position:relative;
  overflow:hidden;
}
.tour-card .is-img{
  width:100%; height:100%; display:block;
  --is-bg:rgba(244,238,221,.04);
  --is-fg:rgba(244,238,221,.4);
  --is-border:transparent;
}
.tour-card .meta{
  padding:18px 4px 0;
  display:flex; flex-direction:column; gap:6px;
}
.tour-card .tag{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--accent);
}
.tour-card .name{
  font-family:var(--display); font-weight:400;
  font-size:22px; line-height:1.2; color:var(--cream);
}
.tour-card .name em{ font-style:italic; color:var(--sand); }
.tour-card .desc{
  font-family:var(--sans); font-size:14px; line-height:1.5;
  color:rgba(244,238,221,.72);
}
.tour-card.wide{ grid-column:span 2; }
.tour-card.wide .ph{ aspect-ratio:16/9; }
@media (max-width:880px){
  .tour{ padding:80px 0; }
  .tour-grid{ grid-template-columns:1fr; gap:32px; }
  .tour-card.wide{ grid-column:auto; }
}

/* ---------- Day on campus ---------- */
.day{ background:var(--paper); color:var(--ink); padding:120px 0; }
.day .head{ max-width:880px; margin-bottom:64px; }
.day .head h2{
  font-size:clamp(40px, 5vw, 72px);
  margin-top:14px;
}
.day .head h2 .row{
  display:block;
  text-wrap:balance;
}
.day .head h2 .row.b{ color:var(--accent); font-style:italic; }
.day .head h2 .row.c{ color:var(--ink); }
.day .head h2 .row.d{ color:var(--sage); font-style:italic; }

.day-table{
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
.day-row{
  display:grid; grid-template-columns:200px 1fr;
  padding:22px 0;
  border-bottom:1px solid var(--rule);
  align-items:baseline;
}
.day-row:last-child{ border-bottom:none; }
.day-row .when{
  font-family:var(--mono); font-size:12px; letter-spacing:.22em;
  text-transform:uppercase; color:var(--accent);
}
.day-row .what{
  font-family:var(--sans); font-size:18px; line-height:1.55; color:var(--ink);
}
.day-row .what b{ font-weight:500; }
.day-row .what em{ font-style:italic; color:var(--sage); }
.day-foot{
  margin-top:40px;
  font-family:var(--display); font-style:italic; font-weight:400;
  font-size:22px; line-height:1.4; color:var(--sage);
  max-width:880px;
  text-wrap:balance;
}
@media (max-width:760px){
  .day-row{ grid-template-columns:1fr; gap:6px; }
}

/* ---------- Location strip ---------- */
.loc{ background:var(--cream); color:var(--ink); padding:96px 0; }
.loc .grid{
  display:grid; grid-template-columns:1fr 1fr;
  gap:64px; align-items:start;
}
.loc .copy h2{ margin-top:14px; }
.loc .copy p{
  font-family:var(--display); font-weight:400;
  font-size:20px; line-height:1.55; color:var(--ink);
  margin:24px 0 0;
  max-width:520px;
}
.drive-times{
  border-top:1px solid var(--rule);
}
.drive-times .row{
  display:grid; grid-template-columns:1fr auto;
  padding:18px 0;
  border-bottom:1px solid var(--rule);
  align-items:baseline;
}
.drive-times .place{
  font-family:var(--display); font-weight:400;
  font-size:20px; color:var(--ink);
}
.drive-times .place em{ font-style:italic; color:var(--sage); font-size:14px; display:block; margin-top:2px; }
.drive-times .dist{
  font-family:var(--mono); font-size:12px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--accent);
}
@media (max-width:760px){
  .loc{ padding:64px 0; }
  .loc .grid{ grid-template-columns:1fr; gap:32px; }
}

/* ---------- Tour CTA ---------- */
.tour-cta{
  background:var(--teal-deep);
  color:var(--cream);
  padding:120px 0;
  text-align:center;
}
.tour-cta .eyebrow{ justify-content:center; display:inline-flex; }
.tour-cta h2{
  margin:24px auto 0;
  max-width:880px;
}
.tour-cta h2 em{ font-style:italic; color:var(--accent); }
.tour-cta p{
  margin:24px auto 0;
  max-width:600px;
  font-family:var(--display); font-style:italic; font-weight:400;
  font-size:20px; line-height:1.4;
  color:rgba(244,238,221,.78);
}
.tour-cta .ctas{
  margin-top:40px;
  display:flex; gap:14px; justify-content:center; flex-wrap:wrap;
}
