/* NOVA Facilities — competitor-informed structure, locked NOVA editorial system. */
.nova-page-facilities { overflow-x: hidden; }
.nova-page-facilities h1, .nova-page-facilities h2, .nova-page-facilities h3 { text-wrap: balance; }

.nova-page-facilities .nova-facilities-hero { border-bottom: 1px solid var(--nova-color-border); }
.nova-page-facilities .nova-facilities-hero .nova-sv3-hero__grid { min-height: clamp(500px, 42vw, 590px); }
.nova-page-facilities .nova-facilities-hero .nova-sv3-hero__copy h1 { max-width: none; font-size: clamp(3.35rem, 4.4vw, 4.3rem); }
.nova-page-facilities .nova-facilities-hero .nova-sv3-hero__copy h1 span,
.nova-page-facilities .nova-fac-heading h2 span,
.nova-page-facilities .nova-fac-integrated h2 span { display: block; white-space: nowrap; }
.nova-page-facilities .nova-facilities-hero .nova-sv3-hero__visual img { object-position: 50% 50%; }

.nova-page-facilities .nova-fac-heading { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(340px, .72fr); align-items: end; gap: clamp(44px, 8vw, 120px); margin-bottom: clamp(46px, 5vw, 72px); }
.nova-page-facilities .nova-fac-heading h2 { margin: 0; font-size: clamp(3rem, 4.1vw, 4.2rem); line-height: .98; letter-spacing: -.045em; }
.nova-page-facilities .nova-fac-heading > p { max-width: 500px; margin: 0 0 5px; color: var(--nova-color-text-secondary); font-size: .96rem; line-height: 1.78; }

.nova-page-facilities .nova-fac-overview { padding-block: clamp(92px, 8vw, 126px); background: #fff; }
.nova-page-facilities .nova-fac-overview__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(18px, 2vw, 30px); }
.nova-page-facilities .nova-fac-overview figure,
.nova-page-facilities .nova-fac-workshops figure,
.nova-page-facilities .nova-fac-integrated figure { margin: 0; }
.nova-page-facilities .nova-fac-overview figure { min-width: 0; }
.nova-page-facilities .nova-fac-overview figure > img { width: 100%; height: auto; aspect-ratio: 4 / 3; display: block; object-fit: cover; background: #e6e0da; }
.nova-page-facilities .nova-fac-overview figure:nth-child(1) > img { object-position: 50% 55%; }
.nova-page-facilities .nova-fac-overview figure:nth-child(2) > img { object-position: 50% 50%; }
.nova-page-facilities .nova-fac-overview figure:nth-child(3) > img { object-position: 57% 50%; }
.nova-page-facilities .nova-fac-overview figcaption { display: grid; grid-template-columns: auto 1fr; column-gap: 13px; row-gap: 4px; padding-top: 17px; }
.nova-page-facilities .nova-fac-overview figcaption span { grid-row: 1 / 3; color: var(--nova-color-accent); font-size: .66rem; font-weight: 650; letter-spacing: .12em; }
.nova-page-facilities .nova-fac-overview figcaption strong { color: var(--nova-color-text); font-family: var(--nova-font-heading); font-size: 1.42rem; font-weight: 400; line-height: 1; }
.nova-page-facilities .nova-fac-overview figcaption small { color: var(--nova-color-text-secondary); font-size: .76rem; line-height: 1.45; }

.nova-page-facilities .nova-fac-workshops { padding-block: clamp(92px, 8vw, 126px); border-block: 1px solid var(--nova-color-border); background: var(--sv4-warm, #f5f2ee); }
.nova-page-facilities .nova-fac-workshops__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(34px, 4vw, 58px) clamp(18px, 2vw, 30px); }
.nova-page-facilities .nova-fac-workshops figure { min-width: 0; }
.nova-page-facilities .nova-fac-workshops img { width: 100%; height: auto; aspect-ratio: 4 / 3; display: block; object-fit: cover; background: #ded8d2; }
.nova-page-facilities .nova-fac-workshops figure:nth-child(1) img { object-position: 50% 58%; }
.nova-page-facilities .nova-fac-workshops figure:nth-child(2) img { object-position: 54% 50%; }
.nova-page-facilities .nova-fac-workshops figure:nth-child(3) img { object-position: 55% 50%; }
.nova-page-facilities .nova-fac-workshops figcaption { padding-top: 15px; color: var(--nova-color-text); font-size: .72rem; font-weight: 650; letter-spacing: .1em; text-transform: uppercase; }

.nova-page-facilities .nova-fac-integrated { padding-block: clamp(92px, 8.5vw, 134px); background: #fff; }
.nova-page-facilities .nova-fac-integrated__grid { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(390px, .78fr); gap: clamp(56px, 8vw, 126px); align-items: center; }
.nova-page-facilities .nova-fac-integrated figure { overflow: hidden; }
.nova-page-facilities .nova-fac-integrated figure img { width: 100%; height: auto; aspect-ratio: 4 / 3; display: block; object-fit: cover; object-position: 50% 50%; background: #ded8d2; }
.nova-page-facilities .nova-fac-integrated h2 { margin: 0 0 24px; font-size: clamp(3rem, 4vw, 4.1rem); line-height: .98; letter-spacing: -.045em; }
.nova-page-facilities .nova-fac-integrated__copy > p:not(.nova-eyebrow) { max-width: 510px; margin: 0 0 30px; color: var(--nova-color-text-secondary); font-size: .95rem; line-height: 1.78; }
.nova-page-facilities .nova-fac-integrated ol { margin: 0; padding: 0; list-style: none; }
.nova-page-facilities .nova-fac-integrated li { display: grid; grid-template-columns: 34px 90px 1fr; gap: 12px; align-items: baseline; padding-block: 17px; border-top: 1px solid var(--nova-color-border); }
.nova-page-facilities .nova-fac-integrated li:last-child { border-bottom: 1px solid var(--nova-color-border); }
.nova-page-facilities .nova-fac-integrated li span { color: var(--nova-color-accent); font-size: .66rem; font-weight: 650; letter-spacing: .1em; }
.nova-page-facilities .nova-fac-integrated li strong { color: var(--nova-color-text); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.nova-page-facilities .nova-fac-integrated li small { color: var(--nova-color-text-secondary); font-size: .78rem; line-height: 1.55; }

.nova-page-facilities .nova-fac-cta { margin-top: 0; }

@media (hover: hover) and (pointer: fine) {
  .nova-page-facilities .nova-fac-overview img, .nova-page-facilities .nova-fac-workshops img, .nova-page-facilities .nova-fac-integrated img { transition: transform 240ms cubic-bezier(.23,1,.32,1); }
  .nova-page-facilities .nova-fac-overview figure:hover img, .nova-page-facilities .nova-fac-workshops figure:hover img, .nova-page-facilities .nova-fac-integrated figure:hover img { transform: scale(1.02); }
}

@media (max-width: 900px) {
  .nova-page-facilities .nova-facilities-hero .nova-sv3-hero__grid { min-height: 0; }
  .nova-page-facilities .nova-facilities-hero .nova-sv3-hero__copy h1 { font-size: clamp(2.65rem, 10.8vw, 3.1rem); }
  .nova-page-facilities .nova-facilities-hero .nova-sv3-hero__visual { min-height: 420px; }
  .nova-page-facilities .nova-fac-heading, .nova-page-facilities .nova-fac-integrated__grid { grid-template-columns: 1fr; }
  .nova-page-facilities .nova-fac-heading { align-items: start; gap: 26px; }
  .nova-page-facilities .nova-fac-overview__grid, .nova-page-facilities .nova-fac-workshops__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nova-page-facilities .nova-fac-integrated__grid { gap: 48px; }
}

@media (max-width: 640px) {
  .nova-page-facilities .nova-facilities-hero .nova-sv3-hero__visual { min-height: 0; aspect-ratio: 4 / 3; }
  .nova-page-facilities .nova-fac-heading h2, .nova-page-facilities .nova-fac-integrated h2 { font-size: clamp(2.5rem, 11.2vw, 3rem); }
  .nova-page-facilities .nova-fac-heading h2 span, .nova-page-facilities .nova-fac-integrated h2 span { white-space: normal; }
  .nova-page-facilities .nova-fac-overview__grid, .nova-page-facilities .nova-fac-workshops__grid { grid-template-columns: 1fr; }
  .nova-page-facilities .nova-fac-overview__grid, .nova-page-facilities .nova-fac-workshops__grid { gap: 34px; }
  .nova-page-facilities .nova-fac-integrated li { grid-template-columns: 32px 1fr; }
  .nova-page-facilities .nova-fac-integrated li small { grid-column: 2; }
}

@media (prefers-reduced-motion: reduce) {
  .nova-page-facilities .nova-fac-overview img, .nova-page-facilities .nova-fac-workshops img, .nova-page-facilities .nova-fac-integrated img { transition: none; }
}
