/* Shared production polish for Hayste Group static pages. */
:root {
  --focus-ring: 0 0 0 3px rgba(59, 114, 219, 0.28);
}

body.menu-open {
  overflow: hidden;
}

nav {
  min-height: 70px;
  overflow: visible !important;
}

.nav-inner {
  gap: 18px;
}

.nav-logo {
  min-width: 0;
}

.nav-logo img {
  flex: 0 0 auto;
  width: 38px !important;
  height: 38px !important;
  object-fit: contain !important;
  object-position: center !important;
}

.nav-logo:focus-visible,
.nav-links a:focus-visible,
.btn-main:focus-visible,
.btn-blue:focus-visible,
.btn-outline:focus-visible,
.nav-cta:focus-visible,
.scroll-top-btn:focus-visible,
.hamburger:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: none !important;
  box-shadow: var(--focus-ring) !important;
}

.nav-links a {
  color: var(--text) !important;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  padding: 10px 0;
}

nav.on-dark:not(.scrolled) .nav-links a:not(.nav-cta) {
  color: rgba(255, 255, 255, 0.76) !important;
}

.nav-links a:hover,
.nav-links a.act,
nav.scrolled .nav-links a:hover,
nav.scrolled .nav-links a.act {
  color: var(--blue-500) !important;
}

.nav-cta,
.nav-links .nav-cta,
nav.on-dark .nav-links .nav-cta,
nav.on-light .nav-links .nav-cta,
nav.scrolled .nav-links .nav-cta {
  color: #fff !important;
}

.hamburger[aria-expanded="true"] span:nth-child(1) {
  transform: rotate(45deg) translate(6px, 6px);
}

.hamburger[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.hamburger[aria-expanded="true"] span:nth-child(3) {
  transform: rotate(-45deg) translate(6px, -6px);
}

.page-header h1,
.hero h1 {
  text-wrap: balance;
}

.page-header p,
.hero-sub,
.footer-desc,
.sc p,
.qf-card p,
.ms-text p,
.sv-text p {
  text-wrap: pretty;
}

.form-status {
  margin-top: 12px;
  border-radius: var(--radius);
  padding: 12px 14px;
  background: var(--blue-50);
  color: var(--blue-800);
  border: 1px solid var(--blue-100);
  font-size: 0.78rem;
  line-height: 1.6;
}

.form-status.error {
  background: var(--red-bg);
  border-color: rgba(229, 62, 62, 0.28);
  color: #8f1d1d;
}

.form-status.success {
  background: var(--green-bg);
  border-color: rgba(16, 185, 129, 0.28);
  color: #065f46;
}

input,
select,
textarea {
  width: 100%;
}

@media (max-width: 900px) {
  .nav-links {
    display: none !important;
  }

  .hamburger {
    display: flex !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    min-height: 46px !important;
    border: 1px solid transparent !important;
    border-radius: 12px !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .nav-inner {
    min-height: 70px !important;
  }

  .nav-logo {
    gap: 9px !important;
    min-width: 0 !important;
    overflow: visible !important;
  }

  .nav-logo img {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    max-height: 34px !important;
    object-fit: contain !important;
    object-position: center !important;
    background: transparent !important;
    border-radius: 0 !important;
    transform: none !important;
  }

  .nav-logo-text {
    font-size: clamp(1rem, 4.8vw, 1.12rem) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  .nav-links.mob-open {
    display: flex !important;
    position: fixed !important;
    top: 76px !important;
    right: 14px !important;
    left: 14px !important;
    bottom: auto !important;
    width: auto !important;
    height: auto !important;
    max-height: calc(100vh - 92px) !important;
    max-height: calc(100dvh - 92px) !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    padding: 14px !important;
    background: rgba(255, 255, 255, 0.98) !important;
    border: 1px solid var(--light-gray) !important;
    border-radius: 22px !important;
    box-shadow: 0 24px 70px rgba(12, 27, 51, 0.2) !important;
    list-style: none !important;
    overflow-y: auto !important;
    z-index: 10050 !important;
    backdrop-filter: blur(20px) !important;
  }

  .nav-links.mob-open li {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    list-style: none !important;
  }

  .nav-links.mob-open a {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 48px !important;
    padding: 13px 16px !important;
    border-radius: 14px !important;
    color: var(--text) !important;
    text-align: left !important;
    background: transparent !important;
    font-size: 0.92rem !important;
    line-height: 1.2 !important;
  }

  .nav-links.mob-open a:hover,
  .nav-links.mob-open a.act {
    background: var(--blue-50) !important;
    color: var(--blue-600) !important;
  }

  .nav-links.mob-open .nav-cta {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 52px !important;
    margin-top: 6px !important;
    margin-inline: 0 !important;
    padding: 14px 16px !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    color: #fff !important;
    background: var(--gradient) !important;
    border-radius: 16px !important;
  }

  .hamburger[aria-expanded="true"],
  .hamburger.active {
    border-color: var(--blue-100) !important;
    background: #fff !important;
  }

  .hamburger[aria-expanded="true"] span,
  .hamburger.active span {
    background: var(--text) !important;
  }
}

@media (max-width: 768px) {
  .page-header {
    padding-top: 120px !important;
  }

  .hero {
    min-height: auto !important;
  }

  [style*="grid-template-columns:repeat(2,1fr)"],
  [style*="grid-template-columns: repeat(2,1fr)"],
  [style*="grid-template-columns:repeat(2, 1fr)"],
  [style*="grid-template-columns: repeat(2, 1fr)"] {
    grid-template-columns: 1fr !important;
  }
}

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

/* Screenshot QA fixes: keep generated animation placeholders from hiding content. */
.svc-row,
.ic,
.ih-step,
.step-item {
  opacity: 1 !important;
}

@keyframes svcRowIn {
  from {
    opacity: 0;
    transform: translateY(18px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes cardFloat {
  from {
    opacity: 0;
    transform: translateY(14px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.svc-showcase,
.ins {
  padding-block: clamp(52px, 6vw, 86px) !important;
}

.svc-row {
  display: grid !important;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr) !important;
  gap: clamp(24px, 4vw, 48px) !important;
  align-items: center !important;
  margin-bottom: clamp(34px, 5vw, 58px) !important;
}

.svc-row:nth-child(even) {
  direction: rtl;
}

.svc-row:nth-child(even) > * {
  direction: ltr;
}

.svc-row-img {
  min-height: 240px !important;
  height: clamp(240px, 26vw, 340px) !important;
}

.svc-row-img img,
.gi img,
.ic img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.ins-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(16px, 2vw, 24px) !important;
  margin-top: 0 !important;
}

.ic {
  min-height: 100% !important;
}

.ins-how {
  padding-block: clamp(56px, 7vw, 90px) !important;
}

.ih-steps {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: clamp(14px, 2vw, 22px) !important;
}

.gal-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

.gi {
  min-height: 220px !important;
  height: 220px !important;
}

.gi.tall {
  grid-row: span 2 !important;
  height: 454px !important;
}

.gi::after,
.gi-label {
  opacity: 1 !important;
}

@media (max-width: 1024px) {
  .svc-row,
  .svc-row:nth-child(even) {
    grid-template-columns: 1fr !important;
    direction: ltr !important;
  }

  .ins-grid {
    grid-template-columns: 1fr !important;
  }

  .ih-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .gal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .gi,
  .gi.tall {
    grid-row: auto !important;
    height: 220px !important;
  }
}

@media (max-width: 640px) {
  .svc-showcase,
  .ins,
  .ins-how,
  .gal {
    padding-block: 44px !important;
  }

  .svc-row-img {
    min-height: 200px !important;
    height: 200px !important;
  }

  .ih-steps,
  .gal-grid {
    grid-template-columns: 1fr !important;
  }
}

/* Careers and contact spacing/animation QA pass. */
.page-header {
  padding-block: clamp(118px, 12vw, 156px) clamp(54px, 6vw, 76px) !important;
}

.page-header::before {
  animation: headerDrift 22s ease-in-out infinite alternate !important;
}

@keyframes headerDrift {
  from {
    transform: scale(1.01);
  }

  to {
    transform: scale(1.045) translate3d(0, -8px, 0);
  }
}

.positions {
  padding-block: clamp(44px, 5vw, 64px) clamp(40px, 5vw, 62px) !important;
}

.pos-center {
  margin-bottom: clamp(22px, 3vw, 34px) !important;
}

.pos-center h2,
.con-info h2 {
  text-wrap: balance;
}

.pos-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

.pos-card {
  padding: clamp(20px, 2.3vw, 28px) !important;
  animation: softReveal 0.42s ease both !important;
}

.pos-card p {
  margin-top: 8px !important;
  line-height: 1.7 !important;
}

.careers-intro {
  padding-block: clamp(50px, 6vw, 78px) !important;
}

.ci-card,
.ct-card,
.cf > div,
.fc,
.con-info,
.app-form {
  opacity: 1 !important;
}

.ci-card,
.ct-card,
.cf > div {
  animation: softReveal 0.42s ease both !important;
}

@keyframes jobCardIn {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes ctSlideIn {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes softReveal {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.con {
  padding-block: clamp(46px, 5vw, 70px) !important;
}

.con-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.15fr) !important;
  gap: clamp(28px, 4vw, 52px) !important;
  align-items: start !important;
}

.con-info {
  gap: clamp(14px, 2vw, 22px) !important;
}

.con-info > p {
  margin-top: 0 !important;
  max-width: 58ch !important;
  line-height: 1.75 !important;
}

.con-details {
  gap: 0 !important;
  margin-top: 14px !important;
}

.ci {
  padding-block: clamp(14px, 1.7vw, 20px) !important;
}

.ci h4 {
  margin-bottom: 4px !important;
}

.ci p {
  line-height: 1.55 !important;
}

.fc,
.app-form {
  padding: clamp(24px, 3.2vw, 38px) !important;
}

.fc .fg + .fg,
.app-form .fg + .fg {
  margin-top: 14px !important;
}

.fc textarea,
.app-form textarea {
  min-height: 132px !important;
}

@media (max-width: 1024px) {
  .pos-grid,
  .con-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 640px) {
  .page-header {
    padding-block: 108px 42px !important;
  }

  .positions,
  .careers-intro,
  .con {
    padding-block: 38px !important;
  }

  .pos-card,
  .fc,
  .app-form {
    padding: 20px !important;
  }

  .ci {
    gap: 12px !important;
  }
}

/* Footer mobile QA: avoid compressed multi-column footers on narrow phones. */
@media (max-width: 700px) {
  footer {
    padding: 42px 0 96px !important;
    overflow-x: hidden !important;
  }

  footer .container {
    width: min(100% - 28px, 1120px) !important;
  }

  footer .footer-grid {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 26px !important;
    min-width: 0 !important;
  }

  footer .footer-grid > * {
    width: 100% !important;
    min-width: 0 !important;
  }

  footer .footer-brand-logo {
    align-items: center !important;
    margin-bottom: 10px !important;
  }

  footer .footer-brand-logo img {
    width: 38px !important;
    height: 38px !important;
    object-fit: contain !important;
  }

  footer .footer-desc {
    max-width: none !important;
    font-size: 0.86rem !important;
  }

  footer .footer-col {
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    padding-top: 20px !important;
  }

  footer .footer-col h4 {
    margin-bottom: 10px !important;
  }

  footer .footer-col a {
    padding: 7px 0 !important;
    line-height: 1.45 !important;
    overflow-wrap: anywhere !important;
  }

  footer .footer-bottom {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
    text-align: left !important;
    margin-top: 28px !important;
    padding-top: 20px !important;
  }
}

/* Final responsive QA: compact footers and device-safe content sizing. */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

img,
video,
svg {
  max-width: 100%;
}

.container,
.nav-inner {
  width: min(100% - clamp(28px, 5vw, 72px), 1120px) !important;
}

@media (max-width: 900px) {
  section,
  .qf,
  .mission-section,
  .serve-section,
  .amenities-section,
  .svc-showcase,
  .svc-rights,
  .ins,
  .ins-how,
  .ab,
  .mission,
  .gal,
  .positions,
  .careers-intro,
  .careers-note,
  .con {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .hero-center,
  .page-header .container,
  .svc-showcase-header,
  .gal-header,
  .pos-center {
    max-width: 100% !important;
  }

  .hero h1,
  .page-header h1 {
    font-size: clamp(2rem, 11vw, 3rem) !important;
    line-height: 1.04 !important;
  }

  .hero-sub,
  .page-header p {
    font-size: clamp(0.92rem, 3.8vw, 1.05rem) !important;
  }

  .qf-grid,
  .ms-grid,
  .sv-grid,
  .am-layout,
  .ab-grid,
  .mission-grid,
  .svc-row,
  .sr-grid,
  .ins-grid,
  .con-grid,
  .ci-grid,
  .form-row {
    grid-template-columns: 1fr !important;
  }

  .ms-values,
  .sv-highlights,
  .am-grid,
  .ih-steps,
  .pos-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .svc-row,
  .svc-row:nth-child(even) {
    direction: ltr !important;
  }

  .ms-img,
  .sv-wellness-img,
  .am-visual,
  .svc-row-img,
  .gi,
  .gi.tall {
    max-width: 100% !important;
  }

  input,
  select,
  textarea,
  button {
    max-width: 100% !important;
  }
}

@media (max-width: 700px) {
  footer {
    padding: 38px 0 calc(76px + env(safe-area-inset-bottom)) !important;
    overflow-x: hidden !important;
  }

  footer .container {
    width: min(100% - 28px, 1120px) !important;
  }

  footer .footer-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px 22px !important;
    align-items: start !important;
    min-width: 0 !important;
  }

  footer .footer-grid > * {
    width: 100% !important;
    min-width: 0 !important;
  }

  footer .footer-grid > :first-child {
    grid-column: 1 / -1 !important;
  }

  footer .footer-brand-logo {
    margin-bottom: 8px !important;
  }

  footer .footer-brand-logo img {
    width: 38px !important;
    height: 38px !important;
    object-fit: contain !important;
  }

  footer .footer-desc {
    max-width: 42ch !important;
    font-size: 0.78rem !important;
    line-height: 1.55 !important;
  }

  footer .footer-col {
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    padding-top: 16px !important;
  }

  footer .footer-col h4 {
    margin-bottom: 8px !important;
    font-size: 0.62rem !important;
  }

  footer .footer-col a {
    padding: 5px 0 !important;
    font-size: 0.78rem !important;
    line-height: 1.35 !important;
    overflow-wrap: anywhere !important;
  }

  footer .footer-grid > .footer-col:last-child {
    grid-column: 1 / -1 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    column-gap: 18px !important;
  }

  footer .footer-grid > .footer-col:last-child h4 {
    grid-column: 1 / -1 !important;
  }

  footer .footer-bottom {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 6px !important;
    text-align: left !important;
    margin-top: 24px !important;
    padding-top: 18px !important;
    font-size: 0.72rem !important;
  }
}

@media (max-width: 480px) {
  .container,
  .nav-inner {
    width: min(100% - 24px, 1120px) !important;
  }

  .page-header {
    padding-block: 104px 38px !important;
  }

  .qf-grid,
  .ms-values,
  .sv-highlights,
  .am-grid,
  .ih-steps,
  .gal-grid,
  .pos-grid {
    grid-template-columns: 1fr !important;
  }

  .qf-card,
  .ms-val,
  .sv-hl,
  .am-card,
  .ic,
  .ih-step,
  .pos-card,
  .ci-card,
  .ct-card,
  .fc,
  .app-form,
  .sc {
    padding: 18px !important;
  }

  .svc-pills {
    gap: 8px !important;
  }

  .svc-pill,
  .job-tag {
    white-space: normal !important;
  }

  footer .footer-grid {
    gap: 16px !important;
  }

  footer .footer-col a {
    font-size: 0.76rem !important;
  }
}

/* Mobile footer simplification: menu links already live in the hamburger. */
@media (max-width: 700px) {
  footer .footer-grid > .footer-col:first-of-type {
    display: none !important;
  }

  footer .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
  }

  footer .footer-grid > .footer-col:last-child {
    grid-column: auto !important;
    display: block !important;
  }

  footer .footer-grid > .footer-col:last-child h4 {
    grid-column: auto !important;
  }
}

/* Footer navigation removed from markup; rebalance the remaining columns. */
footer .footer-grid {
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr) minmax(0, 1fr) !important;
}

@media (max-width: 700px) {
  footer .footer-grid > .footer-col:first-of-type {
    display: block !important;
  }
}

/* Footer alignment polish after removing Navigate. */
footer .footer-grid {
  grid-template-columns: minmax(240px, 1.2fr) minmax(190px, 0.8fr) minmax(220px, 0.8fr) !important;
  justify-content: center !important;
  max-width: 940px !important;
  margin-inline: auto !important;
  column-gap: clamp(34px, 6vw, 86px) !important;
}

footer .footer-bottom {
  max-width: 940px !important;
  margin-inline: auto !important;
}

@media (max-width: 900px) {
  footer .footer-grid,
  footer .footer-bottom {
    max-width: 680px !important;
  }
}

@media (max-width: 700px) {
  footer .footer-grid,
  footer .footer-bottom {
    max-width: 100% !important;
  }
}

/* Footer mobile 3-column compact layout. */
@media (max-width: 700px) {
  footer .footer-grid {
    display: grid !important;
    grid-template-columns: 1.15fr 0.95fr 0.9fr !important;
    gap: 12px !important;
    align-items: start !important;
  }

  footer .footer-grid > :first-child,
  footer .footer-grid > .footer-col:last-child {
    grid-column: auto !important;
  }

  footer .footer-brand-logo {
    gap: 6px !important;
    margin-bottom: 6px !important;
  }

  footer .footer-brand-logo img {
    width: 28px !important;
    height: 28px !important;
  }

  footer .footer-brand-logo span {
    font-size: 0.8rem !important;
    line-height: 1.05 !important;
    letter-spacing: 0.01em !important;
  }

  footer .footer-desc {
    max-width: 100% !important;
    font-size: 0.58rem !important;
    line-height: 1.45 !important;
  }

  footer .footer-col {
    border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
    padding-top: 12px !important;
  }

  footer .footer-col h4 {
    font-size: 0.54rem !important;
    letter-spacing: 0.12em !important;
    margin-bottom: 7px !important;
  }

  footer .footer-col a {
    font-size: 0.58rem !important;
    line-height: 1.32 !important;
    padding: 3px 0 !important;
  }

  footer .footer-bottom {
    align-items: center !important;
    text-align: center !important;
    font-size: 0.58rem !important;
    line-height: 1.45 !important;
    margin-top: 18px !important;
    padding-top: 14px !important;
  }
}

@media (max-width: 390px) {
  footer .footer-grid {
    grid-template-columns: 1.1fr 0.95fr 0.95fr !important;
    gap: 9px !important;
  }

  footer .footer-desc,
  footer .footer-col a,
  footer .footer-bottom {
    font-size: 0.55rem !important;
  }
}

/* Mobile footer final: brand row plus Contact/Legal in two columns. */
@media (max-width: 700px) {
  footer .footer-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px 22px !important;
    align-items: start !important;
  }

  footer .footer-grid > :first-child {
    grid-column: 1 / -1 !important;
  }

  footer .footer-grid > .footer-col {
    display: block !important;
  }

  footer .footer-grid > .footer-col:last-child {
    grid-column: auto !important;
  }

  footer .footer-brand-logo img {
    width: 34px !important;
    height: 34px !important;
  }

  footer .footer-brand-logo span {
    font-size: 0.95rem !important;
  }

  footer .footer-desc {
    max-width: 46ch !important;
    font-size: 0.72rem !important;
    line-height: 1.55 !important;
  }

  footer .footer-col h4 {
    font-size: 0.58rem !important;
  }

  footer .footer-col a {
    font-size: 0.68rem !important;
    line-height: 1.38 !important;
    padding: 4px 0 !important;
  }
}

@media (max-width: 390px) {
  footer .footer-grid {
    gap: 16px !important;
  }

  footer .footer-col a {
    font-size: 0.64rem !important;
  }
}

/* Services page: keep Bill of Rights cards in a 2x2 grid on mobile. */
@media (max-width: 700px) {
  .svc-rights .sr-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .svc-rights .sr-card {
    padding: 16px 14px !important;
    border-radius: 18px !important;
  }

  .svc-rights .sr-card h3 {
    font-size: 0.72rem !important;
    line-height: 1.25 !important;
    margin-bottom: 6px !important;
  }

  .svc-rights .sr-card p {
    font-size: 0.64rem !important;
    line-height: 1.5 !important;
  }

  .svc-rights .sr-card a {
    font-size: 0.6rem !important;
    line-height: 1.25 !important;
  }
}

@media (max-width: 360px) {
  .svc-rights .sr-grid {
    gap: 10px !important;
  }

  .svc-rights .sr-card {
    padding: 14px 12px !important;
  }

  .svc-rights .sr-card p,
  .svc-rights .sr-card a {
    font-size: 0.58rem !important;
  }
}

/* Mobile footer description: use the full row and reduce wrapping. */
@media (max-width: 700px) {
  footer .footer-grid > :first-child {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }

  footer .footer-desc {
    width: 100% !important;
    max-width: none !important;
    font-size: clamp(0.64rem, 2.55vw, 0.72rem) !important;
    line-height: 1.45 !important;
    text-wrap: balance !important;
  }
}

@media (min-width: 430px) and (max-width: 700px) {
  footer .footer-desc {
    font-size: 0.72rem !important;
    max-width: 72ch !important;
  }
}

/* Compact responsive page headers: keep hero banners inside small screens. */
.page-header {
  min-height: 0 !important;
  padding-block: clamp(92px, 8.5vw, 132px) clamp(36px, 4vw, 58px) !important;
}

.page-header .container {
  width: min(100% - 32px, 1120px) !important;
}

.page-header h1 {
  max-width: 720px !important;
  font-size: clamp(1.5rem, 2.9vw, 2.2rem) !important;
  line-height: 1.08 !important;
}

.page-header > .container > p {
  max-width: 560px !important;
  font-size: clamp(0.78rem, 1.4vw, 0.9rem) !important;
  line-height: 1.65 !important;
}

@media (max-width: 768px) {
  .page-header {
    padding-block: 82px 32px !important;
  }

  .page-header .container {
    width: min(100% - 28px, 1120px) !important;
  }

  .page-header .section-tag {
    font-size: 0.58rem !important;
    padding: 6px 12px !important;
    margin-bottom: 12px !important;
  }

  .page-header h1 {
    max-width: 16ch !important;
    font-size: clamp(1.2rem, 6.2vw, 1.72rem) !important;
    line-height: 1.06 !important;
  }

  .page-header > .container > p {
    max-width: 38ch !important;
    font-size: clamp(0.72rem, 3.35vw, 0.84rem) !important;
    line-height: 1.55 !important;
    margin-top: 8px !important;
  }

  .header-glow {
    filter: blur(56px) !important;
    opacity: 0.45 !important;
  }
}

@media (max-width: 480px) {
  .page-header {
    padding-block: 72px 28px !important;
  }

  .page-header .container {
    width: min(100% - 24px, 1120px) !important;
  }

  .page-header .section-tag {
    font-size: 0.52rem !important;
    letter-spacing: 0.12em !important;
    padding: 5px 10px !important;
  }

  .page-header h1 {
    max-width: 14ch !important;
    font-size: clamp(1.05rem, 7vw, 1.36rem) !important;
    letter-spacing: -0.02em !important;
  }

  .page-header > .container > p {
    max-width: 34ch !important;
    font-size: clamp(0.68rem, 3.65vw, 0.78rem) !important;
    line-height: 1.48 !important;
  }
}

/* Home page hero follows the same compact mobile header rhythm. */
@media (max-width: 768px) {
  .hero {
    min-height: auto !important;
    padding-block: 82px 34px !important;
  }

  .hero h1 {
    max-width: 16ch !important;
    font-size: clamp(1.22rem, 6.2vw, 1.78rem) !important;
    line-height: 1.06 !important;
  }

  .hero-sub {
    max-width: 38ch !important;
    font-size: clamp(0.72rem, 3.35vw, 0.84rem) !important;
    line-height: 1.55 !important;
  }
}

@media (max-width: 480px) {
  .hero {
    padding-block: 72px 30px !important;
  }

  .hero h1 {
    max-width: 14ch !important;
    font-size: clamp(1.08rem, 7vw, 1.42rem) !important;
  }

  .hero-sub {
    max-width: 34ch !important;
    font-size: clamp(0.68rem, 3.65vw, 0.78rem) !important;
  }
}

/* Mobile nav compaction: keep the fixed header from crowding the hero. */
@media (max-width: 768px) {
  nav {
    min-height: 64px !important;
  }

  .nav-inner {
    min-height: 64px !important;
    height: 64px !important;
    padding: 0 18px !important;
  }

  .nav-logo {
    gap: 9px !important;
  }

  .nav-logo img {
    height: 30px !important;
    max-width: 36px !important;
    object-fit: contain !important;
  }

  .nav-logo-text {
    font-size: clamp(0.9rem, 4.6vw, 1.06rem) !important;
    line-height: 1 !important;
    letter-spacing: -0.02em !important;
  }

  .hamburger {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    padding: 8px !important;
    gap: 5px !important;
  }

  .hamburger span {
    width: 24px !important;
    height: 2.5px !important;
  }

  .hero {
    padding-top: 78px !important;
  }

  .page-header {
    padding-top: 78px !important;
  }
}

@media (max-width: 480px) {
  nav {
    min-height: 58px !important;
  }

  .nav-inner {
    min-height: 58px !important;
    height: 58px !important;
    padding: 0 14px !important;
  }

  .nav-logo img {
    height: 27px !important;
    max-width: 32px !important;
  }

  .nav-logo-text {
    font-size: clamp(0.84rem, 4.8vw, 0.98rem) !important;
  }

  .hamburger {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    padding: 7px !important;
  }

  .hamburger span {
    width: 22px !important;
    height: 2.25px !important;
  }

  .hero {
    padding-top: 68px !important;
  }

  .page-header {
    padding-top: 68px !important;
  }
}

/* Global viewport guard: prevent cross-page horizontal layout blowouts. */
html,
body {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
}

body {
  position: relative !important;
}

*,
*::before,
*::after {
  box-sizing: border-box !important;
}

img,
svg,
video,
canvas,
iframe {
  max-width: 100% !important;
}

section,
nav,
footer,
.hero,
.page-header {
  max-width: 100vw !important;
  overflow-x: clip !important;
}

.container,
.nav-inner,
footer .container {
  max-width: min(1120px, calc(100vw - 32px)) !important;
  min-width: 0 !important;
}

h1,
h2,
h3,
h4,
p,
li,
a,
span {
  min-width: 0 !important;
}

p,
li,
a,
.footer-desc,
.footer-col a,
.sr-card a {
  overflow-wrap: anywhere !important;
}

@media (max-width: 768px) {
  .container,
  .nav-inner,
  footer .container {
    max-width: calc(100vw - 24px) !important;
  }

  .nav-links.mob-open {
    position: fixed !important;
    top: 64px !important;
    left: 12px !important;
    right: 12px !important;
    bottom: auto !important;
    width: auto !important;
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100svh - 82px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    transform: none !important;
    padding: 12px !important;
    border-radius: 18px !important;
  }

  .nav-links.mob-open li,
  .nav-links.mob-open a,
  .nav-links.mob-open .nav-cta {
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
  }
}

@media (max-width: 480px) {
  .container,
  .nav-inner,
  footer .container {
    max-width: calc(100vw - 20px) !important;
  }

  .nav-links.mob-open {
    top: 58px !important;
    left: 10px !important;
    right: 10px !important;
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100svh - 72px) !important;
  }
}

/* Content density pass: slightly smaller imagery and quieter section copy. */
.svc-row-img,
.ms-img,
.sv-wellness-img,
.ab-img,
.am-visual,
.ct-map {
  transform: scale(0.94) !important;
  transform-origin: center !important;
}

.svc-row-img,
.ms-img,
.sv-wellness-img,
.ab-img,
.ct-map {
  max-height: 92% !important;
}

.gal-grid .gi,
.gi,
.rc-img,
.ic,
.am-vis-img,
.sv-img,
.sv-imgs > div,
.sr-card,
.qf-card,
.sc,
.rc {
  transform: scale(0.96) !important;
  transform-origin: center !important;
}

.svc-showcase-header h2,
.gal-header h2,
.mi-center h2,
.am-header h2,
.sr-center h2,
.pos-center h2,
.con-info h2,
.ct-info h2,
.home-cta h2,
.sd-center h2,
.qf h2,
.ms-copy h2,
.sv-copy h2,
.ins-how h2,
.res-cta h2 {
  font-size: clamp(1.16rem, 2.05vw, 1.58rem) !important;
  line-height: 1.16 !important;
  letter-spacing: -0.018em !important;
}

.sc h3,
.qf-card h3,
.svc-row-copy h3,
.sr-card h3,
.rc h3,
.pos-card h3,
.ct-card h3,
.ab-feat h3,
.ms-val h3,
.sv-high h3,
.ins-card h3,
.ih-step h3,
.am-card h3,
.fc h3,
.app-form h3 {
  font-size: clamp(0.82rem, 1.35vw, 1rem) !important;
  line-height: 1.28 !important;
  letter-spacing: -0.006em !important;
}

.svc-showcase-header p,
.gal-header p,
.mi-center p,
.am-header p,
.sr-center p,
.pos-center p,
.home-cta p,
.sd-center p,
.ms-copy p,
.sv-copy p,
.ab-copy p,
.con-info p,
.ct-info p,
.res-cta p,
.ins-how p,
.sc p,
.qf-card p,
.svc-row-copy p,
.sr-card p,
.rc p,
.pos-card p,
.ct-card p,
.ab-feat p,
.ms-val p,
.sv-high p,
.ins-card p,
.ih-step p,
.am-card p {
  font-size: clamp(0.72rem, 1.25vw, 0.84rem) !important;
  line-height: 1.6 !important;
}

@media (max-width: 768px) {
  .svc-row-img,
  .ms-img,
  .sv-wellness-img,
  .ab-img,
  .am-visual,
  .ct-map,
  .gal-grid .gi,
  .gi,
  .rc-img,
  .ic,
  .am-vis-img,
  .sv-img,
  .sv-imgs > div {
    transform: scale(0.92) !important;
  }

  .svc-showcase-header h2,
  .gal-header h2,
  .mi-center h2,
  .am-header h2,
  .sr-center h2,
  .pos-center h2,
  .con-info h2,
  .ct-info h2,
  .home-cta h2,
  .sd-center h2,
  .qf h2,
  .ms-copy h2,
  .sv-copy h2,
  .ins-how h2,
  .res-cta h2 {
    font-size: clamp(1.02rem, 5vw, 1.28rem) !important;
  }

  .sc h3,
  .qf-card h3,
  .svc-row-copy h3,
  .sr-card h3,
  .rc h3,
  .pos-card h3,
  .ct-card h3,
  .ab-feat h3,
  .ms-val h3,
  .sv-high h3,
  .ins-card h3,
  .ih-step h3,
  .am-card h3,
  .fc h3,
  .app-form h3 {
    font-size: clamp(0.74rem, 3.5vw, 0.9rem) !important;
  }
}

/* Mobile two-column card grids for compact amenity/service lists. */
@media (max-width: 768px) {
  .am-grid,
  .svc-grid,
  .svc-rights .sr-grid,
  .sr-grid,
  .sv-highlights,
  .ms-values {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .am-card,
  .svc-grid .sc,
  .svc-rights .sr-card,
  .sr-grid .sr-card,
  .sv-high,
  .ms-val {
    padding: 13px 11px !important;
    border-radius: 16px !important;
    min-width: 0 !important;
  }

  .am-card {
    display: grid !important;
    grid-template-columns: 30px minmax(0, 1fr) !important;
    gap: 9px !important;
    align-items: start !important;
  }

  .am-icon,
  .sc-icon {
    width: 30px !important;
    height: 30px !important;
    border-radius: 9px !important;
    margin-bottom: 0 !important;
  }

  .am-icon svg,
  .sc-icon svg {
    width: 16px !important;
    height: 16px !important;
  }

  .am-card h4,
  .svc-grid .sc h3,
  .svc-rights .sr-card h3,
  .sr-grid .sr-card h3,
  .sv-high h3,
  .sv-high h4,
  .ms-val h3 {
    font-size: clamp(0.66rem, 3vw, 0.78rem) !important;
    line-height: 1.22 !important;
    margin-bottom: 3px !important;
  }

  .am-card p,
  .svc-grid .sc p,
  .svc-rights .sr-card p,
  .sr-grid .sr-card p,
  .sv-high p,
  .ms-val p {
    font-size: clamp(0.56rem, 2.65vw, 0.68rem) !important;
    line-height: 1.38 !important;
  }
}

@media (max-width: 360px) {
  .am-grid,
  .svc-grid,
  .svc-rights .sr-grid,
  .sr-grid,
  .sv-highlights,
  .ms-values {
    gap: 8px !important;
  }

  .am-card,
  .svc-grid .sc,
  .svc-rights .sr-card,
  .sr-grid .sr-card,
  .sv-high,
  .ms-val {
    padding: 11px 9px !important;
  }

  .am-card {
    grid-template-columns: 26px minmax(0, 1fr) !important;
    gap: 7px !important;
  }

  .am-icon,
  .sc-icon {
    width: 26px !important;
    height: 26px !important;
  }
}

/* Insurance mobile: compact two-column waiver cards and getting-started steps. */
@media (max-width: 768px) {
  body:has(.ins-grid) .ins-grid,
  body:has(.steps-timeline) .steps-timeline,
  body:has(.ih-steps) .ih-steps {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    align-items: stretch !important;
  }

  body:has(.ins-grid) .ic,
  body:has(.steps-timeline) .step-item,
  body:has(.steps-timeline) .step-card,
  body:has(.ih-steps) .ih-step {
    min-width: 0 !important;
    width: 100% !important;
  }

  body:has(.ins-grid) .ic,
  body:has(.steps-timeline) .step-card,
  body:has(.ih-steps) .ih-step {
    padding: 16px 14px !important;
    border-radius: 18px !important;
  }

  body:has(.ins-grid) .ic-abbr,
  body:has(.steps-timeline) .step-number {
    font-size: clamp(1rem, 5vw, 1.35rem) !important;
    line-height: 1 !important;
    margin-bottom: 10px !important;
  }

  body:has(.ins-grid) .ic h3,
  body:has(.steps-timeline) .step-card h4,
  body:has(.ih-steps) .ih-step h4 {
    font-size: clamp(0.68rem, 3vw, 0.82rem) !important;
    line-height: 1.28 !important;
    margin-bottom: 6px !important;
  }

  body:has(.ins-grid) .ic p,
  body:has(.steps-timeline) .step-card p,
  body:has(.ih-steps) .ih-step p {
    font-size: clamp(0.56rem, 2.65vw, 0.68rem) !important;
    line-height: 1.45 !important;
  }

  body:has(.ins-grid) .ic-badge,
  body:has(.ins-grid) .ic-link,
  body:has(.steps-timeline) .step-link,
  body:has(.ih-steps) .ih-step a {
    font-size: clamp(0.54rem, 2.45vw, 0.66rem) !important;
    line-height: 1.25 !important;
  }

  body:has(.steps-timeline) .steps-line,
  body:has(.steps-timeline) .step-connector {
    display: none !important;
  }
}

@media (max-width: 360px) {
  body:has(.ins-grid) .ins-grid,
  body:has(.steps-timeline) .steps-timeline,
  body:has(.ih-steps) .ih-steps {
    gap: 9px !important;
  }

  body:has(.ins-grid) .ic,
  body:has(.steps-timeline) .step-card,
  body:has(.ih-steps) .ih-step {
    padding: 13px 10px !important;
  }
}

/* About mobile: two-column cards and clean hero image overlay. */
.ab-float {
  bottom: 14px !important;
  right: 14px !important;
  width: 118px !important;
  height: 82px !important;
  border-radius: 18px !important;
}

@media (max-width: 768px) {
  body:has(.ab-grid) .ab-feats,
  body:has(.mission-grid) .mission-grid,
  body:has(.gal-grid) .gal-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  body:has(.ab-grid) .ab-feat,
  body:has(.mission-grid) .mi-card,
  body:has(.gal-grid) .gi {
    min-width: 0 !important;
  }

  body:has(.ab-grid) .ab-feat,
  body:has(.mission-grid) .mi-card {
    padding: 13px 11px !important;
    border-radius: 16px !important;
  }

  body:has(.ab-grid) .ab-feat {
    gap: 8px !important;
  }

  body:has(.ab-grid) .afi {
    width: 28px !important;
    height: 28px !important;
    border-radius: 9px !important;
    flex: 0 0 28px !important;
  }

  body:has(.ab-grid) .afi svg {
    width: 15px !important;
    height: 15px !important;
  }

  body:has(.ab-grid) .ab-feat h4,
  body:has(.mission-grid) .mi-card h3 {
    font-size: clamp(0.66rem, 3vw, 0.78rem) !important;
    line-height: 1.22 !important;
    margin-bottom: 3px !important;
  }

  body:has(.ab-grid) .ab-feat .sub,
  body:has(.mission-grid) .mi-card p {
    font-size: clamp(0.56rem, 2.65vw, 0.68rem) !important;
    line-height: 1.4 !important;
  }

  body:has(.mission-grid) .mi-card h3 span {
    width: 22px !important;
    height: 22px !important;
    font-size: 0.58rem !important;
    border-radius: 7px !important;
  }

  body:has(.gal-grid) .gi,
  body:has(.gal-grid) .gi.tall {
    grid-row: span 1 !important;
    height: 150px !important;
    border-radius: 16px !important;
  }

  .ab-float {
    display: none !important;
  }
}

@media (max-width: 360px) {
  body:has(.ab-grid) .ab-feats,
  body:has(.mission-grid) .mission-grid,
  body:has(.gal-grid) .gal-grid {
    gap: 8px !important;
  }

  body:has(.ab-grid) .ab-feat,
  body:has(.mission-grid) .mi-card {
    padding: 11px 9px !important;
  }

  body:has(.gal-grid) .gi,
  body:has(.gal-grid) .gi.tall {
    height: 132px !important;
  }
}

/* Careers page typography: quieter job and application copy. */
body:has(.positions) .pos-center h2,
body:has(.careers-intro) .ci-left h2 {
  font-size: clamp(1.05rem, 2vw, 1.42rem) !important;
  line-height: 1.18 !important;
}

body:has(.positions) .pos-center p,
body:has(.careers-intro) .ci-left p,
body:has(.careers-note) .careers-note p {
  font-size: clamp(0.68rem, 1.18vw, 0.78rem) !important;
  line-height: 1.6 !important;
}

body:has(.positions) .pos-card h4,
body:has(.careers-intro) .ci-hl h4,
body:has(.careers-intro) .app-form h3,
body:has(.careers-intro) .form-success h4 {
  font-size: clamp(0.76rem, 1.25vw, 0.92rem) !important;
  line-height: 1.25 !important;
}

body:has(.positions) .pos-card p,
body:has(.careers-intro) .ci-hl p,
body:has(.careers-intro) .app-form p,
body:has(.careers-intro) .form-success p {
  font-size: clamp(0.62rem, 1.1vw, 0.74rem) !important;
  line-height: 1.52 !important;
}

body:has(.positions) .pos-tag,
body:has(.careers-intro) .fg label,
body:has(.careers-intro) .file-upload-hint,
body:has(.careers-intro) .file-name {
  font-size: clamp(0.54rem, 0.95vw, 0.64rem) !important;
}

body:has(.careers-intro) .file-upload-text,
body:has(.careers-intro) .btn-form {
  font-size: clamp(0.68rem, 1.12vw, 0.78rem) !important;
}

@media (max-width: 768px) {
  body:has(.positions) .pos-center h2,
  body:has(.careers-intro) .ci-left h2 {
    font-size: clamp(0.98rem, 5vw, 1.22rem) !important;
  }

  body:has(.positions) .pos-card,
  body:has(.careers-intro) .ci-hl,
  body:has(.careers-intro) .app-form {
    padding: 16px 14px !important;
  }

  body:has(.positions) .pos-card h4,
  body:has(.careers-intro) .ci-hl h4,
  body:has(.careers-intro) .app-form h3,
  body:has(.careers-intro) .form-success h4 {
    font-size: clamp(0.7rem, 3.3vw, 0.86rem) !important;
  }

  body:has(.positions) .pos-card p,
  body:has(.careers-intro) .ci-left p,
  body:has(.careers-intro) .ci-hl p,
  body:has(.careers-intro) .app-form p,
  body:has(.careers-note) .careers-note p {
    font-size: clamp(0.58rem, 2.8vw, 0.7rem) !important;
    line-height: 1.45 !important;
  }
}

/* Careers page compact pass: make the benefits and application form feel lighter. */
body:has(.careers-intro) .careers-intro {
  padding: clamp(34px, 6vw, 64px) 0 !important;
}

body:has(.careers-intro) .ci-grid {
  grid-template-columns: minmax(0, 0.92fr) minmax(320px, 0.86fr) !important;
  gap: clamp(22px, 4vw, 40px) !important;
  align-items: start !important;
}

body:has(.careers-intro) .ci-left p {
  margin-top: 9px !important;
  max-width: 58ch !important;
}

body:has(.careers-intro) .ci-highlights {
  gap: 9px !important;
  margin-top: 18px !important;
}

body:has(.careers-intro) .ci-hl {
  min-height: 0 !important;
  padding: 13px 14px !important;
  gap: 12px !important;
  border-radius: 14px !important;
}

body:has(.careers-intro) .ci-hl-icon {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  border-radius: 10px !important;
}

body:has(.careers-intro) .ci-hl-icon svg {
  width: 15px !important;
  height: 15px !important;
}

body:has(.careers-intro) .app-form {
  max-width: 440px !important;
  margin-left: auto !important;
  padding: clamp(18px, 3vw, 26px) !important;
  border-radius: 18px !important;
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.07) !important;
}

body:has(.careers-intro) .app-form h3 {
  margin-bottom: 5px !important;
}

body:has(.careers-intro) .form-row {
  gap: 10px !important;
  margin-bottom: 10px !important;
}

body:has(.careers-intro) .fg {
  margin-bottom: 10px !important;
}

body:has(.careers-intro) .fg input,
body:has(.careers-intro) .fg select,
body:has(.careers-intro) .fg textarea {
  min-height: 38px !important;
  padding: 9px 12px !important;
  border-radius: 11px !important;
  font-size: clamp(0.68rem, 1.08vw, 0.76rem) !important;
}

body:has(.careers-intro) .fg textarea {
  min-height: 74px !important;
}

body:has(.careers-intro) .file-upload-area {
  padding: 13px 12px !important;
  margin-bottom: 10px !important;
  border-radius: 12px !important;
}

body:has(.careers-intro) .file-upload-icon {
  margin-bottom: 4px !important;
}

body:has(.careers-intro) .file-upload-icon svg {
  width: 22px !important;
  height: 22px !important;
}

body:has(.careers-intro) .btn-form {
  min-height: 40px !important;
  padding: 10px 12px !important;
  border-radius: 11px !important;
}

@media (max-width: 768px) {
  body:has(.careers-intro) .ci-grid {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }

  body:has(.careers-intro) .ci-left p {
    margin-top: 8px !important;
  }

  body:has(.careers-intro) .ci-highlights {
    gap: 8px !important;
    margin-top: 15px !important;
  }

  body:has(.careers-intro) .ci-hl {
    padding: 11px 12px !important;
    gap: 10px !important;
  }

  body:has(.careers-intro) .ci-hl-icon {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
  }

  body:has(.careers-intro) .app-form {
    width: 100% !important;
    max-width: 360px !important;
    margin: 0 auto !important;
    padding: 14px 12px !important;
    border-radius: 16px !important;
  }

  body:has(.careers-intro) .app-form h3 {
    font-size: clamp(0.78rem, 3.5vw, 0.94rem) !important;
  }

  body:has(.careers-intro) .app-form p {
    font-size: clamp(0.56rem, 2.65vw, 0.68rem) !important;
    line-height: 1.38 !important;
  }

  body:has(.careers-intro) .form-row {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    margin-bottom: 8px !important;
  }

  body:has(.careers-intro) .fg {
    margin-bottom: 8px !important;
  }

  body:has(.careers-intro) .fg label {
    margin-bottom: 4px !important;
  }

  body:has(.careers-intro) .fg input,
  body:has(.careers-intro) .fg select,
  body:has(.careers-intro) .fg textarea {
    min-height: 34px !important;
    padding: 8px 10px !important;
    font-size: clamp(0.62rem, 2.85vw, 0.72rem) !important;
  }

  body:has(.careers-intro) .fg textarea {
    min-height: 62px !important;
  }

  body:has(.careers-intro) .file-upload-area {
    padding: 9px 10px !important;
  }

  body:has(.careers-intro) .file-upload-icon svg {
    width: 18px !important;
    height: 18px !important;
  }

  body:has(.careers-intro) .btn-form {
    min-height: 36px !important;
    padding: 9px 10px !important;
  }
}

/* Careers page extra mobile compression for the benefits and application sections. */
@media (max-width: 520px) {
  body:has(.careers-intro) .careers-intro {
    padding: 22px 0 26px !important;
  }

  body:has(.careers-intro) .ci-grid {
    gap: 16px !important;
  }

  body:has(.careers-intro) .ci-left .section-tag {
    padding: 6px 12px !important;
    font-size: 0.56rem !important;
    letter-spacing: 0.12em !important;
  }

  body:has(.careers-intro) .ci-left h2 {
    font-size: clamp(0.98rem, 4.5vw, 1.12rem) !important;
    line-height: 1.12 !important;
    margin-top: 10px !important;
  }

  body:has(.careers-intro) .ci-left p {
    font-size: clamp(0.56rem, 2.75vw, 0.66rem) !important;
    line-height: 1.34 !important;
    margin-top: 6px !important;
  }

  body:has(.careers-intro) .ci-highlights {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
    margin-top: 11px !important;
  }

  body:has(.careers-intro) .ci-hl {
    display: grid !important;
    grid-template-columns: 24px 1fr !important;
    gap: 7px !important;
    padding: 9px 8px !important;
    border-radius: 12px !important;
  }

  body:has(.careers-intro) .ci-hl-icon {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    border-radius: 8px !important;
  }

  body:has(.careers-intro) .ci-hl-icon svg {
    width: 12px !important;
    height: 12px !important;
  }

  body:has(.careers-intro) .ci-hl h4 {
    font-size: clamp(0.58rem, 2.85vw, 0.68rem) !important;
    line-height: 1.15 !important;
  }

  body:has(.careers-intro) .ci-hl p {
    font-size: clamp(0.5rem, 2.45vw, 0.58rem) !important;
    line-height: 1.25 !important;
    margin-top: 3px !important;
  }

  body:has(.careers-intro) .app-form {
    max-width: 330px !important;
    padding: 10px !important;
    border-radius: 14px !important;
  }

  body:has(.careers-intro) .app-form h3 {
    font-size: clamp(0.72rem, 3.35vw, 0.84rem) !important;
    margin-bottom: 3px !important;
  }

  body:has(.careers-intro) .app-form p {
    font-size: clamp(0.5rem, 2.35vw, 0.6rem) !important;
    line-height: 1.28 !important;
  }

  body:has(.careers-intro) .form-row {
    gap: 6px !important;
    margin-bottom: 6px !important;
  }

  body:has(.careers-intro) .fg {
    margin-bottom: 6px !important;
  }

  body:has(.careers-intro) .fg label {
    font-size: 0.5rem !important;
    margin-bottom: 3px !important;
    letter-spacing: 0.08em !important;
  }

  body:has(.careers-intro) .fg input,
  body:has(.careers-intro) .fg select,
  body:has(.careers-intro) .fg textarea {
    min-height: 30px !important;
    padding: 6px 8px !important;
    border-radius: 9px !important;
    font-size: clamp(0.56rem, 2.55vw, 0.66rem) !important;
  }

  body:has(.careers-intro) .fg textarea {
    min-height: 50px !important;
  }

  body:has(.careers-intro) .file-upload-area {
    padding: 7px 8px !important;
    margin-bottom: 6px !important;
    border-radius: 10px !important;
  }

  body:has(.careers-intro) .file-upload-icon {
    margin-bottom: 2px !important;
  }

  body:has(.careers-intro) .file-upload-icon svg {
    width: 15px !important;
    height: 15px !important;
  }

  body:has(.careers-intro) .file-upload-text,
  body:has(.careers-intro) .btn-form {
    font-size: clamp(0.56rem, 2.55vw, 0.66rem) !important;
  }

  body:has(.careers-intro) .file-upload-hint,
  body:has(.careers-intro) .file-name {
    font-size: 0.48rem !important;
  }

  body:has(.careers-intro) .btn-form {
    min-height: 32px !important;
    padding: 7px 9px !important;
    border-radius: 9px !important;
  }
}

/* Careers mobile spacing: add breathing room before the application form. */
@media (max-width: 520px) {
  body:has(.careers-intro) .ci-grid {
    gap: 30px !important;
  }

  body:has(.careers-intro) .ci-grid > .reveal:last-child {
    margin-top: 4px !important;
  }
}

/* Contact page compact form: match the lighter Careers application form. */
body:has(.con-grid) .con {
  padding-block: clamp(34px, 6vw, 64px) !important;
}

body:has(.con-grid) .con-grid {
  grid-template-columns: minmax(0, 0.92fr) minmax(320px, 0.86fr) !important;
  gap: clamp(22px, 4vw, 40px) !important;
  align-items: start !important;
}

body:has(.con-grid) .con-info h2 {
  font-size: clamp(1.05rem, 2vw, 1.42rem) !important;
  line-height: 1.18 !important;
}

body:has(.con-grid) .con-info > p,
body:has(.con-grid) .ci p {
  font-size: clamp(0.62rem, 1.12vw, 0.74rem) !important;
  line-height: 1.5 !important;
}

body:has(.con-grid) .ci {
  padding-block: 12px !important;
}

body:has(.con-grid) .ci h4,
body:has(.con-grid) .fc h3 {
  font-size: clamp(0.76rem, 1.25vw, 0.92rem) !important;
  line-height: 1.25 !important;
}

body:has(.con-grid) .fc {
  max-width: 440px !important;
  margin-left: auto !important;
  padding: clamp(18px, 3vw, 26px) !important;
  border-radius: 18px !important;
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.07) !important;
}

body:has(.con-grid) .fc > p {
  font-size: clamp(0.62rem, 1.1vw, 0.74rem) !important;
  line-height: 1.45 !important;
}

body:has(.con-grid) .fc .fg + .fg,
body:has(.con-grid) .fc .form-row + .fg,
body:has(.con-grid) .fc .fg + .form-row {
  margin-top: 10px !important;
}

body:has(.con-grid) .fc .form-row {
  gap: 10px !important;
  margin-bottom: 10px !important;
}

body:has(.con-grid) .fc .fg {
  margin-bottom: 10px !important;
}

body:has(.con-grid) .fc .fg label {
  font-size: clamp(0.54rem, 0.95vw, 0.64rem) !important;
  margin-bottom: 5px !important;
}

body:has(.con-grid) .fc .fg input,
body:has(.con-grid) .fc .fg select,
body:has(.con-grid) .fc .fg textarea {
  min-height: 38px !important;
  padding: 9px 12px !important;
  border-radius: 11px !important;
  font-size: clamp(0.68rem, 1.08vw, 0.76rem) !important;
}

body:has(.con-grid) .fc .fg textarea {
  min-height: 74px !important;
}

body:has(.con-grid) .fc .btn-form {
  min-height: 40px !important;
  padding: 10px 12px !important;
  border-radius: 11px !important;
  font-size: clamp(0.68rem, 1.12vw, 0.78rem) !important;
}

@media (max-width: 768px) {
  body:has(.con-grid) .con-grid {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  body:has(.con-grid) .fc {
    width: 100% !important;
    max-width: 360px !important;
    margin: 0 auto !important;
    padding: 14px 12px !important;
    border-radius: 16px !important;
  }

  body:has(.con-grid) .fc h3 {
    font-size: clamp(0.78rem, 3.5vw, 0.94rem) !important;
  }

  body:has(.con-grid) .fc > p {
    font-size: clamp(0.56rem, 2.65vw, 0.68rem) !important;
    line-height: 1.38 !important;
  }

  body:has(.con-grid) .fc .form-row {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    margin-bottom: 8px !important;
  }

  body:has(.con-grid) .fc .fg {
    margin-bottom: 8px !important;
  }

  body:has(.con-grid) .fc .fg label {
    margin-bottom: 4px !important;
  }

  body:has(.con-grid) .fc .fg input,
  body:has(.con-grid) .fc .fg select,
  body:has(.con-grid) .fc .fg textarea {
    min-height: 34px !important;
    padding: 8px 10px !important;
    font-size: clamp(0.62rem, 2.85vw, 0.72rem) !important;
  }

  body:has(.con-grid) .fc .fg textarea {
    min-height: 62px !important;
  }

  body:has(.con-grid) .fc .btn-form {
    min-height: 36px !important;
    padding: 9px 10px !important;
  }
}

@media (max-width: 520px) {
  body:has(.con-grid) .con {
    padding-block: 22px 26px !important;
  }

  body:has(.con-grid) .con-info h2 {
    font-size: clamp(0.98rem, 4.5vw, 1.12rem) !important;
    line-height: 1.12 !important;
  }

  body:has(.con-grid) .con-info > p,
  body:has(.con-grid) .ci p {
    font-size: clamp(0.56rem, 2.75vw, 0.66rem) !important;
    line-height: 1.34 !important;
  }

  body:has(.con-grid) .fc {
    max-width: 330px !important;
    padding: 10px !important;
    border-radius: 14px !important;
  }

  body:has(.con-grid) .fc h3 {
    font-size: clamp(0.72rem, 3.35vw, 0.84rem) !important;
    margin-bottom: 3px !important;
  }

  body:has(.con-grid) .fc > p {
    font-size: clamp(0.5rem, 2.35vw, 0.6rem) !important;
    line-height: 1.28 !important;
  }

  body:has(.con-grid) .fc .form-row {
    gap: 6px !important;
    margin-bottom: 6px !important;
  }

  body:has(.con-grid) .fc .fg {
    margin-bottom: 6px !important;
  }

  body:has(.con-grid) .fc .fg label {
    font-size: 0.5rem !important;
    margin-bottom: 3px !important;
    letter-spacing: 0.08em !important;
  }

  body:has(.con-grid) .fc .fg input,
  body:has(.con-grid) .fc .fg select,
  body:has(.con-grid) .fc .fg textarea {
    min-height: 30px !important;
    padding: 6px 8px !important;
    border-radius: 9px !important;
    font-size: clamp(0.56rem, 2.55vw, 0.66rem) !important;
  }

  body:has(.con-grid) .fc .fg textarea {
    min-height: 50px !important;
  }

  body:has(.con-grid) .fc .btn-form {
    min-height: 32px !important;
    padding: 7px 9px !important;
    border-radius: 9px !important;
    font-size: clamp(0.56rem, 2.55vw, 0.66rem) !important;
  }
}

/* Page header safe area: prevent fixed nav from cropping hero titles on any device. */
.page-header {
  box-sizing: border-box !important;
  min-height: auto !important;
  padding-block: clamp(104px, 9vw, 136px) clamp(40px, 5vw, 62px) !important;
  display: flex !important;
  align-items: center !important;
}

.page-header .container {
  position: relative !important;
  z-index: 3 !important;
  transform: none !important;
}

.page-header h1 {
  margin-top: 0 !important;
  padding-top: 0 !important;
  overflow: visible !important;
}

@media (max-width: 768px) {
  .page-header {
    padding-block: 96px 38px !important;
  }

  .page-header .section-tag {
    margin-bottom: 10px !important;
  }

  .page-header h1 {
    max-width: 18ch !important;
    font-size: clamp(1.08rem, 5.4vw, 1.42rem) !important;
    line-height: 1.08 !important;
  }

  .page-header > .container > p {
    max-width: 36ch !important;
    margin-top: 8px !important;
  }
}

@media (max-width: 480px) {
  .page-header {
    padding-block: 88px 34px !important;
  }

  .page-header h1 {
    max-width: 17ch !important;
    font-size: clamp(1rem, 6.2vw, 1.3rem) !important;
  }
}

/* Page header final safe-area bump: give mobile titles a little more clearance. */
@media (max-width: 768px) {
  .page-header {
    padding-block: 110px 38px !important;
  }
}

@media (max-width: 480px) {
  .page-header {
    padding-block: 102px 34px !important;
  }
}

/* Home hero safe area: match page-header clearance under the fixed mobile nav. */
.hero {
  box-sizing: border-box !important;
}

@media (max-width: 768px) {
  .hero {
    min-height: auto !important;
    padding-block: 110px 38px !important;
  }

  .hero-center {
    transform: none !important;
    padding-top: 0 !important;
  }

  .hero h1 {
    max-width: 18ch !important;
    font-size: clamp(1.08rem, 5.4vw, 1.42rem) !important;
    line-height: 1.08 !important;
    margin-top: 0 !important;
    overflow: visible !important;
  }

  .hero-sub {
    max-width: 36ch !important;
    margin-top: 12px !important;
  }
}

@media (max-width: 480px) {
  .hero {
    padding-block: 104px 34px !important;
  }

  .hero h1 {
    max-width: 17ch !important;
    font-size: clamp(1rem, 6.2vw, 1.3rem) !important;
  }
}

/* Home hero micro-tune: slightly smaller headline with a touch more top clearance. */
@media (max-width: 768px) {
  .hero {
    padding-block: 114px 38px !important;
  }

  .hero h1 {
    font-size: clamp(1.02rem, 5.05vw, 1.34rem) !important;
    line-height: 1.08 !important;
  }
}

@media (max-width: 480px) {
  .hero {
    padding-block: 108px 34px !important;
  }

  .hero h1 {
    font-size: clamp(0.96rem, 5.85vw, 1.23rem) !important;
  }
}

/* Home hero size reduction: keep the banner refined instead of oversized. */
.hero {
  padding-block: clamp(108px, 8vw, 122px) clamp(46px, 5vw, 62px) !important;
}

.hero-center {
  max-width: 600px !important;
}

.hero h1 {
  font-size: clamp(1rem, 1.75vw, 1.36rem) !important;
  line-height: 1.1 !important;
}

.hero-sub {
  max-width: 480px !important;
  font-size: clamp(0.72rem, 1.1vw, 0.82rem) !important;
  line-height: 1.58 !important;
  margin-top: 14px !important;
}

.hero-actions {
  margin-top: 18px !important;
}

@media (max-width: 768px) {
  .hero {
    padding-block: 112px 30px !important;
  }

  .hero-sub {
    line-height: 1.42 !important;
    margin-top: 10px !important;
  }

  .hero-actions {
    margin-top: 14px !important;
  }
}

@media (max-width: 480px) {
  .hero {
    padding-block: 106px 28px !important;
  }
}

/* Home CTA headline: keep the final prompt compact. */
.home-cta h2 {
  font-size: clamp(0.95rem, 1.55vw, 1.22rem) !important;
  line-height: 1.16 !important;
  max-width: 34ch !important;
  margin-inline: auto !important;
}

.home-cta p {
  font-size: clamp(0.68rem, 1vw, 0.78rem) !important;
  line-height: 1.55 !important;
}

@media (max-width: 520px) {
  .home-cta {
    padding-block: 32px !important;
  }

  .home-cta h2 {
    font-size: clamp(0.82rem, 4vw, 1rem) !important;
    max-width: 28ch !important;
  }

  .home-cta p {
    font-size: clamp(0.58rem, 2.8vw, 0.68rem) !important;
    max-width: 34ch !important;
  }
}

/* Home CTA color: switch final prompt from blue to white with dark text. */
.home-cta {
  background: #fff !important;
  border-top: 1px solid rgba(148, 163, 184, 0.18) !important;
  border-bottom: 1px solid rgba(148, 163, 184, 0.18) !important;
}

.home-cta::before {
  display: none !important;
}

.home-cta h2 {
  color: #172235 !important;
}

.home-cta p {
  color: #43536a !important;
}

.home-cta .btn-main {
  background: #172235 !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.14) !important;
}

.home-cta .btn-main:hover {
  background: #253550 !important;
}

.home-cta .btn-outline {
  color: #172235 !important;
  border-color: rgba(23, 34, 53, 0.28) !important;
  background: #fff !important;
}

.home-cta .btn-outline:hover {
  background: #f4f7fb !important;
  border-color: rgba(23, 34, 53, 0.45) !important;
}

/* Move standalone brand logo from Home mission into Contact page. */
.home-mission-copy-only {
  grid-template-columns: minmax(0, 1fr) !important;
  max-width: 820px !important;
  margin-inline: auto !important;
}

.home-mission-copy-only .ms-text {
  max-width: 100% !important;
}

.contact-logo-card {
  width: min(100%, 320px) !important;
  margin: 6px 0 10px !important;
  padding: clamp(18px, 3vw, 26px) !important;
  border-radius: 18px !important;
  background: #fff !important;
  border: 1px solid rgba(148, 163, 184, 0.18) !important;
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.07) !important;
}

.contact-logo-card img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}

@media (max-width: 768px) {
  .home-mission-copy-only {
    max-width: 100% !important;
  }

  .contact-logo-card {
    width: min(100%, 260px) !important;
    margin: 4px 0 8px !important;
    padding: 16px !important;
    border-radius: 16px !important;
  }
}

/* Center moved logo and Home page image blocks. */
.contact-logo-card {
  margin: 8px auto 14px !important;
}

.sv-wellness-img,
.am-visual {
  margin-left: auto !important;
  margin-right: auto !important;
}

.sv-wellness-img img,
.am-vis-img img {
  display: block !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 768px) {
  .contact-logo-card {
    margin: 6px auto 12px !important;
  }
}

/* Contact logo precise centering inside the contact info column. */
.con-info .contact-logo-card {
  align-self: center !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.con-info .contact-logo-card img {
  object-position: center center !important;
  margin-inline: auto !important;
}

/* Home headline two-line target and Contact header image repositioning. */
.hero h1 {
  max-width: 44ch !important;
  font-size: clamp(0.96rem, 1.55vw, 1.2rem) !important;
  line-height: 1.12 !important;
}

@media (max-width: 768px) {
  .hero h1 {
    max-width: min(100%, 42ch) !important;
    font-size: clamp(0.78rem, 3.35vw, 1.02rem) !important;
    line-height: 1.12 !important;
  }
}

@media (max-width: 480px) {
  .hero h1 {
    max-width: min(100%, 42ch) !important;
    font-size: clamp(0.7rem, 3vw, 0.88rem) !important;
    line-height: 1.12 !important;
  }
}

body:has(.con-grid) .page-header::before {
  background-position: center 74% !important;
}

@media (max-width: 768px) {
  body:has(.con-grid) .page-header::before {
    background-position: center 86% !important;
  }
}

/* Home CTA headline width: allow one-line layout on wider screens. */
.home-cta h2 {
  width: min(100%, 860px) !important;
  max-width: 860px !important;
  white-space: nowrap !important;
}

@media (max-width: 760px) {
  .home-cta h2 {
    width: min(100%, 560px) !important;
    max-width: 560px !important;
    white-space: normal !important;
  }
}

/* Contact form logo placement: lead the form card with the brand image. */
.fc .contact-logo-card {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: min(100%, 280px) !important;
  margin: 0 auto 12px !important;
  padding: clamp(14px, 2.4vw, 20px) !important;
}

.fc .contact-logo-card img {
  object-position: center center !important;
  margin-inline: auto !important;
}

@media (max-width: 768px) {
  .fc .contact-logo-card {
    width: min(100%, 230px) !important;
    margin-bottom: 10px !important;
  }
}
