/* Shared navigation, footer, and contact page. */
.nav .nav__links { gap: clamp(14px, 2vw, 30px); }
.nav .nav__link { white-space: nowrap; }
.site-footer { width: 100%; background: #294362; color: #fff; padding: 64px 0 24px; font-family: var(--font-body); text-align: left; }
.site-footer *, .site-footer *::before, .site-footer *::after { box-sizing: border-box; }
.site-footer__inner { width: min(100% - 96px, 1240px); margin: 0 auto; }
.site-footer__brand { display: inline-block; width: min(100%, 430px); margin-bottom: 68px; }
.site-footer__brand img { display: block; width: 100%; height: auto; filter: brightness(0) invert(1); }
.site-footer__columns { display: grid; grid-template-columns: 150px minmax(230px, 1fr) minmax(280px, 360px); gap: 44px; align-items: start; }
.site-footer__links { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.site-footer .site-footer__links h2 { font: 700 14px/1.3 var(--font-body); text-transform: none; color: white; margin: 0 0 12px; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer__links a { font: 400 15px/1.4 var(--font-body); }
.site-footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
.site-footer__signup { display: grid; gap: 10px; width: 100%; margin: 0; }
.site-footer__signup label { display: block; font: 400 14px/1.4 var(--font-body); color: white; }
.site-footer__email { display: flex; margin-bottom: 8px; }
.site-footer__signup input, .site-footer__signup select { border: 1px solid #ccd8e8; background: #fff; color: #294362; padding: 16px; min-height: 52px; font: 400 14px/1.4 var(--font-body); width: 100%; min-width: 0; border-radius: 0; margin: 0; }
.site-footer__signup input::placeholder { color: #71849c; }
.site-footer__email input { flex: 1; }
.site-footer__submit { justify-self: start; margin-top: 8px; padding: 14px 28px; min-height: 46px; border: 0; border-radius: var(--radius-pill); background: #d5e7ff; color: #294362; font: 700 14px/1.3 var(--font-body); opacity: 1; cursor: default; }
.site-footer__signup select { border-radius: 4px; appearance: none; -webkit-appearance: none; padding-right: 48px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23294362' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 18px center; background-size: 14px 8px; }
.site-footer__bottom { display: flex; justify-content: space-between; align-items: flex-end; margin-top: 72px; gap: 24px; }
.site-footer__social { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.site-footer__social a { display: flex; width: 30px; height: 36px; align-items: center; justify-content: center; }
.site-footer__social svg { width: 27px; height: 27px; fill: currentColor; }
.site-footer__mark { width: 86px; height: auto; filter: brightness(0) invert(1); }
.site-footer__legal { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; margin-top: 40px; font-size: 10px; line-height: 1.5; }
.site-footer :is(a,input,select,button):focus-visible { outline: 2px solid #ffb0df; outline-offset: 4px; }
.contact-page { padding-top: var(--nav-height); background: #f7fafc; }
.contact-page__inner { max-width: 760px; }
.contact-page h1 { font-family: var(--font-headline); font-size: var(--main-title-size); color: var(--tvv-blue); }
.contact-page__form { display: grid; gap: 20px; }
.contact-page__names { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.contact-page__form label { display: grid; gap: 8px; color: var(--tvv-blue); font: 600 15px/1.4 var(--font-body); }
.contact-page__form :is(input,select,textarea) { width: 100%; min-width: 0; padding: 14px; border: 1px solid #bbc7d2; border-radius: 10px; background: white; color: var(--tvv-blue); font: inherit; }
.contact-page__form textarea { resize: vertical; }
.contact-page__form button { justify-self: start; border: 0; opacity: .65; cursor: default; }
.contact-page__form :is(input,select,textarea):focus-visible { outline: 2px solid var(--tvv-blue); outline-offset: 3px; }
@media(max-width:900px) {
  .site-footer__inner { width: calc(100% - 48px); }
  .site-footer__columns { grid-template-columns: 1fr 1.5fr; gap: 36px; }
  .site-footer__signup { grid-column: 1 / -1; max-width: 440px; }
}
@media(max-width:640px) {
  .nav .nav__links { gap: 8px; }
  .nav .nav__actions { margin-left: auto; }
  .site-footer { padding-top: 48px; }
  .site-footer__brand { margin-bottom: 40px; width: min(100%, 330px); }
  .site-footer__columns { gap: 32px 22px; grid-template-columns: 1fr 1.45fr; }
  .site-footer__links a { font-size: 14px; }
  .site-footer__bottom { margin-top: 44px; }
  .site-footer__social { gap: 10px; }
  .site-footer__mark { width: 62px; }
  .site-footer__legal { justify-content: flex-start; margin-top: 32px; }
  .contact-page__names { grid-template-columns: 1fr; }
}

/* Services opens from the text link, without a separate arrow control. */
.nav .nav__services-group { position: relative; }
.nav .nav__services-group > .nav__link::after { display: none; }
.nav .nav__services-menu { display: none; }
.nav .nav__services-group.is-open > .nav__services-menu { display: grid; }
@media(max-width:640px) {
  .nav.nav--menu-open .nav__links { max-height: calc(100dvh - var(--nav-height) - var(--promo-height)); overflow-y: auto; }
  .nav .nav__services-group { display: block; }
  .nav .nav__services-menu { position: static; width: 100%; max-width: none; max-height: none; box-shadow: none; }
}

.contact-page__form select { appearance: none; -webkit-appearance: none; padding-right: 48px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23294362' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 18px center; background-size: 14px 8px; }

@media(min-width:641px) {
  .nav .nav__services-menu { left: 50%; right: auto; transform: translateX(-50%); }
}

/* Keep the expanded primary navigation comfortable on tablets. */
@media(min-width:641px) and (max-width:1100px) {
 .nav .nav__inner { gap: 12px; }
 .nav .nav__inner .nav__logo-img { width: 220px; height: auto; }
 .nav .nav__actions { display: flex; gap: 12px; margin-left: auto; }
 .nav .nav__toggle { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 44px; height: 44px; padding: 10px; border: 0; background: transparent; color: var(--tvv-blue); cursor: pointer; }
 .nav .nav__links { display: none; position: absolute; top: 100%; left: 0; right: 0; margin: 0; padding: 16px 24px 24px; background: white; border-bottom: 1px solid #d5e0ec; box-shadow: 0 14px 24px #2943621a; align-items: stretch; gap: 8px; }
 .nav.nav--menu-open .nav__links { display: flex; flex-direction: column; max-height: calc(100dvh - var(--nav-height) - var(--promo-height)); overflow-y: auto; }
 .nav .nav__links .nav__link { min-height: 44px; font-size: 16px; }
 .nav .nav__services-group { display: block; }
 .nav .nav__services-menu { position: static; transform: none; width: 100%; max-width: none; max-height: none; box-shadow: none; }
}

.nav__telehealth-group { position: relative; }
.nav__telehealth-group > .nav__link::after { display: none; }
.nav__telehealth-menu { display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); width: 360px; max-width: calc(100vw - 32px); padding: 24px; background: white; border: 1px solid #dce5f0; border-radius: 16px; box-shadow: 0 14px 36px #29436226; color: var(--tvv-blue); }
.nav__telehealth-group.is-open > .nav__telehealth-menu { display: grid; gap: 12px; }
.nav__telehealth-heading { padding-bottom: 18px; margin-bottom: 6px; border-bottom: 1px solid #e1e9f2; }
.nav__telehealth-heading > strong { font-size: 17px; line-height: 1.4; }
.nav__telehealth-heading p { font-size: 13px; line-height: 1.4; margin: 4px 0 0; color: #607b9b; }
.nav__telehealth-clinic { display: flex; align-items: center; gap: 12px; background: #f7f9fc; border: 1px solid #e1e9f2; border-radius: 12px; padding: 13px 12px; color: var(--tvv-blue); text-decoration: none; }
.nav__telehealth-clinic strong { display: block; font-size: 14px; line-height: 1.35; }
.nav__telehealth-clinic strong + span { display: block; font-size: 13px; line-height: 1.5; color: #607b9b; margin-top: 2px; }
.nav__telehealth-clinic[href]:hover { background: var(--sky); }
.nav__telehealth-clinic[href]:focus-visible { outline: 2px solid var(--tvv-blue); outline-offset: 3px; }
.nav__phone-icon { display: grid; place-items: center; flex: 0 0 28px; height: 28px; border-radius: 50%; color: white; background: var(--tvv-blue); }
.nav__phone-icon svg { width: 16px; height: 16px; }
@media(max-width:1100px) {
 .nav__telehealth-menu { position: static; transform: none; width: 100%; max-width: none; padding: 18px; box-shadow: none; }
}

@media(min-width:1101px) and (max-width:1250px){.nav .nav__links{gap:16px}.nav .nav__inner{gap:18px}.nav .nav__inner .nav__logo-img{width:260px;height:auto}}

/* Join Us navigation: ownership and careers. */
.nav__join-group{position:relative}
.nav__join-group>button{border:0;background:none;font-family:inherit;cursor:pointer;padding:0}
.nav__join-group>.nav__link::after{display:none}
.nav__join-menu{display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);width:220px;padding:10px;background:white;border:1px solid #dce5f0;border-radius:12px;box-shadow:0 14px 36px #29436226}
.nav__join-group.is-open>.nav__join-menu{display:grid}
.nav__join-menu a{padding:14px;color:var(--tvv-blue);font-size:14px;border-radius:6px;text-decoration:none}
.nav__join-menu a:hover{background:var(--sky)}
.nav__join-group :focus-visible{outline:2px solid var(--tvv-blue);outline-offset:3px}
@media(max-width:1100px){.nav__join-menu{position:static;transform:none;width:100%;box-shadow:none}.nav__join-group>button{width:100%;text-align:left}}
