/* ==========================================================================
   CAMPUS FACILITIES  (Figma: "Campus Facilities — Desktop 1440")
   ========================================================================== */

.page-facilities {
    --ochre-hi: #e7b918;
    --on-dark-muted: #bdb8ad;
    --dark-tile: #2b2d26;
}

/* ---------- Shared bits ---------- */
.eyebrow {
    display: inline-flex; align-items: center; gap: 8px; height: 30px; padding: 0 14px 0 13px;
    border-radius: 15px; font-size: 13px; font-weight: 500; line-height: 1.6; white-space: nowrap; color: var(--ink);
}
.eyebrow__dot { width: 6px; height: 6px; border-radius: 3px; flex: none; background: var(--ochre); }
.eyebrow--ochre { background: var(--ochre-soft); }
.eyebrow--terra { background: var(--terracotta-soft); }
.eyebrow--terra .eyebrow__dot { background: var(--terracotta); }
.eyebrow--sage { background: var(--sage-soft); }
.eyebrow--sage .eyebrow__dot { background: var(--sage); }
.eyebrow--white { background: var(--paper); }
.eyebrow--white .eyebrow__dot { background: var(--sage); }
.eyebrow--dark { background: rgba(43, 45, 38, .85); border: 1px solid rgba(255, 255, 255, .14); color: var(--cream); }
.eyebrow--dark .eyebrow__dot, .eyebrow--ink .eyebrow__dot { background: var(--ochre-hi); }
.eyebrow--ink { background: var(--ink); color: var(--cream); }

.fac-h2 {
    font-family: var(--font-display); font-weight: 700; font-size: clamp(36px, 3.75vw, 54px);
    line-height: 1.04; letter-spacing: -0.04em;
}
.fac-h2 .serif, .fac-h3 .serif { color: var(--ochre); letter-spacing: -0.01em; }
.fac-h3 {
    font-family: var(--font-display); font-weight: 700; font-size: clamp(24px, 2.09vw, 30px);
    line-height: 1.12; letter-spacing: -0.03em;
}
.fac-p { font-size: 15px; line-height: 1.75; color: var(--muted); }

.fac-ico { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; flex: none; }
.fac-ico img { width: 22px; height: 22px; }
.fac-ico--md { width: 42px; height: 42px; }
.fac-ico--md img, .fac-ico--sm img { width: 18px; height: 18px; }
.fac-ico--sm { width: 44px; height: 44px; }
.fac-ico--ink { background: var(--ink); }
.fac-ico--ochre { background: var(--ochre); }
.fac-ico--white { background: var(--paper); }

.fac-ph {
    background: var(--cream-2); display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 9px; text-align: center; padding: 20px; overflow: hidden;
}
.fac-ph__ico { width: 52px; height: 52px; border-radius: 50%; background: var(--paper); display: grid; place-items: center; }
.fac-ph__ico img { width: 22px; height: 22px; }
.fac-ph__text { font-size: 13px; line-height: 1.6; color: #7b7770; }
.fac-ph--dark { background: var(--dark-tile); }
.fac-ph--dark .fac-ph__ico { background: #1c1d19; }
.fac-ph--dark .fac-ph__text { color: #a29d93; }

.tag { display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: 14px; font-size: 12.5px; font-weight: 500; line-height: 1.6; white-space: nowrap; color: var(--ink); }
.tag--dark { background: var(--ink); color: var(--ochre-hi); }
.tag--sage { background: var(--sage-soft); }
.tag--terra { background: var(--terracotta-soft); }
.tag--white { background: var(--paper); }
.tag--cream { background: var(--cream-2); height: 26px; font-size: 12px; }
.tags-row { display: flex; flex-wrap: wrap; gap: 8px; }

.dark-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.dark-chips li {
    display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px; border-radius: 20px;
    background: var(--dark-tile); border: 1px solid rgba(255, 255, 255, .1); color: var(--cream); font-size: 14.5px; line-height: 1.6;
}
.dark-chips img { width: 15px; height: 15px; }

/* ---------- Sections ---------- */
.fac-section { padding: 120px var(--gutter); position: relative; }
.fac-section--cream { background: var(--cream); }
.fac-section--white { background: var(--paper); }
.fac-section--ink { background: var(--ink); color: var(--cream); }
.fac-section--round { border-radius: 56px 56px 0 0; }
.fac-section[id], .green[id] { scroll-margin-top: 150px; }

.fac-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: 56px; }
.fac-head__title { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; max-width: 640px; }
.fac-head__text { width: 527px; max-width: 100%; font-size: 15px; line-height: 1.75; color: var(--muted); }
.fac-subhead { display: flex; justify-content: space-between; align-items: center; gap: 40px; margin: 88px 0 28px; }

.fac-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.fac-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 16px; }

/* ---------- Hero ---------- */
.fac-hero { position: relative; isolation: isolate; overflow: hidden; background: var(--ink); color: var(--cream); padding: 190px var(--gutter) 110px; min-height: 696px; }
.fac-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.fac-hero::after {
    content: ""; position: absolute; inset: 0; z-index: -1;
    background: linear-gradient(90deg, rgba(17, 19, 15, .9) 0%, rgba(17, 19, 15, .72) 45%, rgba(17, 19, 15, .5) 100%),
                linear-gradient(0deg, rgba(17, 19, 15, .55) 0%, rgba(0, 0, 0, 0) 40%);
}
.fac-hero__row { max-width: calc(var(--maxw) - 2 * 120px); margin: 0 auto; display: flex; justify-content: space-between; align-items: center; gap: 48px; }
.fac-hero__text { max-width: 560px; display: flex; flex-direction: column; align-items: flex-start; }
.fac-hero__title {
    margin-top: 26px; font-family: var(--font-display); font-weight: 800; font-size: clamp(64px, 8.4vw, 121px);
    line-height: .94; letter-spacing: -0.045em; display: flex; flex-direction: column;
}
.fac-hero__title .serif { color: var(--ochre); font-size: 1em; line-height: 1.05; letter-spacing: -0.015em; }
.fac-hero__lead { margin-top: 26px; max-width: 543px; font-size: 18px; line-height: 1.62; color: #cfcac0; }

.fac-glance {
    width: 512px; flex: none; padding: 23px 20px 22px; border-radius: 28px;
    background: rgba(43, 45, 38, .55); border: 1px solid rgba(255, 255, 255, .12);
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.fac-glance__label { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ochre-hi); padding: 0 4px 14px; }
.fac-glance__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.fac-glance__stat {
    display: flex; flex-direction: column; gap: 8px; padding: 16px; border-radius: 16px;
    background: rgba(17, 19, 15, .55); border: 1px solid rgba(255, 255, 255, .08);
}
.fac-glance__stat strong, .lib-stat strong {
    font-family: var(--font-display); font-weight: 800; font-size: 34px; line-height: 1; letter-spacing: -0.03em; color: var(--cream);
}
.fac-glance__stat .serif, .lib-stat .serif { color: var(--ochre-hi); font-weight: 400; }
.fac-glance__stat span, .lib-stat span { font-size: 13px; line-height: 1.35; color: var(--on-dark-muted); }
.fac-glance__feature {
    grid-column: 1 / -1; display: flex; align-items: center; gap: 14px; padding: 17px; border-radius: 16px; background: var(--ochre); color: var(--ink);
}
.fac-glance__feature div { display: flex; flex-direction: column; gap: 2px; }
.fac-glance__feature strong { font-family: var(--font-display); font-weight: 800; font-size: 20px; line-height: 1; letter-spacing: -0.02em; }
.fac-glance__feature span { font-size: 13px; color: rgba(17, 19, 15, .72); }

/* ---------- Tabs ---------- */
.fac-tabs { background: var(--cream); padding: 34px var(--gutter) 0; }
.fac-tabs__row { max-width: calc(var(--maxw) - 2 * 120px); margin: 0 auto; display: flex; flex-wrap: wrap; gap: 10px; }
.fac-tab {
    display: inline-flex; align-items: center; gap: 12px; height: 48px; padding: 0 10px 0 20px; border-radius: 24px;
    background: var(--paper); border: 1px solid #dad5cb; font-size: 15px; font-weight: 600; line-height: 1.6; white-space: nowrap;
    transition: background-color .2s, color .2s, border-color .2s;
}
.fac-tab__n { min-width: 34px; height: 28px; border-radius: 14px; background: var(--cream-2); display: grid; place-items: center; font-size: 13px; font-weight: 500; }
.fac-tab:hover { border-color: var(--ink); }
.fac-tab.is-active { background: var(--ink); border-color: var(--ink); color: var(--cream); }
.fac-tab.is-active .fac-tab__n { background: var(--ochre); color: var(--ink); }

/* ---------- Feature cards (blocks, labs) ---------- */
.fcard { border-radius: 22px; padding: 28px; display: flex; flex-direction: column; align-items: flex-start; gap: 0; min-height: 302px; }
.fcard__idx { font-size: 13px; font-weight: 500; line-height: 1.6; opacity: .7; margin-bottom: 30px; }
.fcard .fac-ico { margin-bottom: 25px; }
.fcard__title { font-family: var(--font-display); font-weight: 700; font-size: 30px; line-height: 1.12; letter-spacing: -0.03em; margin-bottom: 12px; }
.fcard__text { font-size: 14.5px; line-height: 1.65; color: rgba(17, 19, 15, .75); }
.fcard--ochre { background: var(--ochre); }
.fcard--ink { background: var(--ink); color: var(--cream); }
.fcard--ink .fcard__text { color: var(--on-dark-muted); }
.fcard--sage { background: var(--sage-soft); }
.fcard--sage .fcard__text { color: var(--muted); }
.fcard--wide { min-height: 259px; }
.fcard--wide .fac-ico { margin-bottom: 31px; }

/* ---------- Classrooms ---------- */
.feature { display: grid; grid-template-columns: 595fr 541fr; gap: 64px; align-items: center; }
.feature + .feature { margin-top: 64px; }
.feature--flip { grid-template-columns: 541fr 595fr; }
.feature--flip .feature__media { order: 2; }
.feature__media { height: 446px; border-radius: 28px; overflow: hidden; }
.feature__media img { width: 100%; height: 100%; object-fit: cover; }
.feature__body { display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
.feature__idx {
    width: 44px; height: 44px; border-radius: 50%; background: var(--ink); color: var(--ochre-hi);
    display: grid; place-items: center; font-size: 14px; font-weight: 500; margin-bottom: 15px;
}
.feature__body .fac-h3 { margin-bottom: 16px; }
.ck-list { margin-top: 24px; display: flex; flex-direction: column; gap: 10px; }
.ck-list li { display: flex; align-items: center; gap: 12px; font-size: 15px; font-weight: 500; line-height: 1.6; }
.ck { width: 26px; height: 26px; border-radius: 50%; background: var(--sage-soft); display: grid; place-items: center; flex: none; }
.ck img { width: 13px; height: 13px; }

.lms {
    margin-top: 64px; background: var(--ink); color: var(--cream); border-radius: 32px; padding: 48px;
    display: grid; grid-template-columns: 1fr 541px; gap: 45px; align-items: center;
}
.lms__text { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; max-width: 518px; }
.lms__text .fac-p { color: var(--on-dark-muted); }
.lms__tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lms-tile { background: var(--dark-tile); border-radius: 18px; padding: 20px; min-height: 152px; display: flex; flex-direction: column; align-items: flex-start; }
.lms-tile .fac-ico { margin-bottom: 17px; }
.lms-tile strong { font-family: var(--font-display); font-weight: 600; font-size: 17px; line-height: 1.6; letter-spacing: -0.01em; }
.lms-tile span { font-size: 13.5px; line-height: 1.6; color: #a29d93; }

/* ---------- Library ---------- */
.library { display: grid; grid-template-columns: 595fr 544fr; gap: 64px; align-items: start; }
.library__media { position: relative; height: 673px; }
.library__main { width: 464px; max-width: 78%; height: 603px; object-fit: cover; border-radius: 28px; }
.library__sub {
    position: absolute; left: 285px; top: 441px; width: 309px; height: 232px; object-fit: cover;
    border-radius: 24px; border: 7px solid var(--ink);
}
.library__text { padding-top: 29px; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.library__lead { font-size: 18px; line-height: 1.62; }
.library__stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; width: 100%; margin: 12px 0; }
.lib-stat { background: var(--dark-tile); border: 1px solid rgba(255, 255, 255, .08); border-radius: 16px; padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.lib-stat strong { font-size: 28px; }
.library__text .fac-p { color: var(--on-dark-muted); }

/* ---------- Labs ---------- */
.labwide { background: var(--paper); border-radius: 28px; overflow: hidden; display: grid; grid-template-columns: 540px 1fr; }
.labwide__img { width: 100%; height: 100%; min-height: 472px; object-fit: cover; }
.labwide__body { padding: 48px 45px 48px 48px; display: flex; flex-direction: column; align-items: flex-start; gap: 15px; }
.labwide__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; width: 100%; margin-top: 8px; }
.labwide__stats div { background: var(--cream); border-radius: 16px; padding: 16px; display: flex; flex-direction: column; gap: 2px; }
.labwide__stats strong { font-family: var(--font-display); font-weight: 800; font-size: 24px; line-height: 1.6; letter-spacing: -0.03em; }
.labwide__stats span { font-size: 13px; line-height: 1.6; color: var(--muted); }

.lab-card { position: relative; background: var(--paper); border-radius: 28px; overflow: hidden; display: flex; flex-direction: column; }
.lab-card__media { height: 333px; flex: none; }
.lab-card__media img { width: 100%; height: 100%; object-fit: cover; }
.lab-card__ico {
    position: absolute; left: 32px; top: 305px; width: 58px; height: 58px; border-radius: 50%;
    background: var(--ink); border: 5px solid var(--paper); display: grid; place-items: center;
}
.lab-card__ico img { width: 18px; height: 18px; }
.lab-card__body { padding: 43px 32px 34px; display: flex; flex-direction: column; gap: 14px; }

/* ---------- Sports ---------- */
.sports-grid { display: grid; grid-template-columns: 531fr 346fr 289fr; gap: 14px 20px; }
.sports-quote {
    margin: 0; background: var(--cream); border-radius: 28px; padding: 44px 40px 40px; min-height: 440px;
    display: flex; flex-direction: column; gap: 14px;
}
.sports-quote__mark { font-family: var(--font-serif); color: var(--ochre); font-size: 120px; line-height: .6; height: 40px; }
.sports-quote blockquote { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: 30px; line-height: 1.2; letter-spacing: -0.03em; }
.sports-quote blockquote .serif { color: var(--ochre); font-size: 1.02em; }
.sports-quote figcaption { font-size: 14px; font-weight: 600; color: var(--muted); margin-bottom: 18px; }
.sports-grid__tall { border-radius: 22px; min-height: 440px; overflow: hidden; }
.sports-grid__tall img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sports-grid__stack { display: grid; grid-template-rows: 1fr 1fr; gap: 14px; }
.sports-grid__stack .fac-ph, .sports-grid__item { border-radius: 22px; overflow: hidden; }
.sports-grid__item img { width: 100%; height: 100%; object-fit: cover; display: block; }

.ach-table-wrap { overflow-x: auto; }
.ach-table { width: 100%; min-width: 720px; border-collapse: collapse; font-size: 15px; line-height: 1.55; }
.ach-table th {
    background: var(--ink); color: var(--cream); text-align: left; font-size: 12px; font-weight: 500;
    letter-spacing: .12em; text-transform: uppercase; padding: 14px 20px;
}
.ach-table th:first-child { border-radius: 16px 0 0 16px; width: 90px; }
.ach-table th:last-child { border-radius: 0 16px 16px 0; width: 120px; }
.ach-table td { padding: 18px 20px; color: var(--muted); border-bottom: 1px solid var(--cream-2); }
.ach-table td strong { color: var(--ink); font-weight: 600; }

.yoga { margin-top: 64px; background: var(--sage-soft); border-radius: 28px; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; min-height: 385px; }
.yoga__media { min-height: 300px; overflow: hidden; }
.yoga__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.yoga__body { padding: 48px 45px 48px 48px; display: flex; flex-direction: column; align-items: flex-start; gap: 15px; }

/* ---------- Services ---------- */
.svc { position: relative; background: var(--paper); border-radius: 24px; overflow: hidden; display: flex; flex-direction: column; padding-bottom: 28px; }
.svc__media { height: 243px; flex: none; overflow: hidden; }
.svc__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.svc__ico {
    position: relative; margin: -26px 0 0 26px; width: 62px; height: 62px; border-radius: 50%;
    border: 5px solid var(--paper); display: grid; place-items: center;
}
.svc__ico img { width: 18px; height: 18px; }
.svc__ico--ochre { background: var(--ochre); }
.svc__ico--terra { background: var(--terracotta-soft); }
.svc__ico--sage { background: var(--sage-soft); }
.svc__title { margin: 12px 26px 10px; font-family: var(--font-display); font-weight: 600; font-size: 21px; line-height: 1.25; letter-spacing: -0.02em; }
.svc__text { margin: 0 26px; font-size: 14.5px; line-height: 1.65; color: var(--muted); }
.svc .tags-row { margin: 16px 26px 0; }

.green {
    margin-top: 64px; background: var(--ink); color: var(--cream); border-radius: 32px; overflow: hidden;
    display: grid; grid-template-columns: 1fr 1fr; min-height: 439px;
}
.green__body { padding: 56px 45px 56px 48px; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.green__body .fac-p { color: var(--on-dark-muted); }
.green__media { min-height: 300px; overflow: hidden; }
.green__media img { width: 100%; height: 100%; object-fit: cover; display: block; }

.visit {
    margin-top: 64px; background: var(--ochre); border-radius: 36px; padding: 48px;
    display: grid; grid-template-columns: 1fr 532px; gap: 40px; align-items: center;
}
.visit__text { display: flex; flex-direction: column; align-items: flex-start; gap: 15px; }
.visit__title { font-family: var(--font-display); font-weight: 700; font-size: clamp(34px, 3.2vw, 46px); line-height: 1.05; letter-spacing: -0.04em; }
.visit__title .serif { letter-spacing: -0.01em; }
.visit__name { font-size: 14px; font-weight: 600; }
.visit__items { display: flex; flex-direction: column; gap: 10px; }
.visit-item { display: flex; align-items: center; gap: 14px; background: var(--paper); border-radius: 16px; padding: 13px 12px; transition: transform .3s var(--ease); }
.visit-item:hover { transform: translateX(4px); }
.visit-item__ico { width: 40px; height: 40px; border-radius: 50%; background: var(--ink); display: grid; place-items: center; flex: none; }
.visit-item__ico img { width: 16px; height: 16px; }
.visit-item small { display: block; font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.visit-item strong { display: block; font-size: 15px; font-weight: 600; line-height: 1.6; }

/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
    .fac-hero__row { flex-direction: column; align-items: flex-start; }
    .fac-glance { width: 100%; max-width: 560px; }
    .feature, .feature--flip, .library, .lms, .labwide, .visit { grid-template-columns: 1fr; }
    .feature--flip .feature__media { order: 0; }
    .library__media { height: auto; padding-bottom: 80px; }
    .library__main { max-width: 100%; width: 100%; height: 480px; }
    .library__sub { left: auto; right: 0; top: auto; bottom: 0; width: 46%; height: 200px; }
    .sports-grid { grid-template-columns: 1fr 1fr; }
    .sports-quote { grid-column: 1 / -1; min-height: 0; }
}
@media (max-width: 900px) {
    .fac-head, .fac-subhead { flex-direction: column; align-items: flex-start; gap: 20px; }
    .fac-grid-3, .fac-grid-2 { grid-template-columns: 1fr; }
    .green, .yoga { grid-template-columns: 1fr; }
    .green__media { order: -1; }
}
@media (max-width: 640px) {
    .fac-section { padding: 80px 20px; }
    .fac-section--round { border-radius: 36px 36px 0 0; }
    .fac-hero { padding: 140px 20px 72px; min-height: 0; }
    .fac-hero .eyebrow { white-space: normal; height: auto; padding-top: 5px; padding-bottom: 5px; }
    .fac-glance__grid { grid-template-columns: 1fr 1fr; }
    .fac-glance__stat strong { font-size: 28px; }
    .fac-tabs { padding: 16px 0 0; }
    .fac-tabs__row { flex-wrap: nowrap; overflow-x: auto; padding: 0 20px 4px; scrollbar-width: none; }
    .fac-tabs__row::-webkit-scrollbar { display: none; }
    .fac-tab { height: 42px; flex: none; }
    .fcard__title { font-size: 26px; }
    .feature__media { height: 280px; }
    .lms, .labwide__body, .yoga__body, .green__body, .visit { padding: 28px 22px; }
    .lms__tiles, .labwide__stats { grid-template-columns: 1fr 1fr; }
    .labwide__img { min-height: 260px; }
    .library__stats { grid-template-columns: 1fr 1fr; }
    .library__main { height: 360px; }
    .lab-card__media { height: 240px; }
    .lab-card__ico { top: 212px; }
    .lab-card__body { padding: 40px 22px 26px; }
    .sports-grid { grid-template-columns: 1fr; }
    .sports-quote { padding: 32px 24px; }
    .sports-quote blockquote { font-size: 24px; }
    .sports-grid__tall { min-height: 260px; }
    .sports-grid__stack .fac-ph { min-height: 200px; }
    .visit-item strong { font-size: 14px; white-space: normal; }
}
