/* Self-hosted Google Fonts (SIL Open Font License), latin subset */
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 300; font-display: swap; src: url('../fonts/montserrat-latin-300-normal.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/montserrat-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/montserrat-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/montserrat-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/montserrat-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 800; font-display: swap; src: url('../fonts/montserrat-latin-800-normal.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/playfair-display-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/playfair-display-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 900; font-display: swap; src: url('../fonts/playfair-display-latin-900-normal.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 400; font-display: swap; src: url('../fonts/playfair-display-latin-400-italic.woff2') format('woff2'); }
@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 700; font-display: swap; src: url('../fonts/playfair-display-latin-700-italic.woff2') format('woff2'); }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 300; font-display: swap; src: url('../fonts/plus-jakarta-sans-latin-300-normal.woff2') format('woff2'); }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/plus-jakarta-sans-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/plus-jakarta-sans-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Plus Jakarta Sans'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/plus-jakarta-sans-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/inter-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/inter-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/inter-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Inter'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/inter-latin-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Noto Serif'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/noto-serif-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/dm-sans-latin-600-normal.woff2') format('woff2'); }

/* =========================================================
   Badr Al Safaa Medical Centre — Home
   Built 1:1 from Figma file "Badr-Al-Safaa", frame "Home" (526:1618)
   Design width: 1440px · content width: 1184px (128px side gutters)
   ========================================================= */

:root {
  --gold: #ecc02b;
  --gold-deep: #b88724;
  --gold-brown: #7f5600;
  --amber: #d99814;
  --orange: #d0621d;
  --ink: #231f20;
  --ink-2: #1c1917;
  --grey-nav: #595a5c;
  --cream: #faf6ee;
  --white: #ffffff;

  --f-sans: 'Montserrat', sans-serif;
  --f-serif: 'Playfair Display', serif;
  --f-dm: 'DM Sans', sans-serif;
  --f-noto: 'Noto Serif', serif;
  --f-jakarta: 'Plus Jakarta Sans', sans-serif;
  --f-inter: 'Inter', sans-serif;

  --content: 1184px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--white);
  color: var(--ink);
  font-family: var(--f-sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
p, h1, h2, h3, h4, ul, ol { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
img { display: block; max-width: none; }
input, select { font: inherit; }

.container {
  width: min(var(--content), calc(100% - 32px));
  margin-inline: auto;
}
.nowrap { white-space: nowrap; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* ---------- Top bar (526:1619) ---------- */
.topbar { background: var(--ink); height: 43px; }
.topbar .container { height: 100%; display: flex; align-items: center; justify-content: space-between; }
.topbar__left { display: flex; align-items: center; gap: 12px; }
.topbar__emergency { display: flex; align-items: center; gap: 8px; }
.topbar__emergency-icon {
  width: 20px; height: 20px; border-radius: 9999px;
  background: #fffbeb; border: 1px solid rgba(217, 155, 38, 0.3);
  display: flex; align-items: center; justify-content: center; padding: 1px;
}
.topbar__emergency-icon img { width: 12px; height: 12px; }
.topbar__emergency-text { font-size: 11px; line-height: 16px; color: var(--orange); font-weight: 600; white-space: nowrap; }
.topbar__emergency-text b { font-weight: 700; letter-spacing: 0.3px; }
.topbar__dot { font-size: 12px; line-height: 16px; color: #fff; }
.topbar__tagline { font-size: 11px; line-height: 16px; font-weight: 500; color: #fff; white-space: nowrap; }
.topbar__right { display: flex; align-items: center; gap: 24px; }
.topbar__pay { display: flex; align-items: center; gap: 6px; font-size: 11px; line-height: 16px; font-weight: 500; color: #fff; white-space: nowrap; }
.topbar__pay img { width: 14px; height: 14px; }
.topbar__divider { width: 1px; height: 14px; background: rgba(255, 255, 255, 0.47); }
.lang { display: flex; align-items: center; }
.lang__btn { padding: 2px 4px; font-size: 11px; line-height: 16px; font-weight: 700; letter-spacing: 0.275px; color: #fff; }
.lang__btn.is-active { color: var(--gold); }
.lang__sep { padding: 0 4px; font-size: 11px; line-height: 16px; font-weight: 700; letter-spacing: 0.275px; color: #fff; }
.lang__btn--ar { font-family: 'FreeSerif', 'Times New Roman', serif; }

/* ---------- Main navigation (526:2168) ---------- */
.site-nav { height: 80px; border-bottom: 1px solid rgba(0, 0, 0, 0.14); background: #fff; position: relative; z-index: 5; }
.site-nav .container { height: 100%; display: flex; align-items: center; gap: 132px; padding-top: 2px; }
.site-nav__logo { display: block; flex-shrink: 0; }
.site-nav__logo img { width: 162.285px; height: 47.798px; }
.site-nav__menu { flex: 1 0 0; display: flex; justify-content: flex-end; align-items: center; gap: 16px; }
.site-nav__link { padding: 8px; border-radius: 8px; font-size: 16px; line-height: 24px; color: var(--grey-nav); white-space: nowrap; transition: color .2s; }
.site-nav__link:hover { color: var(--ink); }
.btn-nav {
  display: inline-flex; align-items: center; justify-content: center;
  width: 163px; height: 44px; padding: 10px 24px; border-radius: 6px;
  background: var(--gold); color: var(--ink);
  font-family: var(--f-dm); font-weight: 600; font-size: 14px; font-variation-settings: "opsz" 14;
  text-transform: capitalize; white-space: nowrap; transition: filter .2s;
}
.btn-nav:hover { filter: brightness(1.05); }
.site-nav__toggle { display: none; }

/* ---------- Hero (526:2289) ---------- */
.hero { position: relative; height: 673px; overflow: hidden; background: #fff; }
.hero__bg {
  position: absolute; width: 2015px; height: 1489px;
  left: calc(50% - 873px); top: -666px; pointer-events: none;
}
.hero__bg-img-wrap { position: absolute; inset: 0; overflow: hidden; }
.hero__bg-img-wrap img { position: absolute; left: 0.42%; top: 0; width: 99.59%; height: 99.26%; }
.hero__bg-shade {
  position: absolute; inset: 0;
  background-image: linear-gradient(-20.0347deg, rgba(0,0,0,0.6) 23.401%, rgba(0,0,0,0.4) 40.164%, rgba(0,0,0,0) 57.033%);
}
.hero__content {
  position: absolute; left: calc(50% + 90px); top: 148px; width: 536px;
  display: flex; flex-direction: column; align-items: center; gap: 32px;
}
.hero__text { width: 100%; padding-right: 22.333px; display: flex; flex-direction: column; align-items: flex-start; gap: 14.889px; }
.hero__badge {
  display: inline-flex; align-items: center; gap: 9.306px; padding: 5.583px 14.889px;
  border-radius: 9999px; background: rgba(255,255,255,0.11); box-shadow: 0 0.931px 1.861px rgba(0,0,0,0.05);
}
.hero__badge-dot { width: 7.444px; height: 7.444px; border-radius: 9999px; background: var(--gold); }
.hero__badge-text { font-size: 11.167px; line-height: 14.889px; font-weight: 700; letter-spacing: 0.5583px; text-transform: uppercase; color: #fff; white-space: nowrap; }
.hero__title { font-family: var(--f-serif); font-weight: 700; font-size: 60px; line-height: 60px; letter-spacing: -1.675px; color: #fff; white-space: nowrap; }
.hero__title em { display: block; font-style: italic; font-weight: 400; color: var(--gold); }
.hero__lead { width: 523px; font-size: 16px; line-height: 22px; color: #fff; }
.hero__actions { display: flex; align-items: center; gap: 14.889px; }
.btn-hero {
  display: inline-flex; align-items: center; justify-content: center; gap: 9.306px;
  width: 201px; height: 40.944px; padding: 9.306px 22.333px; border-radius: 6px;
  font-size: 12.12px; font-weight: 600; text-transform: capitalize; white-space: nowrap; transition: filter .2s, background-color .2s;
}
.btn-hero img { width: 14.889px; height: 14.889px; }
.btn-hero--primary { background: var(--gold); color: var(--ink); }
.btn-hero--primary:hover { filter: brightness(1.05); }
.btn-hero--ghost { background: rgba(255,255,255,0.09); border: 0.931px solid rgba(255,255,255,0.18); color: #fff; }
.btn-hero--ghost:hover { background: rgba(255,255,255,0.16); }
.hero__campus { height: 18.611px; width: 100%; position: relative; }
.hero__campus-row { position: absolute; left: 0; top: 3.72px; display: flex; align-items: center; gap: 7.444px; white-space: nowrap; }
.pulse-dot { position: relative; width: 7.444px; height: 7.444px; }
.pulse-dot::before, .pulse-dot::after { content: ""; position: absolute; inset: 0; border-radius: 9999px; background: var(--gold); }
.pulse-dot::before { opacity: .75; animation: ping 1.6s cubic-bezier(0,0,.2,1) infinite; }
@keyframes ping { 75%, 100% { transform: scale(2); opacity: 0; } }
.hero__campus-label { font-size: 13.028px; line-height: 14.889px; font-weight: 600; color: rgba(255,255,255,0.5); }
.hero__campus-value { font-size: 13.028px; line-height: 14.889px; font-weight: 700; color: #fff; }
.hero__campus-sep { font-family: 'Liberation Sans', Arial, sans-serif; font-size: 11.167px; line-height: 14.889px; color: var(--gold); }
.hero__campus-link { display: inline-flex; align-items: center; font-size: 13.028px; line-height: 14.889px; font-weight: 700; color: var(--gold); }
.hero__campus-link img { width: 12.472px; height: 7.5px; margin-left: 0; }

/* Find-a-doctor widget */
.finder {
  position: relative; width: 100%; max-width: 536px; padding: 10.237px;
  border-radius: 11.167px; border: 0.931px solid rgba(255,255,255,0.2);
  background: rgba(15,23,42,0.8); backdrop-filter: blur(5.583px); -webkit-backdrop-filter: blur(5.583px);
  box-shadow: 0 23.264px 46.528px -11.167px rgba(0,0,0,0.25);
}
.finder__head { display: flex; align-items: center; justify-content: space-between; padding: 0 7.444px 8.375px; border-bottom: 0.931px solid rgba(255,255,255,0.1); }
.finder__title, .finder__live { display: flex; align-items: center; }
.finder__title { gap: 5.583px; font-size: 9.306px; line-height: 13.958px; font-weight: 600; letter-spacing: 0.2326px; text-transform: uppercase; color: #fcd34d; }
.finder__title i, .finder__live i { width: 5.583px; height: 5.583px; border-radius: 9999px; display: block; }
.finder__title i { background: #fbbf24; }
.finder__live { gap: 3.722px; font-size: 9.306px; line-height: 13.958px; color: #34d399; }
.finder__live i { background: #10b981; }
.finder__form { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 5.583px; padding-top: 7.444px; align-items: center; }
.finder__field { position: relative; }
.finder__field--search { grid-column: 1 / span 5; }
.finder__field--select { grid-column: 6 / span 4; }
.finder__input {
  width: 100%; height: 27.92px; border-radius: 5.583px; border: 0.931px solid rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.1); color: #fff; padding: 6.514px 8.375px 7.445px 30.709px;
  font-size: 11.167px; line-height: normal; outline: none;
}
.finder__input::placeholder { color: #94a3b8; opacity: 1; }
.finder__input:focus, .finder__select:focus { border-color: rgba(251,191,36,0.7); }
.finder__search-icon { position: absolute; left: 9.306px; top: 50%; transform: translateY(-50%); width: 13.028px; height: 13.028px; pointer-events: none; }
.finder__select {
  -webkit-appearance: none; appearance: none; width: 100%; height: 27.92px;
  border-radius: 5.583px; border: 0.931px solid rgba(255,255,255,0.2); background: #0f172a;
  color: #e2e8f0; padding: 6.514px 23.264px 6.514px 10.237px; font-size: 11.167px; line-height: 14.889px; outline: none; cursor: pointer;
}
.finder__select-bg { position: absolute; left: 142.998px; top: 50%; transform: translateY(-50%); width: 16.75px; height: 16.75px; pointer-events: none; }
.finder__select-chevron { position: absolute; right: 7.444px; top: 50%; transform: translateY(-50%); width: 11.167px; height: 11.167px; pointer-events: none; }
.finder__submit {
  grid-column: 10 / span 3; height: 26.056px; border-radius: 5.583px; background: #fbbf24;
  display: flex; align-items: center; justify-content: center; gap: 3.722px; padding: 5.583px 11.167px;
  box-shadow: 0 0.931px 2.792px rgba(0,0,0,0.1), 0 0.931px 1.861px -0.931px rgba(0,0,0,0.1);
  font-size: 11.167px; line-height: 14.889px; font-weight: 700; letter-spacing: 0.5583px; text-transform: uppercase; color: #020617;
  transition: filter .2s;
}
.finder__submit:hover { filter: brightness(1.06); }
.finder__submit img { width: 11.167px; height: 11.167px; }

/* ---------- Stats strip (529:9277) ---------- */
.stats {
  background: #161413; padding: 24px 0; overflow: hidden;
  border-top: 1px solid rgba(245,158,11,0.25); border-bottom: 1px solid rgba(245,158,11,0.25);
  box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1);
  position: relative; z-index: 2;
}
.stats__viewport { width: 100%; height: 28px; overflow: hidden; }
.stats__track { display: flex; align-items: center; width: max-content; animation: marquee 40s linear infinite; }
.stats__viewport:hover .stats__track { animation-play-state: paused; }
@keyframes marquee { to { transform: translateX(-50%); } }
.stats__set { display: flex; align-items: center; gap: 48px; padding-right: 0; }
.stats__item { display: flex; align-items: center; gap: 12px; white-space: nowrap; }
.stats__item--live { padding-right: 45.53px; }
.stats__badge {
  width: 28px; height: 28px; border-radius: 9999px; padding: 1px;
  background: rgba(251,191,36,0.1); border: 1px solid rgba(251,191,36,0.3);
  display: flex; align-items: center; justify-content: center;
}
.stats__badge--shadow { box-shadow: 0 1px 2px rgba(251,191,36,0.1); }
.stats__badge img { width: 14px; height: 14px; }
.stats__badge-text { font-family: var(--f-serif); font-weight: 700; font-size: 12px; line-height: 16px; color: var(--gold); }
.stats__label { font-size: 14px; line-height: 20px; font-weight: 600; letter-spacing: 0.35px; text-transform: uppercase; color: #fff; }
.stats__label--muted { color: #e2e8f0; }
.stats__label--hot { font-weight: 700; color: #fcd34d; }
.stats__star { padding-left: 24px; font-family: 'FreeSans', Arial, sans-serif; font-size: 12px; line-height: 16px; color: rgba(251,191,36,0.6); }
.live-pill {
  position: relative; width: 55.47px; height: 22.5px; border-radius: 9999px;
  background: rgba(239,68,68,0.2); border: 1px solid rgba(239,68,68,0.4);
}
.live-pill i { position: absolute; width: 6px; height: 6px; border-radius: 9999px; background: #f87171; left: calc(50% - 15.74px); top: 50%; transform: translate(-50%, -50%); }
.live-pill span { position: absolute; left: calc(50% + 6px); top: calc(50% - 0.75px); transform: translate(-50%, -50%); font-size: 11px; line-height: 16.5px; font-weight: 700; letter-spacing: 0.55px; color: #f87171; }

/* ---------- Section heading helpers ---------- */
.eyebrow { font-size: 12px; font-weight: 700; text-transform: uppercase; }

/* ---------- Specialists (526:1647) ---------- */
.specialists { background: #fff; border-top: 0.97px solid #e9dfcb; border-bottom: 0.97px solid #e9dfcb; padding: 78.45px 0; }
.specialists__inner { width: min(1188px, calc(100% - 32px)); margin-left: max(16px, calc(50% - 592px)); display: flex; flex-direction: column; align-items: center; gap: 24px; }
.specialists__top { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 24px; }
.specialists__intro { width: 652.05px; max-width: 100%; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; }
.specialists__eyebrow { color: var(--gold); letter-spacing: 1.1644px; line-height: 15.525px; white-space: nowrap; }
.specialists__title { font-family: var(--f-serif); font-weight: 700; font-size: 32px; line-height: 40px; letter-spacing: -1px; color: var(--ink); white-space: nowrap; }
.specialists__title em { font-style: italic; color: var(--gold-deep); }
.specialists__lead { width: 484px; max-width: 100%; display: flex; justify-content: center; }
.specialists__lead p { width: 100%; font-size: 14px; line-height: 20px; color: rgba(28,25,23,0.7); }
.tabs { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 9.703px; }
.tab {
  display: flex; align-items: center; justify-content: center; padding: 8.733px 20.376px; border-radius: 9999px;
  background: #fff; border: 0.97px solid #dfd6c5;
  font-size: 11.644px; line-height: 15.525px; font-weight: 700; color: rgba(28,25,23,0.8); white-space: nowrap;
  transition: background-color .2s, color .2s, border-color .2s;
}
.tab:hover { border-color: #c9b996; }
.tab.is-active { background: #1c1917; color: #fff; border-color: transparent; border-width: 0; padding: 7.763px 19.406px; filter: drop-shadow(0 0.97px 0.97px rgba(0,0,0,0.05)); }
.doctors { width: 100%; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 24px; }
.doctor-card {
  position: relative; width: 278px; height: 350px; border-radius: 16px; overflow: hidden;
  background: #171717; box-shadow: 0 1px 2px rgba(0,0,0,0.05); display: block;
}
.doctor-card__media { position: absolute; inset: -0.25px 0 0.25px 0; background: #fff; overflow: hidden; }
.doctor-card__photo { position: absolute; border-radius: 6px; overflow: hidden; }
.doctor-card__photo img { position: absolute; }
.doctor-card__photo::after { content: ""; position: absolute; inset: 0; border-radius: 6px; background: linear-gradient(to bottom, rgba(0,0,0,0) 48.558%, #000); }
.doctor-card__photo img { transition: transform .5s ease; }
.doctor-card:hover .doctor-card__photo img { transform: scale(1.04); }
.doctor-card__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 20px; display: flex; flex-direction: column; justify-content: flex-end; }
.doctor-card__name { font-size: 20px; line-height: 28px; font-weight: 700; color: #fff; white-space: pre-wrap; }
.doctor-card__role { padding-top: 4px; font-size: 14px; line-height: 20px; color: #d4d4d4; }
.doctor-card__cta { margin-top: 16px; padding-top: 13px; border-top: 1px solid rgba(255,255,255,0.2); display: flex; align-items: center; justify-content: space-between; }
.doctor-card__cta span { font-size: 12px; line-height: 16px; font-weight: 500; color: rgba(255,255,255,0.9); white-space: nowrap; }
.doctor-card__cta img { width: 16px; height: 16px; }

.staff-banner {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 21px;
  border-radius: 8px; border: 1px solid rgba(217,152,20,0.3); box-shadow: 0 1px 2px rgba(0,0,0,0.05);
  background-image: linear-gradient(89.574deg, rgb(217,155,38) 3.5956%, rgba(35,31,32,0.42) 23.263%, rgba(35,31,32,0.45) 109.56%);
}
.staff-banner__left { display: flex; align-items: center; gap: 16px; }
.avatars { display: flex; align-items: flex-start; padding: 4px; overflow: hidden; flex-shrink: 0; }
.avatars span {
  width: 40px; height: 40px; border-radius: 9999px; display: flex; align-items: center; justify-content: center;
  box-shadow: 0 0 0 2px #fff; font-size: 12px; line-height: 16px; color: #fff; font-weight: 600; flex-shrink: 0;
}
.avatars span + span { margin-left: -12px; }
.avatars span:nth-child(1) { background: #d99814; font-weight: 700; }
.avatars span:nth-child(2) { background: #44403c; }
.avatars span:nth-child(3) { background: #b45309; }
.staff-banner__title { font-size: 14px; line-height: 20px; font-weight: 700; color: #fff; margin-bottom: -1px; }
.staff-banner__sub { font-size: 11px; line-height: 16.5px; color: #fff; }
.btn-outline-gold {
  display: inline-flex; align-items: center; gap: 8px; padding: 11px 21px; border-radius: 4px; flex-shrink: 0;
  background: #fff; border: 1px solid rgba(217,152,20,0.4); filter: drop-shadow(0 1px 1px rgba(0,0,0,0.05));
  font-size: 12px; line-height: 16px; font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase; color: #1a1816; white-space: nowrap;
  transition: background-color .2s;
}
.btn-outline-gold:hover { background: #fffaf0; }
.btn-outline-gold .arrow { font-family: 'Liberation Sans', Arial, sans-serif; font-weight: 700; transition: transform .2s; }
.btn-outline-gold:hover .arrow { transform: translateX(3px); }

/* ---------- Departments (526:1731) ---------- */
.departments { background: var(--cream); padding: 72px 0 8px; }
.departments__head { position: relative; height: 118px; }
.departments__intro { display: flex; flex-direction: column; gap: 8px; }
.departments__eyebrow { color: var(--gold); letter-spacing: 1.2px; line-height: 16px; }
.departments__title { font-family: var(--f-serif); font-weight: 700; font-size: 32px; line-height: 35px; color: var(--ink-2); white-space: pre; }
.departments__nav { position: absolute; right: 0; top: 50px; display: flex; align-items: center; gap: 7px; }
.round-btn {
  width: 43.946px; height: 43.946px; border-radius: 9999px; display: flex; align-items: center; justify-content: center;
  transition: transform .2s, filter .2s, opacity .2s;
}
.round-btn img { width: 18.311px; height: 18.311px; }
.round-btn--outline { background: #fff; border: 1px solid var(--gold); }
.round-btn--outline img { transform: scaleX(-1); }
.round-btn--solid { background: var(--gold); }
.round-btn:hover { transform: translateY(-1px); filter: brightness(1.03); }
.round-btn[disabled] { cursor: default; transform: none; filter: none; }
.dept-track {
  display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  scrollbar-width: none; -ms-overflow-style: none; height: 496px;
}
.dept-track::-webkit-scrollbar { display: none; }
.dept-card { position: relative; flex: 0 0 240px; height: 496px; background: #000; overflow: hidden; scroll-snap-align: start; }
.dept-card__media { position: absolute; height: 368px; top: 0; }
.dept-card__media-crop { position: absolute; inset: 0; overflow: hidden; }
.dept-card__media-crop img { position: absolute; transition: transform .6s ease; }
.dept-card:hover .dept-card__media-crop img { transform: scale(1.04); }
.dept-card__link { position: absolute; inset: 0; z-index: 3; cursor: pointer; }   /* whole card opens the Departments page */
.dept-card__link:focus-visible { outline: 2px solid #fbbf24; outline-offset: -4px; }
.dept-card__media::after {
  content: ""; position: absolute; inset: 0;
  background-image: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.4) 100%), linear-gradient(180deg, rgba(0,0,0,0) 60.075%, #000 100%);
}
.dept-card__media--dark::after {
  background-image: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.4) 100%), linear-gradient(90deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.2) 100%), linear-gradient(180deg, rgba(0,0,0,0) 60.075%, #000 100%);
}
.dept-card__body { position: absolute; left: 24px; top: 324px; right: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.dept-card__body--w236 { right: auto; width: 236px; }
.dept-card__num {
  width: 38px; height: 38px; border-radius: 9999px; background: #000; border: 1.357px solid rgba(255,255,255,0.2);
  backdrop-filter: blur(8.143px); -webkit-backdrop-filter: blur(8.143px);
  display: flex; align-items: center; justify-content: center; padding: 7.464px 1.357px 8.821px;
  font-size: 16.286px; line-height: 21.714px; font-weight: 600; color: #fbbf24;
}
.dept-card__text { width: 100%; display: flex; flex-direction: column; gap: 4px; }
.dept-card__text--w216 { width: 216px; }
.dept-card__name { font-family: var(--f-serif); font-weight: 900; font-size: 20px; line-height: 22.5px; letter-spacing: 0.45px; color: #fff; }
.dept-card__desc { font-size: 12px; line-height: 19.5px; font-weight: 300; color: #d6d3d1; overflow: hidden; }

/* ---------- Amenities (526:1733) ---------- */
.amenities { padding: 78.8px 0; }
.amenities .container { display: flex; flex-direction: column; gap: 40px; }
.amenities__head { display: flex; align-items: flex-end; gap: 287px; }
.amenities__intro { width: 768px; max-width: 768px; display: flex; flex-direction: column; gap: 7.3px; flex-shrink: 1; }
.amenities__eyebrow { color: var(--gold-brown); letter-spacing: 1.2px; line-height: 16px; }
.amenities__title { height: 50.7px; font-family: var(--f-serif); font-weight: 700; font-size: 48px; line-height: 48px; letter-spacing: -1.2px; color: var(--ink); white-space: nowrap; padding-top: 0.2px; }
.amenities__title em { font-style: italic; color: var(--gold-deep); }
.amenities__lead { font-size: 14px; line-height: 20px; color: rgba(28,25,23,0.7); padding-bottom: 0.75px; }
.btn-pill {
  display: inline-flex; align-items: center; gap: 8px; padding: 9px 21px; border-radius: 9999px; flex-shrink: 0;
  border: 1px solid rgba(28,25,23,0.3); font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: 0.3px; text-transform: uppercase; color: var(--ink-2); white-space: nowrap;
  transition: background-color .2s, border-color .2s;
}
.btn-pill img { width: 14px; height: 14px; }
.btn-pill:hover { background: rgba(28,25,23,0.04); border-color: rgba(28,25,23,0.5); }
.amenity-cards { display: flex; align-items: stretch; justify-content: center; gap: 24px; width: 100%; }
.amenity {
  position: relative; flex: 1 0 0; min-width: 0; min-height: 311px; padding: 33px; border-radius: 16px;
  display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start;
  transition: transform .25s ease, box-shadow .25s ease;
}
.amenity:hover { transform: translateY(-3px); }
.amenity--light { border: 1px solid #ebd090; background-image: linear-gradient(134.592deg, #fffcf5 0%, #fdf5e3 100%); filter: drop-shadow(0 1px 1px rgba(0,0,0,0.05)); }
.amenity--gold { border: 1px solid rgba(127,86,0,0.39); background-image: linear-gradient(134.61deg, rgba(164,124,44,0) 0%, rgba(164,124,44,0.4) 100%); box-shadow: 0 1px 2px rgba(0,0,0,0.05); }
.amenity--dark { border: 1px solid #4a443e; background-image: linear-gradient(144.616deg, #2b2724 0%, #1a1816 100%); box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1); }
.amenity__top { width: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: 11.2px; }
.amenity--gold .amenity__top { gap: 11.1px; }
.amenity__icon { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; }
.amenity--light .amenity__icon { background: #d99814; filter: drop-shadow(0 1px 1px rgba(0,0,0,0.05)); }
.amenity--gold .amenity__icon { background: #a47c2c; filter: drop-shadow(0 1px 1px rgba(0,0,0,0.05)); }
.amenity--dark .amenity__icon { background: rgba(255,186,63,0.15); border: 1px solid rgba(255,186,63,0.35); box-shadow: 0 1px 2px rgba(0,0,0,0.05); padding: 1px; }
.amenity__title { padding-top: 4.8px; font-family: var(--f-noto); font-weight: 600; font-size: 20px; line-height: 28px; color: #1b1c1a; font-variation-settings: "CTGR" 0, "wdth" 100; }
.amenity--gold .amenity__title { padding-top: 4.9px; }
.amenity--dark .amenity__title { color: #fff; }
.amenity__desc { font-size: 13px; line-height: 21.13px; color: #514534; }
.amenity--dark .amenity__desc { color: #d4d4d4; }
.amenity__foot { width: 100%; padding-top: 24px; }
.amenity__foot-inner { padding-top: 17px; border-top: 1px solid rgba(217,152,20,0.25); display: flex; align-items: center; justify-content: space-between; }
.amenity--gold .amenity__foot-inner { border-top-color: #a47c2c; }
.amenity--dark .amenity__foot-inner { border-top-color: rgba(255,255,255,0.12); }
.amenity__link { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; line-height: 16px; font-weight: 600; white-space: nowrap; color: var(--gold-brown); }
.amenity--gold .amenity__link { color: #a47c2c; }
.amenity--dark .amenity__link { color: #ffba3f; }
.amenity__link img { width: 10px; height: 10px; transition: transform .2s; }
.amenity__link:hover img { transform: translateX(3px); }

/* ---------- Packages (674:32700) ---------- */
.packages { background: var(--ink); padding: 84.8px 0 82.8px; }
.packages .container { display: flex; flex-direction: column; align-items: center; gap: 32px; }
.packages__head { width: 100%; display: flex; align-items: flex-end; justify-content: space-between; }
.packages__intro { display: flex; flex-direction: column; gap: 7.4px; }
.packages__badge {
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 13px; border-radius: 9999px; align-self: flex-start;
  background: #fffbeb; border: 1px solid #fde68a; filter: drop-shadow(0 1px 1px rgba(0,0,0,0.05));
  font-family: var(--f-jakarta); font-weight: 600; font-size: 12px; line-height: 16px; letter-spacing: 1.2px; text-transform: uppercase; color: #92400e; white-space: nowrap;
}
.packages__badge i { width: 8px; height: 8px; border-radius: 9999px; background: #e5a93c; }
.packages__title { padding-top: 0.6px; font-family: var(--f-serif); font-weight: 700; font-size: 36px; line-height: 40px; letter-spacing: -0.9px; color: #fff; white-space: nowrap; }
.packages__title em { font-style: italic; font-weight: 400; color: #e5a93c; }
.packages__lead { width: 672px; max-width: 672px; font-family: var(--f-jakarta); font-weight: 300; font-size: 14px; line-height: 20px; color: #fff; }
.pkg-viewport { width: 100%; height: 427px; overflow: hidden; position: relative; }
.pkg-track {
  display: flex; align-items: center; gap: 24px; padding: 8px 0; overflow-x: auto; overflow-y: hidden;
  scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; -ms-overflow-style: none;
  cursor: grab; height: 100%;
}
.pkg-track::-webkit-scrollbar { display: none; }
.pkg-track.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; }
.pkg-card {
  flex: 0 0 768px; width: 768px; max-width: 768px; height: 419.5px; display: flex; align-items: flex-start; isolation: isolate;
  background: #fff; border: 1px solid rgba(231,229,228,0.9); border-radius: 12px; padding: 1px; overflow: hidden;
  box-shadow: 0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.1); scroll-snap-align: start;
}
.pkg-card__media { position: relative; z-index: 2; flex-shrink: 0; width: 319.16px; height: 100%; min-height: 417.5px; overflow: hidden; }
.pkg-card__media > * { position: absolute; inset: 0; }
.pkg-card__media img { width: 100%; height: 100%; object-fit: cover; -webkit-user-drag: none; user-select: none; }
.pkg-card__glow {
  background-image: radial-gradient(ellipse 225.68px 295.22px at 50% 50%, rgba(245,158,11,0.1) 0%, rgba(245,158,11,0) 50%, rgba(123,79,6,0.15) 75%, rgba(61,40,3,0.225) 87.5%, rgba(0,0,0,0.3) 100%);
}
.pkg-card__body {
  position: relative; z-index: 1; flex-shrink: 0; width: 446.83px; height: 100%; background: #fff; padding: 28px;
  display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start;
}
.pkg-card__main { width: 100%; display: flex; flex-direction: column; gap: 16px; }
.pkg-card__heading { width: 100%; display: flex; flex-direction: column; gap: 8px; }
.price-pill {
  position: relative; width: 113.22px; height: 26.5px; border-radius: 9999px; background: var(--ink); border: 1px solid #e5a93c;
  filter: drop-shadow(0 1px 1px rgba(0,0,0,0.05));
}
.price-pill i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); width: 6px; height: 6px; border-radius: 9999px; background: #e5a93c; }
.price-pill span { position: absolute; left: 24px; top: calc(50% - 0.75px); transform: translateY(-50%); font-family: var(--f-jakarta); font-weight: 700; font-size: 11px; line-height: 16.5px; color: #e5a93c; white-space: nowrap; }
.pkg-card__title { font-family: var(--f-serif); font-weight: 700; font-size: 30px; line-height: 36px; letter-spacing: -0.75px; color: #1c1917; }
.pkg-card__title em { font-style: italic; font-weight: 400; color: #c28b23; }
.pkg-list-box { width: 100%; background: #f8f5ee; border: 1px solid rgba(253,230,138,0.6); border-radius: 4px; padding: 21px; display: flex; flex-direction: column; gap: 12px; }
.pkg-list-box__head { width: 100%; padding-bottom: 11px; border-bottom: 1px solid rgba(253,230,138,0.5); display: flex; align-items: center; justify-content: space-between; }
.pkg-list-box__count { font-family: var(--f-jakarta); font-weight: 700; font-size: 11px; line-height: 16.5px; letter-spacing: 0.55px; text-transform: uppercase; color: #44403c; white-space: nowrap; }
.pkg-list-box__tag { padding: 4px 10px; border-radius: 4px; background: rgba(24,22,21,0.15); font-family: var(--f-jakarta); font-weight: 600; font-size: 10px; line-height: 15px; letter-spacing: 0.25px; color: #6d462c; white-space: nowrap; }
.pkg-list { display: flex; flex-direction: column; gap: 6px; }
.pkg-list li { display: flex; align-items: center; gap: 8px; font-family: var(--f-jakarta); font-size: 12px; line-height: 16px; color: #44403c; white-space: nowrap; font-weight: 500; }
.pkg-list li::before { content: "•"; font-weight: 500; font-size: 16px; line-height: 16px; color: #c28b23; }
.pkg-list b { font-weight: 700; }
.pkg-card__foot { width: 100%; }
.pkg-card__foot-inner { width: 100%; display: flex; align-items: center; }
.pkg-card__foot--rule .pkg-card__foot-inner { border-top: 1px solid #f5f5f4; padding-top: 17px; align-items: flex-end; justify-content: flex-end; }
.pkg-card__foot--plain .pkg-card__foot-inner { padding-top: 16px; }
.btn-pkg {
  flex: 1 0 0; min-width: 0; height: 44px; border-radius: 6px; padding: 10px 24px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-dm); font-weight: 600; font-size: 14px; font-variation-settings: "opsz" 14; text-transform: capitalize; color: var(--ink); white-space: nowrap;
  transition: background-color .2s;
}
.btn-pkg--tint { background: rgba(0,0,0,0.11); }
.btn-pkg--tint:hover { background: rgba(0,0,0,0.16); }
.btn-pkg--grey { background: #e3e3e3; }
.btn-pkg--grey:hover { background: #d8d8d8; }
.btn-pkg--gold {
  height: auto; border-radius: 12px; padding: 10px 20px; gap: 8px; background: #e5a93c; filter: drop-shadow(0 1px 1px rgba(0,0,0,0.05));
  font-family: var(--f-jakarta); font-weight: 700; font-size: 12px; line-height: 16px; color: #0c0a09; text-transform: none; font-variation-settings: normal;
}
.btn-pkg--gold:hover { background: #ecb54f; }
.btn-pkg--gold img { width: 8.75px; height: 7.5px; }

/* ---------- Testimonials (526:1796) ---------- */
.testimonials { background: #fff; border-bottom: 1px solid #e9dfcb; padding: 78.5px 0 79.5px; }
.testimonials .container { display: flex; flex-direction: column; gap: 40px; }
.testimonials__head { display: flex; align-items: flex-end; justify-content: space-between; }
.testimonials__intro { display: flex; flex-direction: column; gap: 8px; }
.testimonials__eyebrow { color: var(--gold); letter-spacing: 1.2px; line-height: 16px; }
.testimonials__title { font-family: var(--f-serif); font-weight: 700; font-size: 32px; line-height: 36px; color: var(--ink); white-space: pre; }
.testimonials__lead { font-size: 14px; line-height: 20px; color: rgba(28,25,23,0.7); white-space: pre; }
.btn-share {
  display: inline-flex; align-items: center; gap: 6px; padding: 13px 25px; border-radius: 9999px; border: 1px solid #e2e8f0;
  box-shadow: 0 1px 2px rgba(0,0,0,0.05); font-size: 12px; line-height: 16px; font-weight: 600; color: var(--ink); white-space: nowrap;
  transition: border-color .2s, background-color .2s;
}
.btn-share:hover { border-color: #cbd5e1; background: #fafafa; }
.btn-share img { width: 14px; height: 14px; }
.review { display: flex; align-items: stretch; justify-content: center; gap: 32px; width: 100%; }
.review__photo {
  position: relative; flex: 0 0 calc(50% - 16px); min-width: 0; min-height: 460px; border-radius: 16px; overflow: hidden;
  border: 1px solid rgba(253,230,138,0.7); padding: 379px 1px 1px; display: flex; flex-direction: column; justify-content: flex-end;
}
.review__layer { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.review__layer--base { background: #0f172a; border-radius: 16px; }
.review__layer--base img, .review__layer--top img { width: 100%; height: 100%; object-fit: cover; }
.review__layer--mid img { position: absolute; top: 0; left: -7.4%; width: 114.8%; height: 100%; }
.review__layer--top::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(2,6,23,0.8) 1.232%, rgba(2,6,23,0.2) 50%, rgba(2,6,23,0)); }
.review__badge {
  position: absolute; left: 16px; top: 16px; width: 338.44px; height: 30.5px; border-radius: 9999px;
  background: rgba(26,43,60,0.95); border: 1px solid rgba(255,255,255,0.2); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1);
}
.review__badge i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 8px; height: 8px; border-radius: 9999px; background: #10b981; }
.review__badge span { position: absolute; left: 30px; top: calc(50% - 0.75px); transform: translateY(-50%); font-size: 10px; line-height: 16.5px; font-weight: 600; letter-spacing: -0.2px; text-transform: uppercase; color: #fcd34d; white-space: nowrap; }
.review__person { position: relative; padding: 32px; display: flex; flex-direction: column; gap: 2px; }
.review__person::before { content: ""; display: block; height: 16px; }
.review__name { padding-top: 2px; font-family: var(--f-serif); font-weight: 700; font-size: 20px; line-height: 28px; color: #fff; }
.review__service { font-size: 12px; line-height: 16px; font-weight: 300; color: #cbd5e1; }
.review__quote-card {
  flex: 0 0 calc(50% - 16px); min-width: 0; height: 509px; padding: 49px; border-radius: 16px; background: #faf9f5; border: 1px solid rgba(253,230,138,0.8);
  display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start;
}
.review__top { height: 278px; width: 100%; display: flex; flex-direction: column; gap: 16px; }
.review__rating { height: 32px; display: flex; align-items: center; gap: 4px; }
.review__rating img { width: 14.031px; height: 13.375px; }
.review__rating span { padding-left: 8px; font-size: 12px; line-height: 16px; font-weight: 600; color: var(--gold-brown); white-space: nowrap; }
.review__quote { margin: 0; font-family: var(--f-serif); font-weight: 400; font-size: 24px; line-height: 32px; color: #0f172a; transition: opacity .3s; }
.review__controls { width: 100%; padding-top: 33px; border-top: 1px solid #e2e8f0; display: flex; align-items: center; justify-content: space-between; }
.review__nav { display: flex; align-items: center; gap: 7px; }
.review__nav .round-btn--solid { margin-right: 16.054px; }
.review__count { font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: 0.6px; color: #64748b; white-space: nowrap; }
.review__count span { color: #94a3b8; }

/* ---------- FAQ (526:1851) ---------- */
.faq { background: var(--cream); padding: 76.5px 48px; }
.faq__inner { max-width: 1440px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 56px; }
.faq__intro { width: 672px; max-width: 100%; display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; }
.faq__eyebrow { color: var(--gold); letter-spacing: 1.2px; line-height: 16px; }
.faq__title { font-family: var(--f-serif); font-weight: 700; font-size: 32px; line-height: 36px; color: var(--ink); white-space: nowrap; }
.faq__lead { width: 558px; max-width: 100%; font-size: 14px; line-height: 20px; color: rgba(28,25,23,0.7); }
.faq__list { width: 980px; max-width: 100%; display: flex; flex-direction: column; gap: 16px; }
.accordion { width: 100%; border: 1px solid #e2e8f0; border-radius: 16px; padding: 1px; overflow: hidden; box-shadow: 0 1px 2px rgba(0,0,0,0.05); }
.accordion__btn { width: 100%; padding: 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; text-align: left; }
.accordion.is-open .accordion__btn { margin-bottom: -0.75px; }
.accordion__q { font-size: 16px; line-height: 20px; font-weight: 600; color: #0f172a; }
.accordion__icon { width: 28px; height: 28px; border-radius: 9999px; background: #fef3c7; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.accordion__icon img { width: 10.5px; height: 6px; }
.accordion__panel { display: none; background: rgba(248,250,252,0.5); border-top: 1px solid #f1f5f9; padding: 21px 20px 20.75px; }
.accordion.is-open .accordion__panel { display: block; }
.accordion__a { font-size: 12px; line-height: 19.5px; color: #475569; }

/* ---------- Visit block (526:1883) ---------- */
.visit { background: #fff; padding: 79px 0; }
.visit__frame {
  background: #f8eed8; border: 1px solid #ecd9b2; border-radius: 12px; padding: 65px;
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: 458px; gap: 40px;
}
.visit__copy { grid-column: 1 / span 6; align-self: center; display: flex; flex-direction: column; gap: 24px; position: relative; z-index: 0; }
.visit__title { font-family: var(--f-serif); font-weight: 400; font-size: 48px; line-height: 48px; color: #1c1917; }
.visit__title strong { display: block; font-weight: 700; color: var(--ink); }
.visit__title em { font-style: italic; color: #b88e1c; }
.visit__lead { width: 512px; max-width: 512px; font-size: 16px; line-height: 20px; color: rgba(28,25,23,0.7); white-space: nowrap; }
.visit__actions { width: 507px; display: flex; align-items: center; gap: 13px; }
.btn-lg {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 44px; padding: 10px 24px; border-radius: 6px;
  font-size: 14px; font-weight: 600; text-transform: capitalize; white-space: nowrap; transition: filter .2s, background-color .2s;
}
.btn-lg img { width: 16px; height: 16px; }
.btn-lg--gold { width: 224px; background: var(--gold); color: var(--ink); }
.btn-lg--gold:hover { filter: brightness(1.05); }
.btn-lg--outline { width: 216px; background: rgba(255,255,255,0.09); border: 1px solid #6d462c; color: #6d462c; }
.btn-lg--outline:hover { background: rgba(255,255,255,0.5); }
.campus-card {
  grid-column: 7 / span 6; align-self: stretch; position: relative; z-index: 1;
  background: #fff; border: 1px solid #fef3c7; border-radius: 16px; padding: 25px; display: flex; flex-direction: column; gap: 16px;
  font-family: 'Liberation Sans', Arial, Helvetica, sans-serif;
}
.campus-card__head { display: flex; align-items: flex-start; }
.campus-card__pin { padding-top: 4px; width: 26.97px; height: 36px; flex-shrink: 0; }
.campus-card__pin span { width: 26.97px; height: 32px; border-radius: 9999px; background: var(--gold); display: flex; align-items: center; justify-content: center; }
.campus-card__pin img { width: 12px; height: 15.969px; }
.campus-card__head-text { padding-left: 12px; }
.campus-card__title { font-weight: 700; font-size: 14px; line-height: 20px; color: #0f172a; white-space: nowrap; }
.campus-card__addr { font-size: 12px; line-height: 16px; color: #64748b; white-space: nowrap; }
.map {
  position: relative; height: 176px; width: 100%; border-radius: 12px; background: #f1f5f9; border: 1px solid #e2e8f0; padding: 1px; overflow: hidden;
  display: flex; flex-direction: column; justify-content: center;
}
.map__img { position: relative; flex: 1 0 0; min-height: 1px; width: 100%; opacity: 0.8; overflow: hidden; }
.map__img img { position: absolute; left: 0; top: -26.26%; width: 100%; height: 152.52%; }
.map__img::after { content: ""; position: absolute; inset: 0; background: #f2f2f2; mix-blend-mode: multiply; }
.map__overlay { position: absolute; inset: 0; background: rgba(120,53,15,0.1); display: flex; align-items: center; justify-content: center; }
.map__pill { display: flex; align-items: center; padding: 6px 14px; border-radius: 9999px; background: #6d442b; box-shadow: 0 25px 50px -12px rgba(0,0,0,0.25); }
.map__pill img { width: 15px; height: 12px; }
.map__pill span { padding-left: 8px; font-weight: 700; font-size: 12px; line-height: 16px; color: #fff; white-space: nowrap; }
.map__gps { position: absolute; right: 8px; bottom: 8px; padding: 2px 8px; border-radius: 4px; background: rgba(255,255,255,0.9); font-family: 'Liberation Mono', 'Courier New', monospace; font-size: 10px; line-height: 15px; color: #475569; white-space: nowrap; }
.nearby { width: 100%; padding-top: 21px; border-top: 1px solid #f1f5f9; display: flex; flex-direction: column; gap: 12px; }
.nearby__head { display: flex; align-items: center; justify-content: space-between; }
.nearby__label { display: flex; align-items: center; }
.nearby__label i { width: 8px; height: 8px; border-radius: 9999px; background: var(--gold); }
.nearby__label span { padding-left: 8px; font-weight: 700; font-size: 12px; line-height: 16px; letter-spacing: 0.6px; text-transform: uppercase; color: #0f172a; }
.nearby__hint { font-size: 10px; line-height: 15px; color: #94a3b8; }
.nearby__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 42px 42px; gap: 8px; }
.place { height: 42px; padding: 11px; border-radius: 12px; background: #f8fafc; border: 1px solid #f1f5f9; display: flex; align-items: center; justify-content: space-between; }
.place__name { display: flex; align-items: center; font-size: 11px; line-height: 16px; color: #1e293b; white-space: nowrap; }
.place__name img { width: 8.25px; height: 10.979px; margin-right: 8px; }
.place__km { margin-left: 4px; padding: 2px 8px; border-radius: 9999px; background: #fef3c7; font-weight: 700; font-size: 10px; line-height: 16px; color: #251b14; white-space: nowrap; }

/* ---------- Footer (526:1961) ---------- */
.site-footer { background: #1c1916; border-top: 1px solid #2c2720; padding: 81px 0 46px; font-family: var(--f-inter); }
.footer-grid {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: 345.75px; gap: 32px;
  padding-bottom: 65px; border-bottom: 1px solid #2c2720;
}
.footer-brand { grid-column: 1 / span 4; align-self: start; display: flex; flex-direction: column; gap: 22.8px; }
.footer-brand__logo img { width: 203.715px; height: 60px; }
.footer-brand__text { padding-right: 16px; font-size: 14px; line-height: 22.75px; color: #8f877c; }
.footer-brand__meta { padding-top: 9.2px; display: flex; flex-direction: column; gap: 16px; }
.footer-brand__nhra { display: flex; align-items: center; gap: 8px; font-size: 12px; line-height: 16px; color: #827a6e; white-space: nowrap; }
.footer-brand__nhra img { width: 16px; height: 16px; }
.socials { display: flex; align-items: center; gap: 10px; }
.socials a { width: 36px; height: 36px; border-radius: 8px; background: rgba(255,255,255,0.28); display: flex; align-items: center; justify-content: center; transition: background-color .2s; }
.socials a:hover { background: rgba(255,255,255,0.4); }
.socials img { width: 16px; height: 16px; }
.footer-col { align-self: start; display: flex; flex-direction: column; gap: 16px; }
.footer-col--c2 { grid-column: 5 / span 2; }
.footer-col--c3 { grid-column: 7 / span 2; }
.footer-col--c4 { grid-column: 9 / span 2; }
.footer-col--c5 { grid-column: 11 / span 2; }
.footer-col__title { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 12px; line-height: 16px; letter-spacing: 0.6px; text-transform: uppercase; color: #fff; white-space: nowrap; }
.footer-col__title i { width: 6px; height: 6px; border-radius: 9999px; background: #d4a017; flex-shrink: 0; }
.footer-links { display: flex; flex-direction: column; gap: 10px; }
.footer-links a { font-size: 12px; line-height: 16px; color: #999285; transition: color .2s; }
.footer-links a:hover { color: #d4a017; }
.hours { display: flex; flex-direction: column; gap: 12px; }
.hours__row { padding-bottom: 9px; border-bottom: 1px solid #2c2720; }
.hours__row:first-child .hours__label { margin-bottom: -0.5px; }
.hours__label { font-weight: 500; font-size: 12px; line-height: 16px; color: rgba(255,255,255,0.56); }
.hours__time { font-weight: 600; font-size: 12px; line-height: 16px; color: #d4a017; }
.hours__row:first-child .hours__time { padding-top: 1px; }
.hours__last { padding-bottom: 4px; display: flex; flex-direction: column; gap: 1.5px; }
.hours__open { display: flex; align-items: center; gap: 6px; font-weight: 600; font-size: 12px; line-height: 16px; color: #34d399; white-space: nowrap; }
.hours__open i { width: 6px; height: 6px; border-radius: 9999px; background: #34d399; }
.footer-pay { padding-top: 4px; display: flex; align-items: center; gap: 4px; font-weight: 600; font-size: 12px; line-height: 16px; color: #d4a017; white-space: nowrap; }
.footer-pay img { width: 14px; height: 14px; transition: transform .2s; }
.footer-pay:hover img { transform: translateX(2px); }
.contact-list { display: flex; flex-direction: column; gap: 14px; }
.contact-list li { display: flex; align-items: center; gap: 10px; font-size: 12px; line-height: 16px; color: #999285; white-space: nowrap; }
.contact-list li:first-child { align-items: flex-start; }
.contact-list li:first-child img { margin-top: 2px; }
.contact-list img { width: 16px; height: 16px; flex-shrink: 0; }
.contact-list a:hover { color: #d4a017; }
.footer-bottom { padding-top: 32px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.footer-bottom__copy { width: 731px; padding-right: 41.51px; font-size: 12px; line-height: 16px; color: #7a7367; white-space: nowrap; }
.footer-bottom__links { display: flex; align-items: center; gap: 16px; font-size: 12px; line-height: 16px; white-space: nowrap; }
.footer-bottom__links a { color: #7a7367; transition: color .2s; }
.footer-bottom__links a:hover { color: #d4a017; }
.footer-bottom__links span { color: #374151; }

/* Figma logo layers are exported upside-down with a -1 Y scale applied in the design */
.flip-y { transform: scaleY(-1); }

/* =========================================================
   Responsive — the 1440px design is preserved exactly on desktop;
   below that, sections reflow so nothing overflows or overlaps.
   ========================================================= */
@media (max-width: 1340px) {
  .hero__content { left: auto; right: max(16px, calc(50% - 592px)); }
  .departments__nav { right: 0; }
  .amenities__head { gap: 40px; justify-content: space-between; }
  .amenities__intro { width: auto; }
  .amenities__title { white-space: normal; height: auto; }
  .visit__lead { white-space: normal; width: auto; max-width: 512px; }
  .visit__lead br { display: none; }
  .visit__actions { width: auto; flex-wrap: wrap; }
  .footer-bottom__copy { width: auto; white-space: normal; }
}

@media (max-width: 1180px) {
  .site-nav .container { gap: 24px; }
  .hero { height: auto; min-height: 673px; padding: 96px 0 72px; }
  .hero__content { position: relative; right: auto; left: auto; top: auto; margin-left: auto; margin-right: max(16px, calc(50% - 592px)); }
  .specialists__title, .testimonials__title, .faq__title, .packages__title { white-space: normal; }
  .specialists__lead p { width: auto; flex-shrink: 1; }
  .doctors { gap: 20px; }
  .staff-banner { flex-wrap: wrap; }
  .packages__lead { width: auto; max-width: 672px; }
  .testimonials__intro { margin-right: 0 !important; }
  .testimonials__lead { white-space: normal; }
  .review__quote-card { height: auto; min-height: 460px; }
  .review__top { height: auto; margin-bottom: 32px; }
  .visit__frame { padding: 40px; gap: 32px; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; }
  .visit__copy, .campus-card { grid-column: 1; }
  .campus-card__title, .campus-card__addr { white-space: normal; }
  .footer-grid { grid-template-rows: auto; row-gap: 40px; column-gap: 24px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-col--c2 { grid-column: 1 / span 3; }
  .footer-col--c3 { grid-column: 4 / span 3; }
  .footer-col--c4 { grid-column: 7 / span 3; }
  .footer-col--c5 { grid-column: 10 / span 3; }
}

@media (max-width: 960px) {
  /* top bar */
  .topbar__tagline, .topbar__left .topbar__dot { display: none; }
  /* navigation becomes a drawer */
  .site-nav__toggle {
    display: inline-flex; flex-direction: column; justify-content: center; gap: 5px;
    width: 44px; height: 44px; margin-left: auto; border-radius: 8px;
  }
  .site-nav__toggle span { display: block; width: 22px; height: 2px; margin: 0 auto; background: var(--ink); border-radius: 2px; transition: transform .25s, opacity .25s; }
  .site-nav__toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .site-nav__toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .site-nav__toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .site-nav__menu {
    position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid rgba(0,0,0,0.14);
    flex-direction: column; align-items: stretch; gap: 4px; padding: 12px 16px 20px;
    box-shadow: 0 12px 24px -12px rgba(0,0,0,0.2); display: none;
  }
  .site-nav__menu.is-open { display: flex; }
  .site-nav__link { padding: 12px 8px; }
  .btn-nav { width: 100%; margin-top: 8px; }

  .hero { padding: 64px 0; }
  .hero__content { margin: 0 auto; width: min(536px, calc(100% - 32px)); }
  .hero__bg { left: calc(50% - 1100px); }

  .departments__head { height: auto; padding-bottom: 24px; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
  .departments__nav { position: static; }
  .departments__title { white-space: normal; }

  .amenities__head { flex-direction: column; align-items: flex-start; gap: 24px; }
  .amenity-cards { flex-direction: column; }
  .amenity { flex: none; width: 100%; }

  .pkg-viewport { height: auto; }
  .review { flex-direction: column; }
  .review__photo { flex: none; width: 100%; min-height: 460px; }
  .review__quote-card { flex: none; width: 100%; }

  .faq { padding: 64px 16px; }
  .accordion__q { font-size: 15px; }
  .accordion__a br { display: none; }

  .footer-col--c2, .footer-col--c3, .footer-col--c4, .footer-col--c5 { grid-column: span 6; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .footer-bottom__copy { padding-right: 0; }
}

@media (max-width: 820px) {
  /* package cards stack their image above the details */
  .pkg-card { flex: 0 0 min(446.83px, calc(100vw - 48px)); width: min(446.83px, calc(100vw - 48px)); height: auto; flex-direction: column; }
  .pkg-card__media { width: 100%; height: 220px; min-height: 0; }
  .pkg-card__body { width: 100%; height: auto; gap: 20px; }
  .pkg-card__main, .pkg-list-box { height: auto !important; }
  .pkg-list li { white-space: normal; }
  .pkg-track { align-items: stretch; }
}

@media (max-width: 640px) {
  .topbar .container { justify-content: center; gap: 16px; }
  .topbar__right { gap: 12px; }
  .site-nav__logo img { width: 135px; height: auto; }

  .hero__title { font-size: 44px; line-height: 48px; white-space: normal; }
  .hero__lead { width: auto; font-size: 15px; }
  .hero__text { padding-right: 0; }
  .hero__actions { flex-direction: column; align-items: stretch; width: 100%; }
  .btn-hero { width: 100%; }
  .hero__campus { height: auto; }
  .hero__campus-row { position: static; flex-wrap: wrap; white-space: normal; }
  .finder__field--search { grid-column: 1 / -1; }
  .finder__field--select { grid-column: 1 / span 7; }
  .finder__submit { grid-column: 8 / span 5; }
  .finder__select-bg { display: none; }

  .specialists { padding: 56px 0; }
  .specialists__title { font-size: 28px; line-height: 34px; }
  .staff-banner { flex-direction: column; align-items: flex-start; }
  .staff-banner__left { flex-direction: column; align-items: flex-start; }
  .btn-outline-gold { width: 100%; justify-content: center; }

  .departments { padding-top: 48px; }
  .departments__head { flex-direction: column; align-items: flex-start; }
  .departments__title { font-size: 28px; line-height: 32px; }
  .dept-card { flex-basis: 78vw; }

  .amenities { padding: 56px 0; }
  .amenities__title { font-size: 36px; line-height: 40px; }
  .amenity { padding: 24px; min-height: 0; }
  .amenity__desc br { display: none; }

  .packages { padding: 56px 0; }
  .packages__title { font-size: 30px; line-height: 36px; }
  .packages__badge { white-space: normal; letter-spacing: 0.6px; }
  .packages__lead br { display: none; }

  .testimonials { padding: 56px 0; }
  .testimonials__head { flex-direction: column; align-items: flex-start; gap: 20px; }
  .review__badge { width: auto; right: 16px; }
  .review__badge span { font-size: 9px; }
  .review__quote-card { padding: 28px; min-height: 0; }
  .review__quote { font-size: 20px; line-height: 28px; }

  .faq__intro br, .faq__lead br { display: none; }

  .visit { padding: 56px 0; }
  .visit__frame { padding: 24px; }
  .visit__title { font-size: 36px; line-height: 40px; }
  .visit__actions { flex-direction: column; align-items: stretch; }
  .btn-lg--gold, .btn-lg--outline { width: 100%; }
  .campus-card { padding: 18px; }
  .campus-card__addr br { display: none; }
  .nearby__grid { grid-template-columns: 1fr; grid-template-rows: none; }

  .footer-col--c2, .footer-col--c3, .footer-col--c4, .footer-col--c5 { grid-column: 1 / -1; }
  .footer-brand__text br { display: none; }
  .footer-bottom__links { flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
